1 void addrule(char*, Word*, char*, Word*, int, int, char*);
2 void addrules(Word*, Word*, char*, int, int, char*);
3 void addw(Word*, char*);
4 int assline(Biobuf *, Bufblock *);
5 long atimeof(int,char*);
7 void bufcpy(Bufblock *, char *, int);
8 Envy *buildenv(Job*, int);
10 char *charin(char *, char *);
13 char *copyq(char*, Rune, Bufblock*);
17 void dumpa(char*, Arc*);
18 void dumpj(char*, Job*, int);
19 void dumpn(char*, Node*);
20 void dumpr(char*, Rule*);
22 void dumpw(char*, Word*);
23 int escapetoken(Biobuf*, Bufblock*, int, int);
25 int execsh(char*, char*, Bufblock*, Envy*);
27 char *expandquote(char*, Rune, Bufblock*);
28 void expunge(int, char*);
29 void freebuf(Bufblock*);
32 void growbuf(Bufblock *);
34 void insert(Bufblock *, int);
37 void killchildren(char*);
40 int match(char*, char*, char*);
42 ulong mkmtime(char*, int);
44 Arc *newarc(Node*, Rule*, char*, Resub*);
45 Bufblock *newbuf(void);
46 Job *newjob(Rule*, Node*, char*, char**, Word*, Word*, Word*, Word*);
48 int nextrune(Biobuf*, int);
52 int outofdate(Node*, Arc*, int);
53 void parse(char*, int, int);
54 int pipecmd(char*, Envy*, int*);
56 void rcopy(char**, Resub*, int);
58 void *Realloc(void*, int);
59 void rinsert(Bufblock *, Rune);
62 void setvar(char*, void*);
64 void shprint(char*, Envy*, Bufblock*);
66 void subst(char*, char*, char*, int);
67 Symtab *symlook(char*, int, void*);
68 void symtraverse(int, void(*)(Symtab*));
70 long timeof(char*, int);
72 void update(int, Node*);
76 int waitup(int, int*);
78 int work(Node*, Node*, Arc*);
79 char *wtos(Word*, int);