1*35130Smarc /*
2*35130Smarc 
3*35130Smarc  *      Copyright (c) 1984, 1985, 1986 AT&T
4*35130Smarc  *      All Rights Reserved
5*35130Smarc 
6*35130Smarc  *      THIS IS UNPUBLISHED PROPRIETARY SOURCE
7*35130Smarc  *      CODE OF AT&T.
8*35130Smarc  *      The copyright notice above does not
9*35130Smarc  *      evidence any actual or intended
10*35130Smarc  *      publication of such source code.
11*35130Smarc 
12*35130Smarc  */
13*35130Smarc /* @(#)builtins.h	1.1 */
14*35130Smarc 
15*35130Smarc /* table of shell builtins */
16*35130Smarc /* currently can not be more than SYSMAX */
17*35130Smarc 
18*35130Smarc #define SYSMAX		255
19*35130Smarc /* The following commands up to SYSSPECIAL treat parameter lists specially */
20*35130Smarc /* They do not evaluate in-line with command substitution */
21*35130Smarc /* Also, commands below SYSNULL cause a script to abort on errors */
22*35130Smarc #define SYSEXEC		1
23*35130Smarc #define SYSLOGIN	2
24*35130Smarc #define SYSFC		3
25*35130Smarc #define SYSEVAL		4
26*35130Smarc #define SYSDOT 		5
27*35130Smarc #define SYSRETURN	6
28*35130Smarc #define SYSRDONLY	7
29*35130Smarc #define SYSXPORT 	8
30*35130Smarc #define SYSTYPESET	9
31*35130Smarc #define SYSNULL 	10
32*35130Smarc #define	SYSSHFT		11
33*35130Smarc #define SYSCD 		12
34*35130Smarc #define SYSSPECIAL	12	/* end of special commands */
35*35130Smarc #define SYSEXIT		13
36*35130Smarc #define SYSULIMIT	14
37*35130Smarc #define SYSCONT 	15
38*35130Smarc #define SYSBREAK 	16
39*35130Smarc #define SYSTRAP 	17
40*35130Smarc #define SYSTIMES 	18
41*35130Smarc #define SYSUMASK	19
42*35130Smarc #define SYSWAIT		20
43*35130Smarc #define SYSREAD		21
44*35130Smarc #define SYSSET		22
45*35130Smarc #define SYSUNSET 	23
46*35130Smarc #define SYSLET		24
47*35130Smarc #define SYSALIAS	25
48*35130Smarc #define SYSUNALIAS	26
49*35130Smarc #define SYSWHENCE	27
50*35130Smarc #define SYSTEST		28
51*35130Smarc #define SYSPRINT	29
52*35130Smarc #define SYSECHO		30
53*35130Smarc #define SYSPWD		31
54*35130Smarc #define SYSFG		32
55*35130Smarc #define SYSBG		33
56*35130Smarc #define	SYSJOBS		34
57*35130Smarc #define SYSKILL		35
58*35130Smarc #ifdef apollo
59*35130Smarc #define	SYSINLIB	36
60*35130Smarc #define	SYSINPROCESS	37
61*35130Smarc #endif	/* apollo */
62*35130Smarc 
63*35130Smarc /* structure for builtin shell variable names and aliases */
64*35130Smarc struct name_value
65*35130Smarc {
66*35130Smarc #ifdef apollo
67*35130Smarc 	/* you can't readonly pointers */
68*35130Smarc 	char	nv_name[12];
69*35130Smarc 	char	nv_value[20];
70*35130Smarc #else
71*35130Smarc 	char	*nv_name;
72*35130Smarc 	char	*nv_value;
73*35130Smarc #endif	/* apollo */
74*35130Smarc };
75*35130Smarc 
76*35130Smarc /* The following defines are coordinated with data in msg.c */
77*35130Smarc 
78*35130Smarc #define	PATHNOD		(bltin_nodes)
79*35130Smarc #define PS1NOD		(bltin_nodes+1)
80*35130Smarc #define PS2NOD		(bltin_nodes+2)
81*35130Smarc #define IFSNOD		(bltin_nodes+3)
82*35130Smarc #define PWDNOD		(bltin_nodes+4)
83*35130Smarc #define HOME		(bltin_nodes+5)
84*35130Smarc #define MAILNOD		(bltin_nodes+6)
85*35130Smarc #define REPLYNOD	(bltin_nodes+7)
86*35130Smarc #define SHELLNOD	(bltin_nodes+8)
87*35130Smarc #define EDITNOD		(bltin_nodes+9)
88*35130Smarc #define MCHKNOD		(bltin_nodes+10)
89*35130Smarc #define RANDNOD		(bltin_nodes+11)
90*35130Smarc #define ENVNOD		(bltin_nodes+12)
91*35130Smarc #define HISTFILE	(bltin_nodes+13)
92*35130Smarc #define HISTSIZE	(bltin_nodes+14)
93*35130Smarc #define FCEDNOD		(bltin_nodes+15)
94*35130Smarc #define CDPNOD		(bltin_nodes+16)
95*35130Smarc #define MAILPNOD	(bltin_nodes+17)
96*35130Smarc #define PS3NOD		(bltin_nodes+18)
97*35130Smarc #define OLDPWDNOD	(bltin_nodes+19)
98*35130Smarc #define VISINOD		(bltin_nodes+20)
99*35130Smarc #define COLUMNS		(bltin_nodes+21)
100*35130Smarc #define LINES		(bltin_nodes+22)
101*35130Smarc #define PPIDNOD		(bltin_nodes+23)
102*35130Smarc #define L_ARGNOD	(bltin_nodes+24)
103*35130Smarc #define TMOUTNOD	(bltin_nodes+25)
104*35130Smarc #define SECONDS		(bltin_nodes+26)
105*35130Smarc #ifdef ACCT
106*35130Smarc #define ACCTNOD 	(bltin_nodes+27)
107*35130Smarc #define NNODES	28
108*35130Smarc #else
109*35130Smarc #define NNODES	27
110*35130Smarc #endif	/* ACCT */
111*35130Smarc #ifdef BSD
112*35130Smarc #define NALIAS	29
113*35130Smarc #else
114*35130Smarc #define NALIAS	28
115*35130Smarc #endif	/* BSD */
116*35130Smarc extern struct Namnod *bltin_nodes;
117*35130Smarc extern struct name_value node_names[];
118*35130Smarc extern struct name_value alias_names[];
119*35130Smarc #ifdef BSD
120*35130Smarc extern char	*limit_names[];
121*35130Smarc #endif	/* BSD */
122*35130Smarc 
123