diff options
author | Benjamin Kosnik <bkoz@redhat.com> | 2001-12-13 11:12:56 +0000 |
---|---|---|
committer | Benjamin Kosnik <bkoz@gcc.gnu.org> | 2001-12-13 11:12:56 +0000 |
commit | 85230e5255cd8dc23a0d0440992ac24a119b32a5 (patch) | |
tree | 34053c1f745f059fef6c317154b720c1a1445770 | |
parent | 3af44a8e3f77df55f84b12977c1236975ab32b93 (diff) | |
download | gcc-85230e5255cd8dc23a0d0440992ac24a119b32a5.zip gcc-85230e5255cd8dc23a0d0440992ac24a119b32a5.tar.gz gcc-85230e5255cd8dc23a0d0440992ac24a119b32a5.tar.bz2 |
locale.cc (locale::locale(const char*)): Deal with locales named "".
2001-12-13 Benjamin Kosnik <bkoz@redhat.com>
libstdc++/3679
* src/locale.cc (locale::locale(const char*)): Deal with locales
named "".
* testsuite/22_locale/ctor_copy_dtor.cc (test01): Modify.
From-SVN: r47968
-rw-r--r-- | libstdc++-v3/ChangeLog | 7 | ||||
-rw-r--r-- | libstdc++-v3/src/locale.cc | 2 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/22_locale/ctor_copy_dtor.cc | 2 |
3 files changed, 10 insertions, 1 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 25078d4..297034b 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,10 @@ +2001-12-13 Benjamin Kosnik <bkoz@redhat.com> + + libstdc++/3679 + * src/locale.cc (locale::locale(const char*)): Deal with locales + named "". + * testsuite/22_locale/ctor_copy_dtor.cc (test01): Modify. + 2001-12-12 Paolo Carlini <pcarlini@unitus.it> * include/ext/ropeimpl.h (rope::_S_leaf_concat_char_iter, diff --git a/libstdc++-v3/src/locale.cc b/libstdc++-v3/src/locale.cc index d827a25..0e899c1 100644 --- a/libstdc++-v3/src/locale.cc +++ b/libstdc++-v3/src/locale.cc @@ -204,6 +204,8 @@ namespace std _S_initialize(); if (strcmp(__s, "C") == 0 || strcmp(__s, "POSIX") == 0) (_M_impl = _S_classic)->_M_add_reference(); + else if (strcmp(__s, "") == 0) + _M_impl = new _Impl(setlocale(LC_ALL, __s), 1); else _M_impl = new _Impl(__s, 1); } diff --git a/libstdc++-v3/testsuite/22_locale/ctor_copy_dtor.cc b/libstdc++-v3/testsuite/22_locale/ctor_copy_dtor.cc index d5d7b84..bbe3b14 100644 --- a/libstdc++-v3/testsuite/22_locale/ctor_copy_dtor.cc +++ b/libstdc++-v3/testsuite/22_locale/ctor_copy_dtor.cc @@ -126,7 +126,7 @@ void test01() locale loc07(""); VERIFY (loc07 != loc01); VERIFY (loc07 != loc02); - VERIFY (loc07.name() == ""); + VERIFY (loc07.name() != ""); try { locale loc08(static_cast<const char*>(NULL)); } catch(runtime_error& obj) |