aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--macros/garret.a-b.lua8
1 files changed, 7 insertions, 1 deletions
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)