X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/92128dacf8d5db02379e8f872dc50d31c6aaa55f..e35fb433:/uip/forwsbr.c?ds=sidebyside diff --git a/uip/forwsbr.c b/uip/forwsbr.c index 97d1f3d3..775c8aeb 100644 --- a/uip/forwsbr.c +++ b/uip/forwsbr.c @@ -1,6 +1,4 @@ - -/* - * forwsbr.c -- subroutine to build a draft from a component file +/* forwsbr.c -- subroutine to build a draft from a component file * * This code is Copyright (c) 2012, by the authors of nmh. See the * COPYRIGHT file in the root directory of the nmh distribution for @@ -12,14 +10,15 @@ #include #include #include +#include "sbr/m_mktemp.h" /* * Take from replsbr.c - a buffer big enough to read in data header lines * in reasonable chunks but not enough to slurp in the whole message */ -static char msgbuf[256]; -#define COMPFREE(c) if (c->c_text) free(c->c_text) +static char msgbuf[NMH_BUFSIZ]; +#define COMPFREE(c) mh_xfree(c->c_text) /* * A list of components we treat as addresses @@ -48,14 +47,14 @@ build_form (char *form, char *digest, int *dat, char *from, char *to, int in; int fmtsize, state; int i; - register char *nfs; + char *nfs; char tmpfil[BUFSIZ], name[NAMESZ], **ap; charstring_t line; FILE *tmp; - register struct comp *cptr; + struct comp *cptr; struct format *fmt; char *cp = NULL; - m_getfld_state_t gstate = 0; + m_getfld_state_t gstate; /* * Open the message we'll be scanning for components @@ -88,9 +87,10 @@ build_form (char *form, char *digest, int *dat, char *from, char *to, * these routines? */ + gstate = m_getfld_state_init(tmp); for (;;) { int msg_count = sizeof msgbuf; - state = m_getfld (&gstate, name, msgbuf, &msg_count, tmp); + state = m_getfld2(&gstate, name, msgbuf, &msg_count); switch (state) { case FLD: case FLDPLUS: @@ -104,13 +104,13 @@ build_form (char *form, char *digest, int *dat, char *from, char *to, if (i != -1) { while (state == FLDPLUS) { msg_count = sizeof msgbuf; - state = m_getfld (&gstate, name, msgbuf, &msg_count, tmp); + state = m_getfld2(&gstate, name, msgbuf, &msg_count); fmt_appendcomp(i, name, msgbuf); } } while (state == FLDPLUS) { msg_count = sizeof msgbuf; - state = m_getfld (&gstate, name, msgbuf, &msg_count, tmp); + state = m_getfld2(&gstate, name, msgbuf, &msg_count); } break; @@ -121,7 +121,7 @@ build_form (char *form, char *digest, int *dat, char *from, char *to, goto finished; default: - adios(NULL, "m_getfld() returned %d", state); + adios(NULL, "m_getfld2() returned %d", state); } } @@ -190,7 +190,7 @@ finished: if (fclose (tmp)) adios (tmpfil, "error writing"); - lseek (in, (off_t) 0, SEEK_SET); + lseek(in, 0, SEEK_SET); /* * Free any component buffers that we allocated