Fix a UTF-16 writing bug. Patch from the id3lib bug tracking system.

Submitted by Dennis Suhonin, thanks.

ok naddy@
This commit is contained in:
bernd 2007-05-20 13:02:16 +00:00
parent eed79c1601
commit d901191f11
5 changed files with 34 additions and 15 deletions

View File

@ -1,10 +1,10 @@
# $OpenBSD: Makefile,v 1.12 2006/10/28 10:30:41 espie Exp $
# $OpenBSD: Makefile,v 1.13 2007/05/20 13:02:16 bernd Exp $
COMMENT= "library for manipulating ID3v1 and ID3v2 tags"
VERSION= 3.8
DISTNAME= id3lib-${VERSION}.3
PKGNAME= ${DISTNAME}p1
PKGNAME= ${DISTNAME}p2
CATEGORIES= audio
SHARED_LIBS += id3 4.0 # .3.8

View File

@ -0,0 +1,19 @@
$OpenBSD: patch-src_io_helpers_cpp,v 1.1 2007/05/20 13:02:16 bernd Exp $
* Patch from Spoon to fix UTF-16 writing bug
http://sourceforge.net/tracker/index.php?func=detail&aid=1016290&group_id=979&atid=300979
--- src/io_helpers.cpp.orig Sun Mar 2 01:23:00 2003
+++ src/io_helpers.cpp Wed May 16 23:09:58 2007
@@ -363,9 +363,10 @@ size_t io::writeUnicodeText(ID3_Writer& writer, String
// Write the BOM: 0xFEFF
unicode_t BOM = 0xFEFF;
writer.writeChars((const unsigned char*) &BOM, 2);
+ unsigned char *pdata = (unsigned char *) data.c_str();
for (size_t i = 0; i < size; i += 2)
{
- unicode_t ch = (data[i] << 8) | data[i+1];
+ unicode_t ch = (pdata[i] << 8) | pdata[i+1];
writer.writeChars((const unsigned char*) &ch, 2);
}
}

View File

@ -1,7 +1,7 @@
$OpenBSD: patch-src_tag_cpp,v 1.1 2004/01/05 13:53:35 espie Exp $
--- src/tag.cpp.orig 2004-01-05 03:47:13.000000000 +0100
+++ src/tag.cpp 2004-01-05 03:47:26.000000000 +0100
@@ -851,12 +851,14 @@ ID3_Frame* ID3_Tag::Find(ID3_FrameID id,
$OpenBSD: patch-src_tag_cpp,v 1.2 2007/05/20 13:02:16 bernd Exp $
--- src/tag.cpp.orig Sun Mar 2 01:23:00 2003
+++ src/tag.cpp Tue May 8 13:08:06 2007
@@ -851,12 +851,14 @@ ID3_Frame* ID3_Tag::Find(ID3_FrameID id, ID3_FieldID f
return _impl->Find(id, fld, str);
}

View File

@ -1,7 +1,7 @@
$OpenBSD: patch-src_tag_find_cpp,v 1.1 2004/01/05 13:53:35 espie Exp $
--- src/tag_find.cpp.orig 2004-01-05 03:45:43.000000000 +0100
+++ src/tag_find.cpp 2004-01-05 03:46:00.000000000 +0100
@@ -151,6 +151,7 @@ ID3_Frame *ID3_TagImpl::Find(ID3_FrameID
$OpenBSD: patch-src_tag_find_cpp,v 1.2 2007/05/20 13:02:16 bernd Exp $
--- src/tag_find.cpp.orig Sun Mar 2 01:23:00 2003
+++ src/tag_find.cpp Tue May 8 13:08:06 2007
@@ -151,6 +151,7 @@ ID3_Frame *ID3_TagImpl::Find(ID3_FrameID id, ID3_Field
return frame;
}
@ -9,7 +9,7 @@ $OpenBSD: patch-src_tag_find_cpp,v 1.1 2004/01/05 13:53:35 espie Exp $
ID3_Frame *ID3_TagImpl::Find(ID3_FrameID id, ID3_FieldID fldID, WString data) const
{
ID3_Frame *frame = NULL;
@@ -198,6 +199,7 @@ ID3_Frame *ID3_TagImpl::Find(ID3_FrameID
@@ -198,6 +199,7 @@ ID3_Frame *ID3_TagImpl::Find(ID3_FrameID id, ID3_Field
return frame;
}

View File

@ -1,6 +1,6 @@
$OpenBSD: patch-src_utils_cpp,v 1.1 2004/01/05 13:53:35 espie Exp $
--- src/utils.cpp.orig 2004-01-05 03:47:33.000000000 +0100
+++ src/utils.cpp 2004-01-05 03:47:47.000000000 +0100
$OpenBSD: patch-src_utils_cpp,v 1.2 2007/05/20 13:02:16 bernd Exp $
--- src/utils.cpp.orig Sun Mar 2 01:23:00 2003
+++ src/utils.cpp Tue May 8 13:08:06 2007
@@ -380,6 +380,7 @@ String dami::toString(uint32 val)
return text;
}
@ -9,7 +9,7 @@ $OpenBSD: patch-src_utils_cpp,v 1.1 2004/01/05 13:53:35 espie Exp $
WString dami::toWString(const unicode_t buf[], size_t len)
{
WString str;
@@ -391,4 +392,5 @@ WString dami::toWString(const unicode_t
@@ -391,4 +392,5 @@ WString dami::toWString(const unicode_t buf[], size_t
}
return str;
}