Merge branch 'main' into warnings

This commit is contained in:
MihailRis
2024-11-01 15:19:17 +03:00
6 changed files with 84 additions and 33 deletions
+19 -11
View File
@@ -9,22 +9,28 @@ function sleep(timesec)
end
end
-- events
------------------------------------------------
------------------- Events ---------------------
------------------------------------------------
events = {
handlers = {}
}
function events.on(event, func)
-- why an array? length is always = 1
-- FIXME: temporary fixed
events.handlers[event] = {} -- events.handlers[event] or {}
if events.handlers[event] == nil then
events.handlers[event] = {}
end
table.insert(events.handlers[event], func)
end
function events.remove_by_prefix(prefix)
for name, handlers in pairs(events.handlers) do
if name:sub(1, #prefix) == prefix then
events.handlers[name] = nil
local actualname = name
if type(name) == 'table' then
actualname = name[1]
end
if actualname:sub(1, #prefix+1) == prefix..':' then
events.handlers[actualname] = nil
end
end
end
@@ -34,11 +40,13 @@ function pack.unload(prefix)
end
function events.emit(event, ...)
result = nil
if events.handlers[event] then
for _, func in ipairs(events.handlers[event]) do
result = result or func(...)
end
local result = nil
local handlers = events.handlers[event]
if handlers == nil then
return nil
end
for _, func in ipairs(handlers) do
result = result or func(...)
end
return result
end
+3 -2
View File
@@ -109,7 +109,8 @@ function string.explode(separator, str, withpattern)
local current_pos = 1
for i = 1, string_len(str) do
local start_pos, end_pos = string_find(str, separator, current_pos, not withpattern)
local start_pos, end_pos = string_find(
str, separator, current_pos, not withpattern)
if (not start_pos) then break end
ret[i] = string_sub(str, current_pos, start_pos - 1)
current_pos = end_pos + 1
@@ -139,7 +140,7 @@ function string.formatted_time(seconds, format)
end
function string.replace(str, tofind, toreplace)
local tbl = string.Explode(tofind, str)
local tbl = string.explode(tofind, str)
if (tbl[1]) then return table.concat(tbl, toreplace) end
return str
end