* (mh_strcasecmp): Rename the private strcasecmp function to mh_strcasecmp.
[mmh] / uip / mshcmds.c
index fcdd5e1..f2c913c 100644 (file)
@@ -3,6 +3,10 @@
  * mshcmds.c -- command handlers in msh
  *
  * $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/dropsbr.h>
 #include <h/fmt_scan.h>
 #include <h/scansbr.h>
-#include <zotnet/tws/tws.h>
-#include <zotnet/mts/mts.h>
+#include <h/tws.h>
+#include <h/mts.h>
 #include <errno.h>
 #include <setjmp.h>
 #include <signal.h>
 #include <h/msh.h>
 #include <h/picksbr.h>
+#include <h/utils.h>
 
-extern int errno;
 
 static char delim3[] = "-------";      /* from burst.c */
 
@@ -68,6 +72,8 @@ static int process (int, char *, int, char **);
 static void copy_message (int, FILE *);
 static void copy_digest (int, FILE *);
 
+/* from mhlsbr.c */
+int mhlsbr (int, char **, FILE *(*)());
 
 void
 forkcmd (char **args, char *pgm)
@@ -137,7 +143,7 @@ static struct swit distswit[] = {
 #define        DINWTSW                  11
     { "nowhatnowproc", 0 },
 #define        DIHELP                   12
-    { "help", 4 },
+    { "help", 0 },
     { NULL, 0 }
 };
 
@@ -238,7 +244,7 @@ static struct swit explswit[] = {
 #define        EXNVBSW        5
     { "noverbose", 0 },
 #define        EXHELP         6
-    { "help", 4 },
+    { "help", 0 },
     { NULL, 0 }
 };
 
@@ -467,7 +473,7 @@ static struct swit fileswit[] = {
 #define        FINPRC               8
     { "normmproc", 0 },
 #define        FIHELP               9
-    { "help", 4 },
+    { "help", 0 },
     { NULL, 0 }
 };
 
@@ -631,7 +637,7 @@ static struct swit foldswit[] = {
 #define        FLLISW        14
     { "list", 0 },
 #define        FLHELP        15
-    { "help", 4 },
+    { "help", 0 },
     { NULL, 0 }
 };
 
@@ -691,7 +697,7 @@ foldcmd (char **args)
                    packsw = 0;
                    continue;
            }
-       if (*cp == '+' || *cp == '@')
+       if (*cp == '+' || *cp == '@') {
            if (folder) {
                advise (NULL, "only one folder at a time!\n");
                return;
@@ -699,6 +705,7 @@ foldcmd (char **args)
            else
                folder = fmsh ? path (cp + 1, *cp == '+' ? TFOLDER : TSUBCWF)
                            : cp + 1;
+       }
        else
            if (msg) {
                advise (NULL, "only one message at a time!\n");
@@ -849,7 +856,7 @@ static struct swit forwswit[] = {
 #define        FONWTSW                 16
     { "nowhatnow", 0 },
 #define        FOHELP                  17
-    { "help", 4 },
+    { "help", 0 },
     { NULL, 0 }
 };
 
@@ -932,7 +939,16 @@ forwcmd (char **args)
 
                                        /* foil search of .mh_profile */
     snprintf (buf, sizeof(buf), "%sXXXXXX", invo_name);
+/*
+  Mkstemp work postponed until later -Doug
+#ifdef HAVE_MKSTEMP
+    vec[0] = (char *)mkstemp (buf);
+#else
+*/
     vec[0] = (char *)mktemp (buf);
+/*
+#endif
+*/
     vec[vecp++] = "-file";
     vec[vecp] = NULL;
     if (!msgp)
@@ -1108,7 +1124,7 @@ static struct swit markswit[] = {
 #define        MNZERSW            7
     { "nozero", 0 },
 #define        MHELP              8
-    { "help", 4 },
+    { "help", 0 },
 #define        MDBUGSW            9
     { "debug", -5 },
     { NULL, 0 }
@@ -1188,7 +1204,7 @@ markcmd (char **args)
        }
     }
 
-    if (!addsw && !deletesw && !listsw)
+    if (!addsw && !deletesw && !listsw) {
        if (seqp)
            addsw++;
        else
@@ -1201,6 +1217,7 @@ markcmd (char **args)
                if (!msgp)
                    msgs[msgp++] = "all";
            }
+    }
 
     if (!msgp)
        msgs[msgp++] = listsw ? "all" :"cur";
@@ -1326,7 +1343,7 @@ static struct swit mhnswit[] = {
 #define        MHNNVERBSW         23
     { "noverbose", 0 },
 #define        MHNHELPSW          24
-    { "help", 4 },
+    { "help", 0 },
 #define        MHNPROGSW          25
     { "moreproc program", -4 },
 #define        MHNNPROGSW         26
@@ -1441,11 +1458,11 @@ static struct swit packswit[] = {
 #define        PAFISW         0
     { "file name", 0 },
 #define        PAHELP         1
-    { "help", 4 },
+    { "help", 0 },
     { NULL, 0 }
 };
 
-static mbx_style = MMDF_FORMAT;
+static int mbx_style = MMDF_FORMAT;
 
 void
 packcmd (char **args)
@@ -1619,7 +1636,7 @@ static struct swit pickswit[] = {
 #define        PINLISW              21
     { "nolist", 0 },
 #define        PIHELP               22
-    { "help", 4 },
+    { "help", 0 },
     { NULL, 0 }
 };
 
@@ -1806,7 +1823,7 @@ static struct swit replswit[] = {
 #define        REWIDSW                19
     { "width columns", 0 },
 #define        REHELP                 20
-    { "help", 4 },
+    { "help", 0 },
     { NULL, 0 }
 };
 
@@ -1902,7 +1919,7 @@ replcmd (char **args)
 
 static struct swit rmmswit[] = {
 #define        RMHELP    0
-    { "help", 4 },
+    { "help", 0 },
     { NULL, 0 }
 };
 
@@ -2031,7 +2048,7 @@ static struct swit scanswit[] = {
 #define        SCWID              6
     { "width columns", 0 },
 #define        SCHELP             7
-    { "help", 4 },
+    { "help", 0 },
     { NULL, 0 }
 };
 
@@ -2144,8 +2161,7 @@ scancmd (char **args)
                if (*dp == '\\' || *dp == '"' || *dp == '\n')
                    i++;
            i++;
-           if ((ep = malloc ((unsigned) i)) == NULL)
-               adios (NULL, "out of memory");
+           ep = mh_xmalloc ((unsigned) i);
            for (dp = nfs, fp = ep; *dp; dp++) {
                if (*dp == '\n') {
                    *fp++ = '\\', *fp++ = 'n';
@@ -2281,7 +2297,7 @@ static struct swit showswit[] = {
 #define SHNHEAD               9
     { "noheader", 3 },
 #define        SHHELP               10
-    { "help", 4 },
+    { "help", 0 },
     { NULL, 0 }
 };
 
@@ -2294,10 +2310,10 @@ showcmd (char **args)
     char *cp, *proc = showproc, buf[BUFSIZ];
     char *msgs[MAXARGS], *vec[MAXARGS];
 
-    if (!strcasecmp (cmd_name, "next"))
+    if (!mh_strcasecmp (cmd_name, "next"))
        mode = 1;
     else
-       if (!strcasecmp (cmd_name, "prev"))
+       if (!mh_strcasecmp (cmd_name, "prev"))
            mode = -1;
     while ((cp = *args++)) {
        if (*cp == '-')
@@ -2374,7 +2390,6 @@ showcmd (char **args)
        for (msgnum = mp->lowsel; msgnum <= mp->hghsel; msgnum++)
            if (is_selected (mp, msgnum) && is_nontext (msgnum)) {
                proc = showmimeproc;
-               vec[vecp++] = "-show";
                vec[vecp++] = "-file";
                vec[vecp] = NULL;
                goto finish;
@@ -2550,7 +2565,7 @@ is_nontext (int msgnum)
            /*
             * Check Content-Type field
             */
-           if (!strcasecmp (name, TYPE_FIELD)) {
+           if (!mh_strcasecmp (name, TYPE_FIELD)) {
                int passno;
                char c;
 
@@ -2605,7 +2620,7 @@ invalid:
                if (!*bp)
                    goto invalid;
                if (passno > 1) {
-                   if ((result = (strcasecmp (bp, "plain") != 0)))
+                   if ((result = (mh_strcasecmp (bp, "plain") != 0)))
                        goto out;
                    *dp = c;
                    for (dp++; isspace (*dp); dp++)
@@ -2637,7 +2652,7 @@ invalid:
                    /* Check the character set */
                    result = !check_charset (dp, strlen (dp));
                } else {
-                   if (!(result = (strcasecmp (bp, "text") != 0))) {
+                   if (!(result = (mh_strcasecmp (bp, "text") != 0))) {
                        *dp = c;
                        bp = dp;
                        passno = 2;
@@ -2656,7 +2671,7 @@ out:
            /*
             * Check Content-Transfer-Encoding field
             */
-           if (!strcasecmp (name, ENCODING_FIELD)) {
+           if (!mh_strcasecmp (name, ENCODING_FIELD)) {
                cp = add (buf, NULL);
                while (state == FLDPLUS) {
                    state = m_getfld (state, name, buf, sizeof buf, fp);
@@ -2667,9 +2682,9 @@ out:
                for (dp = bp; istoken (*dp); dp++)
                    continue;
                *dp = '\0';
-               result = (strcasecmp (bp, "7bit")
-                      && strcasecmp (bp, "8bit")
-                      && strcasecmp (bp, "binary"));
+               result = (mh_strcasecmp (bp, "7bit")
+                      && mh_strcasecmp (bp, "8bit")
+                      && mh_strcasecmp (bp, "binary"));
 
                free (cp);
                if (result) {
@@ -2713,7 +2728,7 @@ static struct swit sortswit[] = {
 #define        SONVERB              6
     { "noverbose", 0 },
 #define        SOHELP               7
-    { "help", 4 },
+    { "help", 0 },
     { NULL, 0 }
 };
 
@@ -2853,7 +2868,7 @@ get_fields (char *datesw, char *subjsw, int msgnum, struct Msg *msgp)
            case FLD: 
            case FLDEOF: 
            case FLDPLUS: 
-               if (!strcasecmp (name, datesw)) {
+               if (!mh_strcasecmp (name, datesw)) {
                    bp = getcpy (buf);
                    while (state == FLDPLUS) {
                        state = m_getfld (state, name, buf, sizeof buf, zp);
@@ -2870,7 +2885,7 @@ get_fields (char *datesw, char *subjsw, int msgnum, struct Msg *msgp)
                        break;          /* all done! */
                    gotdate++;
                }
-               else if (subjsw && !strcasecmp(name, subjsw)) {
+               else if (subjsw && !mh_strcasecmp(name, subjsw)) {
                    bp = getcpy (buf);
                    while (state == FLDPLUS) {
                        state = m_getfld (state, name, buf, sizeof buf, zp);
@@ -2950,7 +2965,7 @@ sosmash (char *subj, char *s)
     if (s) {
        cp = s;
        dp = s; /* dst pointer */
-       if (!strcasecmp (subj, "subject"))
+       if (!mh_strcasecmp (subj, "subject"))
            while ((c = *cp)) {
                if (! isspace(c)) {
                    if(uprf(cp, "re:"))
@@ -2993,7 +3008,6 @@ process (int msgnum, char *proc, int vecp, char **vec)
     strncpy (tmpfil, m_scratch ("", invo_name), sizeof(tmpfil));
     if ((out = fopen (tmpfil, "w")) == NULL) {
        int olderr;
-       extern int errno;
        char newfil[80];
 
        olderr = errno;