diff options
author | Junio C Hamano <gitster@pobox.com> | 2013-07-12 12:04:19 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2013-07-12 12:04:19 -0700 |
commit | fb1c85d2e9777f620ba39e4c2552873bfb4b47f0 (patch) | |
tree | 537433d28a0740c744187f1cb992f3d3d8e5723c | |
parent | d5a3897f94dc4a2a77f30eeaf39cf14468061d0d (diff) | |
parent | 222b1212c105b46e1672934ecb166fa21d47db3a (diff) | |
download | git-fb1c85d2e9777f620ba39e4c2552873bfb4b47f0.tar.gz |
Merge branch 'jc/remote-http-argv-array'
* jc/remote-http-argv-array:
remote-http: use argv-array
-rw-r--r-- | remote-curl.c | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/remote-curl.c b/remote-curl.c index 60eda63081..5b3ce9eed2 100644 --- a/remote-curl.c +++ b/remote-curl.c @@ -7,6 +7,7 @@ #include "run-command.h" #include "pkt-line.h" #include "sideband.h" +#include "argv-array.h" static struct remote *remote; static const char *url; /* always ends with a trailing slash */ @@ -787,36 +788,35 @@ static int push_dav(int nr_spec, char **specs) static int push_git(struct discovery *heads, int nr_spec, char **specs) { struct rpc_state rpc; - const char **argv; - int argc = 0, i, err; + int i, err; + struct argv_array args; + + argv_array_init(&args); + argv_array_pushl(&args, "send-pack", "--stateless-rpc", "--helper-status", + NULL); - argv = xmalloc((10 + nr_spec) * sizeof(char*)); - argv[argc++] = "send-pack"; - argv[argc++] = "--stateless-rpc"; - argv[argc++] = "--helper-status"; if (options.thin) - argv[argc++] = "--thin"; + argv_array_push(&args, "--thin"); if (options.dry_run) - argv[argc++] = "--dry-run"; + argv_array_push(&args, "--dry-run"); if (options.verbosity == 0) - argv[argc++] = "--quiet"; + argv_array_push(&args, "--quiet"); else if (options.verbosity > 1) - argv[argc++] = "--verbose"; - argv[argc++] = options.progress ? "--progress" : "--no-progress"; - argv[argc++] = url; + argv_array_push(&args, "--verbose"); + argv_array_push(&args, options.progress ? "--progress" : "--no-progress"); + argv_array_push(&args, url); for (i = 0; i < nr_spec; i++) - argv[argc++] = specs[i]; - argv[argc++] = NULL; + argv_array_push(&args, specs[i]); memset(&rpc, 0, sizeof(rpc)); rpc.service_name = "git-receive-pack", - rpc.argv = argv; + rpc.argv = args.argv; err = rpc_service(&rpc, heads); if (rpc.result.len) write_or_die(1, rpc.result.buf, rpc.result.len); strbuf_release(&rpc.result); - free(argv); + argv_array_clear(&args); return err; } |