*/
#include <h/mh.h>
+#include <h/fmt_scan.h>
#include <h/mime.h>
#include <h/mhparse.h>
#include <h/utils.h>
#include <h/signals.h>
+#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 <fcntl.h>
#define MHFIXMSG_SWITCHES \
static int write_content (CT, const char *, char *, FILE *, int, int);
static void set_text_ctparams(CT, char *, int);
static int remove_file (const char *);
-static void report (char *, char *, char *, char *, ...);
+static void report (char *, char *, char *, char *, ...)
+ CHECK_PRINTF(4, 5);
static void pipeser (int);
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;
}
}
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. */
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) {
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++;
/* 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 */
}