@@ -11,6 +11,7 @@ struct add_i_state {
11
11
struct repository * r ;
12
12
int use_color ;
13
13
char header_color [COLOR_MAXLEN ];
14
+ char help_color [COLOR_MAXLEN ];
14
15
};
15
16
16
17
static void init_color (struct repository * r , struct add_i_state * s ,
@@ -43,6 +44,7 @@ static void init_add_i_state(struct add_i_state *s, struct repository *r)
43
44
s -> use_color = want_color (s -> use_color );
44
45
45
46
init_color (r , s , "header" , s -> header_color , GIT_COLOR_BOLD );
47
+ init_color (r , s , "help" , s -> help_color , GIT_COLOR_BOLD_RED );
46
48
}
47
49
48
50
/*
@@ -210,6 +212,7 @@ struct list_and_choose_options {
210
212
struct list_options list_opts ;
211
213
212
214
const char * prompt ;
215
+ void (* print_help )(struct add_i_state * s );
213
216
};
214
217
215
218
#define LIST_AND_CHOOSE_ERROR (-1)
@@ -250,6 +253,11 @@ static ssize_t list_and_choose(struct add_i_state *s,
250
253
if (!input .len )
251
254
break ;
252
255
256
+ if (!strcmp (input .buf , "?" )) {
257
+ opts -> print_help (s );
258
+ continue ;
259
+ }
260
+
253
261
p = input .buf ;
254
262
for (;;) {
255
263
size_t sep = strcspn (p , " \t\r\n," );
@@ -513,12 +521,24 @@ static void print_command_item(int i, struct string_list_item *item,
513
521
item -> string + util -> prefix_length );
514
522
}
515
523
524
+ static void command_prompt_help (struct add_i_state * s )
525
+ {
526
+ const char * help_color = s -> help_color ;
527
+ color_fprintf_ln (stdout , help_color , "%s" , _ ("Prompt help:" ));
528
+ color_fprintf_ln (stdout , help_color , "1 - %s" ,
529
+ _ ("select a numbered item" ));
530
+ color_fprintf_ln (stdout , help_color , "foo - %s" ,
531
+ _ ("select item based on unique prefix" ));
532
+ color_fprintf_ln (stdout , help_color , " - %s" ,
533
+ _ ("(empty) select nothing" ));
534
+ }
535
+
516
536
int run_add_i (struct repository * r , const struct pathspec * ps )
517
537
{
518
538
struct add_i_state s = { NULL };
519
539
struct list_and_choose_options main_loop_opts = {
520
540
{ 4 , N_ ("*** Commands ***" ), print_command_item , NULL },
521
- N_ ("What now" )
541
+ N_ ("What now" ), command_prompt_help
522
542
};
523
543
struct {
524
544
const char * string ;
0 commit comments