summaryrefslogtreecommitdiffstats
path: root/newlib
Commit message (Collapse)AuthorAgeFilesLines
...
* Add strerror_l prototype, change str[n]casecmp_l feature testsBrian Inglis2016-08-252-10/+15
| | | | | strerror_l prototype was missing. str[n]casecmp_l feature tests in string.h vs. strings.h were transposed.
* Avoid crash when calling __localeconv_l with __C_localeCorinna Vinschen2016-08-241-0/+3
| | | | | | | | | __C_locale is const. Thus, overwriting the lconv values in __localeconv_l will try to write to a R/O region. Given the lconv values in __C_locale are initialized, there's no reason to write them in __localeconv_l at all. Just return &__C_locale.lconv. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Use #if __GNU_VISIBLE, not #ifdef __GNU_VISIBLECorinna Vinschen2016-08-241-2/+2
| | | | | | sys/features.h always defines __GNU_VISIBLE, either as 0 or 1. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* strerror_l: Fix copy-and-paste typoEric Blake2016-08-231-1/+1
| | | | Signed-off-by: Eric Blake <eblake@redhat.com>
* Mention strerror_l in libc/string/strings.texCorinna Vinschen2016-08-231-1/+1
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Add __get_C_locale inline function and fix new locale code for !_MB_CAPABLE ↵Corinna Vinschen2016-08-235-6/+36
| | | | | | | | | | targets Only access "C" locale using the new __get_C_locale inline function. Enable __global_locale for !_MB_CAPABLE targets. Accommodate !_MB_CAPABLE targets in new locale code. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Implement GNU extension strptime_lCorinna Vinschen2016-08-232-39/+46
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Implement GNU extension wcsftime_lCorinna Vinschen2016-08-232-3/+6
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Implement missing POSIX-1.2008 function strerror_lCorinna Vinschen2016-08-231-1/+18
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Add missing declarations of str{n}casecmp_l to strings.h.Corinna Vinschen2016-08-231-0/+5
| | | | | | Per glibc, both funcs are defined as GNU visible in strings.h. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix stray closing braceCorinna Vinschen2016-08-231-1/+0
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Add/change a few #ifdef comments in locale code for clearnessCorinna Vinschen2016-08-234-13/+13
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Remove erroneous POSIX guards for reentrant locale functionsCorinna Vinschen2016-08-231-2/+0
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Reference __global_locale only via __get_global_locale.Corinna Vinschen2016-08-231-3/+3
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Remove extern declaration of __locale_cjk_lang in string/local.hCorinna Vinschen2016-08-211-4/+0
| | | | | | | Now that __locale_cjk_lang is an inline function in setlocale.h and setlocale.h is included, the declaration doesn't make sense. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Implement missing POSIX function nl_langinfo_lCorinna Vinschen2016-08-202-93/+58
| | | | | | | | | | | | Change nl_langinfo to nl_langinfo_l using locale given as argument. Remove outdated TRANSITION_PERIOD_HACK. The codeset is stored in the locale for quite some time now. For !MB_CAPABLE targets, just return "US_ASCII" as codeset. Implement nl_langinfo by calling nl_langinfo_l. Export nl_langinfo_l from Cygwin DLL and bump minor API version number. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Introduce __current_locale_charset/__locale_charsetCorinna Vinschen2016-08-203-5/+15
| | | | | | | | | The former __locale_charset always fetched the current locale's charset. We need the per-locale charset, too, in future. Rename __locale_charset to __current_locale_charset and change __locale_charset to take a locale_t as parameter. Accommodate througout. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix html buildThomas Preud'homme2016-08-191-67/+34
|
* Revert "Fix __getreent function for Cygwin"Corinna Vinschen2016-08-181-6/+1
| | | | | | | | | | | This reverts commit 4de8596. It worked around a problem which was actually introduced by patch 10a30e7 a few weeks ago. Rather than adding special code to the newlib version of __getreent, the followup patch reinstantiates the original, Cygwin-only implementation of __getreent. Signed-off-by: Corinna Vinschen <corinna@vinschen.de> Signed-off-by: Stefan Assmann <sassmann@redhat.com>
* Fix __getreent function for CygwinCorinna Vinschen2016-08-181-1/+6
| | | | | | | | | | | | | | | | | | So far the lib function __getreent always returned _impure_ptr. On Cygwin this is only correct after _impure_ptr got initialized. The inline function in include/cygwin/config.h always returns the right _reent ptr, though. After introducing per-thread locales, the __getreent function is called prior to initialization of _impure_ptr (from dll_crt0_0) to access the locale pointer, which leads to a crash. Fix the __getreent lib function for Cygwin to return the correct _reent pointer all the time. Rename inline function to __inline_getreent and introduce a macro __getreent calling the inline function. Change the lib function __getreent to call __inline_getreent on Cygwin. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fix pdf build failure wrt documentation of is*_l functionsThomas Preudhomme2016-08-174-104/+5
| | | | | | | | | | | make pdf on arm-none-eabi targets fails to build after the reorganization in baf0c9fcb56e5cf8f54357bf8d8646b51b236886 to fold is*_l documentation in their is* counterpart. This is due two issues: 1) newlib/libc/ctype/ctype.tex still including the def file for the long versions 2) missing angle brackets in .c files for some of is*_l functions This patch fixes the issues and allows make pdf to succeeds.
* Constify __locale_ctype_ptr and __locale_ctype_ptr_lCorinna Vinschen2016-08-172-8/+5
| | | | | | Remove _MB_CAPABLE-only _CONST in ctype.h Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Actually return pointers in locale categroy accessor functionsCorinna Vinschen2016-08-161-8/+8
| | | | | | Commit 6e7ce50 was broken. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Always fall back to __ctype_ptr__ in isXXX_l functions.Corinna Vinschen2016-08-161-1/+2
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Avoid "implicit declaration of function ‘strtold_l’" in wcstold.cCorinna Vinschen2016-08-161-0/+1
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Use era_info_t and alt_digits_t on _WANT_C99_TIME_FORMATS targets onlyCorinna Vinschen2016-08-161-2/+12
| | | | | | | Using era_info_t and alt_digits_t indiscriminately in strftime and strftime_l breaks targets not wanting C99 time formats. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Expose locale category accessor functions to non-__HAVE_LOCALE_INFO__ targets.Corinna Vinschen2016-08-161-1/+49
| | | | | | | | These functions are used from, e.g., nl_langinfo or strftime, so we need them for all targets. Just return "C" locale category for non-__HAVE_LOCALE_INFO__ targets. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* __localeconv_l: Always define locale variable lconvCorinna Vinschen2016-08-161-1/+1
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Don't use locale_t in internal headerCorinna Vinschen2016-08-162-2/+2
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Implement strto[dflu]_l/wcsto[dflu]_lCorinna Vinschen2016-08-1524-807/+999
| | | | | | | | | | Implement GNU extensions strtod_l, strtof_l, strtol_l, strtold_l, strtoll_l, strtoul_l, strtoull_l, wcstod_l, wcstof_l, wcstol_l, wcstold_l, wcstoll_l, wcstoul_l, wcstoull_l. Export from Cygwin, fix posix.xml. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Add documentation for duplocale, freelocale, newlocale, and uselocale.Corinna Vinschen2016-08-156-2/+209
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Fold documentation of is*_l funcs into documentation of non-l is* funcsCorinna Vinschen2016-08-1568-1209/+514
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* setlocale/localeconv are *not* POSIX-1.2008Corinna Vinschen2016-08-151-3/+3
| | | | Signed-off by: Corinna Vinschen <corinna@vinschen.de>
* setlocale.h: Fix current locale handling for !__HAVE_LOCALE_INFO__ targetsCorinna Vinschen2016-08-153-21/+14
| | | | Signed-off by: Corinna Vinschen <corinna@vinschen.de>
* __loadlocale: Set missing val when evaluating CP874Corinna Vinschen2016-08-151-0/+1
| | | | Signed-off by: Corinna Vinschen <corinna@vinschen.de>
* Fix multiple thinkos in newlocaleCorinna Vinschen2016-08-151-54/+59
| | | | | | | | | | | | | - Setting the categories strings in tmp_locale short-circuits __loadlocale. Use a new_categories array instead, just as in _setlocale_r. - If we have a base, copy over the *not* defined categories in category_mask in the first place. Rearrange loop accordingly. - Free base right in newlocale. Signed-off by: Corinna Vinschen <corinna@vinschen.de>
* Fix _REENT_INIT initialization of _localeCorinna Vinschen2016-08-151-3/+2
| | | | | | | Initializing a pointer to struct __locale_t to point to a string "C" is not such a bright idea in the long run... Signed-off by: Corinna Vinschen <corinna@vinschen.de>
* Fix typo in isalnum_l docCorinna Vinschen2016-08-151-1/+1
| | | | Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
* Get rid of LCID, reformat type definitions in setlocale.hCorinna Vinschen2016-08-151-90/+94
| | | | | | Definition of LCID results in build problems on 32 bit Cygwin Signed-off by: Corinna Vinschen <corinna@vinschen.de>
* Add sys/_locale.h header and fix up headersCorinna Vinschen2016-08-158-21/+35
| | | | Signed-off by: Corinna Vinschen <corinna@vinschen.de>
* Rename __get_locale_XXX to __get_XXX_locale to use unified naming schemeCorinna Vinschen2016-08-152-13/+37
| | | | Signed-off by: Corinna Vinschen <corinna@vinschen.de>
* Move lconv into struct __locale_t and implement __localeconv_lCorinna Vinschen2016-08-153-46/+63
| | | | | | Based on FreeBSD, just don't export symbol yet, unless required. Signed-off by: Corinna Vinschen <corinna@vinschen.de>
* Implement per-locale string functionsCorinna Vinschen2016-08-1524-100/+760
| | | | | | | | | | | | strcasecmp_l, strcoll_l, strncasecmp_l, strxfrm_l, wcscasecmp_l, wcscoll_l, wcstrncasecmp_l, wcstrxfrm_l, strftime_l. Add missing CHEWOUT_FILES from previous patch. TODO: strfmon_l. Signed-off by: Corinna Vinschen <corinna@vinschen.de>
* Implement all per-locale ctype functionsCorinna Vinschen2016-08-1539-36/+1944
| | | | Signed-off by: Corinna Vinschen <corinna@vinschen.de>
* Move localeconv, duplocale, freelocale, newlocale, uselocale into separate filesCorinna Vinschen2016-08-1511-334/+425
| | | | Signed-off by: Corinna Vinschen <corinna@vinschen.de>
* include/locale.h: Fix POSIX guardsCorinna Vinschen2016-08-151-2/+10
| | | | Signed-off by: Corinna Vinschen <corinna@vinschen.de>
* Remove non-working __part_load_locale function and any related codeCorinna Vinschen2016-08-1511-459/+9
| | | | | | Add TODO markers in case somebody wants to pick this up again Signed-off by: Corinna Vinschen <corinna@vinschen.de>
* Fix memory handling in functions called from loadlocaleCorinna Vinschen2016-08-156-23/+72
| | | | Signed-off by: Corinna Vinschen <corinna@vinschen.de>
* Implement newlocale, freelocale, duplocale, uselocaleCorinna Vinschen2016-08-152-5/+265
| | | | | | | | Add global const __C_locale for reference purposes. Bump Cygwin API minor number and DLL major version number to 2.6.0. Signed-off by: Corinna Vinschen <corinna@vinschen.de>
* Use __get_global_locale function where appropriateCorinna Vinschen2016-08-151-18/+22
| | | | Signed-off by: Corinna Vinschen <corinna@vinschen.de>