summaryrefslogtreecommitdiff
path: root/signal.c
diff options
context:
space:
mode:
authoryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-01-28 09:22:07 +0000
committeryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-01-28 09:22:07 +0000
commita33f0de6a93f31f5f456e62a291d56bf0d913922 (patch)
tree198fa45009500e40bd32236a0ce5f06235592ecd /signal.c
parent8d88e620563221271ae100707d6f164633526f1e (diff)
merges r21746 from trunk into ruby_1_9_1.
* signal.c (trap_handler): also accepts symbols. [ruby-dev:37823] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@21827 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'signal.c')
-rw-r--r--signal.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/signal.c b/signal.c
index 8d75c3bc5c..317537cae5 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;