]> diplodocus.org Git - nmh/commitdiff
Remove support for parallel content display. This means we can finally drive
authorKen Hornstein <kenh@pobox.com>
Fri, 21 Mar 2014 16:56:37 +0000 (12:56 -0400)
committerKen Hornstein <kenh@pobox.com>
Fri, 21 Mar 2014 16:56:37 +0000 (12:56 -0400)
a stake in the heart of the horrible xpid global!

13 files changed:
docs/pending-release-notes
h/mhparse.h
man/mhshow.man
uip/burst.c
uip/mhbuildsbr.c
uip/mhcachesbr.c
uip/mhfixmsg.c
uip/mhlist.c
uip/mhn.c
uip/mhparse.c
uip/mhshow.c
uip/mhshowsbr.c
uip/mhtest.c

index b074793f5d056b99177071a49d52c77b3c35e49e..6be3d54be2ae1be69b25219dc3ac2260ff73b703 100644 (file)
@@ -132,6 +132,9 @@ OBSOLETE FEATURES
   environment variable.
 - Instead of printing PostScript attachments, by default, from mhshow,
   try to find a suitable viewer.
+- Support for parallel display of multipart/parallel content has been
+  removed from mhshow; all multipart content will be displayed in
+  serial.
 
 -------------------
 DEPRECATED FEATURES
index 7ade8a3c842905cbbfe30fad04e684b636676a96..f58175c0176dec7ebd6c7499f2ec2aa39d0a741e 100644 (file)
@@ -141,7 +141,6 @@ struct Content {
     SizeCEFunc  c_cesizefnx;   /* size of decoded contents          */
 
     int        c_umask;                /* associated umask                  */
-    pid_t c_pid;               /* process doing display             */
     int        c_rfc934;               /* rfc934 compatibility flag         */
 
     char *c_showproc;          /* default, if not in profile        */
index 91f680543accd4dacc0743ff6ecc0c20cea392c3..482229e982f76904660ff746c01cba4d1c46482c 100644 (file)
@@ -18,7 +18,6 @@ mhshow \- display MIME messages
 .RB [ \-type
 .IR content ]
 \&...
-.RB [ \-serialonly " | " \-noserialonly ]
 .RB [ \-pause " | " \-nopause ]
 .RB [ \-form
 .IR formfile ]
@@ -227,7 +226,6 @@ The display string may contain the following escapes:
 .ta \w'%F        'u
 %a        Insert parameters from Content-Type field
 %{parameter} Insert the parameter value from the Content-Type field
-%e        exclusive execution
 %f        Insert filename containing content
 %F        %e, %f, and stdin is terminal not content
 %l        display listing prior to displaying content
@@ -332,14 +330,7 @@ Finally,
 .B mhshow
 will process each message serially\0--\0it won't start
 showing the next message until all the commands executed to display the
-current message have terminated.  In the case of a multipart content
-(of any subtype listed above), the content contains advice indicating if
-the parts should be displayed serially or in parallel.  Because this may
-cause confusion, particularly on uni-window displays, the
-.B \-serialonly
-switch can be given to tell
-.B mhshow
-to never display parts in parallel.
+current message have terminated.
 .SS "Showing Alternate Character Sets"
 If
 .B mhshow
@@ -647,7 +638,6 @@ is checked.
 .RB ` \-form\ mhl.headers '
 .RB ` \-pause '
 .RB ` \-rcache\ ask '
-.RB ` \-noserialonly '
 .RB ` \-wcache\ ask '
 .fi
 .SH CONTEXT
index ff5af237c60f2adba797d03b5b6d215a6343d622..71b226c116761165021f66f44e33e9e9d1a070a1 100644 (file)
@@ -42,7 +42,6 @@ struct smsg {
  */
 
 int debugsw = 0;
-pid_t xpid = 0;
 
 /*
  * static prototypes
index 555e3b5c673d9fe70cac83acd493a09c5f71badb..6186cfe4244eb18f8933312faf498e086eb40c0d 100644 (file)
@@ -41,8 +41,6 @@ extern int contentidsw;
 extern int rcachesw;   /* mhcachesbr.c */
 extern int wcachesw;   /* mhcachesbr.c */
 
-pid_t xpid = 0;
-
 static char prefix[] = "----- =_aaaaaaaaaa";
 
 struct attach_list {
index 136b567807e6c9b84506b8dda4ba3982d57aa238..7e684e1f249b80cbf7091ac332cd149be6a0f37f 100644 (file)
@@ -25,8 +25,6 @@
 
 extern int debugsw;
 
-extern pid_t xpid;     /* mhshowsbr.c or mhbuildsbr.c */
-
 /* cache policies */
 int rcachesw = CACHE_ASK;
 int wcachesw = CACHE_ASK;
@@ -226,13 +224,6 @@ got_it:
        int len, buflen;
        char *bp, query[BUFSIZ];
 
-       if (xpid) {
-           if (xpid < 0)
-               xpid = -xpid;
-           pidcheck (pidwait (xpid, NOTOK));
-           xpid = 0;
-       }
-
        /* Get buffer ready to go */
        bp = query;
        buflen = sizeof(query);
index 7fd69f50abc4e90139f924d5cd5be2723651654b..97cbab07905f32998e392a2a3830474451cae134 100644 (file)
@@ -60,7 +60,7 @@ void reverse_parts (CT);
 int output_message (CT, char *);
 
 /* mhshowsbr.c */
-int show_content_aux (CT, int, int, char *, char *);
+int show_content_aux (CT, int, char *, char *);
 
 /* mhmisc.c */
 void flush_errors (void);
@@ -1128,7 +1128,7 @@ reformat_part (CT ct, char *file, char *type, char *subtype, int c_type) {
     free (cp);
 
     cp = concat (cf, " >", file, NULL);
-    status = show_content_aux (ct, 1, 0, cp, NULL);
+    status = show_content_aux (ct, 0, cp, NULL);
     free (cp);
 
     /* Unlink decoded content tmp file and free its filename to avoid
@@ -1196,7 +1196,7 @@ build_multipart_alt (CT first_alt, CT new_part, int type, int subtype) {
        c_cefile, c_encoding,
        c_digested, c_digest[16], c_ctexbody,
        c_ctinitfnx, c_ceopenfnx, c_ceclosefnx, c_cesizefnx,
-       c_umask, c_pid, c_rfc934,
+       c_umask, c_rfc934,
        c_showproc, c_termproc, c_storeproc, c_storage, c_folder
     */
 
index f9dbbd68bc260e70f9f1c834df55ab424f3b663d..f09c1475236085b9c70f78c543019fd6736667b9 100644 (file)
@@ -66,8 +66,6 @@ extern int userrs;
  * This is currently needed to keep mhparse happy.
  * This needs to be changed.
  */
-pid_t xpid  = 0;
-
 int debugsw = 0;
 
 #define        quitser pipeser
index c0b7e7816c7a4e2eb58d569bed82c7cba0b63169..7f85ae55e9627f5c629145cb64fb74d3396112b2 100644 (file)
--- a/uip/mhn.c
+++ b/uip/mhn.c
@@ -33,8 +33,6 @@
     X("nopause", 0, NPAUSESW) \
     X("realsize", 0, SIZESW) \
     X("norealsize", 0, NSIZESW) \
-    X("serialonly", 0, SERIALSW) \
-    X("noserialonly", 0, NSERIALSW) \
     X("show", 0, SHOWSW) \
     X("noshow", 0, NSHOWSW) \
     X("store", 0, STORESW) \
@@ -85,7 +83,6 @@ extern char *cache_private;
 
 /* mhshowsbr.c */
 extern int pausesw;
-extern int serialsw;
 extern char *progsw;
 extern int nolist;
 extern int nomore;     /* flags for moreproc/header display */
@@ -251,13 +248,6 @@ do_cache:
                pausesw = 0;
                continue;
 
-           case SERIALSW:
-               serialsw = 1;
-               continue;
-           case NSERIALSW:
-               serialsw = 0;
-               continue;
-
            case SHOWSW:
                showsw = 1;
                continue;
index 59f8b2218344ed55b3b42625c4b40c4ce347aa7e..688aba1843923bac3d8b85377edc58a3791fe66e 100644 (file)
@@ -23,8 +23,6 @@
 
 extern int debugsw;
 
-extern pid_t xpid;     /* mhshowsbr.c  */
-
 /* cache policies */
 extern int rcachesw;   /* mhcachesbr.c */
 extern int wcachesw;   /* mhcachesbr.c */
@@ -2478,13 +2476,6 @@ openFTP (CT ct, char **file)
        return NOTOK;
     }
 
-    if (xpid) {
-       if (xpid < 0)
-           xpid = -xpid;
-       pidcheck (pidwait (xpid, NOTOK));
-       xpid = 0;
-    }
-
     /* Get the buffer ready to go */
     bp = buffer;
     buflen = sizeof(buffer);
@@ -2684,13 +2675,6 @@ openMail (CT ct, char **file)
        return NOTOK;
     }
 
-    if (xpid) {
-       if (xpid < 0)
-           xpid = -xpid;
-       pidcheck (pidwait (xpid, NOTOK));
-       xpid = 0;
-    }
-
     /* Get buffer ready to go */
     bp = buffer;
     buflen = sizeof(buffer);
@@ -2821,13 +2805,6 @@ openURL (CT ct, char **file)
        return NOTOK;
     }
 
-    if (xpid) {
-       if (xpid < 0)
-           xpid = -xpid;
-       pidcheck (pidwait (xpid, NOTOK));
-       xpid = 0;
-    }
-
     ce->ce_unlink = (*file == NULL);
     caching = 0;
     cachefile[0] = '\0';
index f83236b7433e1f063ef77ce29aa6efb6121c86b1..fdad6e13bb95994752955d64dc140392e0ccf8ae 100644 (file)
@@ -23,8 +23,6 @@
     X("nocheck", 0, NCHECKSW) \
     X("pause", 0, PAUSESW) \
     X("nopause", 0, NPAUSESW) \
-    X("serialonly", 0, SERIALSW) \
-    X("noserialonly", 0, NSERIALSW) \
     X("verbose", 0, VERBSW) \
     X("noverbose", 0, NVERBSW) \
     X("file file", 0, FILESW) \
@@ -64,7 +62,6 @@ extern char *cache_private;
 
 /* mhshowsbr.c */
 extern int pausesw;
-extern int serialsw;
 extern char *progsw;
 extern int nomore;     /* flags for moreproc/header display */
 extern char *formsw;
@@ -175,13 +172,6 @@ do_cache:
                pausesw = 0;
                continue;
 
-           case SERIALSW:
-               serialsw = 1;
-               continue;
-           case NSERIALSW:
-               serialsw = 0;
-               continue;
-
            case PARTSW:
                if (!(cp = *argp++) || *cp == '-')
                    adios (NULL, "missing argument to %s", argp[-2]);
index 13c449b36484f098460ed3660a3fb243afffad96..545f78c964d4a0a9ed70f4fa852b2b78feb449f3 100644 (file)
@@ -24,7 +24,6 @@
 extern int debugsw;
 
 int pausesw  = 1;
-int serialsw = 0;
 int nolist   = 0;
 
 char *progsw = NULL;
@@ -33,8 +32,6 @@ char *progsw = NULL;
 int nomore   = 0;
 char *formsw = NULL;
 
-pid_t xpid = 0;
-
 static sigjmp_buf intrenv;
 
 
@@ -48,25 +45,24 @@ void flush_errors (void);
  * prototypes
  */
 void show_all_messages (CT *);
-int show_content_aux (CT, int, int, char *, char *);
+int show_content_aux (CT, int, char *, char *);
 
 /*
  * static prototypes
  */
 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_text (CT, int, int);
-static int show_multi (CT, int, int);
-static int show_multi_internal (CT, int, int);
-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 int parse_display_string (CT, char *, int *, int *, int *, int *, 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_text (CT, int);
+static int show_multi (CT, int);
+static int show_multi_internal (CT, int);
+static int show_multi_aux (CT, int, char *);
+static int show_message_rfc822 (CT, int);
+static int show_partial (CT, int);
+static int show_external (CT, int);
+static int parse_display_string (CT, char *, int *, int *, int *, char *,
                                  char *, size_t, int multipart);
 static int convert_content_charset (CT, char **);
 static void intrser (int);
@@ -125,11 +121,9 @@ show_single_message (CT ct, char *form)
      */
     if (form)
        DisplayMsgHeader(ct, form);
-    else
-       xpid = 0;
 
     /* Show the body of the message */
-    show_switch (ct, 1, 0);
+    show_switch (ct, 0);
 
     if (ct->c_fp) {
        fclose (ct->c_fp);
@@ -154,7 +148,6 @@ show_single_message (CT ct, char *form)
     /* reset the signal mask */
     sigprocmask (SIG_SETMASK, &oset, &set);
 
-    xpid = 0;
     flush_errors ();
 }
 
@@ -207,7 +200,7 @@ DisplayMsgHeader (CT ct, char *form)
        /* NOTREACHED */
 
     default:
-       xpid = -child_id;
+       pidcheck(pidwait(child_id, NOTOK));
        break;
     }
 
@@ -221,33 +214,33 @@ DisplayMsgHeader (CT ct, char *form)
  */
 
 static int
-show_switch (CT ct, int serial, int alternate)
+show_switch (CT ct, int alternate)
 {
     switch (ct->c_type) {
        case CT_MULTIPART:
-           return show_multi (ct, serial, alternate);
+           return show_multi (ct, alternate);
 
        case CT_MESSAGE:
            switch (ct->c_subtype) {
                case MESSAGE_PARTIAL:
-                   return show_partial (ct, serial, alternate);
+                   return show_partial (ct, alternate);
 
                case MESSAGE_EXTERNAL:
-                   return show_external (ct, serial, alternate);
+                   return show_external (ct, alternate);
 
                case MESSAGE_RFC822:
                default:
-                   return show_message_rfc822 (ct, serial, alternate);
+                   return show_message_rfc822 (ct, alternate);
            }
 
        case CT_TEXT:
-           return show_text (ct, serial, alternate);
+           return show_text (ct, alternate);
 
        case CT_AUDIO:
        case CT_IMAGE:
        case CT_VIDEO:
        case CT_APPLICATION:
-           return show_content (ct, serial, alternate);
+           return show_content (ct, alternate);
 
        default:
            adios (NULL, "unknown content type %d", ct->c_type);
@@ -262,7 +255,7 @@ show_switch (CT ct, int serial, int alternate)
  */
 
 static int
-show_content (CT ct, int serial, int alternate)
+show_content (CT ct, int alternate)
 {
     char *cp, buffer[BUFSIZ];
     CI ci = &ct->c_ctinfo;
@@ -271,15 +264,15 @@ show_content (CT ct, int serial, int alternate)
     snprintf (buffer, sizeof(buffer), "%s-show-%s/%s",
                invo_name, ci->ci_type, ci->ci_subtype);
     if ((cp = context_find (buffer)) && *cp != '\0')
-       return show_content_aux (ct, serial, alternate, cp, NULL);
+       return show_content_aux (ct, alternate, cp, NULL);
 
     /* Check for invo_name-show-type */
     snprintf (buffer, sizeof(buffer), "%s-show-%s", invo_name, ci->ci_type);
     if ((cp = context_find (buffer)) && *cp != '\0')
-       return show_content_aux (ct, serial, alternate, cp, NULL);
+       return show_content_aux (ct, alternate, cp, NULL);
 
     if ((cp = ct->c_showproc))
-       return show_content_aux (ct, serial, alternate, cp, NULL);
+       return show_content_aux (ct, alternate, cp, NULL);
 
     /* complain if we are not a part of a multipart/alternative */
     if (!alternate)
@@ -294,10 +287,10 @@ show_content (CT ct, int serial, int alternate)
  */
 
 int
-show_content_aux (CT ct, int serial, int alternate, char *cp, char *cracked)
+show_content_aux (CT ct, int alternate, char *cp, char *cracked)
 {
     int fd;
-    int xstdin = 0, xlist = 0, xpause = 0, xtty = 0;
+    int xstdin = 0, xlist = 0, xpause = 0;
     char *file, buffer[BUFSIZ];
 
     if (!ct->c_ceopenfnx) {
@@ -332,15 +325,15 @@ show_content_aux (CT ct, int serial, int alternate, char *cp, char *cracked)
        goto got_command;
     }
 
-    if (parse_display_string (ct, cp, &xstdin, &xlist, &xpause, &xtty, file,
+    if (parse_display_string (ct, cp, &xstdin, &xlist, &xpause, file,
                              buffer, sizeof(buffer) - 1, 0)) {
        admonish (NULL, "Buffer overflow constructing show command!\n");
        return NOTOK;
     }
 
 got_command:
-    return show_content_aux2 (ct, serial, alternate, cracked, buffer,
-                             fd, xlist, xpause, xstdin, xtty);
+    return show_content_aux2 (ct, alternate, cracked, buffer,
+                             fd, xlist, xpause, xstdin);
 }
 
 
@@ -349,8 +342,8 @@ 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)
+show_content_aux2 (CT ct, int alternate, char *cracked, char *buffer,
+                   int fd, int xlist, int xpause, int xstdin)
 {
     pid_t child_id;
     int i, vecp;
@@ -369,13 +362,6 @@ show_content_aux2 (CT ct, int serial, int alternate, char *cracked, char *buffer
            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) {
        char prompt[BUFSIZ];
 
@@ -434,13 +420,7 @@ show_content_aux2 (CT ct, int serial, int alternate, char *cracked, char *buffer
        default:
            arglist_free(file, vec);
 
-           if (!serial) {
-               ct->c_pid = child_id;
-               if (xtty)
-                   xpid = child_id;
-           } else {
-               pidcheck (pidXwait (child_id, NULL));
-           }
+           pidcheck (pidXwait (child_id, NULL));
 
            if (fd != NOTOK)
                (*ct->c_ceclosefnx) (ct);
@@ -454,7 +434,7 @@ show_content_aux2 (CT ct, int serial, int alternate, char *cracked, char *buffer
  */
 
 static int
-show_text (CT ct, int serial, int alternate)
+show_text (CT ct, int alternate)
 {
     char *cp, buffer[BUFSIZ];
     CI ci = &ct->c_ctinfo;
@@ -463,12 +443,12 @@ show_text (CT ct, int serial, int alternate)
     snprintf (buffer, sizeof(buffer), "%s-show-%s/%s",
                invo_name, ci->ci_type, ci->ci_subtype);
     if ((cp = context_find (buffer)) && *cp != '\0')
-       return show_content_aux (ct, serial, alternate, cp, NULL);
+       return show_content_aux (ct, alternate, cp, NULL);
 
     /* Check for invo_name-show-type */
     snprintf (buffer, sizeof(buffer), "%s-show-%s", invo_name, ci->ci_type);
     if ((cp = context_find (buffer)) && *cp != '\0')
-       return show_content_aux (ct, serial, alternate, cp, NULL);
+       return show_content_aux (ct, alternate, cp, NULL);
 
     /*
      * Use default method if content is text/plain, or if
@@ -478,7 +458,7 @@ show_text (CT ct, int serial, int alternate)
        snprintf (buffer, sizeof(buffer), "%%p%s %%F", progsw ? progsw :
                moreproc && *moreproc ? moreproc : DEFAULT_PAGER);
        cp = (ct->c_showproc = add (buffer, NULL));
-       return show_content_aux (ct, serial, alternate, cp, NULL);
+       return show_content_aux (ct, alternate, cp, NULL);
     }
 
     return NOTOK;
@@ -490,7 +470,7 @@ show_text (CT ct, int serial, int alternate)
  */
 
 static int
-show_multi (CT ct, int serial, int alternate)
+show_multi (CT ct, int alternate)
 {
     char *cp, buffer[BUFSIZ];
     CI ci = &ct->c_ctinfo;
@@ -499,22 +479,22 @@ show_multi (CT ct, int serial, int alternate)
     snprintf (buffer, sizeof(buffer), "%s-show-%s/%s",
                invo_name, ci->ci_type, ci->ci_subtype);
     if ((cp = context_find (buffer)) && *cp != '\0')
-       return show_multi_aux (ct, serial, alternate, cp);
+       return show_multi_aux (ct, alternate, cp);
 
     /* Check for invo_name-show-type */
     snprintf (buffer, sizeof(buffer), "%s-show-%s", invo_name, ci->ci_type);
     if ((cp = context_find (buffer)) && *cp != '\0')
-       return show_multi_aux (ct, serial, alternate, cp);
+       return show_multi_aux (ct, alternate, cp);
 
     if ((cp = ct->c_showproc))
-       return show_multi_aux (ct, serial, alternate, cp);
+       return show_multi_aux (ct, alternate, cp);
 
     /*
      * Use default method to display this multipart content.  Even
      * unknown types are displayable, since they're treated as mixed
      * per RFC 2046.
      */
-    return show_multi_internal (ct, serial, alternate);
+    return show_multi_internal (ct, alternate);
 }
 
 
@@ -524,40 +504,19 @@ show_multi (CT ct, int serial, int alternate)
  */
 
 static int
-show_multi_internal (CT ct, int serial, int alternate)
+show_multi_internal (CT ct, int alternate)
 {
-    int        alternating, nowalternate, nowserial, result;
+    int        alternating, nowalternate, result;
     struct multipart *m = (struct multipart *) ct->c_ctparams;
     struct part *part;
     CT p;
-    sigset_t set, oset;
 
     alternating = 0;
     nowalternate = alternate;
 
-    if (ct->c_subtype == MULTI_PARALLEL) {
-       nowserial = serialsw;
-    } else if (ct->c_subtype == MULTI_ALTERNATE) {
+    if (ct->c_subtype == MULTI_ALTERNATE) {
        nowalternate = 1;
        alternating  = 1;
-       nowserial = serial;
-    } else {
-       /*
-        * multipart/mixed
-        * mutlipart/digest
-        * unknown subtypes of multipart (treat as mixed per rfc2046)
-        */
-       nowserial = serial;
-    }
-
-    /* block a few signals */
-    if (!nowserial) {
-       sigemptyset (&set);
-       sigaddset (&set, SIGHUP);
-       sigaddset (&set, SIGINT);
-       sigaddset (&set, SIGQUIT);
-       sigaddset (&set, SIGTERM);
-       sigprocmask (SIG_BLOCK, &set, &oset);
     }
 
 /*
@@ -573,7 +532,7 @@ show_multi_internal (CT ct, int serial, int alternate)
        if (part_ok (p, 1) && type_ok (p, 1)) {
            int inneresult;
 
-           inneresult = show_switch (p, nowserial, nowalternate);
+           inneresult = show_switch (p, nowalternate);
            switch (inneresult) {
                case NOTOK:
                    if (alternate && !alternating) {
@@ -606,46 +565,7 @@ show_multi_internal (CT ct, int serial, int alternate)
        goto out;
     }
 
-    if (serial && !nowserial) {
-       pid_t pid;
-       int kids;
-       int status;
-
-       kids = 0;
-       for (part = m->mp_parts; part; part = part->mp_next) {
-           p = part->mp_part;
-
-           if (p->c_pid > OK) {
-               if (kill (p->c_pid, 0) == NOTOK)
-                   p->c_pid = 0;
-               else
-                   kids++;
-           }
-       }
-
-       while (kids > 0 && (pid = wait (&status)) != NOTOK) {
-           pidcheck (status);
-
-           for (part = m->mp_parts; part; part = part->mp_next) {
-               p = part->mp_part;
-
-               if (xpid == pid)
-                   xpid = 0;
-               if (p->c_pid == pid) {
-                   p->c_pid = 0;
-                   kids--;
-                   break;
-               }
-           }
-       }
-    }
-
 out:
-    if (!nowserial) {
-       /* reset the signal mask */
-       sigprocmask (SIG_SETMASK, &oset, &set);
-    }
-
     return result;
 }
 
@@ -656,11 +576,11 @@ out:
  */
 
 static int
-show_multi_aux (CT ct, int serial, int alternate, char *cp)
+show_multi_aux (CT ct, int alternate, char *cp)
 {
     /* xstdin is only used in the call to parse_display_string():
        its value is ignored in the function. */
-    int xstdin = 0, xlist = 0, xpause = 0, xtty = 0;
+    int xstdin = 0, xlist = 0, xpause = 0;
     char *file, buffer[BUFSIZ];
     struct multipart *m = (struct multipart *) ct->c_ctparams;
     struct part *part;
@@ -688,14 +608,14 @@ show_multi_aux (CT ct, int serial, int alternate, char *cp)
        }
     }
 
-    if (parse_display_string (ct, cp, &xstdin, &xlist, &xpause, &xtty, file,
+    if (parse_display_string (ct, cp, &xstdin, &xlist, &xpause, file,
                              buffer, sizeof(buffer) - 1, 1)) {
        admonish (NULL, "Buffer overflow constructing show command!\n");
        return NOTOK;
     }
 
-    return show_content_aux2 (ct, serial, alternate, NULL, buffer,
-                             NOTOK, xlist, xpause, 0, xtty);
+    return show_content_aux2 (ct, alternate, NULL, buffer,
+                             NOTOK, xlist, xpause, 0);
 }
 
 
@@ -704,7 +624,7 @@ show_multi_aux (CT ct, int serial, int alternate, char *cp)
  */
 
 static int
-show_message_rfc822 (CT ct, int serial, int alternate)
+show_message_rfc822 (CT ct, int alternate)
 {
     char *cp, buffer[BUFSIZ];
     CI ci = &ct->c_ctinfo;
@@ -713,20 +633,20 @@ show_message_rfc822 (CT ct, int serial, int alternate)
     snprintf (buffer, sizeof(buffer), "%s-show-%s/%s",
                invo_name, ci->ci_type, ci->ci_subtype);
     if ((cp = context_find (buffer)) && *cp != '\0')
-       return show_content_aux (ct, serial, alternate, cp, NULL);
+       return show_content_aux (ct, alternate, cp, NULL);
 
     /* Check for invo_name-show-type */
     snprintf (buffer, sizeof(buffer), "%s-show-%s", invo_name, ci->ci_type);
     if ((cp = context_find (buffer)) && *cp != '\0')
-       return show_content_aux (ct, serial, alternate, cp, NULL);
+       return show_content_aux (ct, alternate, cp, NULL);
 
     if ((cp = ct->c_showproc))
-       return show_content_aux (ct, serial, alternate, cp, NULL);
+       return show_content_aux (ct, alternate, cp, NULL);
 
     /* default method for message/rfc822 */
     if (ct->c_subtype == MESSAGE_RFC822) {
        cp = (ct->c_showproc = add ("%pecho -file %F", NULL));
-       return show_content_aux (ct, serial, alternate, cp, NULL);
+       return show_content_aux (ct, alternate, cp, NULL);
     }
 
     /* complain if we are not a part of a multipart/alternative */
@@ -742,9 +662,8 @@ show_message_rfc822 (CT ct, int serial, int alternate)
  */
 
 static int
-show_partial (CT ct, int serial, int alternate)
+show_partial (CT ct, int alternate)
 {
-    NMH_UNUSED (serial);
     NMH_UNUSED (alternate);
 
     content_error (NULL, ct,
@@ -760,7 +679,7 @@ show_partial (CT ct, int serial, int alternate)
  */
 
 static int
-show_external (CT ct, int serial, int alternate)
+show_external (CT ct, int alternate)
 {
     struct exbody *e = (struct exbody *) ct->c_ctparams;
     CT p = e->eb_content;
@@ -768,13 +687,13 @@ show_external (CT ct, int serial, int alternate)
     if (!type_ok (p, 0))
        return OK;
 
-    return show_switch (p, serial, alternate);
+    return show_switch (p, alternate);
 }
 
 
 static int
 parse_display_string (CT ct, char *cp, int *xstdin, int *xlist, int *xpause,
-                      int *xtty, char *file, char *buffer, size_t buflen,
+                      char *file, char *buffer, size_t buflen,
                       int multipart) {
     int len, quoted = 0;
     char *bp = buffer, *pp;
@@ -816,14 +735,12 @@ parse_display_string (CT ct, char *cp, int *xstdin, int *xlist, int *xpause,
                break;
 
            case 'e':
-               /* exclusive execution */
-               *xtty = 1;
+               /* no longer implemented */
                break;
 
            case 'F':
                /* %e, %f, and stdin is terminal not content */
                *xstdin = 1;
-               *xtty = 1;
                /* and fall... */
 
            case 'f':
index b85a91ea782730c15780ce12812f0be1f741821e..38e33a84ff2fe8ccfdbce523f57b4ffd62ea9443 100644 (file)
@@ -59,8 +59,6 @@ extern int userrs;
  * This is currently needed to keep mhparse happy.
  * This needs to be changed.
  */
-pid_t xpid  = 0;
-
 int debugsw = 0;
 int verbosw = 0;