- register int i;
-
- if ((i = findlabel(fmt)) >= 0)
- printf("L%d:", i);
- putchar('\t');
-
- fputs(f_typestr((int)fmt->f_type), stdout);
-
- switch (fmt->f_type) {
-
- case FT_COMP:
- case FT_LS_COMP:
- case FT_LV_COMPFLAG:
- case FT_LV_COMP:
- printf(", comp ");
- litputs(fmt->f_comp->c_name);
- if (fmt->f_comp->c_type)
- printf(", c_type %s", c_typestr(fmt->f_comp->c_type));
- if (fmt->f_comp->c_flags)
- printf(", c_flags %s", c_flagsstr(fmt->f_comp->c_flags));
- break;
-
- case FT_LV_SEC:
- case FT_LV_MIN:
- case FT_LV_HOUR:
- case FT_LV_MDAY:
- case FT_LV_MON:
- case FT_LS_MONTH:
- case FT_LS_LMONTH:
- case FT_LS_ZONE:
- case FT_LV_YEAR:
- case FT_LV_WDAY:
- case FT_LS_DAY:
- case FT_LS_WEEKDAY:
- case FT_LV_YDAY:
- case FT_LV_ZONE:
- case FT_LV_CLOCK:
- case FT_LV_RCLOCK:
- case FT_LV_DAYF:
- case FT_LV_ZONEF:
- case FT_LV_DST:
- case FT_LS_822DATE:
- case FT_LS_PRETTY:
- case FT_LOCALDATE:
- case FT_GMTDATE:
- case FT_PARSEDATE:
- printf(", c_name ");
- litputs(fmt->f_comp->c_name);
- if (fmt->f_comp->c_type)
- printf(", c_type %s", c_typestr(fmt->f_comp->c_type));
- if (fmt->f_comp->c_flags)
- printf(", c_flags %s", c_flagsstr(fmt->f_comp->c_flags));
- break;
-
- case FT_LS_ADDR:
- case FT_LS_PERS:
- case FT_LS_MBOX:
- case FT_LS_HOST:
- case FT_LS_PATH:
- case FT_LS_GNAME:
- case FT_LS_NOTE:
- case FT_LS_822ADDR:
- case FT_LV_HOSTTYPE:
- case FT_LV_INGRPF:
- case FT_LV_NOHOSTF:
- case FT_LS_FRIENDLY:
- case FT_PARSEADDR:
- case FT_MYMBOX:
- printf(", c_name ");
- litputs(fmt->f_comp->c_name);
- if (fmt->f_comp->c_type)
- printf(", c_type %s", c_typestr(fmt->f_comp->c_type));
- if (fmt->f_comp->c_flags)
- printf(", c_flags %s", c_flagsstr(fmt->f_comp->c_flags));
- break;
-
- case FT_COMPF:
- printf(", width %d, fill '", fmt->f_width);
- litputc(fmt->f_fill);
- printf("' name ");
- litputs(fmt->f_comp->c_name);
- if (fmt->f_comp->c_type)
- printf(", c_type %s", c_typestr(fmt->f_comp->c_type));
- if (fmt->f_comp->c_flags)
- printf(", c_flags %s", c_flagsstr(fmt->f_comp->c_flags));
- break;
-
- case FT_STRF:
- case FT_NUMF:
- printf(", width %d, fill '", fmt->f_width);
- litputc(fmt->f_fill);
- putchar('\'');
- break;
-
- case FT_LIT:
+ register int i;
+
+ if ((i = findlabel(fmt)) >= 0)
+ printf("L%d:", i);
+ putchar('\t');
+
+ fputs(f_typestr((int)fmt->f_type), stdout);
+
+ switch (fmt->f_type) {
+
+ case FT_COMP:
+ case FT_LS_COMP:
+ case FT_LV_COMPFLAG:
+ case FT_LV_COMP:
+ printf(", comp ");
+ litputs(fmt->f_comp->c_name);
+ if (fmt->f_comp->c_type)
+ printf(", c_type %s", c_typestr(fmt->f_comp->c_type));
+ if (fmt->f_comp->c_flags)
+ printf(", c_flags %s",
+ c_flagsstr(fmt->f_comp->c_flags));
+ break;
+
+ case FT_LV_SEC:
+ case FT_LV_MIN:
+ case FT_LV_HOUR:
+ case FT_LV_MDAY:
+ case FT_LV_MON:
+ case FT_LS_MONTH:
+ case FT_LS_LMONTH:
+ case FT_LS_ZONE:
+ case FT_LV_YEAR:
+ case FT_LV_WDAY:
+ case FT_LS_DAY:
+ case FT_LS_WEEKDAY:
+ case FT_LV_YDAY:
+ case FT_LV_ZONE:
+ case FT_LV_CLOCK:
+ case FT_LV_RCLOCK:
+ case FT_LV_DAYF:
+ case FT_LV_ZONEF:
+ case FT_LV_DST:
+ case FT_LS_822DATE:
+ case FT_LS_PRETTY:
+ case FT_LOCALDATE:
+ case FT_GMTDATE:
+ case FT_PARSEDATE:
+ printf(", c_name ");
+ litputs(fmt->f_comp->c_name);
+ if (fmt->f_comp->c_type)
+ printf(", c_type %s", c_typestr(fmt->f_comp->c_type));
+ if (fmt->f_comp->c_flags)
+ printf(", c_flags %s",
+ c_flagsstr(fmt->f_comp->c_flags));
+ break;
+
+ case FT_LS_ADDR:
+ case FT_LS_PERS:
+ case FT_LS_MBOX:
+ case FT_LS_HOST:
+ case FT_LS_PATH:
+ case FT_LS_GNAME:
+ case FT_LS_NOTE:
+ case FT_LS_822ADDR:
+ case FT_LV_HOSTTYPE:
+ case FT_LV_INGRPF:
+ case FT_LV_NOHOSTF:
+ case FT_LS_FRIENDLY:
+ case FT_PARSEADDR:
+ case FT_MYMBOX:
+ printf(", c_name ");
+ litputs(fmt->f_comp->c_name);
+ if (fmt->f_comp->c_type)
+ printf(", c_type %s", c_typestr(fmt->f_comp->c_type));
+ if (fmt->f_comp->c_flags)
+ printf(", c_flags %s",
+ c_flagsstr(fmt->f_comp->c_flags));
+ break;
+
+ case FT_COMPF:
+ printf(", width %d, fill '", fmt->f_width);
+ litputc(fmt->f_fill);
+ printf("' name ");
+ litputs(fmt->f_comp->c_name);
+ if (fmt->f_comp->c_type)
+ printf(", c_type %s", c_typestr(fmt->f_comp->c_type));
+ if (fmt->f_comp->c_flags)
+ printf(", c_flags %s",
+ c_flagsstr(fmt->f_comp->c_flags));
+ break;
+
+ case FT_STRF:
+ case FT_NUMF:
+ printf(", width %d, fill '", fmt->f_width);
+ litputc(fmt->f_fill);
+ putchar('\'');
+ break;
+
+ case FT_LIT:
- putchar(' ');
- litputs(fmt->f_text);
- break;
-
- case FT_LITF:
- printf(", width %d, fill '", fmt->f_width);
- litputc(fmt->f_fill);
- printf("' ");
- litputs(fmt->f_text);
- break;
-
- case FT_CHAR:
- putchar(' ');
- putchar('\'');
- litputc(fmt->f_char);
- putchar('\'');
- break;
-
-
- case FT_IF_S:
- case FT_IF_S_NULL:
- case FT_IF_MATCH:
- case FT_IF_AMATCH:
- printf(" continue else goto");
- case FT_GOTO:
- i = findlabel(fmt + fmt->f_skip);
- printf(" L%d", i);
- break;
-
- case FT_IF_V_EQ:
- case FT_IF_V_NE:
- case FT_IF_V_GT:
- i = findlabel(fmt + fmt->f_skip);
- printf(" %d continue else goto L%d", fmt->f_value, i);
- break;
-
- case FT_V_EQ:
- case FT_V_NE:
- case FT_V_GT:
- case FT_LV_LIT:
- case FT_LV_PLUS_L:
- case FT_LV_MINUS_L:
- case FT_LV_DIVIDE_L:
- case FT_LV_MODULO_L:
- printf(" value %d", fmt->f_value);
- break;
-
- case FT_LS_LIT:
- printf(" str ");
- litputs(fmt->f_text);
- break;
-
- case FT_LS_GETENV:
- printf(" getenv ");
- litputs(fmt->f_text);
- break;
-
- case FT_LS_DECODECOMP:
- printf(", comp ");
- litputs(fmt->f_comp->c_name);
- break;
-
- case FT_LS_DECODE:
- break;
-
- case FT_LS_TRIM:
- printf(", width %d", fmt->f_width);
- break;
-
- case FT_LV_DAT:
- printf(", value dat[%d]", fmt->f_value);
- break;
- }
- putchar('\n');
+ putchar(' ');
+ litputs(fmt->f_text);
+ break;
+
+ case FT_LITF:
+ printf(", width %d, fill '", fmt->f_width);
+ litputc(fmt->f_fill);
+ printf("' ");
+ litputs(fmt->f_text);
+ break;
+
+ case FT_CHAR:
+ putchar(' ');
+ putchar('\'');
+ litputc(fmt->f_char);
+ putchar('\'');
+ break;
+
+
+ case FT_IF_S:
+ case FT_IF_S_NULL:
+ case FT_IF_MATCH:
+ case FT_IF_AMATCH:
+ printf(" continue else goto");
+ case FT_GOTO:
+ i = findlabel(fmt + fmt->f_skip);
+ printf(" L%d", i);
+ break;
+
+ case FT_IF_V_EQ:
+ case FT_IF_V_NE:
+ case FT_IF_V_GT:
+ i = findlabel(fmt + fmt->f_skip);
+ printf(" %d continue else goto L%d", fmt->f_value, i);
+ break;
+
+ case FT_V_EQ:
+ case FT_V_NE:
+ case FT_V_GT:
+ case FT_LV_LIT:
+ case FT_LV_PLUS_L:
+ case FT_LV_MINUS_L:
+ case FT_LV_DIVIDE_L:
+ case FT_LV_MODULO_L:
+ printf(" value %d", fmt->f_value);
+ break;
+
+ case FT_LS_LIT:
+ printf(" str ");
+ litputs(fmt->f_text);
+ break;
+
+ case FT_LS_GETENV:
+ printf(" getenv ");
+ litputs(fmt->f_text);
+ break;
+
+ case FT_LS_DECODECOMP:
+ printf(", comp ");
+ litputs(fmt->f_comp->c_name);
+ break;
+
+ case FT_LS_DECODE:
+ break;
+
+ case FT_LS_TRIM:
+ printf(", width %d", fmt->f_width);
+ break;
+
+ case FT_LV_DAT:
+ printf(", value dat[%d]", fmt->f_value);
+ break;
+ }
+ putchar('\n');
- case FT_CHAR: return("CHAR");
- case FT_NUM: return("NUM");
- case FT_NUMF: return("NUMF");
- case FT_STR: return("STR");
- case FT_STRF: return("STRF");
- case FT_STRFW: return("STRFW");
- case FT_PUTADDR: return("PUTADDR");
- case FT_LS_COMP: return("LS_COMP");
- case FT_LS_LIT: return("LS_LIT");
- case FT_LS_GETENV: return("LS_GETENV");
- case FT_LS_DECODECOMP: return("FT_LS_DECODECOMP");
- case FT_LS_DECODE: return("FT_LS_DECODE");
- case FT_LS_TRIM: return("LS_TRIM");
- case FT_LV_COMP: return("LV_COMP");
- case FT_LV_COMPFLAG: return("LV_COMPFLAG");
- case FT_LV_LIT: return("LV_LIT");
- case FT_LV_DAT: return("LV_DAT");
- 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_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_MONTH: return("LS_MONTH");
- case FT_LS_LMONTH: return("LS_LMONTH");
- case FT_LS_ZONE: return("LS_ZONE");
- case FT_LS_DAY: return("LS_DAY");
- case FT_LS_WEEKDAY: return("LS_WEEKDAY");
- case FT_LS_822DATE: return("LS_822DATE");
- case FT_LS_PRETTY: return("LS_PRETTY");
- case FT_LV_SEC: return("LV_SEC");
- case FT_LV_MIN: return("LV_MIN");
- case FT_LV_HOUR: return("LV_HOUR");
- case FT_LV_MDAY: return("LV_MDAY");
- case FT_LV_MON: return("LV_MON");
- case FT_LV_YEAR: return("LV_YEAR");
- case FT_LV_YDAY: return("LV_YDAY");
- case FT_LV_WDAY: return("LV_WDAY");
- case FT_LV_ZONE: return("LV_ZONE");
- case FT_LV_CLOCK: return("LV_CLOCK");
- case FT_LV_RCLOCK: return("LV_RCLOCK");
- case FT_LV_DAYF: return("LV_DAYF");
- case FT_LV_DST: return("LV_DST");
- case FT_LV_ZONEF: return("LV_ZONEF");
- case FT_LS_ADDR: return("LS_ADDR");
- case FT_LS_PERS: return("LS_PERS");
- case FT_LS_MBOX: return("LS_MBOX");
- case FT_LS_HOST: return("LS_HOST");
- case FT_LS_PATH: return("LS_PATH");
- case FT_LS_GNAME: return("LS_GNAME");
- case FT_LS_NOTE: return("LS_NOTE");
- case FT_LS_822ADDR: return("LS_822ADDR");
- case FT_LS_FRIENDLY: return("LS_FRIENDLY");
- case FT_LV_HOSTTYPE: return("LV_HOSTTYPE");
- case FT_LV_INGRPF: return("LV_INGRPF");
- case FT_LV_NOHOSTF: return("LV_NOHOSTF");
- case FT_LOCALDATE: return("LOCALDATE");
- case FT_GMTDATE: return("GMTDATE");
- case FT_PARSEDATE: return("PARSEDATE");
- case FT_PARSEADDR: return("PARSEADDR");
- case FT_FORMATADDR: return("FORMATADDR");
- case FT_MYMBOX: return("MYMBOX");
+ case FT_CHAR: return("CHAR");
+ case FT_NUM: return("NUM");
+ case FT_NUMF: return("NUMF");
+ case FT_STR: return("STR");
+ case FT_STRF: return("STRF");
+ case FT_STRFW: return("STRFW");
+ case FT_PUTADDR: return("PUTADDR");
+ case FT_LS_COMP: return("LS_COMP");
+ case FT_LS_LIT: return("LS_LIT");
+ case FT_LS_GETENV: return("LS_GETENV");
+ case FT_LS_DECODECOMP: return("FT_LS_DECODECOMP");
+ case FT_LS_DECODE: return("FT_LS_DECODE");
+ case FT_LS_TRIM: return("LS_TRIM");
+ case FT_LV_COMP: return("LV_COMP");
+ case FT_LV_COMPFLAG: return("LV_COMPFLAG");
+ case FT_LV_LIT: return("LV_LIT");
+ case FT_LV_DAT: return("LV_DAT");
+ 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_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_MONTH: return("LS_MONTH");
+ case FT_LS_LMONTH: return("LS_LMONTH");
+ case FT_LS_ZONE: return("LS_ZONE");
+ case FT_LS_DAY: return("LS_DAY");
+ case FT_LS_WEEKDAY: return("LS_WEEKDAY");
+ case FT_LS_822DATE: return("LS_822DATE");
+ case FT_LS_PRETTY: return("LS_PRETTY");
+ case FT_LV_SEC: return("LV_SEC");
+ case FT_LV_MIN: return("LV_MIN");
+ case FT_LV_HOUR: return("LV_HOUR");
+ case FT_LV_MDAY: return("LV_MDAY");
+ case FT_LV_MON: return("LV_MON");
+ case FT_LV_YEAR: return("LV_YEAR");
+ case FT_LV_YDAY: return("LV_YDAY");
+ case FT_LV_WDAY: return("LV_WDAY");
+ case FT_LV_ZONE: return("LV_ZONE");
+ case FT_LV_CLOCK: return("LV_CLOCK");
+ case FT_LV_RCLOCK: return("LV_RCLOCK");
+ case FT_LV_DAYF: return("LV_DAYF");
+ case FT_LV_DST: return("LV_DST");
+ case FT_LV_ZONEF: return("LV_ZONEF");
+ case FT_LS_ADDR: return("LS_ADDR");
+ case FT_LS_PERS: return("LS_PERS");
+ case FT_LS_MBOX: return("LS_MBOX");
+ case FT_LS_HOST: return("LS_HOST");
+ case FT_LS_PATH: return("LS_PATH");
+ case FT_LS_GNAME: return("LS_GNAME");
+ case FT_LS_NOTE: return("LS_NOTE");
+ case FT_LS_822ADDR: return("LS_822ADDR");
+ case FT_LS_FRIENDLY: return("LS_FRIENDLY");
+ case FT_LV_HOSTTYPE: return("LV_HOSTTYPE");
+ case FT_LV_INGRPF: return("LV_INGRPF");
+ case FT_LV_NOHOSTF: return("LV_NOHOSTF");
+ case FT_LOCALDATE: return("LOCALDATE");
+ case FT_GMTDATE: return("GMTDATE");
+ case FT_PARSEDATE: return("PARSEDATE");
+ case FT_PARSEADDR: return("PARSEADDR");
+ case FT_FORMATADDR: return("FORMATADDR");
+ case FT_MYMBOX: return("MYMBOX");
- case FT_DONE: return("DONE");
- case FT_NOP: return("NOP");
- case FT_GOTO: return("GOTO");
- case FT_IF_S_NULL: return("IF_S_NULL");
- case FT_IF_S: return("IF_S");
- case FT_IF_V_EQ: return("IF_V_EQ");
- case FT_IF_V_NE: return("IF_V_NE");
- case FT_IF_V_GT: return("IF_V_GT");
- case FT_IF_MATCH: return("IF_MATCH");
- case FT_IF_AMATCH: return("IF_AMATCH");
- case FT_S_NULL: return("S_NULL");
- case FT_S_NONNULL: return("S_NONNULL");
- case FT_V_EQ: return("V_EQ");
- case FT_V_NE: return("V_NE");
- case FT_V_GT: return("V_GT");
- case FT_V_MATCH: return("V_MATCH");
- case FT_V_AMATCH: return("V_AMATCH");
- default:
- printf(buf, "/* ??? #%d */", t);
- return(buf);
- }
+ case FT_DONE: return("DONE");
+ case FT_NOP: return("NOP");
+ case FT_GOTO: return("GOTO");
+ case FT_IF_S_NULL: return("IF_S_NULL");
+ case FT_IF_S: return("IF_S");
+ case FT_IF_V_EQ: return("IF_V_EQ");
+ case FT_IF_V_NE: return("IF_V_NE");
+ case FT_IF_V_GT: return("IF_V_GT");
+ case FT_IF_MATCH: return("IF_MATCH");
+ case FT_IF_AMATCH: return("IF_AMATCH");
+ case FT_S_NULL: return("S_NULL");
+ case FT_S_NONNULL: return("S_NONNULL");
+ case FT_V_EQ: return("V_EQ");
+ case FT_V_NE: return("V_NE");
+ case FT_V_GT: return("V_GT");
+ case FT_V_MATCH: return("V_MATCH");
+ case FT_V_AMATCH: return("V_AMATCH");
+ default:
+ printf(buf, "/* ??? #%d */", t);
+ return(buf);
+ }