]> diplodocus.org Git - nmh/blobdiff - uip/mhparse.c
Added context_find_prefix().
[nmh] / uip / mhparse.c
index dd4c5e9a26ad93ae56a56af65e38afd171050014..ca5558ae486551dee77e7576d94bea77e41136be 100644 (file)
@@ -41,6 +41,7 @@ int suppress_bogus_mp_content_warning;
 int bogus_mp_content;
 int suppress_extraneous_trailing_semicolon_warning;
 int extraneous_trailing_semicolon;
+int suppress_multiple_mime_version_warning = 1;
 
 /* list of preferred type/subtype pairs, for -prefer */
 char *preferred_types[NPREFS],
@@ -365,16 +366,12 @@ get_content (FILE *in, char *file, int toplevel)
        if (!strcasecmp (hp->name, VRSN_FIELD)) {
            int ucmp;
            char c, *cp, *dp;
+           char *vrsn;
 
-           if (ct->c_vrsn) {
-               advise (NULL, "message %s has multiple %s: fields",
-                       ct->c_file, VRSN_FIELD);
-               goto next_header;
-           }
-           ct->c_vrsn = add (hp->value, NULL);
+           vrsn = add (hp->value, NULL);
 
            /* Now, cleanup this field */
-           cp = ct->c_vrsn;
+           cp = vrsn;
 
            while (isspace ((unsigned char) *cp))
                cp++;
@@ -401,6 +398,14 @@ get_content (FILE *in, char *file, int toplevel)
                admonish (NULL, "message %s has unknown value for %s: field (%s)",
                ct->c_file, VRSN_FIELD, cp);
            }
+           if (!ct->c_vrsn) {
+               ct->c_vrsn = vrsn;
+           } else {
+               if (! suppress_multiple_mime_version_warning)
+                   advise (NULL, "message %s has multiple %s: fields",
+                           ct->c_file, VRSN_FIELD);
+               free(vrsn);
+           }
        }
        else if (!strcasecmp (hp->name, TYPE_FIELD)) {
        /* Get Content-Type field */
@@ -1096,8 +1101,9 @@ InitMultiPart (CT ct)
 
        admonish (NULL,
                  "\"%s/%s\" type in message %s must be encoded in\n"
-                 "7bit, 8bit, or binary, per RFC 2045 (6.4).  One workaround "
-                 "is to\nmanually edit the file and change the \"%s\"\n"
+                 "7bit, 8bit, or binary, per RFC 2045 (6.4).  "
+                  "mhfixmsg -fixcte can fix it, or\n"
+                  "manually edit the file and change the \"%s\"\n"
                  "Content-Transfer-Encoding to one of those.  For now",
                  ci->ci_type, ci->ci_subtype, ct->c_file, bp);
        free (cte);
@@ -2577,7 +2583,7 @@ openFTP (CT ct, char **file)
     /*
      * Now, check the answer
      */
-    if (!getanswer (buffer))
+    if (!read_yes_or_no_if_tty (buffer))
        return NOTOK;
 
     if (e->eb_flags) {
@@ -2764,7 +2770,7 @@ openMail (CT ct, char **file)
                    e->eb_subject ? e->eb_subject : e->eb_body);
 
     /* Now, check answer */
-    if (!getanswer (buffer))
+    if (!read_yes_or_no_if_tty (buffer))
        return NOTOK;
 
     vecp = 0;
@@ -4328,7 +4334,7 @@ char *get_param_value(PM pm, char replace)
            }
            if (utf8) {
                for (++p, --inbytes;
-                    inbytes > 0 && (((unsigned char) *q) & 0xc0) == 0x80;
+                    inbytes > 0 && (((unsigned char) *p) & 0xc0) == 0x80;
                     ++p, --inbytes)
                    continue;
            } else {