-
-/*
- * 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
#include <h/fmt_scan.h>
#include <h/tws.h>
#include <h/utils.h>
+#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
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
* 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:
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;
goto finished;
default:
- adios(NULL, "m_getfld() returned %d", state);
+ adios(NULL, "m_getfld2() returned %d", state);
}
}
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