[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#352106: escputil: escp2-c42sx & CUPS/cupsys-bsd: align-head doesn't work



tags 352106 + patch
thanks

Alex Henry Ribeiro dos Santos <tukkek@terra.com.br> writes:

> Package: escputil
> Version: 4.3.99+cvs20060121.dfsg.1-1
> Severity: normal
>
> I have an Epson Stylus C42SX and I'm using CUPS and cupsys-bsd.
> I get the following output when trying to align heads using the -P option (All output was manually translated from 
> brazilian portuguese to english by myself):
>
> 	# escputil -a -P C42SX -m escp2-c42sx
> 	Wasn't able to open (null) read/write: Invalid Adress

The following patch is intended to fix this with a more informative
error.  I'm just waiting for upstream approval.


Regards,
Roger


Index: escputil.c
===================================================================
RCS file: /cvsroot/gimp-print/print/src/escputil/escputil.c,v
retrieving revision 1.86
diff -u -r1.86 escputil.c
--- escputil.c	28 May 2006 16:59:03 -0000	1.86
+++ escputil.c	30 May 2006 16:59:26 -0000
@@ -424,7 +424,7 @@
   exit(0);
 }
 
-void
+static void
 print_debug_data(const char *buf, size_t count)
 {
   int i;
@@ -737,6 +737,28 @@
   alarm_interrupt = 1;
 }
 
+static int
+open_raw_device(void)
+{
+  int fd;
+
+  if (!raw_device)
+   {
+      fprintf(stderr, _("Please specify a raw device\n"));
+      exit(1);
+    }
+
+  fd = open(raw_device, O_RDWR, 0666);
+  if (fd == -1)
+    {
+      fprintf(stderr, _("Cannot open %s read/write: %s\n"), raw_device,
+              strerror(errno));
+      exit(1);
+    }
+
+  return fd;
+}
+
 static const stp_printer_t *
 initialize_printer(int quiet, int fail_if_not_found)
 {
@@ -757,13 +779,7 @@
 
   quiet = 0;
 
-  fd = open(raw_device, O_RDWR, 0666);
-  if (fd == -1)
-    {
-      fprintf(stderr, _("Cannot open %s read/write: %s\n"), raw_device,
-              strerror(errno));
-      exit(1);
-    }
+  fd = open_raw_device();
 
   if (!printer_model)
     {
@@ -1349,13 +1365,7 @@
 		      printer_model,
 		      printer ? "" : "(Unknown model)"));
 
-  fd = open(raw_device, O_RDWR, 0666);
-  if (fd == -1)
-    {
-      fprintf(stderr, _("Cannot open %s read/write: %s\n"), raw_device,
-              strerror(errno));
-      exit(1);
-    }
+  fd = open_raw_device();
 
   if (isnew)
     {
@@ -1463,13 +1473,7 @@
 	    "Warning! Printer %s is not known; information may be incomplete or incorrect\n",
 	    printer_model);
 
-  fd = open(raw_device, O_RDWR, 0666);
-  if (fd == -1)
-    {
-      fprintf(stderr, _("Cannot open %s read/write: %s\n"), raw_device,
-              strerror(errno));
-      exit(1);
-    }
+  fd = open_raw_device();
 
   if (isnew)
     {


-- 
Roger Leigh
                Printing on GNU/Linux?  http://gutenprint.sourceforge.net/
                Debian GNU/Linux        http://www.debian.org/
                GPG Public Key: 0x25BFB848.  Please sign and encrypt your mail.

Attachment: pgp384lOHzgvC.pgp
Description: PGP signature


Reply to: