]> git.ipfire.org Git - thirdparty/rspamd.git/commitdiff
[Minor] Allow utf8 identifiers in the selectors
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 19 May 2021 14:10:21 +0000 (15:10 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 19 May 2021 14:10:21 +0000 (15:10 +0100)
lualib/lua_selectors/init.lua

index e971e14c3f2fd12f2f9d6c08a2c656e1dd7b8207..1d49f4e5ddff5dc6ac3fa66c7992682e1f0faa3a 100644 (file)
@@ -216,7 +216,11 @@ end
 local function make_grammar()
   local l = require "lpeg"
   local spc = l.S(" \t\n")^0
-  local atom = l.C((l.R("az") + l.R("AZ") + l.R("09") + l.S("_-"))^1)
+  local cont = l.R("\128\191") -- continuation byte
+  local utf8_high = l.R("\194\223") * cont
+      + l.R("\224\239") * cont * cont
+      + l.R("\240\244") * cont * cont * cont
+  local atom = l.C((l.R("az") + l.R("AZ") + l.R("09") + l.S("_-") + utf8_high)^1)
   local singlequoted_string = l.P "'" * l.C(((1 - l.S "'\r\n\f\\") + (l.P'\\' * 1))^0) * "'"
   local doublequoted_string = l.P '"' * l.C(((1 - l.S'"\r\n\f\\') + (l.P'\\' * 1))^0) * '"'
   local argument = atom + singlequoted_string + doublequoted_string