X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=uip%2Fmhshowsbr.c;h=3bcf84f937417c80fa20571eaec1d0b68f9df281;hb=7ca05c3df912f540c1f25b3be4d1733f5a3ad1b4;hp=e2cde4dd9ef8b9c20bc1c1779331d0659e9a2162;hpb=7fba80493bf077322a16e98bfeb11990a9c89340;p=mmh diff --git a/uip/mhshowsbr.c b/uip/mhshowsbr.c index e2cde4d..3bcf84f 100644 --- a/uip/mhshowsbr.c +++ b/uip/mhshowsbr.c @@ -22,7 +22,6 @@ extern int debugsw; int nolist = 0; char *formsw = NULL; -pid_t xpid = 0; /* mhparse.c */ @@ -51,7 +50,7 @@ static void show_single_message(CT, char *); static void DisplayMsgHeader(CT, char *); static int show_switch(CT, int); static int show_content(CT, int); -static int show_content_aux2(CT, int, char *, char *, int, int, int, int); +static int show_content_aux2(CT, int, char *, char *, int, int, int); static int show_text(CT, int); static int show_multi(CT, int); static int show_multi_internal(CT, int); @@ -100,9 +99,6 @@ show_all_messages(CT *cts) static void show_single_message(CT ct, char *form) { - sigset_t set, oset; - int status; - /* ** Allow user executable bit so that temporary directories created by ** the viewer (e.g., lynx) are going to be accessible @@ -115,8 +111,6 @@ show_single_message(CT ct, char *form) */ if (form) DisplayMsgHeader(ct, form); - else - xpid = 0; /* Show the body of the message */ show_switch(ct, 0); @@ -128,23 +122,6 @@ show_single_message(CT ct, char *form) if (ct->c_ceclosefnx) (*ct->c_ceclosefnx) (ct); - /* block a few signals */ - sigemptyset(&set); - sigaddset(&set, SIGHUP); - sigaddset(&set, SIGINT); - sigaddset(&set, SIGQUIT); - sigaddset(&set, SIGTERM); - sigprocmask(SIG_BLOCK, &set, &oset); - - while (wait(&status) != NOTOK) { - pidcheck(status); - continue; - } - - /* reset the signal mask */ - sigprocmask(SIG_SETMASK, &oset, &set); - - xpid = 0; flush_errors(); } @@ -182,7 +159,7 @@ DisplayMsgHeader(CT ct, char *form) /* NOTREACHED */ default: - xpid = -child_id; + pidcheck(pidwait(child_id, NOTOK)); break; } } @@ -273,12 +250,11 @@ show_content(CT ct, int alternate) /* ** Parse the display string for displaying generic content */ - int show_content_aux(CT ct, int alternate, char *cp, char *cracked) { int fd, len, buflen, quoted; - int xstdin, xlist, xtty; + int xstdin, xlist; char *bp, *pp, *file, buffer[BUFSIZ]; CI ci = &ct->c_ctinfo; @@ -298,7 +274,6 @@ show_content_aux(CT ct, int alternate, char *cp, char *cracked) xlist = 0; xstdin = 0; - xtty = 0; if (cracked) { strncpy(buffer, cp, sizeof(buffer)); @@ -353,15 +328,9 @@ show_content_aux(CT ct, int alternate, char *cp, char *cracked) } break; - case 'e': - /* exclusive execution */ - xtty = 1; - break; - case 'F': - /* %e, %f, and stdin is terminal not content */ + /* %f, and stdin is terminal not content */ xstdin = 1; - xtty = 1; /* and fall... */ case 'f': @@ -380,7 +349,6 @@ show_content_aux(CT ct, int alternate, char *cp, char *cracked) pp = bp; break; - case 'p': case 'l': /* ** display listing prior to displaying content @@ -455,17 +423,16 @@ raw: got_command: return show_content_aux2(ct, alternate, cracked, buffer, - fd, xlist, xstdin, xtty); + fd, xlist, xstdin); } /* ** Routine to actually display the content */ - static int show_content_aux2(CT ct, int alternate, char *cracked, - char *buffer, int fd, int xlist, int xstdin, int xtty) + char *buffer, int fd, int xlist, int xstdin) { pid_t child_id; @@ -483,13 +450,6 @@ show_content_aux2(CT ct, int alternate, char *cracked, fprintf(stderr, " using command %s\n", buffer); } - if (xpid < 0 || (xtty && xpid)) { - if (xpid < 0) - xpid = -xpid; - pidcheck(pidwait(xpid, NOTOK)); - xpid = 0; - } - if (xlist) { if (ct->c_type == CT_MULTIPART) list_content(ct, -1, 1, 0, 0); @@ -691,7 +651,7 @@ static int show_multi_aux(CT ct, int alternate, char *cp) { int len, buflen, quoted; - int xlist, xtty; + int xlist; char *bp, *pp, *file, buffer[BUFSIZ]; struct multipart *m = (struct multipart *) ct->c_ctparams; struct part *part; @@ -722,7 +682,6 @@ show_multi_aux(CT ct, int alternate, char *cp) } xlist = 0; - xtty = 0; /* get buffer ready to go */ bp = buffer; @@ -771,16 +730,7 @@ show_multi_aux(CT ct, int alternate, char *cp) } break; - case 'e': - /* exclusive execution */ - xtty = 1; - break; - case 'F': - /* %e and %f */ - xtty = 1; - /* and fall... */ - case 'f': /* insert filename(s) containing content */ { @@ -806,7 +756,6 @@ show_multi_aux(CT ct, int alternate, char *cp) } break; - case 'p': case 'l': /* ** display listing prior to displaying content @@ -880,7 +829,7 @@ raw: } return show_content_aux2(ct, alternate, NULL, buffer, - NOTOK, xlist, 0, xtty); + NOTOK, xlist, 0); } @@ -910,7 +859,7 @@ show_message_rfc822(CT ct, int alternate) /* default method for message/rfc822 */ if (ct->c_subtype == MESSAGE_RFC822) { - cp = (ct->c_showproc = getcpy("%pshow -file '%F'")); + cp = (ct->c_showproc = getcpy("%lshow -file %F")); return show_content_aux(ct, alternate, cp, NULL); }