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