Ryujinx-SDL/src/stdlib
Sam Lantinga b5ea3c6d07 Fixed bug 3284 - minor correction for SDL_setenv on _WIN32__ platform
Coriiander

Here is a minor correction for a non-breaking mistake in SDL_setenv for __WIN32__ platform. See below for details.

FILE:
"SDL/src/stdlib/SDL_getenv.c"

FUNCTION: (__WIN32__ platform)
int SDL_setenv(const char *name, const char *value, int overwrite)

CODE:
    if (!overwrite) {
        char ch = 0;
        const size_t len = GetEnvironmentVariableA(name, &ch, sizeof (ch));
        if (len > 0) {
            return 0;  /* asked not to overwrite existing value. */
        }
    }


WHAT'S WRONG:
The 3th argument to GetEnvironmentVariable (being DWORD nSize) must be the number of characters, not the number of bytes. SDL currently passes "the size of 1 char", rather "1". While it is non-breaking (1=1 after all), it is incorrect. Furthermore there is no need to specify the 2nd and 3th arguments at all.

CORRECTION 1: (corrected argument_
    if (!overwrite) {
        char ch = 0;
        const size_t len = GetEnvironmentVariableA(name, &ch, 1);
        if (len > 0) {
            return 0;  /* asked not to overwrite existing value. */
        }
    }

CORRECTION 2: (stripped of unneeded code)
    if (!overwrite) {
        if (GetEnvironmentVariableA(name, NULL, 0) > 0) {
            return 0;  /* asked not to overwrite existing value. */
        }
    }
2017-08-11 21:30:06 -07:00
..
SDL_getenv.c Fixed bug 3284 - minor correction for SDL_setenv on _WIN32__ platform 2017-08-11 21:30:06 -07:00
SDL_iconv.c Updated copyright for 2017 2017-01-01 18:33:28 -08:00
SDL_malloc.c Updated copyright for 2017 2017-01-01 18:33:28 -08:00
SDL_qsort.c Updated copyright for 2017 2017-01-01 18:33:28 -08:00
SDL_stdlib.c Updated copyright for 2017 2017-01-01 18:33:28 -08:00
SDL_string.c Fixed bug 3341 - SDL_sscanf() problem 2017-08-11 19:36:12 -07:00