dbghelp: Added helper to get the basename + extension from full filename.
This commit is contained in:
parent
b68e0cef1b
commit
a6a57c934c
|
@ -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)))
|
||||||
|
|
Loading…
Reference in New Issue