ruby-changes:18248
From: kosaki <ko1@a...>
Date: Mon, 20 Dec 2010 23:52:11 +0900 (JST)
Subject: [ruby-changes:18248] Ruby:r30271 (trunk): * error.c (exit_success_p): Check status code more carefully.
kosaki 2010-12-20 23:49:18 +0900 (Mon, 20 Dec 2010) New Revision: 30271 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=30271 Log: * error.c (exit_success_p): Check status code more carefully. status code may have garbage in upper bit. Modified files: trunk/ChangeLog trunk/error.c Index: ChangeLog =================================================================== --- ChangeLog (revision 30270) +++ ChangeLog (revision 30271) @@ -1,3 +1,8 @@ +Tue Dec 21 00:22:44 2010 KOSAKI Motohiro <kosaki.motohiro@g...> + + * error.c (exit_success_p): Check status code more carefully. + status code may have garbage in upper bit. + Mon Dec 20 23:12:37 2010 Tanaka Akira <akr@f...> * node.c: parenthesize macro arguments. Index: error.c =================================================================== --- error.c (revision 30270) +++ error.c (revision 30271) @@ -710,9 +710,15 @@ static VALUE exit_success_p(VALUE exc) { - VALUE status = rb_attr_get(exc, rb_intern("status")); - if (NIL_P(status)) return Qtrue; - if (status == INT2FIX(EXIT_SUCCESS)) return Qtrue; + VALUE status_val = rb_attr_get(exc, rb_intern("status")); + int status; + + if (NIL_P(status_val)) + return Qtrue; + status = NUM2INT(status_val); + if (WIFEXITED(status) && WEXITSTATUS(status) == EXIT_SUCCESS) + return Qtrue; + return Qfalse; } -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/