Module: wine Branch: master Commit: 9e07d6787f70b239ce28b1d012a04ce8d178e7c1 URL: http://source.winehq.org/git/wine.git/?a=commit;h=9e07d6787f70b239ce28b1d012...
Author: Damjan Jovanovic damjan.jov@gmail.com Date: Thu Jul 12 07:27:25 2007 +0200
ntdll: Use the win16 current directory for win16 processes.
---
dlls/ntdll/env.c | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-)
diff --git a/dlls/ntdll/env.c b/dlls/ntdll/env.c index fd6f185..cc2a1f5 100644 --- a/dlls/ntdll/env.c +++ b/dlls/ntdll/env.c @@ -29,6 +29,7 @@ #include "winternl.h" #include "wine/unicode.h" #include "wine/debug.h" +#include "thread.h" #include "ntdll_misc.h"
WINE_DEFAULT_DEBUG_CHANNEL(environ); @@ -431,7 +432,13 @@ NTSTATUS WINAPI RtlCreateProcessParameters( RTL_USER_PROCESS_PARAMETERS **result RtlAcquirePebLock(); cur_params = NtCurrentTeb()->Peb->ProcessParameters; if (!DllPath) DllPath = &cur_params->DllPath; - if (!CurrentDirectoryName) CurrentDirectoryName = &cur_params->CurrentDirectory.DosPath; + if (!CurrentDirectoryName) + { + if (NtCurrentTeb()->Tib.SubSystemTib) /* FIXME: hack */ + CurrentDirectoryName = &((WIN16_SUBSYSTEM_TIB *)NtCurrentTeb()->Tib.SubSystemTib)->curdir.DosPath; + else + CurrentDirectoryName = &cur_params->CurrentDirectory.DosPath; + } if (!CommandLine) CommandLine = ImagePathName; if (!Environment) Environment = cur_params->Environment; if (!WindowTitle) WindowTitle = &empty_str;