ltp/template.lua

changeset 6
219d7a7304f8
parent 3
b2df1b3f2c83
--- 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,

mercurial