X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=uip%2Fmhl.c;h=8c2e4af0a2d466b169d99d2a1cbaa86a5ad8fb5a;hb=f9ed40f2742263b3a1023bedee4139b4b18f0a86;hp=8c2094ed8db304e35948f7f31b0dbf03f69d3928;hpb=350ad6d3542a07639213cf2a4fe524e829c1e7b6;p=mmh diff --git a/uip/mhl.c b/uip/mhl.c index 8c2094e..8c2e4af 100644 --- a/uip/mhl.c +++ b/uip/mhl.c @@ -40,22 +40,20 @@ #define QUOTE '\\' -static struct swit mhlswitches[] = { +static struct swit switches[] = { #define FORMSW 0 { "form formfile", 0 }, #define WIDTHSW 1 { "width columns", 0 }, -#define SLEEPSW 2 - { "sleep seconds", 0 }, -#define VERSIONSW 3 +#define VERSIONSW 2 { "Version", 0 }, -#define HELPSW 4 +#define HELPSW 3 { "help", 0 }, -#define FORW1SW 5 +#define FORW1SW 4 { "forward", -7 }, -#define FORW2SW 6 +#define FORW2SW 5 { "forwall", -7 }, -#define NBODYSW 8 +#define NBODYSW 6 { "nobody", -6 }, { NULL, 0 } }; @@ -157,8 +155,6 @@ static int dobody = 1; static int forwflg = 0; static int forwall = 0; -static int sleepsw = NOTOK; - static int exitstat = 0; static int mhldebug = 0; @@ -226,10 +222,7 @@ main(int argc, char **argv) char buf[BUFSIZ], *files[MAXARGS]; char **argp, **arguments; -#ifdef LOCALE setlocale(LC_ALL, ""); -#endif - invo_name = mhbasename(argv[0]); /* read user profile/context */ @@ -243,16 +236,16 @@ main(int argc, char **argv) while ((cp = *argp++)) { if (*cp == '-') { - switch (smatch(++cp, mhlswitches)) { + switch (smatch(++cp, switches)) { case AMBIGSW: - ambigsw(cp, mhlswitches); + ambigsw(cp, switches); done(1); case UNKWNSW: adios(NULL, "-%s unknown\n", cp); case HELPSW: snprintf(buf, sizeof(buf), "%s [switches] [files ...]", invo_name); - print_help(buf, mhlswitches, 1); + print_help(buf, switches, 1); done(1); case VERSIONSW: print_version(invo_name); @@ -264,13 +257,6 @@ main(int argc, char **argv) argp[-2]); continue; - case SLEEPSW: - if (!(cp = *argp++) || *cp == '-') - adios(NULL, "missing argument to %s", - argp[-2]); - sleepsw = atoi(cp); /* ZERO ok! */ - continue; - case WIDTHSW: if (!(cp = *argp++) || *cp == '-') adios(NULL, "missing argument to %s", @@ -587,8 +573,7 @@ process(char *fname, int ofilen, int ofilec) FILE *fp = NULL; struct mcomp *c1; - switch (setjmp(env)) { - case OK: + if (setjmp(env) == 0) { if (fname) { fp = mhl_action ? (*mhl_action) (fname) : fopen(fname, "r"); @@ -603,20 +588,18 @@ process(char *fname, int ofilen, int ofilec) } SIGNAL(SIGINT, intrser); mhlfile(fp, fname, ofilen, ofilec); - /* FALL THROUGH! */ - default: - SIGNAL(SIGINT, SIG_IGN); - if (mhl_action == NULL && fp != stdin) - fclose(fp); - if (holder.c_text) { - free(holder.c_text); - holder.c_text = NULL; - } - free_queue(&msghd, &msgtl); - for (c1 = fmthd; c1; c1 = c1->c_next) - c1->c_flags &= ~HDROUTPUT; - break; } + + SIGNAL(SIGINT, SIG_IGN); + if (mhl_action == NULL && fp != stdin) + fclose(fp); + if (holder.c_text) { + free(holder.c_text); + holder.c_text = NULL; + } + free_queue(&msghd, &msgtl); + for (c1 = fmthd; c1; c1 = c1->c_next) + c1->c_flags &= ~HDROUTPUT; }