handle NANO_CONTROL_8 even better by doing it in parse_kbinput()
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3452 35c25a1d-7b9e-4130-9fde-d3aeb78583b8master
parent
fbf46a5d88
commit
5f274c4b49
|
@ -133,16 +133,10 @@ CVS code -
|
|||
- nano.c:
|
||||
renumber()
|
||||
- Remove invalid assert. (DLR, found by Filipe Moreira)
|
||||
do_input()
|
||||
- If we get NANO_CONTROL_8, handle it instead of ignoring it,
|
||||
for consistency. (DLR)
|
||||
- nano.h:
|
||||
- Reorder the toggle #defines to match their corresponding order
|
||||
in toggle_init(). (DLR)
|
||||
- prompt.c:
|
||||
do_statusbar_input()
|
||||
- If we get NANO_CONTROL_8, handle it instead of ignoring it,
|
||||
for consistency. (DLR)
|
||||
get_prompt_string()
|
||||
- Include the handling of the help key even when help is
|
||||
disabled, so that we aren't erroneously kicked out of the
|
||||
|
@ -174,6 +168,9 @@ CVS code -
|
|||
- Change all rcfile error messages to refer to commands instead
|
||||
of directives, for consistency with nanorc.5. (DLR)
|
||||
- winio.c:
|
||||
parse_kbinput()
|
||||
- If we get NANO_CONTROL_8, properly handle it in all cases.
|
||||
(DLR)
|
||||
get_control_kbinput()
|
||||
- Add Ctrl-/ as an alias for Ctrl-_. (DLR, found by Benno
|
||||
Schulenberg)
|
||||
|
|
11
src/nano.c
11
src/nano.c
|
@ -1281,20 +1281,15 @@ int do_input(bool *meta_key, bool *func_key, bool *s_or_t, bool
|
|||
/* Read in a character. */
|
||||
input = get_kbinput(edit, meta_key, func_key);
|
||||
|
||||
if (allow_funcs) {
|
||||
#ifndef DISABLE_MOUSE
|
||||
if (allow_funcs) {
|
||||
/* If we got a mouse click and it was on a shortcut, read in the
|
||||
* shortcut character. */
|
||||
if (*func_key == TRUE && input == KEY_MOUSE)
|
||||
if (allow_funcs && *func_key == TRUE && input == KEY_MOUSE)
|
||||
input = do_mouse() ? get_kbinput(edit, meta_key, func_key) :
|
||||
ERR;
|
||||
else
|
||||
#endif
|
||||
if (input == NANO_CONTROL_8 && *meta_key == FALSE &&
|
||||
*func_key == FALSE)
|
||||
input = ISSET(REBIND_DELETE) ? NANO_BACKSPACE_KEY :
|
||||
NANO_DELETE_KEY;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Check for a shortcut in the main list. */
|
||||
s = get_shortcut(main_list, &input, meta_key, func_key);
|
||||
|
|
15
src/prompt.c
15
src/prompt.c
|
@ -68,20 +68,15 @@ int do_statusbar_input(bool *meta_key, bool *func_key, bool *s_or_t,
|
|||
/* Read in a character. */
|
||||
input = get_kbinput(bottomwin, meta_key, func_key);
|
||||
|
||||
if (allow_funcs) {
|
||||
#ifndef DISABLE_MOUSE
|
||||
if (allow_funcs) {
|
||||
/* If we got a mouse click and it was on a shortcut, read in the
|
||||
* shortcut character. */
|
||||
if (*func_key == TRUE && input == KEY_MOUSE)
|
||||
input = do_statusbar_mouse() ? get_kbinput(bottomwin,
|
||||
meta_key, func_key) : ERR;
|
||||
else
|
||||
#endif
|
||||
if (input == NANO_CONTROL_8 && *meta_key == FALSE &&
|
||||
*func_key == FALSE)
|
||||
input = ISSET(REBIND_DELETE) ? NANO_BACKSPACE_KEY :
|
||||
NANO_DELETE_KEY;
|
||||
if (allow_funcs && *func_key == TRUE && input == KEY_MOUSE)
|
||||
input = do_statusbar_mouse() ? get_kbinput(bottomwin, meta_key,
|
||||
func_key) : ERR;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Check for a shortcut in the current list. */
|
||||
s = get_shortcut(currshortcut, &input, meta_key, func_key);
|
||||
|
|
18
src/winio.c
18
src/winio.c
|
@ -402,10 +402,6 @@ int parse_kbinput(WINDOW *win, bool *meta_key, bool *func_key
|
|||
switch (escapes) {
|
||||
case 0:
|
||||
switch (*kbinput) {
|
||||
case NANO_CONTROL_8:
|
||||
retval = ISSET(REBIND_DELETE) ?
|
||||
NANO_DELETE_KEY : NANO_BACKSPACE_KEY;
|
||||
break;
|
||||
case KEY_DOWN:
|
||||
retval = NANO_NEXTLINE_KEY;
|
||||
break;
|
||||
|
@ -647,10 +643,18 @@ int parse_kbinput(WINDOW *win, bool *meta_key, bool *func_key
|
|||
}
|
||||
}
|
||||
|
||||
/* If we have a result and it's an extended keypad value (i.e, a
|
||||
* value outside of byte range), set func_key to TRUE. */
|
||||
if (retval != ERR)
|
||||
if (retval != ERR) {
|
||||
/* If our result is NANO_CONTROL_8, translate it to either
|
||||
* Backspace or Delete, depending on whether REBIND_DELETE is
|
||||
* TRUE or FALSE. */
|
||||
if (retval == NANO_CONTROL_8)
|
||||
retval = ISSET(REBIND_DELETE) ? NANO_BACKSPACE_KEY :
|
||||
NANO_DELETE_KEY;
|
||||
|
||||
/* If our result is an extended keypad value (i.e, a value
|
||||
* outside of byte range), set func_key to TRUE. */
|
||||
*func_key = !is_byte(retval);
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
fprintf(stderr, "parse_kbinput(): kbinput = %d, meta_key = %d, func_key = %d, escapes = %d, byte_digits = %d, retval = %d\n", *kbinput, (int)*meta_key, (int)*func_key, escapes, byte_digits, retval);
|
||||
|
|
Loading…
Reference in New Issue