From: Roland McGrath Date: Fri, 31 Oct 2003 23:35:42 +0000 (+0000) Subject: * locale/lc-ctype.c (_nl_postload_ctype): Update _nl_global_locale's X-Git-Tag: cvs/glibc-2_3_3~99 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=158a85bff125c238ba67467f4a2416a9b3a6a824;p=platform%2Fupstream%2Fglibc.git * locale/lc-ctype.c (_nl_postload_ctype): Update _nl_global_locale's special members. --- diff --git a/ChangeLog b/ChangeLog index d00c056..3d1c05f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2003-10-31 Roland McGrath + + * locale/lc-ctype.c (_nl_postload_ctype): Update _nl_global_locale's + special members. + 2003-10-29 Ulrich Drepper * po/be.po: Update from translation team. diff --git a/localedata/ChangeLog b/localedata/ChangeLog index b7285d1..c572633 100644 --- a/localedata/ChangeLog +++ b/localedata/ChangeLog @@ -1,3 +1,8 @@ +2003-10-31 Roland McGrath + + * bug-usesetlocale.c: New file. + * Makefile (tests): Add it. + 2003-10-01 Ulrich Drepper * SUPPORTED (SUPPORTED-LOCALES): Add uz_UZ@cyrillic.UTF-8. diff --git a/localedata/Makefile b/localedata/Makefile index c5e8711..41495c2 100644 --- a/localedata/Makefile +++ b/localedata/Makefile @@ -92,7 +92,7 @@ locale_test_suite := tst_iswalnum tst_iswalpha tst_iswcntrl \ tst_wctype tst_wcwidth tests = $(locale_test_suite) tst-digits tst-setlocale bug-iconv-trans \ - tst-leaks tst-mbswcs6 tst-xlocale1 tst-xlocale2 + tst-leaks tst-mbswcs6 tst-xlocale1 tst-xlocale2 bug-usesetlocale ifeq (yes,$(build-shared)) ifneq (no,$(PERL)) tests: $(objpfx)mtrace-tst-leaks diff --git a/localedata/bug-usesetlocale.c b/localedata/bug-usesetlocale.c new file mode 100644 index 0000000..0637067 --- /dev/null +++ b/localedata/bug-usesetlocale.c @@ -0,0 +1,38 @@ +/* Test case for setlocale vs uselocale (LC_GLOBAL_LOCALE) bug. */ + +#define _GNU_SOURCE 1 +#include +#include +#include + +static int +do_test (void) +{ + __locale_t loc_new, loc_old; + + int first = !!isalpha(0xE4); + + setlocale (LC_ALL, "de_DE"); + + int global_de = !!isalpha(0xE4); + + loc_new = newlocale (1 << LC_ALL, "C", 0); + loc_old = uselocale (loc_new); + + int used_c = !!isalpha(0xE4); + + uselocale (loc_old); + + int used_global = !!isalpha(0xE4); + + printf ("started %d, after setlocale %d\n", first, global_de); + printf ("after uselocale %d, after LC_GLOBAL_LOCALE %d\n", + used_c, used_global); + + freelocale (loc_new); + return !(used_c == first && used_global == global_de); +} + + +#define TEST_FUNCTION do_test () +#include "test-skeleton.c"