Mercurial > sdl-ios-xcode
diff src/video/aalib/SDL_aaevents.c @ 1458:bf8db2d92be1
Date: Wed, 1 Mar 2006 23:52:09 +0100
From: Sam Hocevar
Subject: [SDL] [patch] aalib driver
Hi there. The attached patch fixes a buffer overflow in the aalib
driver and also adds a workaround for a conflict between arrow keys and
the numeric keypad that have the same scancode on aalib. The patch gives
precedence to the arrow keys.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Thu, 02 Mar 2006 03:18:21 +0000 |
parents | d910939febfa |
children | 782fd950bd46 c121d94672cb a1b03ba2fcd0 |
line wrap: on
line diff
--- a/src/video/aalib/SDL_aaevents.c Wed Mar 01 09:56:51 2006 +0000 +++ b/src/video/aalib/SDL_aaevents.c Thu Mar 02 03:18:21 2006 +0000 @@ -126,12 +126,6 @@ for ( i=0; i<SDL_arraysize(keymap); ++i ) keymap[i] = SDLK_UNKNOWN; - keymap[AA_ESC] = SDLK_ESCAPE; - keymap[AA_UP] = SDLK_UP; - keymap[AA_DOWN] = SDLK_DOWN; - keymap[AA_LEFT] = SDLK_LEFT; - keymap[AA_RIGHT] = SDLK_RIGHT; - /* Alphabet keys */ for ( i = 0; i<26; ++i ){ keymap['a' + i] = SDLK_a+i; @@ -179,10 +173,20 @@ keymap[293] = SDLK_KP7; keymap[295] = SDLK_KP8; keymap[298] = SDLK_KP9; + + keymap[AA_ESC] = SDLK_ESCAPE; + keymap[AA_UP] = SDLK_UP; + keymap[AA_DOWN] = SDLK_DOWN; + keymap[AA_LEFT] = SDLK_LEFT; + keymap[AA_RIGHT] = SDLK_RIGHT; } static SDL_keysym *TranslateKey(int scancode, SDL_keysym *keysym) { + /* Sanity check */ + if ( scancode >= SDL_arraysize(keymap) ) + scancode = AA_UNKNOWN; + /* Set the keysym information */ keysym->scancode = scancode; keysym->sym = keymap[scancode];