diff -r 7667b101cb1e -r 219d7a7304f8 ltp/template.lua --- a/ltp/template.lua Sat Nov 01 23:34:21 2014 +0000 +++ b/ltp/template.lua Sun May 07 20:02:53 2017 +0100 @@ -68,15 +68,19 @@ return table.concat(result) end -local function compile_template(data, start_lua, end_lua) +local function compile_template_as_chunk(data, start_lua, end_lua) + local result = { "local output = ... " } return - table.concat(compile_template_to_table({ }, data, start_lua, end_lua)) + table.concat(compile_template_to_table(result, data, start_lua, end_lua)) +end + +local function compile_template(data, start_lua, end_lua) + return table.concat(compile_template_to_table({ }, data, start_lua, end_lua)) end local function load_template(data, start_lua, end_lua) - return - assert(loadstring(compile_template_as_function(data, start_lua, end_lua), - "=(load)"))() + return assert(load(compile_template_as_chunk(data, start_lua, end_lua), + "=(load)")) end local function execute_template(template, environment, output) @@ -130,7 +134,7 @@ local function execute_env_code(env_code, environment) for i = 1,#env_code do - local fun, emsg = loadstring(env_code[i]) + local fun, emsg = load(env_code[i]) if fun then setfenv(fun, environment)() @@ -176,6 +180,7 @@ return ltp.merge_table( { compile_template_to_table = compile_template_to_table, + compile_template_as_chunk = compile_template_as_chunk, compile_template_as_function = compile_template_as_function, compile_template = compile_template, load_template = load_template,