diff options
Diffstat (limited to 'diff.c')
| -rw-r--r-- | diff.c | 9 | 
1 files changed, 8 insertions, 1 deletions
| @@ -513,13 +513,20 @@ const char *diff_get_color(int diff_use_color, enum color_diff ix)  static void emit_line(FILE *file, const char *set, const char *reset, const char *line, int len)  { -	int has_trailing_newline = (len > 0 && line[len-1] == '\n'); +	int has_trailing_newline, has_trailing_carriage_return; + +	has_trailing_newline = (len > 0 && line[len-1] == '\n');  	if (has_trailing_newline)  		len--; +	has_trailing_carriage_return = (len > 0 && line[len-1] == '\r'); +	if (has_trailing_carriage_return) +		len--;  	fputs(set, file);  	fwrite(line, len, 1, file);  	fputs(reset, file); +	if (has_trailing_carriage_return) +		fputc('\r', file);  	if (has_trailing_newline)  		fputc('\n', file);  } | 
