Removed the now unused SOprint().
[mmh] / uip / mhshowsbr.c
index 7f3ef70..15991c1 100644 (file)
@@ -13,7 +13,6 @@
 #include <errno.h>
 #include <setjmp.h>
 #include <signal.h>
-#include <h/mts.h>
 #include <h/tws.h>
 #include <h/mime.h>
 #include <h/mhparse.h>
 
 extern int debugsw;
 
-int pausesw  = 1;
 int serialsw = 0;
 int nolist   = 0;
 
 char *progsw = NULL;
 
 /* flags for moreproc/header display */
-int nomore   = 0;
 char *formsw = NULL;
 
 pid_t xpid = 0;
 
-static sigjmp_buf intrenv;
-
-
-/* termsbr.c */
-int SOprintf(char *, ...);
 
 /* mhparse.c */
 int pidcheck(int);
@@ -79,8 +71,7 @@ static void show_single_message(CT, char *);
 static void DisplayMsgHeader(CT, char *);
 static int show_switch(CT, int, int);
 static int show_content(CT, int, int);
-static int show_content_aux2(CT, int, int, char *, char *,
-               int, int, int, int, int);
+static int show_content_aux2(CT, int, int, char *, char *, int, int, int, int);
 static int show_text(CT, int, int);
 static int show_multi(CT, int, int);
 static int show_multi_internal(CT, int, int);
@@ -88,7 +79,6 @@ 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);
 
 
 /*
@@ -110,7 +100,7 @@ show_all_messages(CT *cts)
        /*
        ** If form is "mhl.null", suppress display of header.
        */
-       if (!strcmp(formsw, "mhl.null"))
+       if (strcmp(formsw, "mhl.null")==0)
                formsw = NULL;
 
        for (ctp = cts; *ctp; ctp++) {
@@ -206,13 +196,8 @@ DisplayMsgHeader(CT ct, char *form)
        vec[vecp++] = "-nobody";
        vec[vecp++] = ct->c_file;
 
-       /*
-       ** If we've specified -(no)moreproc,
-       ** then just pass that along.
-       */
-       if (nomore) {
-               vec[vecp++] = "-nomoreproc";
-       } else if (progsw) {
+       /* If we've specified -moreproc, then just pass that along. */
+       if (progsw) {
                vec[vecp++] = "-moreproc";
                vec[vecp++] = progsw;
        }
@@ -220,7 +205,7 @@ DisplayMsgHeader(CT ct, char *form)
 
        fflush(stdout);
 
-       for (i = 0; (child_id = vfork()) == NOTOK && i < 5; i++)
+       for (i = 0; (child_id = fork()) == NOTOK && i < 5; i++)
                sleep(5);
 
        switch (child_id) {
@@ -251,44 +236,42 @@ static int
 show_switch(CT ct, int serial, int alternate)
 {
        switch (ct->c_type) {
-               case CT_MULTIPART:
-                       return show_multi(ct, serial, alternate);
-                       break;
+       case CT_MULTIPART:
+               return show_multi(ct, serial, alternate);
+               break;
 
-               case CT_MESSAGE:
-                       switch (ct->c_subtype) {
-                               case MESSAGE_PARTIAL:
-                                       return show_partial(ct, serial,
-                                                       alternate);
-                                       break;
+       case CT_MESSAGE:
+               switch (ct->c_subtype) {
+                       case MESSAGE_PARTIAL:
+                               return show_partial(ct, serial, alternate);
+                               break;
 
-                               case MESSAGE_EXTERNAL:
-                                       return show_external(ct, serial,
-                                                       alternate);
-                                       break;
+                       case MESSAGE_EXTERNAL:
+                               return show_external(ct, serial, alternate);
+                               break;
 
-                               case MESSAGE_RFC822:
-                               default:
-                                       return show_message_rfc822(ct, serial,
-                                                       alternate);
-                                       break;
-                       }
-                       break;
+                       case MESSAGE_RFC822:
+                       default:
+                               return show_message_rfc822(ct, serial,
+                                               alternate);
+                               break;
+               }
+               break;
 
-               case CT_TEXT:
-                       return show_text(ct, serial, alternate);
-                       break;
+       case CT_TEXT:
+               return show_text(ct, serial, alternate);
+               break;
 
-               case CT_AUDIO:
-               case CT_IMAGE:
-               case CT_VIDEO:
-               case CT_APPLICATION:
-                       return show_content(ct, serial, alternate);
-                       break;
+       case CT_AUDIO:
+       case CT_IMAGE:
+       case CT_VIDEO:
+       case CT_APPLICATION:
+               return show_content(ct, serial, alternate);
+               break;
 
-               default:
-                       adios(NULL, "unknown content type %d", ct->c_type);
-                       break;
+       default:
+               adios(NULL, "unknown content type %d", ct->c_type);
+               break;
        }
 
        return 0;  /* NOT REACHED */
@@ -335,7 +318,7 @@ int
 show_content_aux(CT ct, int serial, int alternate, char *cp, char *cracked)
 {
        int fd, len, buflen, quoted;
-       int xstdin, xlist, xpause, xtty;
+       int xstdin, xlist, xtty;
        char *bp, *pp, *file, buffer[BUFSIZ];
        CI ci = &ct->c_ctinfo;
 
@@ -350,11 +333,10 @@ show_content_aux(CT ct, int serial, int alternate, char *cp, char *cracked)
        file = NULL;
        if ((fd = (*ct->c_ceopenfnx) (ct, &file)) == NOTOK)
                return NOTOK;
-       if (ct->c_showproc && !strcmp(ct->c_showproc, "true"))
+       if (ct->c_showproc && strcmp(ct->c_showproc, "true")==0)
                return (alternate ? DONE : OK);
 
        xlist  = 0;
-       xpause = 0;
        xstdin = 0;
        xtty   = 0;
 
@@ -377,7 +359,7 @@ show_content_aux(CT ct, int serial, int alternate, char *cp, char *cracked)
                        switch (*++cp) {
                        case 'a':
                                /* insert parameters from Content-Type field */
-                       {
+                               {
                                char **ap, **ep;
                                char *s = "";
 
@@ -390,8 +372,8 @@ show_content_aux(CT ct, int serial, int alternate, char *cp, char *cracked)
                                        buflen -= len;
                                        s = " ";
                                }
-                       }
-                       break;
+                               }
+                               break;
 
                        case 'd':
                                /* insert content description */
@@ -432,10 +414,6 @@ show_content_aux(CT ct, int serial, int alternate, char *cp, char *cracked)
                                break;
 
                        case 'p':
-                               /* %l, and pause prior to displaying content */
-                               xpause = pausesw;
-                               /* and fall... */
-
                        case 'l':
                                /*
                                ** display listing prior to displaying content
@@ -528,7 +506,7 @@ raw:
 
 got_command:
        return show_content_aux2(ct, serial, alternate, cracked, buffer,
-                       fd, xlist, xpause, xstdin, xtty);
+                       fd, xlist, xstdin, xtty);
 }
 
 
@@ -538,7 +516,7 @@ got_command:
 
 static int
 show_content_aux2(CT ct, int serial, int alternate, char *cracked,
-       char *buffer, int fd, int xlist, int xpause, int xstdin, int xtty)
+       char *buffer, int fd, int xlist, int xstdin, int xtty)
 {
        pid_t child_id;
        int i;
@@ -566,33 +544,10 @@ show_content_aux2(CT ct, int serial, int alternate, char *cracked,
        }
 
        if (xlist) {
-               char prompt[BUFSIZ];
-
                if (ct->c_type == CT_MULTIPART)
                        list_content(ct, -1, 1, 0, 0);
                else
                        list_switch(ct, -1, 1, 0, 0);
-
-               if (xpause && SOprintf("Press <return> to show content..."))
-                       printf("Press <return> to show content...");
-
-               if (xpause) {
-                       int intr;
-                       SIGNAL_HANDLER istat;
-
-                       istat = SIGNAL(SIGINT, intrser);
-                       if ((intr = sigsetjmp(intrenv, 1)) == OK) {
-                               fflush(stdout);
-                               prompt[0] = 0;
-                               read(fileno(stdout), prompt, sizeof(prompt));
-                       }
-                       SIGNAL(SIGINT, istat);
-                       if (intr != OK || prompt[0] == 'n') {
-                               (*ct->c_ceclosefnx) (ct);
-                               return (alternate ? DONE : NOTOK);
-                       }
-                       if (prompt[0] == 'q') done(OK);
-               }
        }
 
        snprintf(exec, sizeof(exec), "exec %s", buffer);
@@ -604,38 +559,38 @@ show_content_aux2(CT ct, int serial, int alternate, char *cracked,
 
        fflush(stdout);
 
-       for (i = 0; (child_id = vfork()) == NOTOK && i < 5; i++)
+       for (i = 0; (child_id = fork()) == NOTOK && i < 5; i++)
                sleep(5);
        switch (child_id) {
-               case NOTOK:
-                       advise("fork", "unable to");
-                       (*ct->c_ceclosefnx) (ct);
-                       return NOTOK;
+       case NOTOK:
+               advise("fork", "unable to");
+               (*ct->c_ceclosefnx) (ct);
+               return NOTOK;
 
-               case OK:
-                       if (cracked)
-                               chdir(cracked);
-                       if (!xstdin)
-                               dup2(fd, 0);
-                       close(fd);
-                       execvp("/bin/sh", vec);
-                       fprintf(stderr, "unable to exec ");
-                       perror("/bin/sh");
-                       _exit(-1);
-                       /* NOTREACHED */
-
-               default:
-                       if (!serial) {
-                               ct->c_pid = child_id;
-                               if (xtty)
-                                       xpid = child_id;
-                       } else {
-                               pidcheck(pidXwait(child_id, NULL));
-                       }
+       case OK:
+               if (cracked)
+                       chdir(cracked);
+               if (!xstdin)
+                       dup2(fd, 0);
+               close(fd);
+               execvp("/bin/sh", vec);
+               fprintf(stderr, "unable to exec ");
+               perror("/bin/sh");
+               _exit(-1);
+               /* NOTREACHED */
+
+       default:
+               if (!serial) {
+                       ct->c_pid = child_id;
+                       if (xtty)
+                               xpid = child_id;
+               } else {
+                       pidcheck(pidXwait(child_id, NULL));
+               }
 
-                       if (fd != NOTOK)
-                               (*ct->c_ceclosefnx) (ct);
-                       return (alternate ? DONE : OK);
+               if (fd != NOTOK)
+                       (*ct->c_ceclosefnx) (ct);
+               return (alternate ? DONE : OK);
        }
 }
 
@@ -667,8 +622,7 @@ show_text(CT ct, int serial, int alternate)
        */
        if (!alternate || ct->c_subtype == TEXT_PLAIN) {
                snprintf(buffer, sizeof(buffer), "%%p%s '%%F'",
-                               progsw ? progsw : moreproc && *moreproc ?
-                               moreproc : "more");
+                               progsw ? progsw : moreproc);
                cp = (ct->c_showproc = getcpy(buffer));
                return show_content_aux(ct, serial, alternate, cp, NULL);
        }
@@ -770,25 +724,25 @@ show_multi_internal(CT ct, int serial, int alternate)
 
                        inneresult = show_switch(p, nowserial, nowalternate);
                        switch (inneresult) {
-                               case NOTOK:
-                                       if (alternate && !alternating) {
-                                               result = NOTOK;
-                                               goto out;
-                                       }
-                                       continue;
-
-                               case OK:
-                               case DONE:
-                                       if (alternating) {
-                                               result = DONE;
-                                               break;
-                                       }
-                                       if (alternate) {
-                                               alternate = nowalternate = 0;
-                                               if (result == NOTOK)
-                                                       result = inneresult;
-                                       }
-                                       continue;
+                       case NOTOK:
+                               if (alternate && !alternating) {
+                                       result = NOTOK;
+                                       goto out;
+                               }
+                               continue;
+
+                       case OK:
+                       case DONE:
+                               if (alternating) {
+                                       result = DONE;
+                                       break;
+                               }
+                               if (alternate) {
+                                       alternate = nowalternate = 0;
+                                       if (result == NOTOK)
+                                               result = inneresult;
+                               }
+                               continue;
                        }
                        break;
                }
@@ -862,7 +816,7 @@ static int
 show_multi_aux(CT ct, int serial, int alternate, char *cp)
 {
        int len, buflen, quoted;
-       int xlist, xpause, xtty;
+       int xlist, xtty;
        char *bp, *pp, *file, buffer[BUFSIZ];
        struct multipart *m = (struct multipart *) ct->c_ctparams;
        struct part *part;
@@ -886,14 +840,13 @@ show_multi_aux(CT ct, int serial, int alternate, char *cp)
                        /* I'm not sure if this is necessary? */
                        p->c_storage = getcpy(file);
 
-                       if (p->c_showproc && !strcmp(p->c_showproc, "true"))
+                       if (p->c_showproc && strcmp(p->c_showproc, "true")==0)
                                return (alternate ? DONE : OK);
                        (*p->c_ceclosefnx) (p);
                }
        }
 
        xlist = 0;
-       xpause = 0;
        xtty = 0;
 
        /* get buffer ready to go */
@@ -909,7 +862,7 @@ show_multi_aux(CT ct, int serial, int alternate, char *cp)
                        switch (*++cp) {
                        case 'a':
                                /* insert parameters from Content-Type field */
-                       {
+                               {
                                char **ap, **ep;
                                char *s = "";
 
@@ -922,8 +875,8 @@ show_multi_aux(CT ct, int serial, int alternate, char *cp)
                                        buflen -= len;
                                        s = " ";
                                }
-                       }
-                       break;
+                               }
+                               break;
 
                        case 'd':
                                /* insert content description */
@@ -972,10 +925,6 @@ show_multi_aux(CT ct, int serial, int alternate, char *cp)
                        break;
 
                        case 'p':
-                               /* %l, and pause prior to displaying content */
-                               xpause = pausesw;
-                               /* and fall... */
-
                        case 'l':
                                /*
                                ** display listing prior to displaying content
@@ -1068,7 +1017,7 @@ raw:
        }
 
        return show_content_aux2(ct, serial, alternate, NULL, buffer,
-                       NOTOK, xlist, xpause, 0, xtty);
+                       NOTOK, xlist, 0, xtty);
 }
 
 
@@ -1145,15 +1094,3 @@ show_external(CT ct, int serial, int alternate)
        return NOTOK;
 #endif
 }
-
-
-static RETSIGTYPE
-intrser(int i)
-{
-#ifndef RELIABLE_SIGNALS
-       SIGNAL(SIGINT, intrser);
-#endif
-
-       putchar('\n');
-       siglongjmp(intrenv, DONE);
-}