diff --git a/src/options.go b/src/options.go index c33f14ce..840f1764 100644 --- a/src/options.go +++ b/src/options.go @@ -449,6 +449,7 @@ func parseKeyChords(str string, message string) map[tui.Event]string { errorExit(message) } + str = regexp.MustCompile("(?i)(alt-),").ReplaceAllString(str, "$1"+string(escapedComma)) tokens := strings.Split(str, ",") if str == "," || strings.HasPrefix(str, ",,") || strings.HasSuffix(str, ",,") || strings.Contains(str, ",,,") { tokens = append(tokens, ",") @@ -459,6 +460,7 @@ func parseKeyChords(str string, message string) map[tui.Event]string { if len(key) == 0 { continue // ignore } + key = strings.ReplaceAll(key, string(escapedComma), ",") lkey := strings.ToLower(key) add := func(e tui.EventType) { chords[e.AsEvent()] = key diff --git a/src/options_test.go b/src/options_test.go index 4311aa4d..b1068964 100644 --- a/src/options_test.go +++ b/src/options_test.go @@ -225,6 +225,10 @@ func TestParseKeysWithComma(t *testing.T) { pairs = parseKeyChords(",,,", "") checkN(len(pairs), 1) check(pairs, tui.Key(','), ",") + + pairs = parseKeyChords(",ALT-,,", "") + checkN(len(pairs), 1) + check(pairs, tui.AltKey(','), "ALT-,") } func TestBind(t *testing.T) {