tweaks: elide the global variable 'func_key'
There is no need to specially flag a function key or editing key -- the keycode is indication enough in itself: outside of byte range.master
parent
19dfd20a88
commit
cb10b2b908
|
@ -35,8 +35,6 @@ volatile sig_atomic_t sigwinch_counter = 0;
|
|||
|
||||
bool meta_key;
|
||||
/* Whether the current keystroke is a Meta key. */
|
||||
bool func_key;
|
||||
/* Whether the current keystroke is an extended keypad value. */
|
||||
bool focusing = TRUE;
|
||||
/* Whether an update of the edit window should center the cursor. */
|
||||
|
||||
|
|
|
@ -1539,7 +1539,7 @@ void terminal_init(void)
|
|||
/* Say that an unbound key was struck, and if possible which one. */
|
||||
void unbound_key(int code)
|
||||
{
|
||||
if (func_key)
|
||||
if (!is_byte(code))
|
||||
statusline(ALERT, _("Unbound key"));
|
||||
else if (meta_key) {
|
||||
if (code == '[')
|
||||
|
@ -1577,7 +1577,7 @@ int do_input(bool allow_funcs)
|
|||
#endif
|
||||
|
||||
#ifndef DISABLE_MOUSE
|
||||
if (func_key && input == KEY_MOUSE) {
|
||||
if (input == KEY_MOUSE) {
|
||||
/* We received a mouse click. */
|
||||
if (do_mouse() == 1)
|
||||
/* The click was on a shortcut -- read in the character
|
||||
|
@ -1599,10 +1599,9 @@ int do_input(bool allow_funcs)
|
|||
/* If we got a non-high-bit control key, a meta key sequence, or a
|
||||
* function key, and it's not a shortcut or toggle, throw it out. */
|
||||
if (!have_shortcut) {
|
||||
if (is_ascii_cntrl_char(input) || meta_key || func_key) {
|
||||
if (is_ascii_cntrl_char(input) || meta_key || !is_byte(input)) {
|
||||
unbound_key(input);
|
||||
meta_key = FALSE;
|
||||
func_key = FALSE;
|
||||
input = ERR;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -66,12 +66,11 @@ int do_statusbar_input(bool *ran_func, bool *finished,
|
|||
#ifndef DISABLE_MOUSE
|
||||
/* If we got a mouse click and it was on a shortcut, read in the
|
||||
* shortcut character. */
|
||||
if (func_key && input == KEY_MOUSE) {
|
||||
if (input == KEY_MOUSE) {
|
||||
if (do_statusbar_mouse() == 1)
|
||||
input = get_kbinput(bottomwin);
|
||||
else {
|
||||
meta_key = FALSE;
|
||||
func_key = FALSE;
|
||||
input = ERR;
|
||||
}
|
||||
}
|
||||
|
@ -87,10 +86,9 @@ int do_statusbar_input(bool *ran_func, bool *finished,
|
|||
/* If we got a non-high-bit control key, a meta key sequence, or a
|
||||
* function key, and it's not a shortcut or toggle, throw it out. */
|
||||
if (!have_shortcut) {
|
||||
if (is_ascii_cntrl_char(input) || meta_key || func_key) {
|
||||
if (is_ascii_cntrl_char(input) || meta_key || !is_byte(input)) {
|
||||
beep();
|
||||
meta_key = FALSE;
|
||||
func_key = FALSE;
|
||||
input = ERR;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,7 +31,6 @@ extern volatile sig_atomic_t sigwinch_counter;
|
|||
#endif
|
||||
|
||||
extern bool meta_key;
|
||||
extern bool func_key;
|
||||
extern bool focusing;
|
||||
|
||||
extern message_type lastmessage;
|
||||
|
|
12
src/winio.c
12
src/winio.c
|
@ -324,8 +324,7 @@ int get_kbinput(WINDOW *win)
|
|||
|
||||
/* Extract a single keystroke from the input stream. Translate escape
|
||||
* sequences and extended keypad codes into their corresponding values.
|
||||
* Set meta_key to TRUE when we get a meta key sequence, and set func_key
|
||||
* to TRUE when we get a function key. Supported extended keypad values
|
||||
* Set meta_key to TRUE when appropriate. Supported extended keypad values
|
||||
* are: [arrow key], Ctrl-[arrow key], Shift-[arrow key], Enter, Backspace,
|
||||
* the editing keypad (Insert, Delete, Home, End, PageUp, and PageDown),
|
||||
* the function keys (F1-F16), and the numeric keypad with NumLock off. */
|
||||
|
@ -336,7 +335,6 @@ int parse_kbinput(WINDOW *win)
|
|||
int *kbinput, keycode, retval = ERR;
|
||||
|
||||
meta_key = FALSE;
|
||||
func_key = FALSE;
|
||||
|
||||
/* Read in a character. */
|
||||
kbinput = get_input(win, 1);
|
||||
|
@ -633,15 +631,11 @@ int parse_kbinput(WINDOW *win)
|
|||
else if (retval == controldown)
|
||||
retval = sc_seq_or(do_next_block, 0);
|
||||
#endif
|
||||
|
||||
/* If our result is an extended keypad value (i.e. a value
|
||||
* outside of byte range), set func_key to TRUE. */
|
||||
if (retval != ERR)
|
||||
func_key = !is_byte(retval);
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
fprintf(stderr, "parse_kbinput(): kbinput = %d, meta_key = %s, func_key = %s, escapes = %d, byte_digits = %d, retval = %d\n", keycode, meta_key ? "TRUE" : "FALSE", func_key ? "TRUE" : "FALSE", escapes, byte_digits, retval);
|
||||
fprintf(stderr, "parse_kbinput(): kbinput = %d, meta_key = %s, escapes = %d, byte_digits = %d, retval = %d\n",
|
||||
keycode, meta_key ? "TRUE" : "FALSE", escapes, byte_digits, retval);
|
||||
#endif
|
||||
|
||||
/* Return the result. */
|
||||
|
|
Loading…
Reference in New Issue