Now passing event with --use-event to let programs starting with
digits being run.
diff --git a/programs/wineconsole/wineconsole.c b/programs/wineconsole/wineconsole.c
index 38ba58d..44f400b 100644
--- a/programs/wineconsole/wineconsole.c
+++ b/programs/wineconsole/wineconsole.c
@@ -443,11 +443,18 @@
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 @@
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);
diff --git a/win32/console.c b/win32/console.c
index 9544d6c..25e3c82 100644
--- a/win32/console.c
+++ b/win32/console.c
@@ -85,14 +85,14 @@
/* 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 @@
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 @@
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 @@
}
/* 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;