[try2] kernel32: Add partial stub for NeedCurrentDirectoryForExePath
Kirill K. Smirnov
lich at math.spbu.ru
Wed Apr 18 06:54:42 CDT 2007
Please, ignore my previous attempt.
-------------- next part --------------
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 @@ # @ stub MapUserPhysicalPagesScatter
@ 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..7219a28 100644
--- a/dlls/kernel32/path.c
+++ b/dlls/kernel32/path.c
@@ -1511,6 +1511,44 @@ UINT WINAPI GetSystemWow64DirectoryA( LP
/***********************************************************************
+ * 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 page at http://msdn2.microsoft.com/en-us/library/ms684269.aspx
+ * mentions some 'registry location'. We do not use register.
+ */
+ FIXME("(%s): partial stub\n", debugstr_w(name));
+
+ /* Check name first */
+ if (strchrW(name, '\\'))
+ return TRUE;
+
+ /* Then check the existence of 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
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);
More information about the wine-patches
mailing list