[1/3] kernel32: use an appropriate function for conversion of unix cwd
Vincent Povirk
madewokherd+8cd9 at gmail.com
Sun Apr 5 14:29:11 CDT 2009
This patchset should fix bug 15883.
Vincent Povirk
-------------- next part --------------
From e3562bf62f6f518835458c4eb042b48f4998170d Mon Sep 17 00:00:00 2001
From: Vincent Povirk <madewokherd at gmail.com>
Date: Sun, 5 Apr 2009 14:15:23 -0500
Subject: [PATCH] kernel32: use an appropriate function for conversion of unix cwd
---
dlls/kernel32/kernel_private.h | 3 +++
dlls/kernel32/process.c | 9 ++++-----
2 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/dlls/kernel32/kernel_private.h b/dlls/kernel32/kernel_private.h
index b23aedf..70b8f0e 100644
--- a/dlls/kernel32/kernel_private.h
+++ b/dlls/kernel32/kernel_private.h
@@ -116,6 +116,9 @@ extern BOOL load_winedos(void);
/* environ.c */
extern void ENV_CopyStartupInformation(void);
+/* path.c */
+WCHAR * CDECL wine_get_dos_file_name(LPCSTR);
+
/* computername.c */
extern void COMPUTERNAME_Init(void);
diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c
index 624d4de..98dca63 100644
--- a/dlls/kernel32/process.c
+++ b/dlls/kernel32/process.c
@@ -788,12 +788,11 @@ static void init_current_directory( CURDIR *cur_dir )
if (cwd)
{
- WCHAR *dirW;
- int lenW = MultiByteToWideChar( CP_UNIXCP, 0, cwd, -1, NULL, 0 );
- if ((dirW = HeapAlloc( GetProcessHeap(), 0, lenW * sizeof(WCHAR) )))
+ WCHAR *cwd_dos;
+ cwd_dos = wine_get_dos_file_name( cwd );
+ if (cwd_dos)
{
- MultiByteToWideChar( CP_UNIXCP, 0, cwd, -1, dirW, lenW );
- RtlInitUnicodeString( &dir_str, dirW );
+ RtlInitUnicodeString( &dir_str, cwd_dos );
RtlSetCurrentDirectory_U( &dir_str );
RtlFreeUnicodeString( &dir_str );
}
--
1.5.4.3
More information about the wine-patches
mailing list