]> git.ipfire.org Git - thirdparty/cups.git/blobdiff - filter/imagetops.c
Merge changes from CUPS 1.5.1-r9875.
[thirdparty/cups.git] / filter / imagetops.c
index 01a921f37b36dc60dfb2ea794ea2b83d81373ec6..d8638b25ad24cef85bb7c16d03f3c7a7b10f2c42 100644 (file)
@@ -3,7 +3,7 @@
  *
  *   Image file to PostScript filter for CUPS.
  *
- *   Copyright 2007-2010 by Apple Inc.
+ *   Copyright 2007-2011 by Apple Inc.
  *   Copyright 1993-2007 by Easy Software Products.
  *
  *   These coded instructions, statements, and computer programs are the
@@ -29,6 +29,7 @@
 #include "image.h"
 #include <math.h>
 #include <cups/language-private.h>
+#include <signal.h>
 
 
 /*
@@ -106,14 +107,21 @@ main(int  argc,                           /* I - Number of command-line arguments */
 
   setbuf(stderr, NULL);
 
+ /*
+  * Ignore broken pipe signals...
+  */
+
+  signal(SIGPIPE, SIG_IGN);
+
  /*
   * Check command-line...
   */
 
   if (argc < 6 || argc > 7)
   {
-    fprintf(stderr, _("Usage: %s job-id user title copies options [file]\n"),
-            argv[0]);
+    _cupsLangPrintf(stderr,
+                    _("Usage: %s job-id user title copies options file"),
+                    argv[0]);
     return (1);
   }
 
@@ -130,11 +138,11 @@ main(int  argc,                           /* I - Number of command-line arguments */
 
     if ((fd = cupsTempFd(filename, sizeof(filename))) < 0)
     {
-      perror("ERROR: Unable to copy image file");
+      _cupsLangPrintError("ERROR", _("Unable to copy print file"));
       return (1);
     }
 
-    fprintf(stderr, "DEBUG: imagetoraster - copying to temp print file \"%s\"\n",
+    fprintf(stderr, "DEBUG: imagetops - copying to temp print file \"%s\".\n",
             filename);
 
     while ((bytes = fread(buffer, 1, sizeof(buffer), stdin)) > 0)
@@ -175,11 +183,11 @@ main(int  argc,                           /* I - Number of command-line arguments */
     *   separate-documents-uncollated-copies allows for uncollated copies.
     */
 
-    Collate = strcasecmp(val, "separate-documents-uncollated-copies") != 0;
+    Collate = _cups_strcasecmp(val, "separate-documents-uncollated-copies") != 0;
   }
 
   if ((val = cupsGetOption("Collate", num_options, options)) != NULL &&
-      strcasecmp(val, "True") == 0)
+      _cups_strcasecmp(val, "True") == 0)
     Collate = 1;
 
   if ((val = cupsGetOption("gamma", num_options, options)) != NULL)
@@ -213,10 +221,10 @@ main(int  argc,                           /* I - Number of command-line arguments */
   if ((val = cupsGetOption("scaling", num_options, options)) != NULL)
     zoom = atoi(val) * 0.01;
   else if ((val = cupsGetOption("fitplot", num_options, options)) != NULL &&
-           !strcasecmp(val, "true"))
+           !_cups_strcasecmp(val, "true"))
     zoom = 1.0;
   else if ((val = cupsGetOption("fit-to-page", num_options, options)) != NULL &&
-           !strcasecmp(val, "true"))
+           !_cups_strcasecmp(val, "true"))
     zoom = 1.0;
 
   if ((val = cupsGetOption("ppi", num_options, options)) != NULL)
@@ -225,47 +233,47 @@ main(int  argc,                           /* I - Number of command-line arguments */
 
   if ((val = cupsGetOption("position", num_options, options)) != NULL)
   {
-    if (strcasecmp(val, "center") == 0)
+    if (_cups_strcasecmp(val, "center") == 0)
     {
       XPosition = 0;
       YPosition = 0;
     }
-    else if (strcasecmp(val, "top") == 0)
+    else if (_cups_strcasecmp(val, "top") == 0)
     {
       XPosition = 0;
       YPosition = 1;
     }
-    else if (strcasecmp(val, "left") == 0)
+    else if (_cups_strcasecmp(val, "left") == 0)
     {
       XPosition = -1;
       YPosition = 0;
     }
-    else if (strcasecmp(val, "right") == 0)
+    else if (_cups_strcasecmp(val, "right") == 0)
     {
       XPosition = 1;
       YPosition = 0;
     }
-    else if (strcasecmp(val, "top-left") == 0)
+    else if (_cups_strcasecmp(val, "top-left") == 0)
     {
       XPosition = -1;
       YPosition = 1;
     }
-    else if (strcasecmp(val, "top-right") == 0)
+    else if (_cups_strcasecmp(val, "top-right") == 0)
     {
       XPosition = 1;
       YPosition = 1;
     }
-    else if (strcasecmp(val, "bottom") == 0)
+    else if (_cups_strcasecmp(val, "bottom") == 0)
     {
       XPosition = 0;
       YPosition = -1;
     }
-    else if (strcasecmp(val, "bottom-left") == 0)
+    else if (_cups_strcasecmp(val, "bottom-left") == 0)
     {
       XPosition = -1;
       YPosition = -1;
     }
-    else if (strcasecmp(val, "bottom-right") == 0)
+    else if (_cups_strcasecmp(val, "bottom-right") == 0)
     {
       XPosition = 1;
       YPosition = -1;
@@ -286,13 +294,13 @@ main(int  argc,                           /* I - Number of command-line arguments */
   else
     val = cupsGetOption("mirror", num_options, options);
 
-  if (val && (!strcasecmp(val, "true") || !strcasecmp(val, "on") ||
-              !strcasecmp(val, "yes")))
+  if (val && (!_cups_strcasecmp(val, "true") || !_cups_strcasecmp(val, "on") ||
+              !_cups_strcasecmp(val, "yes")))
     Flip = 1;
 
   if ((val = cupsGetOption("emit-jcl", num_options, options)) != NULL &&
-      (!strcasecmp(val, "false") || !strcasecmp(val, "off") ||
-       !strcasecmp(val, "no") || !strcmp(val, "0")))
+      (!_cups_strcasecmp(val, "false") || !_cups_strcasecmp(val, "off") ||
+       !_cups_strcasecmp(val, "no") || !strcmp(val, "0")))
     emit_jcl = 0;
   else
     emit_jcl = 1;
@@ -310,7 +318,8 @@ main(int  argc,                             /* I - Number of command-line arguments */
 
   if (img == NULL)
   {
-    fputs(_("ERROR: Unable to open image file for printing\n"), stderr);
+    _cupsLangPrintFilter(stderr, "ERROR",
+                         _("The print file could not be opened."));
     ppdClose(ppd);
     return (1);
   }
@@ -503,7 +512,7 @@ main(int  argc,                             /* I - Number of command-line arguments */
   */
 
   if ((choice = ppdFindMarkedChoice(ppd, "PageSize")) != NULL &&
-      strcasecmp(choice->choice, "Custom") == 0)
+      _cups_strcasecmp(choice->choice, "Custom") == 0)
   {
     float      width,          /* New width in points */
                length;         /* New length in points */
@@ -805,7 +814,7 @@ main(int  argc,                             /* I - Number of command-line arguments */
         if (ppd && ppd->num_filters == 0)
           fprintf(stderr, "PAGE: %d %d\n", page, realcopies);
 
-       fprintf(stderr, _("INFO: Printing page %d...\n"), page);
+       _cupsLangPrintFilter(stderr, "INFO", _("Printing page %d."), page);
 
         printf("%%%%Page: %d %d\n", page, page);