util.events: Dispatch code now accepts a variable number of arguments
authorWaqas Hussain <waqas20@gmail.com>
Sat, 16 May 2009 23:50:32 +0000 (04:50 +0500)
committerWaqas Hussain <waqas20@gmail.com>
Sat, 16 May 2009 23:50:32 +0000 (04:50 +0500)
util/events.lua

index dc294a5539456e55a6f9f9195efb19004d9af3f8..3816f30b0d13cd660f609288835c6463feab4074 100644 (file)
@@ -52,9 +52,9 @@ function new()
        local function _create_dispatcher(event) -- FIXME duplicate code in fire_event\r
                local h = handlers[event];\r
                if not h then h = {}; handlers[event] = h; end\r
-               local dispatcher = function(data)\r
+               local dispatcher = function(...)\r
                        for _, handler in ipairs(h) do\r
-                               local ret = handler(data);\r
+                               local ret = handler(...);\r
                                if ret ~= nil then return ret; end\r
                        end\r
                end;\r
@@ -64,11 +64,11 @@ function new()
        local function get_dispatcher(event)\r
                return dispatchers[event] or _create_dispatcher(event);\r
        end;\r
-       local function fire_event(event, data) -- FIXME duplicates dispatcher code\r
+       local function fire_event(event, ...) -- FIXME duplicates dispatcher code\r
                local h = handlers[event];\r
                if h then\r
                        for _, handler in ipairs(h) do\r
-                               local ret = handler(data);\r
+                               local ret = handler(...);\r
                                if ret ~= nil then return ret; end\r
                        end\r
                end\r