void Abort(void);
void Closedir(int);
int Creat(char*);
int Dup(int, int);
int Dup1(int);
int Eintr(void);
int Executable(char*);
void Execute(word*, word*);
void Exit(char*);
int ForkExecute(char*, char**, int, int, int);
int Globsize(char*);
int Isatty(int);
void Memcpy(void*, void*, long);
void Noerror(void);
int Opendir(char*);
long Read(int, void*, long);
int Readdir(int, void*, int);
long Seek(int, long, long);
void Trapinit(void);
void Unlink(char*);
void Updenv(void);
void Vinit(void);
int Waitfor(int, int);
long Write(int, void*, long);
void addwaitpid(int);
int advance(void);
int back(int);
void cleanhere(char*);
void codefree(code*);
int compile(tree*);
char * list2str(word*);
int count(word*);
void deglob(void*);
void delwaitpid(int);
void dotrap(void);
void freenodes(void);
void freewords(word*);
void globlist(void);
int havewaitpid(int);
int idchr(int);
void inttoascii(char*, long);
void kinit(void);
int mapfd(int);
int match(void*, void*, int);
int matchfn(void*, void*);
char** mkargv(word*);
void clearwaitpids(void);
void panic(char*, int);
void pathinit(void);
void poplist(void);
void popword(void);
void pprompt(void);
void pushlist(void);
void pushredir(int, int, int);
void pushword(char*);
void readhere(void);
word* searchpath(char*);
void setstatus(char*);
void setvar(char*, word*);
void skipnl(void);
void start(code*, int, var*);
int truestatus(void);
void usage(char*);
int wordchr(int);
void yyerror(char*);
int yylex(void);
int yyparse(void);
|