X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=sbr%2Fpath.c;h=f95a758fe35fae162c3c8ed0a8d2115614b8f8ff;hp=e5576b89c119298e375ef29af29f8398932af241;hb=1fb6287fc4986668e8f49d7c3bdca27d53e267af;hpb=7030d7edb099bff36ded7548bb5380f7acab4f9b diff --git a/sbr/path.c b/sbr/path.c index e5576b8..f95a758 100644 --- a/sbr/path.c +++ b/sbr/path.c @@ -6,8 +6,10 @@ ** complete copyright information. */ +#include #include #include +#include /* @@ -18,6 +20,7 @@ ** 2) Next, if already absolute pathname, then leave unchanged. ** 3) Next, check in mmh directory. ** 4) Next, check in mmh `etc' directory. +** 5) As fall-back, return `file' unchanged. */ char * etcpath(char *file) @@ -65,9 +68,11 @@ try_it: /* 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; - /* TODO: What is the ultimate fallback? NULL or file? */ + /* 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 */