summaryrefslogtreecommitdiffstats
path: root/lem/signal.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lem/signal.lua')
-rw-r--r--lem/signal.lua14
1 files changed, 13 insertions, 1 deletions
diff --git a/lem/signal.lua b/lem/signal.lua
index ed3f4db..b3d84cb 100644
--- a/lem/signal.lua
+++ b/lem/signal.lua
@@ -72,13 +72,24 @@ do
end
local function lookup(signal)
- return core.lookup(string.sub(signal, 4):upper())
+ if type(signal) == 'string' then
+ if string.sub(signal, 1, 3):upper() == 'SIG' then
+ signal = string.sub(signal, 4)
+ end
+ return core.tonumber(signal:upper())
+ else
+ local ret = core.tostring(signal)
+ if not ret then return nil end
+
+ return 'SIG' .. ret
+ end
end
local M = {}
M.lookup = lookup
function M.register(signal, func)
+ assert(type(signal) == 'string', 'signal should be a string')
local signum = lookup(signal)
if not signum then return nil, 'unknown signal' end
@@ -92,6 +103,7 @@ function M.register(signal, func)
end
function M.unregister(signal, func)
+ assert(type(signal) == 'string', 'signal should be a string')
local signum = lookup(signal)
if not signum then return nil, 'unknown signal' end