X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/adc0a3232c43033729dbc036f0757bddfba463bd..0c50c669:/uip/forwsbr.c?ds=sidebyside diff --git a/uip/forwsbr.c b/uip/forwsbr.c index 592f1eb2..48fecb17 100644 --- a/uip/forwsbr.c +++ b/uip/forwsbr.c @@ -54,7 +54,7 @@ build_form (char *form, char *digest, int *dat, char *from, char *to, register struct comp *cptr; struct format *fmt; char *cp = NULL; - m_getfld_state_t gstate; + m_getfld_state_t gstate = 0; /* * Open the message we'll be scanning for components @@ -87,10 +87,9 @@ build_form (char *form, char *digest, int *dat, char *from, char *to, * these routines? */ - m_getfld_state_init (&gstate); for (;;) { int msg_count = sizeof msgbuf; - state = m_getfld (gstate, name, msgbuf, &msg_count, tmp); + state = m_getfld (&gstate, name, msgbuf, &msg_count, tmp); switch (state) { case FLD: case FLDPLUS: @@ -104,13 +103,14 @@ 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_getfld (&gstate, name, msgbuf, &msg_count, tmp); fmt_appendcomp(i, name, msgbuf); } } - while (state == FLDPLUS) + while (state == FLDPLUS) { msg_count = sizeof msgbuf; - state = m_getfld (gstate, name, msgbuf, &msg_count, tmp); + state = m_getfld (&gstate, name, msgbuf, &msg_count, tmp); + } break; case LENERR: @@ -123,7 +123,6 @@ build_form (char *form, char *digest, int *dat, char *from, char *to, adios(NULL, "m_getfld() returned %d", state); } } - m_getfld_state_destroy (&gstate); /* * Override any components just in case they were included in the @@ -136,6 +135,7 @@ build_form (char *form, char *digest, int *dat, char *from, char *to, */ finished: + m_getfld_state_destroy (&gstate); cptr = fmt_findcomp ("digest"); if (cptr) { @@ -181,7 +181,7 @@ finished: adios ("dup", "unable to"); line = mh_xmalloc ((unsigned) fmtsize); - fmt_scan (fmt, line, fmtsize - 1, fmtsize, dat); + fmt_scan (fmt, line, fmtsize - 1, fmtsize, dat, NULL); fputs (line, tmp); free (line); if (fclose (tmp))