sequencer: use argv_array in reset_merge
authorRohit Ashiwal <rohit.ashiwal265@gmail.com>
Tue, 2 Jul 2019 09:11:27 +0000 (14:41 +0530)
committerJunio C Hamano <gitster@pobox.com>
Tue, 2 Jul 2019 19:08:08 +0000 (12:08 -0700)
Avoid using magic numbers for array size and index under `reset_merge`
function. Use `argv_array` instead. This will make code shorter and
easier to extend.

Signed-off-by: Rohit Ashiwal <rohit.ashiwal265@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
sequencer.c
index e8779c7cc5049e9aaff04e3cc1f509dedd4f4f0e..0b858ca8e0b84ebbe84641f2869a8d8c1b69fd06 100644 (file)
@@ -2734,13 +2734,18 @@ static int rollback_is_safe(void)
 
 static int reset_merge(const struct object_id *oid)
 {
-       const char *argv[4];    /* reset --merge <arg> + NULL */
+       int ret;
+       struct argv_array argv = ARGV_ARRAY_INIT;
 
-       argv[0] = "reset";
-       argv[1] = "--merge";
-       argv[2] = oid_to_hex(oid);
-       argv[3] = NULL;
-       return run_command_v_opt(argv, RUN_GIT_CMD);
+       argv_array_pushl(&argv, "reset", "--merge", NULL);
+
+       if (!is_null_oid(oid))
+               argv_array_push(&argv, oid_to_hex(oid));
+
+       ret = run_command_v_opt(argv.argv, RUN_GIT_CMD);
+       argv_array_clear(&argv);
+
+       return ret;
 }
 
 static int rollback_single_pick(struct repository *r)