summaryrefslogtreecommitdiff
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
commit9e22c8390c0ff2e925762c636969e5a584c0b8a7 (patch)
treec833d6f5e5d37f32511b8b75f35421033f9b9b27
parent770d89c5fa39e6dff431c0fbc44e68db91440aae (diff)
* signal.c (trap_handler): also accepts symbols. [ruby-dev:37823]
git-svn-id: svn+ssh://ci.ruby-lang.org/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 43c2848fce..3486ba9250 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 85f4c90b70..f3cfbc84d6 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;