From 6983c0d0f2e396102118016eb7d9dafb3e193d57 Mon Sep 17 00:00:00 2001 From: Martin Pitt Date: Wed, 9 Sep 2009 11:09:17 +0200 Subject: [PATCH] extras/keymap: fix hash table collisions 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 | 2 +- extras/keymap/keymaps/acer-travelmate_c300 | 2 +- extras/keymap/keymaps/dell | 2 +- extras/keymap/keymaps/hewlett-packard | 2 +- extras/keymap/keymaps/hewlett-packard-presario-2100 | 2 +- extras/keymap/keymaps/lenovo-thinkpad_x200_tablet | 2 +- extras/keymap/keymaps/lenovo-thinkpad_x6_tablet | 2 +- extras/keymap/keymaps/module-ibm | 2 +- extras/keymap/keymaps/module-lenovo | 2 +- extras/keymap/keymaps/toshiba-satellite_a110 | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Makefile.am b/Makefile.am index 61fbf222..9f8ca8c3 100644 --- a/Makefile.am +++ b/Makefile.am @@ -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 }' < $< > $@ diff --git a/extras/keymap/keymaps/acer-travelmate_c300 b/extras/keymap/keymaps/acer-travelmate_c300 index bfef4cf8..790332a8 100644 --- a/extras/keymap/keymaps/acer-travelmate_c300 +++ b/extras/keymap/keymaps/acer-travelmate_c300 @@ -2,4 +2,4 @@ 0x68 up 0x69 down 0x6B fn -0x6C screenlock # FIXME: lock tablet device/buttons +0x6C coffee # FIXME: lock tablet device/buttons diff --git a/extras/keymap/keymaps/dell b/extras/keymap/keymaps/dell index 5ff44d6b..917ea982 100644 --- a/extras/keymap/keymaps/dell +++ b/extras/keymap/keymaps/dell @@ -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 diff --git a/extras/keymap/keymaps/hewlett-packard b/extras/keymap/keymaps/hewlett-packard index 4461fa2c..76178f26 100644 --- a/extras/keymap/keymaps/hewlett-packard +++ b/extras/keymap/keymaps/hewlett-packard @@ -1,6 +1,6 @@ 0x81 fn_esc 0x89 battery # FnF8 -0x8A screenlock # FnF6 +0x8A coffee # FnF6 0x8B camera 0x8C media # music 0x8E dvd diff --git a/extras/keymap/keymaps/hewlett-packard-presario-2100 b/extras/keymap/keymaps/hewlett-packard-presario-2100 index 1df39dcb..f274cfda 100644 --- a/extras/keymap/keymaps/hewlett-packard-presario-2100 +++ b/extras/keymap/keymaps/hewlett-packard-presario-2100 @@ -1,3 +1,3 @@ 0xF0 help -0xF1 screenlock +0xF1 coffee 0xF3 search diff --git a/extras/keymap/keymaps/lenovo-thinkpad_x200_tablet b/extras/keymap/keymaps/lenovo-thinkpad_x200_tablet index 31ea3b2c..f15e9cc9 100644 --- a/extras/keymap/keymaps/lenovo-thinkpad_x200_tablet +++ b/extras/keymap/keymaps/lenovo-thinkpad_x200_tablet @@ -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 diff --git a/extras/keymap/keymaps/lenovo-thinkpad_x6_tablet b/extras/keymap/keymaps/lenovo-thinkpad_x6_tablet index 6fd16b56..25fc8428 100644 --- a/extras/keymap/keymaps/lenovo-thinkpad_x6_tablet +++ b/extras/keymap/keymaps/lenovo-thinkpad_x6_tablet @@ -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 diff --git a/extras/keymap/keymaps/module-ibm b/extras/keymap/keymaps/module-ibm index a92dfa25..7afe6fa5 100644 --- a/extras/keymap/keymaps/module-ibm +++ b/extras/keymap/keymaps/module-ibm @@ -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 diff --git a/extras/keymap/keymaps/module-lenovo b/extras/keymap/keymaps/module-lenovo index 7c597bd8..82be94f3 100644 --- a/extras/keymap/keymaps/module-lenovo +++ b/extras/keymap/keymaps/module-lenovo @@ -1,4 +1,4 @@ -0x1 screenlock # Fn+F2 +0x1 coffee # Fn+F2 0x2 battery # Fn+F3 0x3 sleep # Fn+F4 0x4 wlan # Fn+F5 diff --git a/extras/keymap/keymaps/toshiba-satellite_a110 b/extras/keymap/keymaps/toshiba-satellite_a110 index 0f2aaec4..5561e4a3 100644 --- a/extras/keymap/keymaps/toshiba-satellite_a110 +++ b/extras/keymap/keymaps/toshiba-satellite_a110 @@ -5,6 +5,6 @@ 0x9F f21 # FIXME: Touchpad off 0xB9 nextsong 0xD9 brightnessup -0xEE screenlock +0xEE coffee 0xF4 previoussong 0xF7 playpause -- 2.39.5