X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/2fc70e8bf64ead869fce76abb74f04bf1af94923..6fd1d18f:/uip/mhbuildsbr.c?ds=sidebyside diff --git a/uip/mhbuildsbr.c b/uip/mhbuildsbr.c index a615dcf9..ba96ac44 100644 --- a/uip/mhbuildsbr.c +++ b/uip/mhbuildsbr.c @@ -21,10 +21,13 @@ #include #include #include +#include "h/done.h" #include -#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; }