Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package libopenmpt for openSUSE:Factory 
checked in at 2026-03-26 21:07:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libopenmpt (Old)
 and      /work/SRC/openSUSE:Factory/.libopenmpt.new.8177 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libopenmpt"

Thu Mar 26 21:07:29 2026 rev:58 rq:1342623 version:0.8.6

Changes:
--------
--- /work/SRC/openSUSE:Factory/libopenmpt/libopenmpt.changes    2025-12-20 
21:45:02.967616492 +0100
+++ /work/SRC/openSUSE:Factory/.libopenmpt.new.8177/libopenmpt.changes  
2026-03-27 06:43:25.794926619 +0100
@@ -1,0 +2,19 @@
+Wed Mar 25 07:23:15 UTC 2026 - Martin Hauke <[email protected]>
+
+- Update to version 0.8.6:
+  * [Sec] The security fix in libopenmpt 0.8.5 (r25042) was
+    incomplete, causing a regression when playing short looped
+    ("chip2) samples (r25084).
+
+-------------------------------------------------------------------
+Mon Mar 23 19:19:21 UTC 2026 - Martin Hauke <[email protected]>
+
+- Update to 0.8.5:
+  * [Sec] Possible out-of-bounds sample data read in a specific
+    combination of reverse sample playback + offset past sample
+    loop. (r25042).
+  * MOD: ProTracker arpeggio wrapraound results in an effective
+    period of 65536 on Paula, not pausing the sample entirely.
+  * ULT: Loop points were incorrectly limited for 16-bit samples.
+
+-------------------------------------------------------------------

Old:
----
  libopenmpt-0.8.4+release.autotools.tar.gz

New:
----
  libopenmpt-0.8.6+release.autotools.tar.gz

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

Other differences:
------------------
++++++ libopenmpt.spec ++++++
--- /var/tmp/diff_new_pack.kkFOvo/_old  2026-03-27 06:43:26.354949757 +0100
+++ /var/tmp/diff_new_pack.kkFOvo/_new  2026-03-27 06:43:26.366950253 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package libopenmpt
 #
-# Copyright (c) 2025 SUSE LLC and contributors
+# Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -21,7 +21,7 @@
 %define libopenmpt_modplug_version 0.8.9.0
 
 Name:           libopenmpt
-Version:        0.8.4
+Version:        0.8.6
 Release:        0
 Summary:        C++ and C library to decode tracker music files
 License:        BSD-3-Clause
@@ -120,8 +120,7 @@
 %check
 %make_build check
 
-%post -n %{libopenmpt} -p /sbin/ldconfig
-%postun -n %{libopenmpt} -p /sbin/ldconfig
+%ldconfig_scriptlets -n %{libopenmpt}
 
 %files -n openmpt123
 %license LICENSE

++++++ libopenmpt-0.8.4+release.autotools.tar.gz -> 
libopenmpt-0.8.6+release.autotools.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libopenmpt-0.8.4+release.autotools/LICENSE 
new/libopenmpt-0.8.6+release.autotools/LICENSE
--- old/libopenmpt-0.8.4+release.autotools/LICENSE      2024-12-31 
11:10:08.000000000 +0100
+++ new/libopenmpt-0.8.6+release.autotools/LICENSE      2026-01-01 
09:07:51.000000000 +0100
@@ -1,4 +1,4 @@
-Copyright (c) 2004-2025, OpenMPT Project Developers and Contributors
+Copyright (c) 2004-2026, OpenMPT Project Developers and Contributors
 Copyright (c) 1997-2003, Olivier Lapicque
 All rights reserved.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libopenmpt-0.8.4+release.autotools/common/version.cpp 
new/libopenmpt-0.8.6+release.autotools/common/version.cpp
--- old/libopenmpt-0.8.4+release.autotools/common/version.cpp   2025-10-14 
18:41:38.000000000 +0200
+++ new/libopenmpt-0.8.6+release.autotools/common/version.cpp   2026-01-25 
23:09:58.000000000 +0100
@@ -600,12 +600,12 @@
                "libopenmpt (based on OpenMPT / Open ModPlug Tracker)\n"
 #endif
                "\n"
-               "Copyright \xC2\xA9 2004-2025 OpenMPT Project Developers and 
Contributors\n"
+               "Copyright \xC2\xA9 2004-2026 OpenMPT Project Developers and 
Contributors\n"
                "Copyright \xC2\xA9 1997-2003 Olivier Lapicque\n"
                "\n"
                "Developers:\n"
-               "Johannes Schultz (2008-2025)\n"
-               "J\xC3\xB6rn Heusipp (2012-2025)\n"
+               "Johannes Schultz (2008-2026)\n"
+               "J\xC3\xB6rn Heusipp (2012-2026)\n"
                "Ahti Lepp\xC3\xA4nen (2005-2011)\n"
                "Robin Fernandes (2004-2007)\n"
                "Sergiy Pylypenko (2007)\n"
@@ -745,7 +745,7 @@
 #endif
 #if defined(MPT_WITH_OPUSENC)
                "Xiph.Org Foundation, Jean-Marc Valin and contributors for 
libopusenc\n"
-               "https://git.xiph.org/?p=libopusenc.git;a=summary\n";
+               "https://opus-codec.org/\n";
                "\n"
 #endif
 #if defined(MPT_WITH_LAME)
@@ -803,7 +803,7 @@
 mpt::ustring GetLicenseString()
 {
        return MPT_UTF8(
-               "Copyright (c) 2004-2025, OpenMPT Project Developers and 
Contributors" "\n"
+               "Copyright (c) 2004-2026, OpenMPT Project Developers and 
Contributors" "\n"
                "Copyright (c) 1997-2003, Olivier Lapicque" "\n"
                "All rights reserved." "\n"
                "" "\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libopenmpt-0.8.4+release.autotools/common/versionNumber.h 
new/libopenmpt-0.8.6+release.autotools/common/versionNumber.h
--- old/libopenmpt-0.8.4+release.autotools/common/versionNumber.h       
2025-12-14 13:25:24.000000000 +0100
+++ new/libopenmpt-0.8.6+release.autotools/common/versionNumber.h       
2026-03-24 18:23:44.000000000 +0100
@@ -15,5 +15,5 @@
 // Version definitions. The only thing that needs to be changed when changing 
version number.
 #define VER_MAJORMAJOR  1
 #define VER_MAJOR      32
-#define VER_MINOR      06
+#define VER_MINOR      08
 #define VER_MINORMINOR 00
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libopenmpt-0.8.4+release.autotools/configure 
new/libopenmpt-0.8.6+release.autotools/configure
--- old/libopenmpt-0.8.4+release.autotools/configure    2025-12-14 
14:45:37.000000000 +0100
+++ new/libopenmpt-0.8.6+release.autotools/configure    2026-03-24 
19:07:02.000000000 +0100
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for libopenmpt 0.8.4+release.autotools.
+# Generated by GNU Autoconf 2.71 for libopenmpt 0.8.6+release.autotools.
 #
 # Report bugs to <https://bugs.openmpt.org/>.
 #
@@ -621,8 +621,8 @@
 # Identity of this package.
 PACKAGE_NAME='libopenmpt'
 PACKAGE_TARNAME='libopenmpt'
-PACKAGE_VERSION='0.8.4+release.autotools'
-PACKAGE_STRING='libopenmpt 0.8.4+release.autotools'
+PACKAGE_VERSION='0.8.6+release.autotools'
+PACKAGE_STRING='libopenmpt 0.8.6+release.autotools'
 PACKAGE_BUGREPORT='https://bugs.openmpt.org/'
 PACKAGE_URL='https://lib.openmpt.org/'
 
@@ -1514,7 +1514,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures libopenmpt 0.8.4+release.autotools to adapt to many 
kinds of systems.
+\`configure' configures libopenmpt 0.8.6+release.autotools to adapt to many 
kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1585,7 +1585,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libopenmpt 
0.8.4+release.autotools:";;
+     short | recursive ) echo "Configuration of libopenmpt 
0.8.6+release.autotools:";;
    esac
   cat <<\_ACEOF
 
@@ -1772,7 +1772,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libopenmpt configure 0.8.4+release.autotools
+libopenmpt configure 0.8.6+release.autotools
 generated by GNU Autoconf 2.71
 
 Copyright (C) 2021 Free Software Foundation, Inc.
@@ -2152,7 +2152,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by libopenmpt $as_me 0.8.4+release.autotools, which was
+It was created by libopenmpt $as_me 0.8.6+release.autotools, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   $ $0$ac_configure_args_raw
@@ -3648,7 +3648,7 @@
 
 # Define the identity of the package.
  PACKAGE='libopenmpt'
- VERSION='0.8.4+release.autotools'
+ VERSION='0.8.6+release.autotools'
 
 
 printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -23188,13 +23188,13 @@
 
 
 
-printf "%s\n" "#define MPT_SVNURL 
\"https://source.openmpt.org/svn/openmpt/tags/libopenmpt-0.8.4\""; >>confdefs.h
+printf "%s\n" "#define MPT_SVNURL 
\"https://source.openmpt.org/svn/openmpt/tags/libopenmpt-0.8.6\""; >>confdefs.h
 
 
-printf "%s\n" "#define MPT_SVNVERSION \"24629\"" >>confdefs.h
+printf "%s\n" "#define MPT_SVNVERSION \"25100\"" >>confdefs.h
 
 
-printf "%s\n" "#define MPT_SVNDATE \"2025-12-14T12:38:40.115071Z\"" 
>>confdefs.h
+printf "%s\n" "#define MPT_SVNDATE \"2026-03-24T17:27:05.605244Z\"" 
>>confdefs.h
 
 
 printf "%s\n" "#define MPT_PACKAGE true" >>confdefs.h
@@ -27166,7 +27166,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by libopenmpt $as_me 0.8.4+release.autotools, which was
+This file was extended by libopenmpt $as_me 0.8.6+release.autotools, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -27226,7 +27226,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
-libopenmpt config.status 0.8.4+release.autotools
+libopenmpt config.status 0.8.6+release.autotools
 configured by $0, generated by GNU Autoconf 2.71,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libopenmpt-0.8.4+release.autotools/configure.ac 
new/libopenmpt-0.8.6+release.autotools/configure.ac
--- old/libopenmpt-0.8.4+release.autotools/configure.ac 2025-12-14 
14:45:03.000000000 +0100
+++ new/libopenmpt-0.8.6+release.autotools/configure.ac 2026-03-24 
19:06:30.000000000 +0100
@@ -1,4 +1,4 @@
-AC_INIT([libopenmpt], [0.8.4+release.autotools], [https://bugs.openmpt.org/], 
[libopenmpt], [https://lib.openmpt.org/])
+AC_INIT([libopenmpt], [0.8.6+release.autotools], [https://bugs.openmpt.org/], 
[libopenmpt], [https://lib.openmpt.org/])
 AC_PREREQ([2.69])
 # we do want 2.70, but distributions are not ready yet
 #AC_PREREQ([2.70])
@@ -88,9 +88,9 @@
 AC_SUBST([LIBOPENMPT_LTVER_REVISION])
 AC_SUBST([LIBOPENMPT_LTVER_AGE])
 
-AC_DEFINE([MPT_SVNURL], 
["https://source.openmpt.org/svn/openmpt/tags/libopenmpt-0.8.4";], [svn version])
-AC_DEFINE([MPT_SVNVERSION], ["24629"], [svn version])
-AC_DEFINE([MPT_SVNDATE], ["2025-12-14T12:38:40.115071Z"], [svn date])
+AC_DEFINE([MPT_SVNURL], 
["https://source.openmpt.org/svn/openmpt/tags/libopenmpt-0.8.6";], [svn version])
+AC_DEFINE([MPT_SVNVERSION], ["25100"], [svn version])
+AC_DEFINE([MPT_SVNDATE], ["2026-03-24T17:27:05.605244Z"], [svn date])
 AC_DEFINE([MPT_PACKAGE], [true], [is package])
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libopenmpt-0.8.4+release.autotools/doc/libopenmpt/changelog.md 
new/libopenmpt-0.8.6+release.autotools/doc/libopenmpt/changelog.md
--- old/libopenmpt-0.8.4+release.autotools/doc/libopenmpt/changelog.md  
2025-12-14 13:38:21.000000000 +0100
+++ new/libopenmpt-0.8.6+release.autotools/doc/libopenmpt/changelog.md  
2026-03-24 18:27:00.000000000 +0100
@@ -5,6 +5,23 @@
 For fully detailed change log, please see the source repository directly. This
 is just a high-level summary.
 
+### libopenmpt 0.8.6 (2026-03-24)
+
+ *  [**Sec**] The security fix in libopenmpt 0.8.5 (r25042) was incomplete,
+    causing a regression when playing short looped ("chip") samples (r25084).
+
+### libopenmpt 0.8.5 (2026-03-22)
+
+ *  [**Sec**] Possible out-of-bounds sample data read in a specific combination
+    of reverse sample playback + offset past sample loop. (r25042).
+
+ *  MOD: ProTracker arpeggio wrapraound results in an effective period of 65536
+    on Paula, not pausing the sample entirely.
+ *  ULT: Loop points were incorrectly limited for 16-bit samples.
+
+ *  zlib: Update to v1.3.2 (2026-02-17).
+ *  miniz: Update to v3.1.1 (2026-02-03).
+
 ### libopenmpt 0.8.4 (2025-12-14)
 
  *  [**Bug**] openmpt123: libsndfile float32 output was broken since 0.8.1.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libopenmpt-0.8.4+release.autotools/libopenmpt/libopenmpt.pc.in 
new/libopenmpt-0.8.6+release.autotools/libopenmpt/libopenmpt.pc.in
--- old/libopenmpt-0.8.4+release.autotools/libopenmpt/libopenmpt.pc.in  
2016-07-09 20:17:00.000000000 +0200
+++ new/libopenmpt-0.8.6+release.autotools/libopenmpt/libopenmpt.pc.in  
2026-02-07 21:16:27.000000000 +0100
@@ -6,6 +6,7 @@
 
 Name: libopenmpt
 Description: Tracker module player based on OpenMPT
+URL: https://lib.openmpt.org/
 Version: @VERSION@
 Requires.private: @LIBOPENMPT_REQUIRES_PRIVATE@
 Libs: -L${libdir} -lopenmpt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libopenmpt-0.8.4+release.autotools/libopenmpt/libopenmpt_c.cpp 
new/libopenmpt-0.8.6+release.autotools/libopenmpt/libopenmpt_c.cpp
--- old/libopenmpt-0.8.4+release.autotools/libopenmpt/libopenmpt_c.cpp  
2025-02-15 17:29:14.000000000 +0100
+++ new/libopenmpt-0.8.6+release.autotools/libopenmpt/libopenmpt_c.cpp  
2026-01-31 18:04:18.000000000 +0100
@@ -37,11 +37,19 @@
 namespace openmpt {
 
 static const char * strdup( const char * src ) {
-       char * dst = (char*)std::calloc( std::strlen( src ) + 1, sizeof( char ) 
);
+       std::size_t len = std::strlen( src );
+       char * dst = (char*)std::calloc( len + 1, sizeof( char ) );
        if ( !dst ) {
                return NULL;
        }
-       std::strcpy( dst, src );
+       // GCC hates passing std::strlen() to std::strncpy().
+       // OpenBSD hates strcpy(), and demands BSD-proprietary strlcpy() 
instead.
+       // Just open code the raw loop so that stupid idiotic moronic compilers 
just SHUT THE FUCK UP.
+       // That must surely be the best solution possible which everyone will 
like, right? Right?
+       for ( std::size_t i = 0; i < len; ++i ) {
+               dst[ i ] = src[ i ];
+       }
+       dst[ len ] = '\0';
        return dst;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libopenmpt-0.8.4+release.autotools/libopenmpt/libopenmpt_impl.cpp 
new/libopenmpt-0.8.6+release.autotools/libopenmpt/libopenmpt_impl.cpp
--- old/libopenmpt-0.8.4+release.autotools/libopenmpt/libopenmpt_impl.cpp       
2025-12-06 20:16:48.000000000 +0100
+++ new/libopenmpt-0.8.6+release.autotools/libopenmpt/libopenmpt_impl.cpp       
2025-12-17 12:52:33.000000000 +0100
@@ -129,7 +129,7 @@
        str += 
mpt::format_value_default<std::string>(OPENMPT_API_VERSION_MINOR);
        str += ".";
        str += 
mpt::format_value_default<std::string>(OPENMPT_API_VERSION_PATCH);
-       if ( std::string(OPENMPT_API_VERSION_PREREL).length() > 0 ) {
+       MPT_MAYBE_CONSTANT_IF ( 
std::string(OPENMPT_API_VERSION_PREREL).length() > 0 ) {
                str += OPENMPT_API_VERSION_PREREL;
        }
        std::vector<std::string> fields;
@@ -224,7 +224,7 @@
 #endif // MPT_COMPILER_CLANG
                return ( std::string(OPENMPT_API_VERSION_PREREL).length() == 0 
) ? "1" : "0";
 #if MPT_COMPILER_CLANG
-#pragma clang diagnostic push
+#pragma clang diagnostic pop
 #endif // MPT_COMPILER_CLANG
        } else if ( key == "library_features" ) {
                return get_library_features_string();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libopenmpt-0.8.4+release.autotools/libopenmpt/libopenmpt_version.h 
new/libopenmpt-0.8.6+release.autotools/libopenmpt/libopenmpt_version.h
--- old/libopenmpt-0.8.4+release.autotools/libopenmpt/libopenmpt_version.h      
2025-12-14 13:38:21.000000000 +0100
+++ new/libopenmpt-0.8.6+release.autotools/libopenmpt/libopenmpt_version.h      
2026-03-24 18:27:00.000000000 +0100
@@ -21,7 +21,7 @@
 /*! \brief libopenmpt minor version number */
 #define OPENMPT_API_VERSION_MINOR 8
 /*! \brief libopenmpt patch version number */
-#define OPENMPT_API_VERSION_PATCH 4
+#define OPENMPT_API_VERSION_PATCH 6
 /*! \brief libopenmpt pre-release tag */
 #define OPENMPT_API_VERSION_PREREL ""
 /*! \brief libopenmpt pre-release flag */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libopenmpt-0.8.4+release.autotools/libopenmpt/libopenmpt_version.mk 
new/libopenmpt-0.8.6+release.autotools/libopenmpt/libopenmpt_version.mk
--- old/libopenmpt-0.8.4+release.autotools/libopenmpt/libopenmpt_version.mk     
2025-12-14 13:38:21.000000000 +0100
+++ new/libopenmpt-0.8.6+release.autotools/libopenmpt/libopenmpt_version.mk     
2026-03-24 18:27:00.000000000 +0100
@@ -1,8 +1,8 @@
 LIBOPENMPT_VERSION_MAJOR=0
 LIBOPENMPT_VERSION_MINOR=8
-LIBOPENMPT_VERSION_PATCH=4
+LIBOPENMPT_VERSION_PATCH=6
 LIBOPENMPT_VERSION_PREREL=
 
 LIBOPENMPT_LTVER_CURRENT=5
-LIBOPENMPT_LTVER_REVISION=4
+LIBOPENMPT_LTVER_REVISION=6
 LIBOPENMPT_LTVER_AGE=5
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libopenmpt-0.8.4+release.autotools/man/openmpt123.1 
new/libopenmpt-0.8.6+release.autotools/man/openmpt123.1
--- old/libopenmpt-0.8.4+release.autotools/man/openmpt123.1     2025-12-14 
14:45:01.000000000 +0100
+++ new/libopenmpt-0.8.6+release.autotools/man/openmpt123.1     2026-03-24 
19:06:28.000000000 +0100
@@ -1,13 +1,13 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH OPENMPT123 "1" "December 2025" "openmpt123 v0.8.4" "User Commands"
+.TH OPENMPT123 "1" "March 2026" "openmpt123 v0.8.6" "User Commands"
 .SH NAME
 openmpt123 - command line module music player based on libopenmpt
 .SH SYNOPSIS
 .B openmpt123
 [\fI\,options\/\fR] [\fI\,--\/\fR] \fI\,file1 \/\fR[\fI\,file2\/\fR] ...
 .SH DESCRIPTION
-openmpt123 v0.8.4, libopenmpt 0.8.4+r24629 (OpenMPT 1.32.06.00 
https://source.openmpt.org/svn/openmpt/tags/libopenmpt\-0.8.4@24629 
(2025\-12\-14T12:38:40.115071Z) clean)
-Copyright \(co 2013\-2025 OpenMPT Project Developers and Contributors 
<https://lib.openmpt.org/>
+openmpt123 v0.8.6, libopenmpt 0.8.6+r25100 (OpenMPT 1.32.08.00 
https://source.openmpt.org/svn/openmpt/tags/libopenmpt\-0.8.6@25100 
(2026\-03\-24T17:27:05.605244Z) clean)
+Copyright \(co 2013\-2026 OpenMPT Project Developers and Contributors 
<https://lib.openmpt.org/>
 .PP
 openmpt123 plays module music files.
 .SH OPTIONS
@@ -222,4 +222,4 @@
 [9]|[0]
 +/\- volume ramping
 .SH COPYRIGHT
-Copyright \(co 2013\-2025 OpenMPT Project Developers and Contributors 
<https://lib.openmpt.org/>
+Copyright \(co 2013\-2026 OpenMPT Project Developers and Contributors 
<https://lib.openmpt.org/>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libopenmpt-0.8.4+release.autotools/openmpt123/openmpt123.cpp 
new/libopenmpt-0.8.6+release.autotools/openmpt123/openmpt123.cpp
--- old/libopenmpt-0.8.4+release.autotools/openmpt123/openmpt123.cpp    
2025-08-11 13:53:15.000000000 +0200
+++ new/libopenmpt-0.8.6+release.autotools/openmpt123/openmpt123.cpp    
2026-01-01 09:07:51.000000000 +0100
@@ -8,7 +8,7 @@
  */
 
 static const char * const license =
-"Copyright (c) 2004-2025, OpenMPT Project Developers and Contributors" "\n"
+"Copyright (c) 2004-2026, OpenMPT Project Developers and Contributors" "\n"
 "Copyright (c) 1997-2003, Olivier Lapicque" "\n"
 "All rights reserved." "\n"
 "" "\n"
@@ -491,7 +491,7 @@
                return;
        }
        log << MPT_USTRING("openmpt123") << MPT_USTRING(" v") << 
mpt::transcode<mpt::ustring>( mpt::source_encoding, OPENMPT123_VERSION_STRING ) 
<< MPT_USTRING(", libopenmpt ") << mpt::transcode<mpt::ustring>( 
libopenmpt_encoding, openmpt::string::get( "library_version" ) ) << 
MPT_USTRING(" (") << MPT_USTRING("OpenMPT ") << mpt::transcode<mpt::ustring>( 
libopenmpt_encoding, openmpt::string::get( "core_version" ) ) << 
MPT_USTRING(")") << lf;
-       log << MPT_USTRING("Copyright (c) 2013-2025 OpenMPT Project Developers 
and Contributors <https://lib.openmpt.org/>") << lf;
+       log << MPT_USTRING("Copyright (c) 2013-2026 OpenMPT Project Developers 
and Contributors <https://lib.openmpt.org/>") << lf;
        if ( banner == verbosity_normal ) {
                log << lf;
                return;
@@ -538,7 +538,7 @@
 static void show_man_version( textout & log ) {
        log << MPT_USTRING("openmpt123") << MPT_USTRING(" v") << 
mpt::transcode<mpt::ustring>( mpt::source_encoding, OPENMPT123_VERSION_STRING ) 
<< lf;
        log << lf;
-       log << MPT_USTRING("Copyright (c) 2013-2025 OpenMPT Project Developers 
and Contributors <https://lib.openmpt.org/>") << lf;
+       log << MPT_USTRING("Copyright (c) 2013-2026 OpenMPT Project Developers 
and Contributors <https://lib.openmpt.org/>") << lf;
 }
 
 static void show_short_version( textout & log ) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libopenmpt-0.8.4+release.autotools/soundlib/Fastmix.cpp 
new/libopenmpt-0.8.6+release.autotools/soundlib/Fastmix.cpp
--- old/libopenmpt-0.8.4+release.autotools/soundlib/Fastmix.cpp 2025-10-17 
13:39:28.000000000 +0200
+++ new/libopenmpt-0.8.6+release.autotools/soundlib/Fastmix.cpp 2026-03-23 
22:45:24.000000000 +0100
@@ -91,7 +91,10 @@
        // Returns the buffer length required to render a certain amount of 
samples, based on the channel's playback speed.
        static MPT_FORCEINLINE uint32 DistanceToBufferLength(SamplePosition 
from, SamplePosition to, SamplePosition inc)
        {
-               return static_cast<uint32>((to - from - SamplePosition(1)) / 
inc) + 1;
+               if(from < to)
+                       return static_cast<uint32>((to - from - 
SamplePosition(1)) / inc) + 1;
+               else
+                       return 1;
        }
 
        // Check how many samples can be rendered without encountering loop or 
sample end, and also update loop position / direction
@@ -227,16 +230,20 @@
                {
                        if(nPosInt >= lookaheadStart)
                        {
+                               // We are close to the loop end
                                if(nInc.IsNegative())
                                {
+                                       // Going backward -> only go up to 
start of lookahead area
                                        nSmpCount = 
DistanceToBufferLength(SamplePosition(lookaheadStart, 0), nPos, nInv);
                                        chn.pCurrentSample = lookaheadPointer;
                                } else if(nPosInt <= chn.nLoopEnd)
                                {
+                                       // Going forward, approaching loop end 
-> only go up to end of loop
                                        nSmpCount = 
DistanceToBufferLength(nPos, SamplePosition(chn.nLoopEnd, 0), nInv);
                                        chn.pCurrentSample = lookaheadPointer;
                                } else
                                {
+                                       // We are already past the end of the 
loop
                                        nSmpCount = 
DistanceToBufferLength(nPos, SamplePosition(chn.nLength, 0), nInv);
                                }
                                checkDest = false;
@@ -244,7 +251,7 @@
                        {
                                // We just restarted the loop, so interpolate 
correctly after wrapping around
                                nSmpCount = DistanceToBufferLength(nPos, 
SamplePosition(nLoopStart + InterpolationLookaheadBufferSize, 0), nInv);
-                               chn.pCurrentSample = lookaheadPointer + 
(chn.nLength - nLoopStart) * chn.pModSample->GetBytesPerSample();
+                               chn.pCurrentSample = lookaheadPointer + 
(chn.nLoopEnd - nLoopStart) * chn.pModSample->GetBytesPerSample();
                                checkDest = false;
                        } else if(nInc.IsPositive() && 
static_cast<SmpLength>(nPosDest) >= lookaheadStart && nSmpCount > 1)
                        {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libopenmpt-0.8.4+release.autotools/soundlib/Load_ult.cpp 
new/libopenmpt-0.8.6+release.autotools/soundlib/Load_ult.cpp
--- old/libopenmpt-0.8.4+release.autotools/soundlib/Load_ult.cpp        
2024-09-23 01:29:09.000000000 +0200
+++ new/libopenmpt-0.8.6+release.autotools/soundlib/Load_ult.cpp        
2026-03-19 18:48:40.000000000 +0100
@@ -60,7 +60,7 @@
 
                mptSmp.nLength = sizeEnd - sizeStart;
                mptSmp.nSustainStart = loopStart;
-               mptSmp.nSustainEnd = std::min(static_cast<SmpLength>(loopEnd), 
mptSmp.nLength);
+               mptSmp.nSustainEnd = loopEnd;
                mptSmp.nVolume = volume;
 
                mptSmp.nC5Speed = speed * 2;  // Doubled to fit the note range
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libopenmpt-0.8.4+release.autotools/soundlib/Load_unic.cpp 
new/libopenmpt-0.8.6+release.autotools/soundlib/Load_unic.cpp
--- old/libopenmpt-0.8.4+release.autotools/soundlib/Load_unic.cpp       
2024-11-27 23:18:46.000000000 +0100
+++ new/libopenmpt-0.8.6+release.autotools/soundlib/Load_unic.cpp       
2026-02-17 22:12:48.000000000 +0100
@@ -132,10 +132,7 @@
        if(!headerValidationResult.totalSampleSize)
                return ProbeFailure;
 
-       if(pfilesize && *pfilesize < 1084 + headerValidationResult.numPatterns 
* 64u * 4u * 3u + headerValidationResult.totalSampleSize)
-               return ProbeFailure;
-       
-       return ProbeSuccess;
+       return ProbeAdditionalSize(file, pfilesize, 
(headerValidationResult.numPatterns - 1u) * 64u * 4u * 3u + 
headerValidationResult.totalSampleSize);
 }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libopenmpt-0.8.4+release.autotools/soundlib/Snd_fx.cpp 
new/libopenmpt-0.8.6+release.autotools/soundlib/Snd_fx.cpp
--- old/libopenmpt-0.8.4+release.autotools/soundlib/Snd_fx.cpp  2025-10-17 
13:41:56.000000000 +0200
+++ new/libopenmpt-0.8.6+release.autotools/soundlib/Snd_fx.cpp  2026-02-10 
22:32:08.000000000 +0100
@@ -2315,7 +2315,7 @@
        // Always NNA cut
        if(!(GetType() & (MOD_TYPE_IT | MOD_TYPE_MPT | MOD_TYPE_MT2)) || 
!m_nInstruments || forceCut)
        {
-               if(!srcChn.nLength || srcChn.dwFlags[CHN_MUTE] || 
!(srcChn.rightVol | srcChn.leftVol))
+               if(srcChn.dwFlags[CHN_MUTE])
                        return CHANNELINDEX_INVALID;
 
 #ifndef NO_PLUGINS
@@ -2323,6 +2323,9 @@
                        SendMIDINote(nChn, NOTE_KEYOFF, 0, 
m_playBehaviour[kMIDINotesFromChannelPlugin] ? pPlugin : nullptr);
 #endif  // NO_PLUGINS
 
+               if(!srcChn.nLength || !(srcChn.rightVol | srcChn.leftVol))
+                       return CHANNELINDEX_INVALID;
+
                if(srcChn.dwFlags[CHN_ADLIB] && m_opl)
                {
                        m_opl->NoteCut(nChn, false);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libopenmpt-0.8.4+release.autotools/soundlib/Sndmix.cpp 
new/libopenmpt-0.8.6+release.autotools/soundlib/Sndmix.cpp
--- old/libopenmpt-0.8.4+release.autotools/soundlib/Sndmix.cpp  2025-09-01 
20:04:53.000000000 +0200
+++ new/libopenmpt-0.8.6+release.autotools/soundlib/Sndmix.cpp  2026-01-26 
22:15:33.000000000 +0100
@@ -1619,7 +1619,7 @@
                                                // Test case: 
ArpWraparound.mod, and the snare sound in "Jim is dead" by doh.
                                                if(note == NOTE_MIDDLEC + 24)
                                                {
-                                                       period = int32_max;
+                                                       period = 65536;  // 
Period 0 is treated as period 65536 by the Paula chip
                                                        return;
                                                } else if(note > NOTE_MIDDLEC + 
24)
                                                {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libopenmpt-0.8.4+release.autotools/src/mpt/LICENSE.BSD-3-Clause.txt 
new/libopenmpt-0.8.6+release.autotools/src/mpt/LICENSE.BSD-3-Clause.txt
--- old/libopenmpt-0.8.4+release.autotools/src/mpt/LICENSE.BSD-3-Clause.txt     
2024-12-31 11:10:08.000000000 +0100
+++ new/libopenmpt-0.8.6+release.autotools/src/mpt/LICENSE.BSD-3-Clause.txt     
2026-01-01 09:07:51.000000000 +0100
@@ -1,4 +1,4 @@
-Copyright (c) 2004-2025, OpenMPT Project Developers and Contributors
+Copyright (c) 2004-2026, OpenMPT Project Developers and Contributors
 Copyright (c) 1997-2003, Olivier Lapicque
 All rights reserved.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libopenmpt-0.8.4+release.autotools/src/mpt/arch/x86_amd64.hpp 
new/libopenmpt-0.8.6+release.autotools/src/mpt/arch/x86_amd64.hpp
--- old/libopenmpt-0.8.4+release.autotools/src/mpt/arch/x86_amd64.hpp   
2025-10-16 13:12:53.000000000 +0200
+++ new/libopenmpt-0.8.6+release.autotools/src/mpt/arch/x86_amd64.hpp   
2026-01-26 19:28:04.000000000 +0100
@@ -862,7 +862,7 @@
 #endif // MPT_COMPILER
        }
 
-       [[nodiscard]] static bool detect_nexgen() noexcept {
+       [[nodiscard]] MPT_NOINLINE static bool detect_nexgen() noexcept {
 
 #if MPT_ARCH_X86 && MPT_COMPILER_MSVC
 
@@ -916,7 +916,7 @@
 #endif
        }
 
-       [[nodiscard]] static bool detect_cyrix() noexcept {
+       [[nodiscard]] MPT_NOINLINE static bool detect_cyrix() noexcept {
 
 #if MPT_ARCH_X86 && MPT_COMPILER_MSVC
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libopenmpt-0.8.4+release.autotools/src/mpt/base/detect_os.hpp 
new/libopenmpt-0.8.6+release.autotools/src/mpt/base/detect_os.hpp
--- old/libopenmpt-0.8.4+release.autotools/src/mpt/base/detect_os.hpp   
2025-10-06 08:06:16.000000000 +0200
+++ new/libopenmpt-0.8.6+release.autotools/src/mpt/base/detect_os.hpp   
2026-02-14 09:52:18.000000000 +0100
@@ -48,6 +48,7 @@
 // https://en.wikipedia.org/wiki/Windows_10_version_history
 // https://en.wikipedia.org/wiki/Windows_11_version_history
 // 
https://www.windowslatest.com/2021/09/03/windows-11-build-22449-is-now-available-with-new-loading-animation/
+// 
https://en.wikipedia.org/wiki/List_of_Microsoft_codenames#Windows_platform_engineering_milestones
 
 //      Release          NTDDI-version                                   
NTDDI-constant  Release     Build.Sub  Codename      Semester     Semester 
Semester Marketing-Name    min-SDK-Version WDK_NTDDI_VERSION
 //                                                                             
               .Version                                     Codename  Date
@@ -83,7 +84,8 @@
 //                       MPT_WIN_MAKE_VERSION(0x0a, 0x00, 0x00, 0x0e) // 
NTDDI_WIN11_ZN         23H2                                       Zinc      
23H2                         10.0.26100.? NTDDI_WIN11_GE
 //                       MPT_WIN_MAKE_VERSION(0x0a, 0x00, 0x00, 0x0f) // 
NTDDI_WIN11_GA         24H1                                       Gallium   
24H1                         10.0.26100.? NTDDI_WIN11_GE
 #define MPT_WIN_11_24H2  MPT_WIN_MAKE_VERSION(0x0a, 0x00, 0x00, 0x10) // 
NTDDI_WIN11_GE   Win11.24H2 26100      Hudson Valley Germanium R1 Germanium 
24H2    2024 Update          10.0.26100.? NTDDI_WIN11_GE
-//      MPT_WIN_11_25H2  MPT_WIN_MAKE_VERSION(0x0a, 0x00, 0x00, 0x10) //       
           Win11.24H2 26200      ?             ?            ?         25H2    
2025 Update          10.0.26200.? NTDDI_WIN11_GE
+//      MPT_WIN_11_25H2  MPT_WIN_MAKE_VERSION(0x0a, 0x00, 0x00, 0x10) //       
           Win11.25H2 26200      ?             ?            ?         25H2    
2025 Update          10.0.26100.? NTDDI_WIN11_GE
+//      MPT_WIN_11_26H1  MPT_WIN_MAKE_VERSION(0x0a, 0x00, 0x00, 0x10) //       
           Win11.26H1 28000      ?             ?            Bromine   26H2      
                   10.0.26100.? NTDDI_WIN11_GE
 
 // MPT_WIN_API_DESKTOP     : Windows 8/10 Desktop Application (Win32)
 // MPT_WIN_API_UNIVERSAL   : Windows 10 Store App / Universal App
@@ -101,20 +103,39 @@
 
 #elif defined(__EMSCRIPTEN__)
 #define MPT_OS_EMSCRIPTEN 1
-#if !defined(__EMSCRIPTEN_major__) || !defined(__EMSCRIPTEN_minor__) || 
!defined(__EMSCRIPTEN_tiny__)
+#if !defined(__EMSCRIPTEN_MAJOR__) || !defined(__EMSCRIPTEN_MINOR__) || 
!defined(__EMSCRIPTEN_TINY__) || !defined(__EMSCRIPTEN_major__) || 
!defined(__EMSCRIPTEN_minor__) || !defined(__EMSCRIPTEN_tiny__)
 #include <emscripten/version.h>
 #endif
-#if defined(__EMSCRIPTEN_major__) && defined(__EMSCRIPTEN_minor__)
-#if (__EMSCRIPTEN_major__ > 3)
+#if defined(__EMSCRIPTEN_MAJOR__)
+#define MPT_OS_EMSCRIPTEN_VERSION_MAJOR __EMSCRIPTEN_MAJOR__
+#elif defined(__EMSCRIPTEN_major__)
+#define MPT_OS_EMSCRIPTEN_VERSION_MAJOR __EMSCRIPTEN_major__
+#else
+#define MPT_OS_EMSCRIPTEN_VERSION_MAJOR 0
+#endif
+#if defined(__EMSCRIPTEN_MINOR__)
+#define MPT_OS_EMSCRIPTEN_VERSION_MINOR __EMSCRIPTEN_MINOR__
+#elif defined(__EMSCRIPTEN_minor__)
+#define MPT_OS_EMSCRIPTEN_VERSION_MINOR __EMSCRIPTEN_minor__
+#else
+#define MPT_OS_EMSCRIPTEN_VERSION_MINOR 0
+#endif
+#if defined(__EMSCRIPTEN_TINY__)
+#define MPT_OS_EMSCRIPTEN_VERSION_TINY __EMSCRIPTEN_TINY__
+#elif defined(__EMSCRIPTEN_tiny__)
+#define MPT_OS_EMSCRIPTEN_VERSION_TINY __EMSCRIPTEN_tiny__
+#else
+#define MPT_OS_EMSCRIPTEN_VERSION_TINY 0
+#endif
+#if (MPT_OS_EMSCRIPTEN_VERSION_MAJOR > 3)
 // ok
-#elif (__EMSCRIPTEN_major__ == 3) && (__EMSCRIPTEN_minor__ > 1)
+#elif (MPT_OS_EMSCRIPTEN_VERSION_MAJOR == 3) && 
(MPT_OS_EMSCRIPTEN_VERSION_MINOR > 1)
 // ok
-#elif (__EMSCRIPTEN_major__ == 3) && (__EMSCRIPTEN_minor__ == 1) && 
(__EMSCRIPTEN_tiny__ >= 51)
+#elif (MPT_OS_EMSCRIPTEN_VERSION_MAJOR == 3) && 
(MPT_OS_EMSCRIPTEN_VERSION_MINOR == 1) && (MPT_OS_EMSCRIPTEN_VERSION_TINY >= 51)
 // ok
 #else
 #error "Emscripten >= 3.1.51 is required."
 #endif
-#endif
 
 
 #elif defined(__CYGWIN__)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libopenmpt-0.8.4+release.autotools/src/mpt/base/macros.hpp 
new/libopenmpt-0.8.6+release.autotools/src/mpt/base/macros.hpp
--- old/libopenmpt-0.8.4+release.autotools/src/mpt/base/macros.hpp      
2024-12-30 17:42:05.000000000 +0100
+++ new/libopenmpt-0.8.6+release.autotools/src/mpt/base/macros.hpp      
2025-12-14 17:40:37.000000000 +0100
@@ -155,8 +155,9 @@
 #define MPT_MAYBE_CONSTANT_IF(x) \
        _Pragma("clang diagnostic push") \
        _Pragma("clang diagnostic ignored \"-Wunknown-pragmas\"") \
-       _Pragma("clang diagnostic ignored \"-Wtype-limits\"") \
+       _Pragma("clang diagnostic ignored \"-Wunreachable-code\"") \
        _Pragma("clang diagnostic ignored 
\"-Wtautological-constant-out-of-range-compare\"") \
+       _Pragma("clang diagnostic ignored \"-Wtype-limits\"") \
        if (x) \
                _Pragma("clang diagnostic pop") \
 /**/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libopenmpt-0.8.4+release.autotools/src/mpt/osinfo/windows_version.hpp 
new/libopenmpt-0.8.6+release.autotools/src/mpt/osinfo/windows_version.hpp
--- old/libopenmpt-0.8.4+release.autotools/src/mpt/osinfo/windows_version.hpp   
2025-10-06 08:06:16.000000000 +0200
+++ new/libopenmpt-0.8.6+release.autotools/src/mpt/osinfo/windows_version.hpp   
2026-02-13 14:38:20.000000000 +0100
@@ -132,6 +132,8 @@
        static mpt::osinfo::windows::Version FromSDK() noexcept {
                // Initialize to used SDK version
 #if 0
+//#elif MPT_WINNT_AT_LEAST(MPT_WIN_11_26H1)
+//             return 
mpt::osinfo::windows::Version(mpt::osinfo::windows::Version::Win10, 
mpt::osinfo::windows::Version::ServicePack(0, 0), 28000, 0);
 //#elif MPT_WINNT_AT_LEAST(MPT_WIN_11_25H2)
 //             return 
mpt::osinfo::windows::Version(mpt::osinfo::windows::Version::Win10, 
mpt::osinfo::windows::Version::ServicePack(0, 0), 26200, 0);
 #elif MPT_WINNT_AT_LEAST(MPT_WIN_11_24H2)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libopenmpt-0.8.4+release.autotools/src/mpt/osinfo/windows_wine_version.hpp 
new/libopenmpt-0.8.6+release.autotools/src/mpt/osinfo/windows_wine_version.hpp
--- 
old/libopenmpt-0.8.4+release.autotools/src/mpt/osinfo/windows_wine_version.hpp  
    2022-07-15 17:00:38.000000000 +0200
+++ 
new/libopenmpt-0.8.6+release.autotools/src/mpt/osinfo/windows_wine_version.hpp  
    2026-01-10 18:19:35.000000000 +0100
@@ -7,6 +7,7 @@
 
 #include "mpt/base/detect.hpp"
 #include "mpt/base/integer.hpp"
+#include "mpt/base/macros.hpp"
 #include "mpt/base/namespace.hpp"
 #include "mpt/osinfo/windows_version.hpp"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libopenmpt-0.8.4+release.autotools/src/mpt/string_transcode/transcode.hpp 
new/libopenmpt-0.8.6+release.autotools/src/mpt/string_transcode/transcode.hpp
--- 
old/libopenmpt-0.8.4+release.autotools/src/mpt/string_transcode/transcode.hpp   
    2025-06-02 16:31:46.000000000 +0200
+++ 
new/libopenmpt-0.8.6+release.autotools/src/mpt/string_transcode/transcode.hpp   
    2025-12-21 22:52:13.000000000 +0100
@@ -819,6 +819,8 @@
                std::size_t charsleft = numchars;
                while (charsleft > 0) {
                        if (charsleft == numchars) {
+                               // cppcheck false-positive
+                               // cppcheck-suppress arrayIndexOutOfBounds
                                out.push_back(static_cast<uint8>(utf8[charsleft 
- 1] | (((1 << numchars) - 1) << (8 - numchars))));
                        } else {
                                // cppcheck false-positive
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libopenmpt-0.8.4+release.autotools/test/test.cpp 
new/libopenmpt-0.8.6+release.autotools/test/test.cpp
--- old/libopenmpt-0.8.4+release.autotools/test/test.cpp        2025-09-21 
19:05:04.000000000 +0200
+++ new/libopenmpt-0.8.6+release.autotools/test/test.cpp        2026-01-15 
15:41:19.000000000 +0100
@@ -193,8 +193,8 @@
 {
        #ifdef LIBOPENMPT_BUILD
                std::cout << "libopenmpt test suite starting." << std::endl;
-               std::cout << "libopenmpt library version: " << std::hex << 
std::setfill('0') << std::setw(8) << openmpt::get_library_version() << 
std::endl;
-               std::cout << "libopenmpt core version: " << std::hex << 
std::setfill('0') << std::setw(8) << openmpt::get_core_version() << std::endl;
+               std::cout << "libopenmpt library version: " << std::hex << 
std::setfill('0') << std::setw(8) << openmpt::get_library_version() << std::dec 
<< std::endl;
+               std::cout << "libopenmpt core version: " << std::hex << 
std::setfill('0') << std::setw(8) << openmpt::get_core_version() << std::dec << 
std::endl;
                std::cout << "libopenmpt library_version: " << 
openmpt::string::get("library_version") << std::endl;
                std::cout << "libopenmpt library_features: " << 
openmpt::string::get("library_features") << std::endl;
                std::cout << "libopenmpt core_version: " << 
openmpt::string::get("core_version") << std::endl;
@@ -300,7 +300,7 @@
                                                }
                                                return result;
                                        };
-                                       std::cout << "FCW: " << std::hex << 
std::setfill('0') << std::setw(4) << fpstate.x87fcw << std::endl;
+                                       std::cout << "FCW: " << std::hex << 
std::setfill('0') << std::setw(4) << fpstate.x87fcw << std::dec << std::endl;
                                        std::cout << " " << 
format_rounding(fpstate.x87fcw);
                                        std::cout << " " << 
format_precision(fpstate.x87fcw);
                                        if (fpstate.x87_level <= 2) {
@@ -329,7 +329,7 @@
                                                }
                                                return result;
                                        };
-                                       std::cout << "MXCSR (mask): " << 
std::hex << std::setfill('0') << std::setw(8) << fpstate.mxcsr << " (" << 
std::hex << std::setfill('0') << std::setw(8) << fpstate.mxcsr_mask << ")" << 
std::endl;
+                                       std::cout << "MXCSR (mask): " << 
std::hex << std::setfill('0') << std::setw(8) << fpstate.mxcsr << std::dec << " 
(" << std::hex << std::setfill('0') << std::setw(8) << fpstate.mxcsr_mask << 
std::dec << ")" << std::endl;
                                        std::cout << " " << 
format_rounding(fpstate.mxcsr);
                                        if(fpstate.mxcsr & fpstate.mxcsr_mask & 
mpt::arch::x86::floating_point::MXCSR_FTZ)
                                        {

Reply via email to