1 /***********************************************************************
2 *                                                                      *
3 *               This software is part of the ast package               *
4 *          Copyright (c) 1982-2014 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 <dgkorn@gmail.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 #define SYSENUM		(shgd->bltin_cmds+16)
45 #if SHOPT_BASH
46 #   define SYSLOCAL	(shgd->bltin_cmds+17)
47 #else
48 #   define SYSLOCAL	0
49 #endif
50 
51 /* entry point for shell special builtins */
52 
53 #if _BLD_shell && defined(__EXPORT__)
54 #	define extern	__EXPORT__
55 #endif
56 
57 extern int b_alias(int, char*[],Shbltin_t*);
58 extern int b_break(int, char*[],Shbltin_t*);
59 extern int b_dot_cmd(int, char*[],Shbltin_t*);
60 extern int b_enum(int, char*[],Shbltin_t*);
61 extern int b_exec(int, char*[],Shbltin_t*);
62 extern int b_eval(int, char*[],Shbltin_t*);
63 extern int b_return(int, char*[],Shbltin_t*);
64 extern int B_login(int, char*[],Shbltin_t*);
65 extern int b_true(int, char*[],Shbltin_t*);
66 extern int b_false(int, char*[],Shbltin_t*);
67 extern int b_readonly(int, char*[],Shbltin_t*);
68 extern int b_set(int, char*[],Shbltin_t*);
69 extern int b_shift(int, char*[],Shbltin_t*);
70 extern int b_trap(int, char*[],Shbltin_t*);
71 extern int b_typeset(int, char*[],Shbltin_t*);
72 extern int b_unset(int, char*[],Shbltin_t*);
73 extern int b_unalias(int, char*[],Shbltin_t*);
74 
75 /* The following are for job control */
76 #if defined(SIGCLD) || defined(SIGCHLD)
77     extern int b_jobs(int, char*[],Shbltin_t*);
78     extern int b_kill(int, char*[],Shbltin_t*);
79 #   ifdef SIGTSTP
80 	extern int b_bg(int, char*[],Shbltin_t*);
81 #   endif	/* SIGTSTP */
82 #endif
83 
84 /* The following utilities are built-in because of side-effects */
85 extern int b_builtin(int, char*[],Shbltin_t*);
86 extern int b_cd(int, char*[],Shbltin_t*);
87 extern int b_command(int, char*[],Shbltin_t*);
88 extern int b_getopts(int, char*[],Shbltin_t*);
89 extern int b_hist(int, char*[],Shbltin_t*);
90 extern int b_let(int, char*[],Shbltin_t*);
91 extern int b_read(int, char*[],Shbltin_t*);
92 extern int b_ulimit(int, char*[],Shbltin_t*);
93 extern int b_umask(int, char*[],Shbltin_t*);
94 #ifdef _cmd_universe
95     extern int b_universe(int, char*[],Shbltin_t*);
96 #endif /* _cmd_universe */
97 #if SHOPT_FS_3D
98     extern int b_vpath(int, char*[],Shbltin_t*);
99 #endif /* SHOPT_FS_3D */
100 extern int b_wait(int, char*[],Shbltin_t*);
101 extern int b_whence(int, char*[],Shbltin_t*);
102 
103 extern int b_alarm(int, char*[],Shbltin_t*);
104 extern int b_print(int, char*[],Shbltin_t*);
105 extern int b_printf(int, char*[],Shbltin_t*);
106 extern int b_pwd(int, char*[],Shbltin_t*);
107 extern int b_sleep(int, char*[],Shbltin_t*);
108 extern int b_test(int, char*[],Shbltin_t*);
109 extern int B_echo(int, char*[],Shbltin_t*);
110 #if SHOPT_POLL
111     extern int b_poll(int, char*[],Shbltin_t*);
112 #endif
113 #if 0
114     extern int b_mkservice(int, char*[],Shbltin_t*);
115     extern int b_eloop(int, char*[],Shbltin_t*);
116 #endif
117 #if SHOPT_COMPLETE
118     extern int b_complete(int, char*[],Shbltin_t*);
119 #endif /* SHOPT_COMPLETE */
120 
121 #undef	extern
122 
123 extern const char	e_alrm1[];
124 extern const char	e_alrm2[];
125 extern const char	e_badfun[];
126 extern const char	e_baddisc[];
127 extern const char	e_nofork[];
128 extern const char	e_nosignal[];
129 extern const char	e_nolabels[];
130 extern const char	e_notimp[];
131 extern const char	e_nosupport[];
132 extern const char	e_badbase[];
133 extern const char	e_overlimit[];
134 
135 extern const char	e_eneedsarg[];
136 extern const char	e_oneoperand[];
137 extern const char	e_toodeep[];
138 extern const char	e_badname[];
139 extern const char	e_badsyntax[];
140 #ifdef _cmd_universe
141     extern const char	e_nouniverse[];
142 #endif /* _cmd_universe */
143 extern const char	e_histopen[];
144 extern const char	e_condition[];
145 extern const char	e_badrange[];
146 extern const char	e_trap[];
147 extern const char	e_direct[];
148 extern const char	e_defedit[];
149 extern const char	e_cneedsarg[];
150 extern const char	e_defined[];
151 #if SHOPT_FS_3D
152     extern const char	e_cantset[];
153     extern const char	e_cantget[];
154     extern const char	e_mapping[];
155     extern const char	e_versions[];
156 #endif /* SHOPT_FS_3D */
157 
158 /* for option parsing */
159 extern const char sh_set[];
160 extern const char sh_optalarm[];
161 extern const char sh_optalias[];
162 extern const char sh_optbreak[];
163 extern const char sh_optbuiltin[];
164 extern const char sh_optcd[];
165 extern const char sh_optcommand[];
166 extern const char sh_optcont[];
167 extern const char sh_optdot[];
168 #ifndef ECHOPRINT
169     extern const char sh_optecho[];
170 #endif /* !ECHOPRINT */
171 extern const char sh_opteval[];
172 extern const char sh_optexec[];
173 extern const char sh_optexit[];
174 extern const char sh_optexport[];
175 extern const char sh_optgetopts[];
176 extern const char sh_optbg[];
177 extern const char sh_optdisown[];
178 extern const char sh_optfg[];
179 extern const char sh_opthist[];
180 extern const char sh_optjobs[];
181 extern const char sh_optkill[];
182 extern const char sh_optksh[];
183 extern const char sh_optlet[];
184 extern const char sh_optprint[];
185 extern const char sh_optprintf[];
186 extern const char sh_optpwd[];
187 extern const char sh_optread[];
188 extern const char sh_optreadonly[];
189 extern const char sh_optreturn[];
190 extern const char sh_optset[];
191 extern const char sh_optshift[];
192 extern const char sh_optsleep[];
193 extern const char sh_opttrap[];
194 extern const char sh_opttypeset[];
195 extern const char sh_optulimit[];
196 extern const char sh_optumask[];
197 extern const char sh_optunalias[];
198 extern const char sh_optwait[];
199 #ifdef _cmd_universe
200     extern const char sh_optuniverse[];
201 #endif /* _cmd_universe */
202 extern const char sh_optunset[];
203 #if SHOPT_FS_3D
204     extern const char sh_optvpath[];
205     extern const char sh_optvmap[];
206 #endif /* SHOPT_FS_3D */
207 extern const char sh_optwhence[];
208 #endif /* SYSDECLARE */
209 
210 extern const char e_dict[];
211 
212