From 80918e2ac941b262b4e3be644292676e6c5d5277 Mon Sep 17 00:00:00 2001 From: naruse Date: Sat, 29 Aug 2009 16:17:26 +0000 Subject: * 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 --- ChangeLog | 5 +++++ ext/zlib/zlib.c | 2 +- test/zlib/test_zlib.rb | 6 ++++-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2d02e95834..629e11c902 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Sun Aug 30 01:15:31 2009 NARUSE, Yui + + * 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) * 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 -- cgit v1.2.3