-/*
- * replsbr.c -- routines to help repl along...
+/* replsbr.c -- routines to help repl along...
*
* This code is Copyright (c) 2002, by the authors of nmh. See the
* COPYRIGHT file in the root directory of the nmh distribution for
static struct mailname mq;
static int nodupcheck = 0; /* If set, no check for duplicates */
-/*
- * Buffer size for content part of header fields.
- * We want this to be large enough so that we don't
- * do a lot of extra FLDPLUS calls on m_getfld but
- * small enough so that we don't snarf the entire
- * message body when we're not going to use any of it.
- */
-#define SBUFSIZ 256
-
static char *addrcomps[] = {
"from",
"sender",
{
int state, i;
struct comp *cptr;
- char tmpbuf[SBUFSIZ];
+ char tmpbuf[NMH_BUFSIZ];
struct format *fmt;
char **ap;
int char_read = 0, format_len, mask;
char name[NAMESZ], *cp;
charstring_t scanl;
static int dat[5]; /* aux. data for format routine */
- m_getfld_state_t gstate = 0;
+ m_getfld_state_t gstate;
struct fmt_callbacks cb;
FILE *out;
/*
* pick any interesting stuff out of msg "inb"
*/
+ gstate = m_getfld_state_init(inb);
for (;;) {
int msg_count = sizeof tmpbuf;
- state = m_getfld (&gstate, name, tmpbuf, &msg_count, inb);
+ state = m_getfld2(&gstate, name, tmpbuf, &msg_count);
switch (state) {
case FLD:
case FLDPLUS:
char_read += msg_count;
while (state == FLDPLUS) {
msg_count= sizeof tmpbuf;
- state = m_getfld (&gstate, name, tmpbuf, &msg_count, inb);
+ state = m_getfld2(&gstate, name, tmpbuf, &msg_count);
fmt_appendcomp(i, name, tmpbuf);
char_read += msg_count;
}
while (state == FLDPLUS) {
msg_count= sizeof tmpbuf;
- state = m_getfld (&gstate, name, tmpbuf, &msg_count, inb);
+ state = m_getfld2(&gstate, name, tmpbuf, &msg_count);
}
break;
goto finished;
default:
- adios (NULL, "m_getfld() returned %d", state);
+ adios (NULL, "m_getfld2() returned %d", state);
}
}
/* set up the "fcc" pseudo-component */
cptr = fmt_findcomp ("fcc");
if (cptr) {
- mh_xfree(cptr->c_text);
+ free(cptr->c_text);
if (fcc)
cptr->c_text = mh_xstrdup(fcc);
else
}
cptr = fmt_findcomp ("user");
if (cptr) {
- mh_xfree(cptr->c_text);
+ free(cptr->c_text);
if ((cp = getenv("USER")))
cptr->c_text = mh_xstrdup(cp);
else
dat[2] = 0;
dat[3] = outputlinelen;
dat[4] = 0;
- memset(&cb, 0, sizeof(cb));
+ ZERO(&cb);
cb.formataddr = replformataddr;
cb.concataddr = replconcataddr;
fmt_scan (fmt, scanl, i, dat, &cb);
return 0;
for (mp = &mq; mp->m_next; mp = mp->m_next) {
- if (!strcasecmp (np->m_host ? np->m_host : "",
- mp->m_next->m_host ? mp->m_next->m_host : "") &&
- !strcasecmp (np->m_mbox ? np->m_mbox : "",
- mp->m_next->m_mbox ? mp->m_next->m_mbox : ""))
+ if (!strcasecmp (FENDNULL(np->m_host),
+ FENDNULL(mp->m_next->m_host)) &&
+ !strcasecmp (FENDNULL(np->m_mbox),
+ FENDNULL(mp->m_next->m_mbox)))
return 0;
}
if (!ccme && ismymbox (np))
adios (filter, "unable to read");
rewind (in);
- lseek (fileno(in), (off_t) 0, SEEK_SET);
+ lseek(fileno(in), 0, SEEK_SET);
arglist = argsplit(mhlproc, &mhl, &argnum);
if (pidXwait (pid, mhl))
done (1);
fseek (out, 0L, SEEK_END);
+ arglist_free(mhl, arglist);
break;
}
}