git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[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
Previous: Jeff KingNext: Jeff King
Message 15 of 30 in “git status in clean working dir”
  1. David BremnerJul 21, 2008
  2. Junio C HamanoJul 22, 2008
  3. Abhijit Menon-SenJul 22, 2008
  4. Junio C HamanoJul 22, 2008
  5. Junio C HamanoJul 22, 2008
  6. Jeff KingJul 22, 2008
  7. Jeff KingJul 22, 2008
  8. Johannes SchindelinJul 22, 2008
  9. Jeff KingJul 22, 2008
  10. Mike HommeyJul 22, 2008
  11. Jeff KingJul 22, 2008
  12. Mike HommeyJul 22, 2008
  13. Jeff KingJul 22, 2008
  14. Jeff KingJul 22, 2008
  15. 1/2 run-command: add pre-exec callbackJeff King, Jul 22, 2008
  16. 2/2 spawn pager via run_command interfaceJeff King, Jul 22, 2008
  17. Jeff KingJul 22, 2008
  18. Pierre HabouzitJul 22, 2008
  19. Jeff KingJul 22, 2008
  20. Johannes SixtJul 22, 2008
  21. Jeff KingJul 22, 2008
  22. Johannes SixtJul 22, 2008
  23. Junio C HamanoJul 22, 2008
  24. Jeff KingJul 22, 2008
  25. David BremnerJul 22, 2008
  26. Johannes SixtJul 22, 2008
  27. Jeff KingJul 22, 2008
  28. Johannes SixtJul 22, 2008
  29. Ask Bjørn HansenJul 24, 2008
  30. Jeff KingJul 24, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.