--- src/video/svga/SDL_svgaevents.c.orig Wed Nov 24 01:46:25 1999 +++ src/video/svga/SDL_svgaevents.c Sun Sep 24 00:28:45 2000 @@ -28,12 +28,14 @@ /* Handle the event stream, converting X11 events into SDL events */ #include +#include #include #include #include #include #include +#include #include "SDL.h" #include "SDL_sysevents.h" @@ -42,9 +44,8 @@ #include "SDL_svgaevents_c.h" /* The translation tables from a console scancode to a SDL keysym */ -#define NUM_VGAKEYMAPS (1<sym = keymap[scancode]; keysym->mod = KMOD_NONE; - /* If UNICODE is on, get the UNICODE value for the key */ keysym->unicode = 0; - if ( SDL_TranslateUNICODE ) { + if ( (SDL_TranslateUNICODE) && (vga_keymap != NULL) ) { int map; SDLMod modstate; modstate = SDL_GetModState(); map = 0; if ( modstate & KMOD_SHIFT ) { - map |= (1<unicode=KVAL(vga_keymap[map][scancode]); - } - } else { - keysym->unicode = KVAL(vga_keymap[map][scancode]); + map += 4; } + if ( !(vga_keymap->key[scancode].spcl & (0x80 >> map)) ) + keysym->unicode = vga_keymap->key[scancode].map[map]; } return(keysym); }