]> diplodocus.org Git - nmh/blobdiff - uip/show.c
mts/smtp/smtp.c: Replace int with bool.
[nmh] / uip / show.c
index 9430e009e41f68b82b82c33e6a7fa2adf184d029..25ede029d4b8e35571a0dd7c3428f7cf7c924488 100644 (file)
@@ -7,8 +7,9 @@
 
 #include <h/mh.h>
 #include <h/mime.h>
+#include "h/done.h"
 #include <h/utils.h>
-#include "../sbr/m_maildir.h"
+#include "sbr/m_maildir.h"
 
 #define SHOW_SWITCHES \
     X("checkmime", 0, CHECKMIMESW) \
@@ -74,7 +75,7 @@ main (int argc, char **argv)
     struct msgs_array msgs = { 0, 0, NULL };
     struct msgs_array vec = { 0, 0, NULL }, non_mhl_vec = { 0, 0, NULL };
 
-    if (nmh_init(argv[0], 1)) { return 1; }
+    if (nmh_init(argv[0], true, true)) { return 1; }
 
     if (!strcasecmp (invo_name, "next")) {
        mode = NEXT;
@@ -122,29 +123,28 @@ non_mhl_switches:
 
                case DRFTSW:
                    if (file)
-                       adios (NULL, "only one file at a time!");
+                       die("only one file at a time!");
                    draftsw++;
                    if (mode == SHOW)
                        continue;
 usage:
-                   adios (NULL,
-                           "usage: %s [+folder] [switches] [switches for showproc]",
+                   die(                            "usage: %s [+folder] [switches] [switches for showproc]",
                            invo_name);
                case FILESW:
                    if (mode != SHOW)
                        goto usage;
                    if (draftsw || file)
-                       adios (NULL, "only one file at a time!");
+                       die("only one file at a time!");
                    if (!(cp = *argp++) || *cp == '-')
-                       adios (NULL, "missing argument to %s", argp[-2]);
+                       die("missing argument to %s", argp[-2]);
                    file = path (cp, TFILE);
                    continue;
 
                case FORMSW:
                    app_msgarg(&vec, --cp);
                    if (!(cp = *argp++) || *cp == '-')
-                       adios (NULL, "missing argument to %s", argp[-2]);
-                   app_msgarg(&vec, getcpy (etcpath(cp)));
+                       die("missing argument to %s", argp[-2]);
+                   app_msgarg(&vec, mh_xstrdup(etcpath(cp)));
                    continue;
 
                case PROGSW:
@@ -159,13 +159,13 @@ usage:
                case WCACHESW:
                    app_msgarg(&vec, --cp);
                    if (!(cp = *argp++) || *cp == '-')
-                       adios (NULL, "missing argument to %s", argp[-2]);
+                       die("missing argument to %s", argp[-2]);
                    app_msgarg(&vec, cp);
                    continue;
 
                case SHOWSW:
                    if (!(showproc = *argp++) || *showproc == '-')
-                       adios (NULL, "missing argument to %s", argp[-2]);
+                       die("missing argument to %s", argp[-2]);
                    nshow = 0;
                    continue;
                case NSHOWSW:
@@ -174,7 +174,7 @@ usage:
 
                case SHOWMIMESW:
                    if (!(showmimeproc = *argp++) || *showmimeproc == '-')
-                       adios (NULL, "missing argument to %s", argp[-2]);
+                       die("missing argument to %s", argp[-2]);
                    nshow = 0;
                    continue;
                case CHECKMIMESW:
@@ -187,9 +187,8 @@ usage:
        }
        if (*cp == '+' || *cp == '@') {
            if (folder)
-               adios (NULL, "only one folder at a time!");
-           else
-               folder = pluspath (cp);
+               die("only one folder at a time!");
+            folder = pluspath (cp);
        } else {
            if (mode != SHOW)
                goto usage;
@@ -202,9 +201,9 @@ usage:
 
     if (draftsw || file) {
        if (msgs.size)
-           adios (NULL, "only one file at a time!");
+           die("only one file at a time!");
        if (draftsw)
-           app_msgarg(&vec, getcpy (m_draft (folder, NULL, 1, &isdf)));
+           app_msgarg(&vec, mh_xstrdup(m_draft(folder, NULL, 1, &isdf)));
        else
            app_msgarg(&vec, file);
        headersw = 0;
@@ -234,11 +233,11 @@ usage:
 
     /* read folder and create message structure */
     if (!(mp = folder_read (folder, 1)))
-       adios (NULL, "unable to read folder %s", folder);
+       die("unable to read folder %s", folder);
 
     /* check for empty folder */
     if (mp->nummsg == 0)
-       adios (NULL, "no messages in %s", folder);
+       die("no messages in %s", folder);
 
     /* parse all the message ranges/sequences and set SELECTED */
     for (msgnum = 0; msgnum < msgs.size; msgnum++)
@@ -370,14 +369,14 @@ is_nontext (char *msgnam)
     char *bp, *dp, *cp;
     char buf[NMH_BUFSIZ], name[NAMESZ];
     FILE *fp;
-    m_getfld_state_t gstate = 0;
+    m_getfld_state_t gstate;
 
     if ((fp = fopen (msgnam, "r")) == NULL)
        return 0;
-
+    gstate = m_getfld_state_init(fp);
     for (;;) {
        int bufsz = sizeof buf;
-       switch (state = m_getfld (&gstate, name, buf, &bufsz, fp)) {
+       switch (state = m_getfld2(&gstate, name, buf, &bufsz)) {
        case FLD:
        case FLDPLUS:
            /*
@@ -390,7 +389,7 @@ is_nontext (char *msgnam)
                cp = mh_xstrdup(buf);
                while (state == FLDPLUS) {
                    bufsz = sizeof buf;
-                   state = m_getfld (&gstate, name, buf, &bufsz, fp);
+                   state = m_getfld2(&gstate, name, buf, &bufsz);
                    cp = add (buf, cp);
                }
                bp = cp;
@@ -414,7 +413,7 @@ invalid:
                            continue;
                        case '(':
                            i++;
-                           /* FALLTHRU */
+                           continue;
                        default:
                            continue;
                        case ')':
@@ -495,7 +494,7 @@ out:
                cp = mh_xstrdup(buf);
                while (state == FLDPLUS) {
                    bufsz = sizeof buf;
-                   state = m_getfld (&gstate, name, buf, &bufsz, fp);
+                   state = m_getfld2(&gstate, name, buf, &bufsz);
                    cp = add (buf, cp);
                }
                for (bp = cp; isspace ((unsigned char) *bp); bp++)
@@ -522,7 +521,7 @@ out:
             */
            while (state == FLDPLUS) {
                bufsz = sizeof buf;
-               state = m_getfld (&gstate, name, buf, &bufsz, fp);
+               state = m_getfld2(&gstate, name, buf, &bufsz);
            }
            break;