X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=uip%2Fmhshowsbr.c;h=5225825681949996c6e55fe6cac13d7d963ae39e;hb=f475d48680eb8bb0b6543efab9057eba2773666e;hp=08d676e035626d7f2046c2cb2ac62f681ebc1e55;hpb=9a33ff618b5901a3af815650d4b84d39ee96e529;p=mmh diff --git a/uip/mhshowsbr.c b/uip/mhshowsbr.c index 08d676e..5225825 100644 --- a/uip/mhshowsbr.c +++ b/uip/mhshowsbr.c @@ -2,8 +2,6 @@ /* * mhshowsbr.c -- routines to display the contents of MIME messages * - * $Id$ - * * This code is Copyright (c) 2002, by the authors of nmh. See the * COPYRIGHT file in the root directory of the nmh distribution for * complete copyright information. @@ -21,20 +19,7 @@ #include #include #include - -#ifdef HAVE_SYS_WAIT_H -# include -#endif - -/* - * Just use sigjmp/longjmp on older machines that - * don't have sigsetjmp/siglongjmp. - */ -#ifndef HAVE_SIGSETJMP -# define sigjmp_buf jmp_buf -# define sigsetjmp(env,mask) setjmp(env) -# define siglongjmp(env,val) longjmp(env,val) -#endif +#include extern int debugsw; @@ -90,7 +75,7 @@ static int show_multi_aux (CT, int, int, char *); static int show_message_rfc822 (CT, int, int); static int show_partial (CT, int, int); static int show_external (CT, int, int); -static RETSIGTYPE intrser (int); +static void intrser (int); /* @@ -119,7 +104,7 @@ show_all_messages (CT *cts) ct = *ctp; /* if top-level type is ok, then display message */ - if (type_ok (ct, 0)) + if (type_ok (ct, 1)) show_single_message (ct, formsw); } } @@ -134,11 +119,7 @@ show_single_message (CT ct, char *form) { sigset_t set, oset; -#ifdef WAITINT int status; -#else - union wait status; -#endif /* Allow user executable bit so that temporary directories created by * the viewer (e.g., lynx) are going to be accessible */ @@ -169,19 +150,15 @@ show_single_message (CT ct, char *form) sigaddset (&set, SIGINT); sigaddset (&set, SIGQUIT); sigaddset (&set, SIGTERM); - SIGPROCMASK (SIG_BLOCK, &set, &oset); + sigprocmask (SIG_BLOCK, &set, &oset); while (wait (&status) != NOTOK) { -#ifdef WAITINT pidcheck (status); -#else - pidcheck (status.w_status); -#endif continue; } /* reset the signal mask */ - SIGPROCMASK (SIG_SETMASK, &oset, &set); + sigprocmask (SIG_SETMASK, &oset, &set); xpid = 0; flush_errors (); @@ -733,7 +710,7 @@ show_multi_internal (CT ct, int serial, int alternate) sigaddset (&set, SIGINT); sigaddset (&set, SIGQUIT); sigaddset (&set, SIGTERM); - SIGPROCMASK (SIG_BLOCK, &set, &oset); + sigprocmask (SIG_BLOCK, &set, &oset); } /* @@ -746,7 +723,7 @@ show_multi_internal (CT ct, int serial, int alternate) for (part = m->mp_parts; part; part = part->mp_next) { p = part->mp_part; - if (part_ok (p, 0) && type_ok (p, 0)) { + if (part_ok (p, 1) && type_ok (p, 1)) { int inneresult; inneresult = show_switch (p, nowserial, nowalternate); @@ -785,11 +762,7 @@ show_multi_internal (CT ct, int serial, int alternate) if (serial && !nowserial) { pid_t pid; int kids; -#ifdef WAITINT int status; -#else - union wait status; -#endif kids = 0; for (part = m->mp_parts; part; part = part->mp_next) { @@ -804,11 +777,7 @@ show_multi_internal (CT ct, int serial, int alternate) } while (kids > 0 && (pid = wait (&status)) != NOTOK) { -#ifdef WAITINT pidcheck (status); -#else - pidcheck (status.w_status); -#endif for (part = m->mp_parts; part; part = part->mp_next) { p = part->mp_part; @@ -827,7 +796,7 @@ show_multi_internal (CT ct, int serial, int alternate) out: if (!nowserial) { /* reset the signal mask */ - SIGPROCMASK (SIG_SETMASK, &oset, &set); + sigprocmask (SIG_SETMASK, &oset, &set); } return result; @@ -1112,13 +1081,9 @@ show_external (CT ct, int serial, int alternate) } -static RETSIGTYPE +static void intrser (int i) { -#ifndef RELIABLE_SIGNALS - SIGNAL (SIGINT, intrser); -#endif - putchar ('\n'); siglongjmp (intrenv, DONE); }