static VALUE rb_struct_inspect(VALUE s) { if (rb_inspecting_p(s)) { const char *cname = rb_class2name(rb_obj_class(s)); size_t len = strlen(cname) + 14; VALUE str = rb_str_new(0, len); snprintf(RSTRING(str)->ptr, len+1, "#<struct %s:...>", cname); RSTRING(str)->len = strlen(RSTRING(str)->ptr); return str; } return rb_protect_inspect(inspect_struct, s, 0); }
static VALUE rec_pi(VALUE obj, VALUE arg) { if(RTEST(rb_inspecting_p(obj))) return arg; return Qfalse; }