From e645a06ed98f083f07698164c56a986e56094fb3 Mon Sep 17 00:00:00 2001 From: dgp Date: Thu, 20 Aug 2009 22:09:45 +0000 Subject: * generic/tclFileName.c: Correct result from [glob */test] when * matches something like ~foo. [Bug 2837800] --- ChangeLog | 3 +++ generic/tclFileName.c | 32 ++++++++++++++++++++++++++++++-- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 451fc32..0aaed72 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2009-08-20 Don Porter + * generic/tclFileName.c: Correct result from [glob */test] when * + matches something like ~foo. [Bug 2837800] + * generic/tclPathObj.c: [Bug 2806250] Prevent the storage of strings starting with ~ in the "tail" part (normPathPtr field) of the path intrep when PATHFLAGS != 0. This establishes the assumptions relied diff --git a/generic/tclFileName.c b/generic/tclFileName.c index c621aff..ad71008 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.96 2009/01/22 06:42:33 nijtmans Exp $ + * RCS: @(#) $Id: tclFileName.c,v 1.97 2009/08/20 22:09:45 dgp Exp $ */ #include "tclInt.h" @@ -2361,14 +2361,42 @@ DoGlob( pattern, &dirOnly); *p = save; if (result == TCL_OK) { - int subdirc, i; + int subdirc, i, repair = -1; Tcl_Obj **subdirv; result = Tcl_ListObjGetElements(interp, subdirsPtr, &subdirc, &subdirv); for (i=0; result==TCL_OK && i