Changed types and added casts so that build is clean with gcc -Wsign-compare.
[mmh] / uip / mhshowsbr.c
index 3e730ce..d3ddb94 100644 (file)
 #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;
 
@@ -116,12 +103,7 @@ static void
 show_single_message(CT ct, char *form)
 {
        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
@@ -154,19 +136,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 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();
@@ -471,7 +449,8 @@ raw:
                }
        }
 
-       if (buflen <= 0 || (ct->c_termproc && buflen <= strlen(ct->c_termproc))) {
+       if (buflen <= 0 || (ct->c_termproc &&
+                       (size_t)buflen <= strlen(ct->c_termproc))) {
                /*
                ** content_error would provide a more useful error message
                ** here, except that if we got overrun, it probably would
@@ -687,7 +666,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);
        }
 
 /*
@@ -739,11 +718,7 @@ show_multi_internal(CT ct, int serial, int alternate)
        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) {
@@ -758,11 +733,7 @@ show_multi_internal(CT ct, int serial, int alternate)
                }
 
                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;
@@ -781,7 +752,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;
@@ -978,8 +949,8 @@ raw:
                }
        }
 
-       if (buflen <= 0 ||
-                       (ct->c_termproc && buflen <= strlen(ct->c_termproc))) {
+       if (buflen <= 0 || (ct->c_termproc &&
+                       (size_t)buflen <= strlen(ct->c_termproc))) {
                /*
                ** content_error would provide a more useful error message
                ** here, except that if we got overrun, it probably would