[PATCH 1/1] diff-highlight: highlight range-diff
From: Jack Bates via GitGitGadget <hidden>
Date: 2019-12-29 15:49:58
Subsystem:
the rest · Maintainer:
Linus Torvalds
From: Jack Bates via GitGitGadget <hidden>
Date: 2019-12-29 15:49:58
Subsystem:
the rest · Maintainer:
Linus Torvalds
From: Jack Bates <redacted>
Piping `git range-diff` through diff-highlight currently has no effect,
for two reasons:
1. There are ANSI escapes before and after the `@@` hunk headers (when
color is enabled) which diff-highlight fails to match. One solution
is to match both escapes (`/^$COLOR*\@\@$COLOR* /`). This patch
drops the trailing space from the existing pattern instead.
2. Unlike `git log`, `git range-diff` diffs are indented, which
diff-highlight also fails to match. This patch allows hunk headers
preceded by any amount of whitespace, and then skips past that
indentation when parsing subsequent lines, by reusing the machinery
that handles the --graph output.
Signed-off-by: Jack Bates <redacted>
---
contrib/diff-highlight/DiffHighlight.pm | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/contrib/diff-highlight/DiffHighlight.pm b/contrib/diff-highlight/DiffHighlight.pm
index e2589922a6..74f53e53c9 100644
--- a/contrib/diff-highlight/DiffHighlight.pm
+++ b/contrib/diff-highlight/DiffHighlight.pm@@ -90,7 +90,8 @@ sub handle_line { if (!$in_hunk) { $line_cb->($orig); - $in_hunk = /^$COLOR*\@\@ /; + $in_hunk = /^( *)$COLOR*\@\@/; + $graph_indent = length($1); } elsif (/^$COLOR*-/) { push @removed, $orig;
--
gitgitgadget