12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- diff -up cups-1.5b1/backend/usb-unix.c.uri-compat cups-1.5b1/backend/usb-unix.c
- --- cups-1.5b1/backend/usb-unix.c.uri-compat 2011-05-24 15:59:05.000000000 +0200
- +++ cups-1.5b1/backend/usb-unix.c 2011-05-24 16:02:03.000000000 +0200
- @@ -63,11 +63,34 @@ print_device(const char *uri, /* I - De
- int device_fd; /* USB device */
- ssize_t tbytes; /* Total number of bytes written */
- struct termios opts; /* Parallel port options */
- + char *fixed_uri = strdup (uri);
- + char *p;
-
-
- (void)argc;
- (void)argv;
-
- + p = strchr (fixed_uri, ':');
- + if (p++ != NULL)
- + {
- + char *e;
- + p += strspn (p, "/");
- + e = strchr (p, '/');
- + if (e > p)
- + {
- + size_t mfrlen = e - p;
- + e++;
- + if (!strncasecmp (e, p, mfrlen))
- + {
- + char *x = e + mfrlen;
- + if (!strncmp (x, "%20", 3))
- + /* Take mfr name out of mdl name for compatibility with
- + * Fedora 11 before bug #507244 was fixed. */
- + strcpy (e, x + 3); puts(fixed_uri);
- + }
- + }
- + }
- +
- /*
- * Open the USB port device...
- */
- @@ -107,10 +130,10 @@ print_device(const char *uri, /* I - De
- _cups_strncasecmp(hostname, "Minolta", 7);
- #endif /* __FreeBSD__ || __NetBSD__ || __OpenBSD__ || __DragonFly__ */
-
- - if (use_bc && !strncmp(uri, "usb:/dev/", 9))
- + if (use_bc && !strncmp(fixed_uri, "usb:/dev/", 9))
- use_bc = 0;
-
- - if ((device_fd = open_device(uri, &use_bc)) == -1)
- + if ((device_fd = open_device(fixed_uri, &use_bc)) == -1)
- {
- if (getenv("CLASS") != NULL)
- {
|