execv_dashed_external: use child_process struct
commit2b296c93d49d65303a4ce291225c8755eeab1ff8
authorJeff King <peff@peff.net>
Sat, 7 Jan 2017 01:16:24 +0000 (6 20:16 -0500)
committerJunio C Hamano <gitster@pobox.com>
Mon, 9 Jan 2017 21:41:33 +0000 (9 13:41 -0800)
tree657d508e1d23cadefe6e01d1d82e83c5ac5ad3fb
parenta274e0a036ea886a31f8b216564ab1b4a3142f6c
execv_dashed_external: use child_process struct

When we run a dashed external, we use the one-liner
run_command_v_opt() to do so. Let's switch to using a
child_process struct, which has two advantages:

  1. We can drop all of the allocation and cleanup code for
     building our custom argv array, and just rely on the
     builtin argv_array (at the minor cost of doing a few
     extra mallocs).

  2. We have access to the complete range of child_process
     options, not just the ones that the "_opt()" form can
     forward.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git.c