]> diplodocus.org Git - nmh/blobdiff - uip/sortm.c
Make many m_getfld() buffer parameters NMH_BUFSIZ big.
[nmh] / uip / sortm.c
index ff3f35191a8b25bd33428a312342af511e381b73..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:
@@ -242,7 +240,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));
@@ -263,7 +261,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)
@@ -310,10 +308,7 @@ static int
 read_hdrs (struct msgs *mp, char *datesw)
 {
     int msgnum;
-    struct tws tb;
-    register struct smsg *s;
-
-    twscopy (&tb, dlocaltimenow ());
+    struct smsg *s;
 
     smsgs = mh_xcalloc(mp->hghsel - mp->lowsel + 2, sizeof *smsgs);
     s = smsgs;
@@ -338,12 +333,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;
+    char *msgnam, buf[NMH_BUFSIZ], nam[NAMESZ];
+    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) {
@@ -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;
@@ -433,17 +424,16 @@ 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;
            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);
 }
 
 /*
@@ -491,7 +478,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);
@@ -502,14 +489,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
@@ -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.
         */