1 /* EVAR.H: Environment and user variable definitions 2 for MicroEMACS 3 4 written 1993 by Daniel Lawrence 5 */ 6 7 #define MAXVARS 512 /* Maximum number of global user variables */ 8 9 /* list of recognized environment variables */ 10 11 NOSHARE char *envars[] = { 12 "abbell", /* ring bell on abbreviation expansion? */ 13 "abcap", /* match capitolization in expansions */ 14 "abquick", /* quick, aggressive expansions enabled? */ 15 "acount", /* # of chars until next auto-save */ 16 "asave", /* # of chars between auto-saves */ 17 "bufhook", /* enter buffer switch hook */ 18 "cbflags", /* current buffer flags */ 19 "cbufname", /* current buffer name */ 20 "cfname", /* current file name */ 21 "cmdhook", /* command loop hook */ 22 "cmode", /* mode of current buffer */ 23 "curchar", /* current character under the cursor */ 24 "curcol", /* current column pos of cursor */ 25 "curline", /* current line in file */ 26 "curwidth", /* current screen width */ 27 "curwind", /* current window ordinal on current screen */ 28 "cwline", /* current screen line in window */ 29 "debug", /* macro debugging */ 30 "deskcolor", /* desktop color */ 31 "diagflag", /* diagonal mouse movements enabled? */ 32 "discmd", /* display commands on command line */ 33 "disinp", /* display command line input characters */ 34 "disphigh", /* display high bit characters escaped */ 35 "dispundo", /* display undo depth on command line */ 36 "exbhook", /* exit buffer switch hook */ 37 "exithook", /* exiting emacs hook */ 38 "fcol", /* first displayed column in curent window */ 39 "fillcol", /* current fill column */ 40 "flicker", /* flicker supression */ 41 "fmtlead", /* format command lead characters */ 42 "gflags", /* global internal emacs flags */ 43 "gmode", /* global modes */ 44 "hardtab", /* current hard tab size */ 45 "hilight", /* region # to hilight (255 to turn off) */ 46 "hjump", /* horizontal screen jump size */ 47 "hscrlbar", /* horizontal scroll bar flag */ 48 "hscroll", /* horizontal scrolling flag */ 49 "isterm", /* incremental-search terminator character */ 50 "kill", /* kill buffer (read only) */ 51 "language", /* language of text messages */ 52 "lastkey", /* last keyboard char struck */ 53 "lastmesg", /* last string mlwrite()ed */ 54 "line", /* text of current line */ 55 "lterm", /* current line terminator for writes */ 56 "lwidth", /* width of current line */ 57 "match", /* last matched magic pattern */ 58 "mmove", /* mouse moves events style */ 59 "modeflag", /* Modelines displayed flag */ 60 "msflag", /* activate mouse? */ 61 "newscreen", /* new screen with new buffer? */ 62 "numwind", /* number of windows on current screen */ 63 "orgcol", /* screen origin column */ 64 "orgrow", /* screen origin row */ 65 "os", /* what Operating System? */ 66 "overlap", /* line overlap when paging */ 67 "pagelen", /* number of lines used by editor */ 68 "palette", /* current palette string */ 69 "paralead", /* paragraph leadin characters */ 70 "pending", /* type ahead pending flag */ 71 "popflag", /* pop-up windows active? */ 72 "popwait", /* user wait on end of pop-up window? */ 73 "posflag", /* display point position on modeline? */ 74 "progname", /* returns current prog name - "MicroEMACS" */ 75 "ram", /* ram in use by malloc */ 76 "readhook", /* read file execution hook */ 77 "region", /* current region (read only) */ 78 "replace", /* replacement pattern */ 79 "rval", /* child process return value */ 80 "scrname", /* current screen name */ 81 "search", /* search pattern */ 82 "searchpnt", /* differing search styles (term point) */ 83 "seed", /* current random number seed */ 84 "softtab", /* current soft tab size */ 85 "sres", /* current screen resolution */ 86 "ssave", /* safe save flag */ 87 "sscroll", /* smooth scrolling flag */ 88 "status", /* returns the status of the last command */ 89 "sterm", /* search terminator character */ 90 "target", /* target for line moves */ 91 "time", /* date and time */ 92 "timeflag", /* display time? */ 93 "tpause", /* length to pause for paren matching */ 94 "undoflag", /* currently processing undos */ 95 "version", /* current version number */ 96 "vscrlbar", /* vertical scroll bar flag */ 97 "wchars", /* set of characters legal in words */ 98 "wline", /* # of lines in current window */ 99 "wraphook", /* wrap word execution hook */ 100 "writehook", /* write file hook */ 101 "xpos", /* current mouse X position */ 102 "yankflag", /* point placement at yanked/included text */ 103 "ypos" /* current mouse Y position */ 104 }; 105 106 #define NEVARS sizeof(envars) / sizeof(char *) 107 108 /* and its preprocesor definitions */ 109 110 #define EVABBELL 0 111 #define EVABCAP 1 112 #define EVABQUICK 2 113 #define EVACOUNT 3 114 #define EVASAVE 4 115 #define EVBUFHOOK 5 116 #define EVCBFLAGS 6 117 #define EVCBUFNAME 7 118 #define EVCFNAME 8 119 #define EVCMDHK 9 120 #define EVCMODE 10 121 #define EVCURCHAR 11 122 #define EVCURCOL 12 123 #define EVCURLINE 13 124 #define EVCURWIDTH 14 125 #define EVCURWIND 15 126 #define EVCWLINE 16 127 #define EVDEBUG 17 128 #define EVDESKCLR 18 129 #define EVDIAGFLAG 19 130 #define EVDISCMD 20 131 #define EVDISINP 21 132 #define EVDISPHIGH 22 133 #define EVDISPUNDO 23 134 #define EVEXBHOOK 24 135 #define EVEXITHOOK 25 136 #define EVFCOL 26 137 #define EVFILLCOL 27 138 #define EVFLICKER 28 139 #define EVFMTLEAD 29 140 #define EVGFLAGS 30 141 #define EVGMODE 31 142 #define EVHARDTAB 32 143 #define EVHILITE 33 144 #define EVHJUMP 34 145 #define EVHSCRLBAR 35 146 #define EVHSCROLL 36 147 #define EVISTERM 37 148 #define EVKILL 38 149 #define EVLANG 39 150 #define EVLASTKEY 40 151 #define EVLASTMESG 41 152 #define EVLINE 42 153 #define EVLTERM 43 154 #define EVLWIDTH 44 155 #define EVMATCH 45 156 #define EVMMOVE 46 157 #define EVMODEFLAG 47 158 #define EVMSFLAG 48 159 #define EVNEWSCRN 49 160 #define EVNUMWIND 50 161 #define EVORGCOL 51 162 #define EVORGROW 52 163 #define EVOS 53 164 #define EVOVERLAP 54 165 #define EVPAGELEN 55 166 #define EVPALETTE 56 167 #define EVPARALEAD 57 168 #define EVPENDING 58 169 #define EVPOPFLAG 59 170 #define EVPOPWAIT 60 171 #define EVPOSFLAG 61 172 #define EVPROGNAME 62 173 #define EVRAM 63 174 #define EVREADHK 64 175 #define EVREGION 65 176 #define EVREPLACE 66 177 #define EVRVAL 67 178 #define EVSCRNAME 68 179 #define EVSEARCH 69 180 #define EVSEARCHPNT 70 181 #define EVSEED 71 182 #define EVSOFTTAB 72 183 #define EVSRES 73 184 #define EVSSAVE 74 185 #define EVSSCROLL 75 186 #define EVSTATUS 76 187 #define EVSTERM 77 188 #define EVTARGET 78 189 #define EVTIME 79 190 #define EVTIMEFLAG 80 191 #define EVTPAUSE 81 192 #define EVUNDOFLAG 82 193 #define EVVERSION 83 194 #define EVVSCRLBAR 84 195 #define EVWCHARS 85 196 #define EVWLINE 86 197 #define EVWRAPHK 87 198 #define EVWRITEHK 88 199 #define EVXPOS 89 200 #define EVYANKFLAG 90 201 #define EVYPOS 91 202 203 /* list of recognized user functions */ 204 205 typedef struct UFUNC { 206 char *f_name; /* name of function */ 207 int f_type; /* 1 = monamic, 2 = dynamic */ 208 } UFUNC; 209 210 #define NILNAMIC 0 211 #define MONAMIC 1 212 #define DYNAMIC 2 213 #define TRINAMIC 3 214 215 NOSHARE UFUNC funcs[] = { 216 "abbrev", MONAMIC, /* look up abbreviation */ 217 "abs", MONAMIC, /* absolute value of a number */ 218 "add", DYNAMIC, /* add two numbers together */ 219 "and", DYNAMIC, /* logical and */ 220 "ascii", MONAMIC, /* char to integer conversion */ 221 "band", DYNAMIC, /* bitwise and 9-10-87 jwm */ 222 "bind", MONAMIC, /* loopup what function name is bound to a key */ 223 "bnot", MONAMIC, /* bitwise not */ 224 "bor", DYNAMIC, /* bitwise or 9-10-87 jwm */ 225 "bxor", DYNAMIC, /* bitwise xor 9-10-87 jwm */ 226 "call", MONAMIC, /* call a procedure */ 227 "cat", DYNAMIC, /* concatenate string */ 228 "chr", MONAMIC, /* integer to char conversion */ 229 "divide", DYNAMIC, /* division */ 230 "env", MONAMIC, /* retrieve a system environment var */ 231 "equal", DYNAMIC, /* logical equality check */ 232 "exist", MONAMIC, /* check if a file exists */ 233 "find", MONAMIC, /* look for a file on the path... */ 234 "greater", DYNAMIC, /* logical greater than */ 235 "group", MONAMIC, /* return group match in MAGIC mode */ 236 "gtc", NILNAMIC, /* get 1 emacs command */ 237 "gtk", NILNAMIC, /* get 1 charater */ 238 "indirect", MONAMIC, /* evaluate indirect value */ 239 "isnum", MONAMIC, /* is the arg a number? */ 240 "left", DYNAMIC, /* left string(string, len) */ 241 "length", MONAMIC, /* string length */ 242 "less", DYNAMIC, /* logical less than */ 243 "lower", MONAMIC, /* lower case string */ 244 "mid", TRINAMIC, /* mid string(string, pos, len) */ 245 "mkcol", MONAMIC, /* column position of a mark */ 246 "mkline", MONAMIC, /* line number of a mark */ 247 "modulo", DYNAMIC, /* mod */ 248 "negate", MONAMIC, /* negate */ 249 "not", MONAMIC, /* logical not */ 250 "or", DYNAMIC, /* logical or */ 251 "reverse", MONAMIC, /* reverse */ 252 "right", DYNAMIC, /* right string(string, pos) */ 253 "rnd", MONAMIC, /* get a random number */ 254 "sequal", DYNAMIC, /* string logical equality check */ 255 "sgreater", DYNAMIC, /* string logical greater than */ 256 "sindex", DYNAMIC, /* find the index of one string in another */ 257 "sless", DYNAMIC, /* string logical less than */ 258 "slower", DYNAMIC, /* set lower to upper char translation */ 259 "subtract", DYNAMIC, /* subtraction */ 260 "supper", DYNAMIC, /* set upper to lower char translation */ 261 "times", DYNAMIC, /* multiplication */ 262 "trim", MONAMIC, /* trim whitespace off the end of a string */ 263 "true", MONAMIC, /* Truth of the universe logical test */ 264 "upper", MONAMIC, /* uppercase string */ 265 "xlate", TRINAMIC /* XLATE character string translation */ 266 }; 267 268 #define NFUNCS sizeof(funcs) / sizeof(UFUNC) 269 270 /* and its preprocesor definitions */ 271 272 #define UFABBREV 0 273 #define UFABS 1 274 #define UFADD 2 275 #define UFAND 3 276 #define UFASCII 4 277 #define UFBAND 5 278 #define UFBIND 6 279 #define UFBNOT 7 280 #define UFBOR 8 281 #define UFBXOR 9 282 #define UFCALL 10 283 #define UFCAT 11 284 #define UFCHR 12 285 #define UFDIV 13 286 #define UFENV 14 287 #define UFEQUAL 15 288 #define UFEXIST 16 289 #define UFFIND 17 290 #define UFGREATER 18 291 #define UFGROUP 19 292 #define UFGTCMD 20 293 #define UFGTKEY 21 294 #define UFIND 22 295 #define UFISNUM 23 296 #define UFLEFT 24 297 #define UFLENGTH 25 298 #define UFLESS 26 299 #define UFLOWER 27 300 #define UFMID 28 301 #define UFMKCOL 29 302 #define UFMKLINE 30 303 #define UFMOD 31 304 #define UFNEG 32 305 #define UFNOT 33 306 #define UFOR 34 307 #define UFREVERSE 35 308 #define UFRIGHT 36 309 #define UFRND 37 310 #define UFSEQUAL 38 311 #define UFSGREAT 39 312 #define UFSINDEX 40 313 #define UFSLESS 41 314 #define UFSLOWER 42 315 #define UFSUB 43 316 #define UFSUPPER 44 317 #define UFTIMES 45 318 #define UFTRIM 46 319 #define UFTRUTH 47 320 #define UFUPPER 48 321 #define UFXLATE 49 322