Now passing event with --use-event to let programs starting with
digits being run.
This commit is contained in:
parent
3f089a1962
commit
1ac2b1e3c7
|
@ -443,11 +443,18 @@ static BOOL WINECON_Spawn(struct inner_data* data, LPCSTR lpCmdLine)
|
||||||
return done;
|
return done;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static BOOL WINECON_HasEvent(LPCSTR ptr, unsigned *evt)
|
||||||
|
{
|
||||||
|
while (*ptr == ' ' || *ptr == '\t') ptr++;
|
||||||
|
if (strncmp(ptr, "--use-event=", 12)) return FALSE;
|
||||||
|
return sscanf(ptr + 12, "%d", evt) == 1;
|
||||||
|
}
|
||||||
|
|
||||||
/******************************************************************
|
/******************************************************************
|
||||||
* WINECON_WinMain
|
* WINECON_WinMain
|
||||||
*
|
*
|
||||||
* wineconsole can either be started as:
|
* wineconsole can either be started as:
|
||||||
* wineconsole <int> used when a new console is created (AllocConsole)
|
* wineconsole --use-event=<int> used when a new console is created (AllocConsole)
|
||||||
* wineconsole <pgm> <arguments> used to start the program <pgm> from the command line in
|
* wineconsole <pgm> <arguments> used to start the program <pgm> from the command line in
|
||||||
* a freshly created console
|
* a freshly created console
|
||||||
*/
|
*/
|
||||||
|
@ -458,7 +465,7 @@ int PASCAL WINECON_WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPCSTR lpCmdLine, U
|
||||||
unsigned evt;
|
unsigned evt;
|
||||||
|
|
||||||
/* case of wineconsole <evt>, signal process that created us that we're up and running */
|
/* case of wineconsole <evt>, signal process that created us that we're up and running */
|
||||||
if (sscanf(lpCmdLine, "%d", &evt) == 1)
|
if (WINECON_HasEvent(lpCmdLine, &evt))
|
||||||
{
|
{
|
||||||
if (!(data = WINECON_Init(hInst, 0))) return 0;
|
if (!(data = WINECON_Init(hInst, 0))) return 0;
|
||||||
ret = SetEvent((HANDLE)evt);
|
ret = SetEvent((HANDLE)evt);
|
||||||
|
|
|
@ -85,14 +85,14 @@ static BOOL start_console_renderer(void)
|
||||||
/* first try environment variable */
|
/* first try environment variable */
|
||||||
if ((p = getenv("WINECONSOLE")) != NULL)
|
if ((p = getenv("WINECONSOLE")) != NULL)
|
||||||
{
|
{
|
||||||
if (snprintf(buffer, sizeof(buffer), "%s %d", p, hEvent) > 0 &&
|
if (snprintf(buffer, sizeof(buffer), "%s -- --use-event=%d", p, hEvent) > 0 &&
|
||||||
CreateProcessA(NULL, buffer, NULL, NULL, TRUE, DETACHED_PROCESS, NULL, NULL, &si, &pi))
|
CreateProcessA(NULL, buffer, NULL, NULL, TRUE, DETACHED_PROCESS, NULL, NULL, &si, &pi))
|
||||||
goto succeed;
|
goto succeed;
|
||||||
ERR("Couldn't launch Wine console from WINECONSOLE env var... trying default access\n");
|
ERR("Couldn't launch Wine console from WINECONSOLE env var... trying default access\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* then the regular installation dir */
|
/* then the regular installation dir */
|
||||||
if (snprintf(buffer, sizeof(buffer), "%s %d", BINDIR "/wineconsole", hEvent) > 0 &&
|
if (snprintf(buffer, sizeof(buffer), "%s -- --use-event=%d", BINDIR "/wineconsole", hEvent) > 0 &&
|
||||||
CreateProcessA(NULL, buffer, NULL, NULL, TRUE, DETACHED_PROCESS, NULL, NULL, &si, &pi))
|
CreateProcessA(NULL, buffer, NULL, NULL, TRUE, DETACHED_PROCESS, NULL, NULL, &si, &pi))
|
||||||
goto succeed;
|
goto succeed;
|
||||||
|
|
||||||
|
@ -104,10 +104,10 @@ static BOOL start_console_renderer(void)
|
||||||
if ((p = strrchr(strcpy( path, full_argv0 ), '/')))
|
if ((p = strrchr(strcpy( path, full_argv0 ), '/')))
|
||||||
{
|
{
|
||||||
p++;
|
p++;
|
||||||
sprintf(p, "wineconsole %d", hEvent);
|
sprintf(p, "wineconsole -- --use-event=%d", hEvent);
|
||||||
if (CreateProcessA(NULL, path, NULL, NULL, TRUE, DETACHED_PROCESS, NULL, NULL, &si, &pi))
|
if (CreateProcessA(NULL, path, NULL, NULL, TRUE, DETACHED_PROCESS, NULL, NULL, &si, &pi))
|
||||||
goto succeed;
|
goto succeed;
|
||||||
sprintf(p, "programs/wineconsole/wineconsole %d", hEvent);
|
sprintf(p, "programs/wineconsole/wineconsole -- --use-event=%d", hEvent);
|
||||||
if (CreateProcessA(NULL, path, NULL, NULL, TRUE, DETACHED_PROCESS, NULL, NULL, &si, &pi))
|
if (CreateProcessA(NULL, path, NULL, NULL, TRUE, DETACHED_PROCESS, NULL, NULL, &si, &pi))
|
||||||
goto succeed;
|
goto succeed;
|
||||||
}
|
}
|
||||||
|
@ -127,10 +127,10 @@ static BOOL start_console_renderer(void)
|
||||||
if ((p = strrchr(path, '/')))
|
if ((p = strrchr(path, '/')))
|
||||||
{
|
{
|
||||||
p++;
|
p++;
|
||||||
sprintf(p, "wineconsole %d", hEvent);
|
sprintf(p, "wineconsole -- --use-event=%d", hEvent);
|
||||||
if (CreateProcessA(NULL, path, NULL, NULL, TRUE, DETACHED_PROCESS, NULL, NULL, &si, &pi))
|
if (CreateProcessA(NULL, path, NULL, NULL, TRUE, DETACHED_PROCESS, NULL, NULL, &si, &pi))
|
||||||
goto succeed;
|
goto succeed;
|
||||||
sprintf(p, "programs/wineconsole/wineconsole %d", hEvent);
|
sprintf(p, "programs/wineconsole/wineconsole -- --use-event=%d", hEvent);
|
||||||
if (CreateProcessA(NULL, path, NULL, NULL, TRUE, DETACHED_PROCESS, NULL, NULL, &si, &pi))
|
if (CreateProcessA(NULL, path, NULL, NULL, TRUE, DETACHED_PROCESS, NULL, NULL, &si, &pi))
|
||||||
goto succeed;
|
goto succeed;
|
||||||
}
|
}
|
||||||
|
@ -140,7 +140,7 @@ static BOOL start_console_renderer(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* then try the regular PATH */
|
/* then try the regular PATH */
|
||||||
sprintf(buffer, "wineconsole %d\n", hEvent);
|
sprintf(buffer, "wineconsole -- --use-event=%d\n", hEvent);
|
||||||
if (CreateProcessA(NULL, buffer, NULL, NULL, TRUE, DETACHED_PROCESS, NULL, NULL, &si, &pi))
|
if (CreateProcessA(NULL, buffer, NULL, NULL, TRUE, DETACHED_PROCESS, NULL, NULL, &si, &pi))
|
||||||
goto succeed;
|
goto succeed;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue