Fix documentation for libinput_log_set_handler
[platform/upstream/libinput.git] / src / path.c
index 27e5ad6..3752751 100644 (file)
@@ -112,6 +112,7 @@ path_seat_get_named(struct path_input *input,
 static int
 path_get_udev_properties(const char *path,
                         char **sysname,
+                        char **syspath,
                         char **seat_name,
                         char **seat_logical_name)
 {
@@ -133,6 +134,7 @@ path_get_udev_properties(const char *path,
                goto out;
 
        *sysname = strdup(udev_device_get_sysname(device));
+       *syspath = strdup(udev_device_get_syspath(device));
 
        seat = udev_device_get_property_value(device, "ID_SEAT");
        *seat_name = strdup(seat ? seat : default_seat);
@@ -155,12 +157,14 @@ path_device_enable(struct path_input *input, const char *devnode)
 {
        struct path_seat *seat;
        struct evdev_device *device = NULL;
-       char *sysname = NULL;
+       char *sysname = NULL, *syspath = NULL;
        char *seat_name = NULL, *seat_logical_name = NULL;
 
-       if (path_get_udev_properties(devnode, &sysname,
+       if (path_get_udev_properties(devnode, &sysname, &syspath,
                                     &seat_name, &seat_logical_name) == -1) {
-               log_info("failed to obtain sysname for device '%s'.\n", devnode);
+               log_info(&input->base,
+                        "failed to obtain sysname for device '%s'.\n",
+                        devnode);
                return NULL;
        }
 
@@ -171,25 +175,32 @@ path_device_enable(struct path_input *input, const char *devnode)
        } else {
                seat = path_seat_create(input, seat_name, seat_logical_name);
                if (!seat) {
-                       log_info("failed to create seat for device '%s'.\n", devnode);
+                       log_info(&input->base,
+                                "failed to create seat for device '%s'.\n",
+                                devnode);
                        goto out;
                }
        }
 
-       device = evdev_device_create(&seat->base, devnode, sysname);
+       device = evdev_device_create(&seat->base, devnode, sysname, syspath);
        libinput_seat_unref(&seat->base);
 
        if (device == EVDEV_UNHANDLED_DEVICE) {
                device = NULL;
-               log_info("not using input device '%s'.\n", devnode);
+               log_info(&input->base,
+                        "not using input device '%s'.\n",
+                        devnode);
                goto out;
        } else if (device == NULL) {
-               log_info("failed to create input device '%s'.\n", devnode);
+               log_info(&input->base,
+                        "failed to create input device '%s'.\n",
+                        devnode);
                goto out;
        }
 
 out:
        free(sysname);
+       free(syspath);
        free(seat_name);
        free(seat_logical_name);
 
@@ -264,7 +275,7 @@ libinput_path_add_device(struct libinput *libinput,
        struct libinput_device *device;
 
        if (libinput->interface_backend != &interface_backend) {
-               log_bug_client("Mismatching backends.\n");
+               log_bug_client(libinput, "Mismatching backends.\n");
                return NULL;
        }
 
@@ -301,7 +312,7 @@ libinput_path_remove_device(struct libinput_device *device)
        struct path_device *dev;
 
        if (libinput->interface_backend != &interface_backend) {
-               log_bug_client("Mismatching backends.\n");
+               log_bug_client(libinput, "Mismatching backends.\n");
                return;
        }