patch: make it able to create files (again)

I broke patch's ability to create files in November, and nobody noticed in
the ensuing 11 months.  Sigh.

Signed-off-by: Rob Landley <rob@landley.net>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Rob Landley 2011-08-22 04:58:32 +02:00 committed by Denys Vlasenko
parent 251fc70e97
commit c5f7847659
2 changed files with 3 additions and 6 deletions

View File

@ -70,8 +70,7 @@ struct double_list {
// Free all the elements of a linked list // Free all the elements of a linked list
// Call freeit() on each element before freeing it. // Call freeit() on each element before freeing it.
static static void dlist_free(struct double_list *list, void (*freeit)(void *data))
void dlist_free(struct double_list *list, void (*freeit)(void *data))
{ {
while (list) { while (list) {
void *pop = list; void *pop = list;
@ -83,8 +82,7 @@ void dlist_free(struct double_list *list, void (*freeit)(void *data))
} }
// Add an entry before "list" element in (circular) doubly linked list // Add an entry before "list" element in (circular) doubly linked list
static static struct double_list *dlist_add(struct double_list **list, char *data)
struct double_list *dlist_add(struct double_list **list, char *data)
{ {
struct double_list *llist; struct double_list *llist;
struct double_list *line = xmalloc(sizeof(*line)); struct double_list *line = xmalloc(sizeof(*line));
@ -232,7 +230,7 @@ static int apply_one_hunk(void)
else matcheof = 0; else matcheof = 0;
if (PATCH_DEBUG) fdprintf(2, "HUNK:%s\n", plist->data); if (PATCH_DEBUG) fdprintf(2, "HUNK:%s\n", plist->data);
} }
matcheof = matcheof < TT.context; matcheof = !matcheof || matcheof < TT.context;
if (PATCH_DEBUG) fdprintf(2,"MATCHEOF=%c\n", matcheof ? 'Y' : 'N'); if (PATCH_DEBUG) fdprintf(2,"MATCHEOF=%c\n", matcheof ? 'Y' : 'N');

View File

@ -212,7 +212,6 @@ patching file input
666 666
" \ " \
# Currently fails
# testing "test name" "command(s)" "expected result" "file input" "stdin" # testing "test name" "command(s)" "expected result" "file input" "stdin"
testing "patch creates new file" \ testing "patch creates new file" \
'patch 2>&1; echo $?; cat testfile; rm testfile' \ 'patch 2>&1; echo $?; cat testfile; rm testfile' \