From a67d1964ffa53622322736d32b48162d94c4208a Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Mon, 26 Feb 2018 16:59:58 +1000 Subject: [PATCH] Blacklist REP_MAX so it doesn't shadow REP_PERIOD 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 Reviewed-by: Benjamin Tissoires --- 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.7.4