From c5f7847659ccddd27c99b300e01f36516326aa3a Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Mon, 22 Aug 2011 04:58:32 +0200 Subject: 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 Signed-off-by: Denys Vlasenko --- editors/patch.c | 8 +++----- testsuite/patch.tests | 1 - 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/editors/patch.c b/editors/patch.c index ec5b8e7ad..1f2a49b66 100644 --- a/editors/patch.c +++ b/editors/patch.c @@ -70,8 +70,7 @@ struct double_list { // Free all the elements of a linked list // Call freeit() on each element before freeing it. -static -void dlist_free(struct double_list *list, void (*freeit)(void *data)) +static void dlist_free(struct double_list *list, void (*freeit)(void *data)) { while (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 -static -struct double_list *dlist_add(struct double_list **list, char *data) +static struct double_list *dlist_add(struct double_list **list, char *data) { struct double_list *llist; struct double_list *line = xmalloc(sizeof(*line)); @@ -232,7 +230,7 @@ static int apply_one_hunk(void) else matcheof = 0; 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'); diff --git a/testsuite/patch.tests b/testsuite/patch.tests index 7cd716ce5..8caeed5bd 100755 --- a/testsuite/patch.tests +++ b/testsuite/patch.tests @@ -212,7 +212,6 @@ patching file input 666 " \ -# Currently fails # testing "test name" "command(s)" "expected result" "file input" "stdin" testing "patch creates new file" \ 'patch 2>&1; echo $?; cat testfile; rm testfile' \ -- cgit v1.2.3