Re: [PATCH] diff.c: pass sign_index to emit_line_ws_markup
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Aug 23, 2018, 14:26 UTC
- Message-ID
- <nycvar.QRO.7.76.6.1808231625510.73@tvgsbejvaqbjf.bet>
- In-Reply-To
- <20180822222548.236699-1-sbeller@google.com>
Hi Stefan,
On Wed, 22 Aug 2018, Stefan Beller wrote:
> Instead of passing the sign directly to emit_line_ws_markup, pass only the > index to lookup the sign in diff_options->output_indicators. > > Signed-off-by: Stefan Beller <sbeller@google.com>
Looks good to me!
Show 7 quoted lines
> --- > diff.c | 12 +++++------- > 1 file changed, 5 insertions(+), 7 deletions(-) > > So something like this on top of sb/range-diff-colors ? If a resend is > needed I'll squash this in (or carry it as a cleanup patch early in the > series), otherwise we could put this on top.
I'd leave this as a separate commit.
Ciao, Dscho
Show 56 quoted lines
>
> Thanks,
> Stefan
>
>
> diff --git a/diff.c b/diff.c
> index 03486c35b75..17e33d506a1 100644
> --- a/diff.c
> +++ b/diff.c
> @@ -1199,10 +1199,11 @@ static void dim_moved_lines(struct diff_options *o)
> static void emit_line_ws_markup(struct diff_options *o,
> const char *set_sign, const char *set,
> const char *reset,
> - char sign, const char *line, int len,
> + int sign_index, const char *line, int len,
> unsigned ws_rule, int blank_at_eof)
> {
> const char *ws = NULL;
> + int sign = o->output_indicators[sign_index];
>
> if (o->ws_error_highlight & ws_rule) {
> ws = diff_get_color_opt(o, DIFF_WHITESPACE);
> @@ -1282,8 +1283,7 @@ static void emit_diff_symbol_from_struct(struct diff_options *o,
> set = diff_get_color_opt(o, DIFF_FILE_OLD);
> }
> emit_line_ws_markup(o, set_sign, set, reset,
> - o->output_indicators[OUTPUT_INDICATOR_CONTEXT],
> - line, len,
> + OUTPUT_INDICATOR_CONTEXT, line, len,
> flags & (DIFF_SYMBOL_CONTENT_WS_MASK), 0);
> break;
> case DIFF_SYMBOL_PLUS:
> @@ -1327,8 +1327,7 @@ static void emit_diff_symbol_from_struct(struct diff_options *o,
> flags &= ~DIFF_SYMBOL_CONTENT_WS_MASK;
> }
> emit_line_ws_markup(o, set_sign, set, reset,
> - o->output_indicators[OUTPUT_INDICATOR_NEW],
> - line, len,
> + OUTPUT_INDICATOR_NEW, line, len,
> flags & DIFF_SYMBOL_CONTENT_WS_MASK,
> flags & DIFF_SYMBOL_CONTENT_BLANK_LINE_EOF);
> break;
> @@ -1372,8 +1371,7 @@ static void emit_diff_symbol_from_struct(struct diff_options *o,
> set = diff_get_color_opt(o, DIFF_CONTEXT_DIM);
> }
> emit_line_ws_markup(o, set_sign, set, reset,
> - o->output_indicators[OUTPUT_INDICATOR_OLD],
> - line, len,
> + OUTPUT_INDICATOR_OLD, line, len,
> flags & DIFF_SYMBOL_CONTENT_WS_MASK, 0);
> break;
> case DIFF_SYMBOL_WORDS_PORCELAIN:
> --
> 2.18.0.265.g16de1b435c9.dirty
>
>