diff options
Diffstat (limited to 'contrib/libstdc++/src/codecvt.cc')
-rw-r--r-- | contrib/libstdc++/src/codecvt.cc | 74 |
1 files changed, 13 insertions, 61 deletions
diff --git a/contrib/libstdc++/src/codecvt.cc b/contrib/libstdc++/src/codecvt.cc index 032667e..a2fb42d 100644 --- a/contrib/libstdc++/src/codecvt.cc +++ b/contrib/libstdc++/src/codecvt.cc @@ -31,6 +31,13 @@ namespace std { + // Definitions for locale::id of standard facets that are specialized. + locale::id codecvt<char, char, mbstate_t>::id; + +#ifdef _GLIBCPP_USE_WCHAR_T + locale::id codecvt<wchar_t, char, mbstate_t>::id; +#endif + #ifdef _GLIBCPP_USE___ENC_TRAITS // Definitions for static const data members of __enc_traits. const int __enc_traits::_S_max_size; @@ -42,7 +49,8 @@ namespace std { } codecvt<char, char, mbstate_t>:: - ~codecvt() { } + ~codecvt() + { } codecvt_base::result codecvt<char, char, mbstate_t>:: @@ -106,39 +114,12 @@ namespace std // codecvt<wchar_t, char, mbstate_t> required specialization codecvt<wchar_t, char, mbstate_t>:: codecvt(size_t __refs) - : __codecvt_abstract_base<wchar_t, char, mbstate_t>(__refs) { } + : __codecvt_abstract_base<wchar_t, char, mbstate_t>(__refs) + { } codecvt<wchar_t, char, mbstate_t>:: - ~codecvt() { } - - codecvt_base::result - codecvt<wchar_t, char, mbstate_t>:: - do_out(state_type& __state, const intern_type* __from, - const intern_type* __from_end, const intern_type*& __from_next, - extern_type* __to, extern_type* __to_end, - extern_type*& __to_next) const - { - result __ret = error; - size_t __len = min(__from_end - __from, __to_end - __to); - size_t __conv = wcsrtombs(__to, &__from, __len, &__state); - - if (__conv == __len) - { - __from_next = __from; - __to_next = __to + __conv; - __ret = ok; - } - else if (__conv > 0 && __conv < __len) - { - __from_next = __from; - __to_next = __to + __conv; - __ret = partial; - } - else - __ret = error; - - return __ret; - } + ~codecvt() + { } codecvt_base::result codecvt<wchar_t, char, mbstate_t>:: @@ -149,35 +130,6 @@ namespace std return noconv; } - codecvt_base::result - codecvt<wchar_t, char, mbstate_t>:: - do_in(state_type& __state, const extern_type* __from, - const extern_type* __from_end, const extern_type*& __from_next, - intern_type* __to, intern_type* __to_end, - intern_type*& __to_next) const - { - result __ret = error; - size_t __len = min(__from_end - __from, __to_end - __to); - size_t __conv = mbsrtowcs(__to, &__from, __len, &__state); - - if (__conv == __len) - { - __from_next = __from; - __to_next = __to + __conv; - __ret = ok; - } - else if (__conv > 0 && __conv < __len) - { - __from_next = __from; - __to_next = __to + __conv; - __ret = partial; - } - else - __ret = error; - - return __ret; - } - int codecvt<wchar_t, char, mbstate_t>:: do_encoding() const throw() |