aboutsummaryrefslogtreecommitdiff
path: root/src/locale (follow)
Commit message (Expand)AuthorAgeFilesLines
* replace all remaining internal uses of pthread_self with __pthread_self•••prior to version 1.1.0, the difference between pthread_self (the public function) and __pthread_self (the internal macro or inline function) was that the former would lazily initialize the thread pointer if it was not already initialized, whereas the latter would crash in this case. since lazy initialization is no longer supported, use of pthread_self no longer makes sense; it simply generates larger, slower code. Rich Felker2014-06-101-1/+1
* add cp437 and cp850 to available iconv conversions•••perhaps some additional legacy DOS-era codepages would also be useful to have, but these are the ones for which there has been demand. the size of the diff is due to the fact that legacychars.h is updated in such a way that new characters are inserted into the table in unicode codepoint order; thus other mappings in codepages.h have changed to reflect the new table indices of their characters. Rich Felker2014-05-132-177/+206
* fix an overflow in wcsxfrm when n==0•••posix allows zero length destination Szabolcs Nagy2014-01-231-2/+4
* include cleanups: remove unused headers and add feature test macrosSzabolcs Nagy2013-12-123-3/+1
* remove duplicate includes from dynlink.c, strfmon.c and getaddrinfo.cSzabolcs Nagy2013-11-251-1/+0
* remove spurious tmp file present since initial git check-inRich Felker2013-08-171-390/+0
* add hkscs/big5-2003/eten extensions to iconv big5•••with these changes, the character set implemented as "big5" in musl is a pure superset of cp950, the canonical "big5", and agrees with the normative parts of Unicode. this means it has minor differences from both hkscs and big5-2003: - the range A2CC-A2CE maps to CJK ideographs rather than numerals, contrary to changes made in big5-2003. - C6CD maps to a CJK ideograph rather than its corresponding Kangxi radical character, contrary to changes made in hkscs. - F9FE maps to U+2593 rather than U+FFED. of these differences, none but the last are visually distinct, and the last is a character used purely for text-based graphics, not to convey linguistic content. should there be future demand for strict conformance to big5-2003 or hkscs mappings, the present charset aliases can be replaced with distinct variants. reportedly there are other non-standard big5 extensions in common use in Taiwan and perhaps elsewhere, which could also be added as layers on top of the existing big5 support. there may be additional characters which should be added to the hkscs table: the whatwg standard for big5 defines what appears to be a superset of hkscs. Rich Felker2013-08-173-977/+1433
* add Big5 charset support to iconv•••at this point, it is just the common base charset equivalent to Windows CP 950, with no further extensions. HKSCS and possibly other supersets will be added later. other aliases may need to be added too. Rich Felker2013-08-072-0/+1066
* iconv support for legacy Korean encodings•••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. Rich Felker2013-08-052-0/+678
* fix semantically incorrect use of LC_GLOBAL_LOCALE•••LC_GLOBAL_LOCALE refers to the global locale, controlled by setlocale, not the thread-local locale in effect which these functions should be using. neither LC_GLOBAL_LOCALE nor 0 has an argument to the *_l functions has behavior defined by the standard, but 0 is a more logical choice for requesting the callee to lookup the current locale. in the future I may move the current locale lookup the the caller (the non-_l-suffixed wrapper). at this point, all of the locale logic is dummied out, so no harm was done, but it should at least avoid misleading usage. Rich Felker2013-07-285-5/+5
* rework langinfo code for ABI compat and for use by time codeRich Felker2013-07-242-9/+8
* update strxfrm/wcsxfrm for future LC_COLLATE support and ABI compatRich Felker2013-07-244-14/+20
* add ABI compat aliases for a number of locale_t functionsRich Felker2013-07-248-0/+24
* prepare strcoll/wcscoll for LC_COLLATE support and add ABI symbolsRich Felker2013-07-244-15/+20
* move strftime_l into strftime.c and add __-prefixed version•••the latter is both for ABI purposes, and to facilitate eventually adding LC_TIME support. it's also nice to eliminate an extra source file. Rich Felker2013-07-241-7/+0
* fix iconv conversion to legacy 8bit codepages•••this seems to have been a simple copy-and-paste error from the code for converting from legacy codepages. Rich Felker2013-06-261-2/+2
* use restrict everywhere it's required by c99 and/or posix 2008•••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. Rich Felker2012-09-067-8/+8
* duplocale: don't crash when called with LC_GLOBAL_LOCALE•••posix has resolved to add this usage; for now, we just avoid writing anything to the new locale object since it's not used anyway. Rich Felker2012-06-201-1/+1
* fix localeconv values and implementation•••dynamic-allocation of the structure is not valid; it can crash an application if malloc fails. since localeconv is not specified to have failure conditions, the object needs to have static storage duration. need to review whether all the values are right or not still.. Rich Felker2012-06-191-15/+28
* fix multiple iconv bugs reading utf-16/32 and wchar_tRich Felker2012-06-181-8/+8
* fix iconv dest utf-16: unavailable chars must be replaced; EILSEQ is wrongRich Felker2012-06-181-2/+2
* fix erroneous utf-16 encoding with surrogates in iconv•••apparently this was never tested before. Rich Felker2012-06-181-0/+1
* fix major breakage in iconv, bogus rejecting of dest charsetsRich Felker2012-04-211-1/+1
* add strfmon_l variant (still mostly incomplete)Rich Felker2012-03-251-3/+27
* initial, very primitive strfmonRich Felker2012-03-211-0/+77
* add all missing wchar functions except floating point parsers•••these are mostly untested and adapted directly from corresponding byte string functions and similar. Rich Felker2012-03-012-0/+12
* more locale_t interfaces (string stuff) and header updates•••this should be everything except for some functions where the non-_l version isn't even implemented yet (mainly some non-ISO-C wcs* functions). Rich Felker2012-02-067-0/+48
* fix some omissions and mistakes in locale_t interface definitionsRich Felker2012-02-0613-13/+13
* add more of the locale_t interfaces, all dummied out to ignore the localeRich Felker2012-02-0618-0/+108
* gb18030 support in iconv (only from, not to)•••also support (and restrict to subsets) older chinese sets, and explicitly refuse to convert to cjk (since there's no code for it yet) Rich Felker2011-07-122-2/+1887
* legacy japanese charset support in iconv (only from, not to)Rich Felker2011-07-122-0/+597
* simplify iconv and support more legacy codepagesRich Felker2011-07-123-352/+331
* iconv was not returning -1 on most failure•••this broke most uses of iconv in real-world programs, especially glib's iconv wrappers. Rich Felker2011-07-031-0/+2
* implement uselocale function (minimal)Rich Felker2011-05-301-0/+10
* fix breakage due to converting a return type to size_t in iconv...Rich Felker2011-04-071-1/+1
* fix nl_langinfo to actually use the existing, correct internal versionRich Felker2011-04-032-15/+5
* fix all implicit conversion between signed/unsigned pointers•••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. Rich Felker2011-03-251-11/+11
* use a more-correct integer type, and silence 64-bit warnings as a bonusRich Felker2011-02-131-2/+2
* initial check-in, version 0.5.0Rich Felker2011-02-1231-0/+1292