summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--ruby.c8
-rw-r--r--test/ruby/test_rubyoptions.rb10
3 files changed, 19 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index be6f96dafa..91586af4dc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Sun Oct 14 12:30:44 2012 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * ruby.c (rb_f_sub, rb_f_gsub): pass the given block.
+ [ruby-core:47967] [Bug #7157]
+
Sat Oct 13 23:15:39 2012 NAKAMURA Usaku <usa@ruby-lang.org>
* regparse.c (parse_char_class): should match with a hyphen after a
diff --git a/ruby.c b/ruby.c
index 2fbd48f974..ba2e5aeae2 100644
--- a/ruby.c
+++ b/ruby.c
@@ -1186,7 +1186,7 @@ uscore_get(void)
static VALUE
rb_f_sub(int argc, VALUE *argv)
{
- VALUE str = rb_funcall3(uscore_get(), rb_intern("sub"), argc, argv);
+ VALUE str = rb_funcall_passing_block(uscore_get(), rb_intern("sub"), argc, argv);
rb_lastline_set(str);
return str;
}
@@ -1205,7 +1205,7 @@ rb_f_sub(int argc, VALUE *argv)
static VALUE
rb_f_gsub(int argc, VALUE *argv)
{
- VALUE str = rb_funcall3(uscore_get(), rb_intern("gsub"), argc, argv);
+ VALUE str = rb_funcall_passing_block(uscore_get(), rb_intern("gsub"), argc, argv);
rb_lastline_set(str);
return str;
}
@@ -1223,7 +1223,7 @@ rb_f_gsub(int argc, VALUE *argv)
static VALUE
rb_f_chop(void)
{
- VALUE str = rb_funcall3(uscore_get(), rb_intern("chop"), 0, 0);
+ VALUE str = rb_funcall_passing_block(uscore_get(), rb_intern("chop"), 0, 0);
rb_lastline_set(str);
return str;
}
@@ -1243,7 +1243,7 @@ rb_f_chop(void)
static VALUE
rb_f_chomp(int argc, VALUE *argv)
{
- VALUE str = rb_funcall3(uscore_get(), rb_intern("chomp"), argc, argv);
+ VALUE str = rb_funcall_passing_block(uscore_get(), rb_intern("chomp"), argc, argv);
rb_lastline_set(str);
return str;
}
diff --git a/test/ruby/test_rubyoptions.rb b/test/ruby/test_rubyoptions.rb
index d448b08014..c509f22d8d 100644
--- a/test/ruby/test_rubyoptions.rb
+++ b/test/ruby/test_rubyoptions.rb
@@ -578,4 +578,14 @@ class TestRubyOptions < Test::Unit::TestCase
feature2408 = '[ruby-core:26925]'
assert_in_out_err(%w[.], "", [], /Is a directory -- \./, feature2408)
end
+
+ def test_pflag_gsub
+ bug7157 = '[ruby-core:47967]'
+ assert_in_out_err(['-p', '-e', 'gsub(/t.*/){"TEST"}'], %[test], %w[TEST], [], bug7157)
+ end
+
+ def test_pflag_sub
+ bug7157 = '[ruby-core:47967]'
+ assert_in_out_err(['-p', '-e', 'sub(/t.*/){"TEST"}'], %[test], %w[TEST], [], bug7157)
+ end
end