home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 1 / ARM_CLUB_CD.iso / contents / apps / program / d / fue / h / EVAR < prev   
Encoding:
Text File  |  1991-06-01  |  10.7 KB  |  272 lines

  1. /*      EVAR.H: Environment and user variable definitions
  2.                 for MicroEMACS
  3.  
  4.                 written 1986 by Daniel Lawrence
  5. */
  6.  
  7. /*
  8.  mods -   -may-91   div     added cftype env var
  9. */
  10.  
  11. /*      structure to hold user variables and their definitions  */
  12.  
  13. typedef struct UVAR {
  14.         char u_name[NVSIZE + 1];               /* name of user variable */
  15.         char *u_value;                          /* value (string) */
  16. } UVAR;
  17.  
  18. /*      current user variables (This structure will probably change)    */
  19.  
  20. #define MAXVARS         512
  21.  
  22. UVAR NOSHARE uv[MAXVARS + 1];   /* user variables */
  23.  
  24. /*      list of recognized environment variables        */
  25.  
  26. NOSHARE char *envars[] = {
  27.         "acount",               /* # of chars until next auto-save */
  28.         "asave",                /* # of chars between auto-saves */
  29.         "bufhook",              /* enter buffer switch hook */
  30.         "cbflags",              /* current buffer flags */
  31.         "cbufname",             /* current buffer name */
  32.         "cfname",               /* current file name */
  33.         "cftype",               /* current file type - div */
  34.         "cmdhook",              /* command loop hook */
  35.         "cmode",                /* mode of current buffer */
  36.         "curchar",              /* current character under the cursor */
  37.         "curcol",               /* current column pos of cursor */
  38.         "curline",              /* current line in file */
  39.         "curwidth",             /* current screen width */
  40.         "cwline",               /* current screen line in window */
  41.         "debug",                /* macro debugging */
  42.         "diagflag",             /* diagonal mouse movements enabled? */
  43.         "discmd",               /* display commands on command line */
  44.         "disinp",               /* display command line input characters */
  45.         "exbhook",              /* exit buffer switch hook */
  46.         "fcol",                 /* first displayed column in curent window */
  47.         "fillcol",              /* current fill column */
  48.         "flicker",              /* flicker supression */
  49.         "gflags",               /* global internal emacs flags */
  50.         "gmode",                /* global modes */
  51.         "hardtab",              /* current hard tab size */
  52.         "hjump",                /* horizontal screen jump size */
  53.         "hscroll",              /* horizontal scrolling flag */
  54.         "kill",                 /* kill buffer (read only) */
  55.         "language",             /* language of text messages */
  56.         "lastkey",              /* last keyboard char struck */
  57.         "lastmesg",             /* last string mlwrite()ed */
  58.         "line",                 /* text of current line */
  59.         "lmargin",              /* left margin (enclosing fold) */
  60.         "ltype",                /* line type, normal, start of fold etc */
  61.         "lwidth",               /* width of current line */
  62.         "match",                /* last matched magic pattern */
  63.         "modeflag",             /* Modelines displayed flag */
  64.         "msflag",               /* activate mouse? */
  65.         "oldcrypt",             /* use old(broken) encryption */
  66.         "pagelen",              /* number of lines used by editor */
  67.         "palette",              /* current palette string */
  68.         "pending",              /* type ahead pending flag */
  69.         "progname",             /* returns current prog name - "MicroEMACS" */
  70.         "ram",                  /* ram in use by malloc */
  71.         "readhook",             /* read file execution hook */
  72.         "region",               /* current region (read only) */
  73.         "replace",              /* replacement pattern */
  74.         "rval",                 /* child process return value */
  75.         "search",               /* search pattern */
  76.         "seed",                 /* current random number seed */
  77.         "softtab",              /* current soft tab size */
  78.         "sres",                 /* current screen resolution */
  79.         "ssave",                /* safe save flag */
  80.         "sscroll",              /* smooth scrolling flag */
  81.         "status",               /* returns the status of the last command */
  82.         "sterm",                /* search terminator character */
  83.         "target",               /* target for line moves */
  84.         "time",                 /* date and time */
  85.         "tpause",               /* length to pause for paren matching */
  86.         "version",              /* current version number */
  87.         "wline",                /* # of lines in current window */
  88.         "wraphook",             /* wrap word execution hook */
  89.         "writehook",            /* write file hook */
  90.         "xpos",                 /* current mouse X position */
  91.         "ypos",                 /* current mouse Y position */
  92.         "zpos"                  /* current entered fold depth */
  93. };
  94.  
  95. #define NEVARS  sizeof(envars) / sizeof(char *)
  96.  
  97. /*      and its preprocesor definitions         */
  98.  
  99. #define EVACOUNT        0
  100. #define EVASAVE         1
  101. #define EVBUFHOOK       2
  102. #define EVCBFLAGS       3
  103. #define EVCBUFNAME      4
  104. #define EVCFNAME        5
  105. #define EVCFTYPE        6
  106. #define EVCMDHK         7
  107. #define EVCMODE         8
  108. #define EVCURCHAR       9
  109. #define EVCURCOL        10
  110. #define EVCURLINE       11
  111. #define EVCURWIDTH      12
  112. #define EVCWLINE        13
  113. #define EVDEBUG         14
  114. #define EVDIAGFLAG      15
  115. #define EVDISCMD        16
  116. #define EVDISINP        17
  117. #define EVEXBHOOK       18
  118. #define EVFCOL          19
  119. #define EVFILLCOL       20
  120. #define EVFLICKER       21
  121. #define EVGFLAGS        22
  122. #define EVGMODE         23
  123. #define EVHARDTAB       24
  124. #define EVHJUMP         25
  125. #define EVHSCROLL       26
  126. #define EVKILL          27
  127. #define EVLANG          28
  128. #define EVLASTKEY       29
  129. #define EVLASTMESG      30
  130. #define EVLINE          31
  131. #define EVLMARGIN       32
  132. #define EVLTYPE         33
  133. #define EVLWIDTH        34
  134. #define EVMATCH         35
  135. #define EVMODEFLAG      36
  136. #define EVMSFLAG        37
  137. #define EVOCRYPT        38
  138. #define EVPAGELEN       39
  139. #define EVPALETTE       40
  140. #define EVPENDING       41
  141. #define EVPROGNAME      42
  142. #define EVRAM           43
  143. #define EVREADHK        44
  144. #define EVREGION        45
  145. #define EVREPLACE       46
  146. #define EVRVAL          47
  147. #define EVSEARCH        48
  148. #define EVSEED          49
  149. #define EVSOFTTAB       50
  150. #define EVSRES          51
  151. #define EVSSAVE         52
  152. #define EVSSCROLL       53
  153. #define EVSTATUS        54
  154. #define EVSTERM         55
  155. #define EVTARGET        56
  156. #define EVTIME          57
  157. #define EVTPAUSE        58
  158. #define EVVERSION       59
  159. #define EVWLINE         60
  160. #define EVWRAPHK        61
  161. #define EVWRITEHK       62
  162. #define EVXPOS          63
  163. #define EVYPOS          64
  164. #define EVZPOS          65
  165.  
  166.  
  167. /*      list of recognized user functions       */
  168.  
  169. typedef struct UFUNC {
  170.         char *f_name;  /* name of function */
  171.         int f_type;     /* 1 = monamic, 2 = dynamic */
  172. } UFUNC;
  173.  
  174. #define NILNAMIC        0
  175. #define MONAMIC         1
  176. #define DYNAMIC         2
  177. #define TRINAMIC        3
  178.  
  179. NOSHARE UFUNC funcs[] = {
  180.         "abs", MONAMIC,         /* absolute value of a number */
  181.         "add", DYNAMIC,        /* add two numbers together */
  182.         "and", DYNAMIC,         /* logical and */
  183.         "asc", MONAMIC,         /* char to integer conversion */
  184.         "ban", DYNAMIC,         /* bitwise and   9-10-87  jwm */
  185.         "bin", MONAMIC,         /* loopup what function name is bound to a key */
  186.         "bno", MONAMIC,         /* bitwise not */
  187.         "bor", DYNAMIC,         /* bitwise or    9-10-87  jwm */
  188.         "bxo", DYNAMIC,         /* bitwise xor   9-10-87  jwm */
  189.         "cat", DYNAMIC,         /* concatinate string */
  190.         "chr", MONAMIC,         /* integer to char conversion */
  191.         "div", DYNAMIC,         /* division */
  192.         "env", MONAMIC,         /* retrieve a system environment var */
  193.         "equ", DYNAMIC,         /* logical equality check */
  194.         "exi", MONAMIC,         /* check if a file exists */
  195.         "fin", MONAMIC,         /* look for a file on the path... */
  196.         "gre", DYNAMIC,         /* logical greater than */
  197.         "gtc", NILNAMIC,        /* get 1 emacs command */
  198.         "gtk", NILNAMIC,        /* get 1 charater */
  199.         "ind", MONAMIC,         /* evaluate indirect value */
  200.         "lef", DYNAMIC,         /* left string(string, len) */
  201.         "len", MONAMIC,         /* string length */
  202.         "les", DYNAMIC,         /* logical less than */
  203.         "low", MONAMIC,         /* lower case string */
  204.         "mid", TRINAMIC,        /* mid string(string, pos, len) */
  205.         "mod", DYNAMIC,         /* mod */
  206.         "neg", MONAMIC,         /* negate */
  207.         "not", MONAMIC,         /* logical not */
  208.         "or",  DYNAMIC,         /* logical or */
  209.         "rig", DYNAMIC,         /* right string(string, pos) */
  210.         "rnd", MONAMIC,         /* get a random number */
  211.         "seq", DYNAMIC,         /* string logical equality check */
  212.         "sgr", DYNAMIC,         /* string logical greater than */
  213.         "sin", DYNAMIC,         /* find the index of one string in another */
  214.         "sle", DYNAMIC,         /* string logical less than */
  215.         "slo", DYNAMIC,         /* set lower to upper char translation */
  216.         "sub", DYNAMIC,         /* subtraction */
  217.         "sup", DYNAMIC,         /* set upper to lower char translation */
  218.         "tim", DYNAMIC,         /* multiplication */
  219.         "tri", MONAMIC,         /* trim whitespace off the end of a string */
  220.         "tru", MONAMIC,         /* Truth of the universe logical test */
  221.         "upp", MONAMIC,         /* uppercase string */
  222.         "xla", TRINAMIC         /* XLATE character string translation */
  223. };
  224.  
  225. #define NFUNCS  sizeof(funcs) / sizeof(UFUNC)
  226.  
  227. /*      and its preprocesor definitions         */
  228.  
  229. #define UFABS           0
  230. #define UFADD           1
  231. #define UFAND           2
  232. #define UFASCII         3
  233. #define UFBAND          4
  234. #define UFBIND          5
  235. #define UFBNOT          6
  236. #define UFBOR           7
  237. #define UFBXOR          8
  238. #define UFCAT           9
  239. #define UFCHR           10
  240. #define UFDIV           11
  241. #define UFENV           12
  242. #define UFEQUAL         13
  243. #define UFEXIST         14
  244. #define UFFIND          15
  245. #define UFGREATER       16
  246. #define UFGTCMD         17
  247. #define UFGTKEY         18
  248. #define UFIND           19
  249. #define UFLEFT          20
  250. #define UFLENGTH        21
  251. #define UFLESS          22
  252. #define UFLOWER         23
  253. #define UFMID           24
  254. #define UFMOD           25
  255. #define UFNEG           26
  256. #define UFNOT           27
  257. #define UFOR            28
  258. #define UFRIGHT         29
  259. #define UFRND           30
  260. #define UFSEQUAL        31
  261. #define UFSGREAT        32
  262. #define UFSINDEX        33
  263. #define UFSLESS         34
  264. #define UFSLOWER        35
  265. #define UFSUB           36
  266. #define UFSUPPER        37
  267. #define UFTIMES         38
  268. #define UFTRIM          39
  269. #define UFTRUTH         40
  270. #define UFUPPER         41
  271. #define UFXLATE         42
  272.