]> diplodocus.org Git - nmh/blobdiff - uip/mhbuildsbr.c
Remove unused NCWD and NPWD #defines.
[nmh] / uip / mhbuildsbr.c
index eca264c887ea16b58421735ee622fceff2648c02..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 */
@@ -244,7 +243,7 @@ build_mime (char *infile, int autobuild, int dist, int directives,
                }
 
                NEW(entry);
-               entry->filename = getcpy(s);
+               entry->filename = mh_xstrdup(s);
                entry->next = NULL;
                free(vp);
 
@@ -277,12 +276,12 @@ build_mime (char *infile, int autobuild, int dist, int directives,
                         adios (NULL, "Multiple %s headers with different files"
                                " not allowed", type);
                     } else {
-                        convert->filename = getcpy (filename);
+                        convert->filename = mh_xstrdup(filename);
                     }
                 } else {
                     NEW0(convert);
-                    convert->filename = getcpy (filename);
-                    convert->type = getcpy (type);
+                    convert->filename = mh_xstrdup(filename);
+                    convert->type = mh_xstrdup(type);
 
                     if (convert_tail) {
                         convert_tail->next = convert;
@@ -317,12 +316,12 @@ build_mime (char *infile, int autobuild, int dist, int directives,
                         adios (NULL, "Multiple %s headers with different "
                                "argstrings not allowed", type);
                     } else {
-                        convert->argstring = getcpy (argstring);
+                        convert->argstring = mh_xstrdup(argstring);
                     }
                 } else {
                     NEW0(convert);
-                    convert->type = getcpy (type);
-                    convert->argstring = getcpy (argstring);
+                    convert->type = mh_xstrdup(type);
+                    convert->argstring = mh_xstrdup(argstring);
 
                     if (convert_tail) {
                         convert_tail->next = convert;
@@ -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));
@@ -1141,10 +1146,10 @@ set_id (CT ct, int top)
        time (&clock);
        snprintf (contentid, sizeof(contentid), "%s\n", message_id (clock, 1));
        partno = 0;
-       msgfmt = getcpy(contentid);
+       msgfmt = mh_xstrdup(contentid);
     }
     snprintf (contentid, sizeof(contentid), msgfmt, top ? 0 : ++partno);
-    ct->c_id = getcpy (contentid);
+    ct->c_id = mh_xstrdup(contentid);
 }
 
 
@@ -1754,9 +1759,8 @@ 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);
-       add_header (ct, getcpy(DISPO_FIELD), vp);
+        mh_xfree(np);
+       add_header (ct, mh_xstrdup(DISPO_FIELD), vp);
     }
 
 skip_headers:
@@ -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,9 +2032,8 @@ 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);
-           pm->pm_value = getcpy(simplename);
+            mh_xfree(pm->pm_value);
+           pm->pm_value = mh_xstrdup(simplename);
            break;
        }
     }
@@ -2034,9 +2042,9 @@ setup_attach_content(CT ct, char *filename)
        add_param(&ct->c_ctinfo.ci_first_pm, &ct->c_ctinfo.ci_last_pm,
                  "name", simplename, 0);
 
-    ct->c_descr = getcpy(simplename);
+    ct->c_descr = mh_xstrdup(simplename);
     ct->c_descr = add("\n", ct->c_descr);
-    ct->c_cefile.ce_file = getcpy(filename);
+    ct->c_cefile.ce_file = mh_xstrdup(filename);
 
     set_disposition (ct);
 
@@ -2067,7 +2075,9 @@ set_disposition (CT ct) {
                       cp);
         }
 
-        ct->c_dispo_type = cp  ?  getcpy (cp) : mh_xstrdup("attachment");
+        if (!cp)
+            cp = "attachment";
+        ct->c_dispo_type = mh_xstrdup(cp);
     }
 }
 
@@ -2230,7 +2240,7 @@ expand_pseudoheader (CT ct, CT *text_plain_ct, struct multipart *m,
                 NULL);
 
     /* Convert here . . . */
-    ct->c_storeproc = getcpy (convert_command);
+    ct->c_storeproc = mh_xstrdup(convert_command);
     ct->c_umask = ~m_gmprot ();
 
     if ((status = show_content_aux (ct, 0, convert_command, NULL, NULL)) !=
@@ -2260,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