From 6e1b30cdac7a5b2e5e42a6e6dc045ee601c11400 Mon Sep 17 00:00:00 2001 From: naruse Date: Sat, 13 Jun 2009 16:54:53 +0000 Subject: * transcode.c (transcode_restartable0): can't build with VC9. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@23685 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 ++++ transcode.c | 19 ++++++++++--------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index fe67dc7f8..cde0ed64a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Sun Jun 14 01:53:00 2009 NARUSE, Yui + + * transcode.c (transcode_restartable0): can't build with VC9. + Sun Jun 14 01:23:41 2009 Tadayoshi Funaba * rational.c (nurat_to_f): use fdiv. diff --git a/transcode.c b/transcode.c index 7d2d115cb..b1d1773ce 100644 --- a/transcode.c +++ b/transcode.c @@ -540,15 +540,16 @@ transcode_restartable0(const unsigned char **in_pos, unsigned char **out_pos, follow_info: switch (next_info & 0x1F) { case NOMAP: - { - const unsigned char *pend = in_p; - in_p = inchar_start; - while (in_p < pend) { - next_byte = (unsigned char)*in_p++; - SUSPEND_OBUF(3); *out_p++ = next_byte; - } - } - continue; + { + const unsigned char *char_start; + size_t char_len, i = 0; + char_start = transcode_char_start(tc, *in_pos, inchar_start, in_p, &char_len); + while (i < char_len) { + SUSPEND_OBUF(3); + *out_p++ = char_start[i++]; + } + } + continue; case 0x00: case 0x04: case 0x08: case 0x0C: case 0x10: case 0x14: case 0x18: case 0x1C: SUSPEND_AFTER_OUTPUT(25); -- cgit