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