diff options
author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-05-09 23:48:47 +0000 |
---|---|---|
committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-05-09 23:48:47 +0000 |
commit | 08928bb528e2133e733606439765e91a7a5c5e6f (patch) | |
tree | 68447cc9661155cff863a10611dbb06029cf5a28 | |
parent | 5d488225a4e2100358e1f564c9517f01d413c961 (diff) | |
download | ruby-08928bb528e2133e733606439765e91a7a5c5e6f.tar.gz |
* signal.c (trap): Return "SYSTEM_DEFAULT" if SIG_DFL is set.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45894 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | signal.c | 1 | ||||
-rw-r--r-- | test/ruby/test_signal.rb | 7 |
3 files changed, 12 insertions, 0 deletions
@@ -1,3 +1,7 @@ +Sat May 10 08:47:36 2014 Tanaka Akira <akr@fsij.org> + + * signal.c (trap): Return "SYSTEM_DEFAULT" if SIG_DFL is set. + Fri May 9 14:27:05 2014 Nobuyoshi Nakada <nobu@ruby-lang.org> * configure.in (RUBY_SETJMP_TYPE): check for setjmp type after @@ -976,6 +976,7 @@ trap(int sig, sighandler_t func, VALUE command) switch (oldcmd) { case 0: if (oldfunc == SIG_IGN) oldcmd = rb_str_new2("IGNORE"); + else if (oldfunc == SIG_DFL) oldcmd = rb_str_new2("SYSTEM_DEFAULT"); else if (oldfunc == sighandler) oldcmd = rb_str_new2("DEFAULT"); else oldcmd = Qnil; break; diff --git a/test/ruby/test_signal.rb b/test/ruby/test_signal.rb index 14be2d76aa..68da0d5840 100644 --- a/test/ruby/test_signal.rb +++ b/test/ruby/test_signal.rb @@ -175,6 +175,13 @@ class TestSignal < Test::Unit::TestCase end; end if Process.respond_to?(:kill) + def test_trap_system_default + assert_separately([], <<-End) + trap(:QUIT, "SYSTEM_DEFAULT") + assert_equal("SYSTEM_DEFAULT", trap(:QUIT, "DEFAULT")) + End + end + def test_signal_requiring t = Tempfile.new(%w"require_ensure_test .rb") t.puts "sleep" |