From 2ba71f27c46dc38b76e932b1b1967d96a9b9f107 Mon Sep 17 00:00:00 2001 From: Michael Smith Date: Sun, 21 May 2023 21:48:52 +0100 Subject: Improve os_dlfile() interface Might as well return the length since we have it anyway. Also this maybe fixes the totally busted Linux code but it's still untested and probably doesn't work for reasons that will be discovered later on. --- src/os-win32.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/os-win32.h') diff --git a/src/os-win32.h b/src/os-win32.h index 8f554bd..365e2dc 100644 --- a/src/os-win32.h +++ b/src/os-win32.h @@ -53,16 +53,16 @@ static inline void *os_dlsym(void *m, const char *s) { return (void *)GetProcAddress(m, s); } -static inline bool os_dlfile(void *m, unsigned short *buf, int sz) { +static inline int os_dlfile(void *m, unsigned short *buf, int sz) { unsigned int n = GetModuleFileNameW(m, buf, sz); - if (n == 0 || n == sz) return false; + if (n == 0 || n == sz) return -1; // get the canonical capitalisation, as for some reason GetModuleFileName() // returns all lowercase. this doesn't really matter except it looks nicer GetLongPathNameW(buf, buf, n + 1); // the drive letter will also be lower case, if it is an actual drive letter // of course. it should be; I'm not gonna lose sleep over UNC paths and such if (buf[0] >= L'a' && buf[0] <= L'z' && buf[1] == L':') buf[0] &= ~32u; - return true; + return n; } static inline bool os_mprot(void *addr, int len, int fl) { -- cgit v1.2.3