#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;
{ "foldprot", &foldprot },
{ "formatproc", &formatproc },
{ "incproc", &incproc },
- { "installproc", &installproc },
{ "lproc", &lproc },
{ "mailproc", &mailproc },
{ "mhlproc", &mhlproc },
{ "etcdir", &mhetcdir },
{ "libdir", &mhlibdir },
{ "sbackup", &sbackup },
+ { "lockmethod", &lockmethod },
{ NULL, NULL },
};
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;