summaryrefslogtreecommitdiff
path: root/io.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-05-15 04:27:14 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-05-15 04:27:14 +0000
commitc92a8f21a62539a3f8811a952ae6c6a80570aa70 (patch)
treeb76b4ce817a4fb169dfb69caa37db2cbb5c36a4c /io.c
parent2046e06513f6998359174ccd8e46fba3acef9fc4 (diff)
* io.c (set_stdio): better message.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3799 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'io.c')
-rw-r--r--io.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/io.c b/io.c
index 8d35acee92..df0396ea08 100644
--- a/io.c
+++ b/io.c
@@ -2767,8 +2767,21 @@ set_stdio(val, id, var)
ID id;
VALUE *var;
{
- rb_warn("assignment to %s is deprecated; use STDIN.reopen() instead", rb_id2name(id));
- rb_name_error(id, "%s is a read-only variable", rb_id2name(id));
+ char *vn = rb_id2name(id);
+ char *cn = "IO#";
+
+ if (strlen(vn) > 5) {
+ switch (vn[4]) {
+ case 'i':
+ cn = "STDIN."; break;
+ case 'o':
+ cn = "STDOUT."; break;
+ case 'e':
+ cn = "STDERR."; break;
+ }
+ }
+ rb_warn("assignment to %s is deprecated; use %sreopen() instead", vn, cn);
+ rb_name_error(id, "%s is a read-only variable", vn);
}
static VALUE