diff options
author | René Scharfe <l.s.r@web.de> | 2016-06-09 23:54:48 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-06-09 15:27:26 -0700 |
commit | 6f8d9bccb2c3694c62d14225976689c1e8c50fa5 (patch) | |
tree | 9c3d0bdea3f28fadc16e136e5cada7e519912666 /xdiff | |
parent | 4aa2c4753d152aef810eaf3f3f4fa1df7035d9b0 (diff) | |
download | git-6f8d9bccb2c3694c62d14225976689c1e8c50fa5.tar.gz git-6f8d9bccb2c3694c62d14225976689c1e8c50fa5.tar.xz |
xdiff: fix merging of appended hunk with -W
When -W is given we search the lines between the end of the current
context and the next change for a function line. If there is none then
we merge those two hunks as they must be part of the same function.
If the next change is an appended chunk we abort the search early in
get_func_line(), however, because its line number is out of range. Fix
that by searching from the end of the pre-image in that case instead.
Reported-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>
Diffstat (limited to 'xdiff')
-rw-r--r-- | xdiff/xemit.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/xdiff/xemit.c b/xdiff/xemit.c index bfa53d3dc..49aa16ff7 100644 --- a/xdiff/xemit.c +++ b/xdiff/xemit.c @@ -246,7 +246,8 @@ int xdl_emit_diff(xdfenv_t *xe, xdchange_t *xscr, xdemitcb_t *ecb, * its new end. */ if (xche->next) { - long l = xche->next->i1; + long l = XDL_MIN(xche->next->i1, + xe->xdf1.nrec - 1); if (l <= e1 || get_func_line(xe, xecfg, NULL, l, e1) < 0) { xche = xche->next; |