Subject: | A patch for the FreeBSD iconv failure, all tests pass! |
Date: | Sun, 6 Jan 2013 14:50:42 -0800 (PST) |
To: | "bug-audio-taglib [...] rt.cpan.org" <bug-audio-taglib [...] rt.cpan.org> |
From: | Festus Hagen <festushagen2002 [...] yahoo.com> |
Diff file is included as 1 attachment due to my use of Yahoo's mail editor and it's wacky ways ...
Please refer to the attached diff file for patching, a brief explanation follows.
I am far from a character encoding expert, a bit over nadda ... buggerd this out binary and realized the bytes were backwards when testing with UTF-16BE, changed to UTF-16LE and it worked!
Thus, I can only assume Perl uses UTF-16LE internally, Taglib states it uses UTF-16BE internally.
As I understand it WCHAR_T is system dependant ...
Tested on WinXP(32)/Win7(64) and FreeBSD-8.2.
3 files affected:
xs/TITERATOR.xs
xs/stringiterator.xs
xs/tstring.xs
Each file is a bit different (refer to attached diff), the basic jist is to replace iconv_open(...,"WCHAR_T") with iconv_open(...,"UTF-16LE")
The following EXAMPLE is from xs/TITERATOR.xs.
- iconv_t codec = iconv_open("UTF8", "WCHAR_T");
+ /* Festus Hagen 1.62.fh8 - rt.cpan.org # */
+ /* WCHAR_T is system dependent. */
+ /* Taglib uses UTF-16BE internally */
+ /* UTF-16LE is what Perl uses internally? */
+ /*iconv_t codec = iconv_open("UTF8", "WCHAR_T");*/
+ iconv_t codec = iconv_open("UTF8", "UTF-16LE");
-Enjoy
fh : )_~
Message body is not shown because sender requested not to inline it.