diff options
author | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-08-29 16:17:26 +0000 |
---|---|---|
committer | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-08-29 16:17:26 +0000 |
commit | 80918e2ac941b262b4e3be644292676e6c5d5277 (patch) | |
tree | 70667e0cfc9700f11bc23f1b9ed32ef67a5291bb | |
parent | ebabbc6cb92f818021f85275130f3c96fdb4f0fb (diff) | |
download | ruby-80918e2ac941b262b4e3be644292676e6c5d5277.tar.gz |
* ext/zlib/zlib.c (gzfile_read_all): use gzfile_newstr;
set and convert its encoding. [ruby-dev:38304]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24704 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | ext/zlib/zlib.c | 2 | ||||
-rw-r--r-- | test/zlib/test_zlib.rb | 6 |
3 files changed, 10 insertions, 3 deletions
@@ -1,3 +1,8 @@ +Sun Aug 30 01:15:31 2009 NARUSE, Yui <naruse@ruby-lang.org> + + * ext/zlib/zlib.c (gzfile_read_all): use gzfile_newstr; + set and convert its encoding. [ruby-dev:38304] + Sat Aug 29 20:40:02 2009 Yuki Sonoda (Yugui) <yugui@yugui.jp> * vm_eval.c (rb_call0): gets rid of checking method cache twice. diff --git a/ext/zlib/zlib.c b/ext/zlib/zlib.c index 288b13b728..8f23bcff21 100644 --- a/ext/zlib/zlib.c +++ b/ext/zlib/zlib.c @@ -2202,7 +2202,7 @@ gzfile_read_all(struct gzfile *gz) dst = zstream_detach_buffer(&gz->z); gzfile_calc_crc(gz, dst); OBJ_TAINT(dst); - return dst; + return gzfile_newstr(gz, dst); } static VALUE diff --git a/test/zlib/test_zlib.rb b/test/zlib/test_zlib.rb index aa3059d5b1..abb3ea32b3 100644 --- a/test/zlib/test_zlib.rb +++ b/test/zlib/test_zlib.rb @@ -470,10 +470,12 @@ if defined? Zlib def test_read t = Tempfile.new("test_zlib_gzip_reader") t.close - Zlib::GzipWriter.open(t.path) {|gz| gz.print("foobar") } + str = "\u3042\u3044\u3046" + Zlib::GzipWriter.open(t.path) {|gz| gz.print(str) } - f = Zlib::GzipReader.open(t.path) + f = Zlib::GzipReader.open(t.path, encoding: "UTF-8") assert_raise(ArgumentError) { f.read(-1) } + assert_equal(str, f.read) end def test_readpartial |