summaryrefslogtreecommitdiffstats
path: root/win/tclWinFile.c
diff options
context:
space:
mode:
authormig <mig>2013-02-11 13:50:47 (GMT)
committermig <mig>2013-02-11 13:50:47 (GMT)
commit0055995ec13ad8f27603d140ca19d7858725ef95 (patch)
tree14f5697a44b71bd7eb3091709c9cac4fe3868025 /win/tclWinFile.c
parenteb1adf553cfd18472faa6c11b1d46434c15e064f (diff)
parent30f60173c4738c76675b58db3a7a5aaa62ca79ea (diff)
downloadtcl-mig_alloc_reform.zip
tcl-mig_alloc_reform.tar.gz
tcl-mig_alloc_reform.tar.bz2
merge trunkmig_alloc_reform
Diffstat (limited to 'win/tclWinFile.c')
-rw-r--r--win/tclWinFile.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/win/tclWinFile.c b/win/tclWinFile.c
index a4512ec..18b05d6 100644
--- a/win/tclWinFile.c
+++ b/win/tclWinFile.c
@@ -15,7 +15,6 @@
#include "tclWinInt.h"
#include "tclFileSystem.h"
#include <winioctl.h>
-#include <sys/stat.h>
#include <shlobj.h>
#include <lm.h> /* For TclpGetUserHome(). */
@@ -2476,6 +2475,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 +2621,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);