From 85230e5255cd8dc23a0d0440992ac24a119b32a5 Mon Sep 17 00:00:00 2001 From: Benjamin Kosnik Date: Thu, 13 Dec 2001 11:12:56 +0000 Subject: [PATCH] locale.cc (locale::locale(const char*)): Deal with locales named "". 2001-12-13 Benjamin Kosnik 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 --- libstdc++-v3/ChangeLog | 7 +++++++ libstdc++-v3/src/locale.cc | 2 ++ libstdc++-v3/testsuite/22_locale/ctor_copy_dtor.cc | 2 +- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 25078d4f101..297034bd1e2 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,10 @@ +2001-12-13 Benjamin Kosnik + + 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 * 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 d827a256436..0e899c1d9b3 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 d5d7b843c20..bbe3b147ba5 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(NULL)); } catch(runtime_error& obj) -- 2.30.2