options.h revision 1.7 1 1.7 cgd /* $NetBSD: options.h,v 1.7 1995/03/21 09:09:53 cgd Exp $ */
2 1.7 cgd
3 1.1 cgd /*-
4 1.5 jtc * Copyright (c) 1991, 1993
5 1.5 jtc * The Regents of the University of California. All rights reserved.
6 1.1 cgd *
7 1.1 cgd * This code is derived from software contributed to Berkeley by
8 1.1 cgd * Kenneth Almquist.
9 1.1 cgd *
10 1.1 cgd * Redistribution and use in source and binary forms, with or without
11 1.1 cgd * modification, are permitted provided that the following conditions
12 1.1 cgd * are met:
13 1.1 cgd * 1. Redistributions of source code must retain the above copyright
14 1.1 cgd * notice, this list of conditions and the following disclaimer.
15 1.1 cgd * 2. Redistributions in binary form must reproduce the above copyright
16 1.1 cgd * notice, this list of conditions and the following disclaimer in the
17 1.1 cgd * documentation and/or other materials provided with the distribution.
18 1.1 cgd * 3. All advertising materials mentioning features or use of this software
19 1.1 cgd * must display the following acknowledgement:
20 1.1 cgd * This product includes software developed by the University of
21 1.1 cgd * California, Berkeley and its contributors.
22 1.1 cgd * 4. Neither the name of the University nor the names of its contributors
23 1.1 cgd * may be used to endorse or promote products derived from this software
24 1.1 cgd * without specific prior written permission.
25 1.1 cgd *
26 1.1 cgd * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
27 1.1 cgd * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28 1.1 cgd * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
29 1.1 cgd * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
30 1.1 cgd * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
31 1.1 cgd * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
32 1.1 cgd * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
33 1.1 cgd * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
34 1.1 cgd * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
35 1.1 cgd * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
36 1.1 cgd * SUCH DAMAGE.
37 1.1 cgd *
38 1.7 cgd * @(#)options.h 8.1 (Berkeley) 5/31/93
39 1.1 cgd */
40 1.1 cgd
41 1.1 cgd struct shparam {
42 1.1 cgd int nparam; /* number of positional parameters (without $0) */
43 1.1 cgd char malloc; /* true if parameter list dynamicly allocated */
44 1.1 cgd char **p; /* parameter list */
45 1.1 cgd char **optnext; /* next parameter to be processed by getopts */
46 1.1 cgd char *optptr; /* used by getopts */
47 1.1 cgd };
48 1.1 cgd
49 1.1 cgd
50 1.1 cgd
51 1.5 jtc #define eflag optlist[0].val
52 1.5 jtc #define fflag optlist[1].val
53 1.5 jtc #define Iflag optlist[2].val
54 1.5 jtc #define iflag optlist[3].val
55 1.5 jtc #define mflag optlist[4].val
56 1.5 jtc #define nflag optlist[5].val
57 1.5 jtc #define sflag optlist[6].val
58 1.5 jtc #define xflag optlist[7].val
59 1.5 jtc #define vflag optlist[8].val
60 1.5 jtc #define Vflag optlist[9].val
61 1.5 jtc #define Eflag optlist[10].val
62 1.5 jtc #define Cflag optlist[11].val
63 1.5 jtc #define aflag optlist[12].val
64 1.5 jtc #define bflag optlist[13].val
65 1.5 jtc #define uflag optlist[14].val
66 1.5 jtc
67 1.5 jtc #define NOPTS 15
68 1.5 jtc
69 1.5 jtc struct optent {
70 1.5 jtc const char *name;
71 1.5 jtc const char letter;
72 1.5 jtc char val;
73 1.5 jtc };
74 1.1 cgd
75 1.1 cgd #ifdef DEFINE_OPTIONS
76 1.5 jtc struct optent optlist[NOPTS] = {
77 1.5 jtc "errexit", 'e', 0,
78 1.5 jtc "noglob", 'f', 0,
79 1.5 jtc "ignoreeof", 'I', 0,
80 1.5 jtc "interactive", 'i', 0,
81 1.5 jtc "monitor", 'm', 0,
82 1.5 jtc "noexec", 'n', 0,
83 1.5 jtc "stdin", 's', 0,
84 1.5 jtc "xtrace", 'x', 0,
85 1.5 jtc "verbose", 'v', 0,
86 1.5 jtc "vi", 'V', 0,
87 1.5 jtc "emacs", 'E', 0,
88 1.5 jtc "noclobber", 'C', 0,
89 1.5 jtc "allexport", 'a', 0,
90 1.5 jtc "notify", 'b', 0,
91 1.5 jtc "nounset", 'u', 0,
92 1.5 jtc };
93 1.1 cgd #else
94 1.5 jtc extern struct optent optlist[NOPTS];
95 1.1 cgd #endif
96 1.1 cgd
97 1.1 cgd
98 1.1 cgd extern char *minusc; /* argument to -c option */
99 1.1 cgd extern char *arg0; /* $0 */
100 1.1 cgd extern struct shparam shellparam; /* $@ */
101 1.1 cgd extern char **argptr; /* argument list for builtin commands */
102 1.1 cgd extern char *optarg; /* set by nextopt */
103 1.1 cgd extern char *optptr; /* used by nextopt */
104 1.1 cgd
105 1.1 cgd
106 1.1 cgd #ifdef __STDC__
107 1.1 cgd void procargs(int, char **);
108 1.1 cgd void setparam(char **);
109 1.1 cgd void freeparam(struct shparam *);
110 1.1 cgd int nextopt(char *);
111 1.1 cgd #else
112 1.1 cgd void procargs();
113 1.1 cgd void setparam();
114 1.1 cgd void freeparam();
115 1.1 cgd int nextopt();
116 1.1 cgd #endif
117