X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;ds=sidebyside;f=util%2Fset.lua;h=7f45526eb41f97741cfdabd8abc15f114442a0f1;hb=e332947cb586dc7a3bbf9ca1632c07b0ab342f09;hp=ee154ece11e1f5977be607735fa197acf10de4e4;hpb=b4cb1e8079c6d93fdb6997327f06b8461244175b;p=prosody.git diff --git a/util/set.lua b/util/set.lua index ee154ece..7f45526e 100644 --- a/util/set.lua +++ b/util/set.lua @@ -6,7 +6,7 @@ -- COPYING file in the source package for more information. -- -local ipairs, pairs, setmetatable, next, tostring = +local ipairs, pairs, setmetatable, next, tostring = ipairs, pairs, setmetatable, next, tostring; local t_concat = table.concat; @@ -26,8 +26,9 @@ function set_mt.__div(set, func) local new_set, new_items = _M.new(); local items, new_items = set._items, new_set._items; for item in pairs(items) do - if func(item) then - new_items[item] = true; + local new_item = func(item); + if new_item ~= nil then + new_items[new_item] = true; end end return new_set; @@ -82,8 +83,10 @@ function new(list) end function set:add_list(list) - for _, item in ipairs(list) do - items[item] = true; + if list then + for _, item in ipairs(list) do + items[item] = true; + end end end