summaryrefslogtreecommitdiff
path: root/contrib/diff-highlight
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2018-03-21 01:56:37 -0400
committerJunio C Hamano <gitster@pobox.com>2018-03-21 10:24:19 -0700
commit009a81ed978e5dc81767cf1be6dc4ea38c112801 (patch)
tree00e0f89d882adc99c11ae464648779b109eecc62 /contrib/diff-highlight
parentfbcf99e4acd666e1c4ef4304b53d96caaf0ae3f8 (diff)
downloadgit-009a81ed978e5dc81767cf1be6dc4ea38c112801.tar.gz
diff-highlight: use flush() helper consistently
The current flush() helper only shows the queued diff but does not clear the queue. This is conceptually a bug, but it works because we only call it once at the end of the program. Let's teach it to clear the queue, which will let us use it in more places (one for now, but more in future patches). Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'contrib/diff-highlight')
-rw-r--r--contrib/diff-highlight/DiffHighlight.pm7
1 files changed, 3 insertions, 4 deletions
diff --git a/contrib/diff-highlight/DiffHighlight.pm b/contrib/diff-highlight/DiffHighlight.pm
index 663992e530..e07cd5931d 100644
--- a/contrib/diff-highlight/DiffHighlight.pm
+++ b/contrib/diff-highlight/DiffHighlight.pm
@@ -46,10 +46,7 @@ sub handle_line {
push @added, $_;
}
else {
- show_hunk(\@removed, \@added);
- @removed = ();
- @added = ();
-
+ flush();
$line_cb->($_);
$in_hunk = /^$GRAPH*$COLOR*[\@ ]/;
}
@@ -71,6 +68,8 @@ sub flush {
# Flush any queued hunk (this can happen when there is no trailing
# context in the final diff of the input).
show_hunk(\@removed, \@added);
+ @removed = ();
+ @added = ();
}
sub highlight_stdin {