@@ -576,7 +576,7 @@ static void check_blank_at_eof(mmfile_t *mf1, mmfile_t *mf2,
576
576
}
577
577
578
578
static void emit_line_0 (struct diff_options * o ,
579
- const char * set , unsigned reverse , const char * reset ,
579
+ const char * set_sign , const char * set , unsigned reverse , const char * reset ,
580
580
int first , const char * line , int len )
581
581
{
582
582
int has_trailing_newline , has_trailing_carriage_return ;
@@ -606,9 +606,12 @@ static void emit_line_0(struct diff_options *o,
606
606
if (len || !nofirst ) {
607
607
if (reverse && want_color (o -> use_color ))
608
608
fputs (GIT_COLOR_REVERSE , file );
609
- fputs (set , file );
609
+ if (set_sign && set_sign [0 ])
610
+ fputs (set_sign , file );
610
611
if (first && !nofirst )
611
612
fputc (first , file );
613
+ if (set )
614
+ fputs (set , file );
612
615
fwrite (line , len , 1 , file );
613
616
fputs (reset , file );
614
617
}
@@ -621,7 +624,7 @@ static void emit_line_0(struct diff_options *o,
621
624
static void emit_line (struct diff_options * o , const char * set , const char * reset ,
622
625
const char * line , int len )
623
626
{
624
- emit_line_0 (o , set , 0 , reset , line [0 ], line + 1 , len - 1 );
627
+ emit_line_0 (o , set , NULL , 0 , reset , line [0 ], line + 1 , len - 1 );
625
628
}
626
629
627
630
enum diff_symbol {
@@ -994,17 +997,17 @@ static void emit_line_ws_markup(struct diff_options *o,
994
997
}
995
998
996
999
if (!ws && !set_sign )
997
- emit_line_0 (o , set , 0 , reset , sign , line , len );
1000
+ emit_line_0 (o , set , NULL , 0 , reset , sign , line , len );
998
1001
else if (!ws ) {
999
1002
/* Emit just the prefix, then the rest. */
1000
- emit_line_0 (o , set_sign , !!set_sign , reset , sign , "" , 0 );
1001
- emit_line_0 (o , set , 0 , reset , 0 , line , len );
1003
+ emit_line_0 (o , set_sign , NULL , !!set_sign , reset , sign , "" , 0 );
1004
+ emit_line_0 (o , set , NULL , 0 , reset , 0 , line , len );
1002
1005
} else if (blank_at_eof )
1003
1006
/* Blank line at EOF - paint '+' as well */
1004
- emit_line_0 (o , ws , 0 , reset , sign , line , len );
1007
+ emit_line_0 (o , ws , NULL , 0 , reset , sign , line , len );
1005
1008
else {
1006
1009
/* Emit just the prefix, then the rest. */
1007
- emit_line_0 (o , set_sign ? set_sign : set , !!set_sign , reset ,
1010
+ emit_line_0 (o , set_sign ? set_sign : set , NULL , !!set_sign , reset ,
1008
1011
sign , "" , 0 );
1009
1012
ws_check_emit (line , len , ws_rule ,
1010
1013
o -> file , set , reset , ws );
@@ -1028,7 +1031,7 @@ static void emit_diff_symbol_from_struct(struct diff_options *o,
1028
1031
context = diff_get_color_opt (o , DIFF_CONTEXT );
1029
1032
reset = diff_get_color_opt (o , DIFF_RESET );
1030
1033
putc ('\n' , o -> file );
1031
- emit_line_0 (o , context , 0 , reset , '\\' ,
1034
+ emit_line_0 (o , context , NULL , 0 , reset , '\\' ,
1032
1035
nneof , strlen (nneof ));
1033
1036
break ;
1034
1037
case DIFF_SYMBOL_SUBMODULE_HEADER :
0 commit comments