util.events: Dispatch code now accepts a variable number of arguments

Sun, 17 May 2009 04:50:32 +0500

author
Waqas Hussain <waqas20@gmail.com>
date
Sun, 17 May 2009 04:50:32 +0500
changeset 1181
dffbb7d1da4b
parent 1180
8c5d945c1f35
child 1182
89e9f0d555a2

util.events: Dispatch code now accepts a variable number of arguments

util/events.lua file | annotate | diff | comparison | revisions
--- a/util/events.lua	Sun May 17 02:06:35 2009 +0500
+++ b/util/events.lua	Sun May 17 04:50:32 2009 +0500
@@ -52,9 +52,9 @@
 	local function _create_dispatcher(event) -- FIXME duplicate code in fire_event
 		local h = handlers[event];
 		if not h then h = {}; handlers[event] = h; end
-		local dispatcher = function(data)
+		local dispatcher = function(...)
 			for _, handler in ipairs(h) do
-				local ret = handler(data);
+				local ret = handler(...);
 				if ret ~= nil then return ret; end
 			end
 		end;
@@ -64,11 +64,11 @@
 	local function get_dispatcher(event)
 		return dispatchers[event] or _create_dispatcher(event);
 	end;
-	local function fire_event(event, data) -- FIXME duplicates dispatcher code
+	local function fire_event(event, ...) -- FIXME duplicates dispatcher code
 		local h = handlers[event];
 		if h then
 			for _, handler in ipairs(h) do
-				local ret = handler(data);
+				local ret = handler(...);
 				if ret ~= nil then return ret; end
 			end
 		end

mercurial