From patchwork Sun Aug 29 23:23:09 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [PATH,curses] Fix control-{@[\]^_} and ESC Date: Sun, 29 Aug 2010 13:23:09 -0000 From: Samuel Thibault X-Patchwork-Id: 62981 Message-Id: <20100829232309.GD5158@const.famille.thibault.fr> To: qemu-devel@nongnu.org control-{@[\]^_} shouldn't get the 'a' - 'A' offset for correct translation. ESC is better simulated as escape key. Signed-off-by: Samuel Thibault diff --git a/ui/curses.c b/ui/curses.c index ed3165e..5d949d6 100644 --- a/ui/curses.c +++ b/ui/curses.c @@ -238,9 +240,12 @@ static void curses_refresh(DisplayState *ds) keysym = curses2keysym[chr]; if (keysym == -1) { - if (chr < ' ') - keysym = (chr + '@' - 'A' + 'a') | KEYSYM_CNTRL; - else + if (chr < ' ') { + keysym = chr + '@'; + if (keysym >= 'A' && keysym <= 'Z') + keysym += 'a' - 'A'; + keysym |= KEYSYM_CNTRL; + } else keysym = chr; } diff --git a/ui/curses_keys.h b/ui/curses_keys.h index 1decd11..c0d5eb4 100644 --- a/ui/curses_keys.h +++ b/ui/curses_keys.h @@ -55,6 +55,7 @@ static const int curses2keysym[CURSES_KEYS] = { [0x7f] = KEY_BACKSPACE, ['\r'] = KEY_ENTER, ['\n'] = KEY_ENTER, + [27] = 27, [KEY_BTAB] = '\t' | KEYSYM_SHIFT, };