From 7a8fda007d33fd82fd9638976cbe5c2d667355b8 Mon Sep 17 00:00:00 2001 From: Thomas Goyne Date: Sun, 1 Mar 2015 11:22:49 -0800 Subject: [PATCH] Cancel karaoke templater execution immediately when an error occurs Closes #1849. --- automation/autoload/kara-templater.lua | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/automation/autoload/kara-templater.lua b/automation/autoload/kara-templater.lua index 1830fdf3d..8b6be10bb 100644 --- a/automation/autoload/kara-templater.lua +++ b/automation/autoload/kara-templater.lua @@ -635,6 +635,7 @@ function run_code_template(template, tenv) local f, err = loadstring(template.code, "template code") if not f then aegisub.debug.out(2, "Failed to parse Lua code: %s\nCode that failed to parse: %s\n\n", err, template.code) + aegisub.cancel() else local pcall = pcall setfenv(f, tenv) @@ -642,6 +643,7 @@ function run_code_template(template, tenv) local res, err = pcall(f) if not res then aegisub.debug.out(2, "Runtime error in template code: %s\nCode producing error: %s\n\n", err, template.code) + aegisub.cancel() end end end @@ -675,7 +677,7 @@ function run_text_template(template, tenv, varctx) f, err = loadstring(string.format("return (%s)", expression)) if (err) ~= nil then aegisub.debug.out(2, "Error parsing expression: %s\nExpression producing error: %s\nTemplate with expression: %s\n\n", err, expression, template) - return "!" .. expression .. "!" + aegisub.cancel() else setfenv(f, tenv) local res, val = pcall(f) @@ -683,7 +685,7 @@ function run_text_template(template, tenv, varctx) return val else aegisub.debug.out(2, "Runtime error in template expression: %s\nExpression producing error: %s\nTemplate with expression: %s\n\n", val, expression, template) - return "!" .. expression .. "!" + aegisub.cancel() end end end