>>>>> "t" == ts  <decoux / moulon.inra.fr> writes:

t>  No, there is worst

 and with this ?

pigeon% diff -u eval.c~ eval.c
--- eval.c~     Wed Jun  5 07:25:11 2002
+++ eval.c      Wed Jun  5 07:58:37 2002
@@ -2649,7 +2649,10 @@
       case NODE_FLIP2:         /* like AWK */
        {
            VALUE *flip = rb_svar(node->nd_cnt);
-           if (!flip) rb_bug("unexpected local variable");
+           if (!flip) {
+                special_local_set(node->nd_cnt, Qnil);
+                flip = &ruby_scope->local_vars[node->nd_cnt];
+           }
            if (!RTEST(*flip)) {
                if (RTEST(rb_eval(self, node->nd_beg))) {
                    *flip = RTEST(rb_eval(self, node->nd_end))?Qfalse:Qtrue;
pigeon% 

pigeon% diff -u parse.y~ parse.y
--- parse.y~    Wed Jun  5 07:25:11 2002
+++ parse.y     Wed Jun  5 07:53:57 2002
@@ -5451,7 +5451,7 @@
     return Qfalse;
 }
 
-static void
+void
 special_local_set(c, val)
     char c;
     VALUE val;
pigeon% 
   

Guy Decoux