ささだです.

Yukihiro Matsumoto wrote:
> rb_proc_call2ではなく、rb_proc_call_with_blockとかの方が良い
> と思いますが、実装については私から文句をつけるところはありま
> せん。でも〜with_blockは長すぎという気もしますね。

 〜2(...) という関数名は,

 <ruby.h>:712:#define ALLOC_N(type,n) (type*)xmalloc2((n),sizeof(type))
 <ruby.h>:714:#define REALLOC_N(var,type,n)
(var)=(type*)xrealloc2((char*)(var),(n),sizeof(type))
 <ruby.h>:761:ID rb_intern2(const char*, long);
 <ruby.h>:794:VALUE rb_funcall2(VALUE, ID, int, const VALUE*);
 <ruby.h>:834:VALUE rb_yield_values2(int n, const VALUE *argv);
 <ruby.h>:841:VALUE
rb_rescue2(VALUE(*)(ANYARGS),VALUE,VALUE(*)(ANYARGS),VALUE,...);

 <intern.h>:43:VALUE rb_ary_new2(long);
 <intern.h>:123:#define rb_rational_raw2(x,y) rb_rational_raw(x, y)
 <intern.h>:126:#define rb_rational_new2(x,y) rb_rational_new(x, y)
 <intern.h>:129:#define rb_Rational2(x,y) rb_Rational(x, y)
 <intern.h>:133:#define rb_complex_raw2(x,y) rb_complex_raw(x, y)
 <intern.h>:136:#define rb_complex_new2(x,y) rb_complex_new(x, y)
 <intern.h>:139:#define rb_Complex2(x,y) rb_Complex(x, y)
 <intern.h>:187:VALUE rb_exc_new2(VALUE, const char*);
 <intern.h>:384:void rb_write_error2(const char*, long);
 <intern.h>:475:unsigned long rb_genrand_int32(void);
 <intern.h>:490:VALUE rb_reg_match2(VALUE);
 <intern.h>:524:VALUE rb_str_new2(const char*);
 <intern.h>:529:VALUE rb_tainted_str_new2(const char*);
 <intern.h>:531:VALUE rb_str_buf_new2(const char*);
 <intern.h>:534:VALUE rb_usascii_str_new2(const char*);
 <intern.h>:539:VALUE rb_str_buf_cat2(VALUE, const char*);
 <intern.h>:557:VALUE rb_str_cat2(VALUE, const char*);

と,沢山あったので,そういうものかと思っていました.決めていただけれ
ば,それを利用するようにします.

-- 
// SASADA Koichi at atdot dot net