]> diplodocus.org Git - nmh/blobdiff - uip/mhshowsbr.c
Calculate "characters to use in for current line" based on starting a new
[nmh] / uip / mhshowsbr.c
index 866a41bfbcbca9f684c754c62877101c0757f29b..61b0057302278129a522eaea9e4677fdef5166c1 100644 (file)
 #include <fcntl.h>
 #include <h/signals.h>
 #include <h/md5.h>
-#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>
 #include <h/utils.h>
-#include <sys/wait.h>
 
 extern int debugsw;
 
@@ -191,7 +188,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) {
@@ -226,39 +223,31 @@ show_switch (CT ct, int serial, int alternate)
     switch (ct->c_type) {
        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 MESSAGE_EXTERNAL:
                    return show_external (ct, serial, alternate);
-                   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_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;
     }
 
     return 0;  /* NOT REACHED */
@@ -347,11 +336,12 @@ show_content_aux (CT ct, int serial, int alternate, char *cp, char *cracked)
            case 'a':
                /* insert parameters from Content-Type field */
            {
-               char **ap, **ep;
+               PM pm;
                char *s = "";
 
-               for (ap = ci->ci_attrs, ep = ci->ci_values; *ap; ap++, ep++) {
-                   snprintf (bp, buflen, "%s%s=\"%s\"", s, *ap, *ep);
+               for (pm = ci->ci_first_pm; pm; pm = pm->pm_next) {
+                   snprintf (bp, buflen, "%s%s=\"%s\"", s, pm->pm_name,
+                             pm->pm_value);
                    len = strlen (bp);
                    bp += len;
                    buflen -= len;
@@ -560,7 +550,7 @@ show_content_aux2 (CT ct, int serial, int alternate, char *cracked, char *buffer
 
     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:
@@ -623,7 +613,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");
+               moreproc && *moreproc ? moreproc : DEFAULT_PAGER);
        cp = (ct->c_showproc = add (buffer, NULL));
        return show_content_aux (ct, serial, alternate, cp, NULL);
     }
@@ -854,11 +844,12 @@ show_multi_aux (CT ct, int serial, int alternate, char *cp)
            case 'a':
                /* insert parameters from Content-Type field */
            {
-               char **ap, **ep;
+               PM pm;
                char *s = "";
 
-               for (ap = ci->ci_attrs, ep = ci->ci_values; *ap; ap++, ep++) {
-                   snprintf (bp, buflen, "%s%s=\"%s\"", s, *ap, *ep);
+               for (pm = ci->ci_first_pm; pm; pm = pm->pm_next) {
+                   snprintf (bp, buflen, "%s%s=\"%s\"", s, pm->pm_name,
+                             pm->pm_value);
                    len = strlen (bp);
                    bp += len;
                    buflen -= len;