Code

git-gui: Paper bag fix missing translated strings
authorShawn O. Pearce <spearce@spearce.org>
Fri, 14 Sep 2007 05:50:09 +0000 (01:50 -0400)
committerShawn O. Pearce <spearce@spearce.org>
Fri, 14 Sep 2007 05:51:18 +0000 (01:51 -0400)
The Tcl expression "[append [mc Foo] Bar]" does not return the string
"FooBar" after translation; instead it is setting the variable Foo to
the value Bar, or if Foo is already defined it is appending Bar onto
the end of it.  This is *not* what we wanted to have happen here.

Tcl's join function is actually the correct function but its default
joinStr argument is a single space.  Unfortunately all of our call
sites do not want an extra space added to their string.  So we need
a small wrapper function to make the call to join with an empty
join string.  In C this is (roughly) the job of the strcat function.
Since strcat is not yet used at the global level it is a reasonable
name to use here.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
git-gui.sh
lib/blame.tcl
lib/branch_rename.tcl
lib/checkout_op.tcl
lib/choose_rev.tcl
lib/commit.tcl
lib/diff.tcl
lib/option.tcl
lib/shortcut.tcl

index 2d7a2a82ca371edd0f965aea8a82c801f6fc19dd..4682487ade27de393571e912433ece37f6816d82 100755 (executable)
@@ -96,6 +96,10 @@ proc mc {fmt args} {
        return [eval [list format $fmt] $args]
 }
 
+proc strcat {args} {
+       return [join $args {}]
+}
+
 ::msgcat::mcload $oguimsg
 unset oguimsg
 
@@ -540,7 +544,7 @@ if {![regsub {^git version } $_git_version {} _git_version]} {
                -icon error \
                -type ok \
                -title [mc "git-gui: fatal error"] \
-               -message [append [mc "Cannot parse Git version string:"] "\n\n$_git_version"]
+               -message [strcat [mc "Cannot parse Git version string:"] "\n\n$_git_version"]
        exit 1
 }
 
@@ -722,7 +726,7 @@ if {[catch {
                set _prefix [git rev-parse --show-prefix]
        } err]} {
        catch {wm withdraw .}
-       error_popup [append [mc "Cannot find the git directory:"] "\n\n$err"]
+       error_popup [strcat [mc "Cannot find the git directory:"] "\n\n$err"]
        exit 1
 }
 if {![file isdirectory $_gitdir] && [is_Cygwin]} {
@@ -730,26 +734,26 @@ if {![file isdirectory $_gitdir] && [is_Cygwin]} {
 }
 if {![file isdirectory $_gitdir]} {
        catch {wm withdraw .}
-       error_popup [append [mc "Git directory not found:"] "\n\n$_gitdir"]
+       error_popup [strcat [mc "Git directory not found:"] "\n\n$_gitdir"]
        exit 1
 }
 if {$_prefix ne {}} {
        regsub -all {[^/]+/} $_prefix ../ cdup
        if {[catch {cd $cdup} err]} {
                catch {wm withdraw .}
-               error_popup [append [mc "Cannot move to top of working directory:"] "\n\n$err"]
+               error_popup [strcat [mc "Cannot move to top of working directory:"] "\n\n$err"]
                exit 1
        }
        unset cdup
 } elseif {![is_enabled bare]} {
        if {[lindex [file split $_gitdir] end] ne {.git}} {
                catch {wm withdraw .}
-               error_popup [append [mc "Cannot use funny .git directory:"] "\n\n$_gitdir"]
+               error_popup [strcat [mc "Cannot use funny .git directory:"] "\n\n$_gitdir"]
                exit 1
        }
        if {[catch {cd [file dirname $_gitdir]} err]} {
                catch {wm withdraw .}
-               error_popup [append [mc "No working directory"] " [file dirname $_gitdir]:\n\n$err"]
+               error_popup [strcat [mc "No working directory"] " [file dirname $_gitdir]:\n\n$err"]
                exit 1
        }
 }
@@ -1658,7 +1662,7 @@ proc apply_config {} {
                                font configure $font $cn $cv
                        }
                        } err]} {
-                       error_popup [append [mc "Invalid font specified in %s:" "gui.$name"] "\n\n$err"]
+                       error_popup [strcat [mc "Invalid font specified in %s:" "gui.$name"] "\n\n$err"]
                }
                foreach {cn cv} [font configure $font] {
                        font configure ${font}bold $cn $cv
index d14805e929e2791ebd130ebb4a39c4e1e99dd3fb..a911c3c77deff7a01419cccc7c4e69905d4ceb7b 100644 (file)
@@ -784,16 +784,16 @@ method _showcommit {cur_w lno} {
                }
 
                $w_cviewer insert end "commit $cmit\n" header_key
-               $w_cviewer insert end [append [mc "Author:"] "\t"] header_key
+               $w_cviewer insert end [strcat [mc "Author:"] "\t"] header_key
                $w_cviewer insert end "$author_name $author_email" header_val
                $w_cviewer insert end "  $author_time\n" header_val
 
-               $w_cviewer insert end [append [mc "Committer:"] "\t"] header_key
+               $w_cviewer insert end [strcat [mc "Committer:"] "\t"] header_key
                $w_cviewer insert end "$committer_name $committer_email" header_val
                $w_cviewer insert end "  $committer_time\n" header_val
 
                if {$file ne $path} {
-                       $w_cviewer insert end [append [mc "Original File:"] "\t"] header_key
+                       $w_cviewer insert end [strcat [mc "Original File:"] "\t"] header_key
                        $w_cviewer insert end "[escape_path $file]\n" header_val
                }
 
@@ -907,18 +907,18 @@ method _open_tooltip {cur_w} {
                catch {set summary     $header($cmit,summary)}
                catch {set author_time [foramt_date $header($cmit,author-time)]}
 
-               $tooltip_t insert end [append [mc "Originally By:"] "\n"] section_header
+               $tooltip_t insert end [strcat [mc "Originally By:"] "\n"] section_header
                $tooltip_t insert end "commit $cmit\n"
                $tooltip_t insert end "$author_name  $author_time\n"
                $tooltip_t insert end "$summary\n"
 
                if {$file ne $path} {
-                       $tooltip_t insert end [append [mc "In File:"] " "] section_header
+                       $tooltip_t insert end [strcat [mc "In File:"] " "] section_header
                        $tooltip_t insert end "$file\n"
                }
 
                $tooltip_t insert end "\n"
-               $tooltip_t insert end [append [mc "Copied Or Moved Here By:"] "\n"] section_header
+               $tooltip_t insert end [strcat [mc "Copied Or Moved Here By:"] "\n"] section_header
                $tooltip_t insert end $save
        }
 
index d6f040e7a24f50709174f1a62283252f5c3fe9a6..166538808f461275075e2b03c56ddc15b5813e1a 100644 (file)
@@ -114,7 +114,7 @@ method _rename {} {
                        -type ok \
                        -title [wm title $w] \
                        -parent $w \
-                       -message [append [mc "Failed to rename '%s'." $oldname] "\n\n$err"]
+                       -message [strcat [mc "Failed to rename '%s'." $oldname] "\n\n$err"]
                return
        }
 
index a011044f90039e1063a90c233747bb150d24bd20..f24396692474e3da66f9502b2f06f13583a3deeb 100644 (file)
@@ -236,7 +236,7 @@ method _update_ref {} {
                if {[catch {
                                git update-ref -m $reflog_msg $ref $new $cur
                        } err]} {
-                       _error $this [append [mc "Failed to update '%s'." $newbranch] "\n\n$err"]
+                       _error $this [strcat [mc "Failed to update '%s'." $newbranch] "\n\n$err"]
                        return 0
                }
        }
@@ -351,7 +351,7 @@ method _readtree_wait {fd} {
                set err $readtree_d
                regsub {^fatal: } $err {} err
                $::main_status stop [mc "Aborted checkout of '%s' (file level merging is required)." [_name $this]]
-               warn_popup [append [mc "File level merge required."] "
+               warn_popup [strcat [mc "File level merge required."] "
 
 $err
 
@@ -575,7 +575,7 @@ method _toplevel {title} {
 }
 
 method _fatal {err} {
-       error_popup [append [mc "Failed to set current branch.
+       error_popup [strcat [mc "Failed to set current branch.
 
 This working directory is only partially switched.  We successfully updated your files, but failed to update an internal Git file.
 
index 5e833a53764ad495f5d7753eb52673e02b73289e..a063c5bc49fc9bad58f7fd78e7446a097ce86b88 100644 (file)
@@ -314,7 +314,7 @@ method commit_or_die {} {
                }
 
                set top [winfo toplevel $w]
-               set msg [append [mc "Invalid revision: %s" [get $this]] "\n\n$err"]
+               set msg [strcat [mc "Invalid revision: %s" [get $this]] "\n\n$err"]
                tk_messageBox \
                        -icon error \
                        -type ok \
index a037c4f7d0d9c186ba76a93731ce51a3aa169da1..7099f5c6f79a72e75b83cfdc7432249476c492cb 100644 (file)
@@ -46,7 +46,7 @@ You are currently in the middle of a merge that has not been fully completed.  Y
                        }
                        set msg [string trim $msg]
                } err]} {
-           error_popup [append [mc "Error loading commit data for amend:"] "\n\n$err"]
+               error_popup [strcat [mc "Error loading commit data for amend:"] "\n\n$err"]
                return
        }
 
@@ -73,12 +73,12 @@ proc committer_ident {} {
 
        if {$GIT_COMMITTER_IDENT eq {}} {
                if {[catch {set me [git var GIT_COMMITTER_IDENT]} err]} {
-                       error_popup [append [mc "Unable to obtain your identity:"] "\n\n$err"]
+                       error_popup [strcat [mc "Unable to obtain your identity:"] "\n\n$err"]
                        return {}
                }
                if {![regexp {^(.*) [0-9]+ [-+0-9]+$} \
                        $me me GIT_COMMITTER_IDENT]} {
-                       error_popup [append [mc "Invalid GIT_COMMITTER_IDENT:"] "\n\n$me"]
+                       error_popup [strcat [mc "Invalid GIT_COMMITTER_IDENT:"] "\n\n$me"]
                        return {}
                }
        }
@@ -254,7 +254,7 @@ proc commit_committree {fd_wt curHEAD msg} {
 
        gets $fd_wt tree_id
        if {$tree_id eq {} || [catch {close $fd_wt} err]} {
-               error_popup [append [mc "write-tree failed:"] "\n\n$err"]
+               error_popup [strcat [mc "write-tree failed:"] "\n\n$err"]
                ui_status {Commit failed.}
                unlock_index
                return
@@ -314,7 +314,7 @@ A rescan will be automatically started now.
        }
        lappend cmd <$msg_p
        if {[catch {set cmt_id [eval git $cmd]} err]} {
-               error_popup [append [mc "commit-tree failed:"] "\n\n$err"]
+               error_popup [strcat [mc "commit-tree failed:"] "\n\n$err"]
                ui_status {Commit failed.}
                unlock_index
                return
@@ -336,7 +336,7 @@ A rescan will be automatically started now.
        if {[catch {
                        git update-ref -m $reflogm HEAD $cmt_id $curHEAD
                } err]} {
-               error_popup [append [mc "update-ref failed:"] "\n\n$err"]
+               error_popup [strcat [mc "update-ref failed:"] "\n\n$err"]
                ui_status {Commit failed.}
                unlock_index
                return
index c2ae4555fe438c4263402485fea73396fcfd37e6..43565e412fa6c3c96487051c3997424e7d144b22 100644 (file)
@@ -112,7 +112,7 @@ proc show_diff {path w {lno {}}} {
                        set diff_active 0
                        unlock_index
                        ui_status [mc "Unable to display %s" [escape_path $path]]
-                   error_popup [append [mc "Error loading file:"] "\n\n$err"]
+                       error_popup [strcat [mc "Error loading file:"] "\n\n$err"]
                        return
                }
                $ui_diff conf -state normal
@@ -182,7 +182,7 @@ proc show_diff {path w {lno {}}} {
                set diff_active 0
                unlock_index
                ui_status [mc "Unable to display %s" [escape_path $path]]
-               error_popup [append [mc "Error loading diff:"] "\n\n$err"]
+               error_popup [strcat [mc "Error loading diff:"] "\n\n$err"]
                return
        }
 
index 03bc08f128b5ab24d716d45b52c3480c889424b6..12e297971a01bfecd4c2007feddea5e47d2d822c 100644 (file)
@@ -308,7 +308,7 @@ proc do_restore_defaults {} {
 
 proc do_save_config {w} {
        if {[catch {save_config} err]} {
-               error_popup [append [mc "Failed to completely save options:"] "\n\n$err"]
+               error_popup [strcat [mc "Failed to completely save options:"] "\n\n$err"]
        }
        reshow_diff
        destroy $w
index d0e63a3d0e5be952fd07c77ababecf8c3a5b2aff..a7674a7aeea2e5e1be026cd6638468cc35acaf14 100644 (file)
@@ -23,7 +23,7 @@ proc do_windows_shortcut {} {
                                puts $fd " \"[file normalize $argv0]\""
                                close $fd
                        } err]} {
-                       error_popup [append [mc "Cannot write script:"] "\n\n$err"]
+                       error_popup [strcat [mc "Cannot write script:"] "\n\n$err"]
                }
        }
 }
@@ -71,7 +71,7 @@ proc do_cygwin_shortcut {} {
                                puts $fd " &\""
                                close $fd
                        } err]} {
-                       error_popup [append [mc "Cannot write script:"] "\n\n$err"]
+                       error_popup [strcat [mc "Cannot write script:"] "\n\n$err"]
                }
        }
 }
@@ -146,7 +146,7 @@ proc do_macosx_app {} {
 
                                file attributes $exe -permissions u+x,g+x,o+x
                        } err]} {
-                       error_popup [append [mc "Cannot write icon:"] "\n\n$err"]
+                       error_popup [strcat [mc "Cannot write icon:"] "\n\n$err"]
                }
        }
 }