summaryrefslogtreecommitdiff
path: root/devel/sdl/files/patch-an
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--devel/sdl/files/patch-an123
1 files changed, 123 insertions, 0 deletions
diff --git a/devel/sdl/files/patch-an b/devel/sdl/files/patch-an
new file mode 100644
index 000000000000..6cb0a945aaeb
--- /dev/null
+++ b/devel/sdl/files/patch-an
@@ -0,0 +1,123 @@
+--- src/video/svga/SDL_svgaevents.c 2000/08/25 03:55:01 1.1
++++ src/video/svga/SDL_svgaevents.c 2000/08/29 19:58:36
+@@ -42,8 +42,6 @@
+ #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];
+ static SDL_keysym *TranslateKey(int scancode, SDL_keysym *keysym);
+
+@@ -54,70 +52,6 @@
+ */
+ 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;
+- }
+- }
+- }
+- }
+ }
+
+ int posted = 0;
+@@ -312,38 +246,10 @@
+ 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 ) {
+- int map;
+- SDLMod modstate;
+-
+- modstate = SDL_GetModState();
+- map = 0;
+- if ( modstate & KMOD_SHIFT ) {
+- map |= (1<<KG_SHIFT);
+- }
+- if ( modstate & KMOD_CTRL ) {
+- map |= (1<<KG_CTRL);
+- }
+- 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]);
+- }
++ /* Populate the unicode field with the ASCII value */
++ keysym->unicode = scancode;
+ }
+ return(keysym);
+ }