]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
2002-03-09 Ulrich Drepper <drepper@redhat.com>
authorUlrich Drepper <drepper@redhat.com>
Sun, 10 Mar 2002 23:48:25 +0000 (23:48 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Sun, 10 Mar 2002 23:48:25 +0000 (23:48 +0000)
    Paolo Carlini  <pcarlini@unitus.it>

        * config/locale/generic/collate_members.cc
(collate<char,wchar_t>::_M_compare_helper): normalize
values returned by strcoll and wcscoll.
        * config/locale/gnu/collate_members.cc
(collate<char,wchar_t>::_M_compare_helper): ditto
for __strcoll_l and __wcscoll_l.

Co-Authored-By: Paolo Carlini <pcarlini@unitus.it>
From-SVN: r50551

libstdc++-v3/ChangeLog
libstdc++-v3/config/locale/generic/collate_members.cc
libstdc++-v3/config/locale/gnu/collate_members.cc

index 10db4b48e447b83d94170c5619e1a183c0d521a1..0ed3aa3116ed8dc70114a2edd1477472b13273e8 100644 (file)
@@ -1,3 +1,13 @@
+2002-03-10  Ulrich Drepper  <drepper@redhat.com>
+            Paolo Carlini  <pcarlini@unitus.it>
+
+        * config/locale/generic/collate_members.cc
+        (collate<char,wchar_t>::_M_compare_helper): normalize
+        values returned by strcoll and wcscoll.
+        * config/locale/gnu/collate_members.cc
+        (collate<char,wchar_t>::_M_compare_helper): ditto
+        for __strcoll_l and __wcscoll_l.
+
 2002-03-10  Anthony Green  <green@redhat.com>
 
        * configure.in: Support cross builds to mingw32 target.
index 0abd784378a98542af619ce23a872e0151499b10..085f7668bde55f04aafd56bb26d0c6825e4adfb1 100644 (file)
@@ -43,7 +43,10 @@ namespace std
     int 
     collate<char>::_M_compare_helper(const char* __one, 
                                     const char* __two) const
-    { return strcoll(__one, __two); }
+    { 
+      int __cmp = strcoll(__one, __two);
+      return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0);
+    }
   
   template<>
     size_t
@@ -56,7 +59,10 @@ namespace std
     int 
     collate<wchar_t>::_M_compare_helper(const wchar_t* __one, 
                                        const wchar_t* __two) const
-    { return wcscoll(__one, __two); }
+    {
+      int __cmp = wcscoll(__one, __two);
+      return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0);
+    }
   
   template<>
     size_t
index 8e3952e5837880112bad5044324cb5a96c259f14..d023d53468ab2c6203cca359afd6b00ca233a855 100644 (file)
@@ -43,7 +43,10 @@ namespace std
     int 
     collate<char>::_M_compare_helper(const char* __one, 
                                     const char* __two) const
-    { return __strcoll_l(__one, __two, _M_c_locale_collate); }
+    { 
+      int __cmp = __strcoll_l(__one, __two, _M_c_locale_collate);
+      return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0);
+    }
   
   template<>
     size_t
@@ -56,7 +59,10 @@ namespace std
     int 
     collate<wchar_t>::_M_compare_helper(const wchar_t* __one, 
                                        const wchar_t* __two) const
-    { return __wcscoll_l(__one, __two, _M_c_locale_collate); }
+    {
+      int __cmp = __wcscoll_l(__one, __two, _M_c_locale_collate);
+      return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0);
+    }
   
   template<>
     size_t