From 4237a26b6a0d251982778c25ea67355e45d093cb Mon Sep 17 00:00:00 2001 From: shagu Date: Thu, 4 Apr 2019 15:15:06 +0200 Subject: [PATCH] api: escape all magic chars in sanitize pattern --- api/api.lua | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/api/api.lua b/api/api.lua index 1dadad45..6bdcc21f 100644 --- a/api/api.lua +++ b/api/api.lua @@ -168,20 +168,16 @@ local sanitize_cache = {} function pfUI.api.SanitizePattern(pattern, dbg) if not sanitize_cache[pattern] then local ret = pattern - -- escape brackets - ret = gsub(ret, "%((.+)%)", "%%(%1%%)") + -- escape magic characters + ret = gsub(ret, "([%+%-%*%(%)%?%[%]%^])", "%%%1") -- remove capture indexes ret = gsub(ret, "%d%$","") - -- catch all characters ret = gsub(ret, "(%%%a)","%(%1+%)") - -- convert all %s to .+ ret = gsub(ret, "%%s%+",".+") - -- set priority to numbers over strings ret = gsub(ret, "%(.%+%)%(%%d%+%)","%(.-%)%(%%d%+%)") - -- cache it sanitize_cache[pattern] = ret end