Commit 17c203ea authored by Stefan Dösinger's avatar Stefan Dösinger Committed by Alexandre Julliard

msvcp140: Implement _Temp_get.

parent 427f3599
......@@ -3718,7 +3718,7 @@
@ stub _Strxfrm
@ cdecl _Symlink(wstr wstr) tr2_sys__Symlink_wchar
@ stub _Symlink_get
@ stub _Temp_get
@ cdecl _Temp_get(ptr)
@ stub _Thrd_abort
@ cdecl _Thrd_create(ptr ptr ptr) _Thrd_create
@ cdecl -norelay _Thrd_current()
......
......@@ -178,6 +178,7 @@ static WCHAR* (__cdecl *p_Read_dir)(WCHAR*, void*, enum file_type*);
static MSVCP_bool (__cdecl *p_Remove_dir)(WCHAR const*);
static enum file_type (__cdecl *p_Stat)(WCHAR const *, int *);
static int (__cdecl *p_Symlink)(WCHAR const*, WCHAR const*);
static WCHAR* (__cdecl *p_Temp_get)(WCHAR *);
static int (__cdecl *p_To_byte)(const WCHAR *src, char *dst);
static int (__cdecl *p_To_wide)(const char *src, WCHAR *dst);
static int (__cdecl *p_Unlink)(WCHAR const*);
......@@ -260,6 +261,7 @@ static BOOL init(void)
SET(p_Remove_dir, "_Remove_dir");
SET(p_Stat, "_Stat");
SET(p_Symlink, "_Symlink");
SET(p_Temp_get, "_Temp_get");
SET(p_To_byte, "_To_byte");
SET(p_To_wide, "_To_wide");
SET(p_Unlink, "_Unlink");
......@@ -1060,6 +1062,29 @@ static void test_Unlink(void)
ok(SetCurrentDirectoryW(current_path), "SetCurrentDirectoryW failed\n");
}
static void test_Temp_get(void)
{
WCHAR path[MAX_PATH + 1], temp_path[MAX_PATH];
WCHAR *retval;
DWORD len;
GetTempPathW(ARRAY_SIZE(temp_path), temp_path);
/* This crashes on Windows, the input pointer is not validated. */
if (0)
{
retval = p_Temp_get(NULL);
ok(!retval, "_Temp_get(): Got %p\n", retval);
}
memset(path, 0xaa, sizeof(path));
retval = p_Temp_get(path);
ok(retval == path, "_Temp_get(): Got %p, expected %p\n", retval, path);
ok(!wcscmp(path, temp_path), "Expected path %s, got %s\n", wine_dbgstr_w(temp_path), wine_dbgstr_w(path));
len = wcslen(path);
todo_wine ok(path[len + 1] == 0xaaaa, "Too many bytes were zeroed - %x\n", path[len + 1]);
}
START_TEST(msvcp140)
{
if(!init()) return;
......@@ -1078,5 +1103,6 @@ START_TEST(msvcp140)
test_Stat();
test_dir_operation();
test_Unlink();
test_Temp_get();
FreeLibrary(msvcp);
}
......@@ -15734,6 +15734,12 @@ enum file_type __cdecl _Lstat(WCHAR const* path, int* permissions)
return _Stat(path, permissions);
}
WCHAR * __cdecl _Temp_get(WCHAR *dst)
{
GetTempPathW(MAX_PATH, dst);
return dst;
}
/* ??1_Winit@std@@QAE@XZ */
/* ??1_Winit@std@@QAE@XZ */
DEFINE_THISCALL_WRAPPER(_Winit_dtor, 4)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment