14887Schin /*********************************************************************** 24887Schin * * 34887Schin * This software is part of the ast package * 4*12068SRoger.Faulkner@Oracle.COM * Copyright (c) 1982-2010 AT&T Intellectual Property * 54887Schin * and is licensed under the * 64887Schin * Common Public License, Version 1.0 * 78462SApril.Chin@Sun.COM * by AT&T Intellectual Property * 84887Schin * * 94887Schin * A copy of the License is available at * 104887Schin * http://www.opensource.org/licenses/cpl1.0.txt * 114887Schin * (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) * 124887Schin * * 134887Schin * Information and Software Systems Research * 144887Schin * AT&T Research * 154887Schin * Florham Park NJ * 164887Schin * * 174887Schin * David Korn <dgk@research.att.com> * 184887Schin * * 194887Schin ***********************************************************************/ 204887Schin #pragma prototyped 214887Schin 224887Schin #ifndef SYSDECLARE 234887Schin 244887Schin #include <option.h> 254887Schin #include "FEATURE/options" 264887Schin #include "FEATURE/dynamic" 274887Schin #include "shtable.h" 284887Schin 294887Schin #define SYSLOGIN (sh.bltin_cmds) 304887Schin #define SYSEXEC (sh.bltin_cmds+1) 314887Schin #define SYSSET (sh.bltin_cmds+2) 324887Schin #define SYSTRUE (sh.bltin_cmds+4) 334887Schin #define SYSCOMMAND (sh.bltin_cmds+5) 344887Schin #define SYSCD (sh.bltin_cmds+6) 354887Schin #define SYSBREAK (sh.bltin_cmds+7) 364887Schin #define SYSCONT (sh.bltin_cmds+8) 374887Schin #define SYSTYPESET (sh.bltin_cmds+9) 384887Schin #define SYSTEST (sh.bltin_cmds+10) 394887Schin #define SYSBRACKET (sh.bltin_cmds+11) 404887Schin #define SYSLET (sh.bltin_cmds+12) 414887Schin #define SYSEXPORT (sh.bltin_cmds+13) 428462SApril.Chin@Sun.COM #define SYSDOT (sh.bltin_cmds+14) 438462SApril.Chin@Sun.COM #define SYSRETURN (sh.bltin_cmds+15) 444887Schin #if SHOPT_BASH 458462SApril.Chin@Sun.COM # define SYSLOCAL (sh.bltin_cmds+16) 464887Schin #else 474887Schin # define SYSLOCAL 0 484887Schin #endif 494887Schin 504887Schin /* entry point for shell special builtins */ 514887Schin 524887Schin #if _BLD_shell && defined(__EXPORT__) 534887Schin # define extern __EXPORT__ 544887Schin #endif 554887Schin 564887Schin extern int b_alias(int, char*[],void*); 574887Schin extern int b_break(int, char*[],void*); 584887Schin extern int b_dot_cmd(int, char*[],void*); 598462SApril.Chin@Sun.COM extern int b_enum(int, char*[],void*); 604887Schin extern int b_exec(int, char*[],void*); 614887Schin extern int b_eval(int, char*[],void*); 624887Schin extern int b_return(int, char*[],void*); 634887Schin extern int B_login(int, char*[],void*); 644887Schin extern int b_true(int, char*[],void*); 654887Schin extern int b_false(int, char*[],void*); 664887Schin extern int b_readonly(int, char*[],void*); 674887Schin extern int b_set(int, char*[],void*); 684887Schin extern int b_shift(int, char*[],void*); 694887Schin extern int b_trap(int, char*[],void*); 704887Schin extern int b_typeset(int, char*[],void*); 714887Schin extern int b_unset(int, char*[],void*); 724887Schin extern int b_unalias(int, char*[],void*); 734887Schin 744887Schin /* The following are for job control */ 754887Schin #if defined(SIGCLD) || defined(SIGCHLD) 764887Schin extern int b_jobs(int, char*[],void*); 774887Schin extern int b_kill(int, char*[],void*); 784887Schin # ifdef SIGTSTP 794887Schin extern int b_bg(int, char*[],void*); 804887Schin # endif /* SIGTSTP */ 814887Schin #endif 824887Schin 834887Schin /* The following utilities are built-in because of side-effects */ 844887Schin extern int b_builtin(int, char*[],void*); 854887Schin extern int b_cd(int, char*[],void*); 864887Schin extern int b_command(int, char*[],void*); 874887Schin extern int b_getopts(int, char*[],void*); 884887Schin extern int b_hist(int, char*[],void*); 894887Schin extern int b_let(int, char*[],void*); 904887Schin extern int b_read(int, char*[],void*); 914887Schin extern int b_ulimit(int, char*[],void*); 924887Schin extern int b_umask(int, char*[],void*); 934887Schin #ifdef _cmd_universe 944887Schin extern int b_universe(int, char*[],void*); 954887Schin #endif /* _cmd_universe */ 964887Schin #if SHOPT_FS_3D 974887Schin extern int b_vpath(int, char*[],void*); 984887Schin #endif /* SHOPT_FS_3D */ 994887Schin extern int b_wait(int, char*[],void*); 1004887Schin extern int b_whence(int, char*[],void*); 1014887Schin 1024887Schin extern int b_alarm(int, char*[],void*); 1034887Schin extern int b_print(int, char*[],void*); 1044887Schin extern int b_printf(int, char*[],void*); 1054887Schin extern int b_pwd(int, char*[],void*); 1064887Schin extern int b_sleep(int, char*[],void*); 1074887Schin extern int b_test(int, char*[],void*); 1084887Schin #if !SHOPT_ECHOPRINT 1094887Schin extern int B_echo(int, char*[],void*); 1104887Schin #endif /* SHOPT_ECHOPRINT */ 1114887Schin 1124887Schin #undef extern 1134887Schin 1144887Schin extern const char e_alrm1[]; 1154887Schin extern const char e_alrm2[]; 1164887Schin extern const char e_badfun[]; 1174887Schin extern const char e_baddisc[]; 1184887Schin extern const char e_nofork[]; 1194887Schin extern const char e_nosignal[]; 1204887Schin extern const char e_nolabels[]; 1214887Schin extern const char e_notimp[]; 1224887Schin extern const char e_nosupport[]; 1234887Schin extern const char e_badbase[]; 1244887Schin extern const char e_overlimit[]; 1254887Schin 1264887Schin extern const char e_eneedsarg[]; 12710898Sroland.mainz@nrubsig.org extern const char e_oneoperand[]; 1284887Schin extern const char e_toodeep[]; 1294887Schin extern const char e_badname[]; 1304887Schin extern const char e_badsyntax[]; 1314887Schin #ifdef _cmd_universe 1324887Schin extern const char e_nouniverse[]; 1334887Schin #endif /* _cmd_universe */ 1344887Schin extern const char e_histopen[]; 1354887Schin extern const char e_condition[]; 1364887Schin extern const char e_badrange[]; 1374887Schin extern const char e_trap[]; 1384887Schin extern const char e_direct[]; 1394887Schin extern const char e_defedit[]; 1404887Schin extern const char e_cneedsarg[]; 1414887Schin extern const char e_defined[]; 1424887Schin #if SHOPT_FS_3D 1434887Schin extern const char e_cantset[]; 1444887Schin extern const char e_cantget[]; 1454887Schin extern const char e_mapping[]; 1464887Schin extern const char e_versions[]; 1474887Schin #endif /* SHOPT_FS_3D */ 1484887Schin 1494887Schin /* for option parsing */ 1504887Schin extern const char sh_set[]; 1514887Schin extern const char sh_optalarm[]; 1524887Schin extern const char sh_optalias[]; 1534887Schin extern const char sh_optbreak[]; 1544887Schin extern const char sh_optbuiltin[]; 1554887Schin extern const char sh_optcd[]; 1564887Schin extern const char sh_optcommand[]; 1574887Schin extern const char sh_optcont[]; 1584887Schin extern const char sh_optdot[]; 1594887Schin #ifndef ECHOPRINT 1604887Schin extern const char sh_optecho[]; 1614887Schin #endif /* !ECHOPRINT */ 1624887Schin extern const char sh_opteval[]; 1634887Schin extern const char sh_optexec[]; 1644887Schin extern const char sh_optexit[]; 1654887Schin extern const char sh_optexport[]; 1664887Schin extern const char sh_optgetopts[]; 1674887Schin extern const char sh_optbg[]; 1684887Schin extern const char sh_optdisown[]; 1694887Schin extern const char sh_optfg[]; 1704887Schin extern const char sh_opthist[]; 1714887Schin extern const char sh_optjobs[]; 1724887Schin extern const char sh_optkill[]; 1734887Schin extern const char sh_optksh[]; 1744887Schin extern const char sh_optlet[]; 1754887Schin extern const char sh_optprint[]; 1764887Schin extern const char sh_optprintf[]; 1774887Schin extern const char sh_optpwd[]; 1784887Schin extern const char sh_optread[]; 1794887Schin extern const char sh_optreadonly[]; 1804887Schin extern const char sh_optreturn[]; 1814887Schin extern const char sh_optset[]; 1824887Schin extern const char sh_optshift[]; 1834887Schin extern const char sh_optsleep[]; 1844887Schin extern const char sh_opttrap[]; 1854887Schin extern const char sh_opttypeset[]; 1864887Schin extern const char sh_optulimit[]; 1874887Schin extern const char sh_optumask[]; 1884887Schin extern const char sh_optunalias[]; 1894887Schin extern const char sh_optwait[]; 1904887Schin #ifdef _cmd_universe 1914887Schin extern const char sh_optuniverse[]; 1924887Schin #endif /* _cmd_universe */ 1934887Schin extern const char sh_optunset[]; 1944887Schin #if SHOPT_FS_3D 1954887Schin extern const char sh_optvpath[]; 1964887Schin extern const char sh_optvmap[]; 1974887Schin #endif /* SHOPT_FS_3D */ 1984887Schin extern const char sh_optwhence[]; 1994887Schin #endif /* SYSDECLARE */ 2004887Schin 2014887Schin extern const char e_dict[]; 2024887Schin 203