Re: [PATCH 10/19] diff.c: convert emit_rewrite_lines to use emit_line_*
On 05/13/2017 09:01 PM, Stefan Beller wrote:
Show 28 quoted lines
> In a later patch, I want to propose an option to detect&color
> moved lines in a diff, which cannot be done in a one-pass over
> the diff. Instead we need to go over the whole diff twice,
> because we cannot detect the first line of the two corresponding
> lines (+ and -) that got moved.
>
> So to prepare the diff machinery for two pass algorithms
> (i.e. buffer it all up and then operate on the result),
> move all emissions to places, such that the only emitting
> function is emit_line_0.
>
> This covers emit_rewrite_lines.
>
> Signed-off-by: Stefan Beller <sbeller@google.com>
> ---
> diff.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/diff.c b/diff.c
> index e4b46fee4f..369c804f03 100644
> --- a/diff.c
> +++ b/diff.c
> @@ -748,7 +748,7 @@ static void emit_rewrite_lines(struct emit_callback *ecb,
> if (!endp) {
> const char *context = diff_get_color(ecb->color_diff,
> DIFF_CONTEXT);
> - putc('\n', ecb->opt->file);
> + emit_line(ecb->opt, NULL, NULL, "\n", 1);This outputs diff_line_prefix(ecb->opt) - is that OK?
> emit_line_0(ecb->opt, context, reset, '\\',
> nneof, strlen(nneof));
> }
>