Eric Pouech : dbghelp:
Added helper to get the basename + extension from full filename.
Alexandre Julliard
julliard at wine.codeweavers.com
Tue Mar 13 16:56:34 CDT 2007
Module: wine
Branch: master
Commit: a6a57c934c19c6c2c4efcb1917af066924db0dd5
URL: http://source.winehq.org/git/wine.git/?a=commit;h=a6a57c934c19c6c2c4efcb1917af066924db0dd5
Author: Eric Pouech <eric.pouech at wanadoo.fr>
Date: Tue Mar 13 17:32:52 2007 +0100
dbghelp: Added helper to get the basename + extension from full filename.
---
dlls/dbghelp/module.c | 22 +++++++++++++++-------
1 files changed, 15 insertions(+), 7 deletions(-)
diff --git a/dlls/dbghelp/module.c b/dlls/dbghelp/module.c
index c906d1f..e70ffe5 100644
--- a/dlls/dbghelp/module.c
+++ b/dlls/dbghelp/module.c
@@ -64,17 +64,25 @@ static int match_ext(const WCHAR* ptr, size_t len)
return 0;
}
+static const WCHAR* get_filename(const WCHAR* name, const WCHAR* endptr)
+{
+ const WCHAR* ptr;
+
+ if (!endptr) endptr = name + strlenW(name);
+ for (ptr = endptr - 1; ptr >= name; ptr--)
+ {
+ if (*ptr == '/' || *ptr == '\\') break;
+ }
+ return ++ptr;
+}
+
static void module_fill_module(const WCHAR* in, WCHAR* out, size_t size)
{
- const WCHAR *ptr,*endptr;
+ const WCHAR *ptr, *endptr;
size_t len, l;
- endptr = in + strlenW(in);
- for (ptr = endptr - 1;
- ptr >= in && *ptr != '/' && *ptr != '\\';
- ptr--);
- ptr++;
- len = min(endptr-ptr,size-1);
+ ptr = get_filename(in, endptr = in + strlenW(in));
+ len = min(endptr - ptr, size - 1);
memcpy(out, ptr, len * sizeof(WCHAR));
out[len] = '\0';
if (len > 4 && (l = match_ext(out, len)))
More information about the wine-cvs
mailing list