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

ruby-changes:17745

From: nobu <ko1@a...>
Date: Thu, 11 Nov 2010 23:03:25 +0900 (JST)
Subject: [ruby-changes:17745] Ruby:r29756 (trunk): * io.c (argf_close): untie tied io before closing.

nobu	2010-11-11 23:03:17 +0900 (Thu, 11 Nov 2010)

  New Revision: 29756

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

  Log:
    * io.c (argf_close): untie tied io before closing.

  Modified files:
    trunk/ChangeLog
    trunk/io.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 29755)
+++ ChangeLog	(revision 29756)
@@ -1,5 +1,7 @@
-Thu Nov 11 21:56:10 2010  Nobuyoshi Nakada  <nobu@r...>
+Thu Nov 11 23:03:12 2010  Nobuyoshi Nakada  <nobu@r...>
 
+	* io.c (argf_close): untie tied io before closing.
+
 	* io.c (argf_write): add ARGF.write and so on.
 
 	* io.c (argf_read_nonblock): add ARGF.read_nonblock.
Index: io.c
===================================================================
--- io.c	(revision 29755)
+++ io.c	(revision 29756)
@@ -315,10 +315,15 @@
 {
     VALUE write_io;
     rb_io_check_initialized(RFILE(io)->fptr);
-    GetWriteIO(w);
+    if (!RTEST(w)) {
+	w = 0;
+    }
+    else {
+	GetWriteIO(w);
+    }
     write_io = RFILE(io)->fptr->tied_io_for_writing;
     RFILE(io)->fptr->tied_io_for_writing = w;
-    return write_io;
+    return write_io ? write_io : Qnil;
 }
 
 /*
@@ -6781,6 +6786,9 @@
 static void
 argf_close(VALUE file)
 {
+    if (RB_TYPE_P(file, T_FILE)) {
+	rb_io_set_write_io(file, Qnil);
+    }
     rb_funcall3(file, rb_intern("close"), 0, 0);
 }
 

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

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