summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTanay Abhra <tanayabh@gmail.com>2014-08-07 09:21:25 -0700
committerJunio C Hamano <gitster@pobox.com>2014-08-07 13:33:29 -0700
commit111791559e69011a6d55f053393d154a1840b4f5 (patch)
treea3949213927f3f10a2e3e76380bff5e3794192d9
parentef7e1d0cdac8f55290f60c78dca00bfb84e7a925 (diff)
downloadgit-111791559e69011a6d55f053393d154a1840b4f5.tar.gz
alias.c: replace `git_config()` with `git_config_get_string()`
Use `git_config_get_string()` instead of `git_config()` to take advantage of the config-set API which provides a cleaner control flow. Signed-off-by: Tanay Abhra <tanayabh@gmail.com> Reviewed-by: Matthieu Moy <Matthieu.Moy@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--alias.c25
1 files changed, 6 insertions, 19 deletions
diff --git a/alias.c b/alias.c
index 758c867149..6aa164a362 100644
--- a/alias.c
+++ b/alias.c
@@ -1,26 +1,13 @@
#include "cache.h"
-static const char *alias_key;
-static char *alias_val;
-
-static int alias_lookup_cb(const char *k, const char *v, void *cb)
-{
- const char *name;
- if (skip_prefix(k, "alias.", &name) && !strcmp(name, alias_key)) {
- if (!v)
- return config_error_nonbool(k);
- alias_val = xstrdup(v);
- return 0;
- }
- return 0;
-}
-
char *alias_lookup(const char *alias)
{
- alias_key = alias;
- alias_val = NULL;
- git_config(alias_lookup_cb, NULL);
- return alias_val;
+ char *v = NULL;
+ struct strbuf key = STRBUF_INIT;
+ strbuf_addf(&key, "alias.%s", alias);
+ git_config_get_string(key.buf, &v);
+ strbuf_release(&key);
+ return v;
}
#define SPLIT_CMDLINE_BAD_ENDING 1