2002-03-09 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.

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

From-SVN: r50551
This commit is contained in:
Ulrich Drepper 2002-03-10 23:48:25 +00:00 committed by Paolo Carlini
parent 26b738be01
commit a10e3b428c
3 changed files with 26 additions and 4 deletions

View 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.

View 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

View 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