diff options
| -rw-r--r-- | ChangeLog | 5 | ||||
| -rw-r--r-- | io.c | 4 |
2 files changed, 7 insertions, 2 deletions
@@ -1,3 +1,8 @@ +Fri Nov 9 16:51:42 2007 Yukihiro Matsumoto <matz@ruby-lang.org> + + * io.c (rb_io_each_byte): should update rbuf_off and rbuf_len for + each iteration. [ruby-dev:31659][ruby-dev:32192] + Fri Nov 9 15:52:00 2007 Nobuyoshi Nakada <nobu@ruby-lang.org> * encoding.c (enc_check_encoding, rb_set_primary_encoding): ENCODING @@ -2022,11 +2022,11 @@ rb_io_each_byte(VALUE io) p = fptr->rbuf+fptr->rbuf_off; e = p + fptr->rbuf_len; while (p < e) { + fptr->rbuf_off++; + fptr->rbuf_len--; rb_yield(INT2FIX(*p & 0xff)); p++; } - fptr->rbuf_off += fptr->rbuf_len; - fptr->rbuf_len = 0; rb_io_check_readable(fptr); READ_CHECK(fptr); if (io_fillbuf(fptr) < 0) { |
