#include <h/mh.h>
#include <h/tws.h>
#include <h/utils.h>
+#include "sbr/m_maildir.h"
#define SORTM_SWITCHES \
X("datefield field", 0, DATESW) \
static struct smsg *smsgs;
int nmsgs;
-char *subjsort = (char *) 0; /* sort on subject if != 0 */
+char *subjsort; /* sort on subject if != 0 */
time_t datelimit = 0;
int submajor = 0; /* if true, sort on subject-major */
int verbose;
if (*cp == '+' || *cp == '@') {
if (folder)
adios (NULL, "only one folder at a time!");
- else
- folder = pluspath (cp);
+ folder = pluspath (cp);
} else
- app_msgarg(&msgs, cp);
+ app_msgarg(&msgs, cp);
}
if (!context_find ("path"))
struct tws *tw;
char *datecomp = NULL, *subjcomp = NULL;
FILE *in;
- m_getfld_state_t gstate = 0;
+ m_getfld_state_t gstate;
if ((in = fopen (msgnam = m_name (msg), "r")) == NULL) {
admonish (msgnam, "unable to read message");
return (0);
}
+ gstate = m_getfld_state_init(in);
for (compnum = 1;;) {
int bufsz = sizeof buf;
- switch (state = m_getfld (&gstate, nam, buf, &bufsz, in)) {
+ switch (state = m_getfld2(&gstate, nam, buf, &bufsz)) {
case FLD:
case FLDPLUS:
compnum++;
datecomp = add (buf, datecomp);
while (state == FLDPLUS) {
bufsz = sizeof buf;
- state = m_getfld (&gstate, nam, buf, &bufsz, in);
+ state = m_getfld2(&gstate, nam, buf, &bufsz);
datecomp = add (buf, datecomp);
}
if (!subjsort || subjcomp)
subjcomp = add (buf, subjcomp);
while (state == FLDPLUS) {
bufsz = sizeof buf;
- state = m_getfld (&gstate, nam, buf, &bufsz, in);
+ state = m_getfld2(&gstate, nam, buf, &bufsz);
subjcomp = add (buf, subjcomp);
}
if (datecomp)
/* just flush this guy */
while (state == FLDPLUS) {
bufsz = sizeof buf;
- state = m_getfld (&gstate, nam, buf, &bufsz, in);
+ state = m_getfld2(&gstate, nam, buf, &bufsz);
}
}
continue;
msg, compnum);
check_failed = 1;
}
- mh_xfree(datecomp);
- mh_xfree(subjcomp);
+ free(datecomp);
+ free(subjcomp);
fclose (in);
return (0);
smsg->s_subj = subjcomp;
}
fclose (in);
- mh_xfree(datecomp);
+ free(datecomp);
return (1);
}