]> diplodocus.org Git - nmh/blobdiff - uip/mhbuildsbr.c
mhshow/test-charset: Use octal, not hex, in printf(1) format string.
[nmh] / uip / mhbuildsbr.c
index a615dcf9704bd55ed484f051bf02ad0c64c0a35b..ba96ac44811bc27d4cd8b5e5d0d68ad3a0b4eca5 100644 (file)
 #include <h/fmt_scan.h>
 #include <h/mime.h>
 #include <h/mhparse.h>
+#include "h/done.h"
 #include <h/utils.h>
-#include "../sbr/m_mktemp.h"
-#include "../sbr/message_id.h"
-#include "../sbr/mime_type.h"
+#include "h/mhcachesbr.h"
+#include "mhmisc.h"
+#include "sbr/m_mktemp.h"
+#include "sbr/message_id.h"
+#include "sbr/mime_type.h"
 #include "mhfree.h"
 #include "mhshowsbr.h"
 
@@ -55,12 +58,6 @@ typedef struct convert_list {
 } convert_list;
 
 
-/* mhmisc.c */
-void content_error (char *, CT, char *, ...);
-
-/* mhcachesbr.c */
-int find_cache (CT, int, int *, char *, char *, int);
-
 /*
  * static prototypes
  */
@@ -449,7 +446,7 @@ finish_field:
         CT *ctp;
         convert_list *next;
 
-        done = freects_done;
+        set_done(freects_done);
 
         /* In case there are multiple calls that land here, prevent leak. */
         for (ctp = cts; ctp && *ctp; ++ctp) { free_content (*ctp); }
@@ -590,7 +587,7 @@ init_decoded_content (CT ct, const char *filename)
     ct->c_ceclosefnx = close_encoding;
     ct->c_cesizefnx  = NULL;           /* since unencoded */
     ct->c_encoding = CE_7BIT;          /* Seems like a reasonable default */
-    ct->c_file = add(filename, NULL);
+    ct->c_file = mh_xstrdup(FENDNULL(filename));
 
     return OK;
 }
@@ -1225,7 +1222,7 @@ compose_content (CT ct, int verbose)
     default:
        if (!ce->ce_file) {
            pid_t child_id;
-           int i, xstdout, len, buflen;
+           int xstdout, len, buflen;
            char *bp, *cp;
            char *vec[4], buffer[BUFSIZ];
            FILE *out;
@@ -1325,8 +1322,7 @@ raw:
            if ((out = fopen (ce->ce_file, "w")) == NULL)
                adios (ce->ce_file, "unable to open for writing");
 
-           for (i = 0; (child_id = fork()) == NOTOK && i > 5; i++)
-               sleep (5);
+           child_id = fork();
            switch (child_id) {
            case NOTOK:
                adios ("fork", "unable to fork");
@@ -1339,7 +1335,7 @@ raw:
                execvp ("/bin/sh", vec);
                fprintf (stderr, "unable to exec ");
                perror ("/bin/sh");
-               _exit (-1);
+               _exit(1);
                /* NOTREACHED */
 
            default:
@@ -1625,7 +1621,7 @@ scan_content (CT ct, size_t maxunencoded)
         }
     }
 
-    return (boundaryclash ? NOTOK : OK);
+    return boundaryclash ? NOTOK : OK;
 }
 
 
@@ -1749,7 +1745,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);
-        mh_xfree(np);
+        free(np);
        add_header (ct, mh_xstrdup(DISPO_FIELD), vp);
     }
 
@@ -2022,7 +2018,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) {
-            mh_xfree(pm->pm_value);
+            free(pm->pm_value);
            pm->pm_value = mh_xstrdup(simplename);
            break;
        }
@@ -2241,9 +2237,9 @@ expand_pseudoheader (CT ct, CT *text_plain_ct, struct multipart *m,
     init_decoded_content (reply_ct, infile);
 
     if (extract_headers (reply_ct, reply_file, &reply_fp) == NOTOK) {
-        free (reply_file);
         inform("failed to extract headers from convert output in %s, "
            "continuing...", reply_file);
+        free(reply_file);
         return;
     }