From: OGAWA Hirofumi Date: Wed, 27 Sep 2006 03:32:19 GMT Subject: Re: [PATCH] gitk: Fix nextfile() and add prevfile() Message-ID: <87fyeernlo.fsf@duaron.myhome.or.jp> In-Reply-To: <17689.49841.913304.878599@cargo.ozlabs.ibm.com> Paul Mackerras writes: > 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 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 --- 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 } } } _