home *** CD-ROM | disk | FTP | other *** search
/ back2roots/padua / padua.7z / padua / shell / csh531s.lha / shell.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-06-15  |  6.6 KB  |  276 lines

  1. /*
  2.  * SHELL.H
  3.  *
  4.  * (c)1986 Matthew Dillon     9 October 1986
  5.  *
  6.  *
  7.  * SHELL include file.. contains shell parameters and extern's
  8.  *
  9.  * Version 2.07M by Steve Drew 10-Sep-87
  10.  * Version 4.01A by Carlo Borreo & Cesare Dieni 17-Feb-90
  11.  * Version 5.00L by Urban Mueller 16-Mar-91
  12.  *
  13.  */
  14.  
  15. #define RAW_CONSOLE 1   /* Set to 0 to compile out command line editing */
  16.  
  17. /* uncommented by AMK for SAS/C 6.1 */
  18. /* #define strlen strlen */
  19.  
  20. #ifdef _DCC
  21. # define C_Args
  22. # define FUNCARG(x,y,z) ()
  23. #else
  24. # define FUNCARG(x,y,z) (x,y,z)
  25. # define KICK20
  26. #endif
  27.  
  28.  
  29. /* AMK: more includes for OS 2.0 */
  30.  
  31. #include <exec/types.h>
  32. #include <exec/exec.h>
  33. #include <exec/memory.h>
  34. #include <graphics/gfxbase.h>
  35. #include <graphics/text.h>
  36. #include <intuition/intuitionbase.h>
  37. #include <libraries/dos.h>
  38. #include <libraries/dosextens.h>
  39. #include <libraries/gadtools.h>
  40. #include <libraries/asl.h>
  41. #include <time.h>
  42. #include <ctype.h>
  43. #include <fcntl.h>
  44. #include <stdio.h>
  45. #include <stdlib.h>
  46. #include <string.h>
  47. #include <math.h>
  48. #include <dos/datetime.h>
  49. #include <dos/dosextens.h>
  50. #include <dos/dostags.h>
  51. #include <dos/var.h>
  52. #include <utility/tagitem.h>
  53.  
  54.  
  55. LONG AllocPattern    (STRPTR, ULONG);
  56. LONG MatchThePattern (LONG, STRPTR);
  57. void FreePattern     (LONG);
  58.  
  59.  
  60. typedef struct FileInfoBlock FIB;
  61.  
  62. #ifdef AZTEC_C
  63. # include <functions.h>
  64. # define DEVTAB(x)    (BPTR)(_devtab[x->_unit].fd)
  65. # define CHARSWAIT(x) (x->_bp < x->_bend)
  66. # define RESETIO(x)   (x->_bp = x->_bend)
  67. # define COMPILER "Aztec C 5.0d"
  68. # pragma amicall(PatternBase, 0x48, AllocPattern(a0,d0))
  69. # pragma amicall(PatternBase, 0x60, MatchThePattern(d0,a0))
  70. # pragma amicall(PatternBase, 0x66, FreePattern(d0))
  71. #endif
  72.  
  73. #ifdef LATTICE
  74. # include <proto/all.h>
  75. # include <ios1.h>
  76. /* # define DEVTAB(x)    _ufbs[(x)->_file].ufbfh*/
  77. # define DEVTAB(x)    __ufbs[(x)->_file].ufbfh
  78. # define CHARSWAIT(x) (x->_rcnt != x->_wcnt)
  79. # define RESETIO(x)   (x->_rcnt =  x->_wcnt)
  80.  
  81.   /* AMK: already defined in <ios1.h>, extern struct UFB _ufbs[];*/
  82. # ifndef memmove
  83. # define memmove(t,f,l) movmem((f),(t),(l))
  84. # endif
  85. # define COMPILER "SAS/C 6.2"
  86. # define swapmem(x,y,z) swmem(x,y,z)
  87. # pragma libcall PatternBase AllocPattern 48 0802
  88. # pragma libcall PatternBase MatchThePattern 60 8002
  89. # pragma libcall PatternBase FreePattern 66 001
  90. #endif
  91.  
  92. #ifdef _DCC
  93. # define COMPILER "DICE 2.06"
  94. # define DEVTAB(x)    (_IoFD[x->sd_Fd].fd_Fh)
  95. # define CHARSWAIT(x) (x->sd_RPtr != x->sd_RBuf)
  96. # define RESETIO(x)   (x->sd_RPtr =  x->sd_RBuf)
  97. # define index strchr
  98. # define rindex strrchr
  99.   void * AllocMem(long byteSize, long requirements);
  100.   struct MsgPort *FindPort( UBYTE *name );
  101. #endif
  102.  
  103. #undef  toupper
  104. #define toupper(c)    ((c)>='a'&&(c)<='z'?((c)-('a'-'A')):(c))
  105.  
  106. #ifndef MAX
  107. #define MAX(x,y) ((x)>(y) ? (x) : (y))
  108. #endif
  109.  
  110. #define OPT(x) (options & (x))
  111.  
  112. #define MAXSRC        5        /* Max. # of source file levels    */
  113. #define MAXIF        20        /* Max. # of if levels            */
  114. #define MAXALIAS    20        /* Max. # of alias levels        */
  115. #define MAXMYFILES    9        /* Max. # of internal files        */
  116. #define MAXHASH        32        /* Max. #áof hash chains        */
  117. #define MAXFILENAME 30
  118.  
  119. #define LEVEL_SET        0        /* which variable list to use   */
  120. #define LEVEL_ALIAS        1
  121. #define LEVEL_LABEL        2
  122. #define LEVEL_LOCAL        256
  123.  
  124. #define SBYTE signed char
  125. #define MAXMENUS    31    /* GadTools maximum */
  126. #define MAXMENUITEMS    63    /* GadTools maximum */
  127.  
  128. #define VERBOSE_SOURCE 1
  129. #define VERBOSE_ALIAS  2
  130. #define VERBOSE_HILITE 4
  131.  
  132. #define SCAN_FILE     1
  133. #define SCAN_DIR      2
  134. #define SCAN_RECURSE  4
  135. #define SCAN_DIRENTRY 8
  136. #define SCAN_DIREND   16
  137.  
  138. #ifndef NULL
  139. #define NULL 0L
  140. #endif
  141.  
  142. #define CHECKBREAK() dobreak()
  143. #define ISSPACE(c) ((c)==' ' || (c)==9 || (UBYTE)(c)==0xA0)
  144.  
  145. #ifndef AZTEC_C
  146. struct _dev {
  147.     long  fd;
  148.     short mode;
  149.     };
  150. #endif
  151.  
  152. typedef struct hnode {
  153.     struct hnode *next, *prev;        /* doubly linked list */
  154.     char *line;                /* line in history    */
  155. } HIST;
  156.  
  157. typedef struct PErr {
  158.     int errnum;                /* Format of global error lookup */
  159.     char *errstr;
  160. } PERROR;
  161.  
  162. #ifdef MA_AMK
  163. #undef MA_AMK
  164. #endif
  165. /* #define MA_AMK 1 /* */
  166. typedef struct dirptr {                /* Format of directory fetch pointer */
  167.     BPTR lock;                /* lock on directory   */
  168.     FIB *fib;                /* mod'd fib for entry */
  169. #ifdef MA_AMK
  170.     struct DevProc *dvp;            /* for multi-assigns */
  171.     char *dname;                /* for multi-assigns */
  172. #endif
  173. } DPTR;
  174.  
  175. extern HIST *H_head, *H_tail;
  176. extern PERROR Perror[];
  177. extern char **av;
  178. extern char *Current;
  179. extern int  H_len, H_tail_base, H_stack, H_num;
  180. extern int  E_stack;
  181. extern int  Src_stack, If_stack, forward_goto;
  182. extern int  ac;
  183. extern int  max_ac;
  184. extern int  debug, Rval, Verbose, disable, Quit;
  185. extern int  Lastresult, atoierr;
  186. extern int  Exec_abortline;
  187. extern int  S_histlen;
  188. extern unsigned int options;
  189.  
  190. extern FILE *Src_base[MAXSRC];
  191. extern long  Src_pos[MAXSRC];
  192. extern short Src_if[MAXSRC], Src_abort[MAXSRC];
  193. extern char  If_base[MAXIF];
  194. extern struct Process *Myprocess;        /* The shell's process  */
  195. extern struct CommandLineInterface *Mycli;    /* Cli() */
  196. extern struct DosPacket *Mypacket;        /* initialization packet from AmigaDOS */
  197.  
  198. extern char v_titlebar[], v_prompt[], v_hist[], v_histnum[], v_debug[],
  199.     v_verbose[], v_stat[], v_lasterr[], v_cwd[], v_except[], v_passed[],
  200.     v_path[], v_gotofwd[], v_linenum[], v_every[], v_lcd[], v_rxpath[],
  201.     v_hilite[], v_scroll[], v_minrows[], v_result[], v_qcd[], v_noreq[],
  202.     v_value[], v_nobreak[], v_bground[], v_pipe[], v_datefmt[], v_ioerr[],
  203.     v_abbrev[], v_rback[], v_insert[], v_failat[], v_clipri[],
  204.     v_dirformat[], v_nomatch[];
  205.  
  206. extern char o_hilite[], o_lolite[], o_rback[], *o_csh_qcd, o_internal;
  207. extern char o_aux, o_minrows, o_scroll, o_nowindow, o_noraw, o_vt100;
  208. extern char o_nofastscr, o_nobreak, o_bground, o_resident, o_nomatch;
  209. extern char o_pipe[], o_datefmt, o_abbrev, o_insert, *o_every;
  210. extern long o_noreq, o_failat;
  211. extern char Buf[], isalph[], confirmed, asked, *classfile;
  212.  
  213. extern char *MyMem;
  214.  
  215. #define isalphanum(x) isalph[x]
  216.  
  217. typedef struct file_info {
  218.     LONG flags;
  219.     LONG type;
  220.     LONG size;
  221.     LONG blocks;
  222.     char class[12];
  223.     struct DateStamp date;
  224. } FILEINFO;
  225.  
  226. typedef struct pattern {
  227.     int  casedep;
  228.     int  queryflag;
  229.     LONG patptr;
  230.     char pattern[1];
  231. } PATTERN;
  232.  
  233. #define INFO_COMMENT (1<<30)
  234. #define INFO_INFO    (1<<29)
  235.  
  236. typedef struct Class {
  237.     struct Class *next;
  238.     char name[1];
  239. } CLASS;
  240.  
  241. extern CLASS *CRoot, *LastCRoot;
  242. extern struct Window *Win;
  243.  
  244. extern long IoError;
  245.  
  246. typedef struct VNode {
  247.     struct VNode *next;
  248.     long len;
  249.     char *text;
  250.     char name[1];
  251. } NODE;
  252.  
  253. typedef struct VRoot {
  254.     NODE         *first[MAXHASH];
  255.     struct VRoot *parent;
  256. } ROOT;
  257.  
  258.  
  259. struct PathList {
  260.     BPTR pl_NextPath;
  261.     BPTR pl_PathLock;
  262. };
  263.  
  264.  
  265. #if 0
  266. LONG System( UBYTE *command, struct TagItem *tags );
  267. #ifdef AZTEC_C
  268. # pragma amicall(DOSBase, 0x25e, System(d1,d2))
  269. #endif
  270. #ifdef LATTICE
  271. # pragma libcall DOSBase System 25e 2102
  272. # pragma libcall DOSBase DoPkt F0 765432107
  273. #endif
  274. #endif
  275. #include "proto.h"
  276.