aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--eval_error.c2
-rw-r--r--test/ruby/test_exception.rb12
3 files changed, 20 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 10bee41bc1..b492bec045 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Sat Oct 31 10:22:49 2015 yui-knk <spiketeika@gmail.com>
+
+ * eval_error.c (undef_mesg_for): fix typo. Before this commit
+ `ArgumentError: malformed format string - %$` was raised when
+ `NameError#message` is called. [ruby-core:71282] [Bug #11640]
+ [Fix GH-1077]
+
Fri Oct 30 21:12:45 2015 Kazuki Tsujimoto <kazuki@callcc.net>
* gems/bundled_gems: update to power_assert 0.2.5.
diff --git a/eval_error.c b/eval_error.c
index 395b9b0196..24bab9eab9 100644
--- a/eval_error.c
+++ b/eval_error.c
@@ -208,7 +208,7 @@ ruby_error_print(void)
error_print();
}
-#define undef_mesg_for(v, k) rb_fstring_cstr("undefined"v" method `%1$s' for "k" `%$s'")
+#define undef_mesg_for(v, k) rb_fstring_cstr("undefined"v" method `%1$s' for "k" `%2$s'")
#define undef_mesg(v) ( \
is_mod ? \
undef_mesg_for(v, "module") : \
diff --git a/test/ruby/test_exception.rb b/test/ruby/test_exception.rb
index f8ddd9d3fa..d0ed477916 100644
--- a/test/ruby/test_exception.rb
+++ b/test/ruby/test_exception.rb
@@ -721,4 +721,16 @@ $stderr = $stdout; raise "\x82\xa0"') do |outs, errs, status|
assert_raise(NameError) {a.instance_eval("foo")}
assert_raise(NoMethodError, bug10969) {a.public_send("bar", true)}
end
+
+ def test_message_of_name_error
+ begin
+ Module.new do
+ module_function :foo
+ end
+ rescue => e
+ error = e
+ end
+
+ assert_match /\Aundefined method `foo' for module `#<Module:.*>'\z/, error.message
+ end
end