Now passing event with --use-event to let programs starting with

digits being run.
This commit is contained in:
Eric Pouech 2001-11-25 00:49:36 +00:00 committed by Alexandre Julliard
parent 3f089a1962
commit 1ac2b1e3c7
2 changed files with 16 additions and 9 deletions

View File

@ -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);

View File

@ -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;