Alexandre Julliard : kernel32: Get the current directory from the process parameters in create_cmd_process ().

Alexandre Julliard julliard at winehq.org
Tue Oct 16 15:53:07 CDT 2018


Module: wine
Branch: master
Commit: c4d85843c08d72c4c15529a3a4c63a9611bf9bb1
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=c4d85843c08d72c4c15529a3a4c63a9611bf9bb1

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Tue Oct 16 21:50:58 2018 +0200

kernel32: Get the current directory from the process parameters in create_cmd_process().

Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/kernel32/process.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c
index 6e3b51e..f9456ae 100644
--- a/dlls/kernel32/process.c
+++ b/dlls/kernel32/process.c
@@ -2469,7 +2469,7 @@ static BOOL create_vdm_process( LPSECURITY_ATTRIBUTES psa, LPSECURITY_ATTRIBUTES
  *
  * Create a new cmd shell process for a .BAT file.
  */
-static BOOL create_cmd_process( LPCWSTR cur_dir, LPSECURITY_ATTRIBUTES psa, LPSECURITY_ATTRIBUTES tsa,
+static BOOL create_cmd_process( LPSECURITY_ATTRIBUTES psa, LPSECURITY_ATTRIBUTES tsa,
                                 BOOL inherit, DWORD flags, LPSTARTUPINFOW startup,
                                 const RTL_USER_PROCESS_PARAMETERS *params,
                                 LPPROCESS_INFORMATION info )
@@ -2480,7 +2480,7 @@ static BOOL create_cmd_process( LPCWSTR cur_dir, LPSECURITY_ATTRIBUTES psa, LPSE
     static const WCHAR slashscW[] = {' ','/','s','/','c',' ',0};
     static const WCHAR quotW[] = {'"',0};
     WCHAR comspec[MAX_PATH];
-    WCHAR *newcmdline;
+    WCHAR *newcmdline, *cur_dir = NULL;
     BOOL ret;
 
     if (!GetEnvironmentVariableW( comspecW, comspec, ARRAY_SIZE( comspec )))
@@ -2498,6 +2498,7 @@ static BOOL create_cmd_process( LPCWSTR cur_dir, LPSECURITY_ATTRIBUTES psa, LPSE
     strcatW( newcmdline, quotW );
     strcatW( newcmdline, params->CommandLine.Buffer );
     strcatW( newcmdline, quotW );
+    if (params->CurrentDirectory.DosPath.Length) cur_dir = params->CurrentDirectory.DosPath.Buffer;
     ret = CreateProcessW( comspec, newcmdline, psa, tsa, inherit,
                           flags | CREATE_UNICODE_ENVIRONMENT, params->Environment, cur_dir,
                           startup, info );
@@ -2705,7 +2706,7 @@ static BOOL create_process_impl( LPCWSTR app_name, LPWSTR cmd_line, LPSECURITY_A
             if (!strcmpiW( p, batW ) || !strcmpiW( p, cmdW ) )
             {
                 TRACE( "starting %s as batch binary\n", debugstr_w(name) );
-                retv = create_cmd_process( cur_dir, process_attr, thread_attr,
+                retv = create_cmd_process( process_attr, thread_attr,
                                            inherit, flags, startup_info, params, info );
                 break;
             }




More information about the wine-cvs mailing list