/* * call-seq: * obj.to_s => string * * Returns a string representing <i>obj</i>. The default * <code>to_s</code> prints the object's class and an encoding of the * object id. As a special case, the top-level object that is the * initial execution context of Ruby programs returns ``main.'' */ VALUE rb_any_to_s(obj) VALUE obj; { char *cname = rb_obj_classname(obj); size_t len; VALUE str; len = strlen(cname)+6+16; str = rb_str_new(0, len); /* 6:tags 16:addr */ snprintf(RSTRING(str)->ptr, len+1, "#<%s:0x%lx>", cname, obj); RSTRING(str)->len = strlen(RSTRING(str)->ptr); if (OBJ_TAINTED(obj)) OBJ_TAINT(str); return str; }