Code

gitk: Fix some off-by-one errors in computing which line to blame
authorPaul Mackerras <paulus@samba.org>
Mon, 27 Oct 2008 10:13:37 +0000 (21:13 +1100)
committerPaul Mackerras <paulus@samba.org>
Mon, 27 Oct 2008 10:13:37 +0000 (21:13 +1100)
commit190ec52c901b1e003f73ad97e88f4626d20a9e4e
tree089c616bc3d0f863a39838014a0681b6e2dea2e9
parent7cdc3556d1cec11582ae2a018d4052767c02e1ef
gitk: Fix some off-by-one errors in computing which line to blame

When walking back from the line where a right-click happened to the
previous hunk separator line to calculate the line number to work on,
we were counting every line including the one clicked on.  That isn't
right; if the user clicked on the line immediately after the hunk
separator then the correct line number would be the one from the
hunk separator.  Therefore this looks at the clicked-on line to work
out which parent to blame (or whether to blame the current commit),
and then looks only at the preceding lines to work out the offset from
the line number in the hunk separator.

This also fixes an off-by-one error when we are showing files rather
than diffs.  In this case diff_menu_filebase is the line number of
the banner showing the file name, so the first line of the file is
at line $diff_menu_filebase + 1.

This also simplifies the code in find_hunk_blamespec a bit and arranges
that we don't pop up the context menu if the user clicks on a file
separator line or a hunk separator line.

Signed-off-by: Paul Mackerras <paulus@samba.org>
gitk