When `first` equals '\r', then it cannot equal '\n', which makes `!has_trailing_newline` always true if `first` is '\r'. Drop that check. Signed-off-by: Stefan Beller <sbeller@xxxxxxxxxx> --- diff.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/diff.c b/diff.c index 156c2aa..9d2e704 100644 --- a/diff.c +++ b/diff.c @@ -460,8 +460,7 @@ static void emit_line_0(struct diff_options *o, const char *set, const char *res if (len == 0) { has_trailing_newline = (first == '\n'); - has_trailing_carriage_return = (!has_trailing_newline && - (first == '\r')); + has_trailing_carriage_return = (first == '\r'); nofirst = has_trailing_newline || has_trailing_carriage_return; } else { has_trailing_newline = (len > 0 && line[len-1] == '\n'); -- 2.10.0.21.g1da280f.dirty