Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.kernel.org/pub/scm/git/git.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'add-interactive.c')
-rw-r--r--add-interactive.c29
1 files changed, 15 insertions, 14 deletions
diff --git a/add-interactive.c b/add-interactive.c
index 396066e724..143e694724 100644
--- a/add-interactive.c
+++ b/add-interactive.c
@@ -10,16 +10,6 @@
#include "dir.h"
#include "run-command.h"
-struct add_i_state {
- struct repository *r;
- int use_color;
- char header_color[COLOR_MAXLEN];
- char help_color[COLOR_MAXLEN];
- char prompt_color[COLOR_MAXLEN];
- char error_color[COLOR_MAXLEN];
- char reset_color[COLOR_MAXLEN];
-};
-
static void init_color(struct repository *r, struct add_i_state *s,
const char *slot_name, char *dst,
const char *default_color)
@@ -36,7 +26,7 @@ static void init_color(struct repository *r, struct add_i_state *s,
free(key);
}
-static void init_add_i_state(struct add_i_state *s, struct repository *r)
+void init_add_i_state(struct add_i_state *s, struct repository *r)
{
const char *value;
@@ -54,6 +44,14 @@ static void init_add_i_state(struct add_i_state *s, struct repository *r)
init_color(r, s, "prompt", s->prompt_color, GIT_COLOR_BOLD_BLUE);
init_color(r, s, "error", s->error_color, GIT_COLOR_BOLD_RED);
init_color(r, s, "reset", s->reset_color, GIT_COLOR_RESET);
+ init_color(r, s, "fraginfo", s->fraginfo_color,
+ diff_get_color(s->use_color, DIFF_FRAGINFO));
+ init_color(r, s, "context", s->context_color,
+ diff_get_color(s->use_color, DIFF_CONTEXT));
+ init_color(r, s, "old", s->file_old_color,
+ diff_get_color(s->use_color, DIFF_FILE_OLD));
+ init_color(r, s, "new", s->file_new_color,
+ diff_get_color(s->use_color, DIFF_FILE_NEW));
}
/*
@@ -920,15 +918,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;