Will be useful to run other commands. Signed-off-by: Felipe Contreras <felipe.contreras@xxxxxxxxx> --- builtin/stage.c | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/builtin/stage.c b/builtin/stage.c index 4dcefbedba..49016b0d5f 100644 --- a/builtin/stage.c +++ b/builtin/stage.c @@ -4,12 +4,34 @@ #include "builtin.h" #include "parse-options.h" +#include "run-command.h" static const char *const stage_usage[] = { N_("git stage [options] [--] <paths>..."), NULL }; +static int rerun(int argc, const char **argv, ...) +{ + int ret; + struct strvec args = STRVEC_INIT; + va_list ap; + const char *arg; + int i; + + va_start(ap, argv); + while ((arg = va_arg(ap, const char *))) + strvec_push(&args, arg); + va_end(ap); + + for (i = 0; i < argc; i++) + strvec_push(&args, argv[i]); + + ret = run_command_v_opt(args.v, RUN_GIT_CMD); + strvec_clear(&args); + return ret; +} + int cmd_stage(int argc, const char **argv, const char *prefix) { struct option options[] = { @@ -17,7 +39,7 @@ int cmd_stage(int argc, const char **argv, const char *prefix) }; argc = parse_options(argc, argv, prefix, options, stage_usage, - PARSE_OPT_KEEP_ARGV0 | PARSE_OPT_KEEP_UNKNOWN | PARSE_OPT_KEEP_DASHDASH); + PARSE_OPT_KEEP_UNKNOWN | PARSE_OPT_KEEP_DASHDASH); - return cmd_add(argc, argv, prefix); + return rerun(argc, argv, "add", NULL); } -- 2.32.0.48.g096519100f