From 1ac2b1e3c7b83ba5f696c6f51765fa276da2af62 Mon Sep 17 00:00:00 2001 From: Eric Pouech Date: Sun, 25 Nov 2001 00:49:36 +0000 Subject: [PATCH] Now passing event with --use-event to let programs starting with digits being run. --- programs/wineconsole/wineconsole.c | 11 +++++++++-- win32/console.c | 14 +++++++------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/programs/wineconsole/wineconsole.c b/programs/wineconsole/wineconsole.c index 38ba58d424a..44f400b5094 100644 --- a/programs/wineconsole/wineconsole.c +++ b/programs/wineconsole/wineconsole.c @@ -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 used when a new console is created (AllocConsole) + * wineconsole --use-event= used when a new console is created (AllocConsole) * wineconsole used to start the program 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 , 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); diff --git a/win32/console.c b/win32/console.c index 9544d6c03d5..25e3c82c55d 100644 --- a/win32/console.c +++ b/win32/console.c @@ -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;