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