run-command: use internal argv_array of struct child_process in run_hook_ve()
Use the existing argv_array member instead of providing our own. This way we don't have to initialize or clean it up explicitly. Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
parent
4bbaa1eb6f
commit
d1d094564a
|
@ -770,28 +770,21 @@ char *find_hook(const char *name)
|
||||||
int run_hook_ve(const char *const *env, const char *name, va_list args)
|
int run_hook_ve(const char *const *env, const char *name, va_list args)
|
||||||
{
|
{
|
||||||
struct child_process hook;
|
struct child_process hook;
|
||||||
struct argv_array argv = ARGV_ARRAY_INIT;
|
|
||||||
const char *p;
|
const char *p;
|
||||||
int ret;
|
|
||||||
|
|
||||||
p = find_hook(name);
|
p = find_hook(name);
|
||||||
if (!p)
|
if (!p)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
argv_array_push(&argv, p);
|
|
||||||
|
|
||||||
while ((p = va_arg(args, const char *)))
|
|
||||||
argv_array_push(&argv, p);
|
|
||||||
|
|
||||||
memset(&hook, 0, sizeof(hook));
|
memset(&hook, 0, sizeof(hook));
|
||||||
hook.argv = argv.argv;
|
argv_array_push(&hook.args, p);
|
||||||
|
while ((p = va_arg(args, const char *)))
|
||||||
|
argv_array_push(&hook.args, p);
|
||||||
hook.env = env;
|
hook.env = env;
|
||||||
hook.no_stdin = 1;
|
hook.no_stdin = 1;
|
||||||
hook.stdout_to_stderr = 1;
|
hook.stdout_to_stderr = 1;
|
||||||
|
|
||||||
ret = run_command(&hook);
|
return run_command(&hook);
|
||||||
argv_array_clear(&argv);
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int run_hook_le(const char *const *env, const char *name, ...)
|
int run_hook_le(const char *const *env, const char *name, ...)
|
||||||
|
|
Loading…
Reference in New Issue