summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--curs_lib.c6
-rw-r--r--enter.c2
-rw-r--r--keymap.c4
-rw-r--r--keymap.h3
-rw-r--r--mutt.h1
-rw-r--r--mutt_curses.h3
-rw-r--r--mutt_ssl.c2
7 files changed, 12 insertions, 9 deletions
diff --git a/curs_lib.c b/curs_lib.c
index 5f5247c3..ff97d316 100644
--- a/curs_lib.c
+++ b/curs_lib.c
@@ -57,12 +57,12 @@ void mutt_refresh (void)
refresh ();
}
-event_t _mutt_getch (int flags)
+event_t mutt_getch (void)
{
int ch;
event_t err = {-1, OP_NULL }, ret;
- if (!(flags & M_KM_UNBUFFERED) && UngetCount)
+ if (!option(OPTUNBUFFEREDINPUT) && UngetCount)
return (KeyEvent[--UngetCount]);
SigInt = 0;
@@ -125,7 +125,9 @@ int mutt_get_password (char *msg, char *buf, size_t buflen)
CLEARLINE (LINES-1);
addstr (msg);
+ set_option (OPTUNBUFFEREDINPUT);
rc = mutt_enter_string (buf, buflen, LINES - 1, mutt_strlen (msg), M_PASS);
+ unset_option (OPTUNBUFFEREDINPUT);
CLEARLINE (LINES-1);
return (rc);
}
diff --git a/enter.c b/enter.c
index b96eadb2..bd436ba5 100644
--- a/enter.c
+++ b/enter.c
@@ -256,7 +256,7 @@ int _mutt_enter_string (char *buf, size_t buflen, int y, int x,
}
mutt_refresh ();
- if ((ch = _km_dokey (MENU_EDITOR, pass ? M_KM_UNBUFFERED : 0)) == -1)
+ if ((ch = km_dokey (MENU_EDITOR)) == -1)
{
rv = -1;
goto bye;
diff --git a/keymap.c b/keymap.c
index f81af2b5..6fa4729e 100644
--- a/keymap.c
+++ b/keymap.c
@@ -357,7 +357,7 @@ static int retry_generic (int menu, keycode_t *keys, int keyslen, int lastkey)
* OP_NULL no function bound to key sequence
* -1 error occured while reading input
*/
-int _km_dokey (int menu, int flags)
+int km_dokey (int menu)
{
event_t tmp;
struct keymap_t *map = Keymaps[menu];
@@ -374,7 +374,7 @@ int _km_dokey (int menu, int flags)
if (menu != MENU_EDITOR)
timeout ((Timeout > 0 ? Timeout : 60) * 1000);
- tmp = _mutt_getch(flags);
+ tmp = mutt_getch();
if (menu != MENU_EDITOR)
timeout (-1); /* restore blocking operation */
diff --git a/keymap.h b/keymap.h
index 392910a5..bdbafae6 100644
--- a/keymap.h
+++ b/keymap.h
@@ -27,8 +27,7 @@ typedef short keycode_t;
void km_bind (char *, int, int, char *, char *);
void km_bindkey (char *, int, int);
-#define km_dokey(menu) _km_dokey(menu, 0)
-int _km_dokey (int, int);
+int km_dokey (int);
/* entry in the keymap tree */
struct keymap_t
diff --git a/mutt.h b/mutt.h
index d21d107e..f708d091 100644
--- a/mutt.h
+++ b/mutt.h
@@ -478,6 +478,7 @@ enum
OPTREDRAWTREE, /* (pseudo) redraw the thread tree */
OPTPGPCHECKTRUST, /* (pseudo) used by pgp_select_key () */
OPTDONTHANDLEPGPKEYS, /* (pseudo) used to extract PGP keys */
+ OPTUNBUFFEREDINPUT, /* (pseudo) don't use key buffer */
OPTMAX
};
diff --git a/mutt_curses.h b/mutt_curses.h
index 96668327..b7b1a828 100644
--- a/mutt_curses.h
+++ b/mutt_curses.h
@@ -87,8 +87,7 @@ void mutt_curs_set (int);
#define CI_is_return(c) ((c) == '\r' || (c) == '\n')
#endif
-#define mutt_getch() _mutt_getch(0)
-event_t _mutt_getch (int);
+event_t mutt_getch (void);
void mutt_endwin (const char *);
void mutt_flushinp (void);
diff --git a/mutt_ssl.c b/mutt_ssl.c
index d5add0fe..289015af 100644
--- a/mutt_ssl.c
+++ b/mutt_ssl.c
@@ -629,6 +629,7 @@ static int ssl_check_certificate (sslsockdata * data)
menu->help = helpstr;
done = 0;
+ set_option(OPTUNBUFFEREDINPUT);
while (!done)
{
switch (mutt_menuLoop (menu))
@@ -662,6 +663,7 @@ static int ssl_check_certificate (sslsockdata * data)
break;
}
}
+ unset_option(OPTUNBUFFEREDINPUT);
mutt_menuDestroy (&menu);
return (done == 2);
}