#include <h/fmt_scan.h>
#include <h/fmt_compile.h>
#include <h/scansbr.h>
+#include "h/done.h"
#include <h/utils.h>
#define FMTDUMP_SWITCHES \
char buf[BUFSIZ], *nfs, **argp, **arguments;
struct format *fmt;
- if (nmh_init(argv[0], 2)) { return 1; }
+ if (nmh_init(argv[0], true, false)) { return 1; }
arguments = getarguments (invo_name, argc, argv, 1);
argp = arguments;
ambigsw (cp, switches);
done (1);
case UNKWNSW:
- adios (NULL, "-%s unknown", cp);
+ die("-%s unknown", cp);
case HELPSW:
snprintf (buf, sizeof(buf), "%s [switches]", invo_name);
case FORMSW:
if (!(form = *argp++) || *form == '-')
- adios (NULL, "missing argument to %s", argp[-2]);
+ die("missing argument to %s", argp[-2]);
format = NULL;
continue;
case FMTSW:
if (!(format = *argp++) || *format == '-')
- adios (NULL, "missing argument to %s", argp[-2]);
+ die("missing argument to %s", argp[-2]);
form = NULL;
continue;
}
}
if (form)
- adios (NULL, "only one form at a time!");
- else
- form = cp;
+ die("only one form at a time!");
+ form = cp;
}
/*
case FT_LS_COMP:
case FT_LV_COMPFLAG:
case FT_LV_COMP:
- printf(", comp ");
+ fputs(", comp ", stdout);
litputs(fmt->f_comp->c_name);
if (fmt->f_comp->c_type)
printf(", c_type %s", c_typestr(fmt->f_comp->c_type));
case FT_LOCALDATE:
case FT_GMTDATE:
case FT_PARSEDATE:
- printf(", c_name ");
+ fputs(", c_name ", stdout);
litputs(fmt->f_comp->c_name);
if (fmt->f_comp->c_type)
printf(", c_type %s", c_typestr(fmt->f_comp->c_type));
case FT_MYMBOX:
case FT_GETMYMBOX:
case FT_GETMYADDR:
- printf(", c_name ");
+ fputs(", c_name ", stdout);
litputs(fmt->f_comp->c_name);
if (fmt->f_comp->c_type)
printf(", c_type %s", c_typestr(fmt->f_comp->c_type));
case FT_COMPF:
printf(", width %d, fill '", fmt->f_width);
litputc(fmt->f_fill);
- printf("' name ");
+ fputs("' name ", stdout);
litputs(fmt->f_comp->c_name);
if (fmt->f_comp->c_type)
printf(", c_type %s", c_typestr(fmt->f_comp->c_type));
case FT_LITF:
printf(", width %d, fill '", fmt->f_width);
litputc(fmt->f_fill);
- printf("' ");
+ fputs("' ", stdout);
litputs(fmt->f_text);
break;
case FT_IF_S_NULL:
case FT_IF_MATCH:
case FT_IF_AMATCH:
- printf(" continue else goto");
+ fputs(" continue else goto", stdout);
/* FALLTHRU */
case FT_GOTO:
i = findlabel(fmt + fmt->f_skip);
break;
case FT_LS_LIT:
- printf(" str ");
+ fputs(" str ", stdout);
litputs(fmt->f_text);
break;
case FT_LS_GETENV:
- printf(" getenv ");
+ fputs(" getenv ", stdout);
litputs(fmt->f_text);
break;
case FT_LS_DECODECOMP:
- printf(", comp ");
+ fputs(", comp ", stdout);
litputs(fmt->f_comp->c_name);
break;
for (i = 0; i < lused; ++i)
if (addr == lvec[i])
- return(i);
- return(-1);
+ return i;
+ return -1;
}
static void
case FT_V_AMATCH: return "V_AMATCH";
default:
snprintf(buf, sizeof buf, "/* ??? #%d */", t);
- return(buf);
+ return buf;
}
}
FNORD(CT_ADDR, "ADDR");
FNORD(CT_DATE, "DATE");
strcat(buf, ">");
- return(buf);
+ return buf;
}
static char *
FNORD(CF_DATEFAB, "DATEFAB");
FNORD(CF_TRIMMED, "TRIMMED");
strcat(buf, ">");
- return(buf);
+ return buf;
}
#undef FNORD