Module: wine Branch: master Commit: fff6db62f389f4e6bf974b67926409b84d762faa URL: http://source.winehq.org/git/wine.git/?a=commit;h=fff6db62f389f4e6bf974b6792...
Author: Kirill K. Smirnov lich@math.spbu.ru Date: Wed Apr 25 11:39:02 2007 +0400
kernel32: Add partial stub for NeedCurrentDirectoryForExePath.
---
dlls/kernel32/kernel32.spec | 2 ++ dlls/kernel32/path.c | 37 +++++++++++++++++++++++++++++++++++++ include/winbase.h | 3 +++ 3 files changed, 42 insertions(+), 0 deletions(-)
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec index a675386..4d3d083 100644 --- a/dlls/kernel32/kernel32.spec +++ b/dlls/kernel32/kernel32.spec @@ -799,6 +799,8 @@ @ stdcall MoveFileWithProgressW(wstr wstr ptr ptr long) @ stdcall MulDiv(long long long) @ stdcall MultiByteToWideChar(long long str long ptr long) +@ stdcall NeedCurrentDirectoryForExePathA(str) +@ stdcall NeedCurrentDirectoryForExePathW(wstr) # @ stub NlsConvertIntegerToString # @ stub NlsGetCacheUpdateCount # @ stub NlsResetProcessLocale diff --git a/dlls/kernel32/path.c b/dlls/kernel32/path.c index b195435..eb752f0 100644 --- a/dlls/kernel32/path.c +++ b/dlls/kernel32/path.c @@ -1511,6 +1511,43 @@ UINT WINAPI GetSystemWow64DirectoryA( LPSTR lpBuffer, UINT uSize )
/*********************************************************************** + * NeedCurrentDirectoryForExePathW (KERNEL32.@) + */ +BOOL WINAPI NeedCurrentDirectoryForExePathW( LPCWSTR name ) +{ + static const WCHAR env_name[] = {'N','o','D','e','f','a','u','l','t', + 'C','u','r','r','e','n','t', + 'D','i','r','e','c','t','o','r','y', + 'I','n','E','x','e','P','a','t','h',0}; + WCHAR env_val; + + /* MSDN mentions some 'registry location'. We do not use registry. */ + FIXME("(%s): partial stub\n", debugstr_w(name)); + + if (strchrW(name, '\')) + return TRUE; + + /* Check the existence of the variable, not value */ + if (!GetEnvironmentVariableW( env_name, &env_val, 1 )) + return TRUE; + + return FALSE; +} + + +/*********************************************************************** + * NeedCurrentDirectoryForExePathA (KERNEL32.@) + */ +BOOL WINAPI NeedCurrentDirectoryForExePathA( LPCSTR name ) +{ + WCHAR *nameW; + + if (!(nameW = FILE_name_AtoW( name, FALSE ))) return TRUE; + return NeedCurrentDirectoryForExePathW( nameW ); +} + + +/*********************************************************************** * wine_get_unix_file_name (KERNEL32.@) Not a Windows API * * Return the full Unix file name for a given path. diff --git a/include/winbase.h b/include/winbase.h index 59e7718..da9c547 100644 --- a/include/winbase.h +++ b/include/winbase.h @@ -1839,6 +1839,9 @@ BOOL WINAPI MoveFileWithProgressA(LPCSTR,LPCSTR,LPPROGRESS_ROUTINE,LPVOID BOOL WINAPI MoveFileWithProgressW(LPCWSTR,LPCWSTR,LPPROGRESS_ROUTINE,LPVOID,DWORD); #define MoveFileWithProgress WINELIB_NAME_AW(MoveFileWithProgress) INT WINAPI MulDiv(INT,INT,INT); +BOOL WINAPI NeedCurrentDirectoryForExePathA(LPCSTR); +BOOL WINAPI NeedCurrentDirectoryForExePathW(LPCWSTR); +#define NeedCurrentDirectoryForExePath WINELIB_NAME_AW(NeedCurrentDirectoryForExePath) BOOL WINAPI NotifyChangeEventLog(HANDLE,HANDLE); BOOL WINAPI ObjectCloseAuditAlarmA(LPCSTR,LPVOID,BOOL); BOOL WINAPI ObjectCloseAuditAlarmW(LPCWSTR,LPVOID,BOOL);