Signed-off-by: Christian Couder <[email protected]>
---
 apply.c | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

diff --git a/apply.c b/apply.c
index 86e0d20..7cee834 100644
--- a/apply.c
+++ b/apply.c
@@ -4718,8 +4718,11 @@ int apply_all_patches(struct apply_state *state,
 
                if (!strcmp(arg, "-")) {
                        res = apply_patch(state, 0, "<stdin>", options);
-                       if (res < 0)
+                       if (res < 0) {
+                               if (state->lock_file)
+                                       rollback_lock_file(state->lock_file);
                                return -1;
+                       }
                        errs |= res;
                        read_stdin = 0;
                        continue;
@@ -4734,16 +4737,22 @@ int apply_all_patches(struct apply_state *state,
                read_stdin = 0;
                set_default_whitespace_mode(state);
                res = apply_patch(state, fd, arg, options);
-               if (res < 0)
+               if (res < 0) {
+                       if (state->lock_file)
+                               rollback_lock_file(state->lock_file);
                        return -1;
+               }
                errs |= res;
                close(fd);
        }
        set_default_whitespace_mode(state);
        if (read_stdin) {
                res = apply_patch(state, 0, "<stdin>", options);
-               if (res < 0)
+               if (res < 0) {
+                       if (state->lock_file)
+                               rollback_lock_file(state->lock_file);
                        return -1;
+               }
                errs |= res;
        }
 
@@ -4757,11 +4766,14 @@ int apply_all_patches(struct apply_state *state,
                                   squelched),
                                squelched);
                }
-               if (state->ws_error_action == die_on_ws_error)
+               if (state->ws_error_action == die_on_ws_error) {
+                       if (state->lock_file)
+                               rollback_lock_file(state->lock_file);
                        return error(Q_("%d line adds whitespace errors.",
                                        "%d lines add whitespace errors.",
                                        state->whitespace_error),
                                     state->whitespace_error);
+               }
                if (state->applied_after_fixing_ws && state->apply)
                        warning("%d line%s applied after"
                                " fixing whitespace errors.",
-- 
2.8.1.300.g5fed0c0

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to