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