locale.cc (locale::locale(const char*)): Deal with locales named "".
authorBenjamin Kosnik <bkoz@redhat.com>
Thu, 13 Dec 2001 11:12:56 +0000 (11:12 +0000)
committerBenjamin Kosnik <bkoz@gcc.gnu.org>
Thu, 13 Dec 2001 11:12:56 +0000 (11:12 +0000)
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

libstdc++-v3/ChangeLog
libstdc++-v3/src/locale.cc
libstdc++-v3/testsuite/22_locale/ctor_copy_dtor.cc

index 25078d4f101a5c877c73ca66e0cba627d330d045..297034bd1e23a82524eacc36a18707a9514ab8b4 100644 (file)
@@ -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,
index d827a2564366104aa40cc9eb2c5001e27e503a4d..0e899c1d9b3351dc2a1a7ac5623cc527f11a1568 100644 (file)
@@ -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);
       }
index d5d7b843c20aa79740225919462600c2b7083a0d..bbe3b147ba5c3f1e1421b071d6816ba4b03a670c 100644 (file)
@@ -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)