X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/da35ab7c7664b221aba2d761d0f051c57313e16e..7711f3fc00259e55f630cfe6104eff3083dc9d77:/uip/sortm.c diff --git a/uip/sortm.c b/uip/sortm.c index 452b774a..0b8e1853 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; @@ -259,7 +253,7 @@ main (int argc, char **argv) * the collection of messages with the same subj * given a message number. */ - il = (struct smsg ***) calloc (mp->hghsel+1, sizeof(*il)); + il = (struct smsg ***) mh_xcalloc (mp->hghsel+1, sizeof(*il)); if (! il) adios (NULL, "couldn't allocate msg list"); for (i = 0; i < nmsgs; i++) @@ -293,6 +287,7 @@ main (int argc, char **argv) } } *fp = 0; + free (il); free (slist); free (dlist); dlist = flist; @@ -323,7 +318,7 @@ read_hdrs (struct msgs *mp, char *datesw) twscopy (&tb, dlocaltimenow ()); smsgs = (struct smsg *) - calloc ((size_t) (mp->hghsel - mp->lowsel + 2), + mh_xcalloc ((size_t) (mp->hghsel - mp->lowsel + 2), sizeof(*smsgs)); if (smsgs == NULL) adios (NULL, "unable to allocate sort storage"); @@ -565,7 +560,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; @@ -605,7 +600,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); @@ -620,7 +615,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); }