]> diplodocus.org Git - nmh/blobdiff - uip/mhparam.c
mhshowsbr.c: Delete single-use global int `nolist'.
[nmh] / uip / mhparam.c
index bd22470c3732715e617a3a6eb85e75cf8aa8ffb0..65082a0bd353c57ca11978fb757df6970a133b0b 100644 (file)
@@ -1,6 +1,4 @@
-
-/*
- * mhparam.c -- print mh_profile values
+/* mhparam.c -- print mh_profile values
  *
  * Originally contributed by
  * Jeffrey C Honig <Jeffrey_C_Honig@cornell.edu>
@@ -10,8 +8,17 @@
  * complete copyright information.
  */
 
-#include <h/mh.h>
-#include <h/mts.h>
+#include "h/mh.h"
+#include "sbr/getarguments.h"
+#include "sbr/smatch.h"
+#include "sbr/context_find.h"
+#include "sbr/ambigsw.h"
+#include "sbr/print_version.h"
+#include "sbr/print_help.h"
+#include "sbr/error.h"
+#include "h/mts.h"
+#include "h/done.h"
+#include "h/utils.h"
 
 #define MHPARAM_SWITCHES \
     X("components", 0, COMPSW) \
@@ -29,14 +36,16 @@ DEFINE_SWITCH_ENUM(MHPARAM);
 DEFINE_SWITCH_ARRAY(MHPARAM, switches);
 #undef X
 
-extern char *mhlibdir;
+extern char *mhbindir;
+extern char *mhlibexecdir;
 extern char *mhetcdir;
+extern char *mhdocdir;
 
 static char *sbackup = BACKUP_PREFIX;
 
 static char *datalocking = "fcntl";
 static char *localmbox = "";
-static int localmbox_primed = 0;
+static bool localmbox_primed;
 
 extern char *spoollocking;
 
@@ -75,6 +84,13 @@ static char *iconv =
     "";
 #endif
 
+static char *oauth =
+#ifdef OAUTH_SUPPORT
+    "oauth";
+#else
+    "";
+#endif
+
 struct proc {
     char *p_name;
     char **p_field;
@@ -104,13 +120,16 @@ static struct proc procs [] = {
      { "version",          &version_num },
      { "whatnowproc",      &whatnowproc },
      { "whomproc",         &whomproc },
+     { "bindir",           &mhbindir },
+     { "libexecdir",       &mhlibexecdir },
      { "etcdir",           &mhetcdir },
-     { "libdir",           &mhlibdir },
+     { "docdir",           &mhdocdir },
      { "localmbox",       &localmbox },
      { "sbackup",          &sbackup },
      { "datalocking",      &datalocking },
      { "spoollocking",     &spoollocking },
      { "iconv",                   &iconv },
+     { "oauth",                   &oauth },
      { "sasl",             &sasl },
      { "tls",              &tls },
      { NULL,               NULL },
@@ -120,19 +139,21 @@ static struct proc procs [] = {
 /*
  * static prototypes
  */
-static char *p_find(char *);
+static char *p_find(char *) PURE;
 
 
 int
 main(int argc, char **argv)
 {
-    int i, compp = 0, missed = 0;
-    int all = 0, debug = 0;
+    int i, compp = 0;
+    bool missed;
+    bool all = false;
+    bool debug = false;
     int components = -1;
     char *cp, buf[BUFSIZ], **argp;
     char **arguments, *comps[MAXARGS];
 
-    if (nmh_init(argv[0], 1)) { return 1; }
+    if (nmh_init(argv[0], true, false)) { return 1; }
 
     arguments = getarguments (invo_name, argc, argv, 1);
     argp = arguments;
@@ -144,7 +165,7 @@ main(int argc, char **argv)
                    ambigsw (cp, switches);
                    done (1);
                case UNKWNSW: 
-                   adios (NULL, "-%s unknown", cp);
+                   die("-%s unknown", cp);
 
                case HELPSW: 
                    snprintf (buf, sizeof(buf), "%s [profile-components] [switches]",
@@ -163,18 +184,18 @@ main(int argc, char **argv)
                    break;
 
                case ALLSW:
-                   all = 1;
+                   all = true;
                    break;
 
                case DEBUGSW:
-                   debug = 1;
+                   debug = true;
                    break;
            }
        } else {
            comps[compp++] = cp;
            if (strcmp("localmbox", cp) == 0 && ! localmbox_primed) {
                localmbox = getlocalmbox();
-               localmbox_primed = 1;
+               localmbox_primed = true;
            }
        }
     }
@@ -183,10 +204,10 @@ main(int argc, char **argv)
         struct node *np;
 
        if (compp)
-           advise(NULL, "profile-components ignored with -all");
+           inform("profile-components ignored with -all");
 
        if (components >= 0)
-           advise(NULL, "-%scomponents ignored with -all",
+           inform("-%scomponents ignored with -all",
                   components ? "" : "no");
 
        /* Print all entries in context/profile list.  That does not
@@ -194,19 +215,21 @@ main(int argc, char **argv)
        for (np = m_defs; np; np = np->n_next)
            printf("%s: %s\n", np->n_name, np->n_field);
 
-    } else if (debug) {
+    }
+
+    if (debug) {
        struct proc *ps;
 
        /* In case datalocking was set in profile. */
        if ((cp = context_find("datalocking"))) { datalocking = cp; }
 
        /* In case spoollocking was set in mts.conf. */
-       mts_init(invo_name);
+       mts_init();
 
        /* Also set localmbox here */
        if (! localmbox_primed) {
            localmbox = getlocalmbox();
-           localmbox_primed = 1;
+           localmbox_primed = true;
        }
 
        /*
@@ -215,18 +238,21 @@ main(int argc, char **argv)
         * value (as determined after context is read).
          */
        for (ps = procs; ps->p_name; ps++)
-           printf ("%s: %s\n", ps->p_name, *ps->p_field ? *ps->p_field : "");
+           printf ("%s: %s\n", ps->p_name, FENDNULL(*ps->p_field));
+
+    }
 
-    } else {
+    missed = false;
+    if (! all) {
         if (components < 0)
            components = compp > 1;
 
        for (i = 0; i < compp; i++)  {
-           register char *value;
+           char *value;
 
            if (! strcmp ("spoollocking", comps[i])) {
                /* In case spoollocking was set in mts.conf. */
-               mts_init(invo_name);
+               mts_init();
             }
 
            value = context_find (comps[i]);
@@ -236,14 +262,13 @@ main(int argc, char **argv)
                if (components)
                    printf("%s: ", comps[i]);
 
-               printf("%s\n", value);
+               puts(value);
            } else
-               missed++;
+                missed = true;
        }
     }
 
-    done (missed);
-    return 1;
+    done(missed);
 }
 
 
@@ -253,8 +278,8 @@ p_find(char *str)
     struct proc *ps;
 
     for (ps = procs; ps->p_name; ps++)
-       if (!strcasecmp (ps->p_name, str ? str : ""))
-           return (*ps->p_field);
+       if (!strcasecmp (ps->p_name, str))
+           return *ps->p_field;
 
     return NULL;
 }