X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/9514ca81bd12a47df977822efc14ff285bd5bc10..0f59f14845f7efac7c4d042cd7372b46869fde69:/uip/mhparse.c diff --git a/uip/mhparse.c b/uip/mhparse.c index 73296ca1..69660a91 100644 --- a/uip/mhparse.c +++ b/uip/mhparse.c @@ -13,6 +13,9 @@ #include #include #include +#include +#include "../sbr/m_mktemp.h" +#include "mhfree.h" #ifdef HAVE_ICONV # include #endif /* HAVE_ICONV */ @@ -20,10 +23,6 @@ extern int debugsw; -/* cache policies */ -extern int rcachesw; /* mhcachesbr.c */ -extern int wcachesw; /* mhcachesbr.c */ - int checksw = 0; /* check Content-MD5 field */ /* @@ -107,17 +106,11 @@ static struct k2v EncodingType[] = { }; -/* mhcachesbr.c */ -int find_cache (CT, int, int *, char *, char *, int); - /* mhmisc.c */ int part_ok (CT); int type_ok (CT, int); void content_error (char *, CT, char *, ...); -/* mhfree.c */ -void free_encoding (CT, int); - /* * static prototypes */ @@ -298,7 +291,7 @@ static CT get_content (FILE *in, char *file, int toplevel) { int compnum, state; - char buf[BUFSIZ], name[NAMESZ]; + char buf[NMH_BUFSIZ], name[NAMESZ]; char *np, *vp; CT ct; HF hp; @@ -659,9 +652,11 @@ get_ctinfo (char *cp, CT ct, int magic) for (dp = cp; istoken (*dp); dp++) continue; - c = *dp, *dp = '\0'; + c = *dp; + *dp = '\0'; ci->ci_type = mh_xstrdup(cp); /* store content type */ - *dp = c, cp = dp; + *dp = c; + cp = dp; if (!*ci->ci_type) { inform("invalid %s: field in message %s (empty type)", @@ -693,9 +688,11 @@ get_ctinfo (char *cp, CT ct, int magic) for (dp = cp; istoken (*dp); dp++) continue; - c = *dp, *dp = '\0'; + c = *dp; + *dp = '\0'; ci->ci_subtype = mh_xstrdup(cp); /* store the content subtype */ - *dp = c, cp = dp; + *dp = c; + cp = dp; if (!*ci->ci_subtype) { inform("invalid %s: field in message %s (empty subtype for \"%s\")", @@ -906,9 +903,11 @@ get_dispo (char *cp, CT ct, int buildflag) for (dp = cp; istoken (*dp); dp++) continue; - c = *dp, *dp = '\0'; + c = *dp; + *dp = '\0'; ct->c_dispo_type = mh_xstrdup(cp); /* store disposition type */ - *dp = c, cp = dp; + *dp = c; + cp = dp; if (*cp == '(' && get_comment (ct->c_file, DISPO_FIELD, &cp, NULL) == NOTOK) return NOTOK; @@ -2008,7 +2007,8 @@ openQuoted (CT ct, char **file) for (ep = (cp = bufp) + cc - 1; cp <= ep; ep--) if (!isspace ((unsigned char) *ep)) break; - *++ep = '\n', ep++; + *++ep = '\n'; + ep++; for (; cp < ep; cp++) { if (quoted > 0) { @@ -2054,11 +2054,10 @@ openQuoted (CT ct, char **file) * sequence; let's decode it (above). */ quoted = 1; continue; - } else { - /* One or both of the next 2 is out of range, making this - * an invalid escape sequence; just show the raw bytes - * (below). */ } + /* One or both of the next 2 is out of range, making this + * an invalid escape sequence; just show the raw bytes + * (below). */ } /* Just show the raw byte. */ @@ -3318,7 +3317,8 @@ parse_header_attrs (const char *filename, const char *fieldname, if (*vp == '*' && vp < up - 1) { partial = 1; continue; - } else if (*vp == '*' && vp == up - 1) { + } + if (*vp == '*' && vp == up - 1) { encoded = 1; } else if (partial) { if (isdigit((unsigned char) *vp))