]> Lady’s Gitweb - Gitweb/commit
gitweb: Use print_diff_chunk() for both side-by-side and inline diffs
authorMichał Kiedrowicz <redacted>
Wed, 11 Apr 2012 21:18:41 +0000 (23:18 +0200)
committerLady <redacted>
Mon, 6 Apr 2026 04:51:32 +0000 (00:51 -0400)
commit6703167c3bdcb07a98274a0e3a84de32d8ceec402af92073ad37cfc1126e82ed
tree2f84a4a352c482262809f30247f123ab397b6695315c8f418bf267a18403daba
parenta2a9fe5a6916fd20cd2a18e0eb8e663b14a1db26474d7a57aac40860faecfbbe
gitweb: Use print_diff_chunk() for both side-by-side and inline diffs

This renames print_sidebyside_diff_chunk() to print_diff_chunk() and
makes use of it for both side-by-side and inline diffs.  Now diff lines
are always accumulated before they are printed.  This opens the
possibility to preprocess diff output before it's printed, which is
needed for diff refinement highlightning (implemented in incoming
patches).

If print_diff_chunk() was left as is, the new function
print_inline_diff_lines() could reorder diff lines.  It first prints all
context lines, then all removed lines and finally all added lines.  If
the diff output consisted of mixed added and removed lines, gitweb would
reorder these lines.  This is true for combined diff output, for
example:

 - removed line for first parent
 + added line for first parent
  -removed line for second parent
 ++added line for both parents

would be rendered as:

- removed line for first parent
 -removed line for second parent
+ added line for first parent
++added line for both parents

To prevent gitweb from reordering lines, print_diff_chunk() calls
print_diff_lines() as soon as it detects that both added and removed
lines are present and there was a class change, and at the end of chunk.

Signed-off-by: Michał Kiedrowicz <redacted>
Signed-off-by: Junio C Hamano <redacted>
gitweb.perl
This page took 0.083968 seconds and 4 git commands to generate.