register struct tws *tw;
register char *datecomp = NULL, *subjcomp = NULL;
register FILE *in;
+ m_getfld_state_t gstate;
if ((in = fopen (msgnam = m_name (msg), "r")) == NULL) {
admonish (msgnam, "unable to read message");
return (0);
}
- for (compnum = 1, state = FLD;;) {
+ m_getfld_state_init (&gstate);
+ for (compnum = 1;;) {
int bufsz = sizeof buf;
- switch (state = m_getfld (state, nam, buf, &bufsz, in)) {
+ switch (state = m_getfld (gstate, nam, buf, &bufsz, in)) {
case FLD:
case FLDPLUS:
compnum++;
datecomp = add (buf, datecomp);
while (state == FLDPLUS) {
bufsz = sizeof buf;
- state = m_getfld (state, nam, buf, &bufsz, in);
+ state = m_getfld (gstate, nam, buf, &bufsz, in);
datecomp = add (buf, datecomp);
}
if (!subjsort || subjcomp)
subjcomp = add (buf, subjcomp);
while (state == FLDPLUS) {
bufsz = sizeof buf;
- state = m_getfld (state, nam, buf, &bufsz, in);
+ state = m_getfld (gstate, nam, buf, &bufsz, in);
subjcomp = add (buf, subjcomp);
}
if (datecomp)
/* just flush this guy */
while (state == FLDPLUS) {
bufsz = sizeof buf;
- state = m_getfld (state, nam, buf, &bufsz, in);
+ state = m_getfld (gstate, nam, buf, &bufsz, in);
}
}
continue;
}
break;
}
+ m_getfld_state_destroy (&gstate);
/*
* If no date component, then use the modification