-
-/*
- * mhparam.c -- print mh_profile values
+/* mhparam.c -- print mh_profile values
*
* Originally contributed by
* Jeffrey C Honig <Jeffrey_C_Honig@cornell.edu>
*/
#include <h/mh.h>
+#include <h/mts.h>
+#include <h/utils.h>
#define MHPARAM_SWITCHES \
X("components", 0, COMPSW) \
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;
{ "mimeencodingproc", &mimeencodingproc },
{ "moreproc", &moreproc },
{ "msgprot", &msgprot },
- { "mshproc", &mshproc },
{ "packproc", &packproc },
{ "postproc", &postproc },
{ "rmmproc", &rmmproc },
{ "showmimeproc", &showmimeproc },
{ "showproc", &showproc },
{ "version", &version_num },
- { "vmhproc", &vmhproc },
{ "whatnowproc", &whatnowproc },
{ "whomproc", &whomproc },
+ { "bindir", &mhbindir },
+ { "libexecdir", &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 },
/*
* static prototypes
*/
-static char *p_find(char *);
+static char *p_find(char *) PURE;
int
main(int argc, char **argv)
{
- int i, compp = 0, missed = 0;
+ int i, compp = 0;
+ bool missed;
int all = 0, debug = 0;
int components = -1;
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;
}
} else {
comps[compp++] = cp;
+ if (strcmp("localmbox", cp) == 0 && ! localmbox_primed) {
+ localmbox = getlocalmbox();
+ localmbox_primed = 1;
+ }
}
}
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 {
+ missed = false;
+ 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)
if (components)
printf("%s: ", comps[i]);
- printf("%s\n", value);
+ puts(value);
} else
- missed++;
+ missed = true;
}
}
-
- done (missed);
- return 1;
+
+ done(missed);
}
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;