register FILE *ib; /* profile and context file pointer */
/*
+ * If this routine _is_ called again (despite the wanings in the
+ * comments above), return immediately.
+ */
+ if ( m_defs != 0 )
+ return;
+
+ /*
* Find user's home directory. Try the HOME environment variable first,
* the home directory field in the password file if that's not found.
*/
free (cp);
if (!makedir (nd))
- adios (NULL, "unable to create", nd);
+ adios (NULL, "unable to create %s", nd);
}
else if ((st.st_mode & S_IFDIR) == 0)
if ((cp = getenv ("MHCONTEXT")) == (char *)0 || *cp == '\0')
cp = context;
+ /* context is NULL if context_foil() was called to disable use of context
+ * We also support users setting explicitly setting MHCONTEXT to /dev/null.
+ * (if this wasn't specialcased then the locking would be liable to fail)
+ */
+ if (!cp || (strcmp(cp,"/dev/null") == 0)) {
+ ctxpath = NULL;
+ return;
+ }
+
ctxpath = getcpy (m_maildir (cp));
if ((ib = lkfopen (ctxpath, "r"))) {