diff -rupN build/cgterm-1.7b2/keyboard.c work/cgterm-1.7b2/keyboard.c --- build/cgterm-1.7b2/keyboard.c 2004-02-06 17:22:05.000000000 +0100 +++ work/cgterm-1.7b2/keyboard.c 2011-04-17 18:18:31.399812813 +0200 @@ -249,7 +249,7 @@ unsigned char translatekey(SDL_keysym *k break; } - return(keytable[keysym->sym]); + return(keytable[keysym->scancode]); } diff -rupN build/cgterm-1.7b2/Makefile work/cgterm-1.7b2/Makefile --- build/cgterm-1.7b2/Makefile 2004-03-30 22:13:50.000000000 +0200 +++ work/cgterm-1.7b2/Makefile 2011-04-16 17:08:05.027378063 +0200 @@ -9,7 +9,7 @@ SOCKETLIBS= #SOCKETLIBS = -lsocket -lnsl CC=gcc -CFLAGS=-O3 -Wall `sdl-config --cflags` -DPREFIX=\"$(PREFIX)\" +CFLAGS=-O2 -Wall `sdl-config --cflags` -DPREFIX=\"$(PREFIX)\" LDFLAGS=`sdl-config --libs` $(SOCKETLIBS) diff -rupN build/cgterm-1.7b2/swedish.kbd work/cgterm-1.7b2/swedish.kbd --- build/cgterm-1.7b2/swedish.kbd 2003-11-21 19:08:20.000000000 +0100 +++ work/cgterm-1.7b2/swedish.kbd 2011-04-17 21:11:17.000000000 +0200 @@ -1,67 +1,68 @@ # swedish keyboard config +# modifierad till att använda scancode-värden istället för keysyms -arrowleft 160 -one 49 -two 50 -three 51 -four 52 -five 53 -six 54 -seven 55 -eight 56 -nine 57 -zero 48 -plus 43 -minus 161 -pound 277 -home 278 -del 8 - -q 113 -w 119 -e 101 -r 114 -t 116 -y 121 -u 117 -i 105 -o 111 -p 112 -at 163 -star 162 -arrowup 127 - -stop 9 -a 97 -s 115 -d 100 -f 102 -g 103 -h 104 -j 106 -k 107 -l 108 -colon 165 -semicolon 164 -equal 39 -return 13 - -z 122 -x 120 -c 99 -v 118 -b 98 -n 110 -m 109 -comma 44 -dot 46 -slash 45 -down 274 -right 275 - -space 32 - -f1 282 -f3 284 -f5 286 -f7 288 +arrowleft 49 +one 10 +two 11 +three 12 +four 13 +five 14 +six 15 +seven 16 +eight 17 +nine 18 +zero 19 +plus 20 +minus 21 +pound 119 +home 110 +del 22 + +q 24 +w 25 +e 26 +r 27 +t 28 +y 29 +u 30 +i 31 +o 32 +p 33 +at 34 +star 35 +arrowup 118 + +stop 66 +a 38 +s 39 +d 40 +f 41 +g 42 +h 43 +j 44 +k 45 +l 46 +colon 47 +semicolon 48 +equal 51 +return 36 + +z 52 +x 53 +c 54 +v 55 +b 56 +n 57 +m 58 +comma 59 +dot 60 +slash 61 +down 116 +right 114 + +space 65 + +f1 67 +f3 69 +f5 71 +f7 73 diff -rupN build/cgterm-1.7b2/testkbd.c work/cgterm-1.7b2/testkbd.c --- build/cgterm-1.7b2/testkbd.c 2003-12-02 11:30:19.000000000 +0100 +++ work/cgterm-1.7b2/testkbd.c 2011-04-16 17:27:17.887382634 +0200 @@ -97,7 +97,7 @@ int main(int argc, char *argv[]) { int line = 0, value; FILE *in; SDL_Event event; - int keysym = 0, key; + int scankey = 0, key; int shift, ctrl, alt; char *keyboardcfg = "keyboard.kbd"; int opt; @@ -193,8 +193,8 @@ int main(int argc, char *argv[]) { shift = event.key.keysym.mod & KMOD_SHIFT ? 1 : 0; ctrl = event.key.keysym.mod & KMOD_CTRL ? 1 : 0; alt = event.key.keysym.mod & KMOD_ALT ? 1 : 0; - keysym = event.key.keysym.sym; - switch (keysym) { + scankey = event.key.keysym.scancode; + switch (scankey) { case SDLK_F12: return(0); case SDLK_LSHIFT: @@ -206,10 +206,11 @@ int main(int argc, char *argv[]) { case SDLK_CAPSLOCK: break; default: - if ((key = keytable[keysym]) != 64) { - printf("keysym %d = %s (%d)\n", keysym, keys[key], key); + if(scankey == 96) return 0; + if ((key = keytable[scankey]) != 64) { + printf("scankey %d = %s (%d)\n", scankey, keys[key], key); } else { - printf("keysym %d is unmapped\n", keysym); + printf("scankey %d is unmapped\n", scankey); } break; }