tools: print the AttrEventCodeEnable and AttrInputPropEnable/Disable quirks
authorPeter Hutterer <peter.hutterer@who-t.net>
Tue, 10 Nov 2020 03:32:26 +0000 (13:32 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Tue, 10 Nov 2020 04:27:22 +0000 (14:27 +1000)
Introduced in e3c4ff3 and e882bd02

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
tools/shared.c

index c967e11..8ba5f6a 100644 (file)
@@ -609,15 +609,15 @@ tools_exec_command(const char *prefix, int real_argc, char **real_argv)
 }
 
 static void
-sprintf_event_codes(char *buf, size_t sz, struct quirks *quirks)
+sprintf_event_codes(char *buf, size_t sz, struct quirks *quirks, enum quirk q)
 {
        const struct quirk_tuples *t;
        size_t off = 0;
        int printed;
        const char *name;
 
-       quirks_get_tuples(quirks, QUIRK_ATTR_EVENT_CODE_DISABLE, &t);
-       name = quirk_get_name(QUIRK_ATTR_EVENT_CODE_DISABLE);
+       quirks_get_tuples(quirks, q, &t);
+       name = quirk_get_name(q);
        printed = snprintf(buf, sz, "%s=", name);
        assert(printed != -1);
        off += printed;
@@ -633,6 +633,29 @@ sprintf_event_codes(char *buf, size_t sz, struct quirks *quirks)
        }
 }
 
+static void
+sprintf_input_props(char *buf, size_t sz, struct quirks *quirks, enum quirk q)
+{
+       const uint32_t *properties;
+       size_t nprops = 0;
+       size_t off = 0;
+       int printed;
+       const char *name;
+
+       quirks_get_uint32_array(quirks, q, &properties, &nprops);
+       name = quirk_get_name(q);
+       printed = snprintf(buf, sz, "%s=", name);
+       assert(printed != -1);
+       off += printed;
+
+       for (size_t i = 0; off < sz && i < nprops; i++) {
+               const char *name = libevdev_property_get_name(properties[i]);
+               printed = snprintf(buf + off, sz - off, "%s;", name);
+               assert(printed != -1);
+               off += printed;
+       }
+}
+
 void
 tools_list_device_quirks(struct quirks_context *ctx,
                         struct udev_device *device,
@@ -713,7 +736,13 @@ tools_list_device_quirks(struct quirks_context *ctx,
                                callback(userdata, buf);
                                break;
                        case QUIRK_ATTR_EVENT_CODE_DISABLE:
-                               sprintf_event_codes(buf, sizeof(buf), quirks);
+                       case QUIRK_ATTR_EVENT_CODE_ENABLE:
+                               sprintf_event_codes(buf, sizeof(buf), quirks, q);
+                               callback(userdata, buf);
+                               break;
+                       case QUIRK_ATTR_INPUT_PROP_DISABLE:
+                       case QUIRK_ATTR_INPUT_PROP_ENABLE:
+                               sprintf_input_props(buf, sizeof(buf), quirks, q);
                                callback(userdata, buf);
                                break;
                        default: