Le mardi 04 avril 2023 à 11:34 +0200, Jean Abou Samra a écrit : > Le lundi 03 avril 2023 à 20:50 +0200, Jonas Hahnfeld via LilyPond user > discussion a écrit : > > > This shouldn't be needed: g_spawn_sync internally uses a helper > > executable that should take care exactly of this aspect. LilyPond uses > > it internally to call Ghostscript. > > Hmm, but Denemo is already using `g_spawn_sync` and still experiencing this > issue, or am I missing something?
You are right that the GLib sources contain a gspawn-win32-helper.c program
with the comment
```
/* We build gspawn-win32-helper.exe as a Windows GUI application
* to avoid any temporarily flashing console windows in case
* the gspawn function is invoked by a GUI program. Thus, no main()
* but a WinMain().
*/
```
Later, there is
```
#ifndef HELPER_CONSOLE
int _stdcall
WinMain (struct HINSTANCE__ *hInstance,
struct HINSTANCE__ *hPrevInstance,
char *lpszCmdLine,
int nCmdShow)
#else
int
main (int ignored_argc, char **ignored_argv)
#endif
```
Apparently, there are two such executables, `gspawn-win32-helper.exe` and
`gspawn-win32-helper-console.exe`, the latter compiled with `-DHELP_CONSOLE`.
In `gspawn-win32.c`, I see
```
if (might_be_console_process ())
helper_process = HELPER_PROCESS "-console.exe";
else
helper_process = HELPER_PROCESS ".exe";
```
which calls
```
static gboolean
might_be_console_process (void)
{
// we should always fail to attach ourself to a console (because we're
// either already attached, or we do not have a console)
gboolean attached_to_self = AttachConsole (GetCurrentProcessId ());
g_return_val_if_fail (!attached_to_self, TRUE);
switch (GetLastError ())
{
// current process is already attached to a console
case ERROR_ACCESS_DENIED:
return TRUE;
// current process does not have a console
case ERROR_INVALID_HANDLE:
return FALSE;
// we should not get ERROR_INVALID_PARAMETER
}
g_return_val_if_reached (FALSE);
}
```
Richard, maybe `might_be_console_process` is returning true inside Denemo for
some reason?
signature.asc
Description: This is a digitally signed message part
