|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
commit f5eee5c72b2ab56f3faf4f46729fe82805efde68
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
Author: Joseph Myers <joseph@codesourcery.com>
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
Date: Mon Nov 23 08:50:53 2015 +0000
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
Fix strtol in Turkish locales (bug 19242).
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
The implementations of strtol and related functions use
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
locale-specific conversions to upper case before determining whether a
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
character is a valid letter in the argument. This means that in
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
Turkish locales such as tr_TR.UTF-8 and tr_TR.ISO-8859-9, "i" is
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
interpreted as not being a valid number, when if the base passed to
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
strtol is 19 or more it should be interpreted as the number 18.
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
ISO C explicitly says "The letters from a (or A) through z (or Z) are
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
ascribed the values 10 through 35", so clearly intends the standard
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
ASCII letters (otherwise you wouldn't generally have exactly 26
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
letters to ascribe such values) (whereas white-space must be
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
identified according to the locale). In particular, 'i' and 'I' must
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
be understood to be in that sequence.
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
This patch makes the code do the case conversions and classification
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
in the C locale; the user's locale remains used for whitespace testing
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
(explicitly correct according to ISO C). Note that the way the code
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
worked, the only non-ASCII letter that would previously have been
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
accepted would have been the Turkish 'ı' (dotless 'i'), because the
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
uppercase version of that in Turkish locales is 'I'. This patch means
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
that will no longer be accepted, which seems appropriate.
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
Tested for x86_64 and x86.
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
[BZ #19242]
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
* stdlib/strtol_l.c (ISALPHA): Use _nl_C_locobj_ptr for locale.
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
(TOUPPER): Likewise.
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
* stdlib/tst-strtol-locale-main.c: New file.
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
* stdlib/tst-strtol-locale.c: Likewise.
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
* stdlib/Makefile (tests): Add tst-strtol-locale.
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
[$(run-built-tests) = yes] (LOCALES): Add tr_TR.ISO-8859-9.
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
[$(run-built-tests) = yes] ($(objpfx)tst-strtol-locale.out):
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
Depend on $(gen-locales).
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
* wcsmbs/tst-wcstol-locale.c: New file.
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
* wcsmbs/Makefile (tests): Add tst-wcstol-locale.
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
[$(run-built-tests) = yes] (LOCALES): Add tr_TR.UTF-8 and
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
tr_TR.ISO-8859-9.
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
[$(run-built-tests) = yes] ($(objpfx)tst-wcstol-locale.out):
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
Depend on $(gen-locales).
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
Index: b/stdlib/Makefile
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
===================================================================
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
--- a/stdlib/Makefile
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+++ b/stdlib/Makefile
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
@@ -74,7 +74,8 @@ tests := tst-strtol tst-strtod testmb t
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
tst-makecontext3 bug-getcontext bug-fmtmsg1 \
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
tst-secure-getenv tst-strtod-overflow tst-strtod-round \
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
tst-tininess tst-strtod-underflow tst-tls-atexit \
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
- tst-setcontext3 tst-tls-atexit-nodelete
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ tst-setcontext3 tst-tls-atexit-nodelete \
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ tst-strtol-locale
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
tests-static := tst-secure-getenv
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
modules-names = tst-tls-atexit-lib
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
@@ -122,7 +123,8 @@ endif
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
include ../Rules
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
ifeq ($(run-built-tests),yes)
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
-LOCALES := cs_CZ.UTF-8 de_DE.UTF-8 en_US.ISO-8859-1 tr_TR.UTF-8
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+LOCALES := cs_CZ.UTF-8 de_DE.UTF-8 en_US.ISO-8859-1 tr_TR.UTF-8 \
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ tr_TR.ISO-8859-9
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
include ../gen-locales.mk
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
$(objpfx)bug-strtod2.out: $(gen-locales)
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
@@ -131,6 +133,7 @@ $(objpfx)tst-strtod.out: $(gen-locales)
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
$(objpfx)tst-strtod3.out: $(gen-locales)
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
$(objpfx)tst-strtod4.out: $(gen-locales)
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
$(objpfx)tst-strtod5.out: $(gen-locales)
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+$(objpfx)tst-strtol-locale.out: $(gen-locales)
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
endif
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
# Testdir has to be named stdlib and needs to be writable
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
Index: b/stdlib/strtol_l.c
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
===================================================================
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
--- a/stdlib/strtol_l.c
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+++ b/stdlib/strtol_l.c
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
@@ -137,8 +137,8 @@
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
# define UCHAR_TYPE wint_t
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
# define STRING_TYPE wchar_t
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
# define ISSPACE(Ch) __iswspace_l ((Ch), loc)
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
-# define ISALPHA(Ch) __iswalpha_l ((Ch), loc)
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
-# define TOUPPER(Ch) __towupper_l ((Ch), loc)
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+# define ISALPHA(Ch) __iswalpha_l ((Ch), _nl_C_locobj_ptr)
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+# define TOUPPER(Ch) __towupper_l ((Ch), _nl_C_locobj_ptr)
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
#else
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
# if defined _LIBC \
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
|| defined STDC_HEADERS || (!defined isascii && !defined HAVE_ISASCII)
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
@@ -150,8 +150,8 @@
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
# define UCHAR_TYPE unsigned char
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
# define STRING_TYPE char
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
# define ISSPACE(Ch) __isspace_l ((Ch), loc)
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
-# define ISALPHA(Ch) __isalpha_l ((Ch), loc)
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
-# define TOUPPER(Ch) __toupper_l ((Ch), loc)
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+# define ISALPHA(Ch) __isalpha_l ((Ch), _nl_C_locobj_ptr)
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+# define TOUPPER(Ch) __toupper_l ((Ch), _nl_C_locobj_ptr)
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
#endif
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
#define INTERNAL(X) INTERNAL1(X)
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
Index: b/stdlib/tst-strtol-locale-main.c
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
===================================================================
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
--- /dev/null
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+++ b/stdlib/tst-strtol-locale-main.c
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
@@ -0,0 +1,87 @@
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+/* Test strtol functions work with all ASCII letters in Turkish
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ locales (bug 19242).
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ Copyright (C) 2015 Free Software Foundation, Inc.
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ This file is part of the GNU C Library.
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ The GNU C Library is free software; you can redistribute it and/or
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ modify it under the terms of the GNU Lesser General Public
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ License as published by the Free Software Foundation; either
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ version 2.1 of the License, or (at your option) any later version.
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ The GNU C Library is distributed in the hope that it will be useful,
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ Lesser General Public License for more details.
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ You should have received a copy of the GNU Lesser General Public
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ License along with the GNU C Library; if not, see
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ <http://www.gnu.org/licenses/>. */
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+#include <locale.h>
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+#include <stdio.h>
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+#include <stdlib.h>
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+#include <wchar.h>
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+#define STR_(X) #X
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+#define STR(X) STR_(X)
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+#define FNPFXS STR (FNPFX)
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+#define CONCAT_(X, Y) X ## Y
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+#define CONCAT(X, Y) CONCAT_ (X, Y)
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+#define FNX(FN) CONCAT (FNPFX, FN)
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+#define TEST(LOC, STR, EXP_VAL, FN, TYPE, FMT) \
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ do \
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ { \
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ CHAR *ep; \
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ TYPE val = FNX (FN) (STR, &ep, 36); \
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ printf ("%s: " FNPFXS #FN " (" SFMT ") == " FMT "\n", LOC, STR, val); \
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ if (val == (TYPE) (EXP_VAL) && *ep == 0) \
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ printf ("PASS: %s: " FNPFXS #FN " (" SFMT ")\n", LOC, STR); \
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ else \
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ { \
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ printf ("FAIL: %s: " FNPFXS #FN " (" SFMT ")\n", LOC, STR); \
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ result = 1; \
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ } \
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ } \
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ while (0)
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+static int
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+test_one_locale (const char *loc)
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+{
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ if (setlocale (LC_ALL, loc) == NULL)
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ {
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ printf ("setlocale (LC_ALL, \"%s\") failed\n", loc);
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ return 1;
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ int result = 0;
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ for (int i = 10; i < 36; i++)
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ {
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ CHAR s[2];
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ s[0] = L_('A') + i - 10;
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ s[1] = 0;
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ TEST (loc, s, i, l, long int, "%ld");
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ TEST (loc, s, i, ul, unsigned long int, "%lu");
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ TEST (loc, s, i, ll, long long int, "%lld");
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ TEST (loc, s, i, ull, unsigned long long int, "%llu");
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ s[0] = L_('a') + i - 10;
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ s[1] = 0;
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ TEST (loc, s, i, l, long int, "%ld");
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ TEST (loc, s, i, ul, unsigned long int, "%lu");
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ TEST (loc, s, i, ll, long long int, "%lld");
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ TEST (loc, s, i, ull, unsigned long long int, "%llu");
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ return result;
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+}
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+static int
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+do_test (void)
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+{
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ int result = 0;
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ result |= test_one_locale ("C");
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ result |= test_one_locale ("tr_TR.UTF-8");
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ result |= test_one_locale ("tr_TR.ISO-8859-9");
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ return result;
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+}
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+#define TEST_FUNCTION do_test ()
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+#include "../test-skeleton.c"
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
Index: b/stdlib/tst-strtol-locale.c
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
===================================================================
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
--- /dev/null
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+++ b/stdlib/tst-strtol-locale.c
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
@@ -0,0 +1,25 @@
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+/* Test strtol functions work with all ASCII letters in Turkish
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ locales (bug 19242). Narrow string version.
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ Copyright (C) 2015 Free Software Foundation, Inc.
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ This file is part of the GNU C Library.
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ The GNU C Library is free software; you can redistribute it and/or
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ modify it under the terms of the GNU Lesser General Public
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ License as published by the Free Software Foundation; either
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ version 2.1 of the License, or (at your option) any later version.
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ The GNU C Library is distributed in the hope that it will be useful,
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ Lesser General Public License for more details.
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ You should have received a copy of the GNU Lesser General Public
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ License along with the GNU C Library; if not, see
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ <http://www.gnu.org/licenses/>. */
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+#define CHAR char
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+#define SFMT "\"%s\""
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+#define FNPFX strto
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+#define L_(C) C
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+#include <tst-strtol-locale-main.c>
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
Index: b/wcsmbs/Makefile
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
===================================================================
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
--- a/wcsmbs/Makefile
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+++ b/wcsmbs/Makefile
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
@@ -45,13 +45,14 @@ routines := wcscat wcschr wcscmp wcscpy
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
strop-tests := wcscmp wcsncmp wmemcmp wcslen wcschr wcsrchr wcscpy
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
tests := tst-wcstof wcsmbs-tst1 tst-wcsnlen tst-btowc tst-mbrtowc \
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
tst-wcrtomb tst-wcpncpy tst-mbsrtowcs tst-wchar-h tst-mbrtowc2 \
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
- tst-c16c32-1 wcsatcliff $(addprefix test-,$(strop-tests))
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ tst-c16c32-1 wcsatcliff tst-wcstol-locale \
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ $(addprefix test-,$(strop-tests))
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
include ../Rules
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
ifeq ($(run-built-tests),yes)
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
LOCALES := de_DE.ISO-8859-1 de_DE.UTF-8 en_US.ANSI_X3.4-1968 hr_HR.ISO-8859-2 \
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
- ja_JP.EUC-JP zh_TW.EUC-TW
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ ja_JP.EUC-JP zh_TW.EUC-TW tr_TR.UTF-8 tr_TR.ISO-8859-9
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
include ../gen-locales.mk
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
$(objpfx)tst-btowc.out: $(gen-locales)
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
@@ -60,6 +61,7 @@ $(objpfx)tst-mbrtowc.out: $(gen-locales)
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
$(objpfx)tst-mbrtowc2.out: $(gen-locales)
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
$(objpfx)tst-wcrtomb.out: $(gen-locales)
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
$(objpfx)wcsmbs-tst1.out: $(gen-locales)
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+$(objpfx)tst-wcstol-locale.out: $(gen-locales)
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
endif
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
CFLAGS-wcwidth.c = -I../wctype
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
Index: b/wcsmbs/tst-wcstol-locale.c
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
===================================================================
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
--- /dev/null
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+++ b/wcsmbs/tst-wcstol-locale.c
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
@@ -0,0 +1,25 @@
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+/* Test strtol functions work with all ASCII letters in Turkish
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ locales (bug 19242). Wide string version.
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ Copyright (C) 2015 Free Software Foundation, Inc.
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ This file is part of the GNU C Library.
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ The GNU C Library is free software; you can redistribute it and/or
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ modify it under the terms of the GNU Lesser General Public
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ License as published by the Free Software Foundation; either
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ version 2.1 of the License, or (at your option) any later version.
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ The GNU C Library is distributed in the hope that it will be useful,
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ Lesser General Public License for more details.
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ You should have received a copy of the GNU Lesser General Public
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ License along with the GNU C Library; if not, see
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+ <http://www.gnu.org/licenses/>. */
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+#define CHAR wchar_t
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+#define SFMT "L\"%ls\""
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+#define FNPFX wcsto
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+#define L_(C) L ## C
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+
|
|
![](https://seccdn.libravatar.org/avatar/3a472f8ae167e3d9ad669220b1e8ed6d98f2576fa0461d58f9444841c8e3b2f5?s=16&d=retro) |
421842a |
+#include "../stdlib/tst-strtol-locale-main.c"
|