clear keybindings[] array during Key_Init (bounds checker freaks if it isn't cleared...
authorlordhavoc <lordhavoc@d7cf8633-e32d-0410-b094-e92efae38249>
Fri, 2 Nov 2001 09:18:47 +0000 (09:18 +0000)
committerlordhavoc <lordhavoc@d7cf8633-e32d-0410-b094-e92efae38249>
Fri, 2 Nov 2001 09:18:47 +0000 (09:18 +0000)
git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@995 d7cf8633-e32d-0410-b094-e92efae38249

keys.c

diff --git a/keys.c b/keys.c
index a3d1f158a82fb1d39ffd6fb4ed18c294c8e5e6e0..9632ed637722f9b4848965f96aff376a72d9922a 100644 (file)
--- 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 "<KEY NOT FOUND>";
        if (keynum > 32 && keynum < 127)
@@ -491,7 +491,7 @@ void Key_Unbind_f (void)
                Con_Printf ("unbind <key> : 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);
-
-
 }
 
 /*