int broken_pipe; /* SIGPIPE detected */
int told_to_quit; /* SIGQUIT detected */
+extern m_getfld_state_t gstate;
+
/*
* prototypes
*/
case HELPSW:
snprintf (buf, sizeof(buf), "%s [switches] file", invo_name);
print_help (buf, switches, 1);
- done (1);
+ done (0);
case VERSIONSW:
print_version(invo_name);
- done (1);
+ done (0);
case IDSW:
if (!(cp = *argp++) || *cp == '-')
#endif /* SIGTSTP */
}
+ m_getfld_state_init (&gstate);
if (folder)
fsetup (folder);
else
display_info (id > 0 ? scansw : 0);
msh (id > 0 ? scansw : 0);
+ m_getfld_state_destroy (&gstate);
m_reset ();
mp->msgattrs[0] = getcpy ("unseen");
mp->msgattrs[1] = NULL;
- m_unknown (fp); /* the MAGIC invocation */
+ m_unknown (gstate, fp); /* the MAGIC invocation */
if (fmsh) {
free (fmsh);
fmsh = NULL;
return yp;
}
- m_eomsbr ((int (*)()) 0); /* XXX */
+ m_eomsbr (gstate, (int (*)()) 0); /* XXX */
fseek (fp, Msgs[msgnum].m_start, SEEK_SET);
return fp;
}
return Msgs[msgnum].m_bboard_id;
zp = msh_ready (msgnum, 0);
- for (state = FLD;;)
- switch (state = m_getfld (state, name, buf, sizeof(buf), zp)) {
+ for (;;) {
+ int bufsz = sizeof buf;
+ switch (state = m_getfld (gstate, name, buf, &bufsz, zp)) {
case FLD:
- case FLDEOF:
case FLDPLUS:
if (!mh_strcasecmp (name, BBoard_ID)) {
bp = getcpy (buf);
while (state == FLDPLUS) {
- state = m_getfld (state, name, buf, sizeof(buf), zp);
+ bufsz = sizeof buf;
+ state = m_getfld (gstate, name, buf, &bufsz, zp);
bp = add (buf, bp);
}
i = atoi (bp);
continue;
}
while (state == FLDPLUS)
- state = m_getfld (state, name, buf, sizeof(buf), zp);
- if (state != FLDEOF)
- continue;
+ bufsz = sizeof buf;
+ state = m_getfld (gstate, name, buf, &bufsz, zp);
+ continue;
default:
return 0;
}
+ }
}