From 5dc9eda8fddc543ffbadf2ccbad69fc4d1051da3 Mon Sep 17 00:00:00 2001 From: dkf Date: Fri, 21 Feb 2003 13:32:14 +0000 Subject: * library/comdlg.tcl (FDGetFileTypes): Set an upper limit on how long a file type item description string can get due to appending of types. [Bug #617392] --- ChangeLog | 4 ++++ library/comdlg.tcl | 12 ++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0b33e59..82e94ee 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2003-02-21 Donal K. Fellows + * library/comdlg.tcl (FDGetFileTypes): Set an upper limit on how + long a file type item description string can get due to appending + of types. [Bug #617392] + * tests/panedwindow.test (panedwindow-30.1): * generic/tkPanedWindow.c (DisplayPanedWindow, DisplayProxyWindow): Use the window's depth, not the screen's default depth. [Bug #671122] diff --git a/library/comdlg.tcl b/library/comdlg.tcl index cb2af18..9cc5d74 100644 --- a/library/comdlg.tcl +++ b/library/comdlg.tcl @@ -3,7 +3,7 @@ # Some functions needed for the common dialog boxes. Probably need to go # in a different file. # -# RCS: @(#) $Id: comdlg.tcl,v 1.8 2001/08/01 16:21:11 dgp Exp $ +# RCS: @(#) $Id: comdlg.tcl,v 1.9 2003/02/21 13:32:14 dkf Exp $ # # Copyright (c) 1996 Sun Microsystems, Inc. # @@ -281,13 +281,21 @@ proc ::tk::FDGetFileTypes {string} { set name "$label (" set sep "" + set doAppend 1 foreach ext $fileTypes($label) { if {[string equal $ext ""]} { continue } regsub {^[.]} $ext "*." ext if {![info exists hasGotExt($label,$ext)]} { - append name $sep$ext + if {$doAppend} { + if {[string length $sep] && [string length $name]>40} { + set doAppend 0 + append name $sep... + } else { + append name $sep$ext + } + } lappend exts $ext set hasGotExt($label,$ext) 1 } -- cgit v0.12