/* * SHELL.H * * Matthew Dillon, 24 Feb 1986 * version 2.01A (Manx ver) by Steve Drew 27 Sep 1986 * mods for 16 bit compiling 4 Oct 1986. Steve Drew. * */ /* set one of these two symbols depending on to use dos Execute() func. * or manx fexecv() function. This flexibility provided because of * rumors that fexecv() doesnt work under 1.2 so can be a temporary * workaround. */ #define USE_FEXEC 1 /* best way to go */ #define USE_EXECUTE 0 #include #include #include #include #include #include #include #include #include #define bmov movmem #define MAXAV 200 /* Max. # arguments */ #define MAXSRC 5 /* Max. # of source file levels */ #define MAXIF 10 /* Max. # of if levels */ #define LEVEL_SET 0 #define LEVEL_ALIAS 1 #define LEVEL_LABEL 2 #define M_RESET 0 #define M_CONT 1 #define V_PROMPT "_prompt" /* Special variable names */ #define V_HIST "_history" #define V_DEBUG "_debug" #define V_VERBOSE "_verbose" #define V_LASTERROR "_lasterror" #define FL_DOLLAR 0x01 /* One of the following */ #define FL_BANG 0x02 #define FL_PERCENT 0x04 #define FL_QUOTE 0x08 #define FL_IDOLLAR 0x10 /* Any or all of the following may be set */ #define FL_EOC 0x20 #define FL_EOL 0x40 #define FL_OVERIDE 0x80 #define FL_WILD 0x100 #define FL_MASK (FL_DOLLAR|FL_BANG|FL_PERCENT|FL_QUOTE) #define VERSION "V2.01A (c)1986 Matthew Dillon. Manx ver(A) By Steve Drew" #undef NULL #define NULL ((void *)0) #define CHECKBREAK() ( breakcheck() ? (printf("^C\n"),1) : 0) struct HIST { struct HIST *next, *prev; /* doubly linked list */ char *line; /* line in history */ }; struct PERROR { int errnum; /* Format of global error lookup */ char *errstr; }; struct DPTR { /* Format of directory fetch pointer */ struct FileLock *lock; /* lock on directory */ struct FileInfoBlock *fib; /* mod'd fib for entry */ }; extern struct HIST *H_head, *H_tail; extern struct PERROR Perror[]; extern struct DPTR *dopen(); extern char *set_var(), *get_var(), *next_word(); extern char *get_history(), *compile_av(); char *malloc(), *strcpy(), *index(), *strcat(), *strncpy(); extern char **expand(); extern char *av[]; extern char *Current; extern int H_len, H_tail_base, H_stack; extern int Src_stack, If_stack; extern int ac; extern int debug, Rval, Verbose, disable, Faillevel, Quit; extern int S_histlen; extern long Uniq; extern struct Process *Myprocess; extern long Cin, Cout; extern char *Cin_name, *Cout_name; extern char *Pipe1, *Pipe2; extern long Src_base[MAXSRC]; extern long Src_pos[MAXSRC]; extern char If_base[MAXIF];