Skip to content

Commit

Permalink
apply: handle "traditional" creation/deletion diff correctly.
Browse files Browse the repository at this point in the history
We deduced a GNU diff output that does not use /dev/null convention
as creation (deletion) diff correctly by looking at the lack of context
and deleted lines (added lines), but forgot to reset the new (old) name
field properly.

This was a regression when we added a workaround for --unified=0 insanity.

Signed-off-by: Junio C Hamano <junkio@cox.net>
  • Loading branch information
Junio C Hamano committed Nov 4, 2006
1 parent ba158a3 commit 6f9f3b2
Showing 1 changed file with 6 additions and 2 deletions.
8 changes: 6 additions & 2 deletions builtin-apply.c
Original file line number Diff line number Diff line change
Expand Up @@ -1043,10 +1043,14 @@ static int parse_single_patch(char *line, unsigned long size, struct patch *patc
* then not having oldlines means the patch is creation,
* and not having newlines means the patch is deletion.
*/
if (patch->is_new < 0 && !oldlines)
if (patch->is_new < 0 && !oldlines) {
patch->is_new = 1;
if (patch->is_delete < 0 && !newlines)
patch->old_name = NULL;
}
if (patch->is_delete < 0 && !newlines) {
patch->is_delete = 1;
patch->new_name = NULL;
}
}

if (0 < patch->is_new && oldlines)
Expand Down

0 comments on commit 6f9f3b2

Please sign in to comment.