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) {