From 420fc41b7cccab7f1ee07abab2cb7c72501cf91e Mon Sep 17 00:00:00 2001 From: "Barton E. Schaefer" Date: Sat, 11 Mar 2017 14:39:17 -0800 Subject: 40832: fix $x:P when PWD=/ --- ChangeLog | 4 ++++ Src/subst.c | 12 ++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2e72fb759..9744a1ee7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2017-03-11 Barton E. Schaefer + + * 40832: Src/subst.c: fix $x:P when PWD=/ + 2017-03-11 John Leuenhagen * unposted (github pull request #15): diff --git a/Src/subst.c b/Src/subst.c index 2214b3d4f..e639c96a8 100644 --- a/Src/subst.c +++ b/Src/subst.c @@ -4336,7 +4336,11 @@ modify(char **str, char **ptr) break; case 'P': if (*copy != '/') { - copy = zhtricat(metafy(zgetcwd(), -1, META_HEAPDUP), "/", copy); + char *here = zgetcwd(); + if (here[strlen(here)-1] != '/') + copy = zhtricat(metafy(here, -1, META_HEAPDUP), "/", copy); + else + copy = dyncat(here, copy); } copy = xsymlink(copy, 1); break; @@ -4418,7 +4422,11 @@ modify(char **str, char **ptr) break; case 'P': if (**str != '/') { - *str = zhtricat(metafy(zgetcwd(), -1, META_HEAPDUP), "/", *str); + char *here = zgetcwd(); + if (here[strlen(here)-1] != '/') + *str = zhtricat(metafy(here, -1, META_HEAPDUP), "/", *str); + else + *str = dyncat(here, *str); } *str = xsymlink(*str, 1); break; -- cgit v1.3.1