diff options
author | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-02-25 09:23:15 +0000 |
---|---|---|
committer | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-02-25 09:23:15 +0000 |
commit | cfdb3f5c264ebf1dde0845015b567b2aded894de (patch) | |
tree | ae3b8e7d7548716e2b012b8b8b9a7a817c514f2a /ext | |
parent | 2b0014ca250ba6defec37420025ede253d485063 (diff) |
merge revision(s) 53435: [Backport #11945]
* ext/stringio/stringio.c (strio_binmode): implement to set encoding
* test/stringio/test_stringio.rb (test_binmode): new test
[ruby-core:72699] [Bug #11945]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@53927 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext')
-rw-r--r-- | ext/stringio/stringio.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/ext/stringio/stringio.c b/ext/stringio/stringio.c index 55563c3a69..ca99fc72af 100644 --- a/ext/stringio/stringio.c +++ b/ext/stringio/stringio.c @@ -497,7 +497,17 @@ strio_set_lineno(VALUE self, VALUE lineno) return lineno; } -#define strio_binmode strio_self +static VALUE +strio_binmode(VALUE self) +{ + struct StringIO *ptr = StringIO(self); + rb_encoding *enc = rb_ascii8bit_encoding(); + + if (WRITABLE(self)) { + rb_enc_associate(ptr->string, enc); + } + return self; +} #define strio_fcntl strio_unimpl |