*
* - Add the code in fmt_scan.c to handle your new function.
*
+ * - Add code to fmtdump.c to display your new function.
+ *
* - Document the new function in the mh-format(5) man page.
*
*/
#define TF_NOP 8 /* like expr but no result */
#define TF_MYNAME 9 /* special - get current name of user */
#define TF_MYHOST 10 /* special - get "local" hostname */
+#define TF_LMBOX 11 /* special - get full local mailbox */
/* ftable->flags */
/* NB that TFL_PUTS is also used to decide whether the test
{ "putnum", TF_EXPR, FT_NUM, 0, 0 },
{ "putnumf", TF_EXPR, FT_NUMF, 0, 0 },
{ "putaddr", TF_STR, FT_PUTADDR, 0, 0 },
- { "putlit", TF_STR, FT_STRLIT, 0, 0 },
+ { "putlit", TF_EXPR, FT_STRLIT, 0, 0 },
+ { "zputlit", TF_EXPR, FT_STRLITZ, 0, 0 },
{ "void", TF_NOP, 0, 0, 0 },
{ "comp", TF_COMP, FT_LS_COMP, 0, TFL_PUTS },
{ "me", TF_MYBOX, FT_LS_LIT, 0, TFL_PUTS },
{ "myname", TF_MYNAME, FT_LS_LIT, 0, TFL_PUTS },
{ "myhost", TF_MYHOST, FT_LS_LIT, 0, TFL_PUTS },
+ { "localmbox", TF_LMBOX, FT_LS_LIT, 0, TFL_PUTS },
{ "plus", TF_NUM, FT_LV_PLUS_L, 0, TFL_PUTN },
{ "minus", TF_NUM, FT_LV_MINUS_L, 0, TFL_PUTN },
{ "divide", TF_NUM, FT_LV_DIVIDE_L, 0, TFL_PUTN },
#define PUTLIT(str) do { NEW(FT_LIT,0,0); fp->f_text = (str); } while (0)
#define PUTC(c) do { NEW(FT_CHAR,0,0); fp->f_char = (c); } while (0)
-static char *format_string;
+char *format_string;
static unsigned char *usr_fstring; /* for CERROR */
#define CERROR(str) compile_error (str, cp)
LS(t->f_type, LocalName(0));
break;
+ case TF_LMBOX:
+ LS(t->f_type, getlocalmbox());
+ break;
+
case TF_NOW:
LV(t->f_type, time((time_t *) 0));
break;