From d88957abad479e3580dc646ab32707a9aaa80c11 Mon Sep 17 00:00:00 2001 From: glass Date: Sun, 10 May 2015 03:43:22 +0000 Subject: * ext/zlib/zlib.c (rb_gzreader_external_encoding): define GzipReader#external_encoding. [Bug #10900] * test/zlib/test_zlib.rb: test for above. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50460 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/zlib/zlib.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'ext/zlib') diff --git a/ext/zlib/zlib.c b/ext/zlib/zlib.c index 9c2b7b624f..564f5c83ca 100644 --- a/ext/zlib/zlib.c +++ b/ext/zlib/zlib.c @@ -4237,6 +4237,17 @@ rb_gzreader_readlines(int argc, VALUE *argv, VALUE obj) return dst; } +/* + * Document-method: Zlib::GzipReader#external_encoding + * + * See Zlib::GzipReader documentation for a description. + */ +static VALUE +rb_gzreader_external_encoding(VALUE self) +{ + return rb_enc_from_encoding(get_gzfile(self)->enc); +} + #endif /* GZIP_SUPPORT */ void @@ -4505,6 +4516,7 @@ Init_zlib(void) rb_define_method(cGzipReader, "each_line", rb_gzreader_each, -1); rb_define_method(cGzipReader, "lines", rb_gzreader_lines, -1); rb_define_method(cGzipReader, "readlines", rb_gzreader_readlines, -1); + rb_define_method(cGzipReader, "external_encoding", rb_gzreader_external_encoding, 0); /* The OS code of current host */ rb_define_const(mZlib, "OS_CODE", INT2FIX(OS_CODE)); -- cgit v1.2.3