summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-06-13 16:54:53 +0000
committernaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-06-13 16:54:53 +0000
commit44a8a15037bd85151e1d2ded07cfa8ac56edd089 (patch)
tree3cac6daeee7e063e8549ab2b4ac706a9a8c0c01d
parent5b697c7e5ce1c9c64ddea4400570e10878ddfbc9 (diff)
* transcode.c (transcode_restartable0): can't build with VC9.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23685 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog4
-rw-r--r--transcode.c19
2 files changed, 14 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index fe67dc7f85..cde0ed64a9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Sun Jun 14 01:53:00 2009 NARUSE, Yui <naruse@ruby-lang.org>
+
+ * transcode.c (transcode_restartable0): can't build with VC9.
+
Sun Jun 14 01:23:41 2009 Tadayoshi Funaba <tadf@dotrb.org>
* rational.c (nurat_to_f): use fdiv.
diff --git a/transcode.c b/transcode.c
index 7d2d115cb3..b1d1773ce5 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);