diff options
author | ShadowNinja <shadowninja@minetest.net> | 2013-12-21 12:26:37 -0500 |
---|---|---|
committer | ShadowNinja <shadowninja@minetest.net> | 2013-12-21 12:26:37 -0500 |
commit | b69fc35c888c569bf7e87e24466740ca5f749918 (patch) | |
tree | cc62c43de43a8d94b297c89a46f859dc486f90ff | |
parent | d30b33ba24e52d7299119013894ae97523558f78 (diff) |
Allow Lua regexs in search, and check for bad ones
-rw-r--r-- | internal.lua | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/internal.lua b/internal.lua index 6d7c464..daf8f4b 100644 --- a/internal.lua +++ b/internal.lua @@ -92,14 +92,9 @@ function unified_inventory.apply_filter(player, filter) local player_name = player:get_player_name() local size = 0 local lfilter = string.lower(filter) - if lfilter ~= "" then - for c in lfilter:gmatch(".") do - if c == '[' or c == ']' or c == '{' or c == '}' or - c == '(' or c == ')' or c == '%' then - lfilter = "" - break - end - end + if not pcall(function() ("technic:test"):find(lfilter) end) then + -- Filter is invalid + lfilter = "" end unified_inventory.filtered_items_list[player_name]={} for name, def in pairs(minetest.registered_items) do |