diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-11-23 17:03:48 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-11-23 17:03:48 +0000 |
commit | 25bab786cb416aa491ff62e6d9b6ba196251bfc6 (patch) | |
tree | f36188efb63432fac183d7ac18ab3c3b7968a8f1 | |
parent | b58802a3c145f9bade0bb31c759f090d3fba46c9 (diff) | |
download | ruby-25bab786cb416aa491ff62e6d9b6ba196251bfc6.tar.gz |
string.c: preserve encoding of global variable
* string.c (rb_str_setter): preserve encoding of global variable
name in error message.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48549 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | string.c | 2 | ||||
-rw-r--r-- | test/ruby/test_string.rb | 5 |
3 files changed, 11 insertions, 1 deletions
@@ -1,3 +1,8 @@ +Mon Nov 24 02:03:40 2014 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * string.c (rb_str_setter): preserve encoding of global variable + name in error message. + Mon Nov 24 02:03:30 2014 Nobuyoshi Nakada <nobu@ruby-lang.org> * iseq.c (rb_insn_operand_intern): preserve encoding of method @@ -7998,7 +7998,7 @@ void rb_str_setter(VALUE val, ID id, VALUE *var) { if (!NIL_P(val) && !RB_TYPE_P(val, T_STRING)) { - rb_raise(rb_eTypeError, "value of %s must be String", rb_id2name(id)); + rb_raise(rb_eTypeError, "value of %"PRIsVALUE" must be String", rb_id2str(id)); } *var = val; } diff --git a/test/ruby/test_string.rb b/test/ruby/test_string.rb index c0fd83e107..1285a1c120 100644 --- a/test/ruby/test_string.rb +++ b/test/ruby/test_string.rb @@ -2056,6 +2056,11 @@ class TestString < Test::Unit::TestCase def test_setter assert_raise(TypeError) { $/ = 1 } + name = "\u{5206 884c}" + assert_separately([], <<-"end;") # do + alias $#{name} $/ + assert_raise_with_message(TypeError, /\\$#{name}/) { $#{name} = 1 } + end; end def test_to_id |