]> diplodocus.org Git - nmh/blobdiff - uip/mhbuildsbr.c
Alter HasSuffixC()'s char * to be const.
[nmh] / uip / mhbuildsbr.c
index aefa1f3e27fcc5eab2c95bcc7fb55817a1e3347a..fc90dc0151d331531deba92376868f291668f018 100644 (file)
@@ -190,9 +190,8 @@ build_mime (char *infile, int autobuild, int dist, int directives,
                    fclose(in);
                    free (ct);
                    return NULL;
-               } else {
-                   adios (NULL, "draft shouldn't contain %s: field", name);
                }
+                adios (NULL, "draft shouldn't contain %s: field", name);
            }
 
            /* ignore any Content-Type fields in the header */
@@ -560,6 +559,13 @@ finish_field:
     if ((cp = strchr(prefix, 'a')) == NULL)
        adios (NULL, "internal error(4)");
 
+    /*
+     * If using EAI, force 8-bit charset.
+     */
+    if (header_encoding == CE_8BIT) {
+        set_charset (ct, 1);
+    }
+
     /*
      * Scan the contents.  Choose a transfer encoding, and
      * check if prefix for multipart boundary clashes with
@@ -704,9 +710,8 @@ user_content (FILE *in, char *buf, CT *ctp, const char *infilename)
            strncpy (content, buf + 2, sizeof(content));
            inlineD = 1;
            goto rock_and_roll;
-       } else {
-           inlineD = 0;
        }
+        inlineD = 0;
 
        /* the directive is implicit */
        strncpy (content, "text/plain", sizeof(content));
@@ -1754,8 +1759,7 @@ build_headers (CT ct, int header_encoding)
        np = output_params(len, ct->c_dispo_first, NULL, 0);
        vp = add(np, vp);
        vp = add("\n", vp);
-       if (np)
-           free(np);
+        mh_xfree(np);
        add_header (ct, mh_xstrdup(DISPO_FIELD), vp);
     }
 
@@ -1779,7 +1783,12 @@ skip_headers:
 
     /*
      * output the Content-Transfer-Encoding
+     * If using EAI and message body is 7-bit, force 8-bit C-T-E.
      */
+    if (header_encoding == CE_8BIT  &&  ct->c_encoding == CE_7BIT) {
+        ct->c_encoding = CE_8BIT;
+    }
+
     switch (ct->c_encoding) {
     case CE_7BIT:
        /* Nothing to output */
@@ -2023,8 +2032,7 @@ setup_attach_content(CT ct, char *filename)
 
     for (pm = ct->c_ctinfo.ci_first_pm; pm; pm = pm->pm_next) {
        if (strcasecmp(pm->pm_name, "name") == 0) {
-           if (pm->pm_value)
-               free(pm->pm_value);
+            mh_xfree(pm->pm_value);
            pm->pm_value = mh_xstrdup(simplename);
            break;
        }
@@ -2262,9 +2270,8 @@ expand_pseudoheader (CT ct, CT *text_plain_ct, struct multipart *m,
             free (reply_file);
             admonish (NULL, "failed to read %s", reply_file);
             return;
-        } else {
-            (void) close (fd);
-        }
+        } 
+        (void) close (fd);
     }
 
     /* This sets reply_ct->c_ctparams, and reply_ct->c_termproc if the