static void sigoff (void);
static void p_refile (char *);
static void fcc (char *, char *);
-static void die (char *, char *, ...);
+static void die (char *, char *, ...) CHECK_PRINTF(2, 3);
static void post (char *, int, int, int, char *, int, char *);
static void do_text (char *file, int fd);
static void do_an_address (struct mailname *, int);
char *cp, *msg = NULL, **argp, **arguments, *envelope;
char buf[NMH_BUFSIZ], name[NAMESZ], *auth_svc = NULL;
FILE *in, *out;
- m_getfld_state_t gstate = 0;
+ m_getfld_state_t gstate;
if (nmh_init(argv[0], 0 /* use context_foil() */)) { return 1; }
}
if (msg)
adios (NULL, "only one message at a time!");
- else
- msg = cp;
+ msg = cp;
}
alias (AliasFile);
hdrtab = msgstate == NORMAL ? NHeaders : RHeaders;
+ gstate = m_getfld_state_init(in);
for (compnum = 1;;) {
int bufsz = sizeof buf;
- switch (state = m_getfld (&gstate, name, buf, &bufsz, in)) {
+ switch (state = m_getfld2(&gstate, name, buf, &bufsz)) {
case FLD:
case FLDPLUS:
compnum++;
cp = mh_xstrdup(buf);
while (state == FLDPLUS) {
bufsz = sizeof buf;
- state = m_getfld (&gstate, name, buf, &bufsz, in);
+ state = m_getfld2(&gstate, name, buf, &bufsz);
cp = add (buf, cp);
}
putfmt (name, cp, &eai, out);
fprintf (out, "\n%s", buf);
while (state == BODY) {
bufsz = sizeof buf;
- state = m_getfld (&gstate, name, buf, &bufsz, in);
+ state = m_getfld2(&gstate, name, buf, &bufsz);
fputs (buf, out);
}
break;
if (debug) {
pl ();
done (0);
- } else {
- fclose (out);
}
+ fclose (out);
/*
* Here's how we decide which address to use as the envelope-from
mp->m_bcc++;
if (np->m_ingrp)
mp->m_ingrp = np->m_ingrp;
- else
- if (mp->m_gname)
- putgrp (namep, mp->m_gname, out, hdr->flags);
+ else if (mp->m_gname)
+ putgrp (namep, mp->m_gname, out, hdr->flags);
if (mp->m_ingrp) {
if (sm_mts == MTS_SENDMAIL_PIPE) {
/* Catch this before sendmail chokes with:
while (find_prefix () == NOTOK) {
if (*cp < 'z')
(*cp)++;
- else
- if (*++cp == 0)
- adios (NULL, "can't find a unique delimiter string");
- else
- (*cp)++;
+ else if (*++cp == 0)
+ adios (NULL, "can't find a unique delimiter string");
+ else
+ (*cp)++;
}
fprintf (out, "%s: %s\n%s: multipart/digest; boundary=\"",