From: Slavica Djukic <slawica92@xxxxxxxxxxx> Implement show-help command in add-interactive.c and use it in builtin add--helper.c. Use command name "show-help" instead of "help": add--helper is builtin, hence add--helper --help would be intercepted by handle_builtin and re-routed to the help command, without ever calling cmd_add__helper(). Mentored-by: Johannes Schindelin <Johannes.Schindelin@xxxxxx> Signed-off-by: Slavica Djukic <slawica92@xxxxxxxxxxx> --- add-interactive.c | 17 +++++++++++++++++ add-interactive.h | 2 ++ builtin/add--helper.c | 7 ++++++- 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/add-interactive.c b/add-interactive.c index 3c2e972413..ad05bf7e1f 100644 --- a/add-interactive.c +++ b/add-interactive.c @@ -800,3 +800,20 @@ void add_i_status(void) free(s); free_choices(&choices); } + +void add_i_show_help(void) +{ + const char *help_color = get_color(COLOR_HELP); + color_fprintf_ln(stdout, help_color, "status - %s", + _("show paths with changes")); + color_fprintf_ln(stdout, help_color, "update - %s", + _("add working tree state to the staged set of changes")); + color_fprintf_ln(stdout, help_color, "revert - %s", + _("revert staged set of changes back to the HEAD version")); + color_fprintf_ln(stdout, help_color, "patch - %s", + _("pick hunks and update selectively")); + color_fprintf_ln(stdout, help_color, "diff - %s", + _("view diff between HEAD and index")); + color_fprintf_ln(stdout, help_color, "add untracked - %s", + _("add contents of untracked files to the staged set of changes")); +} diff --git a/add-interactive.h b/add-interactive.h index 8ef3d2e82b..ddeedd3a33 100644 --- a/add-interactive.h +++ b/add-interactive.h @@ -5,4 +5,6 @@ int add_i_config(const char *var, const char *value, void *cbdata); void add_i_status(void); +void add_i_show_help(void); + #endif diff --git a/builtin/add--helper.c b/builtin/add--helper.c index 464d2245f3..1fe64bc7fb 100644 --- a/builtin/add--helper.c +++ b/builtin/add--helper.c @@ -10,7 +10,8 @@ static const char * const builtin_add_helper_usage[] = { enum cmd_mode { DEFAULT = 0, - STATUS + STATUS, + HELP }; int cmd_add__helper(int argc, const char **argv, const char *prefix) @@ -20,6 +21,8 @@ int cmd_add__helper(int argc, const char **argv, const char *prefix) struct option options[] = { OPT_CMDMODE(0, "status", &mode, N_("print status information with diffstat"), STATUS), + OPT_CMDMODE(0, "show-help", &mode, + N_("show help"), HELP), OPT_END() }; @@ -30,6 +33,8 @@ int cmd_add__helper(int argc, const char **argv, const char *prefix) if (mode == STATUS) add_i_status(); + else if (mode == HELP) + add_i_show_help(); else usage_with_options(builtin_add_helper_usage, options); -- gitgitgadget