Dmitry Timoshkov : shell32: Add parameter formatting rule to the command line if there isn't any.

Alexandre Julliard julliard at wine.codeweavers.com
Tue Mar 14 12:04:34 CST 2006


Module: wine
Branch: refs/heads/master
Commit: 52645e11444cbbd62ad07efa0c6c7873facc35bc
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=52645e11444cbbd62ad07efa0c6c7873facc35bc

Author: Dmitry Timoshkov <dmitry at codeweavers.com>
Date:   Mon Mar 13 13:44:41 2006 +0800

shell32: Add parameter formatting rule to the command line if there isn't any.

---

 dlls/shell32/shlexec.c |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/dlls/shell32/shlexec.c b/dlls/shell32/shlexec.c
index f5b1e88..1f4638a 100644
--- a/dlls/shell32/shlexec.c
+++ b/dlls/shell32/shlexec.c
@@ -848,7 +848,14 @@ static UINT_PTR execute_from_key(LPWSTR 
         /* Is there a replace() function anywhere? */
         cmdlen /= sizeof(WCHAR);
         cmd[cmdlen] = '\0';
-        SHELL_ArgifyW(param, sizeof(param)/sizeof(WCHAR), cmd, lpFile, psei->lpIDList, szCommandline);
+        if (!SHELL_ArgifyW(param, sizeof(param)/sizeof(WCHAR), cmd, lpFile, psei->lpIDList, szCommandline))
+        {
+            /* looks like there is no %1 param in the cmd, add one */
+            static const WCHAR oneW[] = { ' ','\"','%','1','\"',0 };
+            strcatW(cmd, oneW);
+            SHELL_ArgifyW(param, sizeof(param)/sizeof(WCHAR), cmd, lpFile, psei->lpIDList, szCommandline);
+        }
+        TRACE("executing: %s\n", debugstr_w(param));
         retval = execfunc(param, env, FALSE, psei, psei_out);
     }
     else




More information about the wine-cvs mailing list