From 1644f06da7e1b30215c047d45291caf33607c92e Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Sun, 30 Nov 2003 19:10:50 +0000 Subject: [PATCH] codecvt_members.cc (codecvt::do_in, [...]): More minor tweaks. 2003-11-30 Paolo Carlini * config/locale/gnu/codecvt_members.cc (codecvt::do_in, codecvt::do_length): More minor tweaks. From-SVN: r74069 --- libstdc++-v3/ChangeLog | 5 +++ .../config/locale/gnu/codecvt_members.cc | 35 +++++++++---------- 2 files changed, 21 insertions(+), 19 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 9dd4d0097f7..4ee7fd7967b 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,8 @@ +2003-11-30 Paolo Carlini + + * config/locale/gnu/codecvt_members.cc (codecvt::do_in, + codecvt::do_length): More minor tweaks. + 2003-11-30 Paolo Carlini * config/locale/gnu/codecvt_members.cc (codecvt::do_in): diff --git a/libstdc++-v3/config/locale/gnu/codecvt_members.cc b/libstdc++-v3/config/locale/gnu/codecvt_members.cc index b0c9891a165..3a3e324fee9 100644 --- a/libstdc++-v3/config/locale/gnu/codecvt_members.cc +++ b/libstdc++-v3/config/locale/gnu/codecvt_members.cc @@ -144,23 +144,21 @@ namespace std __from_chunk_end = __from_end; __from = __from_next; - const size_t __conv = mbsnrtowcs(__to_next, &__from_next, - __from_chunk_end - __from_next, - __to_end - __to_next, &__state); + size_t __conv = mbsnrtowcs(__to_next, &__from_next, + __from_chunk_end - __from_next, + __to_end - __to_next, &__state); if (__conv == static_cast(-1)) { // In case of error, in order to stop at the exact place we // have to start again from the beginning with a series of // mbrtowc. - for (;; ++__to_next) + for (;; ++__to_next, __from += __conv) { - const size_t __conv_err = mbrtowc(__to_next, __from, - __from_end - __from, - &__tmp_state); - if (__conv_err == static_cast(-1) - || __conv_err == static_cast(-2)) + __conv = mbrtowc(__to_next, __from, __from_end - __from, + &__tmp_state); + if (__conv == static_cast(-1) + || __conv == static_cast(-2)) break; - __from += __conv_err; } __from_next = __from; __state = __tmp_state; @@ -262,22 +260,21 @@ namespace std __from_chunk_end = __end; const extern_type* __tmp_from = __from; - const size_t __conv = mbsnrtowcs(__to, &__from, - __from_chunk_end - __from, - __max, &__state); + size_t __conv = mbsnrtowcs(__to, &__from, + __from_chunk_end - __from, + __max, &__state); if (__conv == static_cast(-1)) { // In case of error, in order to stop at the exact place we // have to start again from the beginning with a series of // mbrtowc. - for (__from = __tmp_from;;) + for (__from = __tmp_from;; __from += __conv) { - const size_t __conv_err = mbrtowc(NULL, __from, __end - __from, - &__tmp_state); - if (__conv_err == static_cast(-1) - || __conv_err == static_cast(-2)) + __conv = mbrtowc(NULL, __from, __end - __from, + &__tmp_state); + if (__conv == static_cast(-1) + || __conv == static_cast(-2)) break; - __from += __conv_err; } __state = __tmp_state; __ret += __from - __tmp_from; -- 2.30.2