Eric Pouech : dbghelp: Implemented SearchTreeForFileW.
Alexandre Julliard
julliard at wine.codeweavers.com
Thu Feb 22 05:56:45 CST 2007
Module: wine
Branch: master
Commit: 9e1f9ec19e46a576f8921658ecc7fb1a7e7b032c
URL: http://source.winehq.org/git/wine.git/?a=commit;h=9e1f9ec19e46a576f8921658ecc7fb1a7e7b032c
Author: Eric Pouech <eric.pouech at wanadoo.fr>
Date: Wed Feb 21 21:55:41 2007 +0100
dbghelp: Implemented SearchTreeForFileW.
---
dlls/dbghelp/dbghelp.spec | 4 ++--
dlls/dbghelp/path.c | 26 ++++++++++++++++++++++----
include/dbghelp.h | 1 +
3 files changed, 25 insertions(+), 6 deletions(-)
diff --git a/dlls/dbghelp/dbghelp.spec b/dlls/dbghelp/dbghelp.spec
index 0b5a1e4..7c0433b 100644
--- a/dlls/dbghelp/dbghelp.spec
+++ b/dlls/dbghelp/dbghelp.spec
@@ -26,8 +26,8 @@
@ stdcall MapDebugInformation(long str str long)
@ stdcall MiniDumpReadDumpStream(ptr long ptr ptr ptr)
@ stdcall MiniDumpWriteDump(ptr long ptr long long long long)
-@ stdcall SearchTreeForFile(str str str)
-@ stub SearchTreeForFileW
+@ stdcall SearchTreeForFile(str str ptr)
+@ stdcall SearchTreeForFileW(wstr wstr ptr)
@ stdcall StackWalk(long long long ptr ptr ptr ptr ptr ptr)
@ stdcall StackWalk64(long long long ptr ptr ptr ptr ptr ptr)
@ stub SymAddSymbol
diff --git a/dlls/dbghelp/path.c b/dlls/dbghelp/path.c
index fb7300f..d1273b6 100644
--- a/dlls/dbghelp/path.c
+++ b/dlls/dbghelp/path.c
@@ -273,14 +273,32 @@ static BOOL do_search(const char* file, char* buffer, BOOL recurse,
}
/***********************************************************************
+ * SearchTreeForFileW (DBGHELP.@)
+ */
+BOOL WINAPI SearchTreeForFileW(PCWSTR root, PCWSTR file, PWSTR buffer)
+{
+ TRACE("(%s, %s, %p)\n",
+ debugstr_w(root), debugstr_w(file), buffer);
+ strcpyW(buffer, root);
+ return do_searchW(file, buffer, TRUE, NULL, NULL);
+}
+
+/***********************************************************************
* SearchTreeForFile (DBGHELP.@)
*/
BOOL WINAPI SearchTreeForFile(PCSTR root, PCSTR file, PSTR buffer)
{
- TRACE("(%s, %s, %p)\n",
- debugstr_a(root), debugstr_a(file), buffer);
- strcpy(buffer, root);
- return do_search(file, buffer, TRUE, NULL, NULL);
+ WCHAR rootW[MAX_PATH];
+ WCHAR fileW[MAX_PATH];
+ WCHAR bufferW[MAX_PATH];
+ BOOL ret;
+
+ MultiByteToWideChar(CP_ACP, 0, root, -1, rootW, MAX_PATH);
+ MultiByteToWideChar(CP_ACP, 0, file, -1, fileW, MAX_PATH);
+ ret = SearchTreeForFileW(rootW, fileW, bufferW);
+ if (ret)
+ WideCharToMultiByte(CP_ACP, 0, bufferW, -1, buffer, MAX_PATH, NULL, NULL);
+ return ret;
}
/******************************************************************
diff --git a/include/dbghelp.h b/include/dbghelp.h
index 53c3783..2752f47 100644
--- a/include/dbghelp.h
+++ b/include/dbghelp.h
@@ -1020,6 +1020,7 @@ BOOL WINAPI SymSetSearchPathW(HANDLE, PCWSTR);
DWORD WINAPI GetTimestampForLoadedLibrary(HMODULE);
BOOL WINAPI MakeSureDirectoryPathExists(PCSTR);
BOOL WINAPI SearchTreeForFile(PCSTR, PCSTR, PSTR);
+BOOL WINAPI SearchTreeForFileW(PCWSTR, PCWSTR, PWSTR);
typedef BOOL (CALLBACK *PENUMDIRTREE_CALLBACK)(LPCSTR, PVOID);
BOOL WINAPI EnumDirTree(HANDLE, PCSTR, PCSTR, PSTR, PENUMDIRTREE_CALLBACK, void*);
typedef BOOL (CALLBACK *PENUMDIRTREE_CALLBACKW)(LPCWSTR, PVOID);
More information about the wine-cvs
mailing list