зеркало из https://github.com/microsoft/git.git
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>
This commit is contained in:
Родитель
4bbaa1eb6f
Коммит
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)
|
||||
{
|
||||
struct child_process hook;
|
||||
struct argv_array argv = ARGV_ARRAY_INIT;
|
||||
const char *p;
|
||||
int ret;
|
||||
|
||||
p = find_hook(name);
|
||||
if (!p)
|
||||
return 0;
|
||||
|
||||
argv_array_push(&argv, p);
|
||||
|
||||
while ((p = va_arg(args, const char *)))
|
||||
argv_array_push(&argv, p);
|
||||
|
||||
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.no_stdin = 1;
|
||||
hook.stdout_to_stderr = 1;
|
||||
|
||||
ret = run_command(&hook);
|
||||
argv_array_clear(&argv);
|
||||
return ret;
|
||||
return run_command(&hook);
|
||||
}
|
||||
|
||||
int run_hook_le(const char *const *env, const char *name, ...)
|
||||
|
|
Загрузка…
Ссылка в новой задаче