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/