]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Update lua-lupa 3618/head
authorAndrew Lewis <nerf@judo.za.org>
Sun, 24 Jan 2021 20:55:42 +0000 (22:55 +0200)
committerAndrew Lewis <nerf@judo.za.org>
Sun, 24 Jan 2021 20:55:42 +0000 (22:55 +0200)
 - Fixed bug where 'else' was not evaluated if 'elseif' is present.

contrib/lua-lupa/lupa.lua

index fc49ac25859f1ddd048d666c320ac145150cafbd..adaf419ade2da4d347537e8b372305e3190d3776 100644 (file)
@@ -1,4 +1,4 @@
--- Copyright 2015-2019 Mitchell mitchell.att.foicica.com. See LICENSE.
+-- Copyright 2015-2020 Mitchell. See LICENSE.
 -- Sponsored by the Library of the University of Antwerp.
 -- Contributions from Ana Balan.
 -- Lupa templating engine.
@@ -457,15 +457,18 @@ local function evaluate(ast, env)
       if eval(block.expression, env) then
         chunks[#chunks + 1] = evaluate(block, env)
       else
+        local evaluate_else = true
         local elseifs = block['elseif']
         if elseifs then
           for j = 1, #elseifs do
             if eval(elseifs[j].expression, env) then
               chunks[#chunks + 1] = evaluate(elseifs[j], env)
+              evaluate_else = false
               break
             end
           end
-        elseif block['else'] then
+        end
+        if evaluate_else and block['else'] then
           chunks[#chunks + 1] = evaluate(block['else'], env)
         end
       end