Subject: Fix for Bug 3603434.

From: dgp <[email-masked]>
Date: Tue, 5 Feb 2013 16:47:24 +0000

---
 win/tclWinFile.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/win/tclWinFile.c b/win/tclWinFile.c
index d1078f5..8ea6548 100644
--- a/win/tclWinFile.c
+++ b/win/tclWinFile.c
@@ -2335,6 +2335,12 @@ TclpObjNormalizePath(interp, pathPtr, nextCheckpoint)
 				}
 				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);
@@ -2417,6 +2423,12 @@ TclpObjNormalizePath(interp, pathPtr, nextCheckpoint)
 			    Tcl_DStringAppend(&dsNorm, nativePath,
 					      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);
-- 
cgit v0.12