X-Git-Url: https://git.octo.it/?p=git.git;a=blobdiff_plain;f=var.c;h=a57a33b81ac6c9cb5ec0c833edc21bd66428d976;hp=488ec5147a227444490e3d73ce03e1acd786f998;hb=HEAD;hpb=aed022ab4ca1055e1c962b73e14dbf41380f84a9 diff --git a/var.c b/var.c index 488ec514..a57a33b8 100644 --- a/var.c +++ b/var.c @@ -8,11 +8,11 @@ #include #include -static char *var_usage = "git-var [-l | ]"; +static const char var_usage[] = "git-var [-l | ]"; struct git_var { const char *name; - char *(*read)(void); + const char *(*read)(int); }; static struct git_var git_vars[] = { { "GIT_COMMITTER_IDENT", git_committer_info }, @@ -24,7 +24,7 @@ static void list_vars(void) { struct git_var *ptr; for(ptr = git_vars; ptr->read; ptr++) { - printf("%s=%s\n", ptr->name, ptr->read()); + printf("%s=%s\n", ptr->name, ptr->read(0)); } } @@ -35,26 +35,39 @@ static const char *read_var(const char *var) val = NULL; for(ptr = git_vars; ptr->read; ptr++) { if (strcmp(var, ptr->name) == 0) { - val = ptr->read(); + val = ptr->read(1); break; } } return val; } +static int show_config(const char *var, const char *value) +{ + if (value) + printf("%s=%s\n", var, value); + else + printf("%s\n", var); + return git_default_config(var, value); +} + int main(int argc, char **argv) { const char *val; if (argc != 2) { usage(var_usage); } + + setup_git_directory(); setup_ident(); val = NULL; if (strcmp(argv[1], "-l") == 0) { + git_config(show_config); list_vars(); return 0; } + git_config(git_default_config); val = read_var(argv[1]); if (!val) usage(var_usage);