Remove the right number of characters from the buffer when escape then a cursor

key (or other key prefixed by \033) is pressed. Reported by Stuart Henderson.
This commit is contained in:
Nicholas Marriott 2009-04-17 12:36:21 +00:00
parent 4898ee140f
commit 750b8106f7
2 changed files with 11 additions and 5 deletions

View File

@ -1,3 +1,9 @@
17 April 2009
* Remove the right number of characters from the buffer when escape then
a cursor key (or other key prefixed by \033) is pressed. Reported by
Stuart Henderson.
03 April 2009 03 April 2009
* rotate-window command. -U flag (default) for up, -D flag for down. * rotate-window command. -U flag (default) for up, -D flag for down.
@ -1198,7 +1204,7 @@
(including mutt, emacs). No status bar yet and no key remapping or other (including mutt, emacs). No status bar yet and no key remapping or other
customisation. customisation.
$Id: CHANGES,v 1.271 2009-04-03 17:21:46 nicm Exp $ $Id: CHANGES,v 1.272 2009-04-17 12:36:21 nicm Exp $
LocalWords: showw utf UTF fulvio ciriaco joshe OSC APC gettime abc DEF OA clr LocalWords: showw utf UTF fulvio ciriaco joshe OSC APC gettime abc DEF OA clr
LocalWords: rivo nurges lscm Erdely eol smysession mysession ek dstname RB ms LocalWords: rivo nurges lscm Erdely eol smysession mysession ek dstname RB ms

View File

@ -1,4 +1,4 @@
/* $Id: tty-keys.c,v 1.24 2009-03-02 18:05:40 nicm Exp $ */ /* $Id: tty-keys.c,v 1.25 2009-04-17 12:36:21 nicm Exp $ */
/* /*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -299,13 +299,13 @@ tty_keys_next(struct tty *tty, int *key, u_char *mouse)
if (len > 1) { if (len > 1) {
tk = tty_keys_find(tty, buf + 1, len - 1, &size); tk = tty_keys_find(tty, buf + 1, len - 1, &size);
if (tk != NULL) { if (tk != NULL) {
buffer_remove(tty->in, size + 1); buffer_remove(tty->in, size + 2);
*key = KEYC_ADDESC(tk->key); *key = KEYC_ADDESC(tk->key);
goto found; goto found;
} }
} }
/* If the timer hasn't expired, keep waiting . */ /* If the timer hasn't expired, keep waiting. */
if (gettimeofday(&tv, NULL) != 0) if (gettimeofday(&tv, NULL) != 0)
fatal("gettimeofday"); fatal("gettimeofday");
if (timercmp(&tty->key_timer, &tv, >)) if (timercmp(&tty->key_timer, &tv, >))
@ -405,7 +405,7 @@ tty_keys_parse_xterm(struct tty *tty, char *buf, size_t len, size_t *size)
key = KEYC_ADDESC(key); key = KEYC_ADDESC(key);
break; break;
case '2': case '2':
key = KEYC_ADDSFT(key); key = KEYC_ADDSFT(key);
break; break;
} }