X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/b56c88e2847c582f9b18ae5bbda44f033cd49c42..5ed8cd671b27e1388c0c7e881805775a8e5b353a:/uip/mhparam.c diff --git a/uip/mhparam.c b/uip/mhparam.c index 8a276f72..17705bc8 100644 --- a/uip/mhparam.c +++ b/uip/mhparam.c @@ -1,6 +1,4 @@ - -/* - * mhparam.c -- print mh_profile values +/* mhparam.c -- print mh_profile values * * Originally contributed by * Jeffrey C Honig @@ -11,6 +9,8 @@ */ #include +#include +#include #define MHPARAM_SWITCHES \ X("components", 0, COMPSW) \ @@ -28,53 +28,61 @@ 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; -char *sbackup = BACKUP_PREFIX; - -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 - ; +static char *sbackup = BACKUP_PREFIX; -char *sasl = +static char *datalocking = "fcntl"; +static char *localmbox = ""; +static int localmbox_primed = 0; + +extern char *spoollocking; + +static char *sasl = #ifdef CYRUS_SASL "cyrus_sasl"; #else ""; #endif -char *tls = +static char *tls = #ifdef TLS_SUPPORT "tls"; #else ""; #endif -char *mimetypeproc = +static char *mimetypeproc = #ifdef MIMETYPEPROC MIMETYPEPROC; #else ""; #endif -char *mimeencodingproc = +static char *mimeencodingproc = #ifdef MIMEENCODINGPROC MIMEENCODINGPROC; #else ""; #endif +static char *iconv = +#ifdef HAVE_ICONV + "iconv"; +#else + ""; +#endif + +static char *oauth = +#ifdef OAUTH_SUPPORT + "oauth"; +#else + ""; +#endif + struct proc { char *p_name; char **p_field; @@ -95,7 +103,6 @@ static struct proc procs [] = { { "mimeencodingproc", &mimeencodingproc }, { "moreproc", &moreproc }, { "msgprot", &msgprot }, - { "mshproc", &mshproc }, { "packproc", &packproc }, { "postproc", &postproc }, { "rmmproc", &rmmproc }, @@ -103,13 +110,19 @@ 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 }, - { "lockmethod", &lockmethod }, + { "datalocking", &datalocking }, + { "spoollocking", &spoollocking }, + { "iconv", &iconv }, + { "oauth", &oauth }, { "sasl", &sasl }, { "tls", &tls }, { NULL, NULL }, @@ -131,7 +144,7 @@ main(int argc, char **argv) char *cp, buf[BUFSIZ], **argp; char **arguments, *comps[MAXARGS]; - if (nmh_init(argv[0], 1)) { return 1; } + if (nmh_init(argv[0], 2)) { return 1; } arguments = getarguments (invo_name, argc, argv, 1); argp = arguments; @@ -171,6 +184,10 @@ main(int argc, char **argv) } } else { comps[compp++] = cp; + if (strcmp("localmbox", cp) == 0 && ! localmbox_primed) { + localmbox = getlocalmbox(); + localmbox_primed = 1; + } } } @@ -178,33 +195,55 @@ 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 */ + /* 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) { + } + + 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(); + + /* Also set localmbox here */ + if (! localmbox_primed) { + localmbox = getlocalmbox(); + localmbox_primed = 1; + } + /* * Print the current value of everything in * procs array. This will show their current * 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 { + 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(); + } value = context_find (comps[i]); if (!value) @@ -213,12 +252,12 @@ main(int argc, char **argv) if (components) printf("%s: ", comps[i]); - printf("%s\n", value); - } else + puts(value); + } else if (missed < 120) missed++; } } - + done (missed); return 1; } @@ -230,7 +269,7 @@ p_find(char *str) struct proc *ps; for (ps = procs; ps->p_name; ps++) - if (!strcasecmp (ps->p_name, str ? str : "")) + if (!strcasecmp (ps->p_name, str)) return (*ps->p_field); return NULL;