*/
#include <h/mh.h>
-#include <pwd.h>
-
-
-/*
-** Find the location of a format or configuration
-** file, and return its absolute pathname.
-**
-** 1) If already absolute pathname, then leave unchanged.
-** 2) Next, if it begins with ~user, then expand it.
-** 3) Next, check in nmh Mail directory.
-** 4) Next, check in nmh `etc' directory.
-*/
-char *
-etcpath(char *file)
-{
- static char epath[PATH_MAX];
- char *cp;
- char *pp;
- struct passwd *pw;
-
- context_read();
- if (*file == '~') {
- /* Expand ~username */
- if ((cp = strchr(pp = file + 1, '/')))
- *cp++ = '\0';
- if (*pp == '\0') {
- pp = mypath;
- } else {
- if ((pw = getpwnam(pp)))
- pp = pw->pw_dir;
- else {
- if (cp)
- *--cp = '/';
- goto try_it;
- }
- }
-
- snprintf(epath, sizeof epath, "%s/%s", pp, cp ? cp : "");
- if (cp)
- *--cp = '/';
-
- if (access(epath, R_OK) != NOTOK)
- return epath; /* else fall */
- }
-
-try_it:
- if (*file == '/') {
- /* If already absolute pathname, return it */
- return file;
- }
-
- /* Check nmh Mail directory */
- strncpy(epath, toabsdir(file), sizeof epath);
- if (access(epath, R_OK) != NOTOK)
- return epath;
-
- /* Check nmh `etc' directory */
- snprintf(epath, sizeof epath, NMHETCDIR"/%s", file);
- return (access(epath, R_OK) != NOTOK ? epath : file);
-}
/*
** Standard yes/no switches structure
*/
-
struct swit anoyes[] = {
{ "no", 0 },
{ "yes", 0 },
{ NULL, 0 }
};
+
/*
** nmh constants
*/
char *mhlibdir = NMHLIBDIR;
char *mhetcdir = NMHETCDIR;
+
/*
** nmh not-so constants
*/
char *mh_seq = ".mh_sequences";
#endif
+
/*
** nmh globals
*/
char *ctxpath; /* pathname of user's context */
struct node *m_defs; /* profile/context structure */
+
/*
** nmh processes
*/
** This is the program to process MIME composition files
*/
char *buildmimeproc = NMHBINDIR"/mhbuild";
+
/*
** This is the program to `cat' a file.
*/
char *AliasFile = NMHETCDIR"/MailAliases";
/*
-** File protections
-*/
-
-/*
** Folders (directories) are created with this protection (mode)
*/
char *foldprot = "700";
*/
#include <h/mh.h>
+#include <pwd.h>
+
+extern char *mhetcdir;
+
+
+/*
+** Find the location of a format or configuration
+** file, and return its absolute pathname.
+**
+** 1) If it begins with ~user, then expand it.
+** 2) Next, if already absolute pathname, then leave unchanged.
+** 3) Next, check in nmh Mail directory.
+** 4) Next, check in nmh `etc' directory.
+*/
+char *
+etcpath(char *file)
+{
+ static char epath[PATH_MAX];
+ char *cp;
+ char *pp;
+ struct passwd *pw;
+
+ context_read();
+ if (*file == '~') {
+ /* Expand `~user' */
+ if ((cp = strchr(pp = file + 1, '/')))
+ *cp++ = '\0';
+ if (*pp == '\0') {
+ pp = mypath;
+ } else {
+ if ((pw = getpwnam(pp)))
+ pp = pw->pw_dir;
+ else {
+ if (cp)
+ *--cp = '/';
+ goto try_it;
+ }
+ }
+
+ snprintf(epath, sizeof epath, "%s/%s", pp, cp ? cp : "");
+ if (cp)
+ *--cp = '/';
+
+ if (access(epath, R_OK) != NOTOK)
+ return epath; /* else fall */
+ }
+
+try_it:
+ if (*file == '/') {
+ /* absolute pathname, return it */
+ return file;
+ }
+
+ /* Check nmh Mail directory */
+ strncpy(epath, toabsdir(file), sizeof epath);
+ if (access(epath, R_OK) != NOTOK)
+ return epath;
+
+ /* Check nmh `etc' directory */
+ snprintf(epath, sizeof epath, "%s/%s", mhetcdir, file);
+ return (access(epath, R_OK) != NOTOK ? epath : file);
+}
/*