123456789101112131415161718192021222324252627282930313233343536373839 |
- Patch from 'Spoon' to fix issues with writing certain unicode characters
- --- a/ChangeLog
- +++ b/ChangeLog
- @@ -1,3 +1,8 @@
- +2006-02-17 Jerome Couderc
- +
- + * Patch from Spoon to fix UTF-16 writing bug
- + http://sourceforge.net/tracker/index.php?func=detail&aid=1016290&group_id=979&atid=300979
- +
- 2003-03-02 Sunday 17:38 Thijmen Klok <thijmen@id3lib.org>
-
- * THANKS (1.20): added more people
- --- a/src/io_helpers.cpp
- +++ b/src/io_helpers.cpp
- @@ -363,11 +363,22 @@
- // Write the BOM: 0xFEFF
- unicode_t BOM = 0xFEFF;
- writer.writeChars((const unsigned char*) &BOM, 2);
- + // Patch from Spoon : 2004-08-25 14:17
- + // http://sourceforge.net/tracker/index.php?func=detail&aid=1016290&group_id=979&atid=300979
- + // Wrong code
- + //for (size_t i = 0; i < size; i += 2)
- + //{
- + // unicode_t ch = (data[i] << 8) | data[i+1];
- + // writer.writeChars((const unsigned char*) &ch, 2);
- + //}
- + // Right code
- + 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);
- }
- + // End patch
- }
- return writer.getCur() - beg;
- }
|