From ff4d6f2902bbe1654af748b1af013cb38473938c Mon Sep 17 00:00:00 2001 From: garret Date: Thu, 22 Dec 2022 19:02:00 +0000 Subject: [PATCH] A-B: escape magic characters in the indicator --- macros/garret.a-b.lua | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/macros/garret.a-b.lua b/macros/garret.a-b.lua index ddbfde4..45f133f 100644 --- a/macros/garret.a-b.lua +++ b/macros/garret.a-b.lua @@ -33,6 +33,11 @@ local function get_indicator(letter, actor) return indicator end +local function escape_pattern(txt) + local magic_chars = "%^%$%(%)%%.%[%]%*%+%-%?" + return txt:gsub("(["..magic_chars.."])", "%%%1") +end + local function main(sub, sel) local i = "a" for _,li in ipairs(sel) do @@ -60,7 +65,8 @@ local function undo(sub, sel) if line.text == indicator then line.text = "" else - line.text = line.text:gsub(indicator.."$", "") + local escaped = escape_pattern(indicator) + line.text = line.text:gsub(escaped, "") end sub[li] = line i = switch_indicator(i)