[PATCH 1/2] run-command: add pre-exec callback
- From
Jeff King <peff@peff.net>
- Date
- Jul 22, 2008, 07:12 UTC
- Message-ID
- <20080722071246.GA3584@sigill.intra.peff.net>
- In-Reply-To
- <20080722071009.GA3610@sigill.intra.peff.net>
This is a function provided by the caller which is called _after_ the process is forked, but before the spawned program is executed. On platforms (like mingw) where subprocesses are forked and executed in a single call, the preexec callback is simply ignored.
This will be used in the following patch to do some setup for 'less' that must happen in the forked child.
Signed-off-by: Jeff King <peff@peff.net> --- run-command.c | 2 ++ run-command.h | 1 + 2 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/run-command.c b/run-command.c index 6e29fdf..73d0c31 100644 --- a/run-command.c +++ b/run-command.c @@ -110,6 +110,8 @@ int start_command(struct child_process *cmd) unsetenv(*cmd->env); } } + if (cmd->preexec_cb) + cmd->preexec_cb(); if (cmd->git_cmd) { execv_git_cmd(cmd->argv); } else { diff --git a/run-command.h b/run-command.h index 5203a9e..4f2b7d7 100644 --- a/run-command.h +++ b/run-command.h @@ -42,6 +42,7 @@ struct child_process { unsigned no_stderr:1; unsigned git_cmd:1; /* if this is to be git sub-command */ unsigned stdout_to_stderr:1; + void (*preexec_cb)(void); }; int start_command(struct child_process *);
-- 1.6.0.rc0.1.g9291f.dirty