diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-05-04 09:51:27 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-05-04 09:51:27 +0000 |
commit | e8249be9fca2ebfc101f7fc3d14ee935391cd797 (patch) | |
tree | be9d81ffc6cbc86258090c94412100e3d2dc50ed | |
parent | 16c40ec1a5258250876b3b95a299397a79244a10 (diff) | |
download | ruby-e8249be9fca2ebfc101f7fc3d14ee935391cd797.tar.gz |
* error.c (name_err_mesg_to_str): preserve encoding of inspection.
[ruby-core:29948]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27615 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | error.c | 2 | ||||
-rw-r--r-- | test/ruby/test_exception.rb | 8 |
3 files changed, 14 insertions, 1 deletions
@@ -1,3 +1,8 @@ +Tue May 4 18:51:22 2010 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * error.c (name_err_mesg_to_str): preserve encoding of inspection. + [ruby-core:29948] + Tue May 4 18:38:16 2010 Nobuyoshi Nakada <nobu@ruby-lang.org> * test/fileutils/test_fileutils.rb (test_copy_stream): @@ -880,7 +880,7 @@ name_err_mesg_to_str(VALUE obj) break; } if (desc && desc[0] != '#') { - d = rb_str_new2(desc); + d = d ? rb_str_dup(d) : rb_str_new2(desc); rb_str_cat2(d, ":"); rb_str_cat2(d, rb_obj_classname(obj)); } diff --git a/test/ruby/test_exception.rb b/test/ruby/test_exception.rb index d7833b9d44..18ecb404be 100644 --- a/test/ruby/test_exception.rb +++ b/test/ruby/test_exception.rb @@ -304,4 +304,12 @@ end.join end assert(!e.success?) end + + def test_nomethoderror + bug3237 = '[ruby-core:29948]' + str = "\u2600" + id = :"\u2604" + e = assert_raise(NoMethodError) {str.__send__(id)} + assert_equal("undefined method `#{id}' for #{str.inspect}:String", e.message, bug3237) + end end |