X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/0509728c8a506f287fa3483d8e8ffaf8fb66d41d..d2d531f4cd2b0f5c48c16f6b4ec101df6bd00eb1:/uip/mhfixmsg.c?ds=sidebyside diff --git a/uip/mhfixmsg.c b/uip/mhfixmsg.c index 4b880b47..909d21de 100644 --- a/uip/mhfixmsg.c +++ b/uip/mhfixmsg.c @@ -13,6 +13,7 @@ #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" @@ -231,11 +232,10 @@ main (int argc, char **argv) { adios (NULL, "missing argument to %s", argp[-2]); } if (! strncasecmp (cp, "multipart/", 10) || - ! strncasecmp (cp, "message/", 8)) { + ! strncasecmp (cp, "message/", 8)) adios (NULL, "-fixtype %s not allowed", cp); - } else if (! strchr (cp, '/')) { + if (! strchr (cp, '/')) adios (NULL, "-fixtype requires type/subtype"); - } if (fx.fixtypes == NULL) { fx.fixtypes = svector_create (10); } svector_push_back (fx.fixtypes, cp); continue; @@ -286,11 +286,9 @@ main (int argc, char **argv) { } } if (*cp == '+' || *cp == '@') { - if (folder) { + if (folder) adios (NULL, "only one folder at a time!"); - } else { - folder = pluspath (cp); - } + folder = pluspath (cp); } else { if (*cp == '/') { /* Interpret a full path as a filename, not a message. */ @@ -817,7 +815,7 @@ replace_boundary (CT ct, char *file, char *boundary) { int compnum, state; char buf[NMH_BUFSIZ], name[NAMESZ]; char *np, *vp; - m_getfld_state_t gstate = 0; + m_getfld_state_t gstate; int status = OK; if (ct->c_file == NULL) { @@ -836,10 +834,11 @@ replace_boundary (CT ct, char *file, char *boundary) { return NOTOK; } + gstate = m_getfld_state_init(fpin); for (compnum = 1;;) { int bufsz = (int) sizeof buf; - switch (state = m_getfld (&gstate, name, buf, &bufsz, fpin)) { + switch (state = m_getfld2(&gstate, name, buf, &bufsz)) { case FLD: case FLDPLUS: compnum++; @@ -851,7 +850,7 @@ replace_boundary (CT ct, char *file, char *boundary) { /* if necessary, get rest of field */ while (state == FLDPLUS) { bufsz = sizeof buf; - state = m_getfld (&gstate, name, buf, &bufsz, fpin); + state = m_getfld2(&gstate, name, buf, &bufsz); vp = add (buf, vp); /* add to previous value */ }