]> diplodocus.org Git - nmh/blobdiff - uip/mhparam.c
Fix up the unquote test, with help from Lyndon and Ralph.
[nmh] / uip / mhparam.c
index 9e6e05c8da92cadcd5408427727d3ede45ea6ed0..a1ca28f75d3d597ffa8a458fe9dfa9fbc015c34b 100644 (file)
 
 #include <h/mh.h>
 
+#define MHPARAM_SWITCHES \
+    X("components", 0, COMPSW) \
+    X("nocomponents", 0, NCOMPSW) \
+    X("all", 0, ALLSW) \
+    X("version", 0, VERSIONSW) \
+    X("help", 0, HELPSW) \
+    X("debug", 5, DEBUGSW) \
+
+#define X(sw, minchars, id) id,
+DEFINE_SWITCH_ENUM(MHPARAM);
+#undef X
+
+#define X(sw, minchars, id) { sw, minchars, id },
+DEFINE_SWITCH_ARRAY(MHPARAM, switches);
+#undef X
+
 extern char *mhlibdir;
 extern char *mhetcdir;
 
 char *sbackup = BACKUP_PREFIX;
 
-static struct swit switches[] = {
-#define        COMPSW    0
-    { "components", 0 },
-#define        NCOMPSW   1
-    { "nocomponents", 0 },
-#define        ALLSW     2
-    { "all", 0 },
-#define VERSIONSW 3
-    { "version", 0 },
-#define        HELPSW    4
-    { "help", 0 },
-#define DEBUGSW   5
-    { "debug", -5 },
-    { NULL, 0 }
-};
+char *lockmethod =
+#if defined FCNTL_LOCKING
+    "fcntl"
+#elif defined FLOCK_LOCKING
+    "flock"
+#elif defined LOCKF_LOCKING
+    "lockf"
+#elif defined DOT_LOCKING
+    "dot"
+#else
+    "none"
+#endif
+    ;
 
 struct proc {
     char *p_name;
@@ -42,12 +56,10 @@ static struct proc procs [] = {
      { "context",       &context },
      { "mh-sequences",  &mh_seq },
      { "buildmimeproc", &buildmimeproc },
-     { "faceproc",      &faceproc },
      { "fileproc",      &fileproc },
      { "foldprot",      &foldprot },
      { "formatproc",   &formatproc },
      { "incproc",       &incproc },
-     { "installproc",   &installproc  },
      { "lproc",         &lproc },
      { "mailproc",      &mailproc },
      { "mhlproc",       &mhlproc },
@@ -67,6 +79,7 @@ static struct proc procs [] = {
      { "etcdir",        &mhetcdir },
      { "libdir",        &mhlibdir },
      { "sbackup",       &sbackup },
+     { "lockmethod",    &lockmethod },
      { NULL,            NULL },
 };
 
@@ -188,7 +201,7 @@ p_find(char *str)
     struct proc *ps;
 
     for (ps = procs; ps->p_name; ps++)
-       if (!mh_strcasecmp (ps->p_name, str))
+       if (!strcasecmp (ps->p_name, str ? str : ""))
            return (*ps->p_field);
 
     return NULL;