summaryrefslogtreecommitdiff
path: root/io.c
diff options
context:
space:
mode:
Diffstat (limited to 'io.c')
-rw-r--r--io.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/io.c b/io.c
index b187bfec31..9f7be6777a 100644
--- a/io.c
+++ b/io.c
@@ -1533,8 +1533,8 @@ io_s_new(argc, argv)
VALUE *argv;
{
VALUE fnum, mode;
- FILE *f;
char *m = "r";
+ VALUE io;
rb_scan_args(argc, argv, "11", &fnum, &mode);
@@ -1542,8 +1542,10 @@ io_s_new(argc, argv)
Check_SafeStr(mode);
m = RSTRING(mode)->ptr;
}
- f = rb_fdopen(NUM2INT(fnum), m);
- return prep_stdio(f, io_mode_flags(m));
+ io = prep_stdio(rb_fdopen(NUM2INT(fnum), m), io_mode_flags(m));
+ obj_call_init(io);
+
+ return io;
}
static VALUE filename, file;