From 6de03f6606a051f169d86acfa3eaace8d12dc2ce Mon Sep 17 00:00:00 2001 From: dgp Date: Sat, 13 May 2006 23:21:04 +0000 Subject: * generic/tclFileName.c (TclDoGlob): Disabled the partial normalization done by the recursive glob routine, since changing the precise string of the pathname broke [glob] on some Tcl_Filesystems. [Bug 943995] --- ChangeLog | 5 +++++ generic/tclFileName.c | 12 ++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index f4b5bac..afef208 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2006-05-13 Don Porter + * generic/tclFileName.c (TclDoGlob): Disabled the partial + normalization done by the recursive glob routine, since changing the + precise string of the pathname broke [glob] on some Tcl_Filesystems. + [Bug 943995] + * generic/tclProc.c (ProcCompileProc): When a bump of the compile epoch forces the re-compile of a proc body, take care not to overwrite any Proc struct that may be referred to on the active diff --git a/generic/tclFileName.c b/generic/tclFileName.c index eb59182..0e6c35f 100644 --- a/generic/tclFileName.c +++ b/generic/tclFileName.c @@ -10,7 +10,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclFileName.c,v 1.40.2.11 2005/06/21 19:07:41 kennykb Exp $ + * RCS: @(#) $Id: tclFileName.c,v 1.40.2.12 2006/05/13 23:21:04 dgp Exp $ */ #include "tclInt.h" @@ -2346,6 +2346,9 @@ TclDoGlob(interp, separators, headPtr, tail, types) } else if (strchr(separators, *tail) == NULL) { break; } + if (tclPlatform != TCL_PLATFORM_MAC) { + Tcl_DStringAppend(headPtr, tail, 1); + } count++; } @@ -2387,7 +2390,6 @@ TclDoGlob(interp, separators, headPtr, tail, types) * trailing slash if needed. Otherwise add the slash if * this is the first absolute element, or a later relative * element. Add an extra slash if this is a UNC path. - */ if (*name == ':') { Tcl_DStringAppend(headPtr, ":", 1); @@ -2403,13 +2405,13 @@ TclDoGlob(interp, separators, headPtr, tail, types) Tcl_DStringAppend(headPtr, "/", 1); } } + */ break; - case TCL_PLATFORM_UNIX: + case TCL_PLATFORM_UNIX: { /* * Add a separator if this is the first absolute element, or * a later relative element. - */ if ((*tail != '\0') && (((length > 0) @@ -2417,7 +2419,9 @@ TclDoGlob(interp, separators, headPtr, tail, types) || ((length == 0) && (count > 0)))) { Tcl_DStringAppend(headPtr, "/", 1); } + */ break; + } } /* -- cgit v0.12