X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/9514ca81bd12a47df977822efc14ff285bd5bc10..5ed8cd671b27e1388c0c7e881805775a8e5b353a:/uip/mhfixmsg.c diff --git a/uip/mhfixmsg.c b/uip/mhfixmsg.c index 47ae44b4..aed480ea 100644 --- a/uip/mhfixmsg.c +++ b/uip/mhfixmsg.c @@ -6,10 +6,17 @@ */ #include +#include #include #include #include #include +#include "../sbr/m_maildir.h" +#include "../sbr/m_mktemp.h" +#include "../sbr/mime_type.h" +#include "mhfree.h" +#include "mhoutsbr.h" +#include "mhshowsbr.h" #include #define MHFIXMSG_SWITCHES \ @@ -61,15 +68,9 @@ extern int bogus_mp_content; /* flag from InitMultiPart */ /* flags to/from parse_header_attrs */ extern int suppress_extraneous_trailing_semicolon_warning; -/* mhoutsbr.c */ -int output_message_fp (CT, FILE *, char *); - /* mhmisc.c */ void flush_errors (void); -/* mhfree.c */ -extern CT *cts; - /* * static prototypes */ @@ -764,11 +765,9 @@ get_multipart_boundary (CT ct, char **part_boundary) { } } - if (! end_boundary && begin > (off_t) (ct->c_begin + sizeof buffer)) { - begin -= sizeof buffer; - } else { + if (end_boundary || begin <= (off_t) (ct->c_begin + sizeof buffer)) break; - } + begin -= sizeof buffer; } /* Get boundary at beginning of multipart. */ @@ -872,7 +871,7 @@ replace_boundary (CT ct, char *file, char *boundary) { strlen(new_ctline) + 1, ct->c_ctinfo.ci_first_pm, NULL, 0); fprintf (fpout, "%s:%s%s\n", np, new_ctline, - new_params ? new_params : ""); + FENDNULL(new_params)); free(new_ctline); mh_xfree(new_params); } @@ -1014,10 +1013,8 @@ fix_types (CT ct, svector_t fixtypes, int *message_mods) { type, ct_type_subtype); } break; - } else { - inform("did not find %s in %s", - type, hf->value); } + inform("did not find %s in %s", type, hf->value); } } } @@ -1354,11 +1351,9 @@ ensure_text_plain (CT *ct, CT parent, int *message_mods, int replacetextplain) { multipart/alternative. */ remove_parameter (hf->value, "type"); break; - } else { - inform("did not find multipart/" - "related in header %s", - hf->value); } + inform("did not find multipart/" + "related in header %s", hf->value); } } } else { @@ -1663,7 +1658,7 @@ reformat_part (CT ct, char *file, char *type, char *subtype, int c_type) { if (strchr (cf, '>')) { inform("'>' prohibited in \"%s\",\nplease fix your " "%s-format-%s/%s profile entry", cf, invo_name, type, - subtype ? subtype : ""); + FENDNULL(subtype)); return NOTOK; } @@ -1780,7 +1775,7 @@ build_multipart_alt (CT first_alt, CT new_part, int type, int subtype) { snprintf (buffer2, sizeof buffer2, "%d", serial); boundary = concat (boundary_prefix, - first_alt->c_partno ? first_alt->c_partno : "", + FENDNULL(first_alt->c_partno), "-", buffer2, NULL); } } @@ -2023,8 +2018,7 @@ decode_text_parts (CT ct, int encoding, const char *decodetypes, report (NULL, ct->c_partno, ct->c_file, "will not decode%s because it is binary (%s)", ct->c_partno ? "" - : ct->c_ctline ? ct->c_ctline - : "", + : (FENDNULL(ct->c_ctline)), reason); } (void) m_unlink (ct->c_cefile.ce_file); @@ -2038,8 +2032,7 @@ decode_text_parts (CT ct, int encoding, const char *decodetypes, report (NULL, ct->c_partno, ct->c_file, "will not decode%s because it is 8bit", ct->c_partno ? "" - : ct->c_ctline ? ct->c_ctline - : ""); + : (FENDNULL(ct->c_ctline))); } (void) m_unlink (ct->c_cefile.ce_file); free (ct->c_cefile.ce_file); @@ -2058,7 +2051,7 @@ decode_text_parts (CT ct, int encoding, const char *decodetypes, ++*message_mods; if (verbosw) { report (NULL, ct->c_partno, ct->c_file, "decode%s", - ct->c_ctline ? ct->c_ctline : ""); + FENDNULL(ct->c_ctline)); } if (lf_line_endings) { strip_crs (ct, message_mods); @@ -2165,13 +2158,14 @@ content_encoding (CT ct, const char **reason) { *reason = ""; } break; - } else if (*cp == '\n') { + } + if (*cp == '\n') { line_len = 0; } else if (! isascii ((unsigned char) *cp)) { encoding = CE_8BIT; } - last_char_was_cr = *cp == '\r' ? 1 : 0; + last_char_was_cr = *cp == '\r'; } } @@ -2254,7 +2248,7 @@ strip_crs (CT ct, int *message_mods) { break; } - last_char_was_cr = *cp == '\r' ? 1 : 0; + last_char_was_cr = *cp == '\r'; } } @@ -2814,7 +2808,7 @@ report (char *what, char *partno, char *filename, char *message, ...) { if (verbosw) { va_start (args, message); fmt = concat (filename, partno ? " part " : ", ", - partno ? partno : "", partno ? ", " : "", message, NULL); + FENDNULL(partno), partno ? ", " : "", message, NULL); advertise (what, NULL, fmt, args);