Deleted Added
full compact
extern.h (94957) extern.h (95060)
1/* $OpenBSD: extern.h,v 1.29 2002/02/16 21:27:48 millert Exp $ */
2/* $NetBSD: extern.h,v 1.3 1996/01/13 23:25:24 pk Exp $ */
3
1/*-
2 * Copyright (c) 1991, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * This code is derived from software contributed to Berkeley by
6 * Ozan Yigit at York University.
7 *
8 * Redistribution and use in source and binary forms, with or without

--- 20 unchanged lines hidden (view full) ---

29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34 * SUCH DAMAGE.
35 *
36 * @(#)extern.h 8.1 (Berkeley) 6/6/93
4/*-
5 * Copyright (c) 1991, 1993
6 * The Regents of the University of California. All rights reserved.
7 *
8 * This code is derived from software contributed to Berkeley by
9 * Ozan Yigit at York University.
10 *
11 * Redistribution and use in source and binary forms, with or without

--- 20 unchanged lines hidden (view full) ---

32 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
33 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
34 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
35 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
36 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
37 * SUCH DAMAGE.
38 *
39 * @(#)extern.h 8.1 (Berkeley) 6/6/93
37 * $FreeBSD: head/usr.bin/m4/extern.h 94957 2002-04-17 17:26:32Z jmallett $
40 * $FreeBSD: head/usr.bin/m4/extern.h 95060 2002-04-19 17:26:21Z jmallett $
38 */
39
41 */
42
40int expr(char *);
41ndptr addent(char *);
42void chrsave(int);
43void cleanup(int);
44void dochc(char *[], int);
45void dochq(char *[], int);
46void dodefine(char *, char *);
47void dodefn(char *);
48void dodiv(int);
49void dodump(char *[], int);
50void doifelse(char *[], int);
51int doincl(char *);
52int dopaste(char *);
53void dopushdef(char *, char *);
54void dosub(char *[], int);
55void doundiv(char *[], int);
56void emitline(void);
57void eval(char *[], int, int);
58void expand(char *[], int);
59void getdiv(int);
60int hash(char *);
61int indx(char *, char *);
62void killdiv(void);
63ndptr lookup(char *);
64void map(char *, char *, char *, char *);
65void onintr(int);
66void pbnum(int);
67void pbstr(unsigned char *);
68void putback(int);
69void remhash(char *, int);
70void usage(void);
43/* eval.c */
44extern void eval(const char *[], int, int);
45extern void dodefine(const char *, const char *);
46extern unsigned long expansion_id;
71
47
48/* expr.c */
49extern int expr(const char *);
50
51/* gnum4.c */
52extern void addtoincludepath(const char *);
53extern struct input_file *fopen_trypath(struct input_file *, const char *);
54extern void doindir(const char *[], int);
55extern void dobuiltin(const char *[], int);
56extern void dopatsubst(const char *[], int);
57extern void doregexp(const char *[], int);
58
59extern void doprintlineno(struct input_file *);
60extern void doprintfilename(struct input_file *);
61
62extern void doesyscmd(const char *);
63
64
65/* look.c */
66extern ndptr addent(const char *);
67extern unsigned hash(const char *);
68extern ndptr lookup(const char *);
69extern void remhash(const char *, int);
70
71/* main.c */
72extern void outputstr(const char *);
73extern int builtin_type(const char *);
74extern char *builtin_realname(int);
75extern void emitline(void);
76
77/* misc.c */
78extern void chrsave(int);
79extern char *compute_prevep(void);
80extern void getdiv(int);
81extern ptrdiff_t indx(const char *, const char *);
82extern void initspaces(void);
83extern void killdiv(void);
84extern void onintr(int);
85extern void pbnum(int);
86extern void pbunsigned(unsigned long);
87extern void pbstr(const char *);
88extern void putback(int);
89extern void *xalloc(size_t);
90extern char *xstrdup(const char *);
91extern void usage(void);
92extern void resizedivs(int);
93extern size_t buffer_mark(void);
94extern void dump_buffer(FILE *, size_t);
95
96extern int obtain_char(struct input_file *);
97extern void set_input(struct input_file *, FILE *, const char *);
98extern void release_input(struct input_file *);
99
100/* speeded-up versions of chrsave/putback */
101#define PUTBACK(c) \
102 do { \
103 if (bp >= endpbb) \
104 enlarge_bufspace(); \
105 *bp++ = (c); \
106 } while(0)
107
108#define CHRSAVE(c) \
109 do { \
110 if (ep >= endest) \
111 enlarge_strspace(); \
112 *ep++ = (c); \
113 } while(0)
114
115/* and corresponding exposure for local symbols */
116extern void enlarge_bufspace(void);
117extern void enlarge_strspace(void);
118extern char *endpbb;
119extern char *endest;
120
121/* trace.c */
122extern void mark_traced(const char *, int);
123extern int is_traced(const char *);
124extern void trace_file(const char *);
125extern ssize_t trace(const char **, int, struct input_file *);
126extern void finish_trace(size_t);
127extern int traced_macros;
128extern void set_trace_flags(const char *);
129extern FILE *traceout;
130
72extern ndptr hashtab[]; /* hash table for macros etc. */
131extern ndptr hashtab[]; /* hash table for macros etc. */
73extern stae mstack[]; /* stack of m4 machine */
132extern stae *mstack; /* stack of m4 machine */
133extern char *sstack; /* shadow stack, for string space extension */
74extern FILE *active; /* active output file pointer */
134extern FILE *active; /* active output file pointer */
75extern FILE *infile[]; /* input file stack (0=stdin) */
76extern char *inname[]; /* names of these input files */
77extern int inlineno[]; /* current number in each input*/
78extern FILE *outfile[]; /* diversion array(0=bitbucket) */
135extern struct input_file infile[];/* input file stack (0=stdin) */
136extern char *inname[]; /* names of these input files */
137extern int inlineno[]; /* current number in each input file */
138extern FILE **outfile; /* diversion array(0=bitbucket) */
139extern int maxout; /* maximum number of diversions */
79extern int fp; /* m4 call frame pointer */
80extern int ilevel; /* input file stack pointer */
81extern int oindex; /* diversion index. */
82extern int sp; /* current m4 stack pointer */
140extern int fp; /* m4 call frame pointer */
141extern int ilevel; /* input file stack pointer */
142extern int oindex; /* diversion index. */
143extern int sp; /* current m4 stack pointer */
83extern unsigned char *bp; /* first available character */
84extern unsigned char buf[]; /* push-back buffer */
85extern unsigned char *bufbase; /* buffer base for this ilevel */
86extern unsigned char *bbase[]; /* buffer base per ilevel */
87extern char ecommt; /* end character for comment */
88extern char *endest; /* end of string space */
89extern unsigned char *endpbb; /* end of push-back buffer */
144extern char *bp; /* first available character */
145extern char *buf; /* push-back buffer */
146extern char *bufbase; /* buffer base for this ilevel */
147extern char *bbase[]; /* buffer base per ilevel */
148extern char ecommt[MAXCCHARS+1];/* end character for comment */
90extern char *ep; /* first free char in strspace */
149extern char *ep; /* first free char in strspace */
91extern char lquote; /* left quote character (`) */
92extern char *m4dir; /* directory for temporary files */
93extern char *m4temp; /* filename for diversions */
150extern char lquote[MAXCCHARS+1];/* left quote character (`) */
94extern char *m4wraps; /* m4wrap string default. */
95extern char *null; /* as it says.. just a null. */
151extern char *m4wraps; /* m4wrap string default. */
152extern char *null; /* as it says.. just a null. */
96extern char rquote; /* right quote character (') */
97extern char scommt; /* start character for comment */
153extern char rquote[MAXCCHARS+1];/* right quote character (') */
154extern char scommt[MAXCCHARS+1];/* start character for comment */
98extern int synccpp; /* Line synchronisation for C preprocessor */
155extern int synccpp; /* Line synchronisation for C preprocessor */
99extern int chscratch; /* Scratch space for gpbc() macro */
156extern int chscratch; /* Scratch space for gpbc() macro */
157
158extern int mimic_gnu; /* behaves like gnu-m4 */