From: nobu.nakada@... Date: 2000-02-17T08:01:38+09:00 Subject: [ruby-dev:9237] Re: bang method returns string always なかだです。 すいません、もう一個。 --- eval.c.old Tue Feb 15 06:50:50 2000 +++ eval.c Thu Feb 17 07:53:45 2000 @@ -2971,6 +2971,7 @@ rb_eval(self, receiver, node) case NODE_CASCADE: - result = rb_eval(self, rb_eval(self, receiver, node->nd_recv), node->nd_next); - break; + receiver = rb_eval(self, receiver, node->nd_recv); + node = node->nd_body; + goto again; default: --- node.h.old Sun Feb 13 08:19:59 2000 +++ node.h Thu Feb 17 07:53:24 2000 @@ -320,5 +320,5 @@ typedef struct RNode { #define NEW_PREEXE(b) NEW_SCOPE(b) #define NEW_POSTEXE() rb_node_newnode(NODE_POSTEXE,0,0,0) -#define NEW_CASCADE(r,b) rb_node_newnode(NODE_CASCADE,r,0,b) +#define NEW_CASCADE(r,b) rb_node_newnode(NODE_CASCADE,r,b,0) NODE *rb_node_newnode(); --- sample/test.rb.old Sun Feb 13 16:16:46 2000 +++ sample/test.rb Thu Feb 17 07:49:44 2000 @@ -1180,4 +1180,8 @@ b = 1 a.{bar {|b|}} ok(b == "zot") +b = a.dup +b.zot = "blah" +ok((a.{b.{zot}}) == "blah") +ok((a.{b.{zot}; zot}) == "zot") if $failed > 0 -- そうだ 強気に ちょっと インチキに☆彡 中田 "Bugるくらいがちょうどいいかも;-)" 伸悦