diff options
| author | dgp <dgp@users.sourceforge.net> | 2017-05-01 20:25:03 (GMT) |
|---|---|---|
| committer | dgp <dgp@users.sourceforge.net> | 2017-05-01 20:25:03 (GMT) |
| commit | 262df0197b947ebc3e431b14680b1c52fb3cdefb (patch) | |
| tree | f1f237860cddc62d0bd939d7c5272cde05c048e9 /generic/tclPathObj.c | |
| parent | 5d0864fb41175752fd026bc818facf5849387c5a (diff) | |
| parent | ed853e1ffb7933562c641af3d69686df27520a8f (diff) | |
| download | tcl-262df0197b947ebc3e431b14680b1c52fb3cdefb.zip tcl-262df0197b947ebc3e431b14680b1c52fb3cdefb.tar.gz tcl-262df0197b947ebc3e431b14680b1c52fb3cdefb.tar.bz2 | |
[f9fe90d0fa] [file join] normalization. See filesystem-1.52*
Diffstat (limited to 'generic/tclPathObj.c')
| -rw-r--r-- | generic/tclPathObj.c | 12 |
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); + } } } |
