>>>>> "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