diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-11-06 09:05:11 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-11-06 09:05:11 +0000 |
commit | 9fad82a6ba56b575f5f16255049393357f4f7751 (patch) | |
tree | 1c183ff85454194967822022b6b8cbbbdc8e2366 /io.c | |
parent | 818d6a1e4f145f3ff9a60933f71336a034c59536 (diff) |
* io.c (rb_io_inspect): show the path also at a closed file.
[ruby-dev:21851]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4911 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'io.c')
-rw-r--r-- | io.c | 14 |
1 files changed, 10 insertions, 4 deletions
@@ -651,13 +651,19 @@ rb_io_inspect(obj) VALUE obj; { OpenFile *fptr; - char *buf, *cname; + char *buf, *cname, *st = ""; + long len; fptr = RFILE(rb_io_taint_check(obj))->fptr; - if (!fptr || !(fptr->f || fptr->f2) || !fptr->path) return rb_any_to_s(obj); + if (!fptr || !fptr->path) return rb_any_to_s(obj); cname = rb_obj_classname(obj); - buf = ALLOCA_N(char, strlen(cname) + strlen(fptr->path) + 5); - sprintf(buf, "#<%s:%s>", cname, fptr->path); + len = strlen(cname) + strlen(fptr->path) + 5; + if (!(fptr->f || fptr->f2)) { + st = " (closed)"; + len += 9; + } + buf = ALLOCA_N(char, len); + sprintf(buf, "#<%s:%s%s>", cname, fptr->path, st); return rb_str_new2(buf); } |