X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/e491542da563673b49c6f6df9948ffaffbeed4fb..b0aa8cdb1c264e42d4931ca24968689c73381278:/uip/sortm.c diff --git a/uip/sortm.c b/uip/sortm.c index 72fe0659..97d42e5f 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; @@ -128,7 +122,7 @@ main (int argc, char **argv) subjsort = "subject"; continue; case NSUBJSW: - subjsort = (char *)0; + subjsort = NULL; continue; case LIMSW: @@ -248,7 +242,7 @@ main (int argc, char **argv) */ if (!submajor && subjsort) { /* already date sorted */ struct smsg **slist, **flist; - register struct smsg ***il, **fp, **dp; + struct smsg ***il, **fp, **dp; slist = (struct smsg **) mh_xmalloc ((nmsgs+1) * sizeof(*slist)); memcpy((char *)slist, (char *)dlist, (nmsgs+1)*sizeof(*slist)); @@ -259,9 +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)); - if (! il) - adios (NULL, "couldn't allocate msg list"); + il = mh_xcalloc(mp->hghsel + 1, sizeof *il); for (i = 0; i < nmsgs; i++) il[slist[i]->s_msg] = &slist[i]; /* @@ -271,7 +263,7 @@ main (int argc, char **argv) flist = (struct smsg **) mh_xmalloc ((nmsgs+1) * sizeof(*flist)); fp = flist; for (dp = dlist; *dp;) { - register struct smsg **s = il[(*dp++)->s_msg]; + struct smsg **s = il[(*dp++)->s_msg]; /* see if we already did this guy */ if (! s) @@ -293,6 +285,7 @@ main (int argc, char **argv) } } *fp = 0; + free (il); free (slist); free (dlist); dlist = flist; @@ -318,16 +311,11 @@ read_hdrs (struct msgs *mp, char *datesw) { int msgnum; struct tws tb; - register struct smsg *s; + struct smsg *s; twscopy (&tb, dlocaltimenow ()); - smsgs = (struct smsg *) - calloc ((size_t) (mp->hghsel - mp->lowsel + 2), - sizeof(*smsgs)); - if (smsgs == NULL) - adios (NULL, "unable to allocate sort storage"); - + smsgs = mh_xcalloc(mp->hghsel - mp->lowsel + 2, sizeof *smsgs); s = smsgs; for (msgnum = mp->lowsel; msgnum <= mp->hghsel; msgnum++) { if (is_selected(mp, msgnum)) { @@ -350,12 +338,12 @@ read_hdrs (struct msgs *mp, char *datesw) static int get_fields (char *datesw, int msg, struct smsg *smsg) { - register int state; + int state; int compnum; char *msgnam, buf[BUFSIZ], nam[NAMESZ]; - register struct tws *tw; - register char *datecomp = NULL, *subjcomp = NULL; - register FILE *in; + struct tws *tw; + char *datecomp = NULL, *subjcomp = NULL; + FILE *in; m_getfld_state_t gstate = 0; if ((in = fopen (msgnam = m_name (msg), "r")) == NULL) { @@ -406,10 +394,8 @@ get_fields (char *datesw, int msg, struct smsg *smsg) msg, compnum); check_failed = 1; } - if (datecomp) - free (datecomp); - if (subjcomp) - free (subjcomp); + mh_xfree(datecomp); + mh_xfree(subjcomp); fclose (in); return (0); @@ -445,7 +431,7 @@ get_fields (char *datesw, int msg, struct smsg *smsg) * leading "re:", everything but letters & smash * letters to lower case. */ - register char *cp, *cp2, c; + char *cp, *cp2, c; cp = subjcomp; cp2 = subjcomp; @@ -463,8 +449,7 @@ get_fields (char *datesw, int msg, struct smsg *smsg) while ((c = *cp++)) { if (isascii((unsigned char) c) && isalnum((unsigned char) c)) - *cp2++ = isupper((unsigned char) c) ? - tolower((unsigned char) c) : c; + *cp2++ = tolower((unsigned char)c); } *cp2 = '\0'; @@ -475,8 +460,7 @@ get_fields (char *datesw, int msg, struct smsg *smsg) smsg->s_subj = subjcomp; } fclose (in); - if (datecomp) - free (datecomp); + mh_xfree(datecomp); return (1); } @@ -489,12 +473,11 @@ dsort (struct smsg **a, struct smsg **b) { if ((*a)->s_clock < (*b)->s_clock) return (-1); - else if ((*a)->s_clock > (*b)->s_clock) + if ((*a)->s_clock > (*b)->s_clock) return (1); - else if ((*a)->s_msg < (*b)->s_msg) + if ((*a)->s_msg < (*b)->s_msg) return (-1); - else - return (1); + return (1); } /* @@ -503,7 +486,7 @@ dsort (struct smsg **a, struct smsg **b) static int subsort (struct smsg **a, struct smsg **b) { - register int i; + int i; if ((i = strcmp ((*a)->s_subj, (*b)->s_subj))) return (i); @@ -514,14 +497,13 @@ subsort (struct smsg **a, struct smsg **b) static int txtsort (struct smsg **a, struct smsg **b) { - register int i; + int i; if ((i = strcmp ((*a)->s_subj, (*b)->s_subj))) return (i); - else if ((*a)->s_msg < (*b)->s_msg) + if ((*a)->s_msg < (*b)->s_msg) return (-1); - else - return (1); + return (1); } static void @@ -533,7 +515,7 @@ rename_chain (struct msgs *mp, struct smsg **mlist, int msg, int endmsg) for (;;) { nxt = mlist[msg] - smsgs; /* mlist[msg] is a ptr into smsgs */ - mlist[msg] = (struct smsg *)0; + mlist[msg] = NULL; old = smsgs[nxt].s_msg; new = smsgs[msg].s_msg; strncpy (oldname, m_name (old), sizeof(oldname));