diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-03-26 11:14:44 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-03-26 11:14:44 +0000 |
commit | e8de850e6d5f9c4d9928753862b4a18147be8983 (patch) | |
tree | 21f5334a96e4e7279048d6db4290d831470275c3 | |
parent | 2d8c3e78516525c2899e6d2a39f9e8cc82b10fc7 (diff) | |
download | ruby-e8de850e6d5f9c4d9928753862b4a18147be8983.tar.gz |
encoding.c: fix encoding of dynsym
* encoding.c (rb_enc_get_index): the encoding of dynamic symbol
comes from fstr.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45438 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | encoding.c | 3 | ||||
-rw-r--r-- | test/ruby/test_encoding.rb | 1 |
2 files changed, 4 insertions, 0 deletions
diff --git a/encoding.c b/encoding.c index df3d65cd48..b1afc87bd2 100644 --- a/encoding.c +++ b/encoding.c @@ -747,6 +747,9 @@ rb_enc_get_index(VALUE obj) obj = rb_id2str(SYM2ID(obj)); } switch (BUILTIN_TYPE(obj)) { + case T_SYMBOL: + obj = RSYMBOL(obj)->fstr; + /* fall through */ as_default: default: case T_STRING: diff --git a/test/ruby/test_encoding.rb b/test/ruby/test_encoding.rb index 9a780a64c5..e3b15eb277 100644 --- a/test/ruby/test_encoding.rb +++ b/test/ruby/test_encoding.rb @@ -110,6 +110,7 @@ class TestEncoding < Test::Unit::TestCase bin = "\xff".force_encoding(Encoding::ASCII_8BIT).to_sym asc = "b".force_encoding(Encoding::ASCII_8BIT) assert_equal(Encoding::ASCII_8BIT, Encoding.compatible?(bin, asc)) + assert_equal(Encoding::UTF_8, Encoding.compatible?("\u{3042}".to_sym, ua.to_sym)) end def test_errinfo_after_autoload |