commit cb10b2b908bc48f13ee0a4206efb17185575caae
parent 19dfd20a88da021e175a842d42c271b6860b0c98
Author: Benno Schulenberg <bensberg@justemail.net>
Date: Wed, 13 Jul 2016 16:22:56 +0200
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.
Diffstat:
5 files changed, 8 insertions(+), 20 deletions(-)
diff --git a/src/global.c b/src/global.c
@@ -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. */
diff --git a/src/nano.c b/src/nano.c
@@ -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;
}
}
diff --git a/src/prompt.c b/src/prompt.c
@@ -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;
}
}
diff --git a/src/proto.h b/src/proto.h
@@ -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;
diff --git a/src/winio.c b/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. */