summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/SDL2/src/stdlib/SDL_getenv.c
diff options
context:
space:
mode:
author Miodrag Milanović <mmicko@gmail.com>2023-02-26 19:40:37 +0100
committer GitHub <noreply@github.com>2023-02-27 05:40:37 +1100
commitbd59a0d447b861982429905f186dee8b12f2e777 (patch)
treedc6341c8fb098818039127f758cf3eb0fade986a /3rdparty/SDL2/src/stdlib/SDL_getenv.c
parent28b03e92a84daf79eb3cef75c51c014b2f57807b (diff)
Removed local copy of SDL source and update Android build support. (#10899)
* Removed SDL2 source. * Updated gradle. * Updated SDL2 Java support glue code. * Increased minimum supported Android API version to 24. * Updated required asset files for Android app. * Added proper tag for Android logging. * Added SDL2 hint to make BGFX work on Android.
Diffstat (limited to '3rdparty/SDL2/src/stdlib/SDL_getenv.c')
-rw-r--r--3rdparty/SDL2/src/stdlib/SDL_getenv.c308
1 files changed, 0 insertions, 308 deletions
diff --git a/3rdparty/SDL2/src/stdlib/SDL_getenv.c b/3rdparty/SDL2/src/stdlib/SDL_getenv.c
deleted file mode 100644
index 3fc4119fd27..00000000000
--- a/3rdparty/SDL2/src/stdlib/SDL_getenv.c
+++ /dev/null
@@ -1,308 +0,0 @@
-/*
- Simple DirectMedia Layer
- Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org>
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
-*/
-
-#if defined(__clang_analyzer__) && !defined(SDL_DISABLE_ANALYZE_MACROS)
-#define SDL_DISABLE_ANALYZE_MACROS 1
-#endif
-
-#include "../SDL_internal.h"
-
-#if defined(__WIN32__)
-#include "../core/windows/SDL_windows.h"
-#endif
-
-#include "SDL_stdinc.h"
-
-#if defined(__WIN32__) && (!defined(HAVE_SETENV) || !defined(HAVE_GETENV))
-/* Note this isn't thread-safe! */
-static char *SDL_envmem = NULL; /* Ugh, memory leak */
-static size_t SDL_envmemlen = 0;
-#endif
-
-/* Put a variable into the environment */
-/* Note: Name may not contain a '=' character. (Reference: http://www.unix.com/man-page/Linux/3/setenv/) */
-#if defined(HAVE_SETENV)
-int
-SDL_setenv(const char *name, const char *value, int overwrite)
-{
- /* Input validation */
- if (!name || SDL_strlen(name) == 0 || SDL_strchr(name, '=') != NULL || !value) {
- return (-1);
- }
-
- return setenv(name, value, overwrite);
-}
-#elif defined(__WIN32__)
-int
-SDL_setenv(const char *name, const char *value, int overwrite)
-{
- /* Input validation */
- if (!name || SDL_strlen(name) == 0 || SDL_strchr(name, '=') != NULL || !value) {
- return (-1);
- }
-
- 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. */
- }
- }
- if (!SetEnvironmentVariableA(name, *value ? value : NULL)) {
- return -1;
- }
- return 0;
-}
-/* We have a real environment table, but no real setenv? Fake it w/ putenv. */
-#elif (defined(HAVE_GETENV) && defined(HAVE_PUTENV) && !defined(HAVE_SETENV))
-int
-SDL_setenv(const char *name, const char *value, int overwrite)
-{
- size_t len;
- char *new_variable;
-
- /* Input validation */
- if (!name || SDL_strlen(name) == 0 || SDL_strchr(name, '=') != NULL || !value) {
- return (-1);
- }
-
- if (getenv(name) != NULL) {
- if (overwrite) {
- unsetenv(name);
- } else {
- return 0; /* leave the existing one there. */
- }
- }
-
- /* This leaks. Sorry. Get a better OS so we don't have to do this. */
- len = SDL_strlen(name) + SDL_strlen(value) + 2;
- new_variable = (char *) SDL_malloc(len);
- if (!new_variable) {
- return (-1);
- }
-
- SDL_snprintf(new_variable, len, "%s=%s", name, value);
- return putenv(new_variable);
-}
-#else /* roll our own */
-static char **SDL_env = (char **) 0;
-int
-SDL_setenv(const char *name, const char *value, int overwrite)
-{
- int added;
- int len, i;
- char **new_env;
- char *new_variable;
-
- /* Input validation */
- if (!name || SDL_strlen(name) == 0 || SDL_strchr(name, '=') != NULL || !value) {
- return (-1);
- }
-
- /* See if it already exists */
- if (!overwrite && SDL_getenv(name)) {
- return 0;
- }
-
- /* Allocate memory for the variable */
- len = SDL_strlen(name) + SDL_strlen(value) + 2;
- new_variable = (char *) SDL_malloc(len);
- if (!new_variable) {
- return (-1);
- }
-
- SDL_snprintf(new_variable, len, "%s=%s", name, value);
- value = new_variable + SDL_strlen(name) + 1;
- name = new_variable;
-
- /* Actually put it into the environment */
- added = 0;
- i = 0;
- if (SDL_env) {
- /* Check to see if it's already there... */
- len = (value - name);
- for (; SDL_env[i]; ++i) {
- if (SDL_strncmp(SDL_env[i], name, len) == 0) {
- break;
- }
- }
- /* If we found it, just replace the entry */
- if (SDL_env[i]) {
- SDL_free(SDL_env[i]);
- SDL_env[i] = new_variable;
- added = 1;
- }
- }
-
- /* Didn't find it in the environment, expand and add */
- if (!added) {
- new_env = SDL_realloc(SDL_env, (i + 2) * sizeof(char *));
- if (new_env) {
- SDL_env = new_env;
- SDL_env[i++] = new_variable;
- SDL_env[i++] = (char *) 0;
- added = 1;
- } else {
- SDL_free(new_variable);
- }
- }
- return (added ? 0 : -1);
-}
-#endif
-
-/* Retrieve a variable named "name" from the environment */
-#if defined(HAVE_GETENV)
-char *
-SDL_getenv(const char *name)
-{
- /* Input validation */
- if (!name || SDL_strlen(name)==0) {
- return NULL;
- }
-
- return getenv(name);
-}
-#elif defined(__WIN32__)
-char *
-SDL_getenv(const char *name)
-{
- size_t bufferlen;
-
- /* Input validation */
- if (!name || SDL_strlen(name)==0) {
- return NULL;
- }
-
- bufferlen =
- GetEnvironmentVariableA(name, SDL_envmem, (DWORD) SDL_envmemlen);
- if (bufferlen == 0) {
- return NULL;
- }
- if (bufferlen > SDL_envmemlen) {
- char *newmem = (char *) SDL_realloc(SDL_envmem, bufferlen);
- if (newmem == NULL) {
- return NULL;
- }
- SDL_envmem = newmem;
- SDL_envmemlen = bufferlen;
- GetEnvironmentVariableA(name, SDL_envmem, (DWORD) SDL_envmemlen);
- }
- return SDL_envmem;
-}
-#else
-char *
-SDL_getenv(const char *name)
-{
- int len, i;
- char *value;
-
- /* Input validation */
- if (!name || SDL_strlen(name)==0) {
- return NULL;
- }
-
- value = (char *) 0;
- if (SDL_env) {
- len = SDL_strlen(name);
- for (i = 0; SDL_env[i] && !value; ++i) {
- if ((SDL_strncmp(SDL_env[i], name, len) == 0) &&
- (SDL_env[i][len] == '=')) {
- value = &SDL_env[i][len + 1];
- }
- }
- }
- return value;
-}
-#endif
-
-
-#ifdef TEST_MAIN
-#include <stdio.h>
-
-int
-main(int argc, char *argv[])
-{
- char *value;
-
- printf("Checking for non-existent variable... ");
- fflush(stdout);
- if (!SDL_getenv("EXISTS")) {
- printf("okay\n");
- } else {
- printf("failed\n");
- }
- printf("Setting FIRST=VALUE1 in the environment... ");
- fflush(stdout);
- if (SDL_setenv("FIRST", "VALUE1", 0) == 0) {
- printf("okay\n");
- } else {
- printf("failed\n");
- }
- printf("Getting FIRST from the environment... ");
- fflush(stdout);
- value = SDL_getenv("FIRST");
- if (value && (SDL_strcmp(value, "VALUE1") == 0)) {
- printf("okay\n");
- } else {
- printf("failed\n");
- }
- printf("Setting SECOND=VALUE2 in the environment... ");
- fflush(stdout);
- if (SDL_setenv("SECOND", "VALUE2", 0) == 0) {
- printf("okay\n");
- } else {
- printf("failed\n");
- }
- printf("Getting SECOND from the environment... ");
- fflush(stdout);
- value = SDL_getenv("SECOND");
- if (value && (SDL_strcmp(value, "VALUE2") == 0)) {
- printf("okay\n");
- } else {
- printf("failed\n");
- }
- printf("Setting FIRST=NOVALUE in the environment... ");
- fflush(stdout);
- if (SDL_setenv("FIRST", "NOVALUE", 1) == 0) {
- printf("okay\n");
- } else {
- printf("failed\n");
- }
- printf("Getting FIRST from the environment... ");
- fflush(stdout);
- value = SDL_getenv("FIRST");
- if (value && (SDL_strcmp(value, "NOVALUE") == 0)) {
- printf("okay\n");
- } else {
- printf("failed\n");
- }
- printf("Checking for non-existent variable... ");
- fflush(stdout);
- if (!SDL_getenv("EXISTS")) {
- printf("okay\n");
- } else {
- printf("failed\n");
- }
- return (0);
-}
-#endif /* TEST_MAIN */
-
-/* vi: set ts=4 sw=4 expandtab: */