patch: make it able to create files (again)
authorRob Landley <rob@landley.net>
Mon, 22 Aug 2011 02:58:32 +0000 (04:58 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Mon, 22 Aug 2011 02:58:32 +0000 (04:58 +0200)
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>
editors/patch.c
testsuite/patch.tests

index ec5b8e7adf584cf5b04fe6ff85156c7e2f193b11..1f2a49b66368240f89f7b077d17051d0bf3294a4 100644 (file)
@@ -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');
 
index 7cd716ce510fbb8a93ea5bbafab704bdc18bb479..8caeed5bd7c9180a2df503e3682a632fba8d6299 100755 (executable)
@@ -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' \