mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-28 00:21:52 +03:00
Fix missing declaration of LC_CTYPE nonascii-case element
This commit is contained in:
@ -1,5 +1,13 @@
|
|||||||
2013-08-27 Andreas Schwab <schwab@suse.de>
|
2013-08-27 Andreas Schwab <schwab@suse.de>
|
||||||
|
|
||||||
|
[BZ #15736]
|
||||||
|
* locale/categories.def (LC_CTYPE): Add "nonascii-case" element.
|
||||||
|
* string/Makefile (test-strcasecmp-ENV, test-strncasecmp-ENV)
|
||||||
|
(test-strcasecmp-ifunc-ENV, test-strncasecmp-ifunc-ENV): Define.
|
||||||
|
* string/test-strcasecmp.c (test_main): Run tests in several
|
||||||
|
locales.
|
||||||
|
* string/test-strncasecmp.c (test_main): Likewise.
|
||||||
|
|
||||||
* sysdeps/i386/i686/multiarch/strcmp-sse4.S (__strcasecmp_sse4_2)
|
* sysdeps/i386/i686/multiarch/strcmp-sse4.S (__strcasecmp_sse4_2)
|
||||||
(__strncasecmp_sse4_2) [PIC]: Restore %ebx before falling through
|
(__strncasecmp_sse4_2) [PIC]: Restore %ebx before falling through
|
||||||
to __strcasecmp_nonascii and __strncasecmp_nonascii.
|
to __strcasecmp_nonascii and __strncasecmp_nonascii.
|
||||||
|
2
NEWS
2
NEWS
@ -9,7 +9,7 @@ Version 2.19
|
|||||||
|
|
||||||
* The following bugs are resolved with this release:
|
* The following bugs are resolved with this release:
|
||||||
|
|
||||||
14699, 15531, 15532, 15749, 15797, 15867, 15890
|
14699, 15531, 15532, 15736, 15749, 15797, 15867, 15890
|
||||||
|
|
||||||
* CVE-2013-4237 The readdir_r function could write more than NAME_MAX bytes
|
* CVE-2013-4237 The readdir_r function could write more than NAME_MAX bytes
|
||||||
to the d_name member of struct dirent, or omit the terminating NUL
|
to the d_name member of struct dirent, or omit the terminating NUL
|
||||||
|
@ -133,6 +133,7 @@ DEFINE_CATEGORY
|
|||||||
DEFINE_ELEMENT (_NL_CTYPE_TRANSLIT_IGNORE_LEN, "ctype-translit-ignore-len", std, word)
|
DEFINE_ELEMENT (_NL_CTYPE_TRANSLIT_IGNORE_LEN, "ctype-translit-ignore-len", std, word)
|
||||||
DEFINE_ELEMENT (_NL_CTYPE_TRANSLIT_IGNORE, "ctype-translit-ignore", std, string)
|
DEFINE_ELEMENT (_NL_CTYPE_TRANSLIT_IGNORE, "ctype-translit-ignore", std, string)
|
||||||
DEFINE_ELEMENT (_NL_CTYPE_MAP_TO_NONASCII, "map-to-nonascii", std, word)
|
DEFINE_ELEMENT (_NL_CTYPE_MAP_TO_NONASCII, "map-to-nonascii", std, word)
|
||||||
|
DEFINE_ELEMENT (_NL_CTYPE_NONASCII_CASE, "nonascii-case", std, word)
|
||||||
), _nl_postload_ctype)
|
), _nl_postload_ctype)
|
||||||
|
|
||||||
|
|
||||||
|
@ -65,6 +65,10 @@ noinl-tester-ENV = LANGUAGE=C
|
|||||||
tst-strxfrm-ENV = LOCPATH=$(common-objpfx)localedata
|
tst-strxfrm-ENV = LOCPATH=$(common-objpfx)localedata
|
||||||
tst-strxfrm2-ENV = LOCPATH=$(common-objpfx)localedata
|
tst-strxfrm2-ENV = LOCPATH=$(common-objpfx)localedata
|
||||||
bug-strcoll1-ENV = LOCPATH=$(common-objpfx)localedata
|
bug-strcoll1-ENV = LOCPATH=$(common-objpfx)localedata
|
||||||
|
test-strcasecmp-ENV = LOCPATH=$(common-objpfx)localedata
|
||||||
|
test-strncasecmp-ENV = LOCPATH=$(common-objpfx)localedata
|
||||||
|
test-strcasecmp-ifunc-ENV = LOCPATH=$(common-objpfx)localedata
|
||||||
|
test-strncasecmp-ifunc-ENV = LOCPATH=$(common-objpfx)localedata
|
||||||
CFLAGS-inl-tester.c = -fno-builtin
|
CFLAGS-inl-tester.c = -fno-builtin
|
||||||
CFLAGS-noinl-tester.c = -fno-builtin
|
CFLAGS-noinl-tester.c = -fno-builtin
|
||||||
CFLAGS-tst-strlen.c = -fno-builtin
|
CFLAGS-tst-strlen.c = -fno-builtin
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
License along with the GNU C Library; if not, see
|
License along with the GNU C Library; if not, see
|
||||||
<http://www.gnu.org/licenses/>. */
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
#include <locale.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#define TEST_MAIN
|
#define TEST_MAIN
|
||||||
#define TEST_NAME "strcasecmp"
|
#define TEST_NAME "strcasecmp"
|
||||||
@ -206,14 +207,18 @@ do_random_tests (void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
static void
|
||||||
test_main (void)
|
test_locale (const char *locale)
|
||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
test_init ();
|
if (setlocale (LC_CTYPE, locale) == NULL)
|
||||||
|
{
|
||||||
|
error (0, 0, "cannot set locale \"%s\"", locale);
|
||||||
|
ret = 1;
|
||||||
|
}
|
||||||
|
|
||||||
printf ("%23s", "");
|
printf ("%-23s", locale);
|
||||||
FOR_EACH_IMPL (impl, 0)
|
FOR_EACH_IMPL (impl, 0)
|
||||||
printf ("\t%s", impl->name);
|
printf ("\t%s", impl->name);
|
||||||
putchar ('\n');
|
putchar ('\n');
|
||||||
@ -246,6 +251,19 @@ test_main (void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
do_random_tests ();
|
do_random_tests ();
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
test_main (void)
|
||||||
|
{
|
||||||
|
test_init ();
|
||||||
|
|
||||||
|
test_locale ("C");
|
||||||
|
test_locale ("en_US.ISO-8859-1");
|
||||||
|
test_locale ("en_US.UTF-8");
|
||||||
|
test_locale ("tr_TR.ISO-8859-9");
|
||||||
|
test_locale ("tr_TR.UTF-8");
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
License along with the GNU C Library; if not, see
|
License along with the GNU C Library; if not, see
|
||||||
<http://www.gnu.org/licenses/>. */
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
#include <locale.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#define TEST_MAIN
|
#define TEST_MAIN
|
||||||
#define TEST_NAME "strncasecmp"
|
#define TEST_NAME "strncasecmp"
|
||||||
@ -256,17 +257,21 @@ bz14195 (void)
|
|||||||
check_result (impl, empty_string, "", 5, 0);
|
check_result (impl, empty_string, "", 5, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
static void
|
||||||
test_main (void)
|
test_locale (const char *locale)
|
||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
test_init ();
|
if (setlocale (LC_CTYPE, locale) == NULL)
|
||||||
|
{
|
||||||
|
error (0, 0, "cannot set locale \"%s\"", locale);
|
||||||
|
ret = 1;
|
||||||
|
}
|
||||||
|
|
||||||
bz12205 ();
|
bz12205 ();
|
||||||
bz14195 ();
|
bz14195 ();
|
||||||
|
|
||||||
printf ("%23s", "");
|
printf ("%23s", locale);
|
||||||
FOR_EACH_IMPL (impl, 0)
|
FOR_EACH_IMPL (impl, 0)
|
||||||
printf ("\t%s", impl->name);
|
printf ("\t%s", impl->name);
|
||||||
putchar ('\n');
|
putchar ('\n');
|
||||||
@ -329,6 +334,19 @@ test_main (void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
do_random_tests ();
|
do_random_tests ();
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
test_main (void)
|
||||||
|
{
|
||||||
|
test_init ();
|
||||||
|
|
||||||
|
test_locale ("C");
|
||||||
|
test_locale ("en_US.ISO-8859-1");
|
||||||
|
test_locale ("en_US.UTF-8");
|
||||||
|
test_locale ("tr_TR.ISO-8859-9");
|
||||||
|
test_locale ("tr_TR.UTF-8");
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user