summaryrefslogtreecommitdiff
path: root/io.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-04-01 08:31:49 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-04-01 08:31:49 +0000
commitde373b1b6cddf602cad483b7ede7b378666d837c (patch)
treea528c42a0de4c92f7dd999523f0b477d2f4faa6c /io.c
parent360453ce14e637e653005232aab50e6294a3fa48 (diff)
* io.c (rb_io_fptr_cleanup): need flush even when io will not be
closed. * io.c (rb_io_initialize): was calling wrong function rb_io_mode_flags(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2316 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'io.c')
-rw-r--r--io.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/io.c b/io.c
index df4f290871..6520ce4925 100644
--- a/io.c
+++ b/io.c
@@ -1194,7 +1194,10 @@ rb_io_fptr_cleanup(fptr, fin)
OpenFile *fptr;
int fin;
{
- if (fptr->mode & FMODE_FDOPEN) return;
+ if (fptr->mode & FMODE_FDOPEN) {
+ io_fflush(GetWriteFile(fptr), fptr);
+ return;
+ }
if (fptr->finalize) {
(*fptr->finalize)(fptr);
}
@@ -2609,7 +2612,7 @@ rb_io_initialize(argc, argv, io)
fd = NUM2INT(fnum);
if (argc == 2) {
SafeStringValue(mode);
- flags = rb_io_mode_flags(RSTRING(mode)->ptr);
+ flags = rb_io_mode_modenum(RSTRING(mode)->ptr);
}
else {
#if defined(HAVE_FCNTL) && defined(F_GETFL)