Skip Menu |

This queue is for tickets about the Audio-TagLib CPAN distribution.

Report information
The Basics
Id: 82529
Status: resolved
Priority: 0/
Queue: Audio-TagLib

People
Owner: GLEACH [...] cpan.org
Requestors: festushagen2002 [...] yahoo.com
Cc:
AdminCc:

Bug Information
Severity: Important
Broken in: 1.62
Fixed in: 1.63



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.