pseudo-option, which means less mess to carry down the call stack.
It also made it much easier to have the SSL certificate menu be
unbuffered, which it is now. So push commands won't annoy you when
entering passwords or accepting certificates.
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;
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);
}
}
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;
* 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];
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 */
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
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
};
#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);
menu->help = helpstr;
done = 0;
+ set_option(OPTUNBUFFEREDINPUT);
while (!done)
{
switch (mutt_menuLoop (menu))
break;
}
}
+ unset_option(OPTUNBUFFEREDINPUT);
mutt_menuDestroy (&menu);
return (done == 2);
}