You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.5 KiB
51 lines
1.5 KiB
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) |
|
{
|
|
|