I use <ESC>1 for help:
bind index \e1 help
Pressing an undefined key in message index ends up
in an infinite beeping loop.
The reason is:
km_error_key() wants to print a helpful message:
Key is not bound. Press '%s' for help.
km_expand_key() is called and fills buf with "<ESC>1".
This is then pushed into the input using mutt_unget_string().
This likely contains undefined keys and will endlessly loop
back into km_error_key().
I believe this got introduced by commit 6517:a07e8215a0ef (Create
a separate macro/push/exec event buffer).
This patch fixes the problem for me (I'm very new to the mutt
code, so I'm not sure if this is correct):
--- a/keymap.c 2016-05-18 18:58:20.863536907 +0200
+++ b/keymap.c 2016-05-18 18:58:24.783661152 +0200
@@ -844,7 +844,7 @@
}
/* make sure the key is really the help key in this menu */
- mutt_unget_string (buf);
+ tokenize_push_macro_string (buf);
if (km_dokey (menu) != OP_HELP)
{
mutt_error _("Key is not bound.");
--
Jiri Bohac <[email protected]>
SUSE Labs, SUSE CZ