summaryrefslogtreecommitdiff
path: root/lang/ruby16-base/patches/patch-ad
diff options
context:
space:
mode:
Diffstat (limited to 'lang/ruby16-base/patches/patch-ad')
-rw-r--r--lang/ruby16-base/patches/patch-ad32
1 files changed, 32 insertions, 0 deletions
diff --git a/lang/ruby16-base/patches/patch-ad b/lang/ruby16-base/patches/patch-ad
new file mode 100644
index 00000000000..2d05cf4506f
--- /dev/null
+++ b/lang/ruby16-base/patches/patch-ad
@@ -0,0 +1,32 @@
+$NetBSD: patch-ad,v 1.1.1.1 2005/03/06 16:36:08 taca Exp $
+
+--- eval.c.orig 2002-12-16 16:34:22.000000000 +0900
++++ eval.c
+@@ -3531,7 +3531,8 @@ rb_jump_tag(tag)
+ int
+ rb_block_given_p()
+ {
+- if (ruby_frame->iter) return Qtrue;
++ if (ruby_frame->iter && ruby_block)
++ return Qtrue;
+ return Qfalse;
+ }
+
+@@ -4489,7 +4490,7 @@ rb_call0(klass, recv, id, argc, argv, bo
+ rb_raise(rb_eArgError, "wrong # of arguments(%d for %d)",
+ argc, i);
+ }
+- if (node->nd_rest == -1) {
++ if ((int)node->nd_rest == -1) {
+ int opt = i;
+ NODE *optnode = node->nd_opt;
+
+@@ -4525,7 +4526,7 @@ rb_call0(klass, recv, id, argc, argv, bo
+ rb_eval(recv, opt);
+ }
+ }
+- if (node->nd_rest >= 0) {
++ if ((int)node->nd_rest >= 0) {
+ VALUE v;
+
+ if (argc > 0)