summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2003-09-17 23:45:05 (GMT)
committerdgp <dgp@users.sourceforge.net>2003-09-17 23:45:05 (GMT)
commitb789bd9bde8fcc02d873ec79094b914aa2627fbc (patch)
tree8c012bdb25f7fdb644aaa9ff6419a25fb5ed77e4
parent0ddd7518115e5c1fd63e8b56a674493a4d89a065 (diff)
downloadtk-b789bd9bde8fcc02d873ec79094b914aa2627fbc.zip
tk-b789bd9bde8fcc02d873ec79094b914aa2627fbc.tar.gz
tk-b789bd9bde8fcc02d873ec79094b914aa2627fbc.tar.bz2
* generic/tkImage.c: Stopped [image create] from generating an
* tests/image.test: image command name that would overwrite an existing command name. Thanks to Michael Schlenker. [Bug 808039].
-rw-r--r--ChangeLog6
-rw-r--r--generic/tkImage.c11
-rw-r--r--tests/image.test14
3 files changed, 26 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 1536d67..2e46497 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2003-09-17 Don Porter <dgp@users.sourceforge.net>
+
+ * generic/tkImage.c: Stopped [image create] from generating an
+ * tests/image.test: image command name that would overwrite an
+ existing command name. Thanks to Michael Schlenker. [Bug 808039].
+
2003-08-19 Joe English <jenglish@users.sourceforge.net>
* generic/tkPanedWindow.c(PanedWindowWorldChanged):
Set window background from the -background resource.
diff --git a/generic/tkImage.c b/generic/tkImage.c
index 78e2a56..d813c96 100644
--- a/generic/tkImage.c
+++ b/generic/tkImage.c
@@ -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: tkImage.c,v 1.19.2.1 2003/07/07 09:43:01 dkf Exp $
+ * RCS: @(#) $Id: tkImage.c,v 1.19.2.2 2003/09/17 23:45:05 dgp Exp $
*/
#include "tkInt.h"
@@ -233,9 +233,12 @@ Tk_ImageObjCmd(clientData, interp, objc, objv)
*/
if ((objc == 3) || (*(arg = Tcl_GetString(objv[3])) == '-')) {
- dispPtr->imageId++;
- sprintf(idString, "image%d", dispPtr->imageId);
- name = idString;
+ Tcl_CmdInfo dummy;
+ do {
+ dispPtr->imageId++;
+ sprintf(idString, "image%d", dispPtr->imageId);
+ name = idString;
+ } while (Tcl_GetCommandInfo(interp, name, &dummy) != 0);
firstOption = 3;
} else {
TkWindow *topWin;
diff --git a/tests/image.test b/tests/image.test
index dd5d3dd..7e35f9a 100644
--- a/tests/image.test
+++ b/tests/image.test
@@ -7,7 +7,7 @@
# Copyright (c) 1998-1999 by Scriptics Corporation.
# All rights reserved.
#
-# RCS: @(#) $Id: image.test,v 1.8 2003/01/22 14:32:59 dkf Exp $
+# RCS: @(#) $Id: image.test,v 1.8.2.1 2003/09/17 23:45:05 dgp Exp $
package require tcltest 2.1
namespace import -force tcltest::configure
@@ -93,6 +93,18 @@ test image-1.11 {Tk_ImageCmd procedure, "create" option with same name as main w
removeFile script
set x
} {0 {1 {images may not be named the same as the main window}}}
+test image-1.11 {Tk_ImageCmd, "create" option: do not generated command name in use} -setup {
+ set i [image create bitmap]
+ regexp {^image(\d+)$} $i -> serial
+ incr serial
+ proc image$serial {} {return works}
+ set j [image create bitmap]
+} -body {
+ image$serial
+} -cleanup {
+ rename image$serial {}
+ image delete $i $j
+} -result works
test image-2.1 {Tk_ImageCmd procedure, "delete" option} {
list [catch {image delete} msg] $msg