On Mon, Aug 4, 2014 at 2:33 PM, Tanay Abhra <tanayabh@xxxxxxxxx> wrote: > Use `git_config_get_bool()` family instead of `git_config()` to take advantage of > the config-set API which provides a cleaner control flow. > > Signed-off-by: Tanay Abhra <tanayabh@xxxxxxxxx> > --- > http-backend.c | 31 ++++++++++++------------------- > 1 file changed, 12 insertions(+), 19 deletions(-) > > diff --git a/http-backend.c b/http-backend.c > index 80790bb..106ca6b 100644 > --- a/http-backend.c > +++ b/http-backend.c > @@ -219,29 +219,22 @@ static void get_idx_file(char *name) > send_local_file("application/x-git-packed-objects-toc", name); > } > > -static int http_config(const char *var, const char *value, void *cb) > +static void http_config(void) > { > - const char *p; > + int i, value = 0; > + struct strbuf var = STRBUF_INIT; > > - if (!strcmp(var, "http.getanyfile")) { > - getanyfile = git_config_bool(var, value); > - return 0; > - } > + git_config_get_bool("http.getanyfile", &getanyfile); > > - if (skip_prefix(var, "http.", &p)) { > - int i; > - > - for (i = 0; i < ARRAY_SIZE(rpc_service); i++) { > - struct rpc_service *svc = &rpc_service[i]; > - if (!strcmp(p, svc->config_name)) { > - svc->enabled = git_config_bool(var, value); > - return 0; > - } > - } > + for (i = 0; i < ARRAY_SIZE(rpc_service); i++) { > + struct rpc_service *svc = &rpc_service[i]; > + strbuf_addf(&var, "http.%s", svc->config_name); > + if (!git_config_get_bool(var.buf, &value)) > + svc->enabled = value; > + strbuf_reset(&var); > } There is a behavior change here. The original code set svc->enabled to the first matching rpc_service[] entry, whereas the new code sets it to the last matching entry. Is this change intentional? > - /* we are not interested in parsing any other configuration here */ > - return 0; > + strbuf_release(&var); > } > > static struct rpc_service *select_service(const char *name) > @@ -627,7 +620,7 @@ int main(int argc, char **argv) > access("git-daemon-export-ok", F_OK) ) > not_found("Repository not exported: '%s'", dir); > > - git_config(http_config, NULL); > + http_config(); > cmd->imp(cmd_arg); > return 0; > } > -- > 1.9.0.GIT -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html