X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/a616a7953d87c3c51afcc8e693c48c37ec000edf..030c6e4df060fcbc33db4495148267e90c960d9d:/sbr/seq_read.c diff --git a/sbr/seq_read.c b/sbr/seq_read.c index 08c67445..a807ef7d 100644 --- a/sbr/seq_read.c +++ b/sbr/seq_read.c @@ -59,6 +59,7 @@ seq_public (struct msgs *mp) char *cp, seqfile[PATH_MAX]; char name[NAMESZ], field[BUFSIZ]; FILE *fp; + m_getfld_state_t gstate = 0; /* * If mh_seq == NULL (such as if nmh been compiled with @@ -76,16 +77,16 @@ seq_public (struct msgs *mp) return; /* Use m_getfld to scan sequence file */ - for (state = FLD;;) { + for (;;) { int fieldsz = sizeof field; - switch (state = m_getfld (state, name, field, &fieldsz, fp)) { + switch (state = m_getfld (&gstate, name, field, &fieldsz, fp)) { case FLD: case FLDPLUS: if (state == FLDPLUS) { cp = getcpy (field); while (state == FLDPLUS) { fieldsz = sizeof field; - state = m_getfld (state, name, field, &fieldsz, fp); + state = m_getfld (&gstate, name, field, &fieldsz, fp); cp = add (field, cp); } seq_init (mp, getcpy (name), trimcpy (cp)); @@ -107,6 +108,7 @@ seq_public (struct msgs *mp) } break; /* break from for loop */ } + m_getfld_state_destroy (&gstate); lkfclose (fp, seqfile); }