diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-12-12 23:58:58 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-12-12 23:58:58 +0000 |
commit | b754d62f725210fc9bfdcd564e9fc96a20d965a6 (patch) | |
tree | 602bc3610dffc41408a62687773210b530974bb6 /io.c | |
parent | 0ca7036682dad1caea4e7a4fe8fd908d94c878e8 (diff) | |
download | ruby-b754d62f725210fc9bfdcd564e9fc96a20d965a6.tar.gz |
* io.c (rb_io_getc): use default external encoding if fptr->enc is
not set. [ruby-dev:32565]
* lib/rubygems/package.rb (Gem::TarReader::Entry::rewind): typo fixed.
[ruby-dev:32565]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14204 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'io.c')
-rw-r--r-- | io.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -2132,15 +2132,17 @@ rb_io_getc(VALUE io) rb_io_t *fptr; int r, n; VALUE str; + rb_encoding *enc; GetOpenFile(io, fptr); rb_io_check_readable(fptr); + enc = fptr->enc ? fptr->enc : rb_default_external_encoding(); READ_CHECK(fptr); if (io_fillbuf(fptr) < 0) { return Qnil; } - r = rb_enc_precise_mbclen(fptr->rbuf+fptr->rbuf_off, fptr->rbuf+fptr->rbuf_off+fptr->rbuf_len, fptr->enc); + r = rb_enc_precise_mbclen(fptr->rbuf+fptr->rbuf_off, fptr->rbuf+fptr->rbuf_off+fptr->rbuf_len, enc); if ((n = MBCLEN_CHARFOUND(r)) != 0 && n <= fptr->rbuf_len) { str = rb_str_new(fptr->rbuf+fptr->rbuf_off, n); fptr->rbuf_off += n; @@ -2154,7 +2156,7 @@ getc_needmore: rb_str_cat(str, fptr->rbuf+fptr->rbuf_off, 1); fptr->rbuf_off++; fptr->rbuf_len--; - r = rb_enc_precise_mbclen(RSTRING_PTR(str), RSTRING_PTR(str)+RSTRING_LEN(str), fptr->enc); + r = rb_enc_precise_mbclen(RSTRING_PTR(str), RSTRING_PTR(str)+RSTRING_LEN(str), enc); if (MBCLEN_NEEDMORE(r)) { goto getc_needmore; } |