summaryrefslogtreecommitdiff
path: root/add-interactive.c
diff options
context:
space:
mode:
Diffstat (limited to 'add-interactive.c')
-rw-r--r--add-interactive.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/add-interactive.c b/add-interactive.c
index f395d54..034c1dc 100644
--- a/add-interactive.c
+++ b/add-interactive.c
@@ -917,15 +917,18 @@ static int run_patch(struct add_i_state *s, const struct pathspec *ps,
count = list_and_choose(s, files, opts);
if (count >= 0) {
struct argv_array args = ARGV_ARRAY_INIT;
+ struct pathspec ps_selected = { 0 };
- argv_array_pushl(&args, "git", "add--interactive", "--patch",
- "--", NULL);
for (i = 0; i < files->items.nr; i++)
if (files->selected[i])
argv_array_push(&args,
files->items.items[i].string);
- res = run_command_v_opt(args.argv, 0);
+ parse_pathspec(&ps_selected,
+ PATHSPEC_ALL_MAGIC & ~PATHSPEC_LITERAL,
+ PATHSPEC_LITERAL_PATH, "", args.argv);
+ res = run_add_p(s->r, &ps_selected);
argv_array_clear(&args);
+ clear_pathspec(&ps_selected);
}
return res;