The user interface provided by the command loop in git-add--interactive gives the impression that subcommands can only be launched by entering an integer identifier from 1 through 8. A "hidden" feature is that any string can be entered, and an anchored regex search is used to find the first matching option. This patch makes this feature a little more obvious by highlighting the first character of each subcommand (for example "patch" is displayed as "[p]atch"). The mechanism for doing this is to add an optional third element to the array defining each subcommand; if present, it will be used for display purposes, while the actual name of the subcommand (the first element) is still used for matching purposes. Signed-off-by: Wincent Colaiuta <win@xxxxxxxxxxx> --- And another thought: if the colorization for git-add--interactive goes ahead, we could drop the square brackets used here in favor of underline or boldface, if people find that more attractive. git-add--interactive.perl | 18 +++++++++--------- 1 files changed, 9 insertions(+), 9 deletions(-) diff --git a/git-add--interactive.perl b/git-add--interactive.perl index 0317ad9..2b1c55a 100755 --- a/git-add--interactive.perl +++ b/git-add--interactive.perl @@ -179,7 +179,7 @@ sub list_and_choose { my $print = $stuff[$i]; if (ref $print) { if ((ref $print) eq 'ARRAY') { - $print = $print->[0]; + $print = $print->[2] || $print->[0]; } else { $print = $print->{PRINT}; @@ -774,14 +774,14 @@ EOF } sub main_loop { - my @cmd = ([ 'status', \&status_cmd, ], - [ 'update', \&update_cmd, ], - [ 'revert', \&revert_cmd, ], - [ 'add untracked', \&add_untracked_cmd, ], - [ 'patch', \&patch_update_cmd, ], - [ 'diff', \&diff_cmd, ], - [ 'quit', \&quit_cmd, ], - [ 'help', \&help_cmd, ], + my @cmd = ([ 'status', \&status_cmd, '[s]tatus', ], + [ 'update', \&update_cmd, '[u]date', ], + [ 'revert', \&revert_cmd, '[r]evert', ], + [ 'add untracked', \&add_untracked_cmd, '[a]dd untracked', ], + [ 'patch', \&patch_update_cmd, '[p]atch', ], + [ 'diff', \&diff_cmd, '[d]iff', ], + [ 'quit', \&quit_cmd, '[q]uit', ], + [ 'help', \&help_cmd, '[h]elp', ], ); while (1) { my ($it) = list_and_choose({ PROMPT => 'What now', -- 1.5.3.6.866.g67e44 - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html