ctype_members.cc (ctype<wchar_t>::do_widen(char)): Switch to _M_c_locale_ctype around btowc call.
* config/locale/gnu/ctype_members.cc (ctype<wchar_t>::do_widen(char)): Switch to _M_c_locale_ctype around btowc call. (ctype<wchar_t>::do_widen(const char*, const char *, wchar_t*)): Switch to _M_c_locale_ctype around mbsrtowcs call. (ctype<wchar_t>::do_narrow(char)): Switch to _M_c_locale_ctype around wctob call. (ctype<wchar_t>::do_narrow(const char*, const char *, wchar_t*)): Switch to _M_c_locale_ctype around wcsrtombs call. From-SVN: r56841
This commit is contained in:
parent
9a6d20712b
commit
f373d4c761
|
@ -1,3 +1,14 @@
|
|||
2002-09-05 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* config/locale/gnu/ctype_members.cc (ctype<wchar_t>::do_widen(char)):
|
||||
Switch to _M_c_locale_ctype around btowc call.
|
||||
(ctype<wchar_t>::do_widen(const char*, const char *, wchar_t*)):
|
||||
Switch to _M_c_locale_ctype around mbsrtowcs call.
|
||||
(ctype<wchar_t>::do_narrow(char)): Switch to _M_c_locale_ctype around
|
||||
wctob call.
|
||||
(ctype<wchar_t>::do_narrow(const char*, const char *, wchar_t*)):
|
||||
Switch to _M_c_locale_ctype around wcsrtombs call.
|
||||
|
||||
2002-09-05 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* config/locale/gnu/monetary_members.cc
|
||||
|
|
|
@ -166,15 +166,30 @@ namespace std
|
|||
wchar_t
|
||||
ctype<wchar_t>::
|
||||
do_widen(char __c) const
|
||||
{ return btowc(__c); }
|
||||
|
||||
{
|
||||
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
|
||||
__c_locale __old = __uselocale(_M_c_locale_ctype);
|
||||
#endif
|
||||
wchar_t __ret = btowc(__c);
|
||||
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
|
||||
__uselocale(__old);
|
||||
#endif
|
||||
return __ret;
|
||||
}
|
||||
|
||||
const char*
|
||||
ctype<wchar_t>::
|
||||
do_widen(const char* __lo, const char* __hi, wchar_t* __dest) const
|
||||
{
|
||||
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
|
||||
__c_locale __old = __uselocale(_M_c_locale_ctype);
|
||||
#endif
|
||||
mbstate_t __state;
|
||||
memset(static_cast<void*>(&__state), 0, sizeof(mbstate_t));
|
||||
mbsrtowcs(__dest, &__lo, __hi - __lo, &__state);
|
||||
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
|
||||
__uselocale(__old);
|
||||
#endif
|
||||
return __hi;
|
||||
}
|
||||
|
||||
|
@ -182,7 +197,13 @@ namespace std
|
|||
ctype<wchar_t>::
|
||||
do_narrow(wchar_t __wc, char __dfault) const
|
||||
{
|
||||
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
|
||||
__c_locale __old = __uselocale(_M_c_locale_ctype);
|
||||
#endif
|
||||
int __c = wctob(__wc);
|
||||
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
|
||||
__uselocale(__old);
|
||||
#endif
|
||||
return (__c == EOF ? __dfault : static_cast<char>(__c));
|
||||
}
|
||||
|
||||
|
@ -191,6 +212,9 @@ namespace std
|
|||
do_narrow(const wchar_t* __lo, const wchar_t* __hi, char __dfault,
|
||||
char* __dest) const
|
||||
{
|
||||
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
|
||||
__c_locale __old = __uselocale(_M_c_locale_ctype);
|
||||
#endif
|
||||
size_t __offset = 0;
|
||||
while (true)
|
||||
{
|
||||
|
@ -208,6 +232,9 @@ namespace std
|
|||
else
|
||||
break;
|
||||
}
|
||||
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
|
||||
__uselocale(__old);
|
||||
#endif
|
||||
return __hi;
|
||||
}
|
||||
#endif // _GLIBCPP_USE_WCHAR_T
|
||||
|
|
Loading…
Reference in New Issue