public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: media-libs/id3lib/, media-libs/id3lib/files/
@ 2022-12-18  8:12 Miroslav Šulc
  0 siblings, 0 replies; 4+ messages in thread
From: Miroslav Šulc @ 2022-12-18  8:12 UTC (permalink / raw
  To: gentoo-commits

commit:     fc5b8d1da00ad6de0cc74ba0c20af3b8888206f7
Author:     Kevin Martin <kevinm <AT> gatech <DOT> edu>
AuthorDate: Sun Dec 18 00:07:59 2022 +0000
Commit:     Miroslav Šulc <fordfrog <AT> gentoo <DOT> org>
CommitDate: Sun Dec 18 08:12:24 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fc5b8d1d

media-libs/id3lib: Fix stack-smashing when reading VBR

Closes: https://bugs.gentoo.org/398571
Signed-off-by: Kevin Martin <kevinmbecause <AT> gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/28695
Signed-off-by: Miroslav Šulc <fordfrog <AT> gentoo.org>

 .../files/id3lib-3.8.3-vbr-stack-smashing.patch    | 19 +++++++
 media-libs/id3lib/id3lib-3.8.3-r9.ebuild           | 64 ++++++++++++++++++++++
 2 files changed, 83 insertions(+)

diff --git a/media-libs/id3lib/files/id3lib-3.8.3-vbr-stack-smashing.patch b/media-libs/id3lib/files/id3lib-3.8.3-vbr-stack-smashing.patch
new file mode 100644
index 000000000000..9bf33e97871f
--- /dev/null
+++ b/media-libs/id3lib/files/id3lib-3.8.3-vbr-stack-smashing.patch
@@ -0,0 +1,19 @@
+Description: Fix crashes when reading VBR MP3 file.
+Bug-Ubuntu: https://launchpad.net/bugs/444466
+Origin: upstream, http://sourceforge.net/tracker/?func=detail&aid=937707&group_id=979&atid=300979
+Forwarded: yes
+Author: Urs Fleisch
+
+Index: id3lib3.8.3-3.8.3/src/mp3_parse.cpp
+===================================================================
+--- id3lib3.8.3-3.8.3.orig/src/mp3_parse.cpp	2009-10-06 23:12:10.381250132 +0200
++++ id3lib3.8.3-3.8.3/src/mp3_parse.cpp	2009-10-06 23:14:09.545252591 +0200
+@@ -465,7 +465,7 @@
+   // from http://www.xingtech.com/developer/mp3/
+ 
+   const size_t VBR_HEADER_MIN_SIZE = 8;     // "xing" + flags are fixed
+-  const size_t VBR_HEADER_MAX_SIZE = 116;   // frames, bytes, toc and scale are optional
++  const size_t VBR_HEADER_MAX_SIZE = 120;   // frames, bytes, toc and scale are optional
+ 
+   if (mp3size >= vbr_header_offest + VBR_HEADER_MIN_SIZE) 
+   {

diff --git a/media-libs/id3lib/id3lib-3.8.3-r9.ebuild b/media-libs/id3lib/id3lib-3.8.3-r9.ebuild
new file mode 100644
index 000000000000..63d433383090
--- /dev/null
+++ b/media-libs/id3lib/id3lib-3.8.3-r9.ebuild
@@ -0,0 +1,64 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools
+
+DESCRIPTION="Id3 library for C/C++"
+HOMEPAGE="http://id3lib.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P/_}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~x86-solaris"
+IUSE="doc static-libs"
+
+RDEPEND="sys-libs/zlib:="
+DEPEND="${RDEPEND}
+	doc? ( app-doc/doxygen )"
+
+RESTRICT="test"
+
+DOCS=( AUTHORS ChangeLog HISTORY README THANKS TODO )
+
+S=${WORKDIR}/${P/_}
+
+PATCHES=(
+	"${FILESDIR}"/${P}-zlib.patch
+	"${FILESDIR}"/${P}-test_io.patch
+	"${FILESDIR}"/${P}-autoconf259.patch
+	"${FILESDIR}"/${P}-doxyinput.patch
+	"${FILESDIR}"/${P}-unicode16.patch
+	"${FILESDIR}"/${P}-gcc-4.3.patch
+	"${FILESDIR}"/${P}-missing_nullpointer_check.patch
+	"${FILESDIR}"/${P}-security.patch
+	"${FILESDIR}"/${P}-vbr-stack-smashing.patch # bug 398571
+)
+
+src_prepare() {
+	default
+
+	sed -i 's:AM_CONFIG_HEADER:AC_CONFIG_HEADERS:' {.,zlib}/configure.in || die
+
+	AT_M4DIR=${S}/m4 eautoreconf
+}
+
+src_configure() {
+	econf $(use_enable static-libs static)
+}
+
+src_compile() {
+	default
+	if use doc; then
+		pushd doc >/dev/null || die
+		doxygen Doxyfile || die
+		popd >/dev/null || die
+	fi
+}
+
+src_install() {
+	use doc && local HTML_DOCS=( doc/. )
+	default
+	find "${D}" -name '*.la' -delete || die
+}


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-libs/id3lib/, media-libs/id3lib/files/
@ 2023-02-13 22:45 Sam James
  0 siblings, 0 replies; 4+ messages in thread
From: Sam James @ 2023-02-13 22:45 UTC (permalink / raw
  To: gentoo-commits

commit:     eccbaa58e0c21cc6df13f6028244158f144145a0
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Mon Feb 13 22:43:33 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Feb 13 22:44:50 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=eccbaa58

media-libs/id3lib: fix build with Clang, EAPI 8

Thanks to Jannik2099 for spotting the problem in configure.

Closes: https://bugs.gentoo.org/871087
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../id3lib/files/id3lib-3.8.3-configure-clang.patch | 21 +++++++++++++++++++++
 ...3lib-3.8.3-r9.ebuild => id3lib-3.8.3-r10.ebuild} | 17 +++++++++--------
 2 files changed, 30 insertions(+), 8 deletions(-)

diff --git a/media-libs/id3lib/files/id3lib-3.8.3-configure-clang.patch b/media-libs/id3lib/files/id3lib-3.8.3-configure-clang.patch
new file mode 100644
index 000000000000..730a00b62dbf
--- /dev/null
+++ b/media-libs/id3lib/files/id3lib-3.8.3-configure-clang.patch
@@ -0,0 +1,21 @@
+https://bugs.gentoo.org/871087
+--- a/m4/id3_cxx.m4
++++ b/m4/id3_cxx.m4
+@@ -81,7 +81,7 @@ AC_DEFUN(ID3_CXX_PORTABILITY,[
+ 
+   dnl Check whether we have bool
+   AC_MSG_CHECKING(whether C++ has bool)
+-  AC_TRY_RUN([main() { bool b1=true; bool b2=false; }],
++  AC_TRY_RUN([int main() { bool b1=true; bool b2=false; }],
+              [ AC_MSG_RESULT(yes) ],
+              [ AC_MSG_RESULT(no)
+                AC_DEFINE(CXX_HAS_NO_BOOL) ],
+@@ -90,7 +90,7 @@ AC_DEFUN(ID3_CXX_PORTABILITY,[
+ 
+   dnl Test whether C++ has buggy for-loops
+   AC_MSG_CHECKING(whether C++ has correct scoping in for-loops)
+-  AC_TRY_COMPILE([#include <iostream.h>], [
++  AC_TRY_COMPILE([#include <iostream>], [
+    for (int i=0;i<10;i++) { }
+    for (int i=0;i<10;i++) { }
+ ], [ AC_MSG_RESULT(yes) ],

diff --git a/media-libs/id3lib/id3lib-3.8.3-r9.ebuild b/media-libs/id3lib/id3lib-3.8.3-r10.ebuild
similarity index 86%
rename from media-libs/id3lib/id3lib-3.8.3-r9.ebuild
rename to media-libs/id3lib/id3lib-3.8.3-r10.ebuild
index 79e0b20e88b2..1a5880aba94a 100644
--- a/media-libs/id3lib/id3lib-3.8.3-r9.ebuild
+++ b/media-libs/id3lib/id3lib-3.8.3-r10.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
-EAPI=6
+EAPI=8
 
 inherit autotools
 
@@ -13,16 +13,15 @@ LICENSE="LGPL-2.1"
 SLOT="0"
 KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux ~x86-solaris"
 IUSE="doc static-libs"
+RESTRICT="test"
 
 RDEPEND="sys-libs/zlib:="
-DEPEND="${RDEPEND}
-	doc? ( app-doc/doxygen )"
-
-RESTRICT="test"
+DEPEND="${RDEPEND}"
+BDEPEND="doc? ( app-doc/doxygen )"
 
 DOCS=( AUTHORS ChangeLog HISTORY README THANKS TODO )
 
-S=${WORKDIR}/${P/_}
+S="${WORKDIR}"/${P/_}
 
 PATCHES=(
 	"${FILESDIR}"/${P}-zlib.patch
@@ -34,6 +33,7 @@ PATCHES=(
 	"${FILESDIR}"/${P}-missing_nullpointer_check.patch
 	"${FILESDIR}"/${P}-security.patch
 	"${FILESDIR}"/${P}-vbr-stack-smashing.patch # bug 398571
+	"${FILESDIR}"/${P}-configure-clang.patch
 )
 
 src_prepare() {
@@ -41,7 +41,7 @@ src_prepare() {
 
 	sed -i 's:AM_CONFIG_HEADER:AC_CONFIG_HEADERS:' {.,zlib}/configure.in || die
 
-	AT_M4DIR=${S}/m4 eautoreconf
+	AT_M4DIR="${S}"/m4 eautoreconf
 }
 
 src_configure() {
@@ -50,6 +50,7 @@ src_configure() {
 
 src_compile() {
 	default
+
 	if use doc; then
 		pushd doc >/dev/null || die
 		doxygen Doxyfile || die


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-libs/id3lib/, media-libs/id3lib/files/
@ 2025-02-04 15:47 Sam James
  0 siblings, 0 replies; 4+ messages in thread
From: Sam James @ 2025-02-04 15:47 UTC (permalink / raw
  To: gentoo-commits

commit:     6be16d3ef027555b18acf7a6127260080eabbd11
Author:     Nicolas PARLANT <nicolas.parlant <AT> parhuet <DOT> fr>
AuthorDate: Tue Jan 14 17:21:23 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Feb  4 15:27:23 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6be16d3e

media-libs/id3lib: c23 prevent define bool in header

fix compilation with gcc-15/c23 for media-sound/easytag

> In file included from /usr/include/id3.h:32,
>                 from src/tags/id3_tag.c:39:
> /usr/include/id3/globals.h:87:13: error: ‘bool’
> cannot be defined via ‘typedef’
>   87 | typedef int bool;
>      |             ^~~~
> /usr/include/id3/globals.h:87:13: note: ‘bool’ is
> a keyword with ‘-std=c23’ onwards

[sam: Revbump for changed installed header.]

Closes: https://bugs.gentoo.org/949086
Signed-off-by: Nicolas PARLANT <nicolas.parlant <AT> parhuet.fr>
Closes: https://github.com/gentoo/gentoo/pull/40134
Signed-off-by: Sam James <sam <AT> gentoo.org>

 media-libs/id3lib/files/id3lib-3.8.3-fix-c23.patch | 2171 ++++++++++++++++++++
 media-libs/id3lib/id3lib-3.8.3-r11.ebuild          |   67 +
 2 files changed, 2238 insertions(+)

diff --git a/media-libs/id3lib/files/id3lib-3.8.3-fix-c23.patch b/media-libs/id3lib/files/id3lib-3.8.3-fix-c23.patch
new file mode 100644
index 000000000000..402c78be1884
--- /dev/null
+++ b/media-libs/id3lib/files/id3lib-3.8.3-fix-c23.patch
@@ -0,0 +1,2171 @@
+diff '--color=auto' -uNr a/include/id3/field.h b/include/id3/field.h
+--- a/include/id3/field.h	2003-03-02 00:23:00.000000000 -0000
++++ b/include/id3/field.h	2025-01-30 14:01:53.586000891 -0000
+@@ -74,17 +74,17 @@
+   
+   // miscelaneous functions
+   virtual ID3_Field&    operator=( const ID3_Field & ) = 0;
+-  virtual bool          InScope(ID3_V2Spec spec) const = 0;
++  virtual my_bool          InScope(ID3_V2Spec spec) const = 0;
+ 
+   virtual ID3_FieldID   GetID() const = 0;
+   virtual ID3_FieldType GetType() const = 0;
+-  virtual bool          SetEncoding(ID3_TextEnc enc) = 0;
++  virtual my_bool          SetEncoding(ID3_TextEnc enc) = 0;
+   virtual ID3_TextEnc   GetEncoding() const = 0;
+-  virtual bool          IsEncodable() const = 0;
++  virtual my_bool          IsEncodable() const = 0;
+ 
+   virtual void          Render(ID3_Writer&) const = 0;
+-  virtual bool          Parse(ID3_Reader&) = 0;
+-  virtual bool          HasChanged() const = 0;
++  virtual my_bool          Parse(ID3_Reader&) = 0;
++  virtual my_bool          HasChanged() const = 0;
+ 
+ protected:
+   virtual ~ID3_Field() { };
+diff '--color=auto' -uNr a/include/id3/globals.h b/include/id3/globals.h
+--- a/include/id3/globals.h	2003-03-02 00:23:00.000000000 -0000
++++ b/include/id3/globals.h	2025-01-30 14:01:53.586000891 -0000
+@@ -82,13 +82,13 @@
+ 
+ #define ID3_C_VAR extern
+ 
+-#ifndef __cplusplus
++// #ifndef __cplusplus. Use my_bool everywhere
+ 
+-typedef int bool;
++typedef int my_bool;
+ #  define false (0)
+ #  define true (!false)
+ 
+-#endif /* __cplusplus */
++//#endif /* __cplusplus */
+ 
+ ID3_C_VAR const char * const ID3LIB_NAME;
+ ID3_C_VAR const char * const ID3LIB_RELEASE;
+@@ -532,9 +532,9 @@
+   uint32 framesize;
+   uint32 frames;                // nr of frames
+   uint32 time;                  // nr of seconds in song
+-  bool privatebit;
+-  bool copyrighted;
+-  bool original;
++  my_bool privatebit;
++  my_bool copyrighted;
++  my_bool original;
+ };
+ 
+ #define ID3_NR_OF_V1_GENRES 148
+diff '--color=auto' -uNr a/include/id3/id3lib_bitset b/include/id3/id3lib_bitset
+--- a/include/id3/id3lib_bitset	2003-03-02 00:23:00.000000000 -0000
++++ b/include/id3/id3lib_bitset	2025-01-30 14:01:53.586000891 -0000
+@@ -52,14 +52,14 @@
+ #endif
+ 
+ // structure to aid in counting bits
+-template<bool __dummy>
++template<my_bool __dummy>
+ struct _Bit_count {
+   static unsigned char _S_bit_count[256];
+ };
+ 
+ // Mapping from 8 bit unsigned integers to the index of the first one
+ // bit:
+-template<bool __dummy>
++template<my_bool __dummy>
+ struct _First_one {
+   static unsigned char _S_first_one[256];
+ };
+@@ -135,7 +135,7 @@
+     }
+   }
+ 
+-  bool _M_is_equal(const _Base_bitset<_Nw,_WordT>& __x) const {
++  my_bool _M_is_equal(const _Base_bitset<_Nw,_WordT>& __x) const {
+     for (size_t __i = 0; __i < _Nw; ++__i) {
+       if (_M_w[__i] != __x._M_w[__i])
+         return false;
+@@ -143,7 +143,7 @@
+     return true;
+   }
+ 
+-  bool _M_is_any() const {
++  my_bool _M_is_any() const {
+     for ( size_t __i = 0; __i < __BITSET_WORDS(_Nw,_WordT); __i++ ) {
+       if ( _M_w[__i] != static_cast<_WordT>(0) )
+         return true;
+@@ -390,10 +390,10 @@
+   void _M_do_set()                        { _M_w = ~static_cast<_WordT>(0); }
+   void _M_do_reset()                      { _M_w = 0; }
+ 
+-  bool _M_is_equal(const _Base_bitset<1,_WordT>& __x) const {
++  my_bool _M_is_equal(const _Base_bitset<1,_WordT>& __x) const {
+     return _M_w == __x._M_w;
+   }
+-  bool _M_is_any() const {
++  my_bool _M_is_any() const {
+     return _M_w != 0;
+   }
+ 
+@@ -589,7 +589,7 @@
+     ~reference() {}
+ 
+     // for b[i] = __x;
+-    reference& operator=(bool __x) {
++    reference& operator=(my_bool __x) {
+       if ( __x )
+         *_M_wp |= _S_maskbit(_M_bpos);
+       else
+@@ -609,10 +609,10 @@
+     }
+ 
+     // flips the bit
+-    bool operator~() const { return (*(_M_wp) & _S_maskbit(_M_bpos)) == 0; }
++    my_bool operator~() const { return (*(_M_wp) & _S_maskbit(_M_bpos)) == 0; }
+ 
+     // for __x = b[i];
+-    operator bool() const { return (*(_M_wp) & _S_maskbit(_M_bpos)) != 0; }
++    operator my_bool() const { return (*(_M_wp) & _S_maskbit(_M_bpos)) != 0; }
+ 
+     // for b[i].flip();
+     reference& flip() {
+@@ -694,7 +694,7 @@
+     return *this;
+   }
+ 
+-  bool _Unchecked_test(size_t __pos) const {
++  my_bool _Unchecked_test(size_t __pos) const {
+     return (_M_getword(__pos) & _S_maskbit(__pos)) != static_cast<_WordT>(0);
+   }
+ 
+@@ -752,7 +752,7 @@
+   // element access:
+   //for b[i];
+   reference operator[](size_t __pos) { return reference(*this,__pos); }
+-  bool operator[](size_t __pos) const { return _Unchecked_test(__pos); }
++  my_bool operator[](size_t __pos) const { return _Unchecked_test(__pos); }
+ 
+   unsigned long to_ulong() const { return _M_do_to_ulong(); }
+ 
+@@ -779,22 +779,22 @@
+ 
+   size_t size() const { return _Nb; }
+ 
+-  bool operator==(const bitset<_Nb,_WordT>& __rhs) const {
++  my_bool operator==(const bitset<_Nb,_WordT>& __rhs) const {
+     return _M_is_equal(__rhs);
+   }
+-  bool operator!=(const bitset<_Nb,_WordT>& __rhs) const {
++  my_bool operator!=(const bitset<_Nb,_WordT>& __rhs) const {
+     return !_M_is_equal(__rhs);
+   }
+ 
+-  bool test(size_t __pos) const {
++  my_bool test(size_t __pos) const {
+     if (__pos > _Nb)
+       __STL_THROW(out_of_range("bitset"));
+ 
+     return _Unchecked_test(__pos);
+   }
+ 
+-  bool any() const { return _M_is_any(); }
+-  bool none() const { return !_M_is_any(); }
++  my_bool any() const { return _M_is_any(); }
++  my_bool none() const { return !_M_is_any(); }
+ 
+   bitset<_Nb,_WordT> operator<<(size_t __pos) const
+     { return bitset<_Nb,_WordT>(*this) <<= __pos; }
+@@ -936,7 +936,7 @@
+ // ------------------------------------------------------------
+ // Lookup tables for find and count operations.
+ 
+-template<bool __dummy>
++template<my_bool __dummy>
+ unsigned char _Bit_count<__dummy>::_S_bit_count[] = {
+   0, /*   0 */ 1, /*   1 */ 1, /*   2 */ 2, /*   3 */ 1, /*   4 */
+   2, /*   5 */ 2, /*   6 */ 3, /*   7 */ 1, /*   8 */ 2, /*   9 */
+@@ -992,7 +992,7 @@
+   8  /* 255 */
+ }; // end _Bit_count
+ 
+-template<bool __dummy>
++template<my_bool __dummy>
+ unsigned char _First_one<__dummy>::_S_first_one[] = {
+   0, /*   0 */ 0, /*   1 */ 1, /*   2 */ 0, /*   3 */ 2, /*   4 */
+   0, /*   5 */ 1, /*   6 */ 0, /*   7 */ 3, /*   8 */ 0, /*   9 */
+diff '--color=auto' -uNr a/include/id3/id3lib_frame.h b/include/id3/id3lib_frame.h
+--- a/include/id3/id3lib_frame.h	2003-03-02 00:23:00.000000000 -0000
++++ b/include/id3/id3lib_frame.h	2025-01-30 14:01:53.586000891 -0000
+@@ -60,7 +60,7 @@
+   
+   void        Clear();
+ 
+-  bool        SetID(ID3_FrameID id);
++  my_bool        SetID(ID3_FrameID id);
+   ID3_FrameID GetID() const;
+   
+   ID3_Field*  GetField(ID3_FieldID name) const;
+@@ -73,22 +73,22 @@
+   const char* GetTextID() const;
+ 
+   ID3_Frame&  operator=(const ID3_Frame &);
+-  bool        HasChanged() const;
+-  bool        Parse(ID3_Reader&);
++  my_bool        HasChanged() const;
++  my_bool        Parse(ID3_Reader&);
+   void        Render(ID3_Writer&) const;
+   size_t      Size();
+-  bool        Contains(ID3_FieldID fld) const;
+-  bool        SetSpec(ID3_V2Spec);
++  my_bool        Contains(ID3_FieldID fld) const;
++  my_bool        SetSpec(ID3_V2Spec);
+   ID3_V2Spec  GetSpec() const;
+ 
+-  bool        SetCompression(bool b);
+-  bool        GetCompression() const;
++  my_bool        SetCompression(my_bool b);
++  my_bool        GetCompression() const;
+   size_t      GetDataSize() const;
+ 
+-  bool        SetEncryptionID(uchar id);
++  my_bool        SetEncryptionID(uchar id);
+   uchar       GetEncryptionID() const;
+   
+-  bool        SetGroupingID(uchar id);
++  my_bool        SetGroupingID(uchar id);
+   uchar       GetGroupingID() const;
+ 
+   Iterator*  CreateIterator();
+diff '--color=auto' -uNr a/include/id3/id3lib_strings.h b/include/id3/id3lib_strings.h
+--- a/include/id3/id3lib_strings.h	2025-01-30 14:02:28.857444340 -0000
++++ b/include/id3/id3lib_strings.h	2025-01-30 14:01:53.586000891 -0000
+@@ -49,11 +49,11 @@
+       assign(char_type& __c1, const char_type& __c2)
+       { __c1 = __c2; }
+ 
+-      static bool
++      static my_bool
+       eq(const char_type& __c1, const char_type& __c2)
+       { return __c1 == __c2; }
+ 
+-      static bool
++      static my_bool
+       lt(const char_type& __c1, const char_type& __c2)
+       { return __c1 < __c2; }
+ 
+@@ -106,7 +106,7 @@
+       static int_type
+       to_int_type(const char_type& __c) { return int_type(); }
+ 
+-      static bool
++      static my_bool
+       eq_int_type(const int_type& __c1, const int_type& __c2)
+       { return __c1 == __c2; }
+ 
+@@ -133,11 +133,11 @@
+        assign(char_type& __c1, const char_type& __c2)
+        { __c1 = __c2; }
+  
+-       static bool 
++       static my_bool 
+        eq(const char_type& __c1, const char_type& __c2)
+        { return __c1 == __c2; }
+  
+-       static bool 
++       static my_bool 
+        lt(const char_type& __c1, const char_type& __c2)
+        { return __c1 < __c2; }
+  
+@@ -171,7 +171,7 @@
+        static int_type 
+        to_int_type(const char_type& __c) { return int_type(__c); }
+  
+-       static bool 
++       static my_bool 
+        eq_int_type(const int_type& __c1, const int_type& __c2)
+        { return __c1 == __c2; }
+  
+diff '--color=auto' -uNr a/include/id3/io_decorators.h b/include/id3/io_decorators.h
+--- a/include/id3/io_decorators.h	2003-03-02 00:23:00.000000000 -0000
++++ b/include/id3/io_decorators.h	2025-01-30 14:01:53.586000891 -0000
+@@ -47,7 +47,7 @@
+       ID3_Reader& _reader;
+       pos_type _beg, _end;
+ 
+-      bool inWindow(pos_type cur) 
++      my_bool inWindow(pos_type cur) 
+       { return this->getBeg() <= cur && cur < this->getEnd(); }
+ 
+      public:
+@@ -75,7 +75,7 @@
+       pos_type getBeg() { return _beg; }
+       pos_type getEnd() { return _end; }
+ 
+-      bool inWindow() { return this->inWindow(this->getCur()); }
++      my_bool inWindow() { return this->inWindow(this->getCur()); }
+ 
+       int_type readChar();
+       int_type peekChar();
+diff '--color=auto' -uNr a/include/id3/io_helpers.h b/include/id3/io_helpers.h
+--- a/include/id3/io_helpers.h	2003-03-02 00:23:00.000000000 -0000
++++ b/include/id3/io_helpers.h	2025-01-30 14:01:53.586000891 -0000
+@@ -42,7 +42,7 @@
+     {
+       ID3_Reader& _reader;
+       ID3_Reader::pos_type _pos;
+-      bool _locked;
++      my_bool _locked;
+      public:
+       ExitTrigger(ID3_Reader& rdr) 
+         : _reader(rdr), _pos(rdr.getCur()), _locked(true)
+@@ -70,8 +70,8 @@
+ 
+     ID3_C_EXPORT size_t      writeString(ID3_Writer&, String);
+     ID3_C_EXPORT size_t      writeText(ID3_Writer&, String);
+-    ID3_C_EXPORT size_t      writeUnicodeString(ID3_Writer&, String, bool = true);
+-    ID3_C_EXPORT size_t      writeUnicodeText(ID3_Writer&, String, bool = true);
++    ID3_C_EXPORT size_t      writeUnicodeString(ID3_Writer&, String, my_bool = true);
++    ID3_C_EXPORT size_t      writeUnicodeText(ID3_Writer&, String, my_bool = true);
+     ID3_C_EXPORT size_t      writeBENumber(ID3_Writer&, uint32 val, size_t);
+     ID3_C_EXPORT size_t      writeTrailingSpaces(ID3_Writer&, String, size_t);
+     ID3_C_EXPORT size_t      writeUInt28(ID3_Writer&, uint32);
+diff '--color=auto' -uNr a/include/id3/io_strings.h b/include/id3/io_strings.h
+--- a/include/id3/io_strings.h	2003-03-02 00:23:00.000000000 -0000
++++ b/include/id3/io_strings.h	2025-01-30 14:01:53.586000891 -0000
+@@ -97,7 +97,7 @@
+         return _cur;
+       }
+ 
+-      virtual bool atEnd()
++      virtual my_bool atEnd()
+       {
+         return _cur >= _string.size();
+       }
+@@ -167,7 +167,7 @@
+         return _cur;
+       }
+ 
+-      virtual bool atEnd()
++      virtual my_bool atEnd()
+       {
+         return _cur >= _string.size();
+       }
+diff '--color=auto' -uNr a/include/id3/misc_support.h b/include/id3/misc_support.h
+--- a/include/id3/misc_support.h	2003-03-02 00:23:00.000000000 -0000
++++ b/include/id3/misc_support.h	2025-01-30 14:01:53.586000891 -0000
+@@ -40,63 +40,63 @@
+ // these are 'convenience functions,' to make using the library easier for the
+ // most common of operations
+ ID3_C_EXPORT char*      ID3_GetArtist(const ID3_Tag*);
+-ID3_C_EXPORT ID3_Frame* ID3_AddArtist(ID3_Tag*, const char*, bool replace = false);
++ID3_C_EXPORT ID3_Frame* ID3_AddArtist(ID3_Tag*, const char*, my_bool replace = false);
+ ID3_C_EXPORT size_t     ID3_RemoveArtists(ID3_Tag*);
+ 
+ ID3_C_EXPORT char*      ID3_GetAlbum(const ID3_Tag*);
+-ID3_C_EXPORT ID3_Frame* ID3_AddAlbum(ID3_Tag*, const char*, bool replace = false);
++ID3_C_EXPORT ID3_Frame* ID3_AddAlbum(ID3_Tag*, const char*, my_bool replace = false);
+ ID3_C_EXPORT size_t     ID3_RemoveAlbums(ID3_Tag*);
+ 
+ ID3_C_EXPORT char*      ID3_GetTitle(const ID3_Tag*);
+-ID3_C_EXPORT ID3_Frame* ID3_AddTitle(ID3_Tag*, const char*, bool replace = false);
++ID3_C_EXPORT ID3_Frame* ID3_AddTitle(ID3_Tag*, const char*, my_bool replace = false);
+ ID3_C_EXPORT size_t     ID3_RemoveTitles(ID3_Tag*);
+ 
+ ID3_C_EXPORT char*      ID3_GetYear(const ID3_Tag*);
+-ID3_C_EXPORT ID3_Frame* ID3_AddYear(ID3_Tag*, const char*, bool replace = false);
++ID3_C_EXPORT ID3_Frame* ID3_AddYear(ID3_Tag*, const char*, my_bool replace = false);
+ ID3_C_EXPORT size_t     ID3_RemoveYears(ID3_Tag*);
+ 
+ ID3_C_EXPORT char*      ID3_GetComment(const ID3_Tag*, const char* desc = NULL);
+-ID3_C_EXPORT ID3_Frame* ID3_AddComment(ID3_Tag*, const char*, bool = false);
+-ID3_C_EXPORT ID3_Frame* ID3_AddComment(ID3_Tag*, const char*, const char*, bool = false);
++ID3_C_EXPORT ID3_Frame* ID3_AddComment(ID3_Tag*, const char*, my_bool = false);
++ID3_C_EXPORT ID3_Frame* ID3_AddComment(ID3_Tag*, const char*, const char*, my_bool = false);
+ ID3_C_EXPORT ID3_Frame* ID3_AddComment(ID3_Tag*, const char*, const char*, const char*,
+-                                       bool = false);
++                                       my_bool = false);
+ ID3_C_EXPORT size_t     ID3_RemoveComments(ID3_Tag*, const char * = NULL);
+ 
+ ID3_C_EXPORT char*      ID3_GetTrack(const ID3_Tag*);
+ ID3_C_EXPORT size_t     ID3_GetTrackNum(const ID3_Tag*);
+ //following routine courtesy of John George
+ ID3_C_EXPORT ID3_Frame* ID3_AddTrack(ID3_Tag*, uchar ucTrack, uchar ucTotal = 0,
+-                                     bool replace = false);
++                                     my_bool replace = false);
+ ID3_C_EXPORT size_t     ID3_RemoveTracks(ID3_Tag*);
+ 
+ ID3_C_EXPORT char*      ID3_GetGenre(const ID3_Tag*);
+ ID3_C_EXPORT size_t     ID3_GetGenreNum(const ID3_Tag*);
+-ID3_C_EXPORT ID3_Frame* ID3_AddGenre(ID3_Tag*, size_t ucGenre, bool replace = false);
++ID3_C_EXPORT ID3_Frame* ID3_AddGenre(ID3_Tag*, size_t ucGenre, my_bool replace = false);
+ //following routine courtesy of John George
+-ID3_C_EXPORT ID3_Frame* ID3_AddGenre(ID3_Tag*, const char *, bool replace = false);
++ID3_C_EXPORT ID3_Frame* ID3_AddGenre(ID3_Tag*, const char *, my_bool replace = false);
+ ID3_C_EXPORT size_t     ID3_RemoveGenres(ID3_Tag*);
+ 
+ ID3_C_EXPORT char*      ID3_GetLyrics(const ID3_Tag*);
+-ID3_C_EXPORT ID3_Frame* ID3_AddLyrics(ID3_Tag*, const char*, bool = false);
+-ID3_C_EXPORT ID3_Frame* ID3_AddLyrics(ID3_Tag*, const char*, const char*, bool = false);
++ID3_C_EXPORT ID3_Frame* ID3_AddLyrics(ID3_Tag*, const char*, my_bool = false);
++ID3_C_EXPORT ID3_Frame* ID3_AddLyrics(ID3_Tag*, const char*, const char*, my_bool = false);
+ ID3_C_EXPORT ID3_Frame* ID3_AddLyrics(ID3_Tag*, const char*, const char*, const char*,
+-                                      bool = false);
++                                      my_bool = false);
+ ID3_C_EXPORT size_t     ID3_RemoveLyrics(ID3_Tag*);
+ 
+ ID3_C_EXPORT char*      ID3_GetLyricist(const ID3_Tag*);
+-ID3_C_EXPORT ID3_Frame* ID3_AddLyricist(ID3_Tag *, const char *, bool replace = false);
++ID3_C_EXPORT ID3_Frame* ID3_AddLyricist(ID3_Tag *, const char *, my_bool replace = false);
+ ID3_C_EXPORT size_t     ID3_RemoveLyricist(ID3_Tag*);
+ 
+ ID3_C_EXPORT ID3_Frame* ID3_AddSyncLyrics(ID3_Tag*, const uchar*, size_t,
+-                                          ID3_TimeStampFormat, bool = false);
++                                          ID3_TimeStampFormat, my_bool = false);
+ ID3_C_EXPORT ID3_Frame* ID3_AddSyncLyrics(ID3_Tag*, const uchar*, size_t,
+-                                          ID3_TimeStampFormat, const char *, bool = false);
++                                          ID3_TimeStampFormat, const char *, my_bool = false);
+ ID3_C_EXPORT ID3_Frame* ID3_AddSyncLyrics(ID3_Tag*, const uchar*, size_t,
+                                           ID3_TimeStampFormat, const char *, const char *,
+-                                          bool = false);
++                                          my_bool = false);
+ ID3_C_EXPORT ID3_Frame* ID3_AddSyncLyrics(ID3_Tag*, const uchar*, size_t,
+                                           ID3_TimeStampFormat, const char *, const char *,
+-                                          ID3_ContentType, bool = false);
++                                          ID3_ContentType, my_bool = false);
+ ID3_C_EXPORT ID3_Frame* ID3_GetSyncLyricsInfo(const ID3_Tag *tag, const char *lang,
+                                               const char *desc, char &stampformat,
+                                               char &type, size_t &size);
+@@ -111,11 +111,11 @@
+ ID3_C_EXPORT char* ID3_GetPictureMimeType(const ID3_Tag*);
+ 
+ //following routine courtesy of John George
+-ID3_C_EXPORT bool ID3_HasPicture(const ID3_Tag*);
++ID3_C_EXPORT my_bool ID3_HasPicture(const ID3_Tag*);
+ 
+ //following two routines courtesy of John George
+-ID3_C_EXPORT ID3_Frame* ID3_AddPicture(ID3_Tag*, const char* TempPicPath, const char* MimeType, bool replace = false);
+-ID3_C_EXPORT ID3_Frame* ID3_AddPicture(ID3_Tag*, const char* TempPicPath, const char* MimeType, ID3_PictureType pictype, const char* Description, bool replace = false);
++ID3_C_EXPORT ID3_Frame* ID3_AddPicture(ID3_Tag*, const char* TempPicPath, const char* MimeType, my_bool replace = false);
++ID3_C_EXPORT ID3_Frame* ID3_AddPicture(ID3_Tag*, const char* TempPicPath, const char* MimeType, ID3_PictureType pictype, const char* Description, my_bool replace = false);
+ 
+ //following routine courtesy of John George
+ ID3_C_EXPORT size_t ID3_RemovePictures(ID3_Tag*);
+diff '--color=auto' -uNr a/include/id3/reader.h b/include/id3/reader.h
+--- a/include/id3/reader.h	2003-03-02 00:23:00.000000000 -0000
++++ b/include/id3/reader.h	2025-01-30 14:01:53.586000891 -0000
+@@ -122,7 +122,7 @@
+     return 0;
+   }
+   
+-  virtual bool atEnd() { return this->getCur() >= this->getEnd(); }
++  virtual my_bool atEnd() { return this->getCur() >= this->getEnd(); }
+ };
+ 
+ #endif /* _ID3LIB_READER_H_ */
+diff '--color=auto' -uNr a/include/id3/tag.h b/include/id3/tag.h
+--- a/include/id3/tag.h	2003-03-02 00:23:00.000000000 -0000
++++ b/include/id3/tag.h	2025-01-30 14:01:53.586000891 -0000
+@@ -63,26 +63,26 @@
+   virtual ~ID3_Tag();
+ 
+   void       Clear();
+-  bool       HasChanged() const;
++  my_bool       HasChanged() const;
+   size_t     Size() const;
+ 
+-  bool       SetUnsync(bool);
+-  bool       SetExtendedHeader(bool);
+-  bool       SetExperimental(bool);
+-
+-  bool       GetUnsync() const;
+-  bool       GetExtendedHeader() const;
+-  bool       GetExperimental() const;
++  my_bool       SetUnsync(my_bool);
++  my_bool       SetExtendedHeader(my_bool);
++  my_bool       SetExperimental(my_bool);
++
++  my_bool       GetUnsync() const;
++  my_bool       GetExtendedHeader() const;
++  my_bool       GetExperimental() const;
+ 
+-  bool       SetPadding(bool);
++  my_bool       SetPadding(my_bool);
+ 
+   void       AddFrame(const ID3_Frame&);
+   void       AddFrame(const ID3_Frame*);
+-  bool       AttachFrame(ID3_Frame*);
++  my_bool       AttachFrame(ID3_Frame*);
+   ID3_Frame* RemoveFrame(const ID3_Frame *);
+ 
+   size_t     Parse(const uchar*, size_t);
+-  bool       Parse(ID3_Reader& reader);
++  my_bool       Parse(ID3_Reader& reader);
+   size_t     Render(uchar*, ID3_TagType = ID3TT_ID3V2) const;
+   size_t     Render(ID3_Writer&, ID3_TagType = ID3TT_ID3V2) const;
+ 
+@@ -110,21 +110,21 @@
+ 
+   ID3_Tag&   operator=( const ID3_Tag & );
+ 
+-  bool       HasTagType(ID3_TagType tt) const;
++  my_bool       HasTagType(ID3_TagType tt) const;
+   ID3_V2Spec GetSpec() const;
+-  bool       SetSpec(ID3_V2Spec);
++  my_bool       SetSpec(ID3_V2Spec);
+ 
+   static size_t IsV2Tag(const uchar*);
+   static size_t IsV2Tag(ID3_Reader&);
+ 
+   /* Deprecated! */
+   void       AddNewFrame(ID3_Frame* f);
+-  size_t     Link(const char *fileInfo, bool parseID3v1, bool parseLyrics3);
+-  void       SetCompression(bool);
++  size_t     Link(const char *fileInfo, my_bool parseID3v1, my_bool parseLyrics3);
++  void       SetCompression(my_bool);
+   void       AddFrames(const ID3_Frame *, size_t);
+-  bool       HasLyrics() const;
+-  bool       HasV2Tag()  const;
+-  bool       HasV1Tag()  const;
++  my_bool       HasLyrics() const;
++  my_bool       HasV2Tag()  const;
++  my_bool       HasV1Tag()  const;
+   size_t     Parse(const uchar header[ID3_TAGHEADERSIZE], const uchar *buffer);
+   //ID3_Frame* operator[](size_t) const;
+   //ID3_Frame* GetFrameNum(size_t) const;
+diff '--color=auto' -uNr a/include/id3/writer.h b/include/id3/writer.h
+--- a/include/id3/writer.h	2003-03-02 00:23:00.000000000 -0000
++++ b/include/id3/writer.h	2025-01-30 14:01:53.586000891 -0000
+@@ -89,7 +89,7 @@
+     return this->writeChars(reinterpret_cast<const char_type *>(buf), len);
+   }
+ 
+-  virtual bool atEnd()
++  virtual my_bool atEnd()
+   {
+     return this->getCur() >= this->getEnd();
+   }
+diff '--color=auto' -uNr a/include/id3.h b/include/id3.h
+--- a/include/id3.h	2003-03-02 00:23:00.000000000 -0000
++++ b/include/id3.h	2025-01-30 14:01:53.586000891 -0000
+@@ -47,12 +47,12 @@
+   ID3_C_EXPORT ID3Tag*              CCONV ID3Tag_New                  (void);
+   ID3_C_EXPORT void                 CCONV ID3Tag_Delete               (ID3Tag *tag);
+   ID3_C_EXPORT void                 CCONV ID3Tag_Clear                (ID3Tag *tag);
+-  ID3_C_EXPORT bool                 CCONV ID3Tag_HasChanged           (const ID3Tag *tag);
+-  ID3_C_EXPORT void                 CCONV ID3Tag_SetUnsync            (ID3Tag *tag, bool unsync);
+-  ID3_C_EXPORT void                 CCONV ID3Tag_SetExtendedHeader    (ID3Tag *tag, bool ext);
+-  ID3_C_EXPORT void                 CCONV ID3Tag_SetPadding           (ID3Tag *tag, bool pad);
++  ID3_C_EXPORT my_bool                 CCONV ID3Tag_HasChanged           (const ID3Tag *tag);
++  ID3_C_EXPORT void                 CCONV ID3Tag_SetUnsync            (ID3Tag *tag, my_bool unsync);
++  ID3_C_EXPORT void                 CCONV ID3Tag_SetExtendedHeader    (ID3Tag *tag, my_bool ext);
++  ID3_C_EXPORT void                 CCONV ID3Tag_SetPadding           (ID3Tag *tag, my_bool pad);
+   ID3_C_EXPORT void                 CCONV ID3Tag_AddFrame             (ID3Tag *tag, const ID3Frame *frame);
+-  ID3_C_EXPORT bool                 CCONV ID3Tag_AttachFrame          (ID3Tag *tag, ID3Frame *frame);
++  ID3_C_EXPORT my_bool                 CCONV ID3Tag_AttachFrame          (ID3Tag *tag, ID3Frame *frame);
+   ID3_C_EXPORT void                 CCONV ID3Tag_AddFrames            (ID3Tag *tag, const ID3Frame *frames, size_t num);
+   ID3_C_EXPORT ID3Frame*            CCONV ID3Tag_RemoveFrame          (ID3Tag *tag, const ID3Frame *frame);
+   ID3_C_EXPORT ID3_Err              CCONV ID3Tag_Parse                (ID3Tag *tag, const uchar header[ID3_TAGHEADERSIZE], const uchar *buffer);
+@@ -66,7 +66,7 @@
+   ID3_C_EXPORT ID3Frame*            CCONV ID3Tag_FindFrameWithASCII   (const ID3Tag *tag, ID3_FrameID id, ID3_FieldID fld, const char *data);
+   ID3_C_EXPORT ID3Frame*            CCONV ID3Tag_FindFrameWithUNICODE (const ID3Tag *tag, ID3_FrameID id, ID3_FieldID fld, const unicode_t *data);
+   ID3_C_EXPORT size_t               CCONV ID3Tag_NumFrames            (const ID3Tag *tag);
+-  ID3_C_EXPORT bool                 CCONV ID3Tag_HasTagType           (const ID3Tag *tag, ID3_TagType);
++  ID3_C_EXPORT my_bool                 CCONV ID3Tag_HasTagType           (const ID3Tag *tag, ID3_TagType);
+   ID3_C_EXPORT ID3TagIterator*      CCONV ID3Tag_CreateIterator       (ID3Tag *tag);
+   ID3_C_EXPORT ID3TagConstIterator* CCONV ID3Tag_CreateConstIterator  (const ID3Tag *tag);
+ 
+@@ -83,8 +83,8 @@
+   ID3_C_EXPORT void                 CCONV ID3Frame_SetID              (ID3Frame *frame, ID3_FrameID id);
+   ID3_C_EXPORT ID3_FrameID          CCONV ID3Frame_GetID              (const ID3Frame *frame);
+   ID3_C_EXPORT ID3Field*            CCONV ID3Frame_GetField           (const ID3Frame *frame, ID3_FieldID name);
+-  ID3_C_EXPORT void                 CCONV ID3Frame_SetCompression     (ID3Frame *frame, bool comp);
+-  ID3_C_EXPORT bool                 CCONV ID3Frame_GetCompression     (const ID3Frame *frame);
++  ID3_C_EXPORT void                 CCONV ID3Frame_SetCompression     (ID3Frame *frame, my_bool comp);
++  ID3_C_EXPORT my_bool                 CCONV ID3Frame_GetCompression     (const ID3Frame *frame);
+ 
+   /* field wrappers */
+   ID3_C_EXPORT void                 CCONV ID3Field_Clear              (ID3Field *field);
+@@ -116,7 +116,7 @@
+   ID3_C_EXPORT flags_t              CCONV ID3FrameInfo_FieldFlags     (ID3_FrameID frameid, int fieldnum);
+ 
+   /* Deprecated */
+-  ID3_C_EXPORT void                 CCONV ID3Tag_SetCompression       (ID3Tag *tag, bool comp);
++  ID3_C_EXPORT void                 CCONV ID3Tag_SetCompression       (ID3Tag *tag, my_bool comp);
+ 
+ #ifdef __cplusplus
+ }
+diff '--color=auto' -uNr a/src/c_wrapper.cpp b/src/c_wrapper.cpp
+--- a/src/c_wrapper.cpp	2003-03-02 00:23:00.000000000 -0000
++++ b/src/c_wrapper.cpp	2025-01-30 14:01:53.586000891 -0000
+@@ -72,10 +72,10 @@
+   }
+ 
+ 
+-  ID3_C_EXPORT bool CCONV
++  ID3_C_EXPORT my_bool CCONV
+   ID3Tag_HasChanged(const ID3Tag *tag)
+   {
+-    bool changed = false;
++    my_bool changed = false;
+ 
+     if (tag)
+     {
+@@ -87,7 +87,7 @@
+ 
+ 
+   ID3_C_EXPORT void CCONV
+-  ID3Tag_SetUnsync(ID3Tag *tag, bool unsync)
++  ID3Tag_SetUnsync(ID3Tag *tag, my_bool unsync)
+   {
+     if (tag)
+     {
+@@ -97,7 +97,7 @@
+ 
+ 
+   ID3_C_EXPORT void CCONV
+-  ID3Tag_SetExtendedHeader(ID3Tag *tag, bool ext)
++  ID3Tag_SetExtendedHeader(ID3Tag *tag, my_bool ext)
+   {
+     if (tag)
+     {
+@@ -106,7 +106,7 @@
+   }
+ 
+   ID3_C_EXPORT void CCONV
+-  ID3Tag_SetPadding(ID3Tag *tag, bool pad)
++  ID3Tag_SetPadding(ID3Tag *tag, my_bool pad)
+   {
+     if (tag)
+     {
+@@ -125,10 +125,10 @@
+   }
+ 
+ 
+-  ID3_C_EXPORT bool CCONV
++  ID3_C_EXPORT my_bool CCONV
+   ID3Tag_AttachFrame(ID3Tag *tag, ID3Frame *frame)
+   {
+-    bool b = false;
++    my_bool b = false;
+     if (tag)
+     {
+       ID3_CATCH(b = reinterpret_cast<ID3_Tag *>(tag)->AttachFrame(reinterpret_cast<ID3_Frame *>(frame)));
+@@ -303,10 +303,10 @@
+   }
+ 
+ 
+-  ID3_C_EXPORT bool CCONV
++  ID3_C_EXPORT my_bool CCONV
+   ID3Tag_HasTagType(const ID3Tag *tag, ID3_TagType tt)
+   {
+-    bool has_tt = false;
++    my_bool has_tt = false;
+ 
+     if (tag)
+     {
+@@ -459,7 +459,7 @@
+ 
+ 
+   ID3_C_EXPORT void CCONV
+-  ID3Frame_SetCompression(ID3Frame *frame, bool comp)
++  ID3Frame_SetCompression(ID3Frame *frame, my_bool comp)
+   {
+     if (frame)
+     {
+@@ -468,10 +468,10 @@
+   }
+ 
+ 
+-  ID3_C_EXPORT bool CCONV
++  ID3_C_EXPORT my_bool CCONV
+   ID3Frame_GetCompression(const ID3Frame *frame)
+   {
+-    bool compressed = false;
++    my_bool compressed = false;
+     if (frame)
+     {
+       ID3_CATCH(compressed = reinterpret_cast<const ID3_Frame *>(frame)->GetCompression());
+diff '--color=auto' -uNr a/src/field.cpp b/src/field.cpp
+--- a/src/field.cpp	2003-03-02 00:23:00.000000000 -0000
++++ b/src/field.cpp	2025-01-30 14:01:53.586000891 -0000
+@@ -964,7 +964,7 @@
+   return ;
+ }
+ 
+-bool
++my_bool
+ ID3_FieldImpl::HasChanged() const
+ {
+   return _changed;
+@@ -1040,9 +1040,9 @@
+   return size;
+ }
+ 
+-bool ID3_FieldImpl::Parse(ID3_Reader& reader)
++my_bool ID3_FieldImpl::Parse(ID3_Reader& reader)
+ {
+-  bool success = false;
++  my_bool success = false;
+   switch (this->GetType())
+   {
+     case ID3FTY_INTEGER:
+@@ -1172,9 +1172,9 @@
+   return *this;
+ }
+ 
+-bool ID3_FieldImpl::SetEncoding(ID3_TextEnc enc)
++my_bool ID3_FieldImpl::SetEncoding(ID3_TextEnc enc)
+ {
+-  bool changed = this->IsEncodable() && (enc != this->GetEncoding()) &&
++  my_bool changed = this->IsEncodable() && (enc != this->GetEncoding()) &&
+     (ID3TE_NONE < enc && enc < ID3TE_NUMENCODINGS);
+   if (changed)
+   {
+diff '--color=auto' -uNr a/src/field_binary.cpp b/src/field_binary.cpp
+--- a/src/field_binary.cpp	2003-03-02 00:23:00.000000000 -0000
++++ b/src/field_binary.cpp	2025-01-30 14:01:53.590000827 -0000
+@@ -192,7 +192,7 @@
+ }
+ 
+ 
+-bool ID3_FieldImpl::ParseBinary(ID3_Reader& reader)
++my_bool ID3_FieldImpl::ParseBinary(ID3_Reader& reader)
+ {
+   // copy the remaining bytes, unless we're fixed length, in which case copy
+   // the minimum of the remaining bytes vs. the fixed length
+diff '--color=auto' -uNr a/src/field_impl.h b/src/field_impl.h
+--- a/src/field_impl.h	2003-03-02 00:23:00.000000000 -0000
++++ b/src/field_impl.h	2025-01-30 14:01:53.586000891 -0000
+@@ -96,19 +96,19 @@
+ 
+   // miscelaneous functions
+   ID3_Field&    operator=( const ID3_Field & );
+-  bool          InScope(ID3_V2Spec spec) const
++  my_bool          InScope(ID3_V2Spec spec) const
+   { return _spec_begin <= spec && spec <= _spec_end; }
+ 
+   ID3_FieldID   GetID() const { return _id; }
+   ID3_FieldType GetType() const { return _type; }
+-  bool          SetEncoding(ID3_TextEnc enc);
++  my_bool          SetEncoding(ID3_TextEnc enc);
+   ID3_TextEnc   GetEncoding() const { return _enc; }
+-  bool          IsEncodable() const { return (_flags & ID3FF_ENCODABLE) > 0; }
++  my_bool          IsEncodable() const { return (_flags & ID3FF_ENCODABLE) > 0; }
+   
+ 
+   void          Render(ID3_Writer&) const;
+-  bool          Parse(ID3_Reader&);
+-  bool          HasChanged() const;
++  my_bool          Parse(ID3_Reader&);
++  my_bool          HasChanged() const;
+ 
+ private:
+   size_t        SetText_i(dami::String);
+@@ -124,7 +124,7 @@
+   const ID3_V2Spec    _spec_begin;  // spec end
+   const ID3_V2Spec    _spec_end;    // spec begin
+   const flags_t       _flags;       // special field flags
+-  mutable bool        _changed;     // field changed since last parse/render?
++  mutable my_bool        _changed;     // field changed since last parse/render?
+ 
+   dami::BString       _binary;      // for binary strings
+   dami::String        _text;        // for ascii strings
+@@ -138,9 +138,9 @@
+   void RenderText(ID3_Writer&) const;
+   void RenderBinary(ID3_Writer&) const;
+   
+-  bool ParseInteger(ID3_Reader&);
+-  bool ParseText(ID3_Reader&);
+-  bool ParseBinary(ID3_Reader&);
++  my_bool ParseInteger(ID3_Reader&);
++  my_bool ParseText(ID3_Reader&);
++  my_bool ParseBinary(ID3_Reader&);
+   
+ };
+ 
+diff '--color=auto' -uNr a/src/field_integer.cpp b/src/field_integer.cpp
+--- a/src/field_integer.cpp	2003-03-02 00:23:00.000000000 -0000
++++ b/src/field_integer.cpp	2025-01-30 14:01:53.586000891 -0000
+@@ -84,12 +84,12 @@
+   return val;
+ }
+ 
+-bool ID3_FieldImpl::ParseInteger(ID3_Reader& reader)
++my_bool ID3_FieldImpl::ParseInteger(ID3_Reader& reader)
+ {
+   ID3D_NOTICE( "ID3_FieldImpl::ParseInteger(): beg = " << reader.getBeg() );
+   ID3D_NOTICE( "ID3_FieldImpl::ParseInteger(): cur = " << reader.getCur() );
+   ID3D_NOTICE( "ID3_FieldImpl::ParseInteger(): end = " << reader.getEnd() );
+-  bool success = false;
++  my_bool success = false;
+   if (!reader.atEnd())
+   {
+     this->Clear();
+diff '--color=auto' -uNr a/src/field_string_ascii.cpp b/src/field_string_ascii.cpp
+--- a/src/field_string_ascii.cpp	2003-03-02 00:23:00.000000000 -0000
++++ b/src/field_string_ascii.cpp	2025-01-30 14:01:53.590000827 -0000
+@@ -324,7 +324,7 @@
+   }
+ }
+ 
+-bool ID3_FieldImpl::ParseText(ID3_Reader& reader)
++my_bool ID3_FieldImpl::ParseText(ID3_Reader& reader)
+ {
+   ID3D_NOTICE( "ID3_Field::ParseText(): reader.getBeg() = " << reader.getBeg() );
+   ID3D_NOTICE( "ID3_Field::ParseText(): reader.getCur() = " << reader.getCur() );
+diff '--color=auto' -uNr a/src/flags.h b/src/flags.h
+--- a/src/flags.h	2003-03-02 00:23:00.000000000 -0000
++++ b/src/flags.h	2025-01-30 14:01:53.586000891 -0000
+@@ -39,12 +39,12 @@
+   virtual ~ID3_Flags() { ; }
+ 
+   TYPE   get() const         { return _f; }
+-  bool   test(TYPE f) const { return (this->get() & f) == f; }
+-  bool   set(TYPE f)        { bool r = (_f != f); _f = f; return r; }
+-  bool   add(TYPE f)        { return this->set(this->get() | f); }
+-  bool   remove(TYPE f)     { return this->set(this->get() & ~f); }
+-  bool   clear()             { return this->set(0); }
+-  bool   set(TYPE f, bool b){ if (b) return this->add(f); return this->remove(f); }
++  my_bool   test(TYPE f) const { return (this->get() & f) == f; }
++  my_bool   set(TYPE f)        { my_bool r = (_f != f); _f = f; return r; }
++  my_bool   add(TYPE f)        { return this->set(this->get() | f); }
++  my_bool   remove(TYPE f)     { return this->set(this->get() & ~f); }
++  my_bool   clear()             { return this->set(0); }
++  my_bool   set(TYPE f, my_bool b){ if (b) return this->add(f); return this->remove(f); }
+ 
+   ID3_Flags& operator=(const ID3_Flags& f)
+   { if (this != &f) { this->set(f.get()); } return *this; }
+diff '--color=auto' -uNr a/src/frame.cpp b/src/frame.cpp
+--- a/src/frame.cpp	2003-03-02 00:23:00.000000000 -0000
++++ b/src/frame.cpp	2025-01-30 14:01:53.590000827 -0000
+@@ -113,12 +113,12 @@
+  ** @param id The type of frame this frame should be set to
+  ** @see ID3_FrameID
+  **/
+-bool ID3_Frame::SetID(ID3_FrameID id)
++my_bool ID3_Frame::SetID(ID3_FrameID id)
+ {
+   return _impl->SetID(id);
+ }
+ 
+-bool ID3_Frame::SetSpec(ID3_V2Spec spec)
++my_bool ID3_Frame::SetSpec(ID3_V2Spec spec)
+ {
+   return _impl->SetSpec(spec);
+ }
+@@ -167,7 +167,7 @@
+ }
+ 
+ 
+-bool ID3_Frame::HasChanged() const
++my_bool ID3_Frame::HasChanged() const
+ {
+   return _impl->HasChanged();
+ }
+@@ -196,7 +196,7 @@
+   return _impl->GetTextID();
+ }
+ 
+-bool ID3_Frame::Parse(ID3_Reader& reader) 
++my_bool ID3_Frame::Parse(ID3_Reader& reader) 
+ {
+   return _impl->Parse(reader);
+ }
+@@ -206,7 +206,7 @@
+   _impl->Render(writer);
+ }
+ 
+-bool ID3_Frame::Contains(ID3_FieldID id) const
++my_bool ID3_Frame::Contains(ID3_FieldID id) const
+ {
+   return _impl->Contains(id);
+ }
+@@ -216,7 +216,7 @@
+  ** actually be compressed after it is rendered if the "compressed" data is
+  ** no smaller than the "uncompressed" data.
+  **/
+-bool ID3_Frame::SetCompression(bool b)
++my_bool ID3_Frame::SetCompression(my_bool b)
+ {
+   return _impl->SetCompression(b);
+ }
+@@ -229,7 +229,7 @@
+  ** flag is set, if the "compressed" data is no smaller than the
+  ** "uncompressed" data.
+  **/
+-bool ID3_Frame::GetCompression() const
++my_bool ID3_Frame::GetCompression() const
+ {
+   return _impl->GetCompression();
+ }
+@@ -239,7 +239,7 @@
+   return _impl->GetDataSize();
+ }
+ 
+-bool ID3_Frame::SetEncryptionID(uchar id)
++my_bool ID3_Frame::SetEncryptionID(uchar id)
+ {
+   return _impl->SetEncryptionID(id);
+ }
+@@ -249,7 +249,7 @@
+   return _impl->GetEncryptionID();
+ }
+ 
+-bool ID3_Frame::SetGroupingID(uchar id)
++my_bool ID3_Frame::SetGroupingID(uchar id)
+ {
+   return _impl->SetGroupingID(id);
+ }
+diff '--color=auto' -uNr a/src/frame_def.h b/src/frame_def.h
+--- a/src/frame_def.h	2003-03-02 00:23:00.000000000 -0000
++++ b/src/frame_def.h	2025-01-30 14:01:53.586000891 -0000
+@@ -38,8 +38,8 @@
+   ID3_FrameID   eID;
+   char          sShortTextID[3 + 1];
+   char          sLongTextID[4 + 1];
+-  bool          bTagDiscard;
+-  bool          bFileDiscard;
++  my_bool          bTagDiscard;
++  my_bool          bFileDiscard;
+   const ID3_FieldDef* aeFieldDefs;
+   const char *  sDescription;
+ };
+diff '--color=auto' -uNr a/src/frame_impl.cpp b/src/frame_impl.cpp
+--- a/src/frame_impl.cpp	2003-03-02 00:23:00.000000000 -0000
++++ b/src/frame_impl.cpp	2025-01-30 14:01:53.586000891 -0000
+@@ -72,7 +72,7 @@
+   Clear();
+ }
+ 
+-bool ID3_FrameImpl::_ClearFields()
++my_bool ID3_FrameImpl::_ClearFields()
+ {
+   for (iterator fi = _fields.begin(); fi != _fields.end(); ++fi)
+   {
+@@ -118,9 +118,9 @@
+   }
+ }
+ 
+-bool ID3_FrameImpl::SetID(ID3_FrameID id)
++my_bool ID3_FrameImpl::SetID(ID3_FrameID id)
+ {
+-  bool changed = (this->GetID() != id);
++  my_bool changed = (this->GetID() != id);
+   if (changed)
+   {
+     this->_SetID(id);
+@@ -129,15 +129,15 @@
+   return changed;
+ }
+ 
+-bool ID3_FrameImpl::_SetID(ID3_FrameID id)
++my_bool ID3_FrameImpl::_SetID(ID3_FrameID id)
+ {
+-  bool changed = this->_ClearFields();
++  my_bool changed = this->_ClearFields();
+   changed = _hdr.SetFrameID(id) || changed;
+   this->_InitFields();
+   return changed;
+ }
+ 
+-bool ID3_FrameImpl::SetSpec(ID3_V2Spec spec)
++my_bool ID3_FrameImpl::SetSpec(ID3_V2Spec spec)
+ {
+   return _hdr.SetSpec(spec);
+ }
+@@ -204,9 +204,9 @@
+ }
+ 
+ 
+-bool ID3_FrameImpl::HasChanged() const
++my_bool ID3_FrameImpl::HasChanged() const
+ {
+-  bool changed = _changed;
++  my_bool changed = _changed;
+   
+   for (const_iterator fi = _fields.begin(); fi != _fields.end(); ++fi)
+   {
+diff '--color=auto' -uNr a/src/frame_impl.h b/src/frame_impl.h
+--- a/src/frame_impl.h	2003-03-02 00:23:00.000000000 -0000
++++ b/src/frame_impl.h	2025-01-30 14:01:53.586000891 -0000
+@@ -55,7 +55,7 @@
+   
+   void        Clear();
+ 
+-  bool        SetID(ID3_FrameID id);
++  my_bool        SetID(ID3_FrameID id);
+   ID3_FrameID GetID() const { return _hdr.GetFrameID(); }
+   
+   ID3_Field*  GetField(ID3_FieldID name) const;
+@@ -68,13 +68,13 @@
+   const char* GetTextID() const { return _hdr.GetTextID(); }
+ 
+   ID3_FrameImpl&  operator=(const ID3_Frame &);
+-  bool        HasChanged() const;
+-  bool        Parse(ID3_Reader&);
++  my_bool        HasChanged() const;
++  my_bool        Parse(ID3_Reader&);
+   void        Render(ID3_Writer&) const;
+   size_t      Size();
+-  bool        Contains(ID3_FieldID fld) const
++  my_bool        Contains(ID3_FieldID fld) const
+   { return _bitset.test(fld); }
+-  bool        SetSpec(ID3_V2Spec);
++  my_bool        SetSpec(ID3_V2Spec);
+   ID3_V2Spec  GetSpec() const;
+ 
+   /** Sets the compression flag within the frame.  When the compression flag is
+@@ -82,7 +82,7 @@
+    ** actually be compressed after it is rendered if the "compressed" data is
+    ** no smaller than the "uncompressed" data.
+    **/
+-  bool        SetCompression(bool b)  { return _hdr.SetCompression(b); }
++  my_bool        SetCompression(my_bool b)  { return _hdr.SetCompression(b); }
+   /** Returns whether or not the compression flag is set.  After parsing a tag,
+    ** this will indicate whether or not the frame was compressed.  After
+    ** rendering a tag, however, it does not actually indicate if the frame is
+@@ -91,21 +91,21 @@
+    ** flag is set, if the "compressed" data is no smaller than the
+    ** "uncompressed" data.
+    **/
+-  bool        GetCompression() const  { return _hdr.GetCompression(); }
++  my_bool        GetCompression() const  { return _hdr.GetCompression(); }
+   size_t      GetDataSize() const { return _hdr.GetDataSize(); }
+ 
+-  bool SetEncryptionID(uchar id)
++  my_bool SetEncryptionID(uchar id)
+   {
+-    bool changed = id != _encryption_id;
++    my_bool changed = id != _encryption_id;
+     _encryption_id = id;
+     _changed = _changed || changed;
+     _hdr.SetEncryption(true);
+     return changed;
+   }
+   uchar GetEncryptionID() const { return _encryption_id; }
+-  bool SetGroupingID(uchar id)
++  my_bool SetGroupingID(uchar id)
+   {
+-    bool changed = id != _grouping_id;
++    my_bool changed = id != _grouping_id;
+     _grouping_id = id;
+     _changed = _changed || changed;
+     _hdr.SetGrouping(true);
+@@ -119,14 +119,14 @@
+   const_iterator   end()   const { return _fields.end(); }
+   
+ protected:
+-  bool        _SetID(ID3_FrameID);
+-  bool        _ClearFields();
++  my_bool        _SetID(ID3_FrameID);
++  my_bool        _ClearFields();
+   void        _InitFields();
+   void        _InitFieldBits();
+   void        _UpdateFieldDeps();
+ 
+ private:
+-  mutable bool        _changed;    // frame changed since last parse/render?
++  mutable my_bool        _changed;    // frame changed since last parse/render?
+   Bitset      _bitset;             // which fields are present?
+   Fields      _fields;
+   ID3_FrameHeader _hdr;            // 
+diff '--color=auto' -uNr a/src/frame_parse.cpp b/src/frame_parse.cpp
+--- a/src/frame_parse.cpp	2003-03-02 00:23:00.000000000 -0000
++++ b/src/frame_parse.cpp	2025-01-30 14:01:53.586000891 -0000
+@@ -35,7 +35,7 @@
+ 
+ namespace
+ {
+-  bool parseFields(ID3_Reader& rdr, ID3_FrameImpl& frame)
++  my_bool parseFields(ID3_Reader& rdr, ID3_FrameImpl& frame)
+   {
+     int iLoop;
+     int iFields;
+@@ -106,7 +106,7 @@
+   }
+ };
+ 
+-bool ID3_FrameImpl::Parse(ID3_Reader& reader) 
++my_bool ID3_FrameImpl::Parse(ID3_Reader& reader) 
+ { 
+   io::ExitTrigger et(reader);
+   ID3D_NOTICE( "ID3_FrameImpl::Parse(): reader.getBeg() = " << reader.getBeg() );
+@@ -160,7 +160,7 @@
+   this->_ClearFields(); 
+   this->_InitFields(); 
+ 
+-  bool success = false;
++  my_bool success = false;
+   // expand out the data if it's compressed 
+   if (!_hdr.GetCompression())
+   {
+diff '--color=auto' -uNr a/src/header.cpp b/src/header.cpp
+--- a/src/header.cpp	2003-03-02 00:23:00.000000000 -0000
++++ b/src/header.cpp	2025-01-30 14:01:53.586000891 -0000
+@@ -31,7 +31,7 @@
+ #include <config.h>
+ #endif
+ 
+-bool ID3_Header::SetSpec(ID3_V2Spec spec)
++my_bool ID3_Header::SetSpec(ID3_V2Spec spec)
+ {
+   static ID3_Header::Info _spec_info[] =
+   {
+@@ -44,7 +44,7 @@
+     {  4,     4,     2,     false, 6,   false }  // ID3V2_4_0
+   };
+   
+-  bool changed = false;
++  my_bool changed = false;
+   if (spec < ID3V2_EARLIEST || spec > ID3V2_LATEST)
+   {
+     changed = _spec != ID3V2_UNKNOWN;
+diff '--color=auto' -uNr a/src/header.h b/src/header.h
+--- a/src/header.h	2003-03-02 00:23:00.000000000 -0000
++++ b/src/header.h	2025-01-30 14:01:53.586000891 -0000
+@@ -43,9 +43,9 @@
+     uchar      frame_bytes_id;
+     uchar      frame_bytes_size;
+     uchar      frame_bytes_flags;
+-    bool       is_extended;
++    my_bool       is_extended;
+     size_t     extended_bytes; //including the extended header, so everything!
+-    bool       is_experimental;
++    my_bool       is_experimental;
+   };
+ 
+   ID3_Header() 
+@@ -58,21 +58,21 @@
+   }
+   virtual ~ID3_Header() { ; }
+   
+-  virtual bool       SetSpec(ID3_V2Spec);
++  virtual my_bool       SetSpec(ID3_V2Spec);
+   /*   */ ID3_V2Spec GetSpec() const { return _spec; }
+ 
+-  /*   */ bool       SetDataSize(size_t size)
++  /*   */ my_bool       SetDataSize(size_t size)
+   { 
+-    bool changed = size != _data_size; 
++    my_bool changed = size != _data_size; 
+     _changed = _changed || changed;
+     _data_size = size;
+     return changed;
+   }
+   /*   */ size_t     GetDataSize() const { return _data_size; }
+   
+-  virtual bool       Clear()
++  virtual my_bool       Clear()
+   {
+-    bool changed = this->SetDataSize(0);
++    my_bool changed = this->SetDataSize(0);
+     if (this->GetSpec() == ID3V2_UNKNOWN)
+     {
+       this->SetSpec(ID3V2_LATEST);
+@@ -85,7 +85,7 @@
+   virtual size_t     Size() const = 0;
+   
+   virtual void       Render(ID3_Writer&) const = 0;
+-  virtual bool       Parse(ID3_Reader&) = 0;
++  virtual my_bool       Parse(ID3_Reader&) = 0;
+ 
+   ID3_Header &operator=( const ID3_Header &rhs)
+   { 
+@@ -103,7 +103,7 @@
+   size_t          _data_size;        // how big is the data?
+   ID3_Flags       _flags;            // header flags
+   Info*     _info;             // header info w.r.t. id3v2 spec
+-  bool            _changed;          // has the header changed since parsing
++  my_bool            _changed;          // has the header changed since parsing
+ }
+ ;
+ 
+diff '--color=auto' -uNr a/src/header_frame.cpp b/src/header_frame.cpp
+--- a/src/header_frame.cpp	2003-03-02 00:23:00.000000000 -0000
++++ b/src/header_frame.cpp	2025-01-30 14:01:53.586000891 -0000
+@@ -62,7 +62,7 @@
+   _dyn_frame_def = true;
+ }
+ 
+-bool ID3_FrameHeader::SetFrameID(ID3_FrameID id)
++my_bool ID3_FrameHeader::SetFrameID(ID3_FrameID id)
+ {
+   if (id == ID3FID_NOFRAME || id == this->GetFrameID())
+   {
+@@ -88,7 +88,7 @@
+     _info->frame_bytes_flags;
+ }
+ 
+-bool ID3_FrameHeader::Parse(ID3_Reader& reader)
++my_bool ID3_FrameHeader::Parse(ID3_Reader& reader)
+ {
+   ID3D_NOTICE( "ID3_FrameHeader::Parse(): getCur() = " << reader.getCur() );
+   io::ExitTrigger et(reader);
+@@ -222,9 +222,9 @@
+   return _frame_def;
+ }
+ 
+-bool ID3_FrameHeader::Clear()
++my_bool ID3_FrameHeader::Clear()
+ {
+-  bool changed = this->ID3_Header::Clear();
++  my_bool changed = this->ID3_Header::Clear();
+   if (_dyn_frame_def)
+   {
+     delete _frame_def;
+diff '--color=auto' -uNr a/src/header_frame.h b/src/header_frame.h
+--- a/src/header_frame.h	2003-03-02 00:23:00.000000000 -0000
++++ b/src/header_frame.h	2025-01-30 14:01:53.586000891 -0000
+@@ -51,29 +51,29 @@
+   virtual ~ID3_FrameHeader() { this->Clear(); }
+ 
+   /* */ size_t        Size() const;
+-  /* */ bool          Parse(ID3_Reader&);
++  /* */ my_bool          Parse(ID3_Reader&);
+   /* */ void          Render(ID3_Writer&) const;
+-  /* */ bool          SetFrameID(ID3_FrameID id);
++  /* */ my_bool          SetFrameID(ID3_FrameID id);
+   /* */ ID3_FrameID   GetFrameID() const;
+   const char*         GetTextID() const;
+   const ID3_FrameDef* GetFrameDef() const;
+-  /* */ bool          Clear();
++  /* */ my_bool          Clear();
+   ID3_FrameHeader&    operator=(const ID3_FrameHeader&);
+ 
+-  bool SetCompression(bool b) { return this->SetFlags(COMPRESSION, b); }
+-  bool SetEncryption(bool b)  { return this->SetFlags(ENCRYPTION, b); }
+-  bool SetGrouping(bool b)    { return this->SetFlags(GROUPING, b); }
+-
+-  bool GetCompression() const { return _flags.test(COMPRESSION); }
+-  bool GetEncryption() const  { return _flags.test(ENCRYPTION); }
+-  bool GetGrouping() const    { return _flags.test(GROUPING); }
+-  bool GetReadOnly() const    { return _flags.test(READONLY); }
++  my_bool SetCompression(my_bool b) { return this->SetFlags(COMPRESSION, b); }
++  my_bool SetEncryption(my_bool b)  { return this->SetFlags(ENCRYPTION, b); }
++  my_bool SetGrouping(my_bool b)    { return this->SetFlags(GROUPING, b); }
++
++  my_bool GetCompression() const { return _flags.test(COMPRESSION); }
++  my_bool GetEncryption() const  { return _flags.test(ENCRYPTION); }
++  my_bool GetGrouping() const    { return _flags.test(GROUPING); }
++  my_bool GetReadOnly() const    { return _flags.test(READONLY); }
+   void                SetUnknownFrame(const char*);
+ 
+ protected:
+-  bool                SetFlags(uint16 f, bool b)
++  my_bool                SetFlags(uint16 f, my_bool b)
+   {
+-    bool changed = _flags.set(f, b);
++    my_bool changed = _flags.set(f, b);
+     _changed = _changed || changed;
+     return changed;
+   }
+@@ -82,7 +82,7 @@
+ 
+ private:
+   ID3_FrameDef*       _frame_def;
+-  bool                _dyn_frame_def;
++  my_bool                _dyn_frame_def;
+ }
+ ;
+ 
+diff '--color=auto' -uNr a/src/header_tag.cpp b/src/header_tag.cpp
+--- a/src/header_tag.cpp	2025-01-30 14:02:28.873444087 -0000
++++ b/src/header_tag.cpp	2025-01-30 14:01:53.590000827 -0000
+@@ -36,9 +36,9 @@
+ 
+ const char* const ID3_TagHeader::ID = "ID3";
+ 
+-bool ID3_TagHeader::SetSpec(ID3_V2Spec spec)
++my_bool ID3_TagHeader::SetSpec(ID3_V2Spec spec)
+ {
+-  bool changed = this->ID3_Header::SetSpec(spec);
++  my_bool changed = this->ID3_Header::SetSpec(spec);
+   if (changed)
+   {
+     if (_info)
+@@ -98,7 +98,7 @@
+   }
+ }
+ 
+-bool ID3_TagHeader::Parse(ID3_Reader& reader)
++my_bool ID3_TagHeader::Parse(ID3_Reader& reader)
+ {
+   io::ExitTrigger et(reader);
+   if (!ID3_Tag::IsV2Tag(reader))
+diff '--color=auto' -uNr a/src/header_tag.h b/src/header_tag.h
+--- a/src/header_tag.h	2003-03-02 00:23:00.000000000 -0000
++++ b/src/header_tag.h	2025-01-30 14:01:53.590000827 -0000
+@@ -55,42 +55,42 @@
+   virtual ~ID3_TagHeader() { ; }
+   ID3_TagHeader(const ID3_TagHeader& rhs) : ID3_Header() { *this = rhs; }
+ 
+-  bool   SetSpec(ID3_V2Spec);
++  my_bool   SetSpec(ID3_V2Spec);
+   size_t Size() const;
+   void Render(ID3_Writer&) const;
+-  bool Parse(ID3_Reader&);
++  my_bool Parse(ID3_Reader&);
+   void ParseExtended(ID3_Reader&);
+   ID3_TagHeader& operator=(const ID3_TagHeader&hdr)
+   { this->ID3_Header::operator=(hdr); return *this; }
+ 
+-  bool SetUnsync(bool b)
++  my_bool SetUnsync(my_bool b)
+   {
+-    bool changed = _flags.set(HEADER_FLAG_UNSYNC, b);
++    my_bool changed = _flags.set(HEADER_FLAG_UNSYNC, b);
+     _changed = _changed || changed;
+     return changed;
+   }
+-  bool GetUnsync() const { return _flags.test(HEADER_FLAG_UNSYNC); }
+-  bool SetExtended(bool b)
++  my_bool GetUnsync() const { return _flags.test(HEADER_FLAG_UNSYNC); }
++  my_bool SetExtended(my_bool b)
+   {
+-    bool changed = _flags.set(HEADER_FLAG_EXTENDED, b);
++    my_bool changed = _flags.set(HEADER_FLAG_EXTENDED, b);
+     _changed = _changed || changed;
+     return changed;
+   }
+-  bool GetExtended() const { return _flags.test(HEADER_FLAG_EXTENDED); }
+-  bool SetExperimental(bool b)
++  my_bool GetExtended() const { return _flags.test(HEADER_FLAG_EXTENDED); }
++  my_bool SetExperimental(my_bool b)
+   {
+-    bool changed = _flags.set(HEADER_FLAG_EXPERIMENTAL, b);
++    my_bool changed = _flags.set(HEADER_FLAG_EXPERIMENTAL, b);
+     _changed = _changed || changed;
+     return changed;
+   }
+-  bool GetExperimental() const { return _flags.test(HEADER_FLAG_EXPERIMENTAL); }
+-  bool SetFooter(bool b)
++  my_bool GetExperimental() const { return _flags.test(HEADER_FLAG_EXPERIMENTAL); }
++  my_bool SetFooter(my_bool b)
+   {
+-    bool changed = _flags.set(HEADER_FLAG_FOOTER, b);
++    my_bool changed = _flags.set(HEADER_FLAG_FOOTER, b);
+     _changed = _changed || changed;
+     return changed;
+   }
+-  bool GetFooter() const { return _flags.test(HEADER_FLAG_FOOTER); }
++  my_bool GetFooter() const { return _flags.test(HEADER_FLAG_FOOTER); }
+ 
+   // id3v2 tag header signature:  $49 44 33 MM mm GG ss ss ss ss
+   // MM = major version (will never be 0xFF)
+diff '--color=auto' -uNr a/src/io_helpers.cpp b/src/io_helpers.cpp
+--- a/src/io_helpers.cpp	2025-01-30 14:02:28.845444530 -0000
++++ b/src/io_helpers.cpp	2025-01-30 14:01:53.590000827 -0000
+@@ -65,7 +65,7 @@
+ 
+ namespace
+ {
+-  bool isNull(unsigned char ch1, unsigned char ch2)
++  my_bool isNull(unsigned char ch1, unsigned char ch2)
+   {
+     return ch1 == '\0' && ch2 == '\0';
+   }
+@@ -102,7 +102,7 @@
+     return 0;
+   }
+ 
+-  bool readTwoChars(ID3_Reader& reader, 
++  my_bool readTwoChars(ID3_Reader& reader, 
+                     ID3_Reader::char_type& ch1, 
+                     ID3_Reader::char_type& ch2)
+   {
+@@ -342,7 +342,7 @@
+   return writer.getCur() - beg;
+ }
+ 
+-size_t io::writeUnicodeString(ID3_Writer& writer, String data, bool bom)
++size_t io::writeUnicodeString(ID3_Writer& writer, String data, my_bool bom)
+ {
+   size_t size = writeUnicodeText(writer, data, bom);
+   unicode_t null = NULL_UNICODE;
+@@ -350,7 +350,7 @@
+   return size + 2;
+ }
+ 
+-size_t io::writeUnicodeText(ID3_Writer& writer, String data, bool bom)
++size_t io::writeUnicodeText(ID3_Writer& writer, String data, my_bool bom)
+ {
+   ID3_Writer::pos_type beg = writer.getCur();
+   size_t size = (data.size() / 2) * 2;
+diff '--color=auto' -uNr a/src/misc_support.cpp b/src/misc_support.cpp
+--- a/src/misc_support.cpp	2003-03-02 00:23:00.000000000 -0000
++++ b/src/misc_support.cpp	2025-01-30 14:01:53.590000827 -0000
+@@ -89,7 +89,7 @@
+   return sArtist;
+ }
+ 
+-ID3_Frame* ID3_AddArtist(ID3_Tag *tag, const char *text, bool replace)
++ID3_Frame* ID3_AddArtist(ID3_Tag *tag, const char *text, my_bool replace)
+ {
+   ID3_Frame* frame = NULL;
+   if (NULL != tag && NULL != text && strlen(text) > 0)
+@@ -169,7 +169,7 @@
+   return sAlbum;
+ }
+ 
+-ID3_Frame* ID3_AddAlbum(ID3_Tag *tag, const char *text, bool replace)
++ID3_Frame* ID3_AddAlbum(ID3_Tag *tag, const char *text, my_bool replace)
+ {
+   ID3_Frame* frame = NULL;
+   if (NULL != tag && NULL != text && strlen(text) > 0)
+@@ -228,7 +228,7 @@
+   return sTitle;
+ }
+ 
+-ID3_Frame* ID3_AddTitle(ID3_Tag *tag, const char *text, bool replace)
++ID3_Frame* ID3_AddTitle(ID3_Tag *tag, const char *text, my_bool replace)
+ {
+   ID3_Frame* frame = NULL;
+   if (NULL != tag && NULL != text && strlen(text) > 0)
+@@ -287,7 +287,7 @@
+   return sYear;
+ }
+ 
+-ID3_Frame* ID3_AddYear(ID3_Tag *tag, const char *text, bool replace)
++ID3_Frame* ID3_AddYear(ID3_Tag *tag, const char *text, my_bool replace)
+ {
+   ID3_Frame* frame = NULL;
+   if (NULL != tag && NULL != text && strlen(text) > 0)
+@@ -355,19 +355,19 @@
+   return comment;
+ }
+ 
+-ID3_Frame* ID3_AddComment(ID3_Tag *tag, const char *text, bool replace)
++ID3_Frame* ID3_AddComment(ID3_Tag *tag, const char *text, my_bool replace)
+ {
+   return ID3_AddComment(tag, text, "", replace);
+ }
+ 
+ ID3_Frame* ID3_AddComment(ID3_Tag *tag, const char *text,
+-                          const char *desc, bool replace)
++                          const char *desc, my_bool replace)
+ {
+   return ID3_AddComment(tag, text, desc, "XXX", replace);
+ }
+ 
+ ID3_Frame* ID3_AddComment(ID3_Tag *tag, const char *text,
+-                          const char *desc, const char* lang, bool replace)
++                          const char *desc, const char* lang, my_bool replace)
+ {
+   ID3_Frame* frame = NULL;
+   if (NULL != tag  &&
+@@ -375,7 +375,7 @@
+       NULL != desc &&
+       strlen(text) > 0)
+   {
+-    bool bAdd = true;
++    my_bool bAdd = true;
+     if (replace)
+     {
+       ID3_RemoveComments(tag, desc);
+@@ -435,7 +435,7 @@
+   {
+     if (frame->GetID() == ID3FID_COMMENT)
+     {
+-      bool remove = false;
++      my_bool remove = false;
+       // A null description means remove all comments
+       if (NULL == desc)
+       {
+@@ -490,7 +490,7 @@
+   return nTrack;
+ }
+ 
+-ID3_Frame* ID3_AddTrack(ID3_Tag *tag, uchar trk, uchar ttl, bool replace)
++ID3_Frame* ID3_AddTrack(ID3_Tag *tag, uchar trk, uchar ttl, my_bool replace)
+ {
+   ID3_Frame* frame = NULL;
+   if (NULL != tag && trk > 0)
+@@ -567,7 +567,7 @@
+ }
+ 
+ //following routine courtesy of John George
+-bool ID3_HasPicture(const ID3_Tag* tag)
++my_bool ID3_HasPicture(const ID3_Tag* tag)
+ {
+   if (NULL == tag)
+     return false;
+@@ -587,7 +587,7 @@
+ }
+ 
+ //following routine courtesy of John George
+-ID3_Frame* ID3_AddPicture(ID3_Tag* tag, const char* TempPicPath, const char* MimeType, bool replace)
++ID3_Frame* ID3_AddPicture(ID3_Tag* tag, const char* TempPicPath, const char* MimeType, my_bool replace)
+ {
+   ID3_Frame* frame = NULL;
+   if (NULL != tag )
+@@ -657,7 +657,7 @@
+ }
+ 
+ //following routine courtesy of John George
+-ID3_Frame* ID3_AddPicture(ID3_Tag *tag, const char *TempPicPath, const char *MimeType, ID3_PictureType pictype, const char* Description, bool replace)
++ID3_Frame* ID3_AddPicture(ID3_Tag *tag, const char *TempPicPath, const char *MimeType, ID3_PictureType pictype, const char* Description, my_bool replace)
+ {
+   ID3_Frame* frame = NULL;
+   if (NULL != tag )
+@@ -836,7 +836,7 @@
+ }
+ 
+ //following routine courtesy of John George
+-ID3_Frame* ID3_AddGenre(ID3_Tag* tag, const char* genre, bool replace)
++ID3_Frame* ID3_AddGenre(ID3_Tag* tag, const char* genre, my_bool replace)
+ {
+   ID3_Frame* frame = NULL;
+   if (NULL != tag && NULL != genre && strlen(genre) > 0)
+@@ -859,7 +859,7 @@
+   return frame;
+ }
+ 
+-ID3_Frame* ID3_AddGenre(ID3_Tag *tag, size_t genreNum, bool replace)
++ID3_Frame* ID3_AddGenre(ID3_Tag *tag, size_t genreNum, my_bool replace)
+ {
+   if(0xFF != genreNum)
+   {
+@@ -909,19 +909,19 @@
+   return sLyrics;
+ }
+ 
+-ID3_Frame* ID3_AddLyrics(ID3_Tag *tag, const char *text, bool replace)
++ID3_Frame* ID3_AddLyrics(ID3_Tag *tag, const char *text, my_bool replace)
+ {
+   return ID3_AddLyrics(tag, text, "", replace);
+ }
+ 
+ ID3_Frame* ID3_AddLyrics(ID3_Tag *tag, const char *text, const char* desc,
+-                         bool replace)
++                         my_bool replace)
+ {
+   return ID3_AddLyrics(tag, text, desc, "XXX", replace);
+ }
+ 
+ ID3_Frame* ID3_AddLyrics(ID3_Tag *tag, const char *text, const char* desc,
+-                         const char* lang, bool replace)
++                         const char* lang, my_bool replace)
+ {
+   ID3_Frame* frame = NULL;
+   if (NULL != tag && strlen(text) > 0)
+@@ -982,7 +982,7 @@
+   return sLyricist;
+ }
+ 
+-ID3_Frame* ID3_AddLyricist(ID3_Tag *tag, const char *text, bool replace)
++ID3_Frame* ID3_AddLyricist(ID3_Tag *tag, const char *text, my_bool replace)
+ {
+   ID3_Frame* frame = NULL;
+   if (NULL != tag && NULL != text && strlen(text) > 0)
+@@ -1026,21 +1026,21 @@
+ }
+ 
+ ID3_Frame* ID3_AddSyncLyrics(ID3_Tag *tag, const uchar *data, size_t datasize,
+-                             ID3_TimeStampFormat format, bool replace)
++                             ID3_TimeStampFormat format, my_bool replace)
+ {
+   return ID3_AddSyncLyrics(tag, data, datasize, format, "", replace);
+ }
+ 
+ ID3_Frame* ID3_AddSyncLyrics(ID3_Tag *tag, const uchar *data, size_t datasize,
+                              ID3_TimeStampFormat format, const char *desc,
+-                             bool replace)
++                             my_bool replace)
+ {
+   return ID3_AddSyncLyrics(tag, data, datasize, format, desc, "XXX", replace);
+ }
+ 
+ ID3_Frame* ID3_AddSyncLyrics(ID3_Tag *tag, const uchar *data, size_t datasize,
+                              ID3_TimeStampFormat format, const char *desc,
+-                             const char *lang, bool replace)
++                             const char *lang, my_bool replace)
+ {
+   return ID3_AddSyncLyrics(tag, data, datasize, format, desc, lang,
+                            ID3CT_LYRICS, replace);
+@@ -1049,7 +1049,7 @@
+ ID3_Frame* ID3_AddSyncLyrics(ID3_Tag *tag, const uchar *data, size_t datasize,
+                              ID3_TimeStampFormat format, const char *desc,
+                              const char *lang, ID3_ContentType type,
+-                             bool replace)
++                             my_bool replace)
+ {
+   ID3_Frame* frame = NULL;
+   // language and descriptor should be mandatory
+diff '--color=auto' -uNr a/src/mp3_header.h b/src/mp3_header.h
+--- a/src/mp3_header.h	2003-03-02 00:23:00.000000000 -0000
++++ b/src/mp3_header.h	2025-01-30 14:01:53.590000827 -0000
+@@ -38,7 +38,7 @@
+   void Clean();
+ 
+   const Mp3_Headerinfo* GetMp3HeaderInfo() const { return _mp3_header_output; };
+-  bool Parse(ID3_Reader&, size_t mp3size);
++  my_bool Parse(ID3_Reader&, size_t mp3size);
+ 
+   Mpeg_Layers Layer() const { return _mp3_header_output->layer; };
+   Mpeg_Version Version() const { return _mp3_header_output->version; };
+@@ -51,9 +51,9 @@
+   uint32 Frequency() const { return _mp3_header_output->frequency; };
+   uint32 Framesize() const { return _mp3_header_output->framesize; };
+   uint32 Frames() const { return _mp3_header_output->frames; };
+-  bool Private() const { return _mp3_header_output->privatebit; };
+-  bool Copyrighted() const { return _mp3_header_output->copyrighted; };
+-  bool Original() const { return _mp3_header_output->original; };
++  my_bool Private() const { return _mp3_header_output->privatebit; };
++  my_bool Copyrighted() const { return _mp3_header_output->copyrighted; };
++  my_bool Original() const { return _mp3_header_output->original; };
+   uint32 Seconds() const { return _mp3_header_output->time; };
+ 
+ private:
+diff '--color=auto' -uNr a/src/mp3_parse.cpp b/src/mp3_parse.cpp
+--- a/src/mp3_parse.cpp	2025-01-30 14:02:28.893443772 -0000
++++ b/src/mp3_parse.cpp	2025-01-30 14:01:53.590000827 -0000
+@@ -99,7 +99,7 @@
+ 
+ using namespace dami;
+ 
+-bool Mp3Info::Parse(ID3_Reader& reader, size_t mp3size)
++my_bool Mp3Info::Parse(ID3_Reader& reader, size_t mp3size)
+ {
+   MP3_BitRates _mp3_bitrates[2][3][16] =
+   {
+@@ -319,10 +319,10 @@
+     return false;
+   }
+ 
+-  _mp3_header_output->privatebit = (bool)_tmpheader->private_bit;
+-  _mp3_header_output->copyrighted = (bool)_tmpheader->copyright;
+-  _mp3_header_output->original = (bool)_tmpheader->original;
+-  _mp3_header_output->crc = (Mp3_Crc)!(bool)_tmpheader->protection_bit;
++  _mp3_header_output->privatebit = (my_bool)_tmpheader->private_bit;
++  _mp3_header_output->copyrighted = (my_bool)_tmpheader->copyright;
++  _mp3_header_output->original = (my_bool)_tmpheader->original;
++  _mp3_header_output->crc = (Mp3_Crc)!(my_bool)_tmpheader->protection_bit;
+ 
+   switch (_tmpheader->mode)
+   {
+diff '--color=auto' -uNr a/src/tag.cpp b/src/tag.cpp
+--- a/src/tag.cpp	2003-03-02 00:23:00.000000000 -0000
++++ b/src/tag.cpp	2025-01-30 14:01:53.590000827 -0000
+@@ -340,7 +340,7 @@
+  **
+  ** \return Whether or not the tag has been altered.
+  **/
+-bool ID3_Tag::HasChanged() const
++my_bool ID3_Tag::HasChanged() const
+ {
+   return _impl->HasChanged();
+ }
+@@ -397,14 +397,14 @@
+  **
+  ** \param bSync Whether the tag should be unsynchronized
+  **/
+-bool ID3_Tag::SetUnsync(bool b)
++my_bool ID3_Tag::SetUnsync(my_bool b)
+ {
+   return _impl->SetUnsync(b);
+ }
+ 
+ 
+ /** Turns extended header rendering on or off, dependant on the value of the
+- ** boolean parameter.
++ ** my_boolean parameter.
+  **
+  ** This option is currently ignored as id3lib doesn't yet create extended
+  ** headers.  This option only applies when rendering tags for ID3v2 versions
+@@ -416,7 +416,7 @@
+  **
+  ** \param bExt Whether to render an extended header
+  **/
+-bool ID3_Tag::SetExtendedHeader(bool ext)
++my_bool ID3_Tag::SetExtendedHeader(my_bool ext)
+ {
+   return _impl->SetExtended(ext);
+ }
+@@ -450,27 +450,27 @@
+  **
+  ** \param bPad Whether or not render the tag with padding.
+  **/
+-bool ID3_Tag::SetPadding(bool pad)
++my_bool ID3_Tag::SetPadding(my_bool pad)
+ {
+   return _impl->SetPadding(pad);
+ }
+ 
+-bool ID3_Tag::SetExperimental(bool exp)
++my_bool ID3_Tag::SetExperimental(my_bool exp)
+ {
+   return _impl->SetExperimental(exp);
+ }
+ 
+-bool ID3_Tag::GetUnsync() const
++my_bool ID3_Tag::GetUnsync() const
+ {
+   return _impl->GetUnsync();
+ }
+ 
+-bool ID3_Tag::GetExtendedHeader() const
++my_bool ID3_Tag::GetExtendedHeader() const
+ {
+   return _impl->GetExtended();
+ }
+ 
+-bool ID3_Tag::GetExperimental() const
++my_bool ID3_Tag::GetExperimental() const
+ {
+   return _impl->GetExperimental();
+ }
+@@ -518,7 +518,7 @@
+  **
+  ** \param frame A pointer to the frame that is being added to the tag.
+  **/
+-bool ID3_Tag::AttachFrame(ID3_Frame *frame)
++my_bool ID3_Tag::AttachFrame(ID3_Frame *frame)
+ {
+   return _impl->AttachFrame(frame);
+ }
+@@ -549,7 +549,7 @@
+   return _impl->RemoveFrame(frame);
+ }
+ 
+-bool ID3_Tag::Parse(ID3_Reader& reader)
++my_bool ID3_Tag::Parse(ID3_Reader& reader)
+ {
+   return id3::v2::parse(*_impl, reader);
+ }
+@@ -933,7 +933,7 @@
+   return *this;
+ }
+ 
+-bool ID3_Tag::HasTagType(ID3_TagType tt) const
++my_bool ID3_Tag::HasTagType(ID3_TagType tt) const
+ {
+   return _impl->HasTagType(tt);
+ }
+@@ -943,7 +943,7 @@
+   return _impl->GetSpec();
+ }
+ 
+-bool ID3_Tag::SetSpec(ID3_V2Spec spec)
++my_bool ID3_Tag::SetSpec(ID3_V2Spec spec)
+ {
+   return _impl->SetSpec(spec);
+ }
+@@ -993,25 +993,25 @@
+   }
+ }
+ 
+-size_t ID3_Tag::Link(const char *fileInfo, bool parseID3v1, bool parseLyrics3)
++size_t ID3_Tag::Link(const char *fileInfo, my_bool parseID3v1, my_bool parseLyrics3)
+ {
+   return _impl->Link(fileInfo, parseID3v1, parseLyrics3);
+ }
+ 
+-void ID3_Tag::SetCompression(bool b)
++void ID3_Tag::SetCompression(my_bool b)
+ {
+   ;
+ }
+ 
+-bool ID3_Tag::HasLyrics() const
++my_bool ID3_Tag::HasLyrics() const
+ {
+   return this->HasTagType(ID3TT_LYRICS);
+ }
+-bool ID3_Tag::HasV2Tag()  const
++my_bool ID3_Tag::HasV2Tag()  const
+ {
+   return this->HasTagType(ID3TT_ID3V2);
+ }
+-bool ID3_Tag::HasV1Tag()  const
++my_bool ID3_Tag::HasV1Tag()  const
+ {
+   return this->HasTagType(ID3TT_ID3V1);
+ }
+diff '--color=auto' -uNr a/src/tag_file.cpp b/src/tag_file.cpp
+--- a/src/tag_file.cpp	2025-01-30 14:02:28.881443961 -0000
++++ b/src/tag_file.cpp	2025-01-30 14:01:53.590000827 -0000
+@@ -114,7 +114,7 @@
+ 
+ #endif
+ 
+-size_t ID3_TagImpl::Link(const char *fileInfo, bool parseID3v1, bool parseLyrics3)
++size_t ID3_TagImpl::Link(const char *fileInfo, my_bool parseID3v1, my_bool parseLyrics3)
+ {
+   flags_t tt = ID3TT_NONE;
+   if (parseID3v1)
+diff '--color=auto' -uNr a/src/tag_impl.cpp b/src/tag_impl.cpp
+--- a/src/tag_impl.cpp	2003-03-02 00:23:00.000000000 -0000
++++ b/src/tag_impl.cpp	2025-01-30 14:01:53.590000827 -0000
+@@ -164,7 +164,7 @@
+   }
+ }
+ 
+-bool ID3_TagImpl::AttachFrame(ID3_Frame *frame)
++my_bool ID3_TagImpl::AttachFrame(ID3_Frame *frame)
+ {
+ 
+   if (NULL == frame)
+@@ -199,9 +199,9 @@
+ }
+ 
+ 
+-bool ID3_TagImpl::HasChanged() const
++my_bool ID3_TagImpl::HasChanged() const
+ {
+-  bool changed = _changed;
++  my_bool changed = _changed;
+ 
+   if (! changed)
+   {
+@@ -222,9 +222,9 @@
+   return changed;
+ }
+ 
+-bool ID3_TagImpl::SetSpec(ID3_V2Spec spec)
++my_bool ID3_TagImpl::SetSpec(ID3_V2Spec spec)
+ {
+-  bool changed = _hdr.SetSpec(spec);
++  my_bool changed = _hdr.SetSpec(spec);
+   _changed = _changed || changed;
+   return changed;
+ }
+@@ -234,43 +234,43 @@
+   return _hdr.GetSpec();
+ }
+ 
+-bool ID3_TagImpl::SetUnsync(bool b)
++my_bool ID3_TagImpl::SetUnsync(my_bool b)
+ {
+-  bool changed = _hdr.SetUnsync(b);
++  my_bool changed = _hdr.SetUnsync(b);
+   _changed = changed || _changed;
+   return changed;
+ }
+ 
+-bool ID3_TagImpl::SetExtended(bool ext)
++my_bool ID3_TagImpl::SetExtended(my_bool ext)
+ {
+-  bool changed = _hdr.SetExtended(ext);
++  my_bool changed = _hdr.SetExtended(ext);
+   _changed = changed || _changed;
+   return changed;
+ }
+ 
+-bool ID3_TagImpl::SetExperimental(bool exp)
++my_bool ID3_TagImpl::SetExperimental(my_bool exp)
+ {
+-  bool changed = _hdr.SetExperimental(exp);
++  my_bool changed = _hdr.SetExperimental(exp);
+   _changed = changed || _changed;
+   return changed;
+ }
+ 
+-bool ID3_TagImpl::GetUnsync() const
++my_bool ID3_TagImpl::GetUnsync() const
+ {
+   return _hdr.GetUnsync();
+ }
+ 
+-bool ID3_TagImpl::GetExtended() const
++my_bool ID3_TagImpl::GetExtended() const
+ {
+   return _hdr.GetExtended();
+ }
+ 
+-bool ID3_TagImpl::GetExperimental() const
++my_bool ID3_TagImpl::GetExperimental() const
+ {
+   return _hdr.GetExperimental();
+ }
+ 
+-bool ID3_TagImpl::GetFooter() const
++my_bool ID3_TagImpl::GetFooter() const
+ {
+   return _hdr.GetFooter();
+ }
+@@ -288,9 +288,9 @@
+     return 0;;
+ }
+ 
+-bool ID3_TagImpl::SetPadding(bool pad)
++my_bool ID3_TagImpl::SetPadding(my_bool pad)
+ {
+-  bool changed = (_is_padded != pad);
++  my_bool changed = (_is_padded != pad);
+   _changed = changed || _changed;
+   if (changed)
+   {
+diff '--color=auto' -uNr a/src/tag_impl.h b/src/tag_impl.h
+--- a/src/tag_impl.h	2003-03-02 00:23:00.000000000 -0000
++++ b/src/tag_impl.h	2025-01-30 14:01:53.590000827 -0000
+@@ -44,12 +44,12 @@
+   {
+     namespace v1
+     {
+-      bool parse(ID3_TagImpl&, ID3_Reader&);
++      my_bool parse(ID3_TagImpl&, ID3_Reader&);
+       void render(ID3_Writer&, const ID3_TagImpl&);
+     };
+     namespace v2
+     {
+-      bool parse(ID3_TagImpl& tag, ID3_Reader& rdr);
++      my_bool parse(ID3_TagImpl& tag, ID3_Reader& rdr);
+       void render(ID3_Writer& writer, const ID3_TagImpl& tag);
+     };
+   };
+@@ -57,16 +57,16 @@
+   {
+     namespace v1
+     {
+-      bool parse(ID3_TagImpl&, ID3_Reader&);
++      my_bool parse(ID3_TagImpl&, ID3_Reader&);
+     };
+     namespace v2
+     {
+-      bool parse(ID3_TagImpl&, ID3_Reader&);
++      my_bool parse(ID3_TagImpl&, ID3_Reader&);
+     };
+   };
+   namespace mm
+   {
+-    bool parse(ID3_TagImpl&, ID3_Reader&);
++    my_bool parse(ID3_TagImpl&, ID3_Reader&);
+   };
+ };
+ 
+@@ -82,25 +82,25 @@
+   virtual ~ID3_TagImpl();
+ 
+   void       Clear();
+-  bool       HasChanged() const;
+-  void       SetChanged(bool b) { _changed = b; }
++  my_bool       HasChanged() const;
++  void       SetChanged(my_bool b) { _changed = b; }
+   size_t     Size() const;
+ 
+-  bool       SetUnsync(bool);
+-  bool       SetExtended(bool);
+-  bool       SetExperimental(bool);
+-  bool       SetPadding(bool);
+-
+-  bool       GetUnsync() const;
+-  bool       GetExtended() const;
+-  bool       GetExperimental() const;
+-  bool       GetFooter() const;
++  my_bool       SetUnsync(my_bool);
++  my_bool       SetExtended(my_bool);
++  my_bool       SetExperimental(my_bool);
++  my_bool       SetPadding(my_bool);
++
++  my_bool       GetUnsync() const;
++  my_bool       GetExtended() const;
++  my_bool       GetExperimental() const;
++  my_bool       GetFooter() const;
+ 
+   size_t     GetExtendedBytes() const;
+ 
+   void       AddFrame(const ID3_Frame&);
+   void       AddFrame(const ID3_Frame*);
+-  bool       AttachFrame(ID3_Frame*);
++  my_bool       AttachFrame(ID3_Frame*);
+   ID3_Frame* RemoveFrame(const ID3_Frame *);
+ 
+   size_t     Link(const char *fileInfo, flags_t = (flags_t) ID3TT_ALL);
+@@ -121,9 +121,9 @@
+   size_t     NumFrames() const { return _frames.size(); }
+   ID3_TagImpl&   operator=( const ID3_Tag & );
+ 
+-  bool       HasTagType(ID3_TagType tt) const { return _file_tags.test(tt); }
++  my_bool       HasTagType(ID3_TagType tt) const { return _file_tags.test(tt); }
+   ID3_V2Spec GetSpec() const;
+-  bool       SetSpec(ID3_V2Spec);
++  my_bool       SetSpec(ID3_V2Spec);
+ 
+   static size_t IsV2Tag(ID3_Reader&);
+ 
+@@ -136,12 +136,12 @@
+ 
+   /* Deprecated! */
+   void       AddNewFrame(ID3_Frame* f) { this->AttachFrame(f); }
+-  size_t     Link(const char *fileInfo, bool parseID3v1, bool parseLyrics3);
+-  void       SetCompression(bool) { ; }
++  size_t     Link(const char *fileInfo, my_bool parseID3v1, my_bool parseLyrics3);
++  void       SetCompression(my_bool) { ; }
+   void       AddFrames(const ID3_Frame *, size_t);
+-  bool       HasLyrics() const { return this->HasTagType(ID3TT_LYRICS); }
+-  bool       HasV2Tag()  const { return this->HasTagType(ID3TT_ID3V2); }
+-  bool       HasV1Tag()  const { return this->HasTagType(ID3TT_ID3V1); }
++  my_bool       HasLyrics() const { return this->HasTagType(ID3TT_LYRICS); }
++  my_bool       HasV2Tag()  const { return this->HasTagType(ID3TT_ID3V2); }
++  my_bool       HasV1Tag()  const { return this->HasTagType(ID3TT_ID3V1); }
+   size_t     PaddingSize(size_t) const;
+ 
+ protected:
+@@ -155,19 +155,19 @@
+ 
+ private:
+   ID3_TagHeader _hdr;          // information relevant to the tag header
+-  bool       _is_padded;       // add padding to tags?
++  my_bool       _is_padded;       // add padding to tags?
+ 
+   Frames     _frames;
+ 
+   mutable const_iterator   _cursor;  // which frame in list are we at
+-  mutable bool       _changed; // has tag changed since last parse or render?
++  mutable my_bool       _changed; // has tag changed since last parse or render?
+ 
+   // file-related member variables
+   dami::String _file_name;       // name of the file we are linked to
+   size_t     _file_size;       // the size of the file (without any tag(s))
+   size_t     _prepended_bytes; // number of tag bytes at start of file
+   size_t     _appended_bytes;  // number of tag bytes at end of file
+-  bool       _is_file_writable;// is the associated file (via Link) writable?
++  my_bool       _is_file_writable;// is the associated file (via Link) writable?
+   ID3_Flags  _tags_to_parse;   // which tag types should attempt to be parsed
+   ID3_Flags  _file_tags;       // which tag types does the file contain
+   Mp3Info    *_mp3_info;   // class used to retrieve _mp3_header
+diff '--color=auto' -uNr a/src/tag_parse.cpp b/src/tag_parse.cpp
+--- a/src/tag_parse.cpp	2003-03-02 00:23:00.000000000 -0000
++++ b/src/tag_parse.cpp	2025-01-30 14:01:53.590000827 -0000
+@@ -41,7 +41,7 @@
+ 
+ namespace
+ {
+-  bool parseFrames(ID3_TagImpl& tag, ID3_Reader& rdr)
++  my_bool parseFrames(ID3_TagImpl& tag, ID3_Reader& rdr)
+   {
+     ID3_Reader::pos_type beg = rdr.getCur();
+     io::ExitTrigger et(rdr, beg);
+@@ -56,7 +56,7 @@
+       last_pos = rdr.getCur();
+       ID3_Frame* f = new ID3_Frame;
+       f->SetSpec(tag.GetSpec());
+-      bool goodParse = f->Parse(rdr);
++      my_bool goodParse = f->Parse(rdr);
+       frameSize = rdr.getCur() - last_pos;
+       ID3D_NOTICE( "id3::v2::parseFrames(): frameSize = " << frameSize );
+       totalSize += frameSize;
+@@ -134,7 +134,7 @@
+   }
+ };
+ 
+-bool id3::v2::parse(ID3_TagImpl& tag, ID3_Reader& reader)
++my_bool id3::v2::parse(ID3_TagImpl& tag, ID3_Reader& reader)
+ {
+   ID3_Reader::pos_type beg = reader.getCur();
+   io::ExitTrigger et(reader);
+diff '--color=auto' -uNr a/src/tag_parse_lyrics3.cpp b/src/tag_parse_lyrics3.cpp
+--- a/src/tag_parse_lyrics3.cpp	2003-03-02 00:23:00.000000000 -0000
++++ b/src/tag_parse_lyrics3.cpp	2025-01-30 14:01:53.590000827 -0000
+@@ -52,14 +52,14 @@
+     return readIntegerString(reader, reader.remainingBytes());
+   }
+ 
+-  bool isTimeStamp(ID3_Reader& reader)
++  my_bool isTimeStamp(ID3_Reader& reader)
+   {
+     ID3_Reader::pos_type cur = reader.getCur();
+     if (reader.getEnd() < cur + 7)
+     {
+       return false;
+     }
+-    bool its = ('[' == reader.readChar() &&
++    my_bool its = ('[' == reader.readChar() &&
+                 isdigit(reader.readChar()) && isdigit(reader.readChar()) &&
+                 ':' == reader.readChar() &&
+                 isdigit(reader.readChar()) && isdigit(reader.readChar()) &&
+@@ -83,7 +83,7 @@
+     return sec * 1000;
+   }
+ 
+-  bool findText(ID3_Reader& reader, String text)
++  my_bool findText(ID3_Reader& reader, String text)
+   {
+     if (text.empty())
+     {
+@@ -121,7 +121,7 @@
+   {
+     while (!reader.atEnd())
+     {
+-      bool lf = false;
++      my_bool lf = false;
+       size_t ms = 0;
+       size_t count = 0;
+       while (isTimeStamp(reader))
+@@ -168,7 +168,7 @@
+   }
+ };
+ 
+-bool lyr3::v1::parse(ID3_TagImpl& tag, ID3_Reader& reader)
++my_bool lyr3::v1::parse(ID3_TagImpl& tag, ID3_Reader& reader)
+ {
+   io::ExitTrigger et(reader);
+   ID3_Reader::pos_type end = reader.getCur();
+@@ -218,8 +218,8 @@
+   return true;
+ }
+ 
+-//bool parse(TagImpl& tag, ID3_Reader& reader)
+-bool lyr3::v2::parse(ID3_TagImpl& tag, ID3_Reader& reader)
++//my_bool parse(TagImpl& tag, ID3_Reader& reader)
++my_bool lyr3::v2::parse(ID3_TagImpl& tag, ID3_Reader& reader)
+ {
+   io::ExitTrigger et(reader);
+   ID3_Reader::pos_type end = reader.getCur();
+@@ -266,7 +266,7 @@
+     return false;
+   }
+ 
+-  bool has_time_stamps = false;
++  my_bool has_time_stamps = false;
+ 
+   ID3_Frame* lyr_frame = NULL;
+ 
+diff '--color=auto' -uNr a/src/tag_parse_musicmatch.cpp b/src/tag_parse_musicmatch.cpp
+--- a/src/tag_parse_musicmatch.cpp	2003-03-02 00:23:00.000000000 -0000
++++ b/src/tag_parse_musicmatch.cpp	2025-01-30 14:01:53.590000827 -0000
+@@ -112,7 +112,7 @@
+   }
+ };
+   
+-bool mm::parse(ID3_TagImpl& tag, ID3_Reader& rdr)
++my_bool mm::parse(ID3_TagImpl& tag, ID3_Reader& rdr)
+ {
+   io::ExitTrigger et(rdr);
+   ID3_Reader::pos_type end = rdr.getCur();
+diff '--color=auto' -uNr a/src/tag_parse_v1.cpp b/src/tag_parse_v1.cpp
+--- a/src/tag_parse_v1.cpp	2003-03-02 00:23:00.000000000 -0000
++++ b/src/tag_parse_v1.cpp	2025-01-30 14:01:53.598000700 -0000
+@@ -32,7 +32,7 @@
+ 
+ using namespace dami;
+ 
+-bool id3::v1::parse(ID3_TagImpl& tag, ID3_Reader& reader)
++my_bool id3::v1::parse(ID3_TagImpl& tag, ID3_Reader& reader)
+ {
+   io::ExitTrigger et(reader);
+   
+diff '--color=auto' -uNr a/src/utils.cpp b/src/utils.cpp
+--- a/src/utils.cpp	2003-03-02 00:23:00.000000000 -0000
++++ b/src/utils.cpp	2025-01-30 14:01:53.590000827 -0000
+@@ -230,7 +230,7 @@
+ 
+ namespace
+ {
+-  bool exists(String name)
++  my_bool exists(String name)
+   {
+     ifstream file(name.c_str(), NOCREATE);
+     return file.is_open() != 0;
+diff '--color=auto' -uNr a/include/id3/id3lib_strings.h b/include/id3/id3lib_strings.h
+--- a/include/id3/id3lib_strings.h	2025-01-30 14:28:46.548624168 -0000
++++ b/include/id3/id3lib_strings.h	2025-01-30 14:30:12.883263552 -0000
+@@ -31,6 +31,7 @@
+ 
+ #include <string>
+ #include <cstring>
++#include "id3/globals.h" //has my_bool
+ 
+ #if (defined(__GNUC__) && (__GNUC__ >= 3) || (defined(_MSC_VER) && _MSC_VER > 1000))
+ namespace std

diff --git a/media-libs/id3lib/id3lib-3.8.3-r11.ebuild b/media-libs/id3lib/id3lib-3.8.3-r11.ebuild
new file mode 100644
index 000000000000..b15873edd43b
--- /dev/null
+++ b/media-libs/id3lib/id3lib-3.8.3-r11.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="Id3 library for C/C++"
+HOMEPAGE="https://id3lib.sourceforge.net/"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${P/_}.tar.gz"
+S="${WORKDIR}/${P/_}"
+
+LICENSE="LGPL-2.1+"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc static-libs"
+RESTRICT="test"
+
+RDEPEND="sys-libs/zlib:="
+DEPEND="${RDEPEND}"
+BDEPEND="doc? ( app-text/doxygen )"
+
+DOCS=( AUTHORS ChangeLog HISTORY README THANKS TODO )
+
+PATCHES=(
+	"${FILESDIR}"/${P}-zlib.patch
+	"${FILESDIR}"/${P}-test_io.patch
+	"${FILESDIR}"/${P}-autoconf259.patch
+	"${FILESDIR}"/${P}-doxyinput.patch
+	"${FILESDIR}"/${P}-unicode16.patch
+	"${FILESDIR}"/${P}-gcc-4.3.patch
+	"${FILESDIR}"/${P}-missing_nullpointer_check.patch
+	"${FILESDIR}"/${P}-security.patch
+	"${FILESDIR}"/${P}-vbr-stack-smashing.patch # bug 398571
+	"${FILESDIR}"/${P}-configure-clang.patch
+	"${FILESDIR}"/${P}-fix-c23.patch
+)
+
+src_prepare() {
+	default
+
+	sed -i 's:AM_CONFIG_HEADER:AC_CONFIG_HEADERS:' {.,zlib}/configure.in || die
+
+	AT_M4DIR="${S}"/m4 eautoreconf
+}
+
+src_configure() {
+	econf \
+		--cache-file="${S}"/config.cache \
+		$(use_enable static-libs static)
+}
+
+src_compile() {
+	default
+
+	if use doc; then
+		pushd doc >/dev/null || die
+		doxygen Doxyfile || die
+		popd >/dev/null || die
+	fi
+}
+
+src_install() {
+	use doc && local HTML_DOCS=( doc/. )
+	default
+	find "${D}" -name '*.la' -delete || die
+}


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: media-libs/id3lib/, media-libs/id3lib/files/
@ 2025-02-18 21:53 Sam James
  0 siblings, 0 replies; 4+ messages in thread
From: Sam James @ 2025-02-18 21:53 UTC (permalink / raw
  To: gentoo-commits

commit:     aed12edb041378de1ccdf9c041785e9e6c2b0b54
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Tue Feb 18 21:40:55 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Feb 18 21:53:16 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=aed12edb

media-libs/id3lib: further (non-)C23 fixes

My 5b0d1e373dcd8c4f79735d033d205a6f36698c59 fix was nearly there but
I'd forgot about one thing that I even remember considering: the C (but not C++)
headers need to be changed to use my_bool. The C++ ones should be fine as they
would've worked before.

Bug: https://bugs.gentoo.org/949086
Bug: https://bugs.gentoo.org/949814
Signed-off-by: Sam James <sam <AT> gentoo.org>

 media-libs/id3lib/files/id3lib-3.8.3-fix-c23.patch | 58 ++++++++++++++++++----
 ...ib-3.8.3-r11.ebuild => id3lib-3.8.3-r12.ebuild} |  0
 2 files changed, 49 insertions(+), 9 deletions(-)

diff --git a/media-libs/id3lib/files/id3lib-3.8.3-fix-c23.patch b/media-libs/id3lib/files/id3lib-3.8.3-fix-c23.patch
index 17f59eab4da1..ed243bc72f99 100644
--- a/media-libs/id3lib/files/id3lib-3.8.3-fix-c23.patch
+++ b/media-libs/id3lib/files/id3lib-3.8.3-fix-c23.patch
@@ -19,12 +19,55 @@ C++ always had "good _Bool-as-bool", unfortunately: typedef int my_bool.
 
 Bug: https://bugs.gentoo.org/949086
 Signed-off-by: Sam James <sam@gentoo.org>
----
- include/id3/globals.h | 25 ++++++++++++++++---------
- 1 file changed, 16 insertions(+), 9 deletions(-)
-
-diff --git a/include/id3/globals.h b/include/id3/globals.h
-index 5d8fa20..69c02b4 100644
+--- a/include/id3.h
++++ b/include/id3.h
+@@ -47,12 +47,12 @@ extern "C"
+   ID3_C_EXPORT ID3Tag*              CCONV ID3Tag_New                  (void);
+   ID3_C_EXPORT void                 CCONV ID3Tag_Delete               (ID3Tag *tag);
+   ID3_C_EXPORT void                 CCONV ID3Tag_Clear                (ID3Tag *tag);
+-  ID3_C_EXPORT bool                 CCONV ID3Tag_HasChanged           (const ID3Tag *tag);
+-  ID3_C_EXPORT void                 CCONV ID3Tag_SetUnsync            (ID3Tag *tag, bool unsync);
+-  ID3_C_EXPORT void                 CCONV ID3Tag_SetExtendedHeader    (ID3Tag *tag, bool ext);
+-  ID3_C_EXPORT void                 CCONV ID3Tag_SetPadding           (ID3Tag *tag, bool pad);
++  ID3_C_EXPORT my_bool                 CCONV ID3Tag_HasChanged           (const ID3Tag *tag);
++  ID3_C_EXPORT void                 CCONV ID3Tag_SetUnsync            (ID3Tag *tag, my_bool unsync);
++  ID3_C_EXPORT void                 CCONV ID3Tag_SetExtendedHeader    (ID3Tag *tag, my_bool ext);
++  ID3_C_EXPORT void                 CCONV ID3Tag_SetPadding           (ID3Tag *tag, my_bool pad);
+   ID3_C_EXPORT void                 CCONV ID3Tag_AddFrame             (ID3Tag *tag, const ID3Frame *frame);
+-  ID3_C_EXPORT bool                 CCONV ID3Tag_AttachFrame          (ID3Tag *tag, ID3Frame *frame);
++  ID3_C_EXPORT my_bool                 CCONV ID3Tag_AttachFrame          (ID3Tag *tag, ID3Frame *frame);
+   ID3_C_EXPORT void                 CCONV ID3Tag_AddFrames            (ID3Tag *tag, const ID3Frame *frames, size_t num);
+   ID3_C_EXPORT ID3Frame*            CCONV ID3Tag_RemoveFrame          (ID3Tag *tag, const ID3Frame *frame);
+   ID3_C_EXPORT ID3_Err              CCONV ID3Tag_Parse                (ID3Tag *tag, const uchar header[ID3_TAGHEADERSIZE], const uchar *buffer);
+@@ -66,7 +66,7 @@ extern "C"
+   ID3_C_EXPORT ID3Frame*            CCONV ID3Tag_FindFrameWithASCII   (const ID3Tag *tag, ID3_FrameID id, ID3_FieldID fld, const char *data);
+   ID3_C_EXPORT ID3Frame*            CCONV ID3Tag_FindFrameWithUNICODE (const ID3Tag *tag, ID3_FrameID id, ID3_FieldID fld, const unicode_t *data);
+   ID3_C_EXPORT size_t               CCONV ID3Tag_NumFrames            (const ID3Tag *tag);
+-  ID3_C_EXPORT bool                 CCONV ID3Tag_HasTagType           (const ID3Tag *tag, ID3_TagType);
++  ID3_C_EXPORT my_bool                 CCONV ID3Tag_HasTagType           (const ID3Tag *tag, ID3_TagType);
+   ID3_C_EXPORT ID3TagIterator*      CCONV ID3Tag_CreateIterator       (ID3Tag *tag);
+   ID3_C_EXPORT ID3TagConstIterator* CCONV ID3Tag_CreateConstIterator  (const ID3Tag *tag);
+ 
+@@ -83,8 +83,8 @@ extern "C"
+   ID3_C_EXPORT void                 CCONV ID3Frame_SetID              (ID3Frame *frame, ID3_FrameID id);
+   ID3_C_EXPORT ID3_FrameID          CCONV ID3Frame_GetID              (const ID3Frame *frame);
+   ID3_C_EXPORT ID3Field*            CCONV ID3Frame_GetField           (const ID3Frame *frame, ID3_FieldID name);
+-  ID3_C_EXPORT void                 CCONV ID3Frame_SetCompression     (ID3Frame *frame, bool comp);
+-  ID3_C_EXPORT bool                 CCONV ID3Frame_GetCompression     (const ID3Frame *frame);
++  ID3_C_EXPORT void                 CCONV ID3Frame_SetCompression     (ID3Frame *frame, my_bool comp);
++  ID3_C_EXPORT my_bool                 CCONV ID3Frame_GetCompression     (const ID3Frame *frame);
+ 
+   /* field wrappers */
+   ID3_C_EXPORT void                 CCONV ID3Field_Clear              (ID3Field *field);
+@@ -116,7 +116,7 @@ extern "C"
+   ID3_C_EXPORT flags_t              CCONV ID3FrameInfo_FieldFlags     (ID3_FrameID frameid, int fieldnum);
+ 
+   /* Deprecated */
+-  ID3_C_EXPORT void                 CCONV ID3Tag_SetCompression       (ID3Tag *tag, bool comp);
++  ID3_C_EXPORT void                 CCONV ID3Tag_SetCompression       (ID3Tag *tag, my_bool comp);
+ 
+ #ifdef __cplusplus
+ }
 --- a/include/id3/globals.h
 +++ b/include/id3/globals.h
 @@ -82,12 +82,19 @@
@@ -66,6 +109,3 @@ index 5d8fa20..69c02b4 100644
  };
  
  #define ID3_NR_OF_V1_GENRES 148
--- 
-2.48.1
-

diff --git a/media-libs/id3lib/id3lib-3.8.3-r11.ebuild b/media-libs/id3lib/id3lib-3.8.3-r12.ebuild
similarity index 100%
rename from media-libs/id3lib/id3lib-3.8.3-r11.ebuild
rename to media-libs/id3lib/id3lib-3.8.3-r12.ebuild


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2025-02-18 21:53 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-02-13 22:45 [gentoo-commits] repo/gentoo:master commit in: media-libs/id3lib/, media-libs/id3lib/files/ Sam James
  -- strict thread matches above, loose matches on Subject: below --
2025-02-18 21:53 Sam James
2025-02-04 15:47 Sam James
2022-12-18  8:12 Miroslav Šulc

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox