#include <h/mh.h>
#include <pwd.h>
-extern char *mhetcdir;
-
/*
** Find the location of a format or configuration
**
** 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.
+** 3) Next, check in mmh directory.
+** 4) Next, check in mmh `etc' directory.
+** 5) As fall-back, return `file' unchanged.
*/
char *
etcpath(char *file)
char *pp;
struct passwd *pw;
- context_read();
+ /* XXX: here was: ``context_read();'' -- why? */
if (*file == '~') {
/* Expand `~user' */
if ((cp = strchr(pp = file + 1, '/')))
return file;
}
- /* Check nmh Mail directory */
- strncpy(epath, toabsdir(file), sizeof epath);
+ /* Check mmh directory */
+ snprintf(epath, sizeof epath, "%s/%s", mmhpath, file);
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);
+ if (access(epath, R_OK) != NOTOK)
+ return epath;
+
+ /* The fall-back */
+ return file;
}
expanddir(char *d)
{
static char buf[BUFSIZ];
+ int len;
if (*d == '/') {
strcpy(buf, d);
} else {
getcwd(buf, sizeof buf);
- int len = strlen(buf);
+ len = strlen(buf);
snprintf(buf+len, sizeof buf - len, "/%s", d);
}
packpath(buf);