Last version (I'd made keymap.c diff in the opposite way).
The *good news* is the send_charset error wasn't due to my patches but
some config option I'm missing.
Here you are:
--- mutt-1.7.2/mutt.h Mon Dec 5 00:46:59 2016
+++ mutt-1.7.2-modified/mutt.h Sat Feb 25 23:12:19 2017
@@ -340,6 +340,7 @@ enum
OPTEDITHDRS,
OPTENCODEFROM,
OPTENVFROM,
+ OPTESCKEYABORTS,
OPTFASTREPLY,
OPTFCCCLEAR,
OPTFOLLOWUPTO,
--- mutt-1.7.2/curs_lib.c Mon Dec 5 00:46:59 2016
+++ mutt-1.7.2-modified/curs_lib.c Sat Feb 25 23:30:31 2017
@@ -148,7 +148,10 @@ event_t mutt_getch (void)
ret.ch = ch;
ret.op = 0;
- return (ch == ctrl ('G') ? err : ret);
+ if (option (OPTESCKEYABORTS))
+ return (ch == '\033' ? err : ret);
+ else
+ return (ch == ctrl ('G') ? err : ret);
}
int _mutt_get_field (const char *field, char *buf, size_t buflen, int
complete, int multiple, char ***files, int *numfiles)
--- mutt-1.7.2/keymap.c Mon Dec 5 00:46:59 2016
+++ mutt-1.7.2-modified/keymap.c Sat Feb 25 14:47:29 2017
@@ -1133,16 +1133,32 @@ void mutt_what_key (void)
{
int ch;
- mutt_window_mvprintw (MuttMessageWindow, 0, 0, _("Enter keys (^G to abort):
"));
- do {
- ch = getch();
- if (ch != ERR && ch != ctrl ('G'))
- {
- mutt_message(_("Char = %s, Octal = %o, Decimal = %d"),
- km_keyname(ch), ch, ch);
+ if (option (OPTESCKEYABORTS))
+ {
+ mutt_window_mvprintw (MuttMessageWindow, 0, 0, _("Enter keys (ESC to
abort): "));
+ do {
+ ch = getch();
+ if (ch != ERR && ch != '\033')
+ {
+ mutt_message(_("Char = %s, Octal = %o, Decimal = %d"),
+ km_keyname(ch), ch, ch);
+ }
}
+ while (ch != ERR && ch != '\033');
}
- while (ch != ERR && ch != ctrl ('G'));
+ else
+ {
+ mutt_window_mvprintw (MuttMessageWindow, 0, 0, _("Enter keys (^G to
abort): "));
+ do {
+ ch = getch();
+ if (ch != ERR && ch != ctrl ('G'))
+ {
+ mutt_message(_("Char = %s, Octal = %o, Decimal = %d"),
+ km_keyname(ch), ch, ch);
+ }
+ }
+ while (ch != ERR && ch != ctrl ('G'));
+ }
mutt_flushinp();
mutt_clear_error();
--- mutt-1.7.2/init.h Mon Dec 5 00:46:59 2016
+++ mutt-1.7.2-modified/init.h Sat Feb 25 23:36:57 2017
@@ -762,6 +762,14 @@ struct option_t MuttVars[] = {
** .pp
** Escape character to use for functions in the built-in editor.
*/
+ { "esc_key_aborts", DT_BOOL, R_NONE, OPTESCKEYABORTS, 0 },
+ /*
+ ** .pp
+ ** For vi-like bindings users. Set this value to ``yes'' to use
+ ** ESC key instead of the default Ctrl-G to abort commands. Take
+ ** in care some predifined emacs-like Meta prefixed bindings will
+ ** stop working.
+ */
{ "fast_reply", DT_BOOL, R_NONE, OPTFASTREPLY, 0 },
/*
** .pp