Hmm... either I'm misunderstanding you or that's not what I need. I want to make a call from C, presumably using rb_funcall, to a method (defined elsewhere) that is expecting a block. For now I've simply resorted to an rb_eval_string hack. On Sun, 21 Jan 2001, ts wrote: > If you put "&" at the end ruby will do : > > if (*p == '&') { > var = va_arg(vargs, VALUE*); > if (rb_block_given_p()) { > *var = rb_f_lambda(); > } > else { > *var = Qnil; > } > p++; > > This is exactly the same thing than when you write : > > def toto(a, b, &block) > > > Guy Decoux > > > >