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