X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/703b7d98727c1f7e1e76434a04a3125d76d7d168..4dc32bd4c12c4bdba806e91d0319ea677cd87362:/uip/mhparam.c diff --git a/uip/mhparam.c b/uip/mhparam.c index 4dcdc387..8a276f72 100644 --- a/uip/mhparam.c +++ b/uip/mhparam.c @@ -12,27 +12,68 @@ #include +#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; -char *slink = LINK; - -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 + ; + +char *sasl = +#ifdef CYRUS_SASL + "cyrus_sasl"; +#else + ""; +#endif + +char *tls = +#ifdef TLS_SUPPORT + "tls"; +#else + ""; +#endif + +char *mimetypeproc = +#ifdef MIMETYPEPROC + MIMETYPEPROC; +#else + ""; +#endif + +char *mimeencodingproc = +#ifdef MIMEENCODINGPROC + MIMEENCODINGPROC; +#else + ""; +#endif struct proc { char *p_name; @@ -40,36 +81,38 @@ struct proc { }; 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 }, - { "moreproc", &moreproc }, - { "msgprot", &msgprot }, - { "mshproc", &mshproc }, - { "packproc", &packproc }, - { "postproc", &postproc }, - { "rmmproc", &rmmproc }, - { "sendproc", &sendproc }, - { "showmimeproc", &showmimeproc }, - { "showproc", &showproc }, - { "version", &version_num }, - { "vmhproc", &vmhproc }, - { "whatnowproc", &whatnowproc }, - { "whomproc", &whomproc }, - { "etcdir", &mhetcdir }, - { "libdir", &mhlibdir }, - { "sbackup", &sbackup }, - { "link", &slink }, - { NULL, NULL }, + { "context", &context }, + { "mh-sequences", &mh_seq }, + { "buildmimeproc", &buildmimeproc }, + { "fileproc", &fileproc }, + { "foldprot", &foldprot }, + { "formatproc", &formatproc }, + { "incproc", &incproc }, + { "lproc", &lproc }, + { "mailproc", &mailproc }, + { "mhlproc", &mhlproc }, + { "mimetypeproc", &mimetypeproc }, + { "mimeencodingproc", &mimeencodingproc }, + { "moreproc", &moreproc }, + { "msgprot", &msgprot }, + { "mshproc", &mshproc }, + { "packproc", &packproc }, + { "postproc", &postproc }, + { "rmmproc", &rmmproc }, + { "sendproc", &sendproc }, + { "showmimeproc", &showmimeproc }, + { "showproc", &showproc }, + { "version", &version_num }, + { "vmhproc", &vmhproc }, + { "whatnowproc", &whatnowproc }, + { "whomproc", &whomproc }, + { "etcdir", &mhetcdir }, + { "libdir", &mhlibdir }, + { "sbackup", &sbackup }, + { "lockmethod", &lockmethod }, + { "sasl", &sasl }, + { "tls", &tls }, + { NULL, NULL }, }; @@ -88,10 +131,7 @@ main(int argc, char **argv) char *cp, buf[BUFSIZ], **argp; char **arguments, *comps[MAXARGS]; - invo_name = r1bindex (argv[0], '/'); - - /* read user profile/context */ - context_read(); + if (nmh_init(argv[0], 1)) { return 1; } arguments = getarguments (invo_name, argc, argv, 1); argp = arguments; @@ -109,10 +149,10 @@ main(int argc, char **argv) snprintf (buf, sizeof(buf), "%s [profile-components] [switches]", invo_name); print_help (buf, switches, 1); - done (1); + done (0); case VERSIONSW: print_version(invo_name); - done (1); + done (0); case COMPSW: components = 1; @@ -190,7 +230,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;