diff options
| author | Junio C Hamano <gitster@pobox.com> | 2014-06-16 10:06:10 -0700 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2014-06-16 10:06:10 -0700 |
| commit | 5b3a58d459171f49ee8d486e4ac399eb2678605d (patch) | |
| tree | 86a262d494e9c2d741ef210bd7f8e7aa5e0fdf7c /run-command.c | |
| parent | 45dc2927168cd9575a8ea81e78f6f5c39cb653f4 (diff) | |
| parent | ff857e4ee8680af3988aff3383b1158f396a6fb2 (diff) | |
| download | git-5b3a58d459171f49ee8d486e4ac399eb2678605d.tar.xz | |
Merge branch 'jk/argv-array-for-child-process'
* jk/argv-array-for-child-process:
argv-array: drop "detach" code
get_importer: use run-command's internal argv_array
get_exporter: use argv_array
get_helper: use run-command's internal argv_array
git_connect: use argv_array
run_column_filter: use argv_array
run-command: store an optional argv_array
Diffstat (limited to 'run-command.c')
| -rw-r--r-- | run-command.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/run-command.c b/run-command.c index 75abc478c6..be07d4ad33 100644 --- a/run-command.c +++ b/run-command.c @@ -279,6 +279,9 @@ int start_command(struct child_process *cmd) int failed_errno; char *str; + if (!cmd->argv) + cmd->argv = cmd->args.argv; + /* * In case of errors we must keep the promise to close FDs * that have been passed in via ->in and ->out. @@ -328,6 +331,7 @@ int start_command(struct child_process *cmd) fail_pipe: error("cannot create %s pipe for %s: %s", str, cmd->argv[0], strerror(failed_errno)); + argv_array_clear(&cmd->args); errno = failed_errno; return -1; } @@ -519,6 +523,7 @@ fail_pipe: close_pair(fderr); else if (cmd->err) close(cmd->err); + argv_array_clear(&cmd->args); errno = failed_errno; return -1; } @@ -543,7 +548,9 @@ fail_pipe: int finish_command(struct child_process *cmd) { - return wait_or_whine(cmd->pid, cmd->argv[0]); + int ret = wait_or_whine(cmd->pid, cmd->argv[0]); + argv_array_clear(&cmd->args); + return ret; } int run_command(struct child_process *cmd) |
