diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | Src/builtin.c | 6 |
2 files changed, 9 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog index 5307eaa6d..c389b936d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2015-02-15 Barton E. Schaefer <schaefer@zsh.org> + + * 34551: Src/builtin.c: Avoid adding an extra "/" to the + target path in cd_try_chdir() when the current directory is "/" + 2015-02-14 Barton E. Schaefer <schaefer@zsh.org> * 34543: Src/input.c, Src/lex.c: Fix crash on garbage bytes diff --git a/Src/builtin.c b/Src/builtin.c index c4e4b94fd..614b17d7e 100644 --- a/Src/builtin.c +++ b/Src/builtin.c @@ -1093,9 +1093,11 @@ cd_try_chdir(char *pfix, char *dest, int hard) } else { int pfl = strlen(pfix); dlen = strlen(pwd); - + if (dlen == 1 && *pwd == '/') + dlen = 0; buf = zalloc(dlen + pfl + strlen(dest) + 3); - strcpy(buf, pwd); + if (dlen) + strcpy(buf, pwd); buf[dlen] = '/'; strcpy(buf + dlen + 1, pfix); buf[dlen + 1 + pfl] = '/'; |