]> diplodocus.org Git - nmh/blobdiff - uip/sortm.c
Make many m_getfld() buffer parameters NMH_BUFSIZ big.
[nmh] / uip / sortm.c
index f0d3248a8e8210d8d37db40cc4cd2c49d1a496fa..8fa9e5b538bd968f4c5e4b3d21dcda38ce05238c 100644 (file)
@@ -1,6 +1,4 @@
-
-/*
- * sortm.c -- sort messages in a folder by date/time
+/* sortm.c -- sort messages in a folder by date/time
  *
  * This code is Copyright (c) 2002, by the authors of nmh.  See the
  * COPYRIGHT file in the root directory of the nmh distribution for
@@ -122,7 +120,7 @@ main (int argc, char **argv)
                subjsort = "subject";
                continue;
            case NSUBJSW:
-               subjsort = (char *)0;
+               subjsort = NULL;
                continue;
 
            case LIMSW:
@@ -310,11 +308,8 @@ static int
 read_hdrs (struct msgs *mp, char *datesw)
 {
     int msgnum;
-    struct tws tb;
     struct smsg *s;
 
-    twscopy (&tb, dlocaltimenow ());
-
     smsgs = mh_xcalloc(mp->hghsel - mp->lowsel + 2, sizeof *smsgs);
     s = smsgs;
     for (msgnum = mp->lowsel; msgnum <= mp->hghsel; msgnum++) {
@@ -340,7 +335,7 @@ get_fields (char *datesw, int msg, struct smsg *smsg)
 {
     int state;
     int compnum;
-    char *msgnam, buf[BUFSIZ], nam[NAMESZ];
+    char *msgnam, buf[NMH_BUFSIZ], nam[NAMESZ];
     struct tws *tw;
     char *datecomp = NULL, *subjcomp = NULL;
     FILE *in;
@@ -390,14 +385,12 @@ get_fields (char *datesw, int msg, struct smsg *smsg)
        case LENERR:
        case FMTERR:
            if (state == LENERR || state == FMTERR) {
-               admonish (NULL, "format error in message %d (header #%d)",
+               inform("format error in message %d (header #%d), continuing...",
                      msg, compnum);
                check_failed = 1;
            }
-           if (datecomp)
-               free (datecomp);
-           if (subjcomp)
-               free (subjcomp);
+            mh_xfree(datecomp);
+            mh_xfree(subjcomp);
            fclose (in);
            return (0);
 
@@ -415,10 +408,8 @@ get_fields (char *datesw, int msg, struct smsg *smsg)
     if (!datecomp || (tw = dparsetime (datecomp)) == NULL) {
        struct stat st;
 
-       advise (NULL,
-               "can't parse %s field in message %d, "
-               "will use file modification time",
-               datesw, msg);
+       inform("can't parse %s field in message %d, "
+            "will use file modification time", datesw, msg);
        fstat (fileno (in), &st);
        smsg->s_clock = st.st_mtime;
        check_failed = 1;
@@ -440,10 +431,9 @@ get_fields (char *datesw, int msg, struct smsg *smsg)
            if (strcmp (subjsort, "subject") == 0) {
                while ((c = *cp)) {
                    if (! isspace((unsigned char) c)) {
-                       if(uprf(cp, "re:"))
-                           cp += 2;
-                       else
+                       if(!uprf(cp, "re:"))
                            break;
+                        cp += 2;
                    }
                    cp++;
                }
@@ -451,8 +441,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';
@@ -463,8 +452,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);
 }
@@ -477,12 +465,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);
 }
 
 /*
@@ -506,10 +493,9 @@ txtsort (struct smsg **a, struct smsg **b)
 
     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
@@ -521,7 +507,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));
@@ -553,7 +539,7 @@ static void
 rename_msgs (struct msgs *mp, struct smsg **mlist)
 {
     int i, j, old, new;
-    bvector_t tmpset = bvector_create (0);
+    bvector_t tmpset = bvector_create ();
     char f1[BUFSIZ], tmpfil[BUFSIZ];
     char newbuf[PATH_MAX + 1];
     struct smsg *sp;
@@ -598,7 +584,7 @@ rename_msgs (struct msgs *mp, struct smsg **mlist)
        rename_chain (mp, mlist, j, i);
 
        /*
-        *      Run the external hook to refile the temorary message number
+        *      Run the external hook to refile the temporary message number
         *      to the real place.
         */