void-packages/srcpkgs/bluez/patches/03-Fix-return-code-of-hid2hci.patch
2012-05-24 17:45:44 +02:00

61 lines
1.6 KiB
Diff

Description: bluez: getting a "Logitech, Inc. diNovo Edge Keyboard" working
Author: Nobuhiro Iwamatsu <iwamatsu@debian.org>
Origin: Nobuhiro Iwamatsu <iwamatsu@debian.org>
Debian BTS: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=626975
--- tools/hid2hci.c
+++ tools/hid2hci.c
@@ -240,7 +240,7 @@ int main(int argc, char *argv[])
enum mode mode = HCI;
const char *devpath = NULL;
int err = -1;
- int rc = 1;
+ int rc = 0;
for (;;) {
int option;
@@ -288,13 +288,16 @@ int main(int argc, char *argv[])
}
udev = udev_new();
- if (udev == NULL)
+ if (udev == NULL) {
+ rc = errno;
goto exit;
+ }
snprintf(syspath, sizeof(syspath), "%s/%s", udev_get_sys_path(udev), devpath);
udev_dev = udev_device_new_from_syspath(udev, syspath);
if (udev_dev == NULL) {
fprintf(stderr, "error: could not find '%s'\n", devpath);
+ rc = errno;
goto exit;
}
@@ -312,6 +315,7 @@ int main(int argc, char *argv[])
dev = udev_device_get_parent_with_subsystem_devtype(dev, "usb", "usb_device");
if (dev == NULL) {
fprintf(stderr, "error: could not find usb_device for '%s'\n", devpath);
+ rc = errno;
goto exit;
}
}
@@ -320,6 +324,7 @@ int main(int argc, char *argv[])
if (handle == NULL) {
fprintf(stderr, "error: unable to handle '%s'\n",
udev_device_get_syspath(dev));
+ rc = errno;
goto exit;
}
err = usb_switch(handle, mode);
@@ -331,6 +336,7 @@ int main(int argc, char *argv[])
device = udev_device_get_devnode(udev_dev);
if (device == NULL) {
fprintf(stderr, "error: could not find hiddev device node\n");
+ rc = errno;
goto exit;
}
err = hid_switch_logitech(device);
--
1.7.5.4