summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2010-12-11 00:13:14 (GMT)
committerJunio C Hamano <gitster@pobox.com>2010-12-11 00:13:14 (GMT)
commit7bf040c5bfcac4f9efe9b3fc9879756728fc098f (patch)
tree1a4c6088ed27040513eadf5ddd8d64c57e9a75fa
parentaa78384156e3f6b391e88bbf13d3fae19f50750c (diff)
parentb2be2f6aeaa8f4af602679e5571d2e916a259d91 (diff)
downloadgit-7bf040c5bfcac4f9efe9b3fc9879756728fc098f.zip
git-7bf040c5bfcac4f9efe9b3fc9879756728fc098f.tar.gz
git-7bf040c5bfcac4f9efe9b3fc9879756728fc098f.tar.bz2
Merge branch 'jk/maint-decorate-01-bool' into maint
* jk/maint-decorate-01-bool: log.decorate: accept 0/1 bool values
-rw-r--r--config.c16
-rwxr-xr-xt/t4202-log.sh9
2 files changed, 23 insertions, 2 deletions
diff --git a/config.c b/config.c
index 4b0a820..9918b93 100644
--- a/config.c
+++ b/config.c
@@ -410,7 +410,7 @@ unsigned long git_config_ulong(const char *name, const char *value)
return ret;
}
-int git_config_maybe_bool(const char *name, const char *value)
+static int git_config_maybe_bool_text(const char *name, const char *value)
{
if (!value)
return 1;
@@ -427,9 +427,21 @@ int git_config_maybe_bool(const char *name, const char *value)
return -1;
}
+int git_config_maybe_bool(const char *name, const char *value)
+{
+ int v = git_config_maybe_bool_text(name, value);
+ if (0 <= v)
+ return v;
+ if (!strcmp(value, "0"))
+ return 0;
+ if (!strcmp(value, "1"))
+ return 1;
+ return -1;
+}
+
int git_config_bool_or_int(const char *name, const char *value, int *is_bool)
{
- int v = git_config_maybe_bool(name, value);
+ int v = git_config_maybe_bool_text(name, value);
if (0 <= v) {
*is_bool = 1;
return v;
diff --git a/t/t4202-log.sh b/t/t4202-log.sh
index 2e51356..2043bb8 100755
--- a/t/t4202-log.sh
+++ b/t/t4202-log.sh
@@ -422,6 +422,15 @@ test_expect_success 'log.decorate configuration' '
test_cmp expect.full actual &&
git config --unset-all log.decorate &&
+ git config log.decorate 1 &&
+ git log --oneline >actual &&
+ test_cmp expect.short actual &&
+ git log --oneline --decorate=full >actual &&
+ test_cmp expect.full actual &&
+ git log --oneline --decorate=no >actual &&
+ test_cmp expect.none actual &&
+
+ git config --unset-all log.decorate &&
git config log.decorate short &&
git log --oneline >actual &&
test_cmp expect.short actual &&