Compare commits

...
Author SHA1 Message Date
aspect d000086bbf [f9fe90d0fa]: more path normalization in TclNewFSPathObj 2017-04-29 11:04:10 +00:00
2 changed files with 19 additions and 0 deletions
+9
View File
@@ -1278,6 +1278,15 @@ TclNewFSPathObj(
const char *p;
int state = 0, count = 0;
/* if dirPtr is already tclFsPathType, its string representation
* may not be canonical. Try to use its normPathPtr in this case.
*/
if ( (dirPtr->typePtr == &tclFsPathType)
&& (PATHOBJ(dirPtr)->cwdPtr == NULL)
&& (PATHOBJ(dirPtr)->normPathPtr != NULL) ) {
dirPtr = PATHOBJ(dirPtr)->normPathPtr;
}
/* [Bug 2806250] - this is only a partial solution of the problem.
* The PATHFLAGS != 0 representation assumes in many places that
* the "tail" part stored in the normPathPtr field is itself a
+10
View File
@@ -367,6 +367,16 @@ test filesystem-1.51 {file normalisation .. beyond root (Bug 1379287)} {
test filesystem-1.51.1 {file normalisation .. beyond root (Bug 1379287)} {
testPathEqual [file norm /../../] [file norm /]
} ok
test filesystem-1.52 {bug f9f390d0fa: file join where strep is not canonical} -body {
set x //foo
file normalize $x
file join $x bar
} -result /foo/bar
test filesystem-1.52.1 {bug f9f390d0fa: file join where strep is not canonical} -body {
set x //foo
file normalize $x
file join $x
} -result /foo
test filesystem-2.0 {new native path} {unix} {
foreach f [lsort [glob -nocomplain /usr/bin/c*]] {