util.events: event handlers can now return a result, which also interrupts further...
authorWaqas Hussain <waqas20@gmail.com>
Fri, 15 May 2009 01:23:55 +0000 (06:23 +0500)
committerWaqas Hussain <waqas20@gmail.com>
Fri, 15 May 2009 01:23:55 +0000 (06:23 +0500)
util/events.lua

index b1f3811ca13b2a23231dfec3eb81336bdf791827..704d31a4f4ddfceab2c9193ab8d110b18ee03ead 100644 (file)
@@ -53,7 +53,8 @@ function new()
                if not h then h = {}; handlers[event] = h; end\r
                local dispatcher = function(data)\r
                        for _, handler in ipairs(h) do\r
-                               handler(data);\r
+                               local ret = handler(data);\r
+                               if ret ~= nil then return ret; end\r
                        end\r
                end;\r
                dispatchers[event] = dispatcher;\r
@@ -66,7 +67,8 @@ function new()
                local h = handlers[event];\r
                if h then\r
                        for _, handler in ipairs(h) do\r
-                               handler(data);\r
+                               local ret = handler(data);\r
+                               if ret ~= nil then return ret; end\r
                        end\r
                end\r
        end;\r