X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Fmhshowsbr.c;h=9317defd0af4bda6c5fcad08ae2cefe52a7d0a0b;hp=71f55a4335d9afbf423124c83256767e7b594166;hb=d8916ff5d389de5ab225cd6f40aeda1b285d0f28;hpb=dfacc915824a819be2e33cdb2a34d1d1de27fc34 diff --git a/uip/mhshowsbr.c b/uip/mhshowsbr.c index 71f55a4..9317def 100644 --- a/uip/mhshowsbr.c +++ b/uip/mhshowsbr.c @@ -3,6 +3,10 @@ * 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. */ #include @@ -12,10 +16,11 @@ #include #include #include -#include -#include +#include +#include #include #include +#include #ifdef HAVE_SYS_WAIT_H # include @@ -31,7 +36,6 @@ # define siglongjmp(env,val) longjmp(env,val) #endif -extern int errno; extern int debugsw; int pausesw = 1; @@ -115,7 +119,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); } } @@ -130,13 +134,15 @@ show_single_message (CT ct, char *form) { sigset_t set, oset; -#ifdef WAITINT - int status; -#else +#ifdef HAVE_UNION_WAIT union wait status; +#else + int status; #endif - umask (ct->c_umask); + /* Allow user executable bit so that temporary directories created by + * the viewer (e.g., lynx) are going to be accessible */ + umask (ct->c_umask & ~(0100)); /* * If you have a format file, then display @@ -166,10 +172,10 @@ show_single_message (CT ct, char *form) SIGPROCMASK (SIG_BLOCK, &set, &oset); while (wait (&status) != NOTOK) { -#ifdef WAITINT - pidcheck (status); -#else +#ifdef HAVE_UNION_WAIT pidcheck (status.w_status); +#else + pidcheck (status); #endif continue; } @@ -779,10 +785,10 @@ show_multi_internal (CT ct, int serial, int alternate) if (serial && !nowserial) { pid_t pid; int kids; -#ifdef WAITINT - int status; -#else +#ifdef HAVE_UNION_WAIT union wait status; +#else + int status; #endif kids = 0; @@ -798,10 +804,10 @@ show_multi_internal (CT ct, int serial, int alternate) } while (kids > 0 && (pid = wait (&status)) != NOTOK) { -#ifdef WAITINT - pidcheck (status); -#else +#ifdef HAVE_UNION_WAIT pidcheck (status.w_status); +#else + pidcheck (status); #endif for (part = m->mp_parts; part; part = part->mp_next) {