]> err.no Git - systemd/commitdiff
extras/keymap: fix hash table collisions
authorMartin Pitt <martin.pitt@ubuntu.com>
Wed, 9 Sep 2009 09:09:17 +0000 (11:09 +0200)
committerMartin Pitt <martin.pitt@ubuntu.com>
Wed, 9 Sep 2009 09:09:17 +0000 (11:09 +0200)
More than one key name was mapped to the same key, due to linux/input.h
defining some aliases (in particular, KEY_HANGUEL, KEY_SCREENLOCK,
KEY_MIN_INTERESTING). These caused hash table collisions.

Changed the generation of the tables to ignore these aliases, and updated all
keymaps to use the canonical name.

This was detected by llvm-clang-analyzer. Thanks to Lennart Poettering for
doing these checks and pointing this out!

https://launchpad.net/bugs/426647

Makefile.am
extras/keymap/keymaps/acer-travelmate_c300
extras/keymap/keymaps/dell
extras/keymap/keymaps/hewlett-packard
extras/keymap/keymaps/hewlett-packard-presario-2100
extras/keymap/keymaps/lenovo-thinkpad_x200_tablet
extras/keymap/keymaps/lenovo-thinkpad_x6_tablet
extras/keymap/keymaps/module-ibm
extras/keymap/keymaps/module-lenovo
extras/keymap/keymaps/toshiba-satellite_a110

index 61fbf222cbc7adab14e3e7ce3a186149640bb5f1..9f8ca8c3ae429a600c5298a40dbc39d402cb5a77 100644 (file)
@@ -528,7 +528,7 @@ dist_udevkeymap_DATA = \
        extras/keymap/keymaps/zepto-znote
 
 extras/keymap/keys.txt: /usr/include/linux/input.h
-       $(AM_V_GEN)$(AWK) '/^#define.*KEY_/ { if ($$2 != "KEY_MAX" && $$2 != "KEY_CNT") { print $$2 } }' < $< > $@
+       $(AM_V_GEN)$(AWK) '/^#define.*KEY_[^ ]+[[:space:]]+[0-9]/ { if ($$2 != "KEY_MAX") { print $$2 } }' < $< > $@
 
 extras/keymap/keys-from-name.gperf: extras/keymap/keys.txt
        $(AM_V_GEN)$(AWK) 'BEGIN{ print "struct key { const char* name; unsigned short id; };"; print "%null-strings"; print "%%";} { print $$1 ", " $$1 }' < $< > $@
index bfef4cf868cbcf6f9f653017b991a2c202b5a5ec..790332a8a56a0c53164337e3ef56e10f24fc1e65 100644 (file)
@@ -2,4 +2,4 @@
 0x68 up
 0x69 down
 0x6B fn
-0x6C screenlock # FIXME: lock tablet device/buttons
+0x6C coffee # FIXME: lock tablet device/buttons
index 5ff44d6b38367dfab872e276ff70f84d97796d60..917ea982eabdbd006c15b33910a9133bc134ae39 100644 (file)
@@ -23,5 +23,5 @@
 0x9B switchvideomode # Display Toggle button
 0xA2 playpause # Front panel play/pause
 0xA4 stopcd # Front panel stop
-0xD8 screenlock # FIXME: Tablet lock button
+0xD8 coffee # FIXME: Tablet lock button
 0xED media # MediaDirect button
index 4461fa2ce5750da10ab0e0ba9cde9dea435aea02..76178f2697ec4b495c8a7353a84c9716d1cb8692 100644 (file)
@@ -1,6 +1,6 @@
 0x81 fn_esc
 0x89 battery # FnF8
-0x8A screenlock # FnF6
+0x8A coffee # FnF6
 0x8B camera
 0x8C media # music
 0x8E dvd
index 1df39dcbd23ab804f180422848ff8f507e9147d8..f274cfdae499299e3f15acdcc8f0890e5aef13ba 100644 (file)
@@ -1,3 +1,3 @@
 0xF0 help
-0xF1 screenlock
+0xF1 coffee
 0xF3 search
index 31ea3b2c7030aa9df95ec1fb22e60a1cceca8e2e..f15e9cc947e41a61a82e87b40b58a8679ac77862 100644 (file)
@@ -1,6 +1,6 @@
 0x5D menu
 0x63 fn
-0x66 screenlock
+0x66 coffee
 0x67 cyclewindows # bezel circular arrow
 0x68 setup # bezel setup / menu
 0x6c direction # rotate screen
index 6fd16b5662960925bbb0cd6106137c128993422d..25fc84280887472fe75fbc242fda680ddb01a8cc 100644 (file)
@@ -1,5 +1,5 @@
 0x6C f21 # rotate
-0x68 screenlock # screenlock
+0x68 coffee # screenlock
 0x6B esc # escape
 0x6D right # right on d-pad
 0x6E left # left on d-pad
index a92dfa2506ce8e725117536d544daa1ba3a007e9..7afe6fa50a4cf147fc9fc4d4474b41b605d44c4a 100644 (file)
@@ -1,5 +1,5 @@
 0x01 battery # Fn+F2
-0x02 screenlock # Fn+F3
+0x02 coffee # Fn+F3
 0x03 sleep # Fn+F4
 0x04 wlan # Fn+F5
 0x06 switchvideomode # Fn+F7
index 7c597bd8515589bc6687eb5e43e94cc9e92f7f82..82be94f372ff5de1bfe7371a90cde02c4123a99e 100644 (file)
@@ -1,4 +1,4 @@
-0x1 screenlock # Fn+F2
+0x1 coffee # Fn+F2
 0x2 battery # Fn+F3
 0x3 sleep # Fn+F4
 0x4 wlan # Fn+F5
index 0f2aaec4207480db1543fe0c197593abc419a39c..5561e4a3af8005a414230465fe444b4d98c3744f 100644 (file)
@@ -5,6 +5,6 @@
 0x9F f21 # FIXME: Touchpad off
 0xB9 nextsong
 0xD9 brightnessup
-0xEE screenlock
+0xEE coffee
 0xF4 previoussong
 0xF7 playpause