diff --git a/tt.lua b/tt.lua new file mode 100644 index 0000000..98d4629 --- /dev/null +++ b/tt.lua @@ -0,0 +1,36 @@ +local tr = aegisub.gettext + +script_name = tr"Double t" +script_description = tr"Ensure k tags are in the right place with double t's" +script_author = "amoethyst" +script_version = "1.0" + +local expr = "^(.-)({\\[kK][fo]?[0-9.]+[^}]-})( -t)(t.*)$" + + +local function _tte(subs, i) + local line = subs[i] + + local before, tag, start_tt, after = line.text:match(expr) + while after ~= nil do + line.text = before .. start_tt .. tag .. after + before, tag, start_tt, after = line.text:match(expr) + end + + return line +end + + +local function tte(subs, sel) + for _, i in ipairs(sel) do + local ok, res = pcall(_tte, subs, i) + if ok then + subs[i] = res + else + aegisub.log("error on line " .. i .. ": " .. line.text .. "\n") + aegisub.log(res .. "\n") + end + end +end + +aegisub.register_macro(script_name, script_description, tte)