forked from pool/lua-cosmo
- Remove fix_test.patch, which incorrectly workaround unset LUA_PATH variable. - Add lua55-build.patch to fix compatibility problems with Lua 5.5.
107 lines
4.5 KiB
Diff
107 lines
4.5 KiB
Diff
---
|
|
src/cosmo.lua | 13 ++++++++-----
|
|
src/cosmo/fill.lua | 22 +++++++++++++---------
|
|
2 files changed, 21 insertions(+), 14 deletions(-)
|
|
|
|
Index: cosmo-16.06.04/src/cosmo.lua
|
|
===================================================================
|
|
--- cosmo-16.06.04.orig/src/cosmo.lua 2016-06-04 20:59:21.000000000 +0200
|
|
+++ cosmo-16.06.04/src/cosmo.lua 2026-01-29 20:34:37.397380423 +0100
|
|
@@ -63,10 +63,11 @@
|
|
end
|
|
$if_args[===[
|
|
check_selector(selector_name, selector)
|
|
- for e, literal in wrap(selector), $args, true do
|
|
+ for e_val, literal in wrap(selector), $args, true do
|
|
if literal then
|
|
- insert(out, tostring(e))
|
|
+ insert(out, tostring(e_val))
|
|
else
|
|
+ local e = e_val
|
|
if type(e) ~= "table" then
|
|
e = prepare_env({ it = tostring(e) }, env)
|
|
else
|
|
@@ -78,7 +79,8 @@
|
|
]===],
|
|
[===[
|
|
if type(selector) == 'table' then
|
|
- for _, e in ipairs(selector) do
|
|
+ for _, e_val in ipairs(selector) do
|
|
+ local e = e_val
|
|
if type(e) ~= "table" then
|
|
e = prepare_env({ it = tostring(e) }, env)
|
|
else
|
|
@@ -88,10 +90,11 @@
|
|
end
|
|
else
|
|
check_selector(selector_name, selector)
|
|
- for e, literal in wrap(selector), nil, true do
|
|
+ for e_val, literal in wrap(selector), nil, true do
|
|
if literal then
|
|
- insert(out, tostring(e))
|
|
+ insert(out, tostring(e_val))
|
|
else
|
|
+ local e = e_val
|
|
if type(e) ~= "table" then
|
|
e = prepare_env({ it = tostring(e) }, env)
|
|
else
|
|
Index: cosmo-16.06.04/src/cosmo/fill.lua
|
|
===================================================================
|
|
--- cosmo-16.06.04.orig/src/cosmo/fill.lua 2016-06-04 20:59:21.000000000 +0200
|
|
+++ cosmo-16.06.04/src/cosmo/fill.lua 2026-01-29 20:19:31.069205449 +0100
|
|
@@ -79,6 +79,7 @@
|
|
end
|
|
else
|
|
if args and args ~= "" and args ~= "{}" then
|
|
+ local proc_e
|
|
check_selector(selector_name, selector)
|
|
args = loadstring("local env = (...); return " .. args)(env)
|
|
for e, literal in coroutine.wrap(selector), args, true do
|
|
@@ -86,22 +87,24 @@
|
|
insert(out, tostring(e))
|
|
else
|
|
if type(e) ~= "table" then
|
|
- e = prepare_env({ it = tostring(e) }, env)
|
|
+ proc_e = prepare_env({ it = tostring(e) }, env)
|
|
else
|
|
- e = prepare_env(e, env)
|
|
+ proc_e = prepare_env(e, env)
|
|
end
|
|
- interpreter.template({ env = e, out = out, opts = opts }, subtemplates[e.self._template or 1] or default)
|
|
+ interpreter.template({ env = proc_e, out = out, opts = opts },
|
|
+ subtemplates[proc_e.self._template or 1] or default)
|
|
end
|
|
end
|
|
else
|
|
if type(selector) == 'table' then
|
|
for _, e in ipairs(selector) do
|
|
if type(e) ~= "table" then
|
|
- e = prepare_env({ it = tostring(e) }, env)
|
|
+ proc_e = prepare_env({ it = tostring(e) }, env)
|
|
else
|
|
- e = prepare_env(e, env)
|
|
+ proc_e = prepare_env(e, env)
|
|
end
|
|
- interpreter.template({ env = e, out = out, opts = opts }, subtemplates[e.self._template or 1] or default)
|
|
+ interpreter.template({ env = proc_e, out = out, opts = opts },
|
|
+ subtemplates[proc_e.self._template or 1] or default)
|
|
end
|
|
else
|
|
check_selector(selector_name, selector)
|
|
@@ -110,11 +113,12 @@
|
|
insert(out, tostring(e))
|
|
else
|
|
if type(e) ~= "table" then
|
|
- e = prepare_env({ it = tostring(e) }, env)
|
|
+ proc_e = prepare_env({ it = tostring(e) }, env)
|
|
else
|
|
- e = prepare_env(e, env)
|
|
+ proc_e = prepare_env(e, env)
|
|
end
|
|
- interpreter.template({ env = e, out = out, opts = opts }, subtemplates[e.self._template or 1] or default)
|
|
+ interpreter.template({ env = proc_e, out = out, opts = opts },
|
|
+ subtemplates[proc_e.self._template or 1] or default)
|
|
end
|
|
end
|
|
end
|