9 date 93.06.12.06.46.16; author jromine; state Exp;
14 date 92.02.09.07.12.48; author jromine; state Exp;
19 date 92.01.23.23.16.05; author jromine; state Exp;
24 date 91.11.28.00.05.59; author jromine; state Exp;
29 date 91.11.28.00.04.48; author jromine; state Exp;
34 date 90.12.27.17.04.12; author mh; state Exp;
39 date 90.04.05.15.06.42; author sources; state Exp;
44 date 90.02.21.15.40.53; author sources; state Exp;
49 date 90.02.21.15.39.50; author sources; state Exp;
54 date 90.02.21.15.38.18; author sources; state Exp;
65 @add %(profile xxx) to return m_find(xxx)
68 @/* @@(#)$Id: fmtcompile.h,v 1.9 1992/02/09 07:12:48 jromine Exp jromine $ */
73 /* types that output text */
74 #define FT_COMP 1 /* the text of a component */
75 #define FT_COMPF 2 /* comp text, filled */
76 #define FT_LIT 3 /* literal text */
77 #define FT_LITF 4 /* literal text, filled */
78 #define FT_CHAR 5 /* a single ascii character */
79 #define FT_NUM 6 /* "value" as decimal number */
80 #define FT_NUMF 7 /* "value" as filled dec number */
81 #define FT_STR 8 /* "str" as text */
82 #define FT_STRF 9 /* "str" as text, filled */
83 #define FT_STRFW 10 /* "str" as text, filled, width in "value" */
84 #define FT_PUTADDR 11 /* split and print address line */
86 /* types that modify the "str" or "value" registers */
87 #define FT_LS_COMP 12 /* set "str" to component text */
88 #define FT_LS_LIT 13 /* set "str" to literal text */
89 #define FT_LS_GETENV 14 /* set "str" to getenv(text) */
90 #define FT_LS_MFIND 15 /* set "str" to m_find(text) */
91 #define FT_LS_TRIM 16 /* trim trailing white space from "str" */
92 #define FT_LV_COMP 17 /* set "value" to comp (as dec. num) */
93 #define FT_LV_COMPFLAG 18 /* set "value" to comp flag word */
94 #define FT_LV_LIT 19 /* set "value" to literal num */
95 #define FT_LV_DAT 20 /* set "value" to dat[n] */
96 #define FT_LV_STRLEN 21 /* set "value" to length of "str" */
97 #define FT_LV_PLUS_L 22 /* set "value" += literal */
98 #define FT_LV_MINUS_L 23 /* set "value" -= literal */
99 #define FT_LV_DIVIDE_L 24 /* set "value" to value / literal */
100 #define FT_LV_MODULO_L 25 /* set "value" to value % literal */
101 #define FT_LV_CHAR_LEFT 26 /* set "value" to char left in output */
103 #define FT_LS_MONTH 27 /* set "str" to tws month */
104 #define FT_LS_LMONTH 28 /* set "str" to long tws month */
105 #define FT_LS_ZONE 29 /* set "str" to tws timezone */
106 #define FT_LS_DAY 30 /* set "str" to tws weekday */
107 #define FT_LS_WEEKDAY 31 /* set "str" to long tws weekday */
108 #define FT_LS_822DATE 32 /* set "str" to 822 date str */
109 #define FT_LS_PRETTY 33 /* set "str" to pretty (?) date str */
110 #define FT_LV_SEC 34 /* set "value" to tws second */
111 #define FT_LV_MIN 35 /* set "value" to tws minute */
112 #define FT_LV_HOUR 36 /* set "value" to tws hour */
113 #define FT_LV_MDAY 37 /* set "value" to tws day of month */
114 #define FT_LV_MON 38 /* set "value" to tws month */
115 #define FT_LV_YEAR 39 /* set "value" to tws year */
116 #define FT_LV_YDAY 40 /* set "value" to tws day of year */
117 #define FT_LV_WDAY 41 /* set "value" to tws weekday */
118 #define FT_LV_ZONE 42 /* set "value" to tws timezone */
119 #define FT_LV_CLOCK 43 /* set "value" to tws clock */
120 #define FT_LV_RCLOCK 44 /* set "value" to now - tws clock */
121 #define FT_LV_DAYF 45 /* set "value" to tws day flag */
122 #define FT_LV_DST 46 /* set "value" to tws daylight savings flag */
123 #define FT_LV_ZONEF 47 /* set "value" to tws timezone flag */
125 #define FT_LS_PERS 48 /* set "str" to person part of addr */
126 #define FT_LS_MBOX 49 /* set "str" to mbox part of addr */
127 #define FT_LS_HOST 50 /* set "str" to host part of addr */
128 #define FT_LS_PATH 51 /* set "str" to route part of addr */
129 #define FT_LS_GNAME 52 /* set "str" to group part of addr */
130 #define FT_LS_NOTE 53 /* set "str" to comment part of addr */
131 #define FT_LS_ADDR 54 /* set "str" to mbox@@host */
132 #define FT_LS_822ADDR 55 /* set "str" to 822 format addr */
133 #define FT_LS_FRIENDLY 56 /* set "str" to "friendly" format addr */
134 #define FT_LV_HOSTTYPE 57 /* set "value" to addr host type */
135 #define FT_LV_INGRPF 58 /* set "value" to addr in-group flag */
136 #define FT_LV_NOHOSTF 59 /* set "value" to addr no-host flag */
139 #define FT_LOCALDATE 60 /* Coerce date to local timezone */
140 #define FT_GMTDATE 61 /* Coerce date to gmt */
142 /* pre-format processing */
143 #define FT_PARSEDATE 62 /* parse comp into a date (tws) struct */
144 #define FT_PARSEADDR 63 /* parse comp into a mailaddr struct */
145 #define FT_FORMATADDR 64 /* let external routine format addr */
146 #define FT_MYMBOX 65 /* do "mymbox" test on comp */
148 /* misc. */ /* ADDTOSEQ only works if you include "options LBL" */
149 #define FT_ADDTOSEQ 66 /* add current msg to a sequence */
151 /* conditionals & control flow (must be last) */
152 #define FT_SAVESTR 67 /* save current str reg */
153 #define FT_DONE 68 /* stop formatting */
154 #define FT_PAUSE 69 /* pause */
155 #define FT_NOP 70 /* nop */
156 #define FT_GOTO 71 /* (relative) goto */
157 #define FT_IF_S_NULL 72 /* test if "str" null */
158 #define FT_IF_S 73 /* test if "str" non-null */
159 #define FT_IF_V_EQ 74 /* test if "value" = literal */
160 #define FT_IF_V_NE 75 /* test if "value" != literal */
161 #define FT_IF_V_GT 76 /* test if "value" > literal */
162 #define FT_IF_MATCH 77 /* test if "str" contains literal */
163 #define FT_IF_AMATCH 78 /* test if "str" starts with literal */
164 #define FT_S_NULL 79 /* V = 1 if "str" null */
165 #define FT_S_NONNULL 80 /* V = 1 if "str" non-null */
166 #define FT_V_EQ 81 /* V = 1 if "value" = literal */
167 #define FT_V_NE 82 /* V = 1 if "value" != literal */
168 #define FT_V_GT 83 /* V = 1 if "value" > literal */
169 #define FT_V_MATCH 84 /* V = 1 if "str" contains literal */
170 #define FT_V_AMATCH 85 /* V = 1 if "str" starts with literal */
172 #define IF_FUNCS FT_S_NULL /* start of "if" functions */
179 put Van Jacobson changes under "options LBL"
184 /* @@(#)$Id: fmtcompile.h,v 1.8 1992/01/23 23:16:05 jromine Exp $ */
187 #define FT_LS_TRIM 15 /* trim trailing white space from "str" */
188 #define FT_LV_COMP 16 /* set "value" to comp (as dec. num) */
189 #define FT_LV_COMPFLAG 17 /* set "value" to comp flag word */
190 #define FT_LV_LIT 18 /* set "value" to literal num */
191 #define FT_LV_DAT 19 /* set "value" to dat[n] */
192 #define FT_LV_STRLEN 20 /* set "value" to length of "str" */
193 #define FT_LV_PLUS_L 21 /* set "value" += literal */
194 #define FT_LV_MINUS_L 22 /* set "value" -= literal */
195 #define FT_LV_DIVIDE_L 23 /* set "value" to value / literal */
196 #define FT_LV_MODULO_L 24 /* set "value" to value % literal */
197 #define FT_LV_CHAR_LEFT 25 /* set "value" to char left in output */
200 #define FT_LS_MONTH 26 /* set "str" to tws month */
201 #define FT_LS_LMONTH 27 /* set "str" to long tws month */
202 #define FT_LS_ZONE 28 /* set "str" to tws timezone */
203 #define FT_LS_DAY 29 /* set "str" to tws weekday */
204 #define FT_LS_WEEKDAY 30 /* set "str" to long tws weekday */
205 #define FT_LS_822DATE 31 /* set "str" to 822 date str */
206 #define FT_LS_PRETTY 32 /* set "str" to pretty (?) date str */
207 #define FT_LV_SEC 33 /* set "value" to tws second */
208 #define FT_LV_MIN 34 /* set "value" to tws minute */
209 #define FT_LV_HOUR 35 /* set "value" to tws hour */
210 #define FT_LV_MDAY 36 /* set "value" to tws day of month */
211 #define FT_LV_MON 37 /* set "value" to tws month */
212 #define FT_LV_YEAR 38 /* set "value" to tws year */
213 #define FT_LV_YDAY 39 /* set "value" to tws day of year */
214 #define FT_LV_WDAY 40 /* set "value" to tws weekday */
215 #define FT_LV_ZONE 41 /* set "value" to tws timezone */
216 #define FT_LV_CLOCK 42 /* set "value" to tws clock */
217 #define FT_LV_RCLOCK 43 /* set "value" to now - tws clock */
218 #define FT_LV_DAYF 44 /* set "value" to tws day flag */
219 #define FT_LV_DST 45 /* set "value" to tws daylight savings flag */
220 #define FT_LV_ZONEF 46 /* set "value" to tws timezone flag */
223 #define FT_LS_PERS 47 /* set "str" to person part of addr */
224 #define FT_LS_MBOX 48 /* set "str" to mbox part of addr */
225 #define FT_LS_HOST 49 /* set "str" to host part of addr */
226 #define FT_LS_PATH 50 /* set "str" to route part of addr */
227 #define FT_LS_GNAME 51 /* set "str" to group part of addr */
228 #define FT_LS_NOTE 52 /* set "str" to comment part of addr */
229 #define FT_LS_ADDR 53 /* set "str" to mbox@@host */
230 #define FT_LS_822ADDR 54 /* set "str" to 822 format addr */
231 #define FT_LS_FRIENDLY 55 /* set "str" to "friendly" format addr */
232 #define FT_LV_HOSTTYPE 56 /* set "value" to addr host type */
233 #define FT_LV_INGRPF 57 /* set "value" to addr in-group flag */
234 #define FT_LV_NOHOSTF 58 /* set "value" to addr no-host flag */
237 #define FT_LOCALDATE 59 /* Coerce date to local timezone */
238 #define FT_GMTDATE 60 /* Coerce date to gmt */
241 #define FT_PARSEDATE 61 /* parse comp into a date (tws) struct */
242 #define FT_PARSEADDR 62 /* parse comp into a mailaddr struct */
243 #define FT_FORMATADDR 63 /* let external routine format addr */
244 #define FT_MYMBOX 64 /* do "mymbox" test on comp */
247 #define FT_ADDTOSEQ 65 /* add current msg to a sequence */
250 #define FT_SAVESTR 66 /* save current str reg */
251 #define FT_DONE 67 /* stop formatting */
252 #define FT_PAUSE 68 /* pause */
253 #define FT_NOP 69 /* nop */
254 #define FT_GOTO 70 /* (relative) goto */
255 #define FT_IF_S_NULL 71 /* test if "str" null */
256 #define FT_IF_S 72 /* test if "str" non-null */
257 #define FT_IF_V_EQ 73 /* test if "value" = literal */
258 #define FT_IF_V_NE 74 /* test if "value" != literal */
259 #define FT_IF_V_GT 75 /* test if "value" > literal */
260 #define FT_IF_MATCH 76 /* test if "str" contains literal */
261 #define FT_IF_AMATCH 77 /* test if "str" starts with literal */
262 #define FT_S_NULL 78 /* V = 1 if "str" null */
263 #define FT_S_NONNULL 79 /* V = 1 if "str" non-null */
264 #define FT_V_EQ 80 /* V = 1 if "value" = literal */
265 #define FT_V_NE 81 /* V = 1 if "value" != literal */
266 #define FT_V_GT 82 /* V = 1 if "value" > literal */
267 #define FT_V_MATCH 83 /* V = 1 if "str" contains literal */
268 #define FT_V_AMATCH 84 /* V = 1 if "str" starts with literal */
271 #define IF_FUNCS FT_S_NULL /* start of "if" functions */
282 /* @@(#)$Id: fmtcompile.h,v 1.7 1991/11/28 00:05:59 jromine Exp jromine $ */
285 #define FT_LV_CHAR_LEFT 24 /* set "value" to char left in output */
288 #define FT_LS_MONTH 25 /* set "str" to tws month */
289 #define FT_LS_LMONTH 26 /* set "str" to long tws month */
290 #define FT_LS_ZONE 27 /* set "str" to tws timezone */
291 #define FT_LS_DAY 28 /* set "str" to tws weekday */
292 #define FT_LS_WEEKDAY 29 /* set "str" to long tws weekday */
293 #define FT_LS_822DATE 30 /* set "str" to 822 date str */
294 #define FT_LS_PRETTY 31 /* set "str" to pretty (?) date str */
295 #define FT_LV_SEC 32 /* set "value" to tws second */
296 #define FT_LV_MIN 33 /* set "value" to tws minute */
297 #define FT_LV_HOUR 34 /* set "value" to tws hour */
298 #define FT_LV_MDAY 35 /* set "value" to tws day of month */
299 #define FT_LV_MON 36 /* set "value" to tws month */
300 #define FT_LV_YEAR 37 /* set "value" to tws year */
301 #define FT_LV_YDAY 38 /* set "value" to tws day of year */
302 #define FT_LV_WDAY 39 /* set "value" to tws weekday */
303 #define FT_LV_ZONE 40 /* set "value" to tws timezone */
304 #define FT_LV_CLOCK 41 /* set "value" to tws clock */
305 #define FT_LV_RCLOCK 42 /* set "value" to now - tws clock */
306 #define FT_LV_DAYF 43 /* set "value" to tws day flag */
307 #define FT_LV_DST 44 /* set "value" to tws daylight savings flag */
308 #define FT_LV_ZONEF 45 /* set "value" to tws timezone flag */
311 #define FT_LS_PERS 46 /* set "str" to person part of addr */
312 #define FT_LS_MBOX 47 /* set "str" to mbox part of addr */
313 #define FT_LS_HOST 48 /* set "str" to host part of addr */
314 #define FT_LS_PATH 49 /* set "str" to route part of addr */
315 #define FT_LS_GNAME 50 /* set "str" to group part of addr */
316 #define FT_LS_NOTE 51 /* set "str" to comment part of addr */
317 #define FT_LS_ADDR 52 /* set "str" to mbox@@host */
318 #define FT_LS_822ADDR 53 /* set "str" to 822 format addr */
319 #define FT_LS_FRIENDLY 54 /* set "str" to "friendly" format addr */
320 #define FT_LV_HOSTTYPE 55 /* set "value" to addr host type */
321 #define FT_LV_INGRPF 56 /* set "value" to addr in-group flag */
322 #define FT_LV_NOHOSTF 57 /* set "value" to addr no-host flag */
325 #define FT_LOCALDATE 58 /* Coerce date to local timezone */
326 #define FT_GMTDATE 59 /* Coerce date to gmt */
329 #define FT_PARSEDATE 60 /* parse comp into a date (tws) struct */
330 #define FT_PARSEADDR 61 /* parse comp into a mailaddr struct */
331 #define FT_FORMATADDR 62 /* let external routine format addr */
332 #define FT_MYMBOX 63 /* do "mymbox" test on comp */
337 #define FT_ADDTOSEQ 64 /* add current msg to a sequence */
341 #define FT_SAVESTR 65 /* save current str reg */
342 #define FT_DONE 66 /* stop formatting */
343 #define FT_PAUSE 67 /* pause */
344 #define FT_NOP 68 /* nop */
345 #define FT_GOTO 69 /* (relative) goto */
346 #define FT_IF_S_NULL 70 /* test if "str" null */
347 #define FT_IF_S 71 /* test if "str" non-null */
348 #define FT_IF_V_EQ 72 /* test if "value" = literal */
349 #define FT_IF_V_NE 73 /* test if "value" != literal */
350 #define FT_IF_V_GT 74 /* test if "value" > literal */
351 #define FT_IF_MATCH 75 /* test if "str" contains literal */
352 #define FT_IF_AMATCH 76 /* test if "str" starts with literal */
353 #define FT_S_NULL 77 /* V = 1 if "str" null */
354 #define FT_S_NONNULL 78 /* V = 1 if "str" non-null */
355 #define FT_V_EQ 79 /* V = 1 if "value" = literal */
356 #define FT_V_NE 80 /* V = 1 if "value" != literal */
357 #define FT_V_GT 81 /* V = 1 if "value" > literal */
358 #define FT_V_MATCH 82 /* V = 1 if "str" contains literal */
359 #define FT_V_AMATCH 83 /* V = 1 if "str" starts with literal */
362 #define IF_FUNCS FT_S_NULL /* start of "if" functions */
373 /* @@(#)$Id: fmtcompile.h,v 1.6 1991/11/28 00:04:48 jromine Exp jromine $ */
376 #define FT_LS_TRIM 14 /* trim trailing white space from "str" */
377 #define FT_LV_COMP 15 /* set "value" to comp (as dec. num) */
378 #define FT_LV_COMPFLAG 16 /* set "value" to comp flag word */
379 #define FT_LV_LIT 17 /* set "value" to literal num */
380 #define FT_LV_DAT 18 /* set "value" to dat[n] */
381 #define FT_LV_STRLEN 19 /* set "value" to length of "str" */
382 #define FT_LV_PLUS_L 20 /* set "value" += literal */
383 #define FT_LV_MINUS_L 21 /* set "value" -= literal */
384 #define FT_LV_DIVIDE_L 22 /* set "value" to value / literal */
385 #define FT_LV_CHAR_LEFT 23 /* set "value" to char left in output */
388 #define FT_LS_MONTH 24 /* set "str" to tws month */
389 #define FT_LS_LMONTH 25 /* set "str" to long tws month */
390 #define FT_LS_ZONE 26 /* set "str" to tws timezone */
391 #define FT_LS_DAY 27 /* set "str" to tws weekday */
392 #define FT_LS_WEEKDAY 28 /* set "str" to long tws weekday */
393 #define FT_LS_822DATE 29 /* set "str" to 822 date str */
394 #define FT_LS_PRETTY 30 /* set "str" to pretty (?) date str */
395 #define FT_LV_SEC 31 /* set "value" to tws second */
396 #define FT_LV_MIN 32 /* set "value" to tws minute */
397 #define FT_LV_HOUR 33 /* set "value" to tws hour */
398 #define FT_LV_MDAY 34 /* set "value" to tws day of month */
399 #define FT_LV_MON 35 /* set "value" to tws month */
400 #define FT_LV_YEAR 36 /* set "value" to tws year */
401 #define FT_LV_YDAY 37 /* set "value" to tws day of year */
402 #define FT_LV_WDAY 38 /* set "value" to tws weekday */
403 #define FT_LV_ZONE 39 /* set "value" to tws timezone */
404 #define FT_LV_CLOCK 40 /* set "value" to tws clock */
405 #define FT_LV_RCLOCK 41 /* set "value" to now - tws clock */
406 #define FT_LV_DAYF 42 /* set "value" to tws day flag */
407 #define FT_LV_DST 43 /* set "value" to tws daylight savings flag */
408 #define FT_LV_ZONEF 44 /* set "value" to tws timezone flag */
411 #define FT_LS_PERS 45 /* set "str" to person part of addr */
412 #define FT_LS_MBOX 46 /* set "str" to mbox part of addr */
413 #define FT_LS_HOST 47 /* set "str" to host part of addr */
414 #define FT_LS_PATH 48 /* set "str" to route part of addr */
415 #define FT_LS_GNAME 49 /* set "str" to group part of addr */
416 #define FT_LS_NOTE 50 /* set "str" to comment part of addr */
417 #define FT_LS_ADDR 51 /* set "str" to mbox@@host */
418 #define FT_LS_822ADDR 52 /* set "str" to 822 format addr */
419 #define FT_LS_FRIENDLY 53 /* set "str" to "friendly" format addr */
420 #define FT_LV_HOSTTYPE 54 /* set "value" to addr host type */
421 #define FT_LV_INGRPF 55 /* set "value" to addr in-group flag */
422 #define FT_LV_NOHOSTF 56 /* set "value" to addr no-host flag */
425 #define FT_LOCALDATE 57 /* Coerce date to local timezone */
426 #define FT_GMTDATE 58 /* Coerce date to gmt */
429 #define FT_PARSEDATE 59 /* parse comp into a date (tws) struct */
430 #define FT_PARSEADDR 60 /* parse comp into a mailaddr struct */
431 #define FT_FORMATADDR 61 /* let external routine format addr */
432 #define FT_MYMBOX 62 /* do "mymbox" test on comp */
435 #define FT_ADDTOSEQ 63 /* add current msg to a sequence */
438 #define FT_SAVESTR 64 /* save current str reg */
439 #define FT_DONE 65 /* stop formatting */
440 #define FT_PAUSE 66 /* pause */
441 #define FT_NOP 67 /* nop */
442 #define FT_GOTO 68 /* (relative) goto */
443 #define FT_IF_S_NULL 69 /* test if "str" null */
444 #define FT_IF_S 70 /* test if "str" non-null */
445 #define FT_IF_V_EQ 71 /* test if "value" = literal */
446 #define FT_IF_V_NE 72 /* test if "value" != literal */
447 #define FT_IF_V_GT 73 /* test if "value" > literal */
448 #define FT_IF_MATCH 74 /* test if "str" contains literal */
449 #define FT_IF_AMATCH 75 /* test if "str" starts with literal */
450 #define FT_S_NULL 76 /* V = 1 if "str" null */
451 #define FT_S_NONNULL 77 /* V = 1 if "str" non-null */
452 #define FT_V_EQ 78 /* V = 1 if "value" = literal */
453 #define FT_V_NE 79 /* V = 1 if "value" != literal */
454 #define FT_V_GT 80 /* V = 1 if "value" > literal */
455 #define FT_V_MATCH 81 /* V = 1 if "str" contains literal */
456 #define FT_V_AMATCH 82 /* V = 1 if "str" starts with literal */
467 /* @@(#)$Id: fmtcompile.h,v 1.5 1990/12/27 17:04:12 mh Exp jromine $ */
470 #define FT_SAVESTR 64 /* save current str reg */
471 #define FT_DONE 65 /* stop formatting */
472 #define FT_RETURN 66 /* suspend, and return current position */
473 #define FT_NOP 67 /* nop */
474 #define FT_GOTO 68 /* (relative) goto */
475 #define FT_IF_S_NULL 69 /* test if "str" null */
476 #define FT_IF_S 70 /* test if "str" non-null */
477 #define FT_IF_V_EQ 71 /* test if "value" = literal */
478 #define FT_IF_V_NE 72 /* test if "value" != literal */
479 #define FT_IF_V_GT 73 /* test if "value" > literal */
480 #define FT_IF_MATCH 74 /* test if "str" contains literal */
481 #define FT_IF_AMATCH 75 /* test if "str" starts with literal */
482 #define FT_S_NULL 76 /* V = 1 if "str" null */
483 #define FT_S_NONNULL 77 /* V = 1 if "str" non-null */
484 #define FT_V_EQ 78 /* V = 1 if "value" = literal */
485 #define FT_V_NE 79 /* V = 1 if "value" != literal */
486 #define FT_V_GT 80 /* V = 1 if "value" > literal */
487 #define FT_V_MATCH 81 /* V = 1 if "str" contains literal */
488 #define FT_V_AMATCH 82 /* V = 1 if "str" starts with literal */
491 #define IF_FUNCS FT_S_NULL /* start of "if" functions */
503 /* @@(#)$Id: fmtcompile.h,v 1.4 90/04/05 15:06:42 sources Exp Locker: mh $ */
506 #define FT_SAVESTR 64 /* save current str reg */
507 #define FT_DONE 65 /* stop formatting */
508 #define FT_NOP 66 /* nop */
509 #define FT_GOTO 67 /* (relative) goto */
510 #define FT_IF_S_NULL 68 /* test if "str" null */
511 #define FT_IF_S 69 /* test if "str" non-null */
512 #define FT_IF_V_EQ 70 /* test if "value" = literal */
513 #define FT_IF_V_NE 71 /* test if "value" != literal */
514 #define FT_IF_V_GT 72 /* test if "value" > literal */
515 #define FT_IF_MATCH 73 /* test if "str" contains literal */
516 #define FT_IF_AMATCH 74 /* test if "str" starts with literal */
517 #define FT_S_NULL 75 /* V = 1 if "str" null */
518 #define FT_S_NONNULL 76 /* V = 1 if "str" non-null */
519 #define FT_V_EQ 77 /* V = 1 if "value" = literal */
520 #define FT_V_NE 78 /* V = 1 if "value" != literal */
521 #define FT_V_GT 79 /* V = 1 if "value" > literal */
522 #define FT_V_MATCH 80 /* V = 1 if "str" contains literal */
523 #define FT_V_AMATCH 81 /* V = 1 if "str" starts with literal */
526 #define IF_FUNCS FT_S_NULL /* start of "if" functions */
540 #define FT_LS_822ADDR 51 /* set "str" to 822 format addr */
541 #define FT_LS_FRIENDLY 52 /* set "str" to "friendly" format addr */
542 #define FT_LV_HOSTTYPE 53 /* set "value" to addr host type */
543 #define FT_LV_INGRPF 54 /* set "value" to addr in-group flag */
544 #define FT_LV_NOHOSTF 55 /* set "value" to addr no-host flag */
547 #define FT_LOCALDATE 56 /* Coerce date to local timezone */
548 #define FT_GMTDATE 57 /* Coerce date to gmt */
551 #define FT_PARSEDATE 58 /* parse comp into a date (tws) struct */
552 #define FT_PARSEADDR 59 /* parse comp into a mailaddr struct */
553 #define FT_FORMATADDR 60 /* let external routine format addr */
554 #define FT_MYMBOX 61 /* do "mymbox" test on comp */
557 #define FT_ADDTOSEQ 62 /* add current msg to a sequence */
560 #define FT_SAVESTR 63 /* save current str reg */
561 #define FT_DONE 64 /* stop formatting */
562 #define FT_NOP 65 /* nop */
563 #define FT_GOTO 66 /* (relative) goto */
564 #define FT_IF_S_NULL 67 /* test if "str" null */
565 #define FT_IF_S 68 /* test if "str" non-null */
566 #define FT_IF_V_EQ 69 /* test if "value" = literal */
567 #define FT_IF_V_NE 70 /* test if "value" != literal */
568 #define FT_IF_V_GT 71 /* test if "value" > literal */
569 #define FT_IF_MATCH 72 /* test if "str" contains literal */
570 #define FT_IF_AMATCH 73 /* test if "str" starts with literal */
571 #define FT_S_NULL 74 /* V = 1 if "str" null */
572 #define FT_S_NONNULL 75 /* V = 1 if "str" non-null */
573 #define FT_V_EQ 76 /* V = 1 if "value" = literal */
574 #define FT_V_NE 77 /* V = 1 if "value" != literal */
575 #define FT_V_GT 78 /* V = 1 if "value" > literal */
576 #define FT_V_MATCH 79 /* V = 1 if "str" contains literal */
577 #define FT_V_AMATCH 80 /* V = 1 if "str" starts with literal */
592 @Fixes from Van Jacobson
607 #define FT_LV_COMP 14 /* set "value" to comp (as dec. num) */
608 #define FT_LV_COMPFLAG 15 /* set "value" to comp flag word */
609 #define FT_LV_LIT 16 /* set "value" to literal num */
610 #define FT_LV_DAT 17 /* set "value" to dat[n] */
611 #define FT_LV_STRLEN 18 /* set "value" to length of "str" */
612 #define FT_LV_PLUS_L 19 /* set "value" += literal */
613 #define FT_LV_MINUS_L 20 /* set "value" -= literal */
614 #define FT_LV_CHAR_LEFT 21 /* set "value" to char left in output */
617 #define FT_LS_MONTH 22 /* set "str" to tws month */
618 #define FT_LS_LMONTH 23 /* set "str" to long tws month */
619 #define FT_LS_ZONE 24 /* set "str" to tws timezone */
620 #define FT_LS_DAY 25 /* set "str" to tws weekday */
621 #define FT_LS_WEEKDAY 26 /* set "str" to long tws weekday */
622 #define FT_LS_822DATE 27 /* set "str" to 822 date str */
623 #define FT_LS_PRETTY 28 /* set "str" to pretty (?) date str */
624 #define FT_LV_SEC 29 /* set "value" to tws second */
625 #define FT_LV_MIN 30 /* set "value" to tws minute */
626 #define FT_LV_HOUR 31 /* set "value" to tws hour */
627 #define FT_LV_MDAY 32 /* set "value" to tws day of month */
628 #define FT_LV_MON 33 /* set "value" to tws month */
629 #define FT_LV_YEAR 34 /* set "value" to tws year */
630 #define FT_LV_YDAY 35 /* set "value" to tws day of year */
631 #define FT_LV_WDAY 36 /* set "value" to tws weekday */
632 #define FT_LV_ZONE 37 /* set "value" to tws timezone */
633 #define FT_LV_CLOCK 38 /* set "value" to tws clock */
634 #define FT_LV_RCLOCK 39 /* set "value" to now - tws clock */
635 #define FT_LV_DAYF 40 /* set "value" to tws day flag */
636 #define FT_LV_TZONEF 41 /* set "value" to tws timezone flag */
639 #define FT_LS_PERS 42 /* set "str" to person part of addr */
640 #define FT_LS_MBOX 43 /* set "str" to mbox part of addr */
641 #define FT_LS_HOST 44 /* set "str" to host part of addr */
642 #define FT_LS_PATH 45 /* set "str" to route part of addr */
643 #define FT_LS_GNAME 46 /* set "str" to group part of addr */
644 #define FT_LS_NOTE 47 /* set "str" to comment part of addr */
645 #define FT_LS_822ADDR 48 /* set "str" to 822 format addr */
646 #define FT_LS_FRIENDLY 49 /* set "str" to "friendly" format addr */
647 #define FT_LV_HOSTTYPE 50 /* set "value" to addr host type */
648 #define FT_LV_INGRPF 51 /* set "value" to addr in-group flag */
649 #define FT_LV_NOHOSTF 52 /* set "value" to addr no-host flag */
653 #define FT_PARSEDATE 53 /* parse comp into a date (tws) struct */
654 #define FT_PARSEADDR 54 /* parse comp into a mailaddr struct */
655 #define FT_FORMATADDR 55 /* let external routine format addr */
656 #define FT_MYMBOX 56 /* do "mymbox" test on comp */
660 #define FT_SAVESTR 57 /* save current str reg */
661 #define FT_DONE 58 /* stop formatting */
662 #define FT_NOP 59 /* nop */
663 #define FT_GOTO 60 /* (relative) goto */
664 #define FT_IF_S_NULL 61 /* test if "str" null */
665 #define FT_IF_S 62 /* test if "str" non-null */
666 #define FT_IF_V_EQ 63 /* test if "value" = literal */
667 #define FT_IF_V_NE 64 /* test if "value" != literal */
668 #define FT_IF_V_GT 65 /* test if "value" > literal */
669 #define FT_IF_MATCH 66 /* test if "str" contains literal */
670 #define FT_IF_AMATCH 67 /* test if "str" starts with literal */
671 #define FT_S_NULL 68 /* V = 1 if "str" null */
672 #define FT_S_NONNULL 69 /* V = 1 if "str" non-null */
673 #define FT_V_EQ 70 /* V = 1 if "value" = literal */
674 #define FT_V_NE 71 /* V = 1 if "value" != literal */
675 #define FT_V_GT 72 /* V = 1 if "value" > literal */
676 #define FT_V_MATCH 73 /* V = 1 if "str" contains literal */
677 #define FT_V_AMATCH 74 /* V = 1 if "str" starts with literal */