[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