X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/9cf9f118998a7635485e13863d1bc16c1486bb05..d711510305:/uip/fmtdump.c diff --git a/uip/fmtdump.c b/uip/fmtdump.c index 289f1e66..6a6ef7cb 100644 --- a/uip/fmtdump.c +++ b/uip/fmtdump.c @@ -1,6 +1,4 @@ - -/* - * fmtdump.c -- compile format file and dump out instructions +/* fmtdump.c -- compile format file and dump out instructions * * This code is Copyright (c) 2002, by the authors of nmh. See the * COPYRIGHT file in the root directory of the nmh distribution for @@ -11,6 +9,7 @@ #include #include #include +#include #define FMTDUMP_SWITCHES \ X("form formatfile", 0, FORMSW) \ @@ -51,11 +50,7 @@ main (int argc, char **argv) char buf[BUFSIZ], *nfs, **argp, **arguments; struct format *fmt; - setlocale(LC_ALL, ""); - invo_name = r1bindex (argv[0], '/'); - - /* read user profile/context */ - context_read(); + if (nmh_init(argv[0], 2)) { return 1; } arguments = getarguments (invo_name, argc, argv, 1); argp = arguments; @@ -114,7 +109,7 @@ static void fmt_dump (struct format *fmth) { int i; - register struct format *fmt, *addr; + struct format *fmt, *addr; /* Assign labels */ for (fmt = fmth; fmt; ++fmt) { @@ -146,7 +141,7 @@ fmt_dump (struct format *fmth) static void dumpone(struct format *fmt) { - register int i; + int i; if ((i = findlabel(fmt)) >= 0) printf("L%d:", i); @@ -214,6 +209,8 @@ dumpone(struct format *fmt) case FT_LS_FRIENDLY: case FT_PARSEADDR: case FT_MYMBOX: + case FT_GETMYMBOX: + case FT_GETMYADDR: printf(", c_name "); litputs(fmt->f_comp->c_name); if (fmt->f_comp->c_type) @@ -268,6 +265,7 @@ dumpone(struct format *fmt) case FT_IF_MATCH: case FT_IF_AMATCH: printf(" continue else goto"); + /* FALLTHRU */ case FT_GOTO: i = findlabel(fmt + fmt->f_skip); printf(" L%d", i); @@ -286,6 +284,7 @@ dumpone(struct format *fmt) case FT_LV_LIT: case FT_LV_PLUS_L: case FT_LV_MINUS_L: + case FT_LV_MULTIPLY_L: case FT_LV_DIVIDE_L: case FT_LV_MODULO_L: printf(" value %d", fmt->f_value); @@ -323,7 +322,7 @@ dumpone(struct format *fmt) static int findlabel(struct format *addr) { - register int i; + int i; for (i = 0; i < lused; ++i) if (addr == lvec[i]) @@ -372,9 +371,12 @@ f_typestr(int t) case FT_LV_STRLEN: return("LV_STRLEN"); case FT_LV_PLUS_L: return("LV_PLUS_L"); case FT_LV_MINUS_L: return("LV_MINUS_L"); + case FT_LV_MULTIPLY_L: return("LV_MULTIPLY_L"); case FT_LV_DIVIDE_L: return("LV_DIVIDE_L"); case FT_LV_MODULO_L: return("LV_MODULO_L"); case FT_LV_CHAR_LEFT: return("LV_CHAR_LEFT"); + case FT_LS_KILO: return("LS_KILO"); + case FT_LS_KIBI: return("LS_KIBI"); case FT_LS_MONTH: return("LS_MONTH"); case FT_LS_LMONTH: return("LS_LMONTH"); case FT_LS_ZONE: return("LS_ZONE"); @@ -415,10 +417,10 @@ f_typestr(int t) case FT_FORMATADDR: return("FORMATADDR"); case FT_CONCATADDR: return("CONCATADDR"); case FT_MYMBOX: return("MYMBOX"); + case FT_GETMYMBOX: return("GETMYMBOX"); + case FT_GETMYADDR: return("GETMYADDR"); case FT_SAVESTR: return("SAVESTR"); -#ifdef FT_PAUSE case FT_PAUSE: return ("PAUSE"); -#endif case FT_DONE: return("DONE"); case FT_NOP: return("NOP"); case FT_GOTO: return("GOTO"); @@ -450,7 +452,7 @@ f_typestr(int t) static char * c_typestr(int t) { - register int i; + int i; static char buf[64]; buf[0] = '\0'; @@ -467,7 +469,7 @@ c_typestr(int t) static char * c_flagsstr(int t) { - register int i; + int i; static char buf[64]; buf[0] = '\0'; @@ -488,10 +490,10 @@ static void litputs(char *s) { if (s) { - putc('"', stdout); + putchar('"'); while (*s) litputc(*s++); - putc('"', stdout); + putchar('"'); } else fputs("", stdout); } @@ -500,30 +502,30 @@ static void litputc(char c) { if (c & ~ 0177) { - putc('M', stdout); - putc('-', stdout); + putchar('M'); + putchar('-'); c &= 0177; } if (c < 0x20 || c == 0177) { if (c == '\b') { - putc('\\', stdout); - putc('b', stdout); + putchar('\\'); + putchar('b'); } else if (c == '\f') { - putc('\\', stdout); - putc('f', stdout); + putchar('\\'); + putchar('f'); } else if (c == '\n') { - putc('\\', stdout); - putc('n', stdout); + putchar('\\'); + putchar('n'); } else if (c == '\r') { - putc('\\', stdout); - putc('r', stdout); + putchar('\\'); + putchar('r'); } else if (c == '\t') { - putc('\\', stdout); - putc('t', stdout); + putchar('\\'); + putchar('t'); } else { - putc('^', stdout); - putc(c ^ 0x40, stdout); /* DEL to ?, others to alpha */ + putchar('^'); + putchar(c ^ 0x40); /* DEL to ?, others to alpha */ } } else - putc(c, stdout); + putchar(c); }