main
defs
1#include <stdio.h>
2#include <signal.h>
3
4#define pwb
5
6#define SHELLCOM "/bin/sh"
7#define TIMETYPE long int
8
9#ifdef gcos
10#undef TIMETYPE
11#define TIMETYPE int
12#endif
13
14/* define FSTATIC to be static on systems with C compilers
15 supporting file-static; otherwise define it to be null
16*/
17#define FSTATIC static
18
19#define HASHSIZE 255
20#define NLEFTS 40
21#define NCHARS 500
22#define NINTS 250
23#define YYLMAX 400
24
25#define ALLDEPS 1
26#define SOMEDEPS 2
27
28
29extern int sigivalue;
30extern int sigqvalue;
31extern int dbgflag;
32extern int prtrflag;
33extern int silflag;
34extern int noexflag;
35extern int noruleflag;
36extern int touchflag;
37extern int questflag;
38extern int ndocoms;
39extern int ignerr;
40extern int okdel;
41extern int inarglist;
42extern char *prompt;
43
44
45
46struct nameblock
47 {
48 struct nameblock *nextp;
49 char *namep;
50 struct lineblock *linep;
51 int done;
52 int septype;
53 TIMETYPE modtime;
54 };
55
56extern struct nameblock *mainname ;
57extern struct nameblock *firstname;
58
59struct lineblock
60 {
61 struct lineblock *nextp;
62 struct depblock *depp;
63 struct shblock *shp;
64 };
65extern struct lineblock *sufflist;
66
67struct depblock
68 {
69 struct depblock *nextp;
70 struct nameblock *depname;
71 };
72
73struct shblock
74 {
75 struct shblock *nextp;
76 char *shbp;
77 };
78
79struct varblock
80 {
81 struct varblock *nextp;
82 char *varname;
83 char *varval;
84 int noreset:1;
85 int used:1;
86 };
87extern struct varblock *firstvar;
88
89struct pattern
90 {
91 struct pattern *nextp;
92 char *patval;
93 };
94extern struct pattern *firstpat;
95
96struct opendir
97 {
98 struct opendir *nextp;
99 FILE * dirfc;
100 char *dirn;
101 };
102extern struct opendir *firstod;
103
104
105struct chain
106 {
107 struct chain *nextp;
108 char *datap;
109 };
110
111extern void *intalloc(int);
112extern char *copys(char *);
113extern char *concat(char *, char *, char *);
114extern TIMETYPE exists(char *);
115extern TIMETYPE prestime(void);
116extern struct nameblock *srchname(char *);
117extern struct nameblock *makename(char *);
118extern struct varblock *varptr(char *);
119extern struct depblock *srchdir(char *, int, struct depblock *);
120extern void disint(void);
121extern void intrupt(int);
122extern void enbint(void (*)(int));
123extern char *logdir(void);
124extern void pexinit(void);
125extern void pexec(char *, char **);