diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-01-23 04:25:29 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-01-23 04:25:29 +0000 |
commit | 149326e198d68449308b87aa6d20cd83c712a183 (patch) | |
tree | c833d6f5e5d37f32511b8b75f35421033f9b9b27 /signal.c | |
parent | fcd4c546c1f9f1b9f5fd8fac1108e35f4d07b840 (diff) | |
download | ruby-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
Diffstat (limited to 'signal.c')
-rw-r--r-- | signal.c | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -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; |