summaryrefslogtreecommitdiff
path: root/lang/ruby16/patches/patch-ad
blob: 41003cb5b5000c8d94c0f566d206648973d038cd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
$NetBSD: patch-ad,v 1.1.1.1 2004/11/27 14:14:05 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)