Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package libopenmpt for openSUSE:Factory 
checked in at 2023-11-07 21:25:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libopenmpt (Old)
 and      /work/SRC/openSUSE:Factory/.libopenmpt.new.17445 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libopenmpt"

Tue Nov  7 21:25:11 2023 rev:44 rq:1123699 version:0.7.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/libopenmpt/libopenmpt.changes    2023-06-30 
19:58:04.045356253 +0200
+++ /work/SRC/openSUSE:Factory/.libopenmpt.new.17445/libopenmpt.changes 
2023-11-07 21:25:15.609086909 +0100
@@ -1,0 +2,7 @@
+Tue Nov  7 00:48:48 UTC 2023 - Mia Herkt <m...@0x0.st>
+
+- Update to 0.7.3:
+  * Fix: set_pitch_factor no longer affected OPL instruments since
+    version 0.6.0.
+
+-------------------------------------------------------------------

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

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

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

Other differences:
------------------
++++++ libopenmpt.spec ++++++
--- /var/tmp/diff_new_pack.yu5Yw7/_old  2023-11-07 21:25:16.321113129 +0100
+++ /var/tmp/diff_new_pack.yu5Yw7/_new  2023-11-07 21:25:16.321113129 +0100
@@ -21,7 +21,7 @@
 %define libopenmpt_modplug_version 0.8.9.0
 
 Name:           libopenmpt
-Version:        0.7.2
+Version:        0.7.3
 Release:        0
 Summary:        C++ and C library to decode tracker music files
 License:        BSD-3-Clause

++++++ libopenmpt-0.7.2+release.autotools.tar.gz -> 
libopenmpt-0.7.3+release.autotools.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libopenmpt-0.7.2+release.autotools/common/mptTime.cpp 
new/libopenmpt-0.7.3+release.autotools/common/mptTime.cpp
--- old/libopenmpt-0.7.2+release.autotools/common/mptTime.cpp   2022-07-15 
17:00:38.000000000 +0200
+++ new/libopenmpt-0.7.3+release.autotools/common/mptTime.cpp   2023-07-23 
11:21:01.000000000 +0200
@@ -17,7 +17,7 @@
 
 #include "mptStringBuffer.h"
 
-#if MPT_CXX_AT_LEAST(20) && !defined(MPT_LIBCXX_QUIRK_NO_CHRONO_DATE)
+#if MPT_CXX_AT_LEAST(20) && !defined(MPT_LIBCXX_QUIRK_NO_CHRONO) && 
!defined(MPT_LIBCXX_QUIRK_NO_CHRONO_DATE)
 #include <chrono>
 #endif
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libopenmpt-0.7.2+release.autotools/common/mptTime.h 
new/libopenmpt-0.7.3+release.autotools/common/mptTime.h
--- old/libopenmpt-0.7.2+release.autotools/common/mptTime.h     2023-05-26 
09:37:04.000000000 +0200
+++ new/libopenmpt-0.7.3+release.autotools/common/mptTime.h     2023-07-23 
11:21:01.000000000 +0200
@@ -12,7 +12,7 @@
 
 #include "openmpt/all/BuildSettings.hpp"
 
-#if MPT_CXX_AT_LEAST(20) && !defined(MPT_LIBCXX_QUIRK_NO_CHRONO_DATE)
+#if MPT_CXX_AT_LEAST(20) && !defined(MPT_LIBCXX_QUIRK_NO_CHRONO) && 
!defined(MPT_LIBCXX_QUIRK_NO_CHRONO_DATE)
 #include <chrono>
 #include <exception>
 #endif
@@ -175,7 +175,7 @@
 
 } // namespace nochrono
 
-#if MPT_CXX_AT_LEAST(20) && !defined(MPT_LIBCXX_QUIRK_NO_CHRONO_DATE)
+#if MPT_CXX_AT_LEAST(20) && !defined(MPT_LIBCXX_QUIRK_NO_CHRONO) && 
!defined(MPT_LIBCXX_QUIRK_NO_CHRONO_DATE)
 
 using Unix = std::chrono::system_clock::time_point;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libopenmpt-0.7.2+release.autotools/common/version.h 
new/libopenmpt-0.7.3+release.autotools/common/version.h
--- old/libopenmpt-0.7.2+release.autotools/common/version.h     2022-09-10 
16:27:35.000000000 +0200
+++ new/libopenmpt-0.7.3+release.autotools/common/version.h     2023-07-25 
19:12:08.000000000 +0200
@@ -205,7 +205,7 @@
 }
 
 
-MPT_CONSTEVAL Version operator "" _LiteralVersionImpl (const char * str, 
std::size_t len)
+MPT_CONSTEVAL Version operator ""_LiteralVersionImpl (const char * str, 
std::size_t len)
 {
        return Version::LiteralParser::Parse(str, len);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libopenmpt-0.7.2+release.autotools/common/versionNumber.h 
new/libopenmpt-0.7.3+release.autotools/common/versionNumber.h
--- old/libopenmpt-0.7.2+release.autotools/common/versionNumber.h       
2023-06-18 15:01:49.000000000 +0200
+++ new/libopenmpt-0.7.3+release.autotools/common/versionNumber.h       
2023-08-27 17:03:08.000000000 +0200
@@ -17,7 +17,7 @@
 // Version definitions. The only thing that needs to be changed when changing 
version number.
 #define VER_MAJORMAJOR  1
 #define VER_MAJOR      31
-#define VER_MINOR      03
+#define VER_MINOR      04
 #define VER_MINORMINOR 00
 
 OPENMPT_NAMESPACE_END
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libopenmpt-0.7.2+release.autotools/configure 
new/libopenmpt-0.7.3+release.autotools/configure
--- old/libopenmpt-0.7.2+release.autotools/configure    2023-06-18 
15:22:50.000000000 +0200
+++ new/libopenmpt-0.7.3+release.autotools/configure    2023-09-09 
14:47:52.000000000 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for libopenmpt 0.7.2+release.autotools.
+# Generated by GNU Autoconf 2.71 for libopenmpt 0.7.3+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.7.2+release.autotools'
-PACKAGE_STRING='libopenmpt 0.7.2+release.autotools'
+PACKAGE_VERSION='0.7.3+release.autotools'
+PACKAGE_STRING='libopenmpt 0.7.3+release.autotools'
 PACKAGE_BUGREPORT='https://bugs.openmpt.org/'
 PACKAGE_URL='https://lib.openmpt.org/'
 
@@ -1510,7 +1510,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.7.2+release.autotools to adapt to many 
kinds of systems.
+\`configure' configures libopenmpt 0.7.3+release.autotools to adapt to many 
kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1581,7 +1581,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libopenmpt 
0.7.2+release.autotools:";;
+     short | recursive ) echo "Configuration of libopenmpt 
0.7.3+release.autotools:";;
    esac
   cat <<\_ACEOF
 
@@ -1768,7 +1768,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libopenmpt configure 0.7.2+release.autotools
+libopenmpt configure 0.7.3+release.autotools
 generated by GNU Autoconf 2.71
 
 Copyright (C) 2021 Free Software Foundation, Inc.
@@ -2148,7 +2148,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.7.2+release.autotools, which was
+It was created by libopenmpt $as_me 0.7.3+release.autotools, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   $ $0$ac_configure_args_raw
@@ -3644,7 +3644,7 @@
 
 # Define the identity of the package.
  PACKAGE='libopenmpt'
- VERSION='0.7.2+release.autotools'
+ VERSION='0.7.3+release.autotools'
 
 
 printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -21837,13 +21837,13 @@
 
 
 
-printf "%s\n" "#define MPT_SVNURL 
\"https://source.openmpt.org/svn/openmpt/tags/libopenmpt-0.7.2\""; >>confdefs.h
+printf "%s\n" "#define MPT_SVNURL 
\"https://source.openmpt.org/svn/openmpt/tags/libopenmpt-0.7.3\""; >>confdefs.h
 
 
-printf "%s\n" "#define MPT_SVNVERSION \"19406\"" >>confdefs.h
+printf "%s\n" "#define MPT_SVNVERSION \"19618\"" >>confdefs.h
 
 
-printf "%s\n" "#define MPT_SVNDATE \"2023-06-18T13:08:13.199805Z\"" 
>>confdefs.h
+printf "%s\n" "#define MPT_SVNDATE \"2023-09-09T11:29:35.564177Z\"" 
>>confdefs.h
 
 
 printf "%s\n" "#define MPT_PACKAGE true" >>confdefs.h
@@ -25798,7 +25798,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.7.2+release.autotools, which was
+This file was extended by libopenmpt $as_me 0.7.3+release.autotools, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -25858,7 +25858,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
-libopenmpt config.status 0.7.2+release.autotools
+libopenmpt config.status 0.7.3+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.7.2+release.autotools/configure.ac 
new/libopenmpt-0.7.3+release.autotools/configure.ac
--- old/libopenmpt-0.7.2+release.autotools/configure.ac 2023-06-18 
15:22:26.000000000 +0200
+++ new/libopenmpt-0.7.3+release.autotools/configure.ac 2023-09-09 
14:47:21.000000000 +0200
@@ -1,4 +1,4 @@
-AC_INIT([libopenmpt], [0.7.2+release.autotools], [https://bugs.openmpt.org/], 
[libopenmpt], [https://lib.openmpt.org/])
+AC_INIT([libopenmpt], [0.7.3+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])
@@ -62,9 +62,9 @@
 AC_SUBST([LIBOPENMPT_LTVER_REVISION])
 AC_SUBST([LIBOPENMPT_LTVER_AGE])
 
-AC_DEFINE([MPT_SVNURL], 
["https://source.openmpt.org/svn/openmpt/tags/libopenmpt-0.7.2";], [svn version])
-AC_DEFINE([MPT_SVNVERSION], ["19406"], [svn version])
-AC_DEFINE([MPT_SVNDATE], ["2023-06-18T13:08:13.199805Z"], [svn date])
+AC_DEFINE([MPT_SVNURL], 
["https://source.openmpt.org/svn/openmpt/tags/libopenmpt-0.7.3";], [svn version])
+AC_DEFINE([MPT_SVNVERSION], ["19618"], [svn version])
+AC_DEFINE([MPT_SVNDATE], ["2023-09-09T11:29:35.564177Z"], [svn date])
 AC_DEFINE([MPT_PACKAGE], [true], [is package])
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libopenmpt-0.7.2+release.autotools/doc/libopenmpt/changelog.md 
new/libopenmpt-0.7.3+release.autotools/doc/libopenmpt/changelog.md
--- old/libopenmpt-0.7.2+release.autotools/doc/libopenmpt/changelog.md  
2023-06-18 15:08:12.000000000 +0200
+++ new/libopenmpt-0.7.3+release.autotools/doc/libopenmpt/changelog.md  
2023-09-09 13:29:34.000000000 +0200
@@ -5,14 +5,24 @@
 For fully detailed change log, please see the source repository directly. This
 is just a high-level summary.
 
-### libopenmpt 0.7.2 (2023-06-18)
+### libopenmpt 0.7.3 (2023-09-09)
 
- *  [**New**] MOD: Can now read modified 8-channel MOD files from the DOS game
-    Aleshar - The World Of Ice.
+ *  [**Bug**] Makefile: Emscripten 3.1.31 stopped exporting `malloc` and 
`free`.
+    We now explicitly export those again to keep compatibility.
+
+ *  `set_pitch_factor` no longer affected  OPL instruments since version 0.6.0.
+
+ *  FLAC: Update to v1.4.3 (2022-06-23).
+ *  zlib: Update to v1.3 (2022-08-18).
+
+### libopenmpt 0.7.2 (2023-06-18)
 
  *  [**Sec**] Possible out-of-bounds read or write when reading malformed MED
     files. (r19389)
 
+ *  [**New**] MOD: Can now read modified 8-channel MOD files from the DOS game
+    Aleshar - The World Of Ice.
+
  *  [**Bug**] The C++ API failed to compile with Clang/Emscripten in some
     situations due to a misplaced `[[deprecated]]`.
  *  [**Bug**] The Opal OPL3 emulator symbols were not namespaced properly.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libopenmpt-0.7.2+release.autotools/libopenmpt/libopenmpt_version.h 
new/libopenmpt-0.7.3+release.autotools/libopenmpt/libopenmpt_version.h
--- old/libopenmpt-0.7.2+release.autotools/libopenmpt/libopenmpt_version.h      
2023-06-18 15:08:12.000000000 +0200
+++ new/libopenmpt-0.7.3+release.autotools/libopenmpt/libopenmpt_version.h      
2023-09-09 13:29:34.000000000 +0200
@@ -21,7 +21,7 @@
 /*! \brief libopenmpt minor version number */
 #define OPENMPT_API_VERSION_MINOR 7
 /*! \brief libopenmpt patch version number */
-#define OPENMPT_API_VERSION_PATCH 2
+#define OPENMPT_API_VERSION_PATCH 3
 /*! \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.7.2+release.autotools/libopenmpt/libopenmpt_version.mk 
new/libopenmpt-0.7.3+release.autotools/libopenmpt/libopenmpt_version.mk
--- old/libopenmpt-0.7.2+release.autotools/libopenmpt/libopenmpt_version.mk     
2023-06-18 15:08:12.000000000 +0200
+++ new/libopenmpt-0.7.3+release.autotools/libopenmpt/libopenmpt_version.mk     
2023-09-09 13:29:34.000000000 +0200
@@ -1,8 +1,8 @@
 LIBOPENMPT_VERSION_MAJOR=0
 LIBOPENMPT_VERSION_MINOR=7
-LIBOPENMPT_VERSION_PATCH=2
+LIBOPENMPT_VERSION_PATCH=3
 LIBOPENMPT_VERSION_PREREL=
 
 LIBOPENMPT_LTVER_CURRENT=4
-LIBOPENMPT_LTVER_REVISION=2
+LIBOPENMPT_LTVER_REVISION=3
 LIBOPENMPT_LTVER_AGE=4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libopenmpt-0.7.2+release.autotools/man/openmpt123.1 
new/libopenmpt-0.7.3+release.autotools/man/openmpt123.1
--- old/libopenmpt-0.7.2+release.autotools/man/openmpt123.1     2023-06-18 
15:22:25.000000000 +0200
+++ new/libopenmpt-0.7.3+release.autotools/man/openmpt123.1     2023-09-09 
14:47:20.000000000 +0200
@@ -1,12 +1,12 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH OPENMPT123 "1" "June 2023" "openmpt123 v0.7.2" "User Commands"
+.TH OPENMPT123 "1" "September 2023" "openmpt123 v0.7.3" "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.7.2, libopenmpt 0.7.2+r19406 (OpenMPT 1.31.03.00 
https://source.openmpt.org/svn/openmpt/tags/libopenmpt\-0.7.2@19406 
(2023\-06\-18T13:08:13.199805Z) clean)
+openmpt123 v0.7.3, libopenmpt 0.7.3+r19618 (OpenMPT 1.31.04.00 
https://source.openmpt.org/svn/openmpt/tags/libopenmpt\-0.7.3@19618 
(2023\-09\-09T11:29:35.564177Z) clean)
 Copyright \(co 2013\-2023 OpenMPT Project Developers and Contributors 
<https://lib.openmpt.org/>
 .PP
 openmpt123 plays module music files.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libopenmpt-0.7.2+release.autotools/soundlib/Load_sfx.cpp 
new/libopenmpt-0.7.3+release.autotools/soundlib/Load_sfx.cpp
--- old/libopenmpt-0.7.2+release.autotools/soundlib/Load_sfx.cpp        
2023-03-18 21:18:35.000000000 +0100
+++ new/libopenmpt-0.7.3+release.autotools/soundlib/Load_sfx.cpp        
2023-06-24 14:22:03.000000000 +0200
@@ -207,6 +207,8 @@
                SFXSampleHeader sampleHeader;
 
                file.ReadStruct(sampleHeader);
+               // cppcheck false-positive
+               // cppcheck-suppress uninitvar
                sampleHeader.ConvertToMPT(Samples[smp], sampleLen[smp - 1]);
 
                // Get rid of weird characters in sample names.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libopenmpt-0.7.2+release.autotools/soundlib/Load_xm.cpp 
new/libopenmpt-0.7.3+release.autotools/soundlib/Load_xm.cpp
--- old/libopenmpt-0.7.2+release.autotools/soundlib/Load_xm.cpp 2023-03-14 
21:57:02.000000000 +0100
+++ new/libopenmpt-0.7.3+release.autotools/soundlib/Load_xm.cpp 2023-08-05 
10:13:26.000000000 +0200
@@ -1051,6 +1051,17 @@
 #ifndef MODPLUG_NO_FILESAVE
 
 
+#if MPT_GCC_AT_LEAST(13, 0, 0) && MPT_GCC_BEFORE(14, 1, 0)
+// work-around massively confused GCC 13 optimizer:
+// /usr/include/c++/13/bits/stl_algobase.h:437:30: warning: 'void* 
__builtin_memcpy(void*, const void*, long unsigned int)' writing between 3 and 
9223372036854775806 bytes into a region of size 0 overflows the destination 
[-Wstringop-overflow=]
+template <typename Tcont2, typename Tcont1>
+static MPT_NOINLINE Tcont1 & gcc_append(Tcont1 & cont1, const Tcont2 & cont2) {
+       cont1.insert(cont1.end(), cont2.begin(), cont2.end());
+       return cont1;
+}
+#endif
+
+
 bool CSoundFile::SaveXM(std::ostream &f, bool compatibilityExport)
 {
 
@@ -1322,7 +1333,11 @@
                                        }
                                }
 
-                               samples.insert(samples.end(), 
additionalSamples.begin(), additionalSamples.end());
+#if MPT_GCC_AT_LEAST(13, 0, 0) && MPT_GCC_BEFORE(14, 1, 0)
+                               gcc_append(samples, additionalSamples);
+#else
+                               mpt::append(samples, additionalSamples);
+#endif
                        } else
                        {
                                MemsetZero(insHeader);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libopenmpt-0.7.2+release.autotools/soundlib/ModChannel.cpp 
new/libopenmpt-0.7.3+release.autotools/soundlib/ModChannel.cpp
--- old/libopenmpt-0.7.2+release.autotools/soundlib/ModChannel.cpp      
2023-03-09 22:10:25.000000000 +0100
+++ new/libopenmpt-0.7.3+release.autotools/soundlib/ModChannel.cpp      
2023-08-27 01:36:54.000000000 +0200
@@ -127,16 +127,15 @@
 }
 
 
-ModCommand::NOTE ModChannel::GetPluginNote(bool realNoteMapping, bool 
ignoreArpeggio) const
+ModCommand::NOTE ModChannel::GetPluginNote(bool ignoreArpeggio) const
 {
        if(nArpeggioLastNote != NOTE_NONE && !ignoreArpeggio)
        {
-               // If an arpeggio is playing, this definitely the last playing 
note, which may be different from the arpeggio base note stored in nNote.
+               // If an arpeggio is playing, this definitely the last playing 
note, which may be different from the arpeggio base note stored in nLastNote.
                return nArpeggioLastNote;
        }
-       ModCommand::NOTE plugNote = mpt::saturate_cast<ModCommand::NOTE>(nNote 
- nTranspose);
-       // Caution: When in compatible mode, ModChannel::nNote stores the 
"real" note, not the mapped note!
-       if(realNoteMapping && pModInstrument != nullptr && plugNote >= NOTE_MIN 
&& plugNote < (std::size(pModInstrument->NoteMap) + NOTE_MIN))
+       ModCommand::NOTE plugNote = nLastNote;
+       if(pModInstrument != nullptr && plugNote >= NOTE_MIN && plugNote < 
(std::size(pModInstrument->NoteMap) + NOTE_MIN))
        {
                plugNote = pModInstrument->NoteMap[plugNote - NOTE_MIN];
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libopenmpt-0.7.2+release.autotools/soundlib/ModChannel.h 
new/libopenmpt-0.7.3+release.autotools/soundlib/ModChannel.h
--- old/libopenmpt-0.7.2+release.autotools/soundlib/ModChannel.h        
2022-04-10 00:11:00.000000000 +0200
+++ new/libopenmpt-0.7.3+release.autotools/soundlib/ModChannel.h        
2023-08-27 01:36:54.000000000 +0200
@@ -187,7 +187,7 @@
 
        uint32 GetVSTVolume() const noexcept { return (pModInstrument) ? 
pModInstrument->nGlobalVol * 4 : nVolume; }
 
-       ModCommand::NOTE GetPluginNote(bool realNoteMapping, bool 
ignoreArpeggio = false) const;
+       ModCommand::NOTE GetPluginNote(bool ignoreArpeggio = false) const;
 
        // Check if the channel has a valid MIDI output. A return value of true 
implies that pModInstrument != nullptr.
        bool HasMIDIOutput() const noexcept { return pModInstrument != nullptr 
&& pModInstrument->HasValidMIDIChannel(); }
@@ -208,6 +208,10 @@
        void InstrumentControl(uint8 param, const CSoundFile &sndFile);
 
        int32 GetMIDIPitchBend() const noexcept { return 
(static_cast<int32>(microTuning) + 0x8000) / 4; }
+       void SetMIDIPitchBend(const uint8 high, const uint8 low) noexcept
+       {
+               microTuning = static_cast<int16>(((high << 9) | (low << 2)) - 
0x8000);
+       }
 };
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libopenmpt-0.7.2+release.autotools/soundlib/SampleFormats.cpp 
new/libopenmpt-0.7.3+release.autotools/soundlib/SampleFormats.cpp
--- old/libopenmpt-0.7.2+release.autotools/soundlib/SampleFormats.cpp   
2023-05-06 00:03:02.000000000 +0200
+++ new/libopenmpt-0.7.3+release.autotools/soundlib/SampleFormats.cpp   
2023-06-30 15:27:35.000000000 +0200
@@ -2519,7 +2519,7 @@
 
        size_t GetLength() const
        {
-               if(length == 0)  // Broken files
+               if(length == 0 && id == idBODY)  // Broken files
                        return std::numeric_limits<size_t>::max();
                return length;
        }
@@ -2729,6 +2729,8 @@
 
 static uint32 WriteIFFStringChunk(std::ostream &f, IFFChunk::ChunkIdentifiers 
id, const std::string &str)
 {
+       if(str.empty())
+               return 0;
        IFFChunk chunk{};
        chunk.id = id;
        chunk.length = static_cast<uint32>(str.size());
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libopenmpt-0.7.2+release.autotools/soundlib/SampleIO.cpp 
new/libopenmpt-0.7.3+release.autotools/soundlib/SampleIO.cpp
--- old/libopenmpt-0.7.2+release.autotools/soundlib/SampleIO.cpp        
2023-04-11 19:45:08.000000000 +0200
+++ new/libopenmpt-0.7.3+release.autotools/soundlib/SampleIO.cpp        
2023-06-30 15:27:35.000000000 +0200
@@ -947,17 +947,20 @@
                }
        }
 
-       else if(GetBitDepth() == 16 && GetChannelFormat() == stereoSplit && 
GetEncoding() == signedPCM && GetEndianness() == bigEndian)
+       else if(GetBitDepth() == 16 && (GetChannelFormat() == stereoSplit || 
GetChannelFormat() == mono)
+               && (GetEncoding() == signedPCM || GetEncoding() == unsignedPCM) 
&& GetEndianness() == bigEndian)
        {
-               // Stereo signed split, big-endian
-               MPT_ASSERT(len == numSamples * 4);
-               for(uint8 chn = 0; chn < 2; chn++)
+               // Stereo split / mono signed 16-bit, big-endian
+               const uint8 numChannels = GetNumChannels();
+               const uint16 offset = (GetEncoding() == unsignedPCM) ? 0x8000 : 
0;
+               MPT_ASSERT(len == numSamples * numChannels * 2);
+               for(uint8 chn = 0; chn < numChannels; chn++)
                {
                        const int16 *p = sample.sample16() + chn;
                        for(SmpLength j = 0; j < numSamples; j++)
                        {
-                               mpt::IO::Write(fb, mpt::as_be(*p));
-                               p += 2;
+                               mpt::IO::Write(fb, 
mpt::as_be(static_cast<int16>(static_cast<uint16>(*p) + offset)));
+                               p += numChannels;
                        }
                }
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libopenmpt-0.7.2+release.autotools/soundlib/Snd_fx.cpp 
new/libopenmpt-0.7.3+release.autotools/soundlib/Snd_fx.cpp
--- old/libopenmpt-0.7.2+release.autotools/soundlib/Snd_fx.cpp  2023-04-13 
23:41:51.000000000 +0200
+++ new/libopenmpt-0.7.3+release.autotools/soundlib/Snd_fx.cpp  2023-08-27 
01:36:54.000000000 +0200
@@ -326,7 +326,7 @@
                                for(CHANNELINDEX i = 0; i < GetNumChannels(); 
i++, m++)
                                {
                                        if(m->note == NOTE_NOTECUT || m->note 
== NOTE_KEYOFF || (m->note == NOTE_FADE && GetNumInstruments())
-                                               || (m->IsNote() && 
!m->IsPortamento()))
+                                               || (m->IsNote() && m->instr && 
!m->IsPortamento()))
                                        {
                                                
memory.chnSettings[i].ticksToRender = GetLengthMemory::IGNORE_CHANNEL;
                                        }
@@ -4156,7 +4156,7 @@
                IMixPlugin *plugin = GetChannelInstrumentPlugin(chn);
                if(plugin != nullptr)
                {
-                       plugin->MidiTonePortamento(delta, 
chn.GetPluginNote(m_playBehaviour[kITRealNoteMapping], true), 
chn.pModInstrument->midiPWD, nChn);
+                       plugin->MidiTonePortamento(delta, 
chn.GetPluginNote(true), chn.pModInstrument->midiPWD, nChn);
                }
        }
 #endif  // NO_PLUGINS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libopenmpt-0.7.2+release.autotools/soundlib/Sndmix.cpp 
new/libopenmpt-0.7.3+release.autotools/soundlib/Sndmix.cpp
--- old/libopenmpt-0.7.2+release.autotools/soundlib/Sndmix.cpp  2023-03-30 
19:27:17.000000000 +0200
+++ new/libopenmpt-0.7.3+release.autotools/soundlib/Sndmix.cpp  2023-07-17 
19:37:12.000000000 +0200
@@ -2387,6 +2387,9 @@
                                        // In ST3, a sample rate of 8363 Hz is 
mapped to middle-C, which is 261.625 Hz in a tempered scale at A4 = 440.
                                        // Hence, we have to translate our 
"sample rate" into pitch.
                                        auto milliHertz = 
Util::muldivr_unsigned(freq, 261625, 8363 << FREQ_FRACBITS);
+#ifndef MODPLUG_TRACKER
+                                       milliHertz = 
Util::muldivr_unsigned(milliHertz, m_nFreqFactor, 65536);
+#endif  // !MODPLUG_TRACKER
 
                                        const bool keyOff = 
chn.dwFlags[CHN_KEYOFF] || (chn.dwFlags[CHN_NOTEFADE] && chn.nFadeOutVol == 0);
                                        
if(!m_playBehaviour[kOPLNoteStopWith0Hz] || !keyOff)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libopenmpt-0.7.2+release.autotools/src/mpt/base/detect_compiler.hpp 
new/libopenmpt-0.7.3+release.autotools/src/mpt/base/detect_compiler.hpp
--- old/libopenmpt-0.7.2+release.autotools/src/mpt/base/detect_compiler.hpp     
2023-05-18 10:02:49.000000000 +0200
+++ new/libopenmpt-0.7.3+release.autotools/src/mpt/base/detect_compiler.hpp     
2023-08-09 12:44:15.000000000 +0200
@@ -50,7 +50,9 @@
 #elif defined(_MSC_VER)
 
 #define MPT_COMPILER_MSVC 1
-#if (_MSC_VER >= 1936)
+#if (_MSC_VER >= 1937)
+#define MPT_COMPILER_MSVC_VERSION MPT_COMPILER_MAKE_VERSION2(2022, 7)
+#elif (_MSC_VER >= 1936)
 #define MPT_COMPILER_MSVC_VERSION MPT_COMPILER_MAKE_VERSION2(2022, 6)
 #elif (_MSC_VER >= 1935)
 #define MPT_COMPILER_MSVC_VERSION MPT_COMPILER_MAKE_VERSION2(2022, 5)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libopenmpt-0.7.2+release.autotools/src/mpt/base/detect_quirks.hpp 
new/libopenmpt-0.7.3+release.autotools/src/mpt/base/detect_quirks.hpp
--- old/libopenmpt-0.7.2+release.autotools/src/mpt/base/detect_quirks.hpp       
2023-05-26 09:37:04.000000000 +0200
+++ new/libopenmpt-0.7.3+release.autotools/src/mpt/base/detect_quirks.hpp       
2023-07-23 11:21:01.000000000 +0200
@@ -242,6 +242,13 @@
 
 
 #if MPT_CXX_AT_LEAST(20)
+// Clang 14 is incompatible with libstdc++ 13 in C++20 mode
+#if MPT_CLANG_BEFORE(15, 0, 0) && MPT_LIBCXX_GNU_AT_LEAST(13)
+#define MPT_LIBCXX_QUIRK_NO_CHRONO
+#endif
+#endif
+
+#if MPT_CXX_AT_LEAST(20)
 #if MPT_LIBCXX_MS && MPT_OS_WINDOWS
 #if MPT_WIN_BEFORE(MPT_WIN_10_1903)
 // std::chrono timezones require Windows 10 1903 with VS2022 as of 2022-01-22.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libopenmpt-0.7.2+release.autotools/src/mpt/base/floatingpoint.hpp 
new/libopenmpt-0.7.3+release.autotools/src/mpt/base/floatingpoint.hpp
--- old/libopenmpt-0.7.2+release.autotools/src/mpt/base/floatingpoint.hpp       
2021-05-04 09:21:58.000000000 +0200
+++ new/libopenmpt-0.7.3+release.autotools/src/mpt/base/floatingpoint.hpp       
2023-07-25 19:12:08.000000000 +0200
@@ -23,21 +23,21 @@
 // fp single
 using single = float;
 namespace float_literals {
-constexpr single operator"" _fs(long double lit) noexcept {
+constexpr single operator""_fs(long double lit) noexcept {
        return static_cast<single>(lit);
 }
 } // namespace float_literals
 
 // fp double
 namespace float_literals {
-constexpr double operator"" _fd(long double lit) noexcept {
+constexpr double operator""_fd(long double lit) noexcept {
        return static_cast<double>(lit);
 }
 } // namespace float_literals
 
 // fp extended
 namespace float_literals {
-constexpr long double operator"" _fe(long double lit) noexcept {
+constexpr long double operator""_fe(long double lit) noexcept {
        return static_cast<long double>(lit);
 }
 } // namespace float_literals
@@ -47,14 +47,14 @@
 
 using float32 = std::conditional<sizeof(float) == 4, float, 
std::conditional<sizeof(double) == 4, double, std::conditional<sizeof(long 
double) == 4, long double, float>::type>::type>::type;
 namespace float_literals {
-constexpr float32 operator"" _f32(long double lit) noexcept {
+constexpr float32 operator""_f32(long double lit) noexcept {
        return static_cast<float32>(lit);
 }
 } // namespace float_literals
 
 using float64 = std::conditional<sizeof(float) == 8, float, 
std::conditional<sizeof(double) == 8, double, std::conditional<sizeof(long 
double) == 8, long double, double>::type>::type>::type;
 namespace float_literals {
-constexpr float64 operator"" _f64(long double lit) noexcept {
+constexpr float64 operator""_f64(long double lit) noexcept {
        return static_cast<float64>(lit);
 }
 } // namespace float_literals
@@ -79,7 +79,7 @@
 using nativefloat =
        std::conditional<mpt::float_traits<float32>::is_preferred, float32, 
std::conditional<mpt::float_traits<float64>::is_preferred, float64, 
std::conditional<std::numeric_limits<float>::is_iec559, float, 
std::conditional<std::numeric_limits<double>::is_iec559, double, 
std::conditional<std::numeric_limits<long double>::is_iec559, long double, 
float>::type>::type>::type>::type>::type;
 namespace float_literals {
-constexpr nativefloat operator"" _nf(long double lit) noexcept {
+constexpr nativefloat operator""_nf(long double lit) noexcept {
        return static_cast<nativefloat>(lit);
 }
 } // namespace float_literals
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libopenmpt-0.7.2+release.autotools/src/mpt/parse/tests/tests_parse.hpp 
new/libopenmpt-0.7.3+release.autotools/src/mpt/parse/tests/tests_parse.hpp
--- old/libopenmpt-0.7.2+release.autotools/src/mpt/parse/tests/tests_parse.hpp  
2022-12-24 15:56:24.000000000 +0100
+++ new/libopenmpt-0.7.3+release.autotools/src/mpt/parse/tests/tests_parse.hpp  
2023-08-26 15:41:53.000000000 +0200
@@ -65,7 +65,9 @@
 #endif
 
        
MPT_TEST_EXPECT_EQUAL(mpt::parse<float>(mpt::format<std::string>::val(-87.0)), 
-87.0f);
-#if !MPT_OS_DJGPP
+       // VS2022 17.7.2 parses "-5e-07" as -5.0000000000000004e-06 instead of 
-4.9999999999999998e-07 which is closer
+       // 
https://developercommunity.visualstudio.com/t/Parsing-double-from-stringstream-returns/10450694
+#if !MPT_OS_DJGPP && !(MPT_COMPILER_MSVC && MPT_COMPILER_MSVC_VERSION == 
MPT_COMPILER_MAKE_VERSION2(2022, 7))
        
MPT_TEST_EXPECT_EQUAL(mpt::parse<double>(mpt::format<std::string>::val(-0.5e-6)),
 -0.5e-6);
 #endif
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libopenmpt-0.7.2+release.autotools/src/mpt/path/basic_path.hpp 
new/libopenmpt-0.7.3+release.autotools/src/mpt/path/basic_path.hpp
--- old/libopenmpt-0.7.2+release.autotools/src/mpt/path/basic_path.hpp  
2023-01-13 08:56:46.000000000 +0100
+++ new/libopenmpt-0.7.3+release.autotools/src/mpt/path/basic_path.hpp  
2023-08-05 07:45:12.000000000 +0200
@@ -504,7 +504,9 @@
 // Work-around <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105329> /
 // <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105651>.
 #pragma GCC push_options
+#if defined(__OPTIMIZE__)
 #pragma GCC optimize("O1")
+#endif
 // Work-around brain-damaged GCC warning 'void operator delete(void*, 
std::size_t)' called on a pointer to an unallocated object '"\\\000\\\000\000"'.
 // Probably a duplicate of one of the many incarnations of 
<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99098>.
 #pragma GCC diagnostic push
@@ -689,8 +691,10 @@
 // Work-around <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105329> /
 // <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105651>.
 #pragma GCC push_options
+#if defined(__OPTIMIZE__)
 #pragma GCC optimize("O1")
 #endif
+#endif
        // Convert a path to its simplified form, i.e. remove ".\" and "..\" 
entries
        // Note: We use our own implementation as PathCanonicalize is limited 
to MAX_PATH
        // and unlimited versions are only available on Windows 8 and later.
@@ -816,8 +820,10 @@
 // Work-around <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105329> /
 // <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105651>.
 #pragma GCC push_options
+#if defined(__OPTIMIZE__)
 #pragma GCC optimize("O1")
 #endif
+#endif
        static bool IsAbsolute(const raw_path_type & path) {
                using namespace path_literals;
                bool result{};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libopenmpt-0.7.2+release.autotools/src/mpt/random/device.hpp 
new/libopenmpt-0.7.3+release.autotools/src/mpt/random/device.hpp
--- old/libopenmpt-0.7.2+release.autotools/src/mpt/random/device.hpp    
2021-11-04 06:59:02.000000000 +0100
+++ new/libopenmpt-0.7.3+release.autotools/src/mpt/random/device.hpp    
2023-07-23 11:47:19.000000000 +0200
@@ -19,7 +19,9 @@
 #include "mpt/random/engine_lcg.hpp"
 #include "mpt/random/random.hpp"
 
+#if !defined(MPT_LIBCXX_QUIRK_NO_CHRONO)
 #include <chrono>
+#endif // !MPT_LIBCXX_QUIRK_NO_CHRONO
 #include <limits>
 #include <memory>
 #include <random>
@@ -27,6 +29,9 @@
 
 #include <cmath>
 #include <cstring>
+#if defined(MPT_LIBCXX_QUIRK_NO_CHRONO)
+#include <ctime>
+#endif // MPT_LIBCXX_QUIRK_NO_CHRONO
 
 
 
@@ -75,6 +80,7 @@
                // really need here is whitening of the bits.
                typename mpt::default_radom_seed_hash<T>::type hash;
 
+#if !defined(MPT_LIBCXX_QUIRK_NO_CHRONO)
                {
                        uint64be time;
                        time = 
std::chrono::duration_cast<std::chrono::nanoseconds>(std::chrono::system_clock().now().time_since_epoch()).count();
@@ -92,6 +98,15 @@
                        hash(std::begin(bytes), std::end(bytes));
                }
 #endif // !MPT_COMPILER_QUIRK_CHRONO_NO_HIGH_RESOLUTION_CLOCK
+#else  // MPT_LIBCXX_QUIRK_NO_CHRONO
+               {
+                       uint64be time;
+                       time = static_cast<uint64>(std::time(nullptr));
+                       std::byte bytes[sizeof(time)];
+                       std::memcpy(bytes, &time, sizeof(time));
+                       hash(std::begin(bytes), std::end(bytes));
+               }
+#endif // !MPT_LIBCXX_QUIRK_NO_CHRONO
 
                return static_cast<T>(hash.result());
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libopenmpt-0.7.2+release.autotools/src/mpt/uuid/uuid.hpp 
new/libopenmpt-0.7.3+release.autotools/src/mpt/uuid/uuid.hpp
--- old/libopenmpt-0.7.2+release.autotools/src/mpt/uuid/uuid.hpp        
2023-01-15 14:24:11.000000000 +0100
+++ new/libopenmpt-0.7.3+release.autotools/src/mpt/uuid/uuid.hpp        
2023-07-25 19:12:08.000000000 +0200
@@ -376,7 +376,7 @@
 
 namespace uuid_literals {
 
-MPT_CONSTEVAL mpt::UUID operator"" _uuid(const char * str, std::size_t len) {
+MPT_CONSTEVAL mpt::UUID operator""_uuid(const char * str, std::size_t len) {
        return mpt::UUID::ParseLiteral(str, len);
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libopenmpt-0.7.2+release.autotools/test/test.cpp 
new/libopenmpt-0.7.3+release.autotools/test/test.cpp
--- old/libopenmpt-0.7.2+release.autotools/test/test.cpp        2023-04-02 
21:30:55.000000000 +0200
+++ new/libopenmpt-0.7.3+release.autotools/test/test.cpp        2023-08-26 
15:41:53.000000000 +0200
@@ -902,7 +902,9 @@
 #endif
 
        VERIFY_EQUAL(mpt::parse<float>(mpt::afmt::val(-87.0)), -87.0f);
-#if !MPT_OS_DJGPP
+       // VS2022 17.7.2 parses "-5e-07" as -5.0000000000000004e-06 instead of 
-4.9999999999999998e-07 which is closer
+       // 
https://developercommunity.visualstudio.com/t/Parsing-double-from-stringstream-returns/10450694
+#if !MPT_OS_DJGPP && !(MPT_COMPILER_MSVC && MPT_COMPILER_MSVC_VERSION == 
MPT_COMPILER_MAKE_VERSION2(2022, 7))
        VERIFY_EQUAL(mpt::parse<double>(mpt::afmt::val(-0.5e-6)), -0.5e-6);
 #endif
 
@@ -2575,6 +2577,7 @@
                conf.Write(U_("Test"), U_("bar"), 42);
                conf.Read(U_("Test"), U_("baz"), 4711);
                foobar = conf.Read(U_("Test"), U_("bar"), 28);
+               VERIFY_EQUAL(foobar, 42);
        }
 
        {
@@ -2926,7 +2929,7 @@
                
VERIFY_EQUAL_NONCONT(mpt::Date::forget_timezone(mpt::Date::UnixAsLocal(mpt::Date::UnixFromUTC(mpt::Date::interpret_as_timezone<mpt::Date::LogicalTimezone::UTC>(fh.loadDate)))).year,
 2011);
                
VERIFY_EQUAL_NONCONT(mpt::Date::forget_timezone(mpt::Date::UnixAsLocal(mpt::Date::UnixFromUTC(mpt::Date::interpret_as_timezone<mpt::Date::LogicalTimezone::UTC>(fh.loadDate)))).month,
 6);
                
VERIFY_EQUAL_NONCONT(mpt::Date::forget_timezone(mpt::Date::UnixAsLocal(mpt::Date::UnixFromUTC(mpt::Date::interpret_as_timezone<mpt::Date::LogicalTimezone::UTC>(fh.loadDate)))).day,
 14);
-#if MPT_CXX_AT_LEAST(20) && !defined(MPT_LIBCXX_QUIRK_NO_CHRONO_DATE)
+#if MPT_CXX_AT_LEAST(20) && !defined(MPT_LIBCXX_QUIRK_NO_CHRONO) && 
!defined(MPT_LIBCXX_QUIRK_NO_CHRONO_DATE)
                
VERIFY_EQUAL_NONCONT(mpt::Date::forget_timezone(mpt::Date::UnixAsLocal(mpt::Date::UnixFromUTC(mpt::Date::interpret_as_timezone<mpt::Date::LogicalTimezone::UTC>(fh.loadDate)))).hours,
 21);
 #else
 #if defined(MPT_FALLBACK_TIMEZONE_WINDOWS_HISTORIC)

Reply via email to