a few minor fixes for low-level keyboard input
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1553 35c25a1d-7b9e-4130-9fde-d3aeb78583b8master
parent
5ffbec56f6
commit
da8fd8f894
|
@ -110,6 +110,14 @@ CVS code -
|
||||||
- Make sure all rcfile error messages are capitalized, for
|
- Make sure all rcfile error messages are capitalized, for
|
||||||
consistency. (DLR)
|
consistency. (DLR)
|
||||||
- winio.c:
|
- winio.c:
|
||||||
|
get_verbatim_kbinput()
|
||||||
|
- Fix a silly memory corruption bug that would occur when trying
|
||||||
|
to read a sequence of more than one key verbatim. (DLR)
|
||||||
|
get_accepted_kbinput()
|
||||||
|
Handle Ctrl-{ to Ctrl-~ correctly, and drop support for
|
||||||
|
converting Esc ` to Esc Space, since making Meta-[key]
|
||||||
|
correspond to Ctrl-[key] in all cases is inconsistent due to
|
||||||
|
the different natures of Contol and Meta key sequences. (DLR)
|
||||||
do_first_line()
|
do_first_line()
|
||||||
- Call edit_update() with TOP instead of CENTER; both do the
|
- Call edit_update() with TOP instead of CENTER; both do the
|
||||||
same thing, but it works faster with TOP. (DLR)
|
same thing, but it works faster with TOP. (DLR)
|
||||||
|
|
14
src/winio.c
14
src/winio.c
|
@ -67,7 +67,7 @@ char *get_verbatim_kbinput(WINDOW *win, int *kbinput_len)
|
||||||
else {
|
else {
|
||||||
nodelay(win, TRUE);
|
nodelay(win, TRUE);
|
||||||
while ((kbinput = wgetch(win)) != ERR) {
|
while ((kbinput = wgetch(win)) != ERR) {
|
||||||
*kbinput_len++;
|
(*kbinput_len)++;
|
||||||
verbatim_kbinput = charealloc(verbatim_kbinput, *kbinput_len);
|
verbatim_kbinput = charealloc(verbatim_kbinput, *kbinput_len);
|
||||||
verbatim_kbinput[*kbinput_len - 1] = (char)kbinput;
|
verbatim_kbinput[*kbinput_len - 1] = (char)kbinput;
|
||||||
}
|
}
|
||||||
|
@ -139,8 +139,8 @@ int get_accepted_kbinput(WINDOW *win, int kbinput, int *meta,
|
||||||
/* Ctrl-A to Ctrl-_ */
|
/* Ctrl-A to Ctrl-_ */
|
||||||
else if (kbinput >= 'A' && kbinput <= '_')
|
else if (kbinput >= 'A' && kbinput <= '_')
|
||||||
kbinput -= 64;
|
kbinput -= 64;
|
||||||
/* Ctrl-A to Ctrl-Z */
|
/* Ctrl-A to Ctrl-~ */
|
||||||
else if (kbinput >= 'a' && kbinput <= 'z')
|
else if (kbinput >= 'a' && kbinput <= '~')
|
||||||
kbinput -= 96;
|
kbinput -= 96;
|
||||||
break;
|
break;
|
||||||
/* Terminal breakage, part 1: We shouldn't get an escape
|
/* Terminal breakage, part 1: We shouldn't get an escape
|
||||||
|
@ -160,14 +160,9 @@ int get_accepted_kbinput(WINDOW *win, int kbinput, int *meta,
|
||||||
}
|
}
|
||||||
nodelay(win, FALSE);
|
nodelay(win, FALSE);
|
||||||
break;
|
break;
|
||||||
case '`':
|
|
||||||
/* Esc Space == Esc ` */
|
|
||||||
kbinput = ' ';
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
/* Esc [character] == Meta-[character] */
|
/* Esc [character] == Meta-[character] */
|
||||||
if (isupper(kbinput))
|
kbinput = tolower(kbinput);
|
||||||
kbinput = tolower(kbinput);
|
|
||||||
*meta = 1;
|
*meta = 1;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -418,7 +413,6 @@ void blank_edit(void)
|
||||||
mvwaddstr(edit, i, 0, hblank);
|
mvwaddstr(edit, i, 0, hblank);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void blank_statusbar(void)
|
void blank_statusbar(void)
|
||||||
{
|
{
|
||||||
mvwaddstr(bottomwin, 0, 0, hblank);
|
mvwaddstr(bottomwin, 0, 0, hblank);
|
||||||
|
|
Loading…
Reference in New Issue