]> diplodocus.org Git - nmh/blobdiff - uip/mhparam.c
Added context_find_prefix().
[nmh] / uip / mhparam.c
index 33f0657477adecbf6816e8c8ca23f331fe6eeb08..2245346776673b52db373db826ea1003594dff88 100644 (file)
@@ -29,13 +29,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;
 
 extern char *spoollocking;
 
@@ -94,7 +97,6 @@ static struct proc procs [] = {
      { "mimeencodingproc", &mimeencodingproc },
      { "moreproc",         &moreproc },
      { "msgprot",          &msgprot },
-     { "mshproc",          &mshproc },
      { "packproc",         &packproc },
      { "postproc",         &postproc },
      { "rmmproc",          &rmmproc },
@@ -102,11 +104,13 @@ static struct proc procs [] = {
      { "showmimeproc",     &showmimeproc },
      { "showproc",         &showproc },
      { "version",          &version_num },
-     { "vmhproc",          &vmhproc },
      { "whatnowproc",      &whatnowproc },
      { "whomproc",         &whomproc },
+     { "bindir",           &mhbindir },
+     { "libexecdir",       &mhlibexecdir },
+     { "libdir",           &mhlibexecdir },
      { "etcdir",           &mhetcdir },
-     { "libdir",           &mhlibdir },
+     { "docdir",           &mhdocdir },
      { "localmbox",       &localmbox },
      { "sbackup",          &sbackup },
      { "datalocking",      &datalocking },
@@ -173,6 +177,10 @@ main(int argc, char **argv)
            }
        } else {
            comps[compp++] = cp;
+           if (strcmp("localmbox", cp) == 0 && ! localmbox_primed) {
+               localmbox = getlocalmbox();
+               localmbox_primed = 1;
+           }
        }
     }
 
@@ -186,18 +194,25 @@ main(int argc, char **argv)
            advise(NULL, "-%scomponents ignored with -all",
                   components ? "" : "no");
 
-       /* print all entries in context/profile list */
+       /* Print all entries in context/profile list.  That does not
+          include entries in mts.conf, such as spoollocking. */
        for (np = m_defs; np; np = np->n_next)
            printf("%s: %s\n", np->n_name, np->n_field);
 
     } else if (debug) {
        struct proc *ps;
 
-       /* Need to see if datalocking was set in profile. */
+       /* 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);
+
        /* Also set localmbox here */
-       localmbox = getlocalmbox();
+       if (! localmbox_primed) {
+           localmbox = getlocalmbox();
+           localmbox_primed = 1;
+       }
 
        /*
         * Print the current value of everything in
@@ -214,6 +229,11 @@ main(int argc, char **argv)
        for (i = 0; i < compp; i++)  {
            register char *value;
 
+           if (! strcmp ("spoollocking", comps[i])) {
+               /* In case spoollocking was set in mts.conf. */
+               mts_init(invo_name);
+            }
+
            value = context_find (comps[i]);
            if (!value)
                value = p_find (comps[i]);