const char *encoding = getenv("HTTP_CONTENT_ENCODING");
const char *user = getenv("REMOTE_USER");
const char *host = getenv("REMOTE_ADDR");
- struct argv_array env = ARGV_ARRAY_INIT;
int gzipped_request = 0;
struct child_process cld = CHILD_PROCESS_INIT;
host = "(none)";
if (!getenv("GIT_COMMITTER_NAME"))
- argv_array_pushf(&env, "GIT_COMMITTER_NAME=%s", user);
+ argv_array_pushf(&cld.env_array, "GIT_COMMITTER_NAME=%s", user);
if (!getenv("GIT_COMMITTER_EMAIL"))
- argv_array_pushf(&env, "GIT_COMMITTER_EMAIL=%s@http.%s",
- user, host);
+ argv_array_pushf(&cld.env_array,
+ "GIT_COMMITTER_EMAIL=%s@http.%s", user, host);
cld.argv = argv;
- cld.env = env.argv;
if (gzipped_request)
cld.in = -1;
cld.git_cmd = 1;
if (finish_command(&cld))
exit(1);
- argv_array_clear(&env);
}
static int show_text_ref(const char *name, const unsigned char *sha1,
run_service(argv);
} else {
+ struct each_ref_fn_sha1_adapter wrapped_show_text_ref =
+ {show_text_ref, &buf};
+
select_getanyfile();
- for_each_namespaced_ref(show_text_ref, &buf);
+ for_each_namespaced_ref(each_ref_fn_adapter, &wrapped_show_text_ref);
send_strbuf("text/plain", &buf);
}
strbuf_release(&buf);
if (flag & REF_ISSYMREF) {
unsigned char unused[20];
- const char *target = resolve_ref_unsafe(refname, unused, 1, NULL);
+ const char *target = resolve_ref_unsafe(refname,
+ RESOLVE_REF_READING,
+ unused, NULL);
const char *target_nons = strip_namespace(target);
strbuf_addf(buf, "ref: %s\n", target_nons);
static void get_head(char *arg)
{
struct strbuf buf = STRBUF_INIT;
+ struct each_ref_fn_sha1_adapter wrapped_show_head_ref =
+ {show_head_ref, &buf};
select_getanyfile();
- head_ref_namespaced(show_head_ref, &buf);
+ head_ref_namespaced(each_ref_fn_adapter, &wrapped_show_head_ref);
send_strbuf("text/plain", &buf);
strbuf_release(&buf);
}