X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=uip%2Fmhl.c;h=45113f3ca2f20d7c550c5c51b081795a507ac889;hb=96d10c193324201ef8acb622ed13e9a5ecb59827;hp=8b29ee4b3be65de88fbbc291ed4ca8da015bdafe;hpb=f1b5a26561ad625f8fc87fe19c77097e719b9aed;p=mmh diff --git a/uip/mhl.c b/uip/mhl.c index 8b29ee4..45113f3 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 7 +#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; @@ -179,17 +175,11 @@ static int num_ignores = 0; static char *ignores[MAXARGS]; static jmp_buf env; -static jmp_buf mhlenv; - -static FILE *(*mhl_action) () = (FILE *(*) ()) 0; - /* ** Redefine a couple of functions. ** These are undefined later in the code. */ -#define adios mhladios -#define done mhldone /* ** prototypes @@ -212,8 +202,6 @@ static char *oneline(char *, long); static void putstr(char *); static void putch(char); static void intrser(int); -static void mhladios(char *, char *, ...); -static void mhldone(int); int sc_width(void); /* from termsbr.c */ @@ -226,10 +214,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,20 +228,20 @@ main(int argc, char **argv) while ((cp = *argp++)) { if (*cp == '-') { - switch (smatch(++cp, mhlswitches)) { + switch (smatch(++cp, switches)) { case AMBIGSW: - ambigsw(cp, mhlswitches); - done(1); + ambigsw(cp, switches); + exit(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); - done(1); + print_help(buf, switches, 1); + exit(0); case VERSIONSW: print_version(invo_name); - done(1); + exit(0); case FORMSW: if (!(form = *argp++) || *form == '-') @@ -264,13 +249,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", @@ -590,8 +568,7 @@ process(char *fname, int ofilen, int ofilec) switch (setjmp(env)) { case OK: if (fname) { - fp = mhl_action ? (*mhl_action) (fname) : - fopen(fname, "r"); + fp = fopen(fname, "r"); if (fp == NULL) { advise(fname, "unable to open"); exitstat++; @@ -606,7 +583,7 @@ process(char *fname, int ofilen, int ofilec) /* FALL THROUGH! */ default: SIGNAL(SIGINT, SIG_IGN); - if (mhl_action == NULL && fp != stdin) + if (fp != stdin) fclose(fp); if (holder.c_text) { free(holder.c_text); @@ -1134,29 +1111,3 @@ intrser(int i) putchar('\n'); longjmp(env, DONE); } - - -#undef adios -#undef done - -static void -mhladios(char *what, char *fmt, ...) -{ - va_list ap; - - va_start(ap, fmt); - advertise(what, NULL, fmt, ap); - va_end(ap); - mhldone(1); -} - - -static void -mhldone(int status) -{ - exitstat = status; - if (mhl_action) - longjmp(mhlenv, DONE); - else - done(exitstat); -}