Add an optional argument for --color options
authorMark Lodato <lodatom@gmail.com>
Wed, 17 Feb 2010 04:55:58 +0000 (23:55 -0500)
committerJunio C Hamano <gitster@pobox.com>
Fri, 19 Feb 2010 01:21:40 +0000 (17:21 -0800)
commit73e9da019655261e456ed862340880de365111f0
tree3668881735169164f975f4db0983241cf3d631ba
parente923eaeb901ff056421b9007adcbbce271caa7b6
Add an optional argument for --color options

Make git-branch, git-show-branch, git-grep, and all the diff-based
programs accept an optional argument <when> for --color.  The argument
is a colorbool: "always", "never", or "auto".  If no argument is given,
"always" is used;  --no-color is an alias for --color=never.  This makes
the command-line interface consistent with other GNU tools, such as `ls'
and `grep', and with the git-config color options.  Note that, without
an argument, --color and --no-color work exactly as before.

To implement this, two internal changes were made:

1. Allow the first argument of git_config_colorbool() to be NULL,
   in which case it returns -1 if the argument isn't "always", "never",
   or "auto".

2. Add OPT_COLOR_FLAG(), OPT__COLOR(), and parse_opt_color_flag_cb()
   to the option parsing library.  The callback uses
   git_config_colorbool(), so color.h is now a dependency
   of parse-options.c.

Signed-off-by: Mark Lodato <lodatom@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
12 files changed:
Documentation/diff-options.txt
Documentation/git-branch.txt
Documentation/git-grep.txt
Documentation/git-show-branch.txt
Documentation/technical/api-parse-options.txt
builtin-branch.c
builtin-grep.c
builtin-show-branch.c
color.c
diff.c
parse-options.c
parse-options.h