]> gitweb.factorcode.org Git - factor.git/commitdiff
Fixed a bug in the linux version of game.input
authorWilliam Schlieper <william@aldebaran.(none)>
Sat, 20 Feb 2010 13:35:02 +0000 (08:35 -0500)
committerWilliam Schlieper <william@aldebaran.(none)>
Sat, 20 Feb 2010 13:35:02 +0000 (08:35 -0500)
basis/game/input/linux/linux.factor

index b307835d7068bd1b10e1e342fd3e3d1cba530a3e..b6f3d4395670f33d7edbaddbaf2c080fc0374c93 100644 (file)
@@ -4,6 +4,9 @@ USING: alien.c-types alien.syntax arrays kernel game.input namespaces
 classes bit-arrays sequences vectors x11 x11.xlib ;
 IN: game.input.linux
 
+LIBRARY: xlib
+FUNCTION: int XQueryKeymap ( Display* display, char[32] keys_return ) ;
+
 SINGLETON: linux-game-input-backend
 
 linux-game-input-backend game-input-backend set-global
@@ -74,9 +77,9 @@ CONSTANT: x>hid-bit-order {
 }
      
 : x-bits>hid-bits ( bit-array -- bit-array )
-        256 iota [ 2array ] 2map [ first ] filter [ second ] map
-        x>hid-bit-order [ nth ] with map
-        ?{ } swap [ t swap pick set-nth ] each ;
+        256 iota [ 2array ] { } 2map-as [ first ] filter [ second ] map
+        x>hid-bit-order [ nth ] curry map
+        256 <bit-array> swap [ t swap pick set-nth ] each ;
         
 M: linux-game-input-backend read-keyboard
         dpy get 256 <bit-array> [ XQueryKeymap drop ] keep