index 90a063a985098976f831c37227496d612fae37c0..e5f06e435f2a8100676cd2a5b78312fcd8631717 100644 (file)
--- a/grep.c
+++ b/grep.c
if (opt->last_shown == 0) {
if (opt->show_hunk_mark)
opt->output(opt, "--\n", 3);
- else
- opt->show_hunk_mark = 1;
} else if (lno > opt->last_shown + 1)
opt->output(opt, "--\n", 3);
}
!opt->name_only)
return 0;
- /* If we are showing hunk marks, we should not do it for the
- * first match. The synchronization problem we get for this
- * constraint is not yet solved, so we disable threading in
- * this case.
- */
- if (opt->pre_context || opt->post_context)
- return 0;
-
return 1;
}
enum grep_context ctx = GREP_CONTEXT_HEAD;
xdemitconf_t xecfg;
- opt->last_shown = 0;
-
if (!opt->output)
opt->output = std_output;
+ if (opt->last_shown && (opt->pre_context || opt->post_context) &&
+ opt->output == std_output)
+ opt->show_hunk_mark = 1;
+ opt->last_shown = 0;
+
if (buffer_is_binary(buf, size)) {
switch (opt->binary) {
case GREP_BINARY_DEFAULT: