From: lordhavoc Date: Fri, 2 Nov 2001 09:18:47 +0000 (+0000) Subject: clear keybindings[] array during Key_Init (bounds checker freaks if it isn't cleared... X-Git-Tag: RELEASE_0_2_0_RC1~747 X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fdarkplaces.git;a=commitdiff_plain;h=ede8bf1826fc0a78020dd1ddec67648a30d59e1a clear keybindings[] array during Key_Init (bounds checker freaks if it isn't cleared before it is used) git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@995 d7cf8633-e32d-0410-b094-e92efae38249 --- diff --git a/keys.c b/keys.c index a3d1f158..9632ed63 100644 --- a/keys.c +++ b/keys.c @@ -8,7 +8,7 @@ of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. @@ -68,7 +68,7 @@ keyname_t keynames[] = {"ALT", K_ALT}, {"CTRL", K_CTRL}, {"SHIFT", K_SHIFT}, - + {"F1", K_F1}, {"F2", K_F2}, {"F3", K_F3}, @@ -182,7 +182,7 @@ void Key_Console (int key) // Thanks to Fett, Taniwha Con_CompleteCommandLine(); } - + // Advanced Console Editing by Radix radix@planetquake.com // Added/Modified by EvilTypeGuy eviltypeguy@qeradiant.com @@ -233,7 +233,7 @@ void Key_Console (int key) } if (key == K_INS) // toggle insert mode - { + { key_insert ^= 1; return; } @@ -404,7 +404,7 @@ the K_* names are matched up. int Key_StringToKeynum (char *str) { keyname_t *kn; - + if (!str || !str[0]) return -1; if (!str[1]) @@ -429,9 +429,9 @@ FIXME: handle quote special (general escape sequence?) */ char *Key_KeynumToString (int keynum) { - keyname_t *kn; + keyname_t *kn; static char tinystr[2]; - + if (keynum == -1) return ""; if (keynum > 32 && keynum < 127) @@ -491,7 +491,7 @@ void Key_Unbind_f (void) Con_Printf ("unbind : remove commands from a key\n"); return; } - + b = Key_StringToKeynum (Cmd_Argv(1)); if (b==-1) { @@ -505,7 +505,7 @@ void Key_Unbind_f (void) void Key_Unbindall_f (void) { int i; - + for (i=0 ; i<256 ; i++) if (keybindings[i]) Key_SetBinding (i, ""); @@ -521,7 +521,7 @@ void Key_Bind_f (void) { int i, c, b; char cmd[1024]; - + c = Cmd_Argc(); if (c != 2 && c != 3) @@ -544,7 +544,7 @@ void Key_Bind_f (void) Con_Printf ("\"%s\" is not bound\n", Cmd_Argv(1) ); return; } - + // copy the rest of the command line cmd[0] = 0; // start out with a null string for (i=2 ; i< c ; i++) @@ -584,13 +584,17 @@ void Key_Init (void) { int i; + // LordHavoc: clear keybindings array so bounds checking won't freak + for (i = 0;i < 256;i++) + keybindings[i] = NULL; + for (i=0 ; i<32 ; i++) { key_lines[i][0] = ']'; key_lines[i][1] = 0; } key_linepos = 1; - + // // init ascii characters in console mode // @@ -649,8 +653,6 @@ void Key_Init (void) Cmd_AddCommand ("bind",Key_Bind_f); Cmd_AddCommand ("unbind",Key_Unbind_f); Cmd_AddCommand ("unbindall",Key_Unbindall_f); - - } /*