1da2e3ebdSchin /*********************************************************************** 2da2e3ebdSchin * * 3da2e3ebdSchin * This software is part of the ast package * 4*3e14f97fSRoger A. Faulkner * Copyright (c) 1982-2010 AT&T Intellectual Property * 5da2e3ebdSchin * and is licensed under the * 6da2e3ebdSchin * Common Public License, Version 1.0 * 77c2fbfb3SApril Chin * by AT&T Intellectual Property * 8da2e3ebdSchin * * 9da2e3ebdSchin * A copy of the License is available at * 10da2e3ebdSchin * http://www.opensource.org/licenses/cpl1.0.txt * 11da2e3ebdSchin * (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) * 12da2e3ebdSchin * * 13da2e3ebdSchin * Information and Software Systems Research * 14da2e3ebdSchin * AT&T Research * 15da2e3ebdSchin * Florham Park NJ * 16da2e3ebdSchin * * 17da2e3ebdSchin * David Korn <dgk@research.att.com> * 18da2e3ebdSchin * * 19da2e3ebdSchin ***********************************************************************/ 20da2e3ebdSchin #pragma prototyped 21da2e3ebdSchin 22da2e3ebdSchin #ifndef SYSDECLARE 23da2e3ebdSchin 24da2e3ebdSchin #include <option.h> 25da2e3ebdSchin #include "FEATURE/options" 26da2e3ebdSchin #include "FEATURE/dynamic" 27da2e3ebdSchin #include "shtable.h" 28da2e3ebdSchin 29da2e3ebdSchin #define SYSLOGIN (sh.bltin_cmds) 30da2e3ebdSchin #define SYSEXEC (sh.bltin_cmds+1) 31da2e3ebdSchin #define SYSSET (sh.bltin_cmds+2) 32da2e3ebdSchin #define SYSTRUE (sh.bltin_cmds+4) 33da2e3ebdSchin #define SYSCOMMAND (sh.bltin_cmds+5) 34da2e3ebdSchin #define SYSCD (sh.bltin_cmds+6) 35da2e3ebdSchin #define SYSBREAK (sh.bltin_cmds+7) 36da2e3ebdSchin #define SYSCONT (sh.bltin_cmds+8) 37da2e3ebdSchin #define SYSTYPESET (sh.bltin_cmds+9) 38da2e3ebdSchin #define SYSTEST (sh.bltin_cmds+10) 39da2e3ebdSchin #define SYSBRACKET (sh.bltin_cmds+11) 40da2e3ebdSchin #define SYSLET (sh.bltin_cmds+12) 41da2e3ebdSchin #define SYSEXPORT (sh.bltin_cmds+13) 427c2fbfb3SApril Chin #define SYSDOT (sh.bltin_cmds+14) 437c2fbfb3SApril Chin #define SYSRETURN (sh.bltin_cmds+15) 44da2e3ebdSchin #if SHOPT_BASH 457c2fbfb3SApril Chin # define SYSLOCAL (sh.bltin_cmds+16) 46da2e3ebdSchin #else 47da2e3ebdSchin # define SYSLOCAL 0 48da2e3ebdSchin #endif 49da2e3ebdSchin 50da2e3ebdSchin /* entry point for shell special builtins */ 51da2e3ebdSchin 52da2e3ebdSchin #if _BLD_shell && defined(__EXPORT__) 53da2e3ebdSchin # define extern __EXPORT__ 54da2e3ebdSchin #endif 55da2e3ebdSchin 56da2e3ebdSchin extern int b_alias(int, char*[],void*); 57da2e3ebdSchin extern int b_break(int, char*[],void*); 58da2e3ebdSchin extern int b_dot_cmd(int, char*[],void*); 597c2fbfb3SApril Chin extern int b_enum(int, char*[],void*); 60da2e3ebdSchin extern int b_exec(int, char*[],void*); 61da2e3ebdSchin extern int b_eval(int, char*[],void*); 62da2e3ebdSchin extern int b_return(int, char*[],void*); 63da2e3ebdSchin extern int B_login(int, char*[],void*); 64da2e3ebdSchin extern int b_true(int, char*[],void*); 65da2e3ebdSchin extern int b_false(int, char*[],void*); 66da2e3ebdSchin extern int b_readonly(int, char*[],void*); 67da2e3ebdSchin extern int b_set(int, char*[],void*); 68da2e3ebdSchin extern int b_shift(int, char*[],void*); 69da2e3ebdSchin extern int b_trap(int, char*[],void*); 70da2e3ebdSchin extern int b_typeset(int, char*[],void*); 71da2e3ebdSchin extern int b_unset(int, char*[],void*); 72da2e3ebdSchin extern int b_unalias(int, char*[],void*); 73da2e3ebdSchin 74da2e3ebdSchin /* The following are for job control */ 75da2e3ebdSchin #if defined(SIGCLD) || defined(SIGCHLD) 76da2e3ebdSchin extern int b_jobs(int, char*[],void*); 77da2e3ebdSchin extern int b_kill(int, char*[],void*); 78da2e3ebdSchin # ifdef SIGTSTP 79da2e3ebdSchin extern int b_bg(int, char*[],void*); 80da2e3ebdSchin # endif /* SIGTSTP */ 81da2e3ebdSchin #endif 82da2e3ebdSchin 83da2e3ebdSchin /* The following utilities are built-in because of side-effects */ 84da2e3ebdSchin extern int b_builtin(int, char*[],void*); 85da2e3ebdSchin extern int b_cd(int, char*[],void*); 86da2e3ebdSchin extern int b_command(int, char*[],void*); 87da2e3ebdSchin extern int b_getopts(int, char*[],void*); 88da2e3ebdSchin extern int b_hist(int, char*[],void*); 89da2e3ebdSchin extern int b_let(int, char*[],void*); 90da2e3ebdSchin extern int b_read(int, char*[],void*); 91da2e3ebdSchin extern int b_ulimit(int, char*[],void*); 92da2e3ebdSchin extern int b_umask(int, char*[],void*); 93da2e3ebdSchin #ifdef _cmd_universe 94da2e3ebdSchin extern int b_universe(int, char*[],void*); 95da2e3ebdSchin #endif /* _cmd_universe */ 96da2e3ebdSchin #if SHOPT_FS_3D 97da2e3ebdSchin extern int b_vpath(int, char*[],void*); 98da2e3ebdSchin #endif /* SHOPT_FS_3D */ 99da2e3ebdSchin extern int b_wait(int, char*[],void*); 100da2e3ebdSchin extern int b_whence(int, char*[],void*); 101da2e3ebdSchin 102da2e3ebdSchin extern int b_alarm(int, char*[],void*); 103da2e3ebdSchin extern int b_print(int, char*[],void*); 104da2e3ebdSchin extern int b_printf(int, char*[],void*); 105da2e3ebdSchin extern int b_pwd(int, char*[],void*); 106da2e3ebdSchin extern int b_sleep(int, char*[],void*); 107da2e3ebdSchin extern int b_test(int, char*[],void*); 108da2e3ebdSchin #if !SHOPT_ECHOPRINT 109da2e3ebdSchin extern int B_echo(int, char*[],void*); 110da2e3ebdSchin #endif /* SHOPT_ECHOPRINT */ 111da2e3ebdSchin 112da2e3ebdSchin #undef extern 113da2e3ebdSchin 114da2e3ebdSchin extern const char e_alrm1[]; 115da2e3ebdSchin extern const char e_alrm2[]; 116da2e3ebdSchin extern const char e_badfun[]; 117da2e3ebdSchin extern const char e_baddisc[]; 118da2e3ebdSchin extern const char e_nofork[]; 119da2e3ebdSchin extern const char e_nosignal[]; 120da2e3ebdSchin extern const char e_nolabels[]; 121da2e3ebdSchin extern const char e_notimp[]; 122da2e3ebdSchin extern const char e_nosupport[]; 123da2e3ebdSchin extern const char e_badbase[]; 124da2e3ebdSchin extern const char e_overlimit[]; 125da2e3ebdSchin 126da2e3ebdSchin extern const char e_eneedsarg[]; 12734f9b3eeSRoland Mainz extern const char e_oneoperand[]; 128da2e3ebdSchin extern const char e_toodeep[]; 129da2e3ebdSchin extern const char e_badname[]; 130da2e3ebdSchin extern const char e_badsyntax[]; 131da2e3ebdSchin #ifdef _cmd_universe 132da2e3ebdSchin extern const char e_nouniverse[]; 133da2e3ebdSchin #endif /* _cmd_universe */ 134da2e3ebdSchin extern const char e_histopen[]; 135da2e3ebdSchin extern const char e_condition[]; 136da2e3ebdSchin extern const char e_badrange[]; 137da2e3ebdSchin extern const char e_trap[]; 138da2e3ebdSchin extern const char e_direct[]; 139da2e3ebdSchin extern const char e_defedit[]; 140da2e3ebdSchin extern const char e_cneedsarg[]; 141da2e3ebdSchin extern const char e_defined[]; 142da2e3ebdSchin #if SHOPT_FS_3D 143da2e3ebdSchin extern const char e_cantset[]; 144da2e3ebdSchin extern const char e_cantget[]; 145da2e3ebdSchin extern const char e_mapping[]; 146da2e3ebdSchin extern const char e_versions[]; 147da2e3ebdSchin #endif /* SHOPT_FS_3D */ 148da2e3ebdSchin 149da2e3ebdSchin /* for option parsing */ 150da2e3ebdSchin extern const char sh_set[]; 151da2e3ebdSchin extern const char sh_optalarm[]; 152da2e3ebdSchin extern const char sh_optalias[]; 153da2e3ebdSchin extern const char sh_optbreak[]; 154da2e3ebdSchin extern const char sh_optbuiltin[]; 155da2e3ebdSchin extern const char sh_optcd[]; 156da2e3ebdSchin extern const char sh_optcommand[]; 157da2e3ebdSchin extern const char sh_optcont[]; 158da2e3ebdSchin extern const char sh_optdot[]; 159da2e3ebdSchin #ifndef ECHOPRINT 160da2e3ebdSchin extern const char sh_optecho[]; 161da2e3ebdSchin #endif /* !ECHOPRINT */ 162da2e3ebdSchin extern const char sh_opteval[]; 163da2e3ebdSchin extern const char sh_optexec[]; 164da2e3ebdSchin extern const char sh_optexit[]; 165da2e3ebdSchin extern const char sh_optexport[]; 166da2e3ebdSchin extern const char sh_optgetopts[]; 167da2e3ebdSchin extern const char sh_optbg[]; 168da2e3ebdSchin extern const char sh_optdisown[]; 169da2e3ebdSchin extern const char sh_optfg[]; 170da2e3ebdSchin extern const char sh_opthist[]; 171da2e3ebdSchin extern const char sh_optjobs[]; 172da2e3ebdSchin extern const char sh_optkill[]; 173da2e3ebdSchin extern const char sh_optksh[]; 174da2e3ebdSchin extern const char sh_optlet[]; 175da2e3ebdSchin extern const char sh_optprint[]; 176da2e3ebdSchin extern const char sh_optprintf[]; 177da2e3ebdSchin extern const char sh_optpwd[]; 178da2e3ebdSchin extern const char sh_optread[]; 179da2e3ebdSchin extern const char sh_optreadonly[]; 180da2e3ebdSchin extern const char sh_optreturn[]; 181da2e3ebdSchin extern const char sh_optset[]; 182da2e3ebdSchin extern const char sh_optshift[]; 183da2e3ebdSchin extern const char sh_optsleep[]; 184da2e3ebdSchin extern const char sh_opttrap[]; 185da2e3ebdSchin extern const char sh_opttypeset[]; 186da2e3ebdSchin extern const char sh_optulimit[]; 187da2e3ebdSchin extern const char sh_optumask[]; 188da2e3ebdSchin extern const char sh_optunalias[]; 189da2e3ebdSchin extern const char sh_optwait[]; 190da2e3ebdSchin #ifdef _cmd_universe 191da2e3ebdSchin extern const char sh_optuniverse[]; 192da2e3ebdSchin #endif /* _cmd_universe */ 193da2e3ebdSchin extern const char sh_optunset[]; 194da2e3ebdSchin #if SHOPT_FS_3D 195da2e3ebdSchin extern const char sh_optvpath[]; 196da2e3ebdSchin extern const char sh_optvmap[]; 197da2e3ebdSchin #endif /* SHOPT_FS_3D */ 198da2e3ebdSchin extern const char sh_optwhence[]; 199da2e3ebdSchin #endif /* SYSDECLARE */ 200da2e3ebdSchin 201da2e3ebdSchin extern const char e_dict[]; 202da2e3ebdSchin 203