Browse Source

[Minor] Update lua-lupa

- Fixed bug where 'else' was not evaluated if 'elseif' is present.
pull/3618/head
Andrew Lewis 5 years ago
parent
commit
fe3cb3a530
  1. 7
      contrib/lua-lupa/lupa.lua

7
contrib/lua-lupa/lupa.lua

@ -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. -- Sponsored by the Library of the University of Antwerp.
-- Contributions from Ana Balan. -- Contributions from Ana Balan.
-- Lupa templating engine. -- Lupa templating engine.
@ -457,15 +457,18 @@ local function evaluate(ast, env)
if eval(block.expression, env) then if eval(block.expression, env) then
chunks[#chunks + 1] = evaluate(block, env) chunks[#chunks + 1] = evaluate(block, env)
else else
local evaluate_else = true
local elseifs = block['elseif'] local elseifs = block['elseif']
if elseifs then if elseifs then
for j = 1, #elseifs do for j = 1, #elseifs do
if eval(elseifs[j].expression, env) then if eval(elseifs[j].expression, env) then
chunks[#chunks + 1] = evaluate(elseifs[j], env) chunks[#chunks + 1] = evaluate(elseifs[j], env)
evaluate_else = false
break break
end end
end end
elseif block['else'] then
end
if evaluate_else and block['else'] then
chunks[#chunks + 1] = evaluate(block['else'], env) chunks[#chunks + 1] = evaluate(block['else'], env)
end end
end end

Loading…
Cancel
Save