diff options
Diffstat (limited to 'devel/sdl/files/patch-an')
-rw-r--r-- | devel/sdl/files/patch-an | 147 |
1 files changed, 0 insertions, 147 deletions
diff --git a/devel/sdl/files/patch-an b/devel/sdl/files/patch-an deleted file mode 100644 index 25d170673525..000000000000 --- a/devel/sdl/files/patch-an +++ /dev/null @@ -1,147 +0,0 @@ ---- 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 <stdio.h> -+#include <stdlib.h> - - #include <vga.h> - #include <vgamouse.h> - #include <vgakeyboard.h> - #include <linux/kd.h> - #include <linux/keyboard.h> -+#include <sys/kbio.h> - - #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<<KG_CAPSSHIFT) --static Uint16 vga_keymap[NUM_VGAKEYMAPS][NR_KEYS]; - static SDLKey keymap[128]; -+keymap_t *vga_keymap = NULL; - static SDL_keysym *TranslateKey(int scancode, SDL_keysym *keysym); - - /* Ugh, we have to duplicate the kernel's keysym mapping code... -@@ -54,69 +55,10 @@ - */ - void SVGA_initkeymaps(int fd) - { -- struct kbentry entry; -- int map, i; -- -- /* Load all the keysym mappings */ -- for ( map=0; map<NUM_VGAKEYMAPS; ++map ) { -- memset(vga_keymap[map], 0, NR_KEYS*sizeof(Uint16)); -- for ( i=0; i<NR_KEYS; ++i ) { -- entry.kb_table = map; -- entry.kb_index = i; -- if ( ioctl(fd, KDGKBENT, &entry) == 0 ) { -- /* The "Enter" key is a special case */ -- if ( entry.kb_value == K_ENTER ) { -- entry.kb_value = K(KT_ASCII,13); -- } -- /* Handle numpad specially as well */ -- if ( KTYP(entry.kb_value) == KT_PAD ) { -- switch ( entry.kb_value ) { -- case K_P0: -- case K_P1: -- case K_P2: -- case K_P3: -- case K_P4: -- case K_P5: -- case K_P6: -- case K_P7: -- case K_P8: -- case K_P9: -- vga_keymap[map][i]=entry.kb_value; -- vga_keymap[map][i]+= '0'; -- break; -- case K_PPLUS: -- vga_keymap[map][i]=K(KT_ASCII,'+'); -- break; -- case K_PMINUS: -- vga_keymap[map][i]=K(KT_ASCII,'-'); -- break; -- case K_PSTAR: -- vga_keymap[map][i]=K(KT_ASCII,'*'); -- break; -- case K_PSLASH: -- vga_keymap[map][i]=K(KT_ASCII,'/'); -- break; -- case K_PENTER: -- vga_keymap[map][i]=K(KT_ASCII,'\r'); -- break; -- case K_PCOMMA: -- vga_keymap[map][i]=K(KT_ASCII,','); -- break; -- case K_PDOT: -- vga_keymap[map][i]=K(KT_ASCII,'.'); -- break; -- default: -- break; -- } -- } -- /* Do the normal key translation */ -- if ( (KTYP(entry.kb_value) == KT_LATIN) || -- (KTYP(entry.kb_value) == KT_ASCII) || -- (KTYP(entry.kb_value) == KT_LETTER) ) { -- vga_keymap[map][i] = entry.kb_value; -- } -- } -- } -+ vga_keymap = malloc(sizeof(keymap_t)); -+ if (ioctl(fd, GIO_KEYMAP, vga_keymap) == -1) { -+ free(vga_keymap); -+ vga_keymap = NULL; - } - } - -@@ -312,38 +254,24 @@ - keysym->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<<KG_SHIFT); -+ map += 1; - } - if ( modstate & KMOD_CTRL ) { -- map |= (1<<KG_CTRL); -+ map += 2; - } - if ( modstate & KMOD_ALT ) { -- map |= (1<<KG_ALT); -- } -- if ( modstate & KMOD_MODE ) { -- map |= (1<<KG_ALTGR); -- } -- if ( KTYP(vga_keymap[map][scancode]) == KT_LETTER ) { -- if ( modstate & KMOD_CAPS ) { -- map ^= (1<<KG_SHIFT); -- } -- } -- if ( KTYP(vga_keymap[map][scancode]) == KT_PAD ) { -- if ( modstate & KMOD_NUM ) { -- keysym->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); - } |