X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=sbr%2Fpath.c;h=f95a758fe35fae162c3c8ed0a8d2115614b8f8ff;hp=fd05f3469d955ea9f97639e7a325950365895e9b;hb=cf1205b5cbea2f0cd6ea710ec16c637df85b647c;hpb=b4c29794c12099556151d93a860ee51badae2e35 diff --git a/sbr/path.c b/sbr/path.c index fd05f34..f95a758 100644 --- a/sbr/path.c +++ b/sbr/path.c @@ -6,10 +6,10 @@ ** complete copyright information. */ +#include #include #include - -extern char *mhetcdir; +#include /* @@ -18,8 +18,9 @@ extern char *mhetcdir; ** ** 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) @@ -29,7 +30,7 @@ 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, '/'))) @@ -60,14 +61,18 @@ try_it: 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; } @@ -234,12 +239,13 @@ char * 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); @@ -280,7 +286,7 @@ toabsdir(char *path) char *cp=buf, *pp; if (!(pp = context_find("path")) || !*pp) { - adios(NULL, "Non-empty profile entry `Path' required"); + adios(EX_CONFIG, NULL, "Non-empty profile entry `Path' required"); } if (*pp != '/') { /* Path is relative to $HOME */