X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=uip%2Fmhl.c;fp=uip%2Fmhl.c;h=8c2e4af0a2d466b169d99d2a1cbaa86a5ad8fb5a;hb=f9ed40f2742263b3a1023bedee4139b4b18f0a86;hp=fedf78fa9f00a7b9fce00eaf75566dd34f730f98;hpb=2f43405ca3cccdfc56faca7a8b6b0d6913cf45aa;p=mmh diff --git a/uip/mhl.c b/uip/mhl.c index fedf78f..8c2e4af 100644 --- a/uip/mhl.c +++ b/uip/mhl.c @@ -573,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"); @@ -589,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; }