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. Signed-off-by: Bernt Hansen <bernt@xxxxxxxxx> --- gitk | 41 +++++++++++++++++++++-------------------- 1 files changed, 21 insertions(+), 20 deletions(-) diff --git a/gitk b/gitk index a0214b7..d4cd566 100755 --- a/gitk +++ b/gitk @@ -11004,7 +11004,27 @@ proc get_path_encoding {path} { return $tcl_enc } -# First check that Tcl/Tk is recent enough +# First setup up mc for translating text +## For msgcat loading, first locate the installation location. +if { [info exists ::env(GITK_MSGSDIR)] } { + ## Msgsdir was manually set in the environment. + set gitk_msgsdir $::env(GITK_MSGSDIR) +} else { + ## Let's guess the prefix from argv0. + set gitk_prefix [file dirname [file dirname [file normalize $argv0]]] + set gitk_libdir [file join $gitk_prefix share gitk lib] + set gitk_msgsdir [file join $gitk_libdir msgs] + unset gitk_prefix +} + +## Internationalization (i18n) through msgcat and gettext. See +## http://www.gnu.org/software/gettext/manual/html_node/Tcl.html +package require msgcat +namespace import ::msgcat::mc +## And eventually load the actual message catalog +::msgcat::mcload $gitk_msgsdir + +# Check that Tcl/Tk is recent enough if {[catch {package require Tk 8.4} err]} { show_error {} . [mc "Sorry, gitk cannot run with this version of Tcl/Tk.\n\ Gitk requires at least Tcl/Tk 8.4."] @@ -11096,25 +11116,6 @@ if {[tk windowingsystem] eq "aqua"} { set ctxbut <Button-3> } -## For msgcat loading, first locate the installation location. -if { [info exists ::env(GITK_MSGSDIR)] } { - ## Msgsdir was manually set in the environment. - set gitk_msgsdir $::env(GITK_MSGSDIR) -} else { - ## Let's guess the prefix from argv0. - set gitk_prefix [file dirname [file dirname [file normalize $argv0]]] - set gitk_libdir [file join $gitk_prefix share gitk lib] - set gitk_msgsdir [file join $gitk_libdir msgs] - unset gitk_prefix -} - -## Internationalization (i18n) through msgcat and gettext. See -## http://www.gnu.org/software/gettext/manual/html_node/Tcl.html -package require msgcat -namespace import ::msgcat::mc -## And eventually load the actual message catalog -::msgcat::mcload $gitk_msgsdir - catch {source ~/.gitk} font create optionfont -family sans-serif -size -12 -- 1.6.5.1.69.g36942 -- 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