[PATCH] Introduce entry point for launching add--interactive.
From: Kristian Høgsberg <hidden>
Date: 2016-06-15 22:43:25
Subsystem:
the rest · Maintainer:
Linus Torvalds
This refactors builtin-add.c a little to provide a unique entry point for launching git add --interactive, which will be used by builtin-commit too. If we later want to make add --interactive a builtin or change how it is launched, we just start from this function. Signed-off-by: Kristian Høgsberg <redacted> --- Oh, oops, just one more change outside builtin-commit.c. This is mostly stylistic, but it seems reasonable to reasonable to have a well-defined entry point for launcing git add --interactive. builtin-add.c | 14 +++++++++----- commit.h | 2 ++ 2 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/builtin-add.c b/builtin-add.c
index 7345479..7044d43 100644
--- a/builtin-add.c
+++ b/builtin-add.c@@ -135,6 +135,13 @@ static int git_add_config(const char *var, const char *value) return git_default_config(var, value); } +int interactive_add(void) +{ + const char *argv[2] = { "add--interactive", NULL }; + + return run_command_v_opt(argv, RUN_GIT_CMD); +} + static struct lock_file lock_file; static const char ignore_warning[] =
@@ -154,12 +161,9 @@ int cmd_add(int argc, const char **argv, const char *prefix) add_interactive++; } if (add_interactive) { - const char *args[] = { "add--interactive", NULL }; - - if (add_interactive != 1 || argc != 2) + if (argc != 2) die("add --interactive does not take any parameters"); - execv_git_cmd(args); - exit(1); + exit(interactive_add()); } git_config(git_add_config);
diff --git a/commit.h b/commit.h
index 9f640ba..64e1d4b 100644
--- a/commit.h
+++ b/commit.h@@ -129,4 +129,6 @@ create_commit(const unsigned char *tree_sha1, const char *author_info, const char *committer_info, const char *message, int length); +extern int interactive_add(void); + #endif /* COMMIT_H */
--
1.5.2.GIT