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