aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Carlini <pcarlini@suse.de>2003-11-30 19:10:50 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2003-11-30 19:10:50 +0000
commit1644f06da7e1b30215c047d45291caf33607c92e (patch)
treee4f628643e599d8b02531fb929bebf4c2af5fcb7
parentf19a9af7e12657d431363e301fc31aec7d507684 (diff)
downloadgcc-1644f06da7e1b30215c047d45291caf33607c92e.zip
gcc-1644f06da7e1b30215c047d45291caf33607c92e.tar.gz
gcc-1644f06da7e1b30215c047d45291caf33607c92e.tar.bz2
codecvt_members.cc (codecvt::do_in, [...]): More minor tweaks.
2003-11-30 Paolo Carlini <pcarlini@suse.de> * config/locale/gnu/codecvt_members.cc (codecvt::do_in, codecvt::do_length): More minor tweaks. From-SVN: r74069
-rw-r--r--libstdc++-v3/ChangeLog5
-rw-r--r--libstdc++-v3/config/locale/gnu/codecvt_members.cc35
2 files changed, 21 insertions, 19 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 9dd4d00..4ee7fd7 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,5 +1,10 @@
2003-11-30 Paolo Carlini <pcarlini@suse.de>
+ * config/locale/gnu/codecvt_members.cc (codecvt::do_in,
+ codecvt::do_length): More minor tweaks.
+
+2003-11-30 Paolo Carlini <pcarlini@suse.de>
+
* config/locale/gnu/codecvt_members.cc (codecvt::do_in):
Minor stylistic tweak.
diff --git a/libstdc++-v3/config/locale/gnu/codecvt_members.cc b/libstdc++-v3/config/locale/gnu/codecvt_members.cc
index b0c9891..3a3e324 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<size_t>(-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<size_t>(-1)
- || __conv_err == static_cast<size_t>(-2))
+ __conv = mbrtowc(__to_next, __from, __from_end - __from,
+ &__tmp_state);
+ if (__conv == static_cast<size_t>(-1)
+ || __conv == static_cast<size_t>(-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<size_t>(-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<size_t>(-1)
- || __conv_err == static_cast<size_t>(-2))
+ __conv = mbrtowc(NULL, __from, __end - __from,
+ &__tmp_state);
+ if (__conv == static_cast<size_t>(-1)
+ || __conv == static_cast<size_t>(-2))
break;
- __from += __conv_err;
}
__state = __tmp_state;
__ret += __from - __tmp_from;