The return value of do_recursive_merge() may be positive (indicating merge
conflicts), so let's OR later error conditions so as not to overwrite them
with 0.

This is not yet a problem, but preparing for the patches to come: we will
teach the sequencer to do rebase -i's job.

Signed-off-by: Johannes Schindelin <johannes.schinde...@gmx.de>
---
 sequencer.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/sequencer.c b/sequencer.c
index 75772b8..7953a05 100644
--- a/sequencer.c
+++ b/sequencer.c
@@ -630,7 +630,7 @@ static int do_pick_commit(enum todo_command command, struct 
commit *commit,
        const char *base_label, *next_label;
        struct commit_message msg = { NULL, NULL, NULL, NULL };
        struct strbuf msgbuf = STRBUF_INIT;
-       int res, unborn = 0, allow;
+       int res = 0, unborn = 0, allow;
 
        if (opts->no_commit) {
                /*
@@ -741,7 +741,7 @@ static int do_pick_commit(enum todo_command command, struct 
commit *commit,
        }
 
        if (!opts->strategy || !strcmp(opts->strategy, "recursive") || command 
== TODO_REVERT) {
-               res = do_recursive_merge(base, next, base_label, next_label,
+               res |= do_recursive_merge(base, next, base_label, next_label,
                                         head, &msgbuf, opts);
                if (res < 0)
                        return res;
@@ -750,7 +750,7 @@ static int do_pick_commit(enum todo_command command, struct 
commit *commit,
                struct commit_list *common = NULL;
                struct commit_list *remotes = NULL;
 
-               res = write_message(&msgbuf, git_path_merge_msg());
+               res |= write_message(&msgbuf, git_path_merge_msg());
 
                commit_list_insert(base, &common);
                commit_list_insert(next, &remotes);
@@ -787,11 +787,12 @@ static int do_pick_commit(enum todo_command command, 
struct commit *commit,
 
        allow = allow_empty(opts, commit);
        if (allow < 0) {
-               res = allow;
+               res |= allow;
                goto leave;
        }
        if (!opts->no_commit)
-               res = sequencer_commit(opts->edit ? NULL : git_path_merge_msg(),
+               res |= sequencer_commit(opts->edit ?
+                               NULL : git_path_merge_msg(),
                        opts, allow, opts->edit, 0, 0);
 
 leave:
-- 
2.10.0.windows.1.10.g803177d


Reply via email to