summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-01-23 04:25:29 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-01-23 04:25:29 +0000
commit149326e198d68449308b87aa6d20cd83c712a183 (patch)
treec833d6f5e5d37f32511b8b75f35421033f9b9b27
parentfcd4c546c1f9f1b9f5fd8fac1108e35f4d07b840 (diff)
downloadruby-149326e198d68449308b87aa6d20cd83c712a183.tar.gz
ruby-149326e198d68449308b87aa6d20cd83c712a183.tar.xz
ruby-149326e198d68449308b87aa6d20cd83c712a183.zip
* signal.c (trap_handler): also accepts symbols. [ruby-dev:37823]
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21746 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog4
-rw-r--r--signal.c4
2 files changed, 8 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 43c2848fc..3486ba925 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Fri Jan 23 13:26:45 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * signal.c (trap_handler): also accepts symbols. [ruby-dev:37823]
+
Thu Jan 22 18:14:04 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
* lib/mkmf.rb (create_makefile): removes installed files under
diff --git a/signal.c b/signal.c
index 85f4c90b7..f3cfbc84d 100644
--- a/signal.c
+++ b/signal.c
@@ -753,6 +753,10 @@ trap_handler(VALUE *cmd, int sig)
}
else {
command = rb_check_string_type(*cmd);
+ if (NIL_P(command) && SYMBOL_P(*cmd)) {
+ command = rb_id2str(SYM2ID(*cmd));
+ if (!command) rb_raise(rb_eArgError, "bad handler");
+ }
if (!NIL_P(command)) {
SafeStringValue(command); /* taint check */
*cmd = command;