summaryrefslogtreecommitdiffstats
path: root/struct.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-07-23 01:02:18 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-07-23 01:02:18 +0000
commit57fb7655357ccd8a0a72cb70f230fa44e743e14d (patch)
treef9c83bf95a7873e01e38ff396a8bc5490b61162c /struct.c
parent206a6456f7fd9ce4d5ce7c862418d54c19457e18 (diff)
downloadruby-57fb7655357ccd8a0a72cb70f230fa44e743e14d.tar.gz
ruby-57fb7655357ccd8a0a72cb70f230fa44e743e14d.tar.xz
ruby-57fb7655357ccd8a0a72cb70f230fa44e743e14d.zip
* sprintf.c (rb_vsprintf, rb_sprintf): new functions return new String,
using missing/vsnprintf.c. [ruby-dev:26580] * missing/vsnprintf.c: made the output changeable. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@8825 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'struct.c')
-rw-r--r--struct.c12
1 files changed, 2 insertions, 10 deletions
diff --git a/struct.c b/struct.c
index 4468cbe0f..f6d825a01 100644
--- a/struct.c
+++ b/struct.c
@@ -476,19 +476,11 @@ inspect_struct(s, dummy, recur)
long i;
if (recur) {
- 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_sprintf("#<struct %s:...>", cname);
}
members = rb_struct_members(s);
- str = rb_str_buf_new2("#<struct ");
- rb_str_cat2(str, cname);
- rb_str_cat2(str, " ");
+ str = rb_sprintf("#<struct %s ", cname);
for (i=0; i<RSTRUCT(s)->len; i++) {
VALUE slot;
ID id;