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

ruby-changes:24798

From: akr <ko1@a...>
Date: Wed, 29 Aug 2012 23:44:20 +0900 (JST)
Subject: [ruby-changes:24798] akr:r36849 (trunk): * internal.h (rb_last_status_clear): declared.

akr	2012-08-29 23:44:08 +0900 (Wed, 29 Aug 2012)

  New Revision: 36849

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

  Log:
    * internal.h (rb_last_status_clear): declared.
    
    * process.c (rb_last_status_clear): exported.
      (rb_f_system): call rb_last_status_clear.
    
    * io.c (rb_f_backquote): call rb_last_status_clear.

  Modified files:
    trunk/ChangeLog
    trunk/internal.h
    trunk/io.c
    trunk/process.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 36848)
+++ ChangeLog	(revision 36849)
@@ -1,3 +1,12 @@
+Wed Aug 29 23:42:59 2012  Tanaka Akira  <akr@f...>
+
+	* internal.h (rb_last_status_clear): declared.
+
+	* process.c (rb_last_status_clear): exported.
+	  (rb_f_system): call rb_last_status_clear.
+
+	* io.c (rb_f_backquote): call rb_last_status_clear.
+
 Wed Aug 29 22:01:15 2012  Tanaka Akira  <akr@f...>
 
 	* process.c (rb_f_system): check failures of waitpid.
Index: io.c
===================================================================
--- io.c	(revision 36848)
+++ io.c	(revision 36849)
@@ -7808,6 +7808,7 @@
     rb_io_t *fptr;
 
     SafeStringValue(str);
+    rb_last_status_clear();
     port = pipe_open_s(str, "r", FMODE_READABLE|DEFAULT_TEXTMODE, NULL);
     if (NIL_P(port)) return rb_str_new(0,0);
 
Index: process.c
===================================================================
--- process.c	(revision 36848)
+++ process.c	(revision 36849)
@@ -226,7 +226,7 @@
     rb_iv_set(th->last_status, "pid", PIDT2NUM(pid));
 }
 
-static void
+void
 rb_last_status_clear(void)
 {
     GET_THREAD()->last_status = Qnil;
@@ -3656,6 +3656,7 @@
 #ifdef SIGCHLD
     RETSIGTYPE (*chfunc)(int);
 
+    rb_last_status_clear();
     chfunc = signal(SIGCHLD, SIG_DFL);
 #endif
     pid = rb_spawn_internal(argc, argv, NULL, 0);
Index: internal.h
===================================================================
--- internal.h	(revision 36848)
+++ internal.h	(revision 36849)
@@ -222,6 +222,7 @@
 #define ARGVSTR2ARGV(argv_str) ((char **)RSTRING_PTR(argv_str) + 1)
 
 rb_pid_t rb_fork_ruby(int *status);
+void rb_last_status_clear(void);
 
 /* rational.c */
 VALUE rb_lcm(VALUE x, VALUE y);

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

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