summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2022-12-20 23:24:49 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2022-12-21 01:35:08 +0900
commitdef011c0291741b0ab3566a01d939374712719c8 (patch)
tree5a255f880be93a342247a912cd4fa73fe8ed381f
parent4b055bf260768780fce345fdb88abeb826122315 (diff)
Fix parse error of actions with arguments
-rw-r--r--src/options.go2
-rw-r--r--src/options_test.go10
2 files changed, 11 insertions, 1 deletions
diff --git a/src/options.go b/src/options.go
index 1ef8bca0..4c7774c9 100644
--- a/src/options.go
+++ b/src/options.go
@@ -1131,7 +1131,7 @@ func parseKeymap(keymap map[tui.Event][]*action, str string, exit func(string))
func isExecuteAction(str string) actionType {
matches := executeRegexp.FindAllStringSubmatch(":"+str, -1)
- if matches == nil || len(matches) != 1 {
+ if matches == nil || len(matches) != 1 || len(matches[0][0]) != len(str)+1 {
return actIgnore
}
prefix := matches[0][1]
diff --git a/src/options_test.go b/src/options_test.go
index 14ede09b..fbf319e0 100644
--- a/src/options_test.go
+++ b/src/options_test.go
@@ -489,3 +489,13 @@ func TestParseSingleActionList(t *testing.T) {
t.Errorf("Invalid action parsed: %v", actions[3])
}
}
+
+func TestParseSingleActionListError(t *testing.T) {
+ err := ""
+ parseSingleActionList("change-query(foobar)baz", func(e string) {
+ err = e
+ })
+ if len(err) == 0 {
+ t.Errorf("Failed to detect error")
+ }
+}