[PATCH libevdev 2/4] Blacklist REP_MAX so it doesn't shadow REP_PERIOD

Peter Hutterer peter.hutterer at who-t.net
Mon Feb 26 07:13:30 UTC 2018


They have the same value, so the _MAX code would shadow the real code, causing
issues in any client that needs to get all event names from libevdev.
Specifically, the loop of:
  for each code in 0 to max-for-type:
      print(name)
would not show up the code (but the _MAX) code instead. This causes issues
with clients that rely on name resolution that works. And the _MAX values are
special values anyway.

Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
 libevdev/make-event-names.py |  3 ++-
 test/test-event-names.c      | 10 ++++++++++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/libevdev/make-event-names.py b/libevdev/make-event-names.py
index d1e8873..8ec8858 100755
--- a/libevdev/make-event-names.py
+++ b/libevdev/make-event-names.py
@@ -35,7 +35,8 @@ blacklist = [
 		"BTN_GAMEPAD",
 		"BTN_DIGI",
 		"BTN_WHEEL",
-		"BTN_TRIGGER_HAPPY"
+		"BTN_TRIGGER_HAPPY",
+		"REP_MAX",
 ]
 
 btn_additional = [
diff --git a/test/test-event-names.c b/test/test-event-names.c
index 10a59ea..b7d5567 100644
--- a/test/test-event-names.c
+++ b/test/test-event-names.c
@@ -143,6 +143,15 @@ START_TEST(test_code_snd_name)
 }
 END_TEST
 
+START_TEST(test_code_rep_name)
+{
+	ck_assert_str_eq(libevdev_event_code_get_name(EV_REP, REP_DELAY), "REP_DELAY");
+	ck_assert_str_eq(libevdev_event_code_get_name(EV_REP, REP_PERIOD), "REP_PERIOD");
+	ck_assert_str_eq(libevdev_event_code_get_name(EV_REP, REP_MAX), "REP_PERIOD");
+
+}
+END_TEST
+
 START_TEST(test_code_msc_name)
 {
 	/* pick out a few only */
@@ -281,6 +290,7 @@ event_name_suite(void)
 	tcase_add_test(tc, test_code_key_name);
 	tcase_add_test(tc, test_code_led_name);
 	tcase_add_test(tc, test_code_snd_name);
+	tcase_add_test(tc, test_code_rep_name);
 	tcase_add_test(tc, test_code_msc_name);
 	tcase_add_test(tc, test_code_sw_name);
 	tcase_add_test(tc, test_code_ff_name);
-- 
2.14.3



More information about the Input-tools mailing list