[前][次][番号順一覧][スレッド一覧]

ruby-changes:15695

From: nobu <ko1@a...>
Date: Tue, 4 May 2010 18:51:43 +0900 (JST)
Subject: [ruby-changes:15695] Ruby:r27615 (trunk): * error.c (name_err_mesg_to_str): preserve encoding of inspection.

nobu	2010-05-04 18:51:27 +0900 (Tue, 04 May 2010)

  New Revision: 27615

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=27615

  Log:
    * error.c (name_err_mesg_to_str): preserve encoding of inspection.
      [ruby-core:29948]

  Modified files:
    trunk/ChangeLog
    trunk/error.c
    trunk/test/ruby/test_exception.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 27614)
+++ ChangeLog	(revision 27615)
@@ -1,3 +1,8 @@
+Tue May  4 18:51:22 2010  Nobuyoshi Nakada  <nobu@r...>
+
+	* error.c (name_err_mesg_to_str): preserve encoding of inspection.
+	  [ruby-core:29948]
+
 Tue May  4 18:38:16 2010  Nobuyoshi Nakada  <nobu@r...>
 
 	* test/fileutils/test_fileutils.rb (test_copy_stream):
Index: error.c
===================================================================
--- error.c	(revision 27614)
+++ error.c	(revision 27615)
@@ -880,7 +880,7 @@
 	    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));
 	}
Index: test/ruby/test_exception.rb
===================================================================
--- test/ruby/test_exception.rb	(revision 27614)
+++ test/ruby/test_exception.rb	(revision 27615)
@@ -304,4 +304,12 @@
     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

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]