Patched stdlib changes to compile on Windows.
diff --git a/src/atomic/SDL_atomic.c b/src/atomic/SDL_atomic.c
index 60d6f51..265d0bd5 100644
--- a/src/atomic/SDL_atomic.c
+++ b/src/atomic/SDL_atomic.c
@@ -152,7 +152,9 @@
void*
SDL_AtomicSetPtr(void **a, void *v)
{
-#ifdef HAVE_MSC_ATOMICS
+#if defined(HAVE_MSC_ATOMICS) && (_M_IX86)
+ return (void *) _InterlockedExchange((long *)a, (long) v);
+#elif defined(HAVE_MSC_ATOMICS) && (!_M_IX86)
return _InterlockedExchangePointer(a, v);
#elif defined(HAVE_GCC_ATOMICS)
return __sync_lock_test_and_set(a, v);
diff --git a/src/stdlib/SDL_getenv.c b/src/stdlib/SDL_getenv.c
index 10fa7c5..55b93e3 100644
--- a/src/stdlib/SDL_getenv.c
+++ b/src/stdlib/SDL_getenv.c
@@ -26,13 +26,12 @@
#include "SDL_stdinc.h"
-#if !defined(SDL_setenv) && defined(__WIN32__)
+#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 */
#if defined(HAVE_SETENV)
int
diff --git a/src/stdlib/SDL_string.c b/src/stdlib/SDL_string.c
index d291f38..be07ebb 100644
--- a/src/stdlib/SDL_string.c
+++ b/src/stdlib/SDL_string.c
@@ -986,7 +986,7 @@
}
#else
int
-SDL_vsscanf(const char *text, const char *fmt, ...)
+SDL_vsscanf(const char *text, const char *fmt, va_list ap)
{
int retval = 0;