- gchar s[64];
- gchar tmp_s[8];
- uint8_t port_numbers[32];
- int i;
-
- memset(port_numbers, 0, sizeof(port_numbers));
- libusb_get_port_numbers(dev, port_numbers, sizeof(port_numbers));
-
- g_snprintf((gchar*)&s, sizeof(s), "usb/%d-%d",
- libusb_get_bus_number(dev), port_numbers[0]);
-
- i = 1;
- while (port_numbers[i]) {
- g_snprintf(tmp_s, sizeof(tmp_s), ".%d", port_numbers[i]);
- g_strlcat((gchar*)&s, tmp_s, sizeof(s));
- i++;
- }
+ uint8_t port_numbers[8];
+ int i, n, len;
+
+ n = libusb_get_port_numbers(dev, port_numbers, sizeof(port_numbers));
+
+ len = snprintf(path, path_len, "usb/%d-%d",
+ libusb_get_bus_number(dev), port_numbers[0]);