Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package sdl12_compat for openSUSE:Factory 
checked in at 2025-12-05 16:50:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/sdl12_compat (Old)
 and      /work/SRC/openSUSE:Factory/.sdl12_compat.new.1939 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "sdl12_compat"

Fri Dec  5 16:50:48 2025 rev:10 rq:1321067 version:1.2.72

Changes:
--------
--- /work/SRC/openSUSE:Factory/sdl12_compat/sdl12_compat.changes        
2025-11-01 23:34:45.370823100 +0100
+++ /work/SRC/openSUSE:Factory/.sdl12_compat.new.1939/sdl12_compat.changes      
2025-12-05 16:51:26.899374223 +0100
@@ -1,0 +2,9 @@
+Thu Dec  4 06:41:05 UTC 2025 - Jan Engelhardt <[email protected]>
+
+- Update to release 1.2.72
+  * Allow building without glu.h by defining NO_SDL_GLU
+  * Fixed centering the splash screen in UT2004
+- glu is thus no longer a build requirement and downstream
+  packages need to explicitly list it in their BulidRequires
+
+-------------------------------------------------------------------

Old:
----
  sdl12-compat-1.2.70.tar.gz
  sdl12-compat-1.2.70.tar.gz.sig

New:
----
  sdl12-compat-1.2.72.tar.gz
  sdl12-compat-1.2.72.tar.gz.sig

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ sdl12_compat.spec ++++++
--- /var/tmp/diff_new_pack.4CKCRz/_old  2025-12-05 16:51:28.019421218 +0100
+++ /var/tmp/diff_new_pack.4CKCRz/_new  2025-12-05 16:51:28.019421218 +0100
@@ -19,7 +19,7 @@
 Name:           sdl12_compat
 %define lname libSDL-1_2-0
 %global _lto_cflags %_lto_cflags -ffat-lto-objects
-Version:        1.2.70
+Version:        1.2.72
 Release:        0
 Summary:        SDL-1.2 Compatibility Layer for Simple DirectMedia Layer 2.0
 License:        MIT
@@ -59,7 +59,6 @@
 Group:          Development/Libraries/X11
 Requires:       %lname = %version
 Requires:       pkgconfig(gl)
-Requires:       pkgconfig(glu)
 Requires:       pkgconfig(x11)
 Requires:       pkgconfig(xproto)
 Conflicts:      SDL-devel

++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.4CKCRz/_old  2025-12-05 16:51:28.051422560 +0100
+++ /var/tmp/diff_new_pack.4CKCRz/_new  2025-12-05 16:51:28.059422896 +0100
@@ -1,5 +1,5 @@
-mtime: 1761904520
-commit: 9ab26bfada69e284ee4f3dac39aa975a2427ea1ad167594e2b14dc18d1d23cb2
+mtime: 1764830597
+commit: 980b52c0214e66eb51aeae93e05d053c0f525633a04681ee24b3eff52b01033f
 url: https://src.opensuse.org/jengelh/sdl12_compat
 revision: master
 

++++++ build.specials.obscpio ++++++

++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore      1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore      2025-12-04 07:43:27.000000000 +0100
@@ -0,0 +1 @@
+.osc

++++++ sdl12-compat-1.2.70.tar.gz -> sdl12-compat-1.2.72.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sdl12-compat-1.2.70/.git-hash 
new/sdl12-compat-1.2.72/.git-hash
--- old/sdl12-compat-1.2.70/.git-hash   2025-10-30 15:11:45.000000000 +0100
+++ new/sdl12-compat-1.2.72/.git-hash   2025-12-02 20:41:25.000000000 +0100
@@ -1 +1 @@
-9fb466ec58119d12bd2bce47e8810cb282104bd8
+fc2ec0c128197f1f5050e48359bc41e618f3abfb
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sdl12-compat-1.2.70/CMakeLists.txt 
new/sdl12-compat-1.2.72/CMakeLists.txt
--- old/sdl12-compat-1.2.70/CMakeLists.txt      2025-10-29 20:26:24.000000000 
+0100
+++ new/sdl12-compat-1.2.72/CMakeLists.txt      2025-12-02 20:41:25.000000000 
+0100
@@ -3,7 +3,7 @@
 #        cmake -DSDL2_INCLUDE_DIR=/opt/SDL2/include/SDL2 [other stuff]
 
 cmake_minimum_required(VERSION 3.0.0...4.1)
-project(sdl12_compat VERSION 1.2.70 LANGUAGES C)
+project(sdl12_compat VERSION 1.2.72 LANGUAGES C)
 
 option(SDL12TESTS "Enable to build SDL-1.2 test programs" ON)
 option(SDL12DEVEL "Enable installing SDL-1.2 development headers" ON)
@@ -33,7 +33,7 @@
   # Xcode project file uses 1.0.0, but it's more compatible to use the
   # higher version.
   set(DYLIB_COMPAT_VERSION 12.0.0 CACHE STRING "library compatibility version")
-  set(DYLIB_CURRENT_VERSION 12.70.0 CACHE STRING "library current version")
+  set(DYLIB_CURRENT_VERSION 12.72.0 CACHE STRING "library current version")
   include_directories("/opt/X11/include")  # hack.
   if(CMAKE_VERSION VERSION_LESS 3.9)
   else()
@@ -243,7 +243,7 @@
     install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libSDL${SOPOSTFIX}${SOEXT} 
DESTINATION "${CMAKE_INSTALL_LIBDIR}")
   endif()
 
-  install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/sdl.m4" DESTINATION 
"${CMAKE_INSTALL_FULL_DATAROOTDIR}/aclocal")
+  install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/sdl.m4" DESTINATION 
"${CMAKE_INSTALL_DATAROOTDIR}/aclocal")
 endif()
 
 if(STATICDEVEL AND SDL12DEVEL)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sdl12-compat-1.2.70/REVISION.txt 
new/sdl12-compat-1.2.72/REVISION.txt
--- old/sdl12-compat-1.2.70/REVISION.txt        2025-10-30 15:11:45.000000000 
+0100
+++ new/sdl12-compat-1.2.72/REVISION.txt        2025-12-02 20:41:25.000000000 
+0100
@@ -1 +1 @@
-release-1.2.70-0-g9fb466e
+release-1.2.72-0-gfc2ec0c
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sdl12-compat-1.2.70/include/SDL/SDL_opengl.h 
new/sdl12-compat-1.2.72/include/SDL/SDL_opengl.h
--- old/sdl12-compat-1.2.70/include/SDL/SDL_opengl.h    2025-10-27 
17:10:11.000000000 +0100
+++ new/sdl12-compat-1.2.72/include/SDL/SDL_opengl.h    2025-11-07 
20:04:27.000000000 +0100
@@ -45,12 +45,12 @@
 #endif
 #if defined(__MACOSX__)
 #include <OpenGL/gl.h>  /* Header File For The OpenGL Library */
-#ifdef SDL_INCLUDE_GLU_H
+#ifndef NO_SDL_GLU
 #include <OpenGL/glu.h> /* Header File For The GLU Library */
 #endif
 #else
 #include <GL/gl.h>      /* Header File For The OpenGL Library */
-#ifdef SDL_INCLUDE_GLU_H
+#ifndef NO_SDL_GLU
 #include <GL/glu.h>     /* Header File For The GLU Library */
 #endif
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sdl12-compat-1.2.70/include/SDL/SDL_version.h 
new/sdl12-compat-1.2.72/include/SDL/SDL_version.h
--- old/sdl12-compat-1.2.70/include/SDL/SDL_version.h   2025-10-29 
20:26:24.000000000 +0100
+++ new/sdl12-compat-1.2.72/include/SDL/SDL_version.h   2025-12-02 
20:41:25.000000000 +0100
@@ -33,7 +33,7 @@
 /* We bumped the patchlevel to 50 for sdl12-compat */
 #define SDL_MAJOR_VERSION 1
 #define SDL_MINOR_VERSION 2
-#define SDL_PATCHLEVEL 70
+#define SDL_PATCHLEVEL 72
 
 typedef struct SDL_version
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sdl12-compat-1.2.70/src/Makefile.darwin 
new/sdl12-compat-1.2.72/src/Makefile.darwin
--- old/sdl12-compat-1.2.70/src/Makefile.darwin 2025-10-29 20:26:24.000000000 
+0100
+++ new/sdl12-compat-1.2.72/src/Makefile.darwin 2025-12-02 20:41:25.000000000 
+0100
@@ -18,7 +18,7 @@
 LDFLAGS = -mmacosx-version-min=10.6 -dynamiclib -Wl,-undefined,error 
-Wl,-single_module
 #LDFLAGS+= -Wl,-headerpad_max_install_names
 LDFLAGS+= -Wl,-install_name,"/usr/local/lib/$(DYLIB)"
-LDFLAGS+= -Wl,-compatibility_version,1.0 -Wl,-current_version,12.70
+LDFLAGS+= -Wl,-compatibility_version,1.0 -Wl,-current_version,12.72
 LDLIBS  = -Wl,-framework,AppKit
 # this is needed for x86_64 - cross-gcc might not add it.
 #LDLIBS += -Wl,-lbundle1.o
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sdl12-compat-1.2.70/src/Makefile.linux 
new/sdl12-compat-1.2.72/src/Makefile.linux
--- old/sdl12-compat-1.2.70/src/Makefile.linux  2025-10-29 20:26:24.000000000 
+0100
+++ new/sdl12-compat-1.2.72/src/Makefile.linux  2025-12-02 20:41:25.000000000 
+0100
@@ -16,7 +16,7 @@
 LDFLAGS+= -Wl,--no-undefined
 LDLIBS  = -ldl
 
-SHLIB = libSDL-1.2.so.1.2.70
+SHLIB = libSDL-1.2.so.1.2.72
 
 OBJ = SDL12_compat.o
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sdl12-compat-1.2.70/src/Makefile.os2 
new/sdl12-compat-1.2.72/src/Makefile.os2
--- old/sdl12-compat-1.2.70/src/Makefile.os2    2025-10-29 20:26:24.000000000 
+0100
+++ new/sdl12-compat-1.2.72/src/Makefile.os2    2025-12-02 20:41:25.000000000 
+0100
@@ -5,7 +5,7 @@
 !endif
 
 DLLNAME = SDL12
-VERSION = 1.2.70
+VERSION = 1.2.72
 
 # change SDL2INC to point to the SDL2 headers
 SDL2INC = include
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sdl12-compat-1.2.70/src/Makefile.w32 
new/sdl12-compat-1.2.72/src/Makefile.w32
--- old/sdl12-compat-1.2.70/src/Makefile.w32    2025-10-29 20:26:24.000000000 
+0100
+++ new/sdl12-compat-1.2.72/src/Makefile.w32    2025-12-02 20:41:25.000000000 
+0100
@@ -5,7 +5,7 @@
 !endif
 
 DLLNAME = SDL
-VERSION = 1.2.70
+VERSION = 1.2.72
 
 # change SDL2INC to point to the SDL2 headers
 SDL2INC = include
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sdl12-compat-1.2.70/src/SDL12_compat.c 
new/sdl12-compat-1.2.72/src/SDL12_compat.c
--- old/sdl12-compat-1.2.70/src/SDL12_compat.c  2025-10-29 20:26:24.000000000 
+0100
+++ new/sdl12-compat-1.2.72/src/SDL12_compat.c  2025-12-02 20:41:25.000000000 
+0100
@@ -28,7 +28,7 @@
  * should be way ahead of what SDL-1.2 Classic would report, so apps can
  * decide if they're running under the compat layer, if they really care.
  */
-#define SDL12_COMPAT_VERSION 70
+#define SDL12_COMPAT_VERSION 72
 
 #include <stdarg.h>
 #include <limits.h>
@@ -1181,22 +1181,20 @@
     return SDL_TRUE;
 }
 
-/* log a string using platform-specific code for before SDL2 is fully 
available. */
-static void SDL12COMPAT_LogAtStartup(const char *str)
+/* SDL3 (and thus sdl2-compat) will build an SDL_Environment, which isn't 
useful if the SDL-1.2 app is calling getenv()/setenv() directly, so use system 
APIs instead. */
+/* despite the "unsafe" name (they are NOT thread-safe), these are actually 
_safe_ to call at startup, since it won't call into SDL2 before everything is 
properly initialized! */
+static char *SDL12COMPAT_getenv_unsafe(const char *name)
 {
     #ifdef _WIN32
-    OutputDebugStringA(str);
-    #elif defined(__APPLE__)
-    extern void SDL12COMPAT_NSLog(const char *prefix, const char *text);
-    SDL12COMPAT_NSLog(NULL, str);
-    #else
-    fputs(str, stderr);
-    fputs("\n", stderr);
+    static char buf[256];  /* overflows will just report as environment 
variable being unset. But most of our environment vars don't come through here. 
*/
+    const DWORD rc = GetEnvironmentVariableA(name, buf, (DWORD) sizeof (buf));
+    return ((rc != 0) && (rc < sizeof (buf))) ? buf : NULL;
+    #else  /* we might need other platforms, or a simple `return NULL;` for 
platforms without an environment table. */
+    return getenv(name);
     #endif
 }
 
-/* this talks right to the OS environment table. Don't use SDL20_setenv at 
startup. */
-static void SDL12COMPAT_SetEnvAtStartup(const char *name, const char *value)
+static void SDL12COMPAT_setenv_unsafe(const char *name, const char *value)
 {
     #ifdef _WIN32
     SetEnvironmentVariableA(name, value);
@@ -1211,15 +1209,27 @@
     #endif
 }
 
-/* this talks right to the OS environment table. Don't use SDL20_getenv at 
startup. */
 static const char *SDL12COMPAT_GetEnvAtStartup(const char *name)
 {
+    return SDL12COMPAT_getenv_unsafe(name);  /* don't talk to SDL2 yet, we 
aren't set up. Go right to the OS interfaces. */
+}
+
+static void SDL12COMPAT_SetEnvAtStartup(const char *name, const char *value)
+{
+    SDL12COMPAT_setenv_unsafe(name, value);  /* don't talk to SDL2 yet, we 
aren't set up. Go right to the OS interfaces. */
+}
+
+/* log a string using platform-specific code for before SDL2 is fully 
available. */
+static void SDL12COMPAT_LogAtStartup(const char *str)
+{
     #ifdef _WIN32
-    static char buf[256];  /* overflows will just report as environment 
variable being unset. But most of our environment vars don't come through here. 
*/
-    const DWORD rc = GetEnvironmentVariableA(name, buf, (DWORD) sizeof (buf));
-    return ((rc != 0) && (rc < sizeof (buf))) ? buf : NULL;
-    #else  /* we might need other platforms, or a simple `return NULL;` for 
platforms without an environment table. */
-    return getenv(name);
+    OutputDebugStringA(str);
+    #elif defined(__APPLE__)
+    extern void SDL12COMPAT_NSLog(const char *prefix, const char *text);
+    SDL12COMPAT_NSLog(NULL, str);
+    #else
+    fputs(str, stderr);
+    fputs("\n", stderr);
     #endif
 }
 
@@ -1310,7 +1320,7 @@
                     homedir = pwent->pw_dir;
                 }
                 if (!homedir) {
-                    homedir = getenv("HOME");
+                    homedir = SDL12COMPAT_getenv_unsafe("HOME");
                 }
                 if (homedir) {
                     char framework[512];
@@ -1531,7 +1541,7 @@
 static const char *
 SDL12Compat_GetHint(const char *name)
 {
-    return SDL20_getenv(name);
+    return SDL12COMPAT_getenv_unsafe(name);
 }
 
 static SDL_bool
@@ -2395,9 +2405,9 @@
 GetVideoDisplay(void)
 {
     const char *variable;
-    variable = SDL20_getenv("SDL_VIDEO_FULLSCREEN_DISPLAY");
+    variable = SDL12COMPAT_getenv_unsafe("SDL_VIDEO_FULLSCREEN_DISPLAY");
     if (!variable) {
-        variable = SDL20_getenv("SDL_VIDEO_FULLSCREEN_HEAD");
+        variable = SDL12COMPAT_getenv_unsafe("SDL_VIDEO_FULLSCREEN_HEAD");
     }
     if (variable) {
         int preferred_display = SDL20_atoi(variable);
@@ -2780,23 +2790,16 @@
 DECLSPEC12 int SDLCALL
 SDL_InitSubSystem(Uint32 sdl12flags)
 {
+    const char *videodriver = SDL12COMPAT_getenv_unsafe("SDL_VIDEODRIVER");
+    const char *audiodriver = SDL12COMPAT_getenv_unsafe("SDL_AUDIODRIVER");
     Uint32 sdl20flags = 0;
     int rc;
 
 #ifdef __WINDOWS__
     /* DOSBox (and probably other things), try to force the "windib" video
        backend, but it doesn't exist in SDL2. Force to "windows" instead. */
-    const char *origvidenv = NULL;
-    const char *env = SDL20_getenv("SDL_VIDEODRIVER");
-    if (env) {
-        if (SDL20_strcmp(env, "windib") == 0) {
-            origvidenv = "windib";
-            SDL20_setenv("SDL_VIDEODRIVER", "windows", 1);
-        } else
-        if (SDL20_strcmp(env, "directx") == 0) {
-            origvidenv = "directx";
-            SDL20_setenv("SDL_VIDEODRIVER", "windows", 1);
-        }
+    if (videodriver && (SDL20_strcmp(videodriver, "windib") == 0) || 
(SDL20_strcmp(videodriver, "directx") == 0)) {
+        videodriver = "windows";
     }
 #endif
 
@@ -2835,6 +2838,17 @@
         InitializeCDSubsystem();
     }
 
+    /* In SDL3 (via sdl2-compat), these will ignore changes to environment 
variables after startup, but SDL-1.2 apps might
+       change envvars on the fly, so we need to manually force these into SDL2 
hints. */
+
+    if (videodriver) {
+        SDL20_SetHintWithPriority(SDL_HINT_VIDEODRIVER, videodriver, 
SDL_HINT_OVERRIDE);
+    }
+
+    if (audiodriver) {
+        SDL20_SetHintWithPriority(SDL_HINT_AUDIODRIVER, audiodriver, 
SDL_HINT_OVERRIDE);
+    }
+
     rc = SDL20_Init(sdl20flags);
     if ((rc == 0) && (sdl20flags & SDL_INIT_VIDEO)) {
         if (Init12Video() < 0) {
@@ -2845,12 +2859,6 @@
         EventThreadEnabled = (sdl12flags & SDL12_INIT_EVENTTHREAD) ? SDL_TRUE 
: SDL_FALSE;
     }
 
-#ifdef __WINDOWS__
-    if (origvidenv) {  /* set this back to minimize surprise state changes. */
-        SDL20_setenv("SDL_VIDEODRIVER", origvidenv, 1);
-    }
-#endif
-
     if ((rc == 0) && (sdl20flags & SDL_INIT_AUDIO)) {
         Init12Audio();
     }
@@ -3086,7 +3094,7 @@
 SDL_VideoDriverName(char *namebuf, int maxlen)
 {
 #ifdef __WINDOWS__
-    const char *val = SDL20_getenv("SDL_VIDEODRIVER");
+    const char *val = SDL12COMPAT_getenv_unsafe("SDL_VIDEODRIVER");
     if (val) {
         /* give them back what they requested: */
         if (SDL20_strcmp(val,  "windib") == 0  ||
@@ -5949,8 +5957,8 @@
 GetEnvironmentWindowPosition(int *x, int *y)
 {
     int display = VideoDisplayIndex;
-    const char *window = SDL20_getenv("SDL_VIDEO_WINDOW_POS");
-    const char *center = SDL20_getenv("SDL_VIDEO_CENTERED");
+    const char *window = SDL12COMPAT_getenv_unsafe("SDL_VIDEO_WINDOW_POS");
+    const char *center = SDL12COMPAT_getenv_unsafe("SDL_VIDEO_CENTERED");
     if (window) {
         if (SDL20_strcmp(window, "center") == 0) {
             center = window;
@@ -6576,7 +6584,7 @@
         fullscreen_flags20 |= SDL_WINDOW_FULLSCREEN_DESKTOP;
     }
 
-    fromwin_env = SDL20_getenv("SDL_WINDOWID");
+    fromwin_env = SDL12COMPAT_getenv_unsafe("SDL_WINDOWID");
 
     if (fromwin_env) {
         window_size_scaling = 1.0f;  /* don't scale for external windows */
@@ -6629,6 +6637,11 @@
         }
 
         VideoWindow20 = SDL20_CreateWindow(WindowTitle, x, y, scaled_width, 
scaled_height, flags20);
+        if (!VideoWindow20 && (flags20 & SDL_WINDOW_OPENGL) && !(flags12 & 
SDL12_OPENGL)) {
+            /* OpenGL might not be installed, try again without that flag */
+            flags20 &= ~SDL_WINDOW_OPENGL;
+            VideoWindow20 = SDL20_CreateWindow(WindowTitle, x, y, 
scaled_width, scaled_height, flags20);
+        }
         if (!VideoWindow20) {
             return EndVidModeCreate();
         }
@@ -8594,6 +8607,11 @@
     SDL20_Delay(ticks);
 }
 
+DECLSPEC12 char * SDLCALL
+SDL_getenv(const char *name)
+{
+    return SDL12COMPAT_getenv_unsafe(name);
+}
 
 DECLSPEC12 int SDLCALL
 SDL_putenv(const char *_var)
@@ -8611,7 +8629,7 @@
     }
 
     *ptr = '\0';  /* split the string into name and value. */
-    SDL20_setenv(var, ptr + 1, 1);
+    SDL12COMPAT_setenv_unsafe(var, ptr + 1);
     SDL20_free(var);
     return 0;
 }
@@ -9994,7 +10012,7 @@
     }
 
     if (!want->format) {
-        const char *env = SDL20_getenv("SDL_AUDIO_FORMAT");  /* SDL 1.2 checks 
this. */
+        const char *env = SDL12COMPAT_getenv_unsafe("SDL_AUDIO_FORMAT");  /* 
SDL 1.2 checks this. */
         if (env != NULL) {
             if      (SDL20_strcmp(env, "U8") == 0) { want->format = AUDIO_U8; }
             else if (SDL20_strcmp(env, "S8") == 0) { want->format = AUDIO_S8; }
@@ -10013,7 +10031,7 @@
     }
 
     if (!want->freq) {
-        const char *env = SDL20_getenv("SDL_AUDIO_FREQUENCY");  /* SDL 1.2 
checks this. */
+        const char *env = SDL12COMPAT_getenv_unsafe("SDL_AUDIO_FREQUENCY");  
/* SDL 1.2 checks this. */
         if (env != NULL) {
             want->freq = SDL20_atoi(env);
         }
@@ -10024,7 +10042,7 @@
     }
 
     if (!want->channels) {
-        const char *env = SDL20_getenv("SDL_AUDIO_CHANNELS");  /* SDL 1.2 
checks this. */
+        const char *env = SDL12COMPAT_getenv_unsafe("SDL_AUDIO_CHANNELS");  /* 
SDL 1.2 checks this. */
         if (env != NULL) {
             want->channels = SDL20_atoi(env);
         }
@@ -10034,7 +10052,7 @@
     }
 
     if (!want->samples) {
-        const char *env = SDL20_getenv("SDL_AUDIO_SAMPLES");  /* SDL 1.2 
checks this. */
+        const char *env = SDL12COMPAT_getenv_unsafe("SDL_AUDIO_SAMPLES");  /* 
SDL 1.2 checks this. */
         if (env != NULL) {
             want->samples = SDL20_atoi(env);
         }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sdl12-compat-1.2.70/src/SDL20_syms.h 
new/sdl12-compat-1.2.72/src/SDL20_syms.h
--- old/sdl12-compat-1.2.70/src/SDL20_syms.h    2025-10-28 15:43:13.000000000 
+0100
+++ new/sdl12-compat-1.2.72/src/SDL20_syms.h    2025-11-05 19:30:07.000000000 
+0100
@@ -273,7 +273,6 @@
 SDL20_SYM_PASSTHROUGH(void *,calloc,(size_t a, size_t b),(a,b),return)
 SDL20_SYM_PASSTHROUGH(void *,realloc,(void *a, size_t b),(a,b),return)
 SDL20_SYM_PASSTHROUGH(void,free,(void *a),(a),)
-SDL20_SYM_PASSTHROUGH(char *,getenv,(const char *a),(a),return)
 SDL20_SYM_PASSTHROUGH(void,qsort,(void *a, size_t b, size_t c, int (SDLCALL 
*d)(const void *, const void *)),(a,b,c,d),)
 SDL20_SYM_PASSTHROUGH(void *,memset,(void *a, int b, size_t c),(a,b,c),return)
 SDL20_SYM_PASSTHROUGH(void *,memcpy,(void *a, const void *b, size_t 
c),(a,b,c),return)
@@ -337,6 +336,8 @@
 SDL20_SYM(void,DestroyRenderer,(SDL_Renderer *a),(a),)
 SDL20_SYM(void,RenderPresent,(SDL_Renderer *a),(a),)
 
+SDL20_SYM(SDL_bool,SetHintWithPriority,(const char *a, const char *b, 
SDL_HintPriority c),(a,b,c),return)
+
 #ifdef _WIN32
 SDL20_SYM_PASSTHROUGH(int,RegisterApp,(const char *a, Uint32 b, void 
*c),(a,b,c),return)
 SDL20_SYM_PASSTHROUGH(void,UnregisterApp,(void),(),)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sdl12-compat-1.2.70/src/dr_mp3.h 
new/sdl12-compat-1.2.72/src/dr_mp3.h
--- old/sdl12-compat-1.2.70/src/dr_mp3.h        2025-10-23 02:11:56.000000000 
+0200
+++ new/sdl12-compat-1.2.72/src/dr_mp3.h        2025-11-29 22:05:24.000000000 
+0100
@@ -3036,23 +3036,27 @@
                                 ((drmp3_uint32)ape[26] << 16) |
                                 ((drmp3_uint32)ape[27] << 24);
 
-                            streamEndOffset -= 32 + tagSize;
-                            streamLen       -= 32 + tagSize;
-                            
-                            /* Fire a metadata callback for the APE data. Must 
include both the main content and footer. */
-                            if (onMeta != NULL) {
-                                /* We first need to seek to the start of the 
APE tag. */
-                                if (onSeek(pUserData, streamEndOffset, 
DRMP3_SEEK_END)) {
-                                    size_t apeTagSize = (size_t)tagSize + 32;
-                                    drmp3_uint8* pTagData = 
(drmp3_uint8*)drmp3_malloc(apeTagSize, pAllocationCallbacks);
-                                    if (pTagData != NULL) {
-                                        if (onRead(pUserData, pTagData, 
apeTagSize) == apeTagSize) {
-                                            drmp3__on_meta(pMP3, 
DRMP3_METADATA_TYPE_APE, pTagData, apeTagSize);
-                                        }
+                            if (32 + tagSize < streamLen) {
+                                streamEndOffset -= 32 + tagSize;
+                                streamLen       -= 32 + tagSize;
+                                
+                                /* Fire a metadata callback for the APE data. 
Must include both the main content and footer. */
+                                if (onMeta != NULL) {
+                                    /* We first need to seek to the start of 
the APE tag. */
+                                    if (onSeek(pUserData, streamEndOffset, 
DRMP3_SEEK_END)) {
+                                        size_t apeTagSize = (size_t)tagSize + 
32;
+                                        drmp3_uint8* pTagData = 
(drmp3_uint8*)drmp3_malloc(apeTagSize, pAllocationCallbacks);
+                                        if (pTagData != NULL) {
+                                            if (onRead(pUserData, pTagData, 
apeTagSize) == apeTagSize) {
+                                                drmp3__on_meta(pMP3, 
DRMP3_METADATA_TYPE_APE, pTagData, apeTagSize);
+                                            }
 
-                                        drmp3_free(pTagData, 
pAllocationCallbacks);
+                                            drmp3_free(pTagData, 
pAllocationCallbacks);
+                                        }
                                     }
                                 }
+                            } else {
+                                /* The tag size is larger than the stream. 
Invalid APE tag. */
                             }
                         }
                     }
@@ -5031,6 +5035,7 @@
 v0.7.2 - TBD
   - Reduce stack space to improve robustness on embedded systems.
   - Fix a compilation error with MSVC Clang toolset relating to cpuid.
+  - Fix an error with APE tag parsing.
 
 v0.7.1 - 2025-09-10
   - Silence a warning with GCC.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sdl12-compat-1.2.70/src/version.rc 
new/sdl12-compat-1.2.72/src/version.rc
--- old/sdl12-compat-1.2.70/src/version.rc      2025-10-29 20:26:24.000000000 
+0100
+++ new/sdl12-compat-1.2.72/src/version.rc      2025-12-02 20:41:25.000000000 
+0100
@@ -3,8 +3,8 @@
 LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1,2,70,0
- PRODUCTVERSION 1,2,70,0
+ FILEVERSION 1,2,72,0
+ PRODUCTVERSION 1,2,72,0
  FILEFLAGSMASK 0x3fL
  FILEFLAGS 0x0L
  FILEOS 0x40004L
@@ -17,12 +17,12 @@
         BEGIN
             VALUE "CompanyName", "\0"
             VALUE "FileDescription", "SDL\0"
-            VALUE "FileVersion", "1, 2, 70, 0\0"
+            VALUE "FileVersion", "1, 2, 72, 0\0"
             VALUE "InternalName", "SDL\0"
             VALUE "LegalCopyright", "Copyright (C) 2025 Sam Lantinga\0"
             VALUE "OriginalFilename", "SDL.dll\0"
             VALUE "ProductName", "Simple DirectMedia Layer 1.2 wrapper\0"
-            VALUE "ProductVersion", "1, 2, 70, 0\0"
+            VALUE "ProductVersion", "1, 2, 72, 0\0"
         END
     END
     BLOCK "VarFileInfo"

Reply via email to