From 22042ac17d28b7e80420612e880f6f4e3130db65 Mon Sep 17 00:00:00 2001 From: dkf Date: Sun, 31 Oct 2004 16:43:27 +0000 Subject: Make [info globals ::foo] work. [Bug 1057461] --- ChangeLog | 6 ++++++ generic/tclCmdIL.c | 12 ++++++++++-- tests/info.test | 6 +++++- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index e6a9b96..8b346e1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2004-10-31 Donal K. Fellows + + * generic/tclCmdIL.c (InfoGlobalsCmd): + * tests/info.test (info-8.4): Strip leading global-namespace + specifiers from the pattern argument. [Bug 1057461] + 2004-10-30 Miguel Sofer * generic/tclCmdAH.c (Tcl_CatchObjCmd): removed erroneous comment diff --git a/generic/tclCmdIL.c b/generic/tclCmdIL.c index c692ce7..5951df7 100644 --- a/generic/tclCmdIL.c +++ b/generic/tclCmdIL.c @@ -15,7 +15,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclCmdIL.c,v 1.47.2.3 2004/10/14 15:28:38 dkf Exp $ + * RCS: @(#) $Id: tclCmdIL.c,v 1.47.2.4 2004/10/31 16:43:30 dkf Exp $ */ #include "tclInt.h" @@ -1082,7 +1082,15 @@ InfoGlobalsCmd(dummy, interp, objc, objv) if (objc == 2) { pattern = NULL; } else if (objc == 3) { - pattern = Tcl_GetString(objv[2]); + pattern = Tcl_GetString(objv[2]); + /* + * Strip leading global-namespace qualifiers. [Bug 1057461] + */ + if (pattern[0] == ':' && pattern[1] == ':') { + while (*pattern == ':') { + pattern++; + } + } } else { Tcl_WrongNumArgs(interp, 2, objv, "?pattern?"); return TCL_ERROR; diff --git a/tests/info.test b/tests/info.test index 715f9ae..27e6edc 100644 --- a/tests/info.test +++ b/tests/info.test @@ -11,7 +11,7 @@ # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # -# RCS: @(#) $Id: info.test,v 1.24.2.1 2003/03/27 13:11:14 dkf Exp $ +# RCS: @(#) $Id: info.test,v 1.24.2.2 2004/10/31 16:43:30 dkf Exp $ if {[lsearch [namespace children] ::tcltest] == -1} { package require tcltest @@ -291,6 +291,10 @@ test info-8.2 {info globals option} { test info-8.3 {info globals option} { list [catch {info globals 1 2} msg] $msg } {1 {wrong # args: should be "info globals ?pattern?"}} +test info-8.4 {info globals option: may have leading namespace qualifiers} { + set x 0 + list [info globals x] [info globals :x] [info globals ::x] [info globals :::x] [info globals ::::x] +} {x {} x x x} test info-9.1 {info level option} { info level -- cgit v0.12