From afde18c5f5f7d9f49bd9787f6e76addbd0187fbe Mon Sep 17 00:00:00 2001 From: akr Date: Tue, 28 Mar 2006 01:50:11 +0000 Subject: [PATCH] doc update for IO.popen and $?. [ruby-talk:186294] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10061 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- io.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/io.c b/io.c index 5d72af16bc..c0bc351a01 100644 --- a/io.c +++ b/io.c @@ -2072,6 +2072,9 @@ rb_io_close(VALUE io) * an IOError is raised if such an attempt is made. I/O * streams are automatically closed when they are claimed by the * garbage collector. + * + * If ios is opened by IO.popen, + * close sets $?. */ static VALUE @@ -2976,7 +2979,9 @@ pipe_open(int argc, VALUE *argv, const char *mode) * * If a block is given, Ruby will run the command as a child connected * to Ruby with a pipe. Ruby's end of the pipe will be passed as a - * parameter to the block. In this case IO::popen returns + * parameter to the block. + * At the end of block, Ruby close the pipe and sets $?. + * In this case IO::popen returns * the value of the block. * * If a block is given with a _cmd_ of ``-'', @@ -2992,6 +2997,7 @@ pipe_open(int argc, VALUE *argv, const char *mode) * puts "Parent is #{Process.pid}" * IO.popen("date") { |f| puts f.gets } * IO.popen("-") {|f| $stderr.puts "#{Process.pid} is here, f is #{f}"} + * p $? * IO.popen(%w"sed -e s|^|| -e s&$&;zot;&", "r+") {|f| * f.puts "bar"; f.close_write; puts f.gets * } @@ -3003,6 +3009,7 @@ pipe_open(int argc, VALUE *argv, const char *mode) * Wed Apr 9 08:53:52 CDT 2003 * 26169 is here, f is * 26166 is here, f is # + * # * bar;zot; */