summaryrefslogtreecommitdiffstats
path: root/generic
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2017-05-04 20:40:15 (GMT)
committerdgp <dgp@users.sourceforge.net>2017-05-04 20:40:15 (GMT)
commit1dd9e5410409e738a9965f15b8d2bbe397438345 (patch)
treefb37b5252a82e028e81da8dc74575a98d14f4ca0 /generic
parent9a454635ecd23f4e1976376f84adf53755d6517e (diff)
parent2d302090fb3a5abcff4a3346629a4cadb465adc4 (diff)
downloadtcl-1dd9e5410409e738a9965f15b8d2bbe397438345.zip
tcl-1dd9e5410409e738a9965f15b8d2bbe397438345.tar.gz
tcl-1dd9e5410409e738a9965f15b8d2bbe397438345.tar.bz2
merge 8.6
Diffstat (limited to 'generic')
-rw-r--r--generic/tclPathObj.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/generic/tclPathObj.c b/generic/tclPathObj.c
index 20f41a3..31ed68e 100644
--- a/generic/tclPathObj.c
+++ b/generic/tclPathObj.c
@@ -921,7 +921,17 @@ TclJoinPath(
if (res != NULL) {
TclDecrRefCount(res);
}
- return TclNewFSPathObj(elt, str, len);
+
+ if (PATHFLAGS(elt)) {
+ return TclNewFSPathObj(elt, str, len);
+ }
+ if (TCL_PATH_ABSOLUTE != Tcl_FSGetPathType(elt)) {
+ return TclNewFSPathObj(elt, str, len);
+ }
+ (void) Tcl_FSGetNormalizedPath(NULL, elt);
+ if (elt == PATHOBJ(elt)->normPathPtr) {
+ return TclNewFSPathObj(elt, str, len);
+ }
}
}