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

setting working dir in posix_spawn() (Re: Fix 'git log' early pager startup error case)

From
Jonathan Nieder <jrnieder@gmail.com>
Date
Aug 26, 2010, 06:18 UTC
Message-ID
<20100826061815.GH9708@burratino>
In-Reply-To
<4C752739.3010808@redhat.com>
(+cc: austin-group-futures)
Eric Blake wrote:
> On 08/25/2010 01:00 AM, Johannes Sixt wrote:
>> Just FYI, posix_spawn() is not sufficiently capable for the demands of
>> start_command(): It doesn't allow to set a new CWD for the spawned process.
>
> And even if posix_spawn() were capable, cygwin doesn't yet implement it.

Hmm, okay. You have access to win32api, though, right? So it should be possible to reuse code from compat/mingw.c::mingw_spawnvpe.

Do you think there would be any interest in a posix_spawn() variant that takes a dir parameter? I am imagining something like this:

 int posix_spawn2(pid_t *restrict pid, const char *restrict path,
	const posix_spawn_file_actions_t *file_actions,
	const posix_spawnattr_t *restrict attrp,
	char *const argv[restrict], char *const envp[restrict],
	const char *dir);
or this:
 int posix_spawn2(pid_t *restrict pid, const char *restrict path,
	const posix_spawn_file_actions_t *file_actions,
	const posix_spawnattr_t *restrict attrp,
	char *const argv[restrict], char *const envp[restrict],
	int dirfd);
or this:
 int posix_spawn_file_actions_addchdir(posix_spawn_file_actions_t
	*file_actions, int dirfd);
Previous: Eric BlakeNext: Joshua Juran
Message 5 of 9 in “Fix 'git log' early pager startup error case”
  1. Linus TorvaldsAug 24, 2010
  2. Jonathan NiederAug 25, 2010
  3. Johannes SixtAug 25, 2010
  4. Eric BlakeAug 25, 2010
  5. setting working dir in posix_spawn() (Re: Fix 'git log' early pager startup error case)Jonathan Nieder, Aug 26, 2010
  6. Joshua JuranAug 26, 2010
  7. Eric BlakeAug 26, 2010
  8. Junio C HamanoAug 25, 2010
  9. Linus TorvaldsAug 25, 2010

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.