From: Felipe Contreras <felipe.contreras@gmail.com>
To: git@vger.kernel.org
Cc: Johannes Schindelin <Johannes.Schindelin@gmx.de>,
Junio C Hamano <gitster@pobox.com>,
Felipe Contreras <felipe.contreras@gmail.com>
Subject: [PATCH A v4 5/5] git config: reorganize get_color*
Date: Sat, 21 Feb 2009 02:48:57 +0200 [thread overview]
Message-ID: <1235177337-2532-6-git-send-email-felipe.contreras@gmail.com> (raw)
In-Reply-To: <1235177337-2532-5-git-send-email-felipe.contreras@gmail.com>
In preparation for parseopt.
Also remove some unecessary comments since the usage is described in the
documentation.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
builtin-config.c | 63 +++++++++++++++--------------------------------------
1 files changed, 18 insertions(+), 45 deletions(-)
diff --git a/builtin-config.c b/builtin-config.c
index 5074c61..0836880 100644
--- a/builtin-config.c
+++ b/builtin-config.c
@@ -180,7 +180,6 @@ static int get_color_found;
static const char *get_color_slot;
static const char *get_colorbool_slot;
static char parsed_color[COLOR_MAXLEN];
-
static int git_get_color_config(const char *var, const char *value, void *cb)
{
if (!strcmp(var, get_color_slot)) {
@@ -192,29 +191,8 @@ static int git_get_color_config(const char *var, const char *value, void *cb)
return 0;
}
-static int get_color(int argc, const char **argv)
+static void get_color(const char *def_color)
{
- /*
- * grab the color setting for the given slot from the configuration,
- * or parse the default value if missing, and return ANSI color
- * escape sequence.
- *
- * e.g.
- * git config --get-color color.diff.whitespace "blue reverse"
- */
- const char *def_color = NULL;
-
- switch (argc) {
- default:
- usage(git_config_set_usage);
- case 2:
- def_color = argv[1];
- /* fallthru */
- case 1:
- get_color_slot = argv[0];
- break;
- }
-
get_color_found = 0;
parsed_color[0] = '\0';
git_config(git_get_color_config, NULL);
@@ -223,7 +201,6 @@ static int get_color(int argc, const char **argv)
color_parse(def_color, "command line", parsed_color);
fputs(parsed_color, stdout);
- return 0;
}
static int stdout_is_tty;
@@ -247,24 +224,10 @@ static int git_get_colorbool_config(const char *var, const char *value,
return 0;
}
-static int get_colorbool(int argc, const char **argv)
+static int get_colorbool(int print)
{
- /*
- * git config --get-colorbool <slot> [<stdout-is-tty>]
- *
- * returns "true" or "false" depending on how <slot>
- * is configured.
- */
-
- if (argc == 2)
- stdout_is_tty = git_config_bool("command line", argv[1]);
- else if (argc == 1)
- stdout_is_tty = isatty(1);
- else
- usage(git_config_set_usage);
get_colorbool_found = -1;
get_diff_color_found = -1;
- get_colorbool_slot = argv[0];
git_config(git_get_colorbool_config, NULL);
if (get_colorbool_found < 0) {
@@ -274,12 +237,11 @@ static int get_colorbool(int argc, const char **argv)
get_colorbool_found = git_use_color_default;
}
- if (argc == 1) {
- return get_colorbool_found ? 0 : 1;
- } else {
+ if (print) {
printf("%s\n", get_colorbool_found ? "true" : "false");
return 0;
- }
+ } else
+ return get_colorbool_found ? 0 : 1;
}
int cmd_config(int argc, const char **argv, const char *unused_prefix)
@@ -363,9 +325,20 @@ int cmd_config(int argc, const char **argv, const char *unused_prefix)
}
return 0;
} else if (!strcmp(argv[1], "--get-color")) {
- return get_color(argc-2, argv+2);
+ if (argc > 4 || argc < 3)
+ usage(git_config_set_usage);
+ get_color_slot = argv[2];
+ get_color(argv[3]);
+ return 0;
} else if (!strcmp(argv[1], "--get-colorbool")) {
- return get_colorbool(argc-2, argv+2);
+ if (argc == 4)
+ stdout_is_tty = git_config_bool("command line", argv[3]);
+ else if (argc == 3)
+ stdout_is_tty = isatty(1);
+ else
+ usage(git_config_set_usage);
+ get_colorbool_slot = argv[2];
+ return get_colorbool(argc != 3);
} else if (!strcmp(argv[1], "--edit") || !strcmp(argv[1], "-e")) {
if (argc != 2)
usage(git_config_set_usage);
--
1.6.1.3
prev parent reply other threads:[~2009-02-21 0:51 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-02-21 0:48 [PATCH A v4 0/5] git config: cleanups Felipe Contreras
2009-02-21 0:48 ` [PATCH A v4 1/5] git config: codestyle cleanups Felipe Contreras
2009-02-21 0:48 ` [PATCH A v4 2/5] git config: trivial cleanup for editor action Felipe Contreras
2009-02-21 0:48 ` [PATCH A v4 3/5] git_config(): not having a per-repo config file is not an error Felipe Contreras
2009-02-21 0:48 ` [PATCH A v4 4/5] git config: trivial rename in preparation for parseopt Felipe Contreras
2009-02-21 0:48 ` Felipe Contreras [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1235177337-2532-6-git-send-email-felipe.contreras@gmail.com \
--to=felipe.contreras@gmail.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).