When git rebase is started with option --exec, its arguments are parsed into string_list exec and then converted into options.cmd. In following commits, action --edit-todo will be taught to use arguments passed with --exec option. Prepare options.cmd before switch (action) to make it available for the ACTION_EDIT_TODO branch of the switch. Signed-off-by: Andrei Rybak <rybak.a.v@xxxxxxxxx> --- builtin/rebase.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/builtin/rebase.c b/builtin/rebase.c index 4a20582e72..9457912f9d 100644 --- a/builtin/rebase.c +++ b/builtin/rebase.c @@ -1595,6 +1595,21 @@ int cmd_rebase(int argc, const char **argv, const char *prefix) trace2_cmd_mode(action_names[action]); } + for (i = 0; i < exec.nr; i++) + if (check_exec_cmd(exec.items[i].string)) + exit(1); + + if (exec.nr) { + int i; + + imply_interactive(&options, "--exec"); + + strbuf_reset(&buf); + for (i = 0; i < exec.nr; i++) + strbuf_addf(&buf, "exec %s\n", exec.items[i].string); + options.cmd = xstrdup(buf.buf); + } + switch (action) { case ACTION_CONTINUE: { struct object_id head; @@ -1731,10 +1746,6 @@ int cmd_rebase(int argc, const char **argv, const char *prefix) } } - for (i = 0; i < exec.nr; i++) - if (check_exec_cmd(exec.items[i].string)) - exit(1); - if (!(options.flags & REBASE_NO_QUIET)) argv_array_push(&options.git_am_opts, "-q"); @@ -1746,17 +1757,6 @@ int cmd_rebase(int argc, const char **argv, const char *prefix) options.gpg_sign_opt = xstrfmt("-S%s", gpg_sign); } - if (exec.nr) { - int i; - - imply_interactive(&options, "--exec"); - - strbuf_reset(&buf); - for (i = 0; i < exec.nr; i++) - strbuf_addf(&buf, "exec %s\n", exec.items[i].string); - options.cmd = xstrdup(buf.buf); - } - if (rebase_merges) { if (!*rebase_merges) ; /* default mode; do nothing */ -- 2.24.0.windows.2