]> granicus.if.org Git - mutt/commit
Create a separate macro/push/exec event buffer. (closes #3779)
authorKevin McCarthy <kevin@8t8.us>
Sun, 4 Oct 2015 02:08:49 +0000 (10:08 +0800)
committerKevin McCarthy <kevin@8t8.us>
Sun, 4 Oct 2015 02:08:49 +0000 (10:08 +0800)
commit53900afab2a72921e95e33c23a89087f3f73d890
treea995d348eb32d98d92f56a26ebf40bcdc1e2c14a
parentf358cf9ad832c6b3ede537448da1d4a851275b7d
Create a separate macro/push/exec event buffer.  (closes #3779)

Currently, the SSL and TLS certficate prompts turn on
OPTUNBUFFEREDINPUT, (to prevent macros and such from running right
through the dialog).  Unfortunately, the menu dialog processing in
menu_dialog_dokey() is using mutt_ungetch() to forward non-dialog keys
on to standard menu processing.  With OPTUNBUFFEREDINPUT set, those keys
never make it to the menu and are buffered until after the menu dialog.

This patch creates a new event buffer, separate from the standard
"unget" buffer, for use by macros, exec, and push events.  These events
can be temporarily ignored by setting OPTIGNOREMACROEVENTS (renamed
from OPTUNBUFFEREDINPUT), while continuing to allow unget events to be
processed.

Since the "push" and "unget" functions now go to different buffers,
function names were slightly renamed, to make it less easy to
unintentionally use the wrong function at the wrong time.
browser.c
commands.c
curs_lib.c
curs_main.c
keymap.c
menu.c
mutt.h
mutt_curses.h
mutt_ssl.c
mutt_ssl_gnutls.c