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)