Commit a6a57c93 authored by Eric Pouech's avatar Eric Pouech Committed by Alexandre Julliard

dbghelp: Added helper to get the basename + extension from full filename.

parent b68e0cef
...@@ -64,17 +64,25 @@ static int match_ext(const WCHAR* ptr, size_t len) ...@@ -64,17 +64,25 @@ static int match_ext(const WCHAR* ptr, size_t len)
return 0; 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) 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; size_t len, l;
endptr = in + strlenW(in); ptr = get_filename(in, endptr = in + strlenW(in));
for (ptr = endptr - 1; len = min(endptr - ptr, size - 1);
ptr >= in && *ptr != '/' && *ptr != '\\';
ptr--);
ptr++;
len = min(endptr-ptr,size-1);
memcpy(out, ptr, len * sizeof(WCHAR)); memcpy(out, ptr, len * sizeof(WCHAR));
out[len] = '\0'; out[len] = '\0';
if (len > 4 && (l = match_ext(out, len))) if (len > 4 && (l = match_ext(out, len)))
......
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