]> diplodocus.org Git - nmh/blobdiff - uip/sortm.c
Escape literal leading full stop in man/new.man.
[nmh] / uip / sortm.c
index ea6b805ee0bcf9bf8792abbc6fc1ab74ea8be893..97d42e5fecec37166a2954c2afeba92a4ca43adb 100644 (file)
@@ -78,13 +78,7 @@ main (int argc, char **argv)
     struct smsg **dlist;
     int checksw = 0;
 
     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;
 
     arguments = getarguments (invo_name, argc, argv, 1);
     argp = arguments;
@@ -128,7 +122,7 @@ main (int argc, char **argv)
                subjsort = "subject";
                continue;
            case NSUBJSW:
                subjsort = "subject";
                continue;
            case NSUBJSW:
-               subjsort = (char *)0;
+               subjsort = NULL;
                continue;
 
            case LIMSW:
                continue;
 
            case LIMSW:
@@ -248,7 +242,7 @@ main (int argc, char **argv)
      */
     if (!submajor && subjsort) {       /* already date sorted */
        struct smsg **slist, **flist;
      */
     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));
 
        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.
         */
         * 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];
        /*
        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;) {
        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)
 
            /* see if we already did this guy */
            if (! s)
@@ -293,6 +285,7 @@ main (int argc, char **argv)
            }
        }
        *fp = 0;
            }
        }
        *fp = 0;
+       free (il);
        free (slist);
        free (dlist);
        dlist = flist;
        free (slist);
        free (dlist);
        dlist = flist;
@@ -318,16 +311,11 @@ read_hdrs (struct msgs *mp, char *datesw)
 {
     int msgnum;
     struct tws tb;
 {
     int msgnum;
     struct tws tb;
-    register struct smsg *s;
+    struct smsg *s;
 
     twscopy (&tb, dlocaltimenow ());
 
 
     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)) {
     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)
 {
 static int
 get_fields (char *datesw, int msg, struct smsg *smsg)
 {
-    register int state;
+    int state;
     int compnum;
     char *msgnam, buf[BUFSIZ], nam[NAMESZ];
     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) {
     m_getfld_state_t gstate = 0;
 
     if ((in = fopen (msgnam = m_name (msg), "r")) == NULL) {
@@ -368,7 +356,7 @@ get_fields (char *datesw, int msg, struct smsg *smsg)
        case FLD:
        case FLDPLUS:
            compnum++;
        case FLD:
        case FLDPLUS:
            compnum++;
-           if (!mh_strcasecmp (nam, datesw)) {
+           if (!strcasecmp (nam, datesw)) {
                datecomp = add (buf, datecomp);
                while (state == FLDPLUS) {
                    bufsz = sizeof buf;
                datecomp = add (buf, datecomp);
                while (state == FLDPLUS) {
                    bufsz = sizeof buf;
@@ -377,7 +365,7 @@ get_fields (char *datesw, int msg, struct smsg *smsg)
                }
                if (!subjsort || subjcomp)
                    break;
                }
                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;
                subjcomp = add (buf, subjcomp);
                while (state == FLDPLUS) {
                    bufsz = sizeof buf;
@@ -406,10 +394,8 @@ get_fields (char *datesw, int msg, struct smsg *smsg)
                      msg, compnum);
                check_failed = 1;
            }
                      msg, compnum);
                check_failed = 1;
            }
-           if (datecomp)
-               free (datecomp);
-           if (subjcomp)
-               free (subjcomp);
+            mh_xfree(datecomp);
+            mh_xfree(subjcomp);
            fclose (in);
            return (0);
 
            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.
             */
             * leading "re:", everything but letters & smash
             * letters to lower case.
             */
-           register char  *cp, *cp2, c;
+           char  *cp, *cp2, c;
 
            cp = subjcomp;
            cp2 = subjcomp;
 
            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))
 
            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';
            }
 
            *cp2 = '\0';
@@ -475,8 +460,7 @@ get_fields (char *datesw, int msg, struct smsg *smsg)
        smsg->s_subj = subjcomp;
     }
     fclose (in);
        smsg->s_subj = subjcomp;
     }
     fclose (in);
-    if (datecomp)
-       free (datecomp);
+    mh_xfree(datecomp);
 
     return (1);
 }
 
     return (1);
 }
@@ -489,12 +473,11 @@ dsort (struct smsg **a, struct smsg **b)
 {
     if ((*a)->s_clock < (*b)->s_clock)
        return (-1);
 {
     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);
        return (1);
-    else if ((*a)->s_msg < (*b)->s_msg)
+    if ((*a)->s_msg < (*b)->s_msg)
        return (-1);
        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)
 {
 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);
 
     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)
 {
 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);
 
     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);
        return (-1);
-    else
-       return (1);
+    return (1);
 }
 
 static void
 }
 
 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 */
 
     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));
        old = smsgs[nxt].s_msg;
        new = smsgs[msg].s_msg;
        strncpy (oldname, m_name (old), sizeof(oldname));
@@ -565,7 +547,7 @@ static void
 rename_msgs (struct msgs *mp, struct smsg **mlist)
 {
     int i, j, old, new;
 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;
     char f1[BUFSIZ], tmpfil[BUFSIZ];
     char newbuf[PATH_MAX + 1];
     struct smsg *sp;
@@ -605,7 +587,7 @@ rename_msgs (struct msgs *mp, struct smsg **mlist)
        if (rename (f1, tmpfil) == NOTOK)
            adios (tmpfil, "unable to rename %s to ", f1);
 
        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);
 
 
        rename_chain (mp, mlist, j, i);
 
@@ -620,7 +602,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);
 
        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;
     }
        mp->msgflags |= SEQMOD;
     }
+
+    bvector_free (tmpset);
 }
 }