summaryrefslogtreecommitdiff
path: root/src/locale/iconv.c
AgeCommit message (Collapse)AuthorLines
2013-08-05iconv support for legacy Korean encodingsRich Felker-0/+38
like for other character sets, stateful iso-2022 form is not supported yet but everything else should work. all charset aliases are treated the same, as Windows codepage 949, because reportedly the EUC-KR charset name is in widespread (mis?)usage in email and on the web for data which actually uses the extended characters outside the standard 93x94 grid. this could easily be changed if desired. the principle of this converter for handling the giant bulk of rare Hangul syllables outside of the standard KS X 1001 93x94 grid is the same as the GB18030 converter's treatment of non-explicitly-coded Unicode codepoints: sequences in the extension range are mapped to an integer index N, and the converter explicitly computes the Nth Hangul syllable not explicitly encoded in the character map. empirically, this requires at most 7 passes over the grid. this approach reduces the table size required for Korean legacy encodings from roughly 44k to 17k and should have minimal performance impact on real-world text conversions since the "slow" characters are rare. where it does have impact, the cost is merely a large constant time factor.
2013-06-26fix iconv conversion to legacy 8bit codepagesRich Felker-2/+2
this seems to have been a simple copy-and-paste error from the code for converting from legacy codepages.
2012-09-06use restrict everywhere it's required by c99 and/or posix 2008Rich Felker-1/+1
to deal with the fact that the public headers may be used with pre-c99 compilers, __restrict is used in place of restrict, and defined appropriately for any supported compiler. we also avoid the form [restrict] since older versions of gcc rejected it due to a bug in the original c99 standard, and instead use the form *restrict.
2012-06-18fix multiple iconv bugs reading utf-16/32 and wchar_tRich Felker-8/+8
2012-06-18fix iconv dest utf-16: unavailable chars must be replaced; EILSEQ is wrongRich Felker-2/+2
2012-06-18fix erroneous utf-16 encoding with surrogates in iconvRich Felker-0/+1
apparently this was never tested before.
2012-04-21fix major breakage in iconv, bogus rejecting of dest charsetsRich Felker-1/+1
2011-07-12gb18030 support in iconv (only from, not to)Rich Felker-2/+51
also support (and restrict to subsets) older chinese sets, and explicitly refuse to convert to cjk (since there's no code for it yet)
2011-07-12legacy japanese charset support in iconv (only from, not to)Rich Felker-0/+47
2011-07-12simplify iconv and support more legacy codepagesRich Felker-352/+54
2011-07-03iconv was not returning -1 on most failureRich Felker-0/+2
this broke most uses of iconv in real-world programs, especially glib's iconv wrappers.
2011-04-07fix breakage due to converting a return type to size_t in iconv...Rich Felker-1/+1
2011-03-25fix all implicit conversion between signed/unsigned pointersRich Felker-11/+11
sadly the C language does not specify any such implicit conversion, so this is not a matter of just fixing warnings (as gcc treats it) but actual errors. i would like to revisit a number of these changes and possibly revise the types used to reduce the number of casts required.
2011-02-13use a more-correct integer type, and silence 64-bit warnings as a bonusRich Felker-2/+2
2011-02-12initial check-in, version 0.5.0v0.5.0Rich Felker-0/+568