summaryrefslogtreecommitdiff
path: root/config.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2018-05-08 06:59:27 (GMT)
committerJunio C Hamano <gitster@pobox.com>2018-05-08 06:59:27 (GMT)
commit00bb99c424e90b6533170a034b7cbc7ff2e85e50 (patch)
tree0a37a6794ca54fb31e3b35b0c2f31be2c542e825 /config.c
parente3e042b185ce3037acb61382da53521ac0beebbf (diff)
parent63e2a0f8e9cc3d66137a72e424a8b59f1c4dbd79 (diff)
downloadgit-00bb99c424e90b6533170a034b7cbc7ff2e85e50.zip
git-00bb99c424e90b6533170a034b7cbc7ff2e85e50.tar.gz
git-00bb99c424e90b6533170a034b7cbc7ff2e85e50.tar.bz2
Merge branch 'tb/config-default'
"git config --get" learned the "--default" option, to help the calling script. Building on top of the tb/config-type topic, the "git config" learns "--type=color" type. Taken together, you can do things like "git config --get foo.color --default blue" and get the ANSI color sequence for the color given to foo.color variable, or "blue" if the variable does not exist. * tb/config-default: builtin/config: introduce `color` type specifier config.c: introduce 'git_config_color' to parse ANSI colors builtin/config: introduce `--default`
Diffstat (limited to 'config.c')
-rw-r--r--config.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/config.c b/config.c
index 9f8ca18..ec96614 100644
--- a/config.c
+++ b/config.c
@@ -16,6 +16,7 @@
#include "string-list.h"
#include "utf8.h"
#include "dir.h"
+#include "color.h"
struct config_source {
struct config_source *prev;
@@ -1067,6 +1068,15 @@ int git_config_expiry_date(timestamp_t *timestamp, const char *var, const char *
return 0;
}
+int git_config_color(char *dest, const char *var, const char *value)
+{
+ if (!value)
+ return config_error_nonbool(var);
+ if (color_parse(value, dest) < 0)
+ return -1;
+ return 0;
+}
+
static int git_default_core_config(const char *var, const char *value)
{
/* This needs a better name */