#include <h/mh.h>
#include <h/addrsbr.h>
#include <h/fmt_scan.h>
+#include "h/done.h"
#include <h/utils.h>
#include <sys/file.h> /* L_SET */
static char *dfhost = NULL;
static struct mailname mq;
-static int nodupcheck = 0; /* If set, no check for duplicates */
+static bool nodupcheck; /* If set, no check for duplicates */
static char *addrcomps[] = {
"from",
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);
+ die("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);
*dst = '\0';
last_dst = dst;
- return (buf);
+ return buf;
}
{
char *cp;
- nodupcheck = 1;
+ nodupcheck = true;
cp = replformataddr(orig, str);
- nodupcheck = 0;
+ nodupcheck = false;
return cp;
}
write(2, "\n", 1) < 0) {
advise ("stderr", "write");
}
- _exit (-1);
+ _exit(1);
default:
if (pidXwait (pid, mhl))
done (1);
fseek (out, 0L, SEEK_END);
+ arglist_free(mhl, arglist);
break;
}
}
char *
fix_addresses (char *str) {
char *fixed_str = NULL;
- int fixed_address = 0;
+ bool fixed_address = false;
if (str) {
/*
adr = getname (new_adr);
if (adr != NULL &&
(mp = getm (adr, dfhost, dftype, NULL, 0)) != NULL) {
- fixed_address = 1;
+ fixed_address = true;
mnfree (mp);
}
free (angle_addr);