Commit e0c4f9c5 authored by Benno Schulenberg's avatar Benno Schulenberg
Browse files

input: give more detailed feedback when an unbound key is struck

No related merge requests found
Showing with 22 additions and 4 deletions
+22 -4
......@@ -332,7 +332,8 @@ char *do_browser(char *path, DIR *dir)
} else if (func == do_exit) {
/* Exit from the file browser. */
break;
}
} else
unbound_key(kbinput);
}
titlebar(NULL);
edit_refresh();
......
......@@ -161,7 +161,8 @@ void do_help(void)
} else if (func == do_exit) {
/* Exit from the help viewer. */
break;
}
} else
unbound_key(kbinput);
}
if (old_no_help) {
......
......@@ -1563,6 +1563,22 @@ void terminal_init(void)
#endif
}
/* Say that an unbound key was struck, and if possible which one. */
void unbound_key(int code)
{
if (func_key)
statusbar(_("Unbound key"));
else if (meta_key) {
if (0x60 < code && code < 0x7B)
code -= 0x20;
statusbar(_("Unbound key: M-%c"), code);
} else if (code < 0x20)
statusbar(_("Unbound key: ^%c"), code + 0x40);
else
statusbar(_("Unbound key: %c"), code);
beep();
}
/* Read in a character, interpret it as a shortcut or toggle if
* necessary, and return it.
* If allow_funcs is FALSE, don't actually run any functions associated
......@@ -1612,8 +1628,7 @@ int do_input(bool allow_funcs)
* 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) {
statusbar(_("Unknown Command"));
beep();
unbound_key(input);
meta_key = FALSE;
func_key = FALSE;
input = ERR;
......
......@@ -498,6 +498,7 @@ void enable_signals(void);
void disable_flow_control(void);
void enable_flow_control(void);
void terminal_init(void);
void unbound_key(int code);
int do_input(bool allow_funcs);
#ifndef DISABLE_MOUSE
int do_mouse(void);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment