cmd: Dont assume cmd.exe is the first argument (try 2)
Alistair Leslie-Hughes
leslie_alistair at hotmail.com
Sun Mar 16 02:39:29 CDT 2014
Hi,
Fixes http://bugs.winehq.org/show_bug.cgi?id=35134
Changelog:
cmd: Dont assume cmd.exe is the first argument
Best Regards
Alistair Leslie-Hughes
-------------- next part --------------
>From cf2d8fe3e18aa4819612a85497ed972955a8d637 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Date: Sat, 15 Mar 2014 20:00:06 +1100
Subject: [PATCH] Dont assume cmd.exe is the first argument
To: wine-patches <wine-patches at winehq.org>
---
programs/cmd/wcmdmain.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/programs/cmd/wcmdmain.c b/programs/cmd/wcmdmain.c
index 647f988..7538d11 100644
--- a/programs/cmd/wcmdmain.c
+++ b/programs/cmd/wcmdmain.c
@@ -2339,6 +2339,7 @@ int wmain (int argc, WCHAR *argvW[])
static const WCHAR offW[] = {'O','F','F','\0'};
static const WCHAR promptW[] = {'P','R','O','M','P','T','\0'};
static const WCHAR defaultpromptW[] = {'$','P','$','G','\0'};
+ static const WCHAR cmdexe[] = {'c','m','d','.','e','x','e','\0'};
CMD_LIST *toExecute = NULL; /* Commands left to be executed */
OSVERSIONINFOW osv;
char osver[50];
@@ -2363,7 +2364,7 @@ int wmain (int argc, WCHAR *argvW[])
*/
cmdLine = GetCommandLineW();
WINE_TRACE("Full commandline '%s'\n", wine_dbgstr_w(cmdLine));
- args = 1; /* start at first arg, skipping cmd.exe itself */
+ args = 0;
opt_c = opt_k = opt_q = opt_s = FALSE;
WCMD_parameter(cmdLine, args, &argPos, TRUE, TRUE);
@@ -2371,6 +2372,10 @@ int wmain (int argc, WCHAR *argvW[])
{
WCHAR c;
WINE_TRACE("Command line parm: '%s'\n", wine_dbgstr_w(argPos));
+ if(args == 0 && strstrW(argPos, cmdexe) != NULL) {
+ continue;
+ }
+
if (argPos[0]!='/' || argPos[1]=='\0') {
args++;
WCMD_parameter(cmdLine, args, &argPos, TRUE, TRUE);
--
1.8.3.2
More information about the wine-patches
mailing list