]> git.ipfire.org Git - people/amarx/ipfire-3.x.git/blame - cups/patches/015_cups-usb-paperout.patch
cups: Update to latest stable release 1.6.1.
[people/amarx/ipfire-3.x.git] / cups / patches / 015_cups-usb-paperout.patch
CommitLineData
1f9b7ef8
KB
1diff -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
f92713d3
SS
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...
1f9b7ef8 16@@ -334,7 +339,19 @@ open_device(const char *uri, /* I - Dev
f92713d3
SS
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 {
1f9b7ef8 37@@ -400,7 +417,14 @@ open_device(const char *uri, /* I - Dev
f92713d3
SS
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",