#include <h/mime.h>
#include <h/mhparse.h>
#include <h/utils.h>
-
-#ifdef HAVE_SYS_WAIT_H
-# include <sys/wait.h>
-#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 <sys/wait.h>
extern int debugsw;
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);
/*
{
sigset_t set, oset;
-#ifdef HAVE_UNION_WAIT
- union wait status;
-#else
int status;
-#endif
/* Allow user executable bit so that temporary directories created by
* the viewer (e.g., lynx) are going to be accessible */
sigaddset (&set, SIGINT);
sigaddset (&set, SIGQUIT);
sigaddset (&set, SIGTERM);
- SIGPROCMASK (SIG_BLOCK, &set, &oset);
+ sigprocmask (SIG_BLOCK, &set, &oset);
while (wait (&status) != NOTOK) {
-#ifdef HAVE_UNION_WAIT
- pidcheck (status.w_status);
-#else
pidcheck (status);
-#endif
continue;
}
/* reset the signal mask */
- SIGPROCMASK (SIG_SETMASK, &oset, &set);
+ sigprocmask (SIG_SETMASK, &oset, &set);
xpid = 0;
flush_errors ();
sigaddset (&set, SIGINT);
sigaddset (&set, SIGQUIT);
sigaddset (&set, SIGTERM);
- SIGPROCMASK (SIG_BLOCK, &set, &oset);
+ sigprocmask (SIG_BLOCK, &set, &oset);
}
/*
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);
if (serial && !nowserial) {
pid_t pid;
int kids;
-#ifdef HAVE_UNION_WAIT
- union wait status;
-#else
int status;
-#endif
kids = 0;
for (part = m->mp_parts; part; part = part->mp_next) {
}
while (kids > 0 && (pid = wait (&status)) != NOTOK) {
-#ifdef HAVE_UNION_WAIT
- pidcheck (status.w_status);
-#else
pidcheck (status);
-#endif
for (part = m->mp_parts; part; part = part->mp_next) {
p = part->mp_part;
out:
if (!nowserial) {
/* reset the signal mask */
- SIGPROCMASK (SIG_SETMASK, &oset, &set);
+ sigprocmask (SIG_SETMASK, &oset, &set);
}
return result;
static int
show_partial (CT ct, int serial, int alternate)
{
+ NMH_UNUSED (serial);
+ NMH_UNUSED (alternate);
+
content_error (NULL, ct,
"in order to display this message, you must reassemble it");
return NOTOK;
}
-static RETSIGTYPE
+static void
intrser (int i)
{
-#ifndef RELIABLE_SIGNALS
- SIGNAL (SIGINT, intrser);
-#endif
+ NMH_UNUSED (i);
putchar ('\n');
siglongjmp (intrenv, DONE);