This commit was manufactured by cvs2svn to create tag 'FreeBSD-release/1.0'.
[unix-history] / usr.bin / m4 / extr.h
CommitLineData
78ed81a3 1/* Header : extr.h
2 Author : Ozan Yigit
3 Updated: %G%
4*/
5#ifndef putback
15637ed4
RG
6
7extern ndptr hashtab[]; /* hash table for macros etc. */
78ed81a3 8extern char buf[]; /* push-back buffer */
15637ed4 9extern char *bp; /* first available character */
78ed81a3 10extern char *bb; /* current beginning of bp */
15637ed4 11extern char *endpbb; /* end of push-back buffer */
78ed81a3 12extern stae mstack[]; /* stack of m4 machine */
15637ed4
RG
13extern char *ep; /* first free char in strspace */
14extern char *endest; /* end of string space */
78ed81a3 15extern int sp; /* current m4 stack pointer */
16extern int fp; /* m4 call frame pointer */
17extern char *bbstack[];
15637ed4
RG
18extern FILE *infile[]; /* input file stack (0=stdin) */
19extern FILE *outfile[]; /* diversion array(0=bitbucket)*/
20extern FILE *active; /* active output file pointer */
21extern char *m4temp; /* filename for diversions */
78ed81a3 22extern int UNIQUE; /* where to change m4temp */
23extern int ilevel; /* input file stack pointer */
24extern int oindex; /* diversion index.. */
15637ed4
RG
25extern char *null; /* as it says.. just a null.. */
26extern char *m4wraps; /* m4wrap string default.. */
78ed81a3 27extern char lquote; /* left quote character (`) */
28extern char rquote; /* right quote character (') */
29extern char vquote; /* verbatim quote character ^V */
30extern char scommt; /* start character for comment */
31extern char ecommt; /* end character for comment */
32
33/* inlined versions of chrsave() and putback() */
34
35extern char pbmsg[]; /* error message for putback */
36extern char csmsg[]; /* error message for chrsave */
37
38#define putback(c) do { if (bp >= endpbb) error(pbmsg); *bp++ = c; } while (0)
39#define chrsave(c) do { if (ep >= endest) error(csmsg); *ep++ = c; } while (0)
40
41/* getopt() interface */
42
43extern char * optarg;
44extern int optind;
45extern int getopt();
46
47#ifdef __STDC__
48#include <stdlib.h>
49
50/* functions from misc.c */
51
52extern char * strsave(char *);
53extern int indx(char *, char *);
54extern void pbstr(char *);
55extern void pbqtd(char *);
56extern void pbnum(int);
57extern void pbrad(long int, int, int);
58extern void getdiv(int);
59extern void killdiv();
60extern void error(char *);
61extern void onintr(int);
62extern void usage();
63
64/* functions from look.c */
65
66extern ndptr lookup(char *);
67extern ndptr addent(char *);
68extern void remhash(char *, int);
69extern void addkywd(char *, int);
70
71/* functions from int2str.c */
72
73extern char* int2str(/* char*, int, long */);
74
75/* functions from serv.c */
76
77extern void expand(char **, int);
78extern void dodefine(char *, char *);
79extern void dopushdef(char *, char *);
80extern void dodefn(char *);
81extern void dodump(char **, int);
82extern void doifelse(char **, int);
83extern int doincl(char *);
84extern void dochq(char **, int);
85extern void dochc(char **, int);
86extern void dodiv(int);
87extern void doundiv(char **, int);
88extern void dosub(char **, int);
89extern void map(char *, char *, char *, char *);
90#ifdef EXTENDED
91extern int dopaste(char *);
92extern void m4trim(char **, int);
93extern void dodefqt(char **, int);
94extern void doqutr(char **, int);
95#endif
96
97/* functions from expr.c */
98
99extern long expr(char *);
100
101#else
102
103/* functions from misc.c */
104
105extern char * malloc();
106extern char * strsave();
107extern int indx();
108extern void pbstr();
109extern void pbqtd();
110extern void pbnum();
111extern void pbrad();
112extern void getdiv();
113extern void killdiv();
114extern void error();
115extern int onintr();
116extern void usage();
117
118/* functions from look.c */
119
120extern ndptr lookup();
121extern ndptr addent();
122extern void remhash();
123extern void addkywd();
124
125/* functions from int2str.c */
126
127extern char* int2str(/* char*, int, long */);
128
129/* functions from serv.c */
130
131extern void expand();
132extern void dodefine();
133extern void dopushdef();
134extern void dodefn();
135extern void dodump();
136extern void doifelse();
137extern int doincl();
138extern void dochq();
139extern void dochc();
140extern void dodiv();
141extern void doundiv();
142extern void dosub();
143extern void map();
144#ifdef EXTENDED
145extern int dopaste();
146extern void m4trim();
147extern void dodefqt();
148extern void doqutr();
149#endif
150
151/* functions from expr.c */
152
153extern long expr();
154
155#endif
156#endif