Subject: gitk's back button broken (Refactor per-line part of getblobdiffline and its support)

From: Johannes Sixt <[email-masked]>
Date: Mon, 16 Dec 2013 14:56:24 +0100

To reproduce, start gitk in any repository, click a commit, then the
"back" button (left-pointing arrow button) or type Alt+Cursor-Left. The
error I get is this:

can't use non-numeric string as operand of "!"
can't use non-numeric string as operand of "!"
    while executing
"if {!$ateof} {
	set nlines [expr {[winfo height $ctext]
			  / [font metrics textfont -linespace]}]
	if {[$ctext compare "$target_scrollpos + $nlines ..."
    (procedure "maybe_scroll_ctext" line 5)
    invoked from within
"maybe_scroll_ctext ateof"
    (procedure "blobdiffmaybeseehere" line 6)
    invoked from within
"blobdiffmaybeseehere [eof $bdf]"
    (procedure "getblobdiffline" line 15)
    invoked from within
"getblobdiffline filef5ec60 5de460a2cfdd4acbadd41355a5b34dc69e93b89e"
    ("eval" body line 1)
    invoked from within
"eval $script"
    (procedure "dorunq" line 11)
    invoked from within
"dorunq"
    ("after" script)

After dismissing the error, gitk is still responsive, but does not show
diffs anymore.

The error bisects to 5de460a2c (gitk: Refactor per-line part of
getblobdiffline and its support) which is already merged downstream into git.

Could you please have a look?

-- Hannes