]> git.ipfire.org Git - ipfire-3.x.git/blob - cups/patches/015_cups-usb-paperout.patch
libtevent: Update to version 0.9.30
[ipfire-3.x.git] / cups / patches / 015_cups-usb-paperout.patch
1 diff -up cups-1.5b1/backend/usb-unix.c.usb-paperout cups-1.5b1/backend/usb-unix.c
2 --- cups-1.5b1/backend/usb-unix.c.usb-paperout 2011-05-24 15:51:39.000000000 +0200
3 +++ cups-1.5b1/backend/usb-unix.c 2011-05-24 15:51:39.000000000 +0200
4 @@ -30,6 +30,11 @@
5
6 #include <sys/select.h>
7
8 +#ifdef __linux
9 +#include <sys/ioctl.h>
10 +#include <linux/lp.h>
11 +#endif /* __linux */
12 +
13
14 /*
15 * Local functions...
16 @@ -334,7 +339,19 @@ open_device(const char *uri, /* I - Dev
17 if (!strncmp(uri, "usb:/dev/", 9))
18 #ifdef __linux
19 {
20 - return (open(uri + 4, O_RDWR | O_EXCL));
21 + fd = open(uri + 4, O_RDWR | O_EXCL);
22 +
23 + if (fd != -1)
24 + {
25 + /*
26 + * Tell the driver to return from write() with errno==ENOSPACE
27 + * on paper-out.
28 + */
29 + unsigned int t = 1;
30 + ioctl (fd, LPABORT, &t);
31 + }
32 +
33 + return fd;
34 }
35 else if (!strncmp(uri, "usb://", 6))
36 {
37 @@ -400,7 +417,14 @@ open_device(const char *uri, /* I - Dev
38 if (!strcmp(uri, device_uri))
39 {
40 /*
41 - * Yes, return this file descriptor...
42 + * Yes, tell the driver to return from write() with
43 + * errno==ENOSPACE on paper-out.
44 + */
45 + unsigned int t = 1;
46 + ioctl (fd, LPABORT, &t);
47 +
48 + /*
49 + * Return this file descriptor...
50 */
51
52 fprintf(stderr, "DEBUG: Printer using device file \"%s\"...\n",