From de373b1b6cddf602cad483b7ede7b378666d837c Mon Sep 17 00:00:00 2001 From: matz Date: Mon, 1 Apr 2002 08:31:49 +0000 Subject: * 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 --- ChangeLog | 8 ++++++++ error.c | 2 +- ext/racc/cparse/cparse.c | 2 ++ ext/socket/socket.c | 9 +++++++-- io.c | 7 +++++-- 5 files changed, 23 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 72bcf799ed..5f3df76c6e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Mon Apr 1 17:25:50 2002 Yukihiro Matsumoto + + * 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(). + Mon Apr 1 16:52:00 2002 Nobuyoshi Nakada * ext/sdbm/init.c (each_pair): moved prototype before the diff --git a/error.c b/error.c index ecec654a33..edf0b16e2b 100644 --- a/error.c +++ b/error.c @@ -200,7 +200,7 @@ static struct types { T_FALSE, "false", T_SYMBOL, "Symbol", /* :symbol */ T_DATA, "Data", /* internal use: wrapped C pointers */ - T_MATCH, "Match", /* data of $~ */ + T_MATCH, "MatchData", /* data of $~ */ T_VARMAP, "Varmap", /* internal use: dynamic variables */ T_SCOPE, "Scope", /* internal use: variable scope */ T_NODE, "Node", /* internal use: syntax tree node */ diff --git a/ext/racc/cparse/cparse.c b/ext/racc/cparse/cparse.c index 314e6a39c8..84d0af8295 100644 --- a/ext/racc/cparse/cparse.c +++ b/ext/racc/cparse/cparse.c @@ -253,6 +253,8 @@ racc_yyparse(parser, recv, mid, arg, indebug) return v->retval; } +static VALUE call_scaniter _((VALUE)); + static VALUE call_scaniter(data) VALUE data; diff --git a/ext/socket/socket.c b/ext/socket/socket.c index b3cdf6248a..cc76bec78c 100644 --- a/ext/socket/socket.c +++ b/ext/socket/socket.c @@ -186,7 +186,6 @@ init_sock(sock, fd) fp->f = rb_fdopen(fd, "r"); #ifdef NT fp->finalize = sock_finalize; -#else #endif fp->f2 = rb_fdopen(fd, "w"); fp->mode = FMODE_READWRITE; @@ -199,7 +198,13 @@ static VALUE bsock_s_for_fd(klass, fd) VALUE klass, fd; { - return init_sock(rb_obj_alloc(klass), NUM2INT(fd)); + OpenFile *fptr; + VALUE sock = init_sock(rb_obj_alloc(klass), NUM2INT(fd)); + + GetOpenFile(sock, fptr); + fptr->mode |= FMODE_FDOPEN; + + return sock; } static VALUE 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) -- cgit v1.2.3