commit da8fd8f89442dc74d6fe17b3b44e134a77b7ec61
parent 5ffbec56f6c6487e245eb26e24b51dad80006595
Author: David Lawrence Ramsey <pooka109@gmail.com>
Date: Tue, 16 Sep 2003 01:22:31 +0000
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-d3aeb78583b8
Diffstat:
2 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/ChangeLog b/ChangeLog
@@ -110,6 +110,14 @@ CVS code -
- Make sure all rcfile error messages are capitalized, for
consistency. (DLR)
- 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()
- Call edit_update() with TOP instead of CENTER; both do the
same thing, but it works faster with TOP. (DLR)
diff --git a/src/winio.c b/src/winio.c
@@ -67,7 +67,7 @@ char *get_verbatim_kbinput(WINDOW *win, int *kbinput_len)
else {
nodelay(win, TRUE);
while ((kbinput = wgetch(win)) != ERR) {
- *kbinput_len++;
+ (*kbinput_len)++;
verbatim_kbinput = charealloc(verbatim_kbinput, *kbinput_len);
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-_ */
else if (kbinput >= 'A' && kbinput <= '_')
kbinput -= 64;
- /* Ctrl-A to Ctrl-Z */
- else if (kbinput >= 'a' && kbinput <= 'z')
+ /* Ctrl-A to Ctrl-~ */
+ else if (kbinput >= 'a' && kbinput <= '~')
kbinput -= 96;
break;
/* 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);
break;
- case '`':
- /* Esc Space == Esc ` */
- kbinput = ' ';
- break;
default:
/* Esc [character] == Meta-[character] */
- if (isupper(kbinput))
- kbinput = tolower(kbinput);
+ kbinput = tolower(kbinput);
*meta = 1;
}
break;
@@ -418,7 +413,6 @@ void blank_edit(void)
mvwaddstr(edit, i, 0, hblank);
}
-
void blank_statusbar(void)
{
mvwaddstr(bottomwin, 0, 0, hblank);