mirror of
https://github.com/git/git.git
synced 2024-11-19 03:33:57 +01:00
parse-opt: optionally show "--no-" option string
It is usually better to have positive options, to avoid confusing double negations. However, sometimes it is desirable to show the negative option in the help. Introduce the flag PARSE_OPT_NEGHELP to do that. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
e658002005
commit
86b5efb286
@ -511,7 +511,7 @@ static int usage_with_options_internal(const char * const *usagestr,
|
||||
continue;
|
||||
|
||||
pos = fprintf(stderr, " ");
|
||||
if (opts->short_name) {
|
||||
if (opts->short_name && !(opts->flags & PARSE_OPT_NEGHELP)) {
|
||||
if (opts->flags & PARSE_OPT_NODASH)
|
||||
pos += fprintf(stderr, "%c", opts->short_name);
|
||||
else
|
||||
@ -520,7 +520,9 @@ static int usage_with_options_internal(const char * const *usagestr,
|
||||
if (opts->long_name && opts->short_name)
|
||||
pos += fprintf(stderr, ", ");
|
||||
if (opts->long_name)
|
||||
pos += fprintf(stderr, "--%s", opts->long_name);
|
||||
pos += fprintf(stderr, "--%s%s",
|
||||
(opts->flags & PARSE_OPT_NEGHELP) ? "no-" : "",
|
||||
opts->long_name);
|
||||
if (opts->type == OPTION_NUMBER)
|
||||
pos += fprintf(stderr, "-NUM");
|
||||
|
||||
|
@ -36,6 +36,7 @@ enum parse_opt_option_flags {
|
||||
PARSE_OPT_LASTARG_DEFAULT = 16,
|
||||
PARSE_OPT_NODASH = 32,
|
||||
PARSE_OPT_LITERAL_ARGHELP = 64,
|
||||
PARSE_OPT_NEGHELP = 128,
|
||||
};
|
||||
|
||||
struct option;
|
||||
@ -80,6 +81,9 @@ typedef int parse_opt_cb(const struct option *, const char *arg, int unset);
|
||||
* PARSE_OPT_LITERAL_ARGHELP: says that argh shouldn't be enclosed in brackets
|
||||
* (i.e. '<argh>') in the help message.
|
||||
* Useful for options with multiple parameters.
|
||||
* PARSE_OPT_NEGHELP: says that the long option should always be shown with
|
||||
* the --no prefix in the usage message. Sometimes
|
||||
* useful for users of OPTION_NEGBIT.
|
||||
*
|
||||
* `callback`::
|
||||
* pointer to the callback to use for OPTION_CALLBACK.
|
||||
|
Loading…
Reference in New Issue
Block a user