Blacklist SW_MAX so it doesn't shadow SW_PEN_INSERTED
authorPeter Hutterer <peter.hutterer@who-t.net>
Mon, 26 Feb 2018 07:02:41 +0000 (17:02 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Mon, 26 Feb 2018 07:12:08 +0000 (17:12 +1000)
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.

Blacklist it in the script here, causing it to resolve from name to code, but
not from code to name (like other duplicated codes).

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
libevdev/make-event-names.py
test/test-event-codes.c
test/test-event-names.c

index 8ec885872bd74270a9b6994ab66280fcdce9a22f..44e168526392342fc6cbfbf68b0b76de595c0cf5 100755 (executable)
@@ -36,6 +36,7 @@ blacklist = [
                "BTN_DIGI",
                "BTN_WHEEL",
                "BTN_TRIGGER_HAPPY",
+               "SW_MAX",
                "REP_MAX",
 ]
 
index b64940ebb3a0098a82b5a54ade8b57993098f17a..80f277b713b42624febd4652c4322379158d8517 100644 (file)
@@ -72,7 +72,7 @@ START_TEST(test_key_codes)
        ck_assert_int_eq(libevdev_event_code_from_name(EV_KEY, "KEY_0"), KEY_0);
        ck_assert_int_eq(libevdev_event_code_from_name(EV_FF, "FF_GAIN"), FF_GAIN);
        ck_assert_int_eq(libevdev_event_code_from_name(EV_FF_STATUS, "FF_STATUS_MAX"), FF_STATUS_MAX);
-       ck_assert_int_eq(libevdev_event_code_from_name(EV_SW, "SW_MAX"), SW_MAX);
+       ck_assert_int_eq(libevdev_event_code_from_name(EV_SW, "SW_PEN_INSERTED"), SW_PEN_INSERTED);
 
        ck_assert_int_eq(libevdev_event_code_from_name_n(EV_ABS, "ABS_YXZ", 5), ABS_Y);
 }
index b7d5567a3638a480bd7c63e52fb9f62f98b6b4b8..4807decd4cefefed6bc6f60a2d552362800a7aad 100644 (file)
@@ -173,7 +173,8 @@ START_TEST(test_code_sw_name)
        ck_assert_str_eq(libevdev_event_code_get_name(EV_SW, SW_LID), "SW_LID");
        ck_assert_str_eq(libevdev_event_code_get_name(EV_SW, SW_RFKILL_ALL), "SW_RFKILL_ALL");
        ck_assert_str_eq(libevdev_event_code_get_name(EV_SW, SW_LINEIN_INSERT), "SW_LINEIN_INSERT");
-       ck_assert_str_eq(libevdev_event_code_get_name(EV_SW, SW_MAX), "SW_MAX");
+       ck_assert_str_eq(libevdev_event_code_get_name(EV_SW, SW_PEN_INSERTED), "SW_PEN_INSERTED");
+       ck_assert_str_eq(libevdev_event_code_get_name(EV_SW, SW_MAX), "SW_PEN_INSERTED");
 }
 END_TEST