xdiff: handle appended chunks better with -W
If lines are added at the end of a file, diff -W shows the whole file. That's because get_func_line() only considers the pre-image and gives up if it sees a record index beyond its end. Consider the post-image as well to see if the added lines already make up a full function. If it doesn't then search for the previous function line by starting from the bottom of the pre-image, thereby avoiding to confuse get_func_line(). Reuse the existing label called "again", as it's exactly where we need to jump to when we're done handling the pre-context, but rename it to "post_context_calculation" in order to document its new purpose better. Reported-by: Junio C Hamano <gitster@pobox.com> Initial-patch-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
ff2981f724
commit
6d5badb238
@ -131,7 +131,7 @@ test_expect_success ' context includes end' '
|
||||
grep "^[+].*End of second part" extended.diff
|
||||
'
|
||||
|
||||
test_expect_failure ' context does not include other functions' '
|
||||
test_expect_success ' context does not include other functions' '
|
||||
test $(grep -c "^[ +-].*Begin" extended.diff) -le 2
|
||||
'
|
||||
|
||||
|
Reference in New Issue
Block a user