Allow C-Space to work correctly once again, and forbid nonsensical combinations such as C-Enter or C-Escape.

pull/1/head
Micah Cowan 2010-06-05 06:27:19 +00:00
parent e334deb872
commit d27956f160
1 changed files with 21 additions and 22 deletions

View File

@ -1,4 +1,4 @@
/* $Id: key-string.c,v 1.32 2010-05-14 14:21:07 tcunha Exp $ */ /* $Id: key-string.c,v 1.33 2010-06-05 06:27:19 micahcowan Exp $ */
/* /*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -149,29 +149,28 @@ key_string_lookup_string(const char *string)
key = (u_char) string[0]; key = (u_char) string[0];
if (key < 32 || key > 126) if (key < 32 || key > 126)
return (KEYC_NONE); return (KEYC_NONE);
} else {
/* Convert the standard control keys. */ /* Otherwise look the key up in the table. */
if (modifiers & KEYC_CTRL) { key = key_string_search_table(string);
if (key >= 97 && key <= 122) if (key == KEYC_NONE)
key -= 96; return (KEYC_NONE);
else if (key >= 64 && key <= 95) }
key -= 64;
else if (key == 32) /* Convert the standard control keys. */
key = 0; if (key < KEYC_BASE && (modifiers & KEYC_CTRL)) {
else if (key == 63) if (key >= 97 && key <= 122)
key = KEYC_BSPACE; key -= 96;
else else if (key >= 64 && key <= 95)
return (KEYC_NONE); key -= 64;
modifiers &= ~KEYC_CTRL; else if (key == 32)
} key = 0;
else if (key == 63)
return (key | modifiers); key = KEYC_BSPACE;
else
return (KEYC_NONE);
modifiers &= ~KEYC_CTRL;
} }
/* Otherwise look the key up in the table. */
key = key_string_search_table(string);
if (key == KEYC_NONE)
return (KEYC_NONE);
return (key | modifiers); return (key | modifiers);
} }