@@ -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 int init_add_i_state(struct repository *r, struct add_i_state *s)
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
return 0 ;
48
50
}
@@ -104,6 +106,7 @@ struct list_and_choose_options {
104
106
struct list_options list_opts ;
105
107
106
108
const char * prompt ;
109
+ void (* print_help )(struct add_i_state * s );
107
110
};
108
111
109
112
/*
@@ -138,6 +141,11 @@ static ssize_t list_and_choose(struct prefix_item **items, size_t nr,
138
141
if (!input .len )
139
142
break ;
140
143
144
+ if (!strcmp (input .buf , "?" )) {
145
+ opts -> print_help (s );
146
+ continue ;
147
+ }
148
+
141
149
p = input .buf ;
142
150
for (;;) {
143
151
size_t sep = strcspn (p , " \t\r\n," );
@@ -424,12 +432,24 @@ struct command_item {
424
432
struct file_list * files , struct list_options * opts );
425
433
};
426
434
435
+ static void command_prompt_help (struct add_i_state * s )
436
+ {
437
+ const char * help_color = s -> help_color ;
438
+ color_fprintf_ln (stdout , help_color , "%s" , _ ("Prompt help:" ));
439
+ color_fprintf_ln (stdout , help_color , "1 - %s" ,
440
+ _ ("select a numbered item" ));
441
+ color_fprintf_ln (stdout , help_color , "foo - %s" ,
442
+ _ ("select item based on unique prefix" ));
443
+ color_fprintf_ln (stdout , help_color , " - %s" ,
444
+ _ ("(empty) select nothing" ));
445
+ }
446
+
427
447
int run_add_i (struct repository * r , const struct pathspec * ps )
428
448
{
429
449
struct add_i_state s = { NULL };
430
450
struct list_and_choose_options main_loop_opts = {
431
451
{ 4 , N_ ("*** Commands ***" ), print_command_item , NULL },
432
- N_ ("What now" )
452
+ N_ ("What now" ), command_prompt_help
433
453
};
434
454
struct command_item
435
455
status = { { "status" }, run_status };
0 commit comments