[前][次][番号順一覧][スレッド一覧]

ruby-changes:21779

From: akr <ko1@a...>
Date: Thu, 24 Nov 2011 20:00:49 +0900 (JST)
Subject: [ruby-changes:21779] akr:r33828 (trunk): * io.c (rb_io_reopen): re-initialize buffereing mode for stdout and

akr	2011-11-24 20:00:35 +0900 (Thu, 24 Nov 2011)

  New Revision: 33828

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=33828

  Log:
    * io.c (rb_io_reopen): re-initialize buffereing mode for stdout and
      stderr.

  Modified files:
    trunk/ChangeLog
    trunk/io.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 33827)
+++ ChangeLog	(revision 33828)
@@ -1,3 +1,8 @@
+Thu Nov 24 19:59:56 2011  Tanaka Akira  <akr@f...>
+
+	* io.c (rb_io_reopen): re-initialize buffereing mode for stdout and
+	  stderr.
+
 Thu Nov 24 11:12:48 2011  KOSAKI Motohiro  <kosaki.motohiro@g...>
 
 	* io.c (rb_io_fsync,rb_io_fdatasync): release GVL during fsync().
Index: io.c
===================================================================
--- io.c	(revision 33827)
+++ io.c	(revision 33828)
@@ -6151,6 +6151,14 @@
         if (setvbuf(fptr->stdio_file, NULL, _IOFBF, 0) != 0)
             rb_warn("setvbuf() can't be honoured for %s", RSTRING_PTR(fptr->pathv));
 #endif
+        if (fptr->stdio_file == stderr) {
+            if (setvbuf(fptr->stdio_file, NULL, _IONBF, BUFSIZ) != 0)
+                rb_warn("setvbuf() can't be honoured for %s", RSTRING_PTR(fptr->pathv));
+        }
+        else if (fptr->stdio_file == stdout && isatty(fptr->fd)) {
+            if (setvbuf(fptr->stdio_file, NULL, _IOLBF, BUFSIZ) != 0)
+                rb_warn("setvbuf() can't be honoured for %s", RSTRING_PTR(fptr->pathv));
+        }
     }
     else {
         if (close(fptr->fd) < 0)

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]