From: Jonathan Tan Date: Mon, 15 May 2017 19:09:40 GMT Subject: Re: [PATCH 10/19] diff.c: convert emit_rewrite_lines to use emit_line_* Message-ID: In-Reply-To: <20170514040117.25865-11-sbeller@google.com> On 05/13/2017 09:01 PM, Stefan Beller wrote: > 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 > --- > 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)); > } >