mirror of https://github.com/libsdl-org/SDL.git
dynapi: use DosScanEnv() for os/2.
(cherry picked from commit ee49025f80)
This commit is contained in:
parent
8b0c9e1dce
commit
63bb1a8583
|
|
@ -440,19 +440,24 @@ extern SDL_NORETURN void SDL_ExitProcess(int exitcode);
|
||||||
|
|
||||||
static void SDL_InitDynamicAPILocked(void)
|
static void SDL_InitDynamicAPILocked(void)
|
||||||
{
|
{
|
||||||
|
SDL_DYNAPI_ENTRYFN entry = NULL; /* funcs from here by default. */
|
||||||
|
SDL_bool use_internal = SDL_TRUE;
|
||||||
|
|
||||||
/* this can't use SDL_getenv_REAL, because it might allocate memory before the app can set their allocator */
|
/* this can't use SDL_getenv_REAL, because it might allocate memory before the app can set their allocator */
|
||||||
#if defined(WIN32) || defined(_WIN32) || defined(__CYGWIN__)
|
#if defined(WIN32) || defined(_WIN32) || defined(__CYGWIN__)
|
||||||
/* We've always used LoadLibraryA for this, so this has never worked with Unicode paths on Windows. Sorry. */
|
/* We've always used LoadLibraryA for this, so this has never worked with Unicode paths on Windows. Sorry. */
|
||||||
char envbuf[512]; /* overflows will just report as environment variable being unset, but LoadLibraryA has a MAX_PATH of 260 anyhow, apparently. */
|
char envbuf[512]; /* overflows will just report as environment variable being unset, but LoadLibraryA has a MAX_PATH of 260 anyhow, apparently. */
|
||||||
const DWORD rc = GetEnvironmentVariableA(SDL_DYNAMIC_API_ENVVAR, envbuf, (DWORD) sizeof (envbuf));
|
const DWORD rc = GetEnvironmentVariableA(SDL_DYNAMIC_API_ENVVAR, envbuf, (DWORD) sizeof (envbuf));
|
||||||
char *libname = ((rc != 0) && (rc < sizeof (envbuf))) ? envbuf : NULL;
|
char *libname = ((rc != 0) && (rc < sizeof (envbuf))) ? envbuf : NULL;
|
||||||
|
#elif defined(__OS2__)
|
||||||
|
char * libname;
|
||||||
|
if (DosScanEnv(SDL_DYNAMIC_API_ENVVAR, &libname) != NO_ERROR) {
|
||||||
|
libname = NULL;
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
char *libname = getenv(SDL_DYNAMIC_API_ENVVAR);
|
char *libname = getenv(SDL_DYNAMIC_API_ENVVAR);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
SDL_DYNAPI_ENTRYFN entry = NULL; /* funcs from here by default. */
|
|
||||||
SDL_bool use_internal = SDL_TRUE;
|
|
||||||
|
|
||||||
if (libname) {
|
if (libname) {
|
||||||
while (*libname && !entry) {
|
while (*libname && !entry) {
|
||||||
char *ptr = libname;
|
char *ptr = libname;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue