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;
|
||||
}
|
||||
|
||||
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
|
||||
*
|
||||
* 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
|
||||
* a freshly created console
|
||||
*/
|
||||
|
@ -458,7 +465,7 @@ int PASCAL WINECON_WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPCSTR lpCmdLine, U
|
|||
unsigned evt;
|
||||
|
||||
/* 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;
|
||||
ret = SetEvent((HANDLE)evt);
|
||||
|
|
|
@ -85,14 +85,14 @@ static BOOL start_console_renderer(void)
|
|||
/* first try environment variable */
|
||||
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))
|
||||
goto succeed;
|
||||
ERR("Couldn't launch Wine console from WINECONSOLE env var... trying default access\n");
|
||||
}
|
||||
|
||||
/* 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))
|
||||
goto succeed;
|
||||
|
||||
|
@ -104,10 +104,10 @@ static BOOL start_console_renderer(void)
|
|||
if ((p = strrchr(strcpy( path, full_argv0 ), '/')))
|
||||
{
|
||||
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))
|
||||
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))
|
||||
goto succeed;
|
||||
}
|
||||
|
@ -127,10 +127,10 @@ static BOOL start_console_renderer(void)
|
|||
if ((p = strrchr(path, '/')))
|
||||
{
|
||||
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))
|
||||
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))
|
||||
goto succeed;
|
||||
}
|
||||
|
@ -140,7 +140,7 @@ static BOOL start_console_renderer(void)
|
|||
}
|
||||
|
||||
/* 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))
|
||||
goto succeed;
|
||||
|
||||
|
|
Loading…
Reference in New Issue