[macruby-changes] [1062] MacRuby/branches/experimental/io.c
source_changes at macosforge.org
source_changes at macosforge.org
Sun Mar 22 13:37:43 PDT 2009
Revision: 1062
http://trac.macosforge.org/projects/ruby/changeset/1062
Author: lsansonetti at apple.com
Date: 2009-03-22 13:37:41 -0700 (Sun, 22 Mar 2009)
Log Message:
-----------
re-implemented backquotes
Modified Paths:
--------------
MacRuby/branches/experimental/io.c
Modified: MacRuby/branches/experimental/io.c
===================================================================
--- MacRuby/branches/experimental/io.c 2009-03-22 19:39:00 UTC (rev 1061)
+++ MacRuby/branches/experimental/io.c 2009-03-22 20:37:41 UTC (rev 1062)
@@ -367,6 +367,12 @@
if (close_write && io_struct->writeStream != NULL) {
CFWriteStreamClose(io_struct->writeStream);
}
+ if (io_struct->fp != NULL) {
+ const int status = pclose(io_struct->fp);
+ io_struct->fp = NULL;
+ // TODO find out the real pid instead of passing -1
+ rb_last_status_set(status, -1);
+ }
}
int
@@ -1548,7 +1554,6 @@
io_close(VALUE io, bool close_read, bool close_write)
{
rb_io_t *io_struct = ExtractIOStruct(io);
-
io_struct_close(io_struct, close_read, close_write);
}
@@ -2903,7 +2908,12 @@
static VALUE
rb_f_backquote(VALUE obj, SEL sel, VALUE str)
{
-rb_notimplement();
+ VALUE io = rb_io_s_popen(rb_cIO, 0, 1, &str);
+ VALUE bstr = rb_bytestring_new();
+ rb_io_read_all(ExtractIOStruct(io), bstr);
+ rb_io_close(io, 0);
+
+ return bstr;
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20090322/3088a71b/attachment.html>
More information about the macruby-changes
mailing list