]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Order selector valus how user placed them in the config
authorMikhail Galanin <mgalanin@mimecast.com>
Fri, 21 Sep 2018 14:53:01 +0000 (15:53 +0100)
committerMikhail Galanin <mgalanin@mimecast.com>
Fri, 21 Sep 2018 14:53:01 +0000 (15:53 +0100)
lualib/lua_selectors.lua

index 21efc4573dbc60b37ea951b31d628355633f902a..15bf9e312a2f784f586977807f22e38fca78195e 100644 (file)
@@ -894,41 +894,23 @@ exports.combine_selectors = function(_, selectors, delimiter)
   else
     -- We need to do a spill on each table selector
     -- e.g. s:tbl:s -> s:telt1:s + s:telt2:s ...
-    local prefix = {}
     local tbl = {}
-    local suffix = {}
     local res = {}
 
     local in_prefix = true
     for _,s in ipairs(selectors) do
-      if in_prefix then
-        if type(s) == 'string' then
-          table.insert(prefix, s)
-        elseif type(s) == 'userdata' then
-          table.insert(prefix, tostring(s))
-        else
-          in_prefix = false
-          table.insert(tbl, s)
-        end
+      if type(s) == 'string' then
+        tbl[#tbl + 1] = fun.duplicate(s)
+      elseif type(s) == 'userdata' then
+        tbl[#tbl + 1] = fun.duplicate(tostring(s))
       else
-        if type(s) == 'string' then
-          table.insert(suffix, s)
-        elseif type(s) == 'userdata' then
-          table.insert(suffix, tostring(s))
-        else
-          table.insert(tbl, s)
-        end
+        tbl[#tbl + 1] = s
       end
     end
 
-    prefix = table.concat(prefix, delimiter)
-    suffix = table.concat(suffix, delimiter)
-
-    for _,t in ipairs(tbl) do
-      fun.each(function(...)
-        table.insert(res, table.concat({...}, delimiter))
-      end, fun.zip(fun.duplicate(prefix), t, fun.duplicate(suffix)))
-    end
+    fun.each(function(...)
+      table.insert(res, table.concat({...}, delimiter))
+    end, fun.zip(lua_util.unpack(tbl)))
 
     return res
   end