Pat Thoyts <patthoyts@xxxxxxxxxxxxxxxxxxxxx> writes: > Bernt Hansen <bernt@xxxxxxxxx> writes: > >>The error text generated when your version of Tcl is too old is >>translated with msgcat (mc) before msgcat is initialized. This >>causes Tcl to abort with: >> >> Error in startup script: invalid command name "mc" >> >>We now initialize msgcat first before we check the Tcl version. Msgcat >>is available since Tcl 8.1. >> > > This doesn't quite work. [file normalize] was introduced with Tcl 8.4 > and when I test this by starting it using Tcl 8.3 I get an error: > "bad option "normalize": must be atime, attributes, channels..." > from line 11014. It is probably sufficient to just drop the [file > normalize] here. On Windows $argv0 is fully qualified and > [file dirname] works ok on it. By removing the [file normalize] I get > the expected error dialog when testing with 8.3. > However, on Windows we actually get a better looking result by not > catching the [package require Tcl 8.4] and just letting Tk bring up a > standard message box with the version conflict error message. > > Well, actually if show_error just used tk_messageBox it would look > better on Windows. You're right. Thanks for catching this. When I tested this code I bumped the version number temporarily to 8.5 instead of downgrading TK to 8.3. The problem I was trying to fix was show_error using mc internally before it was initialized. Maybe it would be better to give show_error an optional parameter that controls calling mc - so that the call for the version check can just bypass the mc translation of the text and OK buttons. With this approach the code I moved around can just stay where it is and all of the existing calls to show_error will use the default parameter setting which invokes mc. Would that be a better approach? -Bernt -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html