diff options
| author | Junio C Hamano <gitster@pobox.com> | 2022-12-14 15:55:47 +0900 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2022-12-14 15:55:47 +0900 |
| commit | d818458088af2b3d6b83619668d52c9dad41b2cd (patch) | |
| tree | acd17bf681bfa13031d5c044cbdbdf82599564aa /builtin | |
| parent | Merge branch 'rs/multi-filter-args' (diff) | |
| parent | var: allow GIT_EDITOR to return null (diff) | |
| download | git-d818458088af2b3d6b83619668d52c9dad41b2cd.tar.gz git-d818458088af2b3d6b83619668d52c9dad41b2cd.zip | |
Merge branch 'sa/git-var-empty'
"git var UNKNOWN_VARIABLE" and "git var VARIABLE" with the variable
given an empty value used to behave identically. Now the latter
just gives an empty output, while the former still gives an error
message.
* sa/git-var-empty:
var: allow GIT_EDITOR to return null
var: do not print usage() with a correct invocation
Diffstat (limited to 'builtin')
| -rw-r--r-- | builtin/var.c | 29 |
1 files changed, 14 insertions, 15 deletions
diff --git a/builtin/var.c b/builtin/var.c index 491db27429..a1a2522126 100644 --- a/builtin/var.c +++ b/builtin/var.c @@ -11,12 +11,7 @@ static const char var_usage[] = "git var (-l | <variable>)"; static const char *editor(int flag) { - const char *pgm = git_editor(); - - if (!pgm && flag & IDENT_STRICT) - die("Terminal is dumb, but EDITOR unset"); - - return pgm; + return git_editor(); } static const char *pager(int flag) @@ -56,18 +51,15 @@ static void list_vars(void) printf("%s=%s\n", ptr->name, val); } -static const char *read_var(const char *var) +static const struct git_var *get_git_var(const char *var) { struct git_var *ptr; - const char *val; - val = NULL; for (ptr = git_vars; ptr->read; ptr++) { if (strcmp(var, ptr->name) == 0) { - val = ptr->read(IDENT_STRICT); - break; + return ptr; } } - return val; + return NULL; } static int show_config(const char *var, const char *value, void *cb) @@ -81,7 +73,9 @@ static int show_config(const char *var, const char *value, void *cb) int cmd_var(int argc, const char **argv, const char *prefix) { - const char *val = NULL; + const struct git_var *git_var; + const char *val; + if (argc != 2) usage(var_usage); @@ -91,10 +85,15 @@ int cmd_var(int argc, const char **argv, const char *prefix) return 0; } git_config(git_default_config, NULL); - val = read_var(argv[1]); - if (!val) + + git_var = get_git_var(argv[1]); + if (!git_var) usage(var_usage); + val = git_var->read(IDENT_STRICT); + if (!val) + return 1; + printf("%s\n", val); return 0; |
