Re: [PATCH] gitk: Fix nextfile() and add prevfile()
Paul Mackerras <paulus@samba.org> writes:
Show 11 quoted lines
> OGAWA Hirofumi writes:
>
>> The current nextfile() jumps to last hunk, but I think this is not
>> intention, probably, it's forgetting to add "break;". And this
>> patch also adds prevfile(), it jumps to previous hunk.
>
> I think your prevfile isn't quite right - I don't think it will do the
> right thing if $loc is past the last entry in $difffilestart. Don't
> you want the "$ctext yview $prev" after the loop?
>
> Paul.
Sure, it's obviously useful in the case of big hunk. Thanks.
--
OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
The current nextfile() jumps to last hunk, but I think this is not
intention, probably, it's forgetting to add "break;". And this
patch also adds prevfile(), it jumps to previous hunk.
Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
---
gitk | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff -puN gitk~gitk-nextfile-fix gitk
--- git/gitk~gitk-nextfile-fix 2006-09-27 12:14:07.000000000 +0900
+++ git-hirofumi/gitk 2006-09-27 12:16:23.000000000 +0900
@@ -4440,12 +4440,27 @@ proc getblobdiffline {bdf ids} {
}
}
+proc prevfile {} {
+ global difffilestart ctext
+ set prev [lindex $difffilestart 0]
+ set here [$ctext index @0,0]
+ foreach loc $difffilestart {
+ if {[$ctext compare $loc >= $here]} {
+ $ctext yview $prev
+ return
+ }
+ set prev $loc
+ }
+ $ctext yview $prev
+}
+
proc nextfile {} {
global difffilestart ctext
set here [$ctext index @0,0]
foreach loc $difffilestart {
if {[$ctext compare $loc > $here]} {
$ctext yview $loc
+ return
}
}
}
_