Completely reworked the path convertion functions
[mmh] / sbr / utils.c
index 5c1253d..1cd3dc9 100644 (file)
@@ -70,16 +70,18 @@ pwd(void)
 
        if (!getcwd(curwd, PATH_MAX)) {
                admonish(NULL, "unable to determine working directory");
-               if (!mypath || !*mypath
-                       || (strcpy(curwd, mypath), chdir(curwd)) == -1) {
+               if (!mypath || !*mypath ||
+                               (strcpy(curwd, mypath), chdir(curwd)) == -1) {
                        strcpy(curwd, "/");
                        chdir(curwd);
                }
                return curwd;
        }
 
-       if ((cp = curwd + strlen(curwd) - 1) > curwd && *cp == '/')
+       if ((cp = curwd + strlen(curwd) - 1) > curwd && *cp == '/') {
+               /* strip trailing slash */
                *cp = '\0';
+       }
 
        return curwd;
 }
@@ -87,6 +89,7 @@ pwd(void)
 /*
 ** add   -- If "s1" is NULL, this routine just creates a
 **       -- copy of "s2" into newly malloc'ed memory.
+**       -- (use getcpy() instead in this case)
 **       --
 **       -- If "s1" is not NULL, then copy the concatenation
 **       -- of "s1" and "s2" (note the order) into newly