X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/0138ab0e9b1e8fa59be141338d599277095dec8c..b68ed2bccdade2c3ac04ca1005d261be89c71c51:/uip/sortm.c?ds=sidebyside diff --git a/uip/sortm.c b/uip/sortm.c index b8dc9684..3df18859 100644 --- a/uip/sortm.c +++ b/uip/sortm.c @@ -78,13 +78,7 @@ main (int argc, char **argv) struct smsg **dlist; int checksw = 0; -#ifdef LOCALE - setlocale(LC_ALL, ""); -#endif - invo_name = r1bindex (argv[0], '/'); - - /* read user profile/context */ - context_read(); + if (nmh_init(argv[0], 1)) { return 1; } arguments = getarguments (invo_name, argc, argv, 1); argp = arguments; @@ -199,7 +193,7 @@ main (int argc, char **argv) adios (maildir, "unable to change directory to"); /* read folder and create message structure */ - if (!(mp = folder_read (folder))) + if (!(mp = folder_read (folder, 1))) adios (NULL, "unable to read folder %s", folder); /* check for empty folder */ @@ -364,27 +358,24 @@ get_fields (char *datesw, int msg, struct smsg *smsg) } for (compnum = 1;;) { int bufsz = sizeof buf; - switch (state = m_getfld (&gstate, (unsigned char *) nam, - (unsigned char *) buf, &bufsz, in)) { + switch (state = m_getfld (&gstate, nam, buf, &bufsz, in)) { case FLD: case FLDPLUS: compnum++; - if (!mh_strcasecmp (nam, datesw)) { + if (!strcasecmp (nam, datesw)) { datecomp = add (buf, datecomp); while (state == FLDPLUS) { bufsz = sizeof buf; - state = m_getfld (&gstate, (unsigned char *) nam, - (unsigned char *) buf, &bufsz, in); + state = m_getfld (&gstate, nam, buf, &bufsz, in); datecomp = add (buf, datecomp); } if (!subjsort || subjcomp) break; - } else if (subjsort && !mh_strcasecmp (nam, subjsort)) { + } else if (subjsort && !strcasecmp (nam, subjsort)) { subjcomp = add (buf, subjcomp); while (state == FLDPLUS) { bufsz = sizeof buf; - state = m_getfld (&gstate, (unsigned char *) nam, - (unsigned char *) buf, &bufsz, in); + state = m_getfld (&gstate, nam, buf, &bufsz, in); subjcomp = add (buf, subjcomp); } if (datecomp) @@ -393,8 +384,7 @@ get_fields (char *datesw, int msg, struct smsg *smsg) /* just flush this guy */ while (state == FLDPLUS) { bufsz = sizeof buf; - state = m_getfld (&gstate, (unsigned char *) nam, - (unsigned char *) buf, &bufsz, in); + state = m_getfld (&gstate, nam, buf, &bufsz, in); } } continue; @@ -569,7 +559,7 @@ static void rename_msgs (struct msgs *mp, struct smsg **mlist) { int i, j, old, new; - seqset_t tmpset; + bvector_t tmpset = bvector_create (0); char f1[BUFSIZ], tmpfil[BUFSIZ]; char newbuf[PATH_MAX + 1]; struct smsg *sp; @@ -609,7 +599,7 @@ rename_msgs (struct msgs *mp, struct smsg **mlist) if (rename (f1, tmpfil) == NOTOK) adios (tmpfil, "unable to rename %s to ", f1); - get_msg_flags (mp, &tmpset, old); + get_msg_flags (mp, tmpset, old); rename_chain (mp, mlist, j, i); @@ -624,7 +614,9 @@ rename_msgs (struct msgs *mp, struct smsg **mlist) if (rename (tmpfil, m_name(new)) == NOTOK) adios (m_name(new), "unable to rename %s to", tmpfil); - set_msg_flags (mp, &tmpset, new); + set_msg_flags (mp, tmpset, new); mp->msgflags |= SEQMOD; } + + bvector_free (tmpset); }