Browse Source

git-gui: Maintain the same file list for diff during refresh.

I just noticed that a file was always jumping to compare against HEAD
and the index during a refresh, even if the diff viewer was comparing
the index against the working directory prior to the refresh.  The
bug turned out to be caused by a foreach loop going through all file
list names searching for the path.  Since $ui_index was the first one
searched and the file was contained in that file list the loop broke
out, leaving $w set to $ui_index when it had been set by the caller
to $ui_workdir.  Silly bug caused by using a parameter as a loop
index.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
maint
Shawn O. Pearce 18 years ago
parent
commit
5f8b70b1dc
  1. 13
      git-gui.sh

13
git-gui.sh

@ -607,16 +607,13 @@ proc show_diff {path w {lno {}}} { @@ -607,16 +607,13 @@ proc show_diff {path w {lno {}}} {
if {$diff_active || ![lock_index read]} return

clear_diff
if {$w eq {} || $lno == {}} {
foreach w [array names file_lists] {
set lno [lsearch -sorted $file_lists($w) $path]
if {$lno >= 0} {
incr lno
break
}
if {$lno == {}} {
set lno [lsearch -sorted $file_lists($w) $path]
if {$lno >= 0} {
incr lno
}
}
if {$w ne {} && $lno >= 1} {
if {$lno >= 1} {
$w tag add in_diff $lno.0 [expr {$lno + 1}].0
}


Loading…
Cancel
Save