mirror of
https://github.com/libsdl-org/SDL.git
synced 2025-11-11 04:55:23 +00:00
@@ -345,4 +345,32 @@ done:
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
char *SDL_SYS_GetCurrentDirectory(void)
|
||||
{
|
||||
WCHAR *wstr = NULL;
|
||||
DWORD buflen = 0;
|
||||
while (true) {
|
||||
const DWORD bw = GetCurrentDirectoryW(buflen, wstr);
|
||||
if (bw == 0) {
|
||||
WIN_SetError("GetCurrentDirectoryW failed");
|
||||
return NULL;
|
||||
} else if (bw < buflen) {
|
||||
break; // we got it!
|
||||
}
|
||||
|
||||
void *ptr = SDL_realloc(wstr, bw * sizeof (WCHAR));
|
||||
if (!ptr) {
|
||||
SDL_free(wstr);
|
||||
return NULL;
|
||||
}
|
||||
wstr = (WCHAR *) ptr;
|
||||
buflen = bw;
|
||||
}
|
||||
|
||||
char *retval = WIN_StringToUTF8W(wstr);
|
||||
SDL_free(wstr);
|
||||
return retval;
|
||||
}
|
||||
|
||||
#endif // SDL_FILESYSTEM_WINDOWS
|
||||
|
||||
Reference in New Issue
Block a user