** complete copyright information.
*/
+#include <sysexits.h>
#include <h/mh.h>
#include <pwd.h>
+#include <unistd.h>
/*
** 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)
/* 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;
}
/*
-** Compactify a path name by removing unneccessary parts.
+** Compactify a path name by removing unnecessary parts.
** Removes trailing slashes. Cares to never remove all characters.
** Modifies f (never enlarges it).
**
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);
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 */