* (mh_strcasecmp): Rename the private strcasecmp function to mh_strcasecmp.
[mmh] / uip / mhlsbr.c
index e075322..04da52b 100644 (file)
@@ -3,13 +3,18 @@
  * mhlsbr.c -- main routines for nmh message lister
  *
  * $Id$
+ *
+ * This code is Copyright (c) 2002, by the authors of nmh.  See the
+ * COPYRIGHT file in the root directory of the nmh distribution for
+ * complete copyright information.
  */
 
 #include <h/mh.h>
 #include <h/signals.h>
 #include <h/addrsbr.h>
 #include <h/fmt_scan.h>
-#include <zotnet/tws/tws.h>
+#include <h/tws.h>
+#include <h/utils.h>
 #include <setjmp.h>
 #include <signal.h>
 
@@ -72,7 +77,7 @@ static struct swit mhlswitches[] = {
 #define VERSIONSW     15
     { "version", 0 },
 #define        HELPSW        16
-    { "help", 4 },
+    { "help", 0 },
 #define        FORW1SW       17
     { "forward", -7 },         /* interface from forw */
 #define        FORW2SW       18
@@ -476,6 +481,11 @@ mhl (int argc, char **argv)
                    vecp > 1 ? "s" : "");
     }
 
+    fflush(stdout);
+    if(ferror(stdout)){
+           adios("output", "error writing");
+    }
+    
     if (clearflg > 0 && ontty == NOTTY)
        clear_screen ();
 
@@ -499,7 +509,7 @@ mhl_format (char *file, int length, int width)
     static ino_t ino = 0;
     static time_t mtime = 0;
 
-    if (fmthd != NULL)
+    if (fmthd != NULL) {
        if (stat (etcpath (file), &st) != NOTOK
                && mtime == st.st_mtime
                && dev == st.st_dev
@@ -507,6 +517,7 @@ mhl_format (char *file, int length, int width)
            goto out;
        else
            free_queue (&fmthd, &fmttl);
+    }
 
     if ((fp = fopen (etcpath (file), "r")) == NULL)
        adios (file, "unable to open format file");
@@ -552,7 +563,7 @@ mhl_format (char *file, int length, int width)
                 * Split this list of fields to ignore, and copy
                 * it to the end of the current "ignores" list.
                 */
-               if (!strcasecmp (name, "ignores")) {
+               if (!mh_strcasecmp (name, "ignores")) {
                    char **tmparray, **p;
                    int n = 0;
 
@@ -585,7 +596,7 @@ mhl_format (char *file, int length, int width)
                    if (evalvar (c1))
                        adios (NULL, "format file syntax error: %s", bp);
                }
-               if (!c1->c_nfs && global.c_nfs)
+               if (!c1->c_nfs && global.c_nfs) {
                    if (c1->c_flags & DATEFMT) {
                        if (global.c_flags & DATEFMT)
                            c1->c_nfs = getcpy (global.c_nfs);
@@ -595,6 +606,7 @@ mhl_format (char *file, int length, int width)
                            if (global.c_flags & ADDRFMT)
                                c1->c_nfs = getcpy (global.c_nfs);
                        }
+               }
                continue;
 
            default: 
@@ -655,17 +667,17 @@ evalvar (struct mcomp *c1)
        return 0;
     strncpy (name, parse(), sizeof(name));
 
-    if (!strcasecmp (name, "component")) {
+    if (!mh_strcasecmp (name, "component")) {
        if (ptos (name, &c1->c_text))
            return 1;
        c1->c_flags &= ~NOCOMPONENT;
        return 0;
     }
 
-    if (!strcasecmp (name, "overflowtext"))
+    if (!mh_strcasecmp (name, "overflowtext"))
        return ptos (name, &c1->c_ovtxt);
 
-    if (!strcasecmp (name, "formatfield")) {
+    if (!mh_strcasecmp (name, "formatfield")) {
        char *nfs;
 
        if (ptos (name, &cp))
@@ -676,7 +688,7 @@ evalvar (struct mcomp *c1)
        return 0;
     }
 
-    if (!strcasecmp (name, "decode")) {
+    if (!mh_strcasecmp (name, "decode")) {
        char *nfs;
 
        nfs = new_fs (NULL, NULL, "%(decode{text})");
@@ -685,21 +697,21 @@ evalvar (struct mcomp *c1)
        return 0;
     }
 
-    if (!strcasecmp (name, "offset"))
+    if (!mh_strcasecmp (name, "offset"))
        return ptoi (name, &c1->c_offset);
-    if (!strcasecmp (name, "overflowoffset"))
+    if (!mh_strcasecmp (name, "overflowoffset"))
        return ptoi (name, &c1->c_ovoff);
-    if (!strcasecmp (name, "width"))
+    if (!mh_strcasecmp (name, "width"))
        return ptoi (name, &c1->c_width);
-    if (!strcasecmp (name, "compwidth"))
+    if (!mh_strcasecmp (name, "compwidth"))
        return ptoi (name, &c1->c_cwidth);
-    if (!strcasecmp (name, "length"))
+    if (!mh_strcasecmp (name, "length"))
        return ptoi (name, &c1->c_length);
-    if (!strcasecmp (name, "nodashstuffing"))
+    if (!mh_strcasecmp (name, "nodashstuffing"))
        return (dashstuff = -1);
 
     for (ap = triples; ap->t_name; ap++)
-       if (!strcasecmp (ap->t_name, name)) {
+       if (!mh_strcasecmp (ap->t_name, name)) {
            c1->c_flags |= ap->t_on;
            c1->c_flags &= ~ap->t_off;
            return 0;
@@ -892,7 +904,7 @@ mhlfile (FILE *fp, char *mname, int ofilen, int ofilec)
            case FLD: 
            case FLDPLUS: 
                for (ip = ignores; *ip; ip++)
-                   if (!strcasecmp (name, *ip)) {
+                   if (!mh_strcasecmp (name, *ip)) {
                        while (state == FLDPLUS)
                            state = m_getfld (state, name, buf, sizeof(buf), fp);
                        break;
@@ -901,12 +913,12 @@ mhlfile (FILE *fp, char *mname, int ofilen, int ofilec)
                    continue;
 
                for (c2 = fmthd; c2; c2 = c2->c_next)
-                   if (!strcasecmp (c2->c_name, name))
+                   if (!mh_strcasecmp (c2->c_name, name))
                        break;
                c1 = NULL;
                if (!((c3 = c2 ? c2 : &global)->c_flags & SPLIT))
                    for (c1 = msghd; c1; c1 = c1->c_next)
-                       if (!strcasecmp (c1->c_name, c3->c_name)) {
+                       if (!mh_strcasecmp (c1->c_name, c3->c_name)) {
                            c1->c_text =
                                mcomp_add (c1->c_flags, buf, c1->c_text);
                            break;
@@ -929,7 +941,7 @@ mhlfile (FILE *fp, char *mname, int ofilen, int ofilec)
                        putcomp (c1, c1, ONECOMP);
                        continue;
                    }
-                   if (!strcasecmp (c1->c_name, "messagename")) {
+                   if (!mh_strcasecmp (c1->c_name, "messagename")) {
                        holder.c_text = concat ("(Message ", mname, ")\n",
                                            NULL);
                        putcomp (c1, &holder, ONECOMP);
@@ -937,15 +949,14 @@ mhlfile (FILE *fp, char *mname, int ofilen, int ofilec)
                        holder.c_text = NULL;
                        continue;
                    }
-                   if (!strcasecmp (c1->c_name, "extras")) {
+                   if (!mh_strcasecmp (c1->c_name, "extras")) {
                        for (c2 = msghd; c2; c2 = c2->c_next)
                            if (c2->c_flags & EXTRA)
                                putcomp (c1, c2, TWOCOMP);
                        continue;
                    }
-                   if (dobody && !strcasecmp (c1->c_name, "body")) {
-                       if ((holder.c_text = malloc (sizeof(buf))) == NULL)
-                           adios (NULL, "unable to allocate buffer memory");
+                   if (dobody && !mh_strcasecmp (c1->c_name, "body")) {
+                       holder.c_text = mh_xmalloc (sizeof(buf));
                        strncpy (holder.c_text, buf, sizeof(buf));
                        while (state == BODY) {
                            putcomp (c1, &holder, BODYCOMP);
@@ -957,7 +968,7 @@ mhlfile (FILE *fp, char *mname, int ofilen, int ofilec)
                        continue;
                    }
                    for (c2 = msghd; c2; c2 = c2->c_next)
-                       if (!strcasecmp (c2->c_name, c1->c_name)) {
+                       if (!mh_strcasecmp (c2->c_name, c1->c_name)) {
                            putcomp (c1, c2, ONECOMP);
                            if (!(c1->c_flags & SPLIT))
                                break;
@@ -995,7 +1006,7 @@ mcomp_flags (char *name)
     struct pair *ap;
 
     for (ap = pairs; ap->p_name; ap++)
-       if (!strcasecmp (ap->p_name, name))
+       if (!mh_strcasecmp (ap->p_name, name))
            return (ap->p_flags);
 
     return 0;
@@ -1263,13 +1274,14 @@ putcomp (struct mcomp *c1, struct mcomp *c2, int flag)
                *cp = toupper (*cp);
 
     count = 0;
-    if (cchdr)
+    if (cchdr) {
        if (flag == TWOCOMP)
            count = (c1->c_cwidth >= 0) ? c1->c_cwidth
                        : strlen (c2->c_name) + 2;
        else
            count = (c1->c_cwidth >= 0) ? c1->c_cwidth
                        : strlen (c1->c_text ? c1->c_text : c1->c_name) + 2;
+    }
     count += c1->c_offset;
 
     if ((cp = oneline (c2->c_text, c1->c_flags)))
@@ -1344,7 +1356,7 @@ oneline (char *stuff, long flags)
 static void
 putstr (char *string)
 {
-    if (!column && lm > 0)
+    if (!column && lm > 0) {
        while (lm > 0)
            if (lm >= 8) {
                putch ('\t');
@@ -1354,6 +1366,7 @@ putstr (char *string)
                putch (' ');
                lm--;
            }
+    }
     lm = 0;
     while (*string)
        putch (*string++);
@@ -1631,14 +1644,12 @@ doface (struct mcomp *c1)
                if (cp) {
                    int j;
                    char *dp;
-                   if ((dp = realloc (cp, (unsigned) (j = len + i))) == NULL)
-                       adios (NULL, "unable to allocate face storage");
+                   dp = mh_xrealloc (cp, (unsigned) (j = len + i));
                    memcpy(dp + len, buffer, i);
                    cp = dp, len = j;
                }
                else {
-                   if ((cp = malloc ((unsigned) i)) == NULL)
-                       adios (NULL, "unable to allocate face storage");
+                   cp = mh_xmalloc ((unsigned) i);
                    memcpy(cp, buffer, i);
                    len = i;
                }