Hi Stefan,

On Wed, 10 Oct 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 <sbel...@google.com>
> ---
> 
> I still have this patch laying around, it simplifies the diff code
> a tiny bit.

And I still like it (obviously, was my idea :-))

Thanks,
Dscho

> 
> Stefan
> 
>  diff.c | 12 +++++-------
>  1 file changed, 5 insertions(+), 7 deletions(-)
> 
> diff --git a/diff.c b/diff.c
> index f0c7557b40..9e895f2191 100644
> --- a/diff.c
> +++ b/diff.c
> @@ -1202,10 +1202,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);
> @@ -1285,8 +1286,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:
> @@ -1330,8 +1330,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;
> @@ -1375,8 +1374,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.19.0
> 
> 

Reply via email to