diff options
author | dgp <dgp@users.sourceforge.net> | 2013-02-05 16:56:01 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2013-02-05 16:56:01 (GMT) |
commit | aee7d6fea477978b1e2005593c35ce7b514247fd (patch) | |
tree | 41fdcdc8c902b83d6d8fc6ac1e52a5df7faf8aba /win | |
parent | 1226e764ba9a04dca4126134e7c596ab65dac9fe (diff) | |
parent | 765de9e2ef4cdb43d97e28f02b2e0f6a1b981262 (diff) | |
download | tcl-aee7d6fea477978b1e2005593c35ce7b514247fd.zip tcl-aee7d6fea477978b1e2005593c35ce7b514247fd.tar.gz tcl-aee7d6fea477978b1e2005593c35ce7b514247fd.tar.bz2 |
[Bug 3603434] Make sure TclpObjNormalizePath() properly declares "a:/" to
be normalized, even when no "A:" drive is present on the system.
Diffstat (limited to 'win')
-rw-r--r-- | win/tclWinFile.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/win/tclWinFile.c b/win/tclWinFile.c index 19e6abd..c526eb9 100644 --- a/win/tclWinFile.c +++ b/win/tclWinFile.c @@ -2476,6 +2476,12 @@ TclpObjNormalizePath( } Tcl_DStringAppend(&dsNorm, nativePath, len); lastValidPathEnd = currentPathEndPosition; + } else if (nextCheckpoint == 0) { + /* Path starts with a drive designation + * that's not actually on the system. + * We still must normalize up past the + * first separator. [Bug 3603434] */ + currentPathEndPosition++; } } Tcl_DStringFree(&ds); @@ -2616,6 +2622,12 @@ TclpObjNormalizePath( (const char *)nativePath, (int)(sizeof(WCHAR) * len)); lastValidPathEnd = currentPathEndPosition; + } else if (nextCheckpoint == 0) { + /* Path starts with a drive designation + * that's not actually on the system. + * We still must normalize up past the + * first separator. [Bug 3603434] */ + currentPathEndPosition++; } } Tcl_DStringFree(&ds); |