From ba154f21db39f6326e1369e93778cad9c1d02385 Mon Sep 17 00:00:00 2001 From: pspjuth Date: Wed, 16 Jul 2003 23:17:36 +0000 Subject: Make sure all options can be set to their default value. [Bug #697652] --- ChangeLog | 6 ++++++ generic/tkFrame.c | 7 +++++-- tests/frame.test | 33 +++++++++++++++++++++++++++++---- 3 files changed, 40 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 20c07a4..9844410 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2003-07-17 Peter Spjuth + + * tests/frame.test: + * generic/tkFrame.c (CreateFrame): Make sure all options can be set + to their default value. [Bug #697652] + 2003-07-16 Jeff Hobbs * generic/tkWindow.c (Initialize): do not free uninit'ed dstring. diff --git a/generic/tkFrame.c b/generic/tkFrame.c index f4f0a53..6be4c48 100644 --- a/generic/tkFrame.c +++ b/generic/tkFrame.c @@ -12,7 +12,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkFrame.c,v 1.15 2003/01/22 14:32:59 dkf Exp $ + * RCS: @(#) $Id: tkFrame.c,v 1.15.2.1 2003/07/16 23:17:38 pspjuth Exp $ */ #include "default.h" @@ -594,7 +594,7 @@ CreateFrame(clientData, interp, objc, objv, type, appName) if (useOption == NULL) { useOption = Tk_GetOption(new, "use", "Use"); } - if (useOption != NULL) { + if ((useOption != NULL) && (*useOption != 0)) { if (TkpUseWindow(interp, new, useOption) != TCL_OK) { goto error; } @@ -605,6 +605,9 @@ CreateFrame(clientData, interp, objc, objv, type, appName) if (colormapName == NULL) { colormapName = Tk_GetOption(new, "colormap", "Colormap"); } + if ((colormapName != NULL) && (*colormapName == 0)) { + colormapName = NULL; + } if (visualName != NULL) { visual = Tk_GetVisual(interp, new, visualName, &depth, (colormapName == NULL) ? &colormap : (Colormap *) NULL); diff --git a/tests/frame.test b/tests/frame.test index 4acd84b..e1e1e85 100644 --- a/tests/frame.test +++ b/tests/frame.test @@ -7,7 +7,7 @@ # Copyright (c) 1998-1999 by Scriptics Corporation. # All rights reserved. # -# RCS: @(#) $Id: frame.test,v 1.7 2002/07/14 05:48:46 dgp Exp $ +# RCS: @(#) $Id: frame.test,v 1.7.2.1 2003/07/16 23:17:39 pspjuth Exp $ package require tcltest 2.1 namespace import -force tcltest::configure @@ -89,8 +89,21 @@ test frame-1.7 {frame configuration options} { destroy .f set result } {1 {can't modify -container option after widget is created}} +test frame-1.8 {frame configuration options} { + # Make sure all options can be set to the default value + frame .f + set opts {} + foreach opt [.f configure] { + if {[llength $opt] == 5} { + lappend opts [lindex $opt 0] [lindex $opt 4] + } + } + eval frame .g $opts + destroy .f .g +} {} + frame .f -set i 8 +set i 9 foreach test { {-background #ff0000 #ff0000 non-existent {unknown color name "non-existent"}} @@ -141,7 +154,7 @@ test frame-2.2 {toplevel configuration options} { } {{-colormap colormap Colormap {} new} 1 {can't modify -colormap option after widget is created}} test frame-2.3 {toplevel configuration options} { catch {destroy .t} - toplevel .t -width 200 -height 100 + toplevel .t -width 200 -height 100 -colormap {} -use {} wm geometry .t +0+0 list [catch {.t configure -container 1} msg] $msg [.t configure -container] } {1 {can't modify -container option after widget is created} {-container container Container 0 0}} @@ -189,12 +202,24 @@ test frame-2.10 {toplevel configuration options} { destroy .t .x set result } {1 {A window cannot have both the -use and the -container option set.}} +test frame-2.11 {toplevel configuration options} { + # Make sure all options can be set to the default value + toplevel .f + set opts {} + foreach opt [.f configure] { + if {[llength $opt] == 5} { + lappend opts [lindex $opt 0] [lindex $opt 4] + } + } + eval toplevel .g $opts + destroy .f .g +} {} catch {destroy .t} toplevel .t -width 300 -height 150 wm geometry .t +0+0 update -set i 11 +set i 12 foreach test { {-background #ff0000 #ff0000 non-existent {unknown color name "non-existent"}} -- cgit v0.12