Merge branch 'maint'
[gitweb.git] / git-gui / lib / diff.tcl
index abe502d97104cb62bed308b0f5025c9d014834fb..bbbf15c875f437f486f652d204bcebf1e5f1a8e4 100644 (file)
@@ -16,7 +16,7 @@ proc clear_diff {} {
        $ui_workdir tag remove in_diff 0.0 end
 }
 
-proc reshow_diff {} {
+proc reshow_diff {{after {}}} {
        global file_states file_lists
        global current_diff_path current_diff_side
        global ui_diff
@@ -30,13 +30,13 @@ proc reshow_diff {} {
                || [lsearch -sorted -exact $file_lists($current_diff_side) $p] == -1} {
 
                if {[find_next_diff $current_diff_side $p {} {[^O]}]} {
-                       next_diff
+                       next_diff $after
                } else {
                        clear_diff
                }
        } else {
                set save_pos [lindex [$ui_diff yview] 0]
-               show_diff $p $current_diff_side {} $save_pos
+               show_diff $p $current_diff_side {} $save_pos $after
        }
 }
 
@@ -117,22 +117,22 @@ proc show_unmerged_diff {cont_info} {
        if {$merge_stages(2) eq {}} {
                set is_conflict_diff 1
                lappend current_diff_queue \
-                       [list "LOCAL: deleted\nREMOTE:\n" d======= \
+                       [list [mc "LOCAL: deleted\nREMOTE:\n"] d======= \
                            [list ":1:$current_diff_path" ":3:$current_diff_path"]]
        } elseif {$merge_stages(3) eq {}} {
                set is_conflict_diff 1
                lappend current_diff_queue \
-                       [list "REMOTE: deleted\nLOCAL:\n" d======= \
+                       [list [mc "REMOTE: deleted\nLOCAL:\n"] d======= \
                            [list ":1:$current_diff_path" ":2:$current_diff_path"]]
        } elseif {[lindex $merge_stages(1) 0] eq {120000}
                || [lindex $merge_stages(2) 0] eq {120000}
                || [lindex $merge_stages(3) 0] eq {120000}} {
                set is_conflict_diff 1
                lappend current_diff_queue \
-                       [list "LOCAL:\n" d======= \
+                       [list [mc "LOCAL:\n"] d======= \
                            [list ":1:$current_diff_path" ":2:$current_diff_path"]]
                lappend current_diff_queue \
-                       [list "REMOTE:\n" d======= \
+                       [list [mc "REMOTE:\n"] d======= \
                            [list ":1:$current_diff_path" ":3:$current_diff_path"]]
        } else {
                start_show_diff $cont_info
@@ -164,7 +164,7 @@ proc show_other_diff {path w m cont_info} {
        # - Git won't give us the diff, there's nothing to compare to!
        #
        if {$m eq {_O}} {
-               set max_sz [expr {128 * 1024}]
+               set max_sz 100000
                set type unknown
                if {[catch {
                                set type [file type $path]
@@ -218,17 +218,17 @@ proc show_other_diff {path w m cont_info} {
                                d_@
                } else {
                        if {$sz > $max_sz} {
-                               $ui_diff insert end \
-"* Untracked file is $sz bytes.
-* Showing only first $max_sz bytes.
-" d_@
+                               $ui_diff insert end [mc \
+"* Untracked file is %d bytes.
+* Showing only first %d bytes.
+" $sz $max_sz] d_@
                        }
                        $ui_diff insert end $content
                        if {$sz > $max_sz} {
-                               $ui_diff insert end "
-* Untracked file clipped here by [appname].
+                               $ui_diff insert end [mc "
+* Untracked file clipped here by %s.
 * To see the entire file, use an external editor.
-" d_@
+" [appname]] d_@
                        }
                }
                $ui_diff conf -state disabled
@@ -377,7 +377,6 @@ proc read_diff {fd cont_info} {
                        {+} {
                                if {[regexp {^\+([<>]{7} |={7})} $line _g op]} {
                                        set is_conflict_diff 1
-                                       set line [string replace $line 0 0 { }]
                                        set tags d$op
                                } else {
                                        set tags d_+