]> git.ipfire.org Git - thirdparty/cups.git/commitdiff
Load cups into easysw/current.
authorjlovell <jlovell@a1ca3aef-8c08-0410-bb20-df032aa958be>
Mon, 27 Mar 2006 23:11:24 +0000 (23:11 +0000)
committerjlovell <jlovell@a1ca3aef-8c08-0410-bb20-df032aa958be>
Mon, 27 Mar 2006 23:11:24 +0000 (23:11 +0000)
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@103 a1ca3aef-8c08-0410-bb20-df032aa958be

53 files changed:
CHANGES.txt
INSTALL.txt
Makedefs.in
README.txt
cgi-bin/var.c
cups/Dependencies
cups/encode.c
cups/file.c
cups/file.h
cups/globals.c
cups/globals.h
cups/ipp.c
cups/libcups_s.exp
cups/ppd.c
cups/testhttp.c
data/smiley.ps [new file with mode: 0644]
doc/Makefile
doc/help/api-array.html
doc/help/api-cups.html
doc/help/api-filedir.html
doc/help/api-httpipp.html
doc/help/api-ppd.html
doc/help/ref-cupsd-conf.html
doc/help/spec-postscript.html [new file with mode: 0644]
doc/images/smiley.jpg [new file with mode: 0644]
filter/pstops.c
locale/Makefile
locale/cups.pot
locale/cups_es.po
locale/cups_ja.po
man/Makefile
man/cupsaddsmb.man.in
man/cupsd.conf.man.in
man/cupstestdsc.man [new file with mode: 0644]
man/filter.man
man/lp.man
man/lpadmin.man
man/lpstat.man
packaging/cups.list.in
packaging/cups.spec.in
ppd/zebracpl.ppd
scheduler/auth.c
scheduler/client.c
scheduler/cups-driverd.c
scheduler/dirsvc.c
scheduler/ipp.c
scheduler/printers.c
scheduler/printers.h
scripting/php/Makefile
systemv/Dependencies
systemv/Makefile
systemv/cupstestdsc.c [new file with mode: 0644]
systemv/lpstat.c

index 9d80240a837d67d44bc1cbb00c522519fc8c3f17..50e084f3c7cd65ad6e883a958170944b55a9f086 100644 (file)
@@ -1,9 +1,32 @@
-CHANGES.txt - 2006-03-20
+CHANGES.txt - 2006-03-24
 ------------------------
 
 CHANGES IN CUPS V1.2rc1
 
-       - Documentation updates (STR #1497)
+       - Documentation updates (STR #1497, STR #1498)
+       - The scheduler now redirects browsers to https: URLs
+         when encryption is required.
+       - The scheduler would crash when printing with a banner
+         (STR #1500)
+       - cups-driverd did not use the LanguageEncoding attribute
+         in PPD files to convert the NickName to UTF-8 (STR
+         #1503)
+       - The lpadmin command could not set the
+         printer-error-policy attribute (STR #1504)
+       - The web interface did not show the time and date in the
+         correct format for the locale (STR #1505)
+       - CUPS no longer accepts print jobs if a printer does not
+         support the file format (STR #1501)
+       - Cleaned up the PostScript filter (pstops) so that it
+         properly supports %%IncludeFeature and page scaling
+         (STR #1453)
+       - Fixed the cupsFileRewind() and cupsFileSeek() functions
+         to work properly with uncompressed files.
+       - Added cupsFileGetLine(), cupsFileStderr(),
+         cupsFileStdin(), and cupsFileStdout() functions to the
+         CUPS library.
+       - Added a new cupstestdsc program to test the DSC
+         conformance of PostScript files.
        - Added KDE/GNOME icons and a Manage Printers menu item.
        - Added --enable-image and --enable-pdftops configure
          options to control whether the image and PDF filters
index a030491fff4396d23f2f58c509e4f026480ffc09..329409b374ef25a32f1a1aa4ae22786d8dfbe7e7 100644 (file)
@@ -1,5 +1,5 @@
-INSTALL - CUPS v1.2b2 - 2006-03-09
-----------------------------------
+INSTALL - CUPS v1.2rc1 - 2006-03-24
+-----------------------------------
 
 This file describes how to compile and install CUPS from source
 code. For more information on CUPS see the file called
index 7875a5f1bade4cf32b83033d63293272e009b939..ceb6e4bf47e5c0b72931702258c390d10027934e 100644 (file)
@@ -1,5 +1,5 @@
 #
-# "$Id: Makedefs.in 5314 2006-03-20 19:06:50Z mike $"
+# "$Id: Makedefs.in 5341 2006-03-24 19:51:21Z mike $"
 #
 #   Common makefile definitions for the Common UNIX Printing System (CUPS).
 #
@@ -129,7 +129,8 @@ DSOFLAGS    =       @DSOFLAGS@
 DSOLIBS                =       @DSOLIBS@ $(COMMONLIBS)
 IMGLIBS                =       @IMGLIBS@ -lm
 IMGFILTERS     =       @IMGFILTERS@
-LDFLAGS                =       -L../cups -L../filter $(RC_CFLAGS) @LDFLAGS@ $(OPTIM)
+LDFLAGS                =       -L../cups -L../filter $(RC_CFLAGS) $(ARCHFLAGS) \
+                       @LDFLAGS@ $(OPTIM)
 LINKCUPS       =       @LINKCUPS@ $(SSLLIBS)
 LINKCUPSIMAGE  =       @LINKCUPSIMAGE@
 LIBS           =       $(LINKCUPS) $(COMMONLIBS)
@@ -259,5 +260,5 @@ DBUSDIR             =       @DBUSDIR@
 
 
 #
-# End of "$Id: Makedefs.in 5314 2006-03-20 19:06:50Z mike $"
+# End of "$Id: Makedefs.in 5341 2006-03-24 19:51:21Z mike $"
 #
index 36395f6cc5c63c9dfa758c823738638f5e5d37e0..fc0a146b4847dc1a8c4523c6caf87b423c30dcae 100644 (file)
@@ -1,5 +1,5 @@
-README - CUPS v1.2b2 - 2006-03-09
----------------------------------
+README - CUPS v1.2rc1 - 2006-03-24
+----------------------------------
 
 Looking for compile instructions?  Read the file "INSTALL.txt"
 instead...
@@ -26,8 +26,8 @@ INTRODUCTION
     of GPL Ghostscript for CUPS called ESP Ghostscript is
     available separately to support printing of PostScript files
     within the CUPS driver framework.  Sample drivers for Dymo,
-    EPSON, HP, and OKIDATA printers are included that use these
-    filters.
+    EPSON, HP, OKIDATA, and Zebra printers are included that use
+    these filters.
 
     Drivers for thousands of printers are provided with our ESP
     Print Pro software, available at:
@@ -108,9 +108,11 @@ SETTING UP PRINTER QUEUES FROM THE COMMAND-LINE
        EPSON 9-pin Series             epson9.ppd
        EPSON 24-pin Series            epson24.ppd
        HP DeskJet Series              deskjet.ppd
+       HP New DeskJet Series          deskjet2.ppd
        HP LaserJet Series             laserjet.ppd
        OKIDATA 9-Pin Series           okidata9.ppd
        OKIDATA 24-Pin Series          okidat24.ppd
+       Zebra CPCL Label Printer       zebracpl.ppd
        Zebra EPL1 Label Printer       zebraep1.ppd
        Zebra EPL2 Label Printer       zebraep2.ppd
        Zebra ZPL Label Printer        zebra.ppd
index 4a1a214a7fcf43eab45d7bc0cced76d0e70850c9..177e883b7e80023f42e832f2143937427a799ce6 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: var.c 4869 2005-12-06 02:43:40Z mike $"
+ * "$Id: var.c 5331 2006-03-23 21:21:19Z mike $"
  *
  *   CGI form variable and array functions.
  *
@@ -239,6 +239,12 @@ cgiInitialize(void)
 
   cupsSetPasswordCB(cgi_passwd);
 
+ /*
+  * Set the locale so that times, etc. are formatted properly...
+  */
+
+  setlocale(LC_ALL, "");
+
 #ifdef DEBUG
  /*
   * Disable output buffering to find bugs...
@@ -1020,5 +1026,5 @@ cgi_unlink_file(void)
 
 
 /*
- * End of "$Id: var.c 4869 2005-12-06 02:43:40Z mike $".
+ * End of "$Id: var.c 5331 2006-03-23 21:21:19Z mike $".
  */
index e6ff413afb1539691e1ca179e0274f1d008a7d0f..74abad0801a4d5196529f320d1c78f656147d852 100644 (file)
@@ -17,8 +17,9 @@ dir.o: dir.h string.h ../config.h debug.h
 emit.o: ppd.h array.h file.h string.h ../config.h
 encode.o: cups.h ipp.h http.h md5.h ppd.h array.h file.h language.h
 encode.o: ipp-private.h string.h ../config.h debug.h
-file.o: http-private.h ../config.h http.h md5.h ipp-private.h ipp.h string.h
-file.o: ../cups/debug.h file.h
+file.o: http-private.h ../config.h http.h md5.h ipp-private.h ipp.h globals.h
+file.o: string.h cups.h ppd.h array.h file.h language.h i18n.h transcode.h
+file.o: debug.h
 getputfile.o: cups.h ipp.h http.h md5.h ppd.h array.h file.h language.h
 getputfile.o: string.h ../config.h debug.h
 globals.o: http-private.h ../config.h http.h md5.h ipp-private.h ipp.h
@@ -98,8 +99,9 @@ dir.32.o: dir.c  dir.h string.h ../config.h debug.h
 emit.32.o: emit.c  ppd.h array.h file.h string.h ../config.h
 encode.32.o: encode.c  cups.h ipp.h http.h md5.h ppd.h array.h file.h language.h
 encode.32.o: encode.c  ipp-private.h string.h ../config.h debug.h
-file.32.o: file.c  http-private.h ../config.h http.h md5.h ipp-private.h ipp.h string.h
-file.32.o: file.c  ../cups/debug.h file.h
+file.32.o: file.c  http-private.h ../config.h http.h md5.h ipp-private.h ipp.h globals.h
+file.32.o: file.c  string.h cups.h ppd.h array.h file.h language.h i18n.h transcode.h
+file.32.o: file.c  debug.h
 getputfile.32.o: getputfile.c  cups.h ipp.h http.h md5.h ppd.h array.h file.h language.h
 getputfile.32.o: getputfile.c  string.h ../config.h debug.h
 globals.32.o: globals.c  http-private.h ../config.h http.h md5.h ipp-private.h ipp.h
@@ -179,8 +181,9 @@ dir.64.o: dir.c  dir.h string.h ../config.h debug.h
 emit.64.o: emit.c  ppd.h array.h file.h string.h ../config.h
 encode.64.o: encode.c  cups.h ipp.h http.h md5.h ppd.h array.h file.h language.h
 encode.64.o: encode.c  ipp-private.h string.h ../config.h debug.h
-file.64.o: file.c  http-private.h ../config.h http.h md5.h ipp-private.h ipp.h string.h
-file.64.o: file.c  ../cups/debug.h file.h
+file.64.o: file.c  http-private.h ../config.h http.h md5.h ipp-private.h ipp.h globals.h
+file.64.o: file.c  string.h cups.h ppd.h array.h file.h language.h i18n.h transcode.h
+file.64.o: file.c  debug.h
 getputfile.64.o: getputfile.c  cups.h ipp.h http.h md5.h ppd.h array.h file.h language.h
 getputfile.64.o: getputfile.c  string.h ../config.h debug.h
 globals.64.o: globals.c  http-private.h ../config.h http.h md5.h ipp-private.h ipp.h
index a57b0a8501d5e20880f82d2db80e1a18af57598d..8aab5f27d673e24136353e318383a35275b6ca19 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: encode.c 5230 2006-03-05 17:01:51Z mike $"
+ * "$Id: encode.c 5332 2006-03-23 21:29:42Z mike $"
  *
  *   Option encoding routines for the Common UNIX Printing System (CUPS).
  *
@@ -114,11 +114,13 @@ static const _ipp_option_t ipp_options[] =
   { "ppi-default",             IPP_TAG_INTEGER,        IPP_TAG_PRINTER },
   { "prettyprint",             IPP_TAG_BOOLEAN,        IPP_TAG_JOB },
   { "prettyprint-default",     IPP_TAG_BOOLEAN,        IPP_TAG_PRINTER },
+  { "printer-error-policy",    IPP_TAG_NAME,           IPP_TAG_PRINTER },
   { "printer-info",            IPP_TAG_TEXT,           IPP_TAG_PRINTER },
   { "printer-is-accepting-jobs",IPP_TAG_BOOLEAN,       IPP_TAG_PRINTER },
   { "printer-is-shared",       IPP_TAG_BOOLEAN,        IPP_TAG_PRINTER },
   { "printer-make-and-model",  IPP_TAG_TEXT,           IPP_TAG_PRINTER },
   { "printer-more-info",       IPP_TAG_URI,            IPP_TAG_PRINTER },
+  { "printer-op-policy",       IPP_TAG_NAME,           IPP_TAG_PRINTER },
   { "printer-resolution",      IPP_TAG_RESOLUTION,     IPP_TAG_JOB },
   { "printer-state",           IPP_TAG_ENUM,           IPP_TAG_PRINTER },
   { "printer-state-change-time",IPP_TAG_INTEGER,       IPP_TAG_PRINTER },
@@ -552,5 +554,5 @@ compare_ipp_options(_ipp_option_t *a,       /* I - First option */
 
 
 /*
- * End of "$Id: encode.c 5230 2006-03-05 17:01:51Z mike $".
+ * End of "$Id: encode.c 5332 2006-03-23 21:29:42Z mike $".
  */
index 20aae7247947725318354f2b8a5546a34dee936a..a5c1372f54f9220887d4ab9378767427907d9ceb 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: file.c 5186 2006-02-26 18:56:05Z mike $"
+ * "$Id: file.c 5324 2006-03-23 16:47:46Z mike $"
  *
  *   File functions for the Common UNIX Printing System (CUPS).
  *
  *   cupsFileFlush()       - Flush pending output.
  *   cupsFileGetChar()     - Get a single character from a file.
  *   cupsFileGetConf()     - Get a line from a configuration file...
+ *   cupsFileGetLine()     - Get a CR and/or LF-terminated line that may
+ *                           contain binary data.
  *   cupsFileGets()        - Get a CR and/or LF-terminated line.
  *   cupsFileLock()        - Temporarily lock access to a file.
- *   cupsFileNumber()      - Return the file descriptor associated with a CUPS file.
+ *   cupsFileNumber()      - Return the file descriptor associated with a CUPS
+ *                           file.
  *   cupsFileOpen()        - Open a CUPS file.
  *   cupsFileOpenFd()      - Open a CUPS file using a file descriptor.
  *   cupsFilePeekChar()    - Peek at the next character from a file.
@@ -47,6 +50,9 @@
  *   cupsFileRead()        - Read from a file.
  *   cupsFileRewind()      - Rewind a file.
  *   cupsFileSeek()        - Seek in a file.
+ *   cupsFileStderr()      - Return a CUPS file associated with stderr.
+ *   cupsFileStdin()       - Return a CUPS file associated with stdin.
+ *   cupsFileStdout()      - Return a CUPS file associated with stdout.
  *   cupsFileTell()        - Return the current file position.
  *   cupsFileUnlock()      - Unlock access to a file.
  *   cupsFileWrite()       - Write to a file.
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdarg.h>
-#include "http-private.h"
-#include "string.h"
 #include <errno.h>
-#include <cups/debug.h>
 #include <sys/types.h>
 #include <fcntl.h>
+#include "http-private.h"
+#include "globals.h"
+#include "debug.h"
 
-#include "file.h"
 #ifdef HAVE_LIBZ
 #  include <zlib.h>
 #endif /* HAVE_LIBZ */
@@ -99,6 +104,7 @@ struct _cups_file_s                  /**** CUPS file structure... ****/
   int          fd;                     /* File descriptor */
   char         mode,                   /* Mode ('r' or 'w') */
                compressed,             /* Compression used? */
+               is_stdio,               /* stdin/out/err? */
                eof,                    /* End of file? */
                buf[4096],              /* Buffer */
                *ptr,                   /* Pointer into buffer */
@@ -135,6 +141,7 @@ cupsFileClose(cups_file_t *fp)              /* I - CUPS file */
   int  fd;                             /* File descriptor */
   char mode;                           /* Open mode */
   int  status;                         /* Return status */
+  int  is_stdio;                       /* Is a stdio file? */
 
 
   DEBUG_printf(("cupsFileClose(fp=%p)\n", fp));
@@ -226,8 +233,9 @@ cupsFileClose(cups_file_t *fp)              /* I - CUPS file */
   * Save the file descriptor we used and free memory...
   */
 
-  fd   = fp->fd;
-  mode = fp->mode;
+  fd       = fp->fd;
+  mode     = fp->mode;
+  is_stdio = fp->is_stdio;
 
   free(fp);
 
@@ -240,7 +248,7 @@ cupsFileClose(cups_file_t *fp)              /* I - CUPS file */
     if (closesocket(fd) < 0)
       status = -1;
   }
-  else
+  else if (!is_stdio)
   {
     if (close(fd) < 0)
       status = -1;
@@ -257,7 +265,7 @@ cupsFileClose(cups_file_t *fp)              /* I - CUPS file */
 int                                    /* O - CUPS_FILE_NONE or CUPS_FILE_GZIP */
 cupsFileCompression(cups_file_t *fp)   /* I - CUPS file */
 {
-  return (fp->compressed);
+  return (fp ? fp->compressed : CUPS_FILE_NONE);
 }
 
 
@@ -268,7 +276,7 @@ cupsFileCompression(cups_file_t *fp)        /* I - CUPS file */
 int                                    /* O - 1 on EOF, 0 otherwise */
 cupsFileEOF(cups_file_t *fp)           /* I - CUPS file */
 {
-  return (fp->eof);
+  return (fp ? fp->eof : 1);
 }
 
 
@@ -560,6 +568,76 @@ cupsFileGetConf(cups_file_t *fp,   /* I  - CUPS file */
 }
 
 
+/*
+ * 'cupsFileGetLine()' - Get a CR and/or LF-terminated line that may
+ *                       contain binary data.
+ *
+ * This function differs from cupsFileGets() in that the trailing CR and LF
+ * are preserved, as is any binary data on the line. The buffer is nul-
+ * terminated, however you should use the returned length to determine
+ * the number of bytes on the line.
+ */
+
+size_t                                 /* O - Number of bytes on line or 0 on EOF */
+cupsFileGetLine(cups_file_t *fp,       /* I - File to read from */
+                char        *buf,      /* I - Buffer */
+                size_t      buflen)    /* I - Size of buffer */
+{
+  int          ch;                     /* Character from file */
+  char         *ptr,                   /* Current position in line buffer */
+               *end;                   /* End of line buffer */
+
+
+ /*
+  * Range check input...
+  */
+
+  if (!fp || (fp->mode != 'r' && fp->mode != 's') || !buf || buflen < 3)
+    return (0);
+
+ /*
+  * Now loop until we have a valid line...
+  */
+
+  for (ptr = buf, end = buf + buflen - 2; ptr < end ;)
+  {
+    if (fp->ptr >= fp->end)
+      if (cups_fill(fp) <= 0)
+        break;
+
+    *ptr++ = ch = *(fp->ptr)++;
+
+    if (ch == '\r')
+    {
+     /*
+      * Check for CR LF...
+      */
+
+      if (fp->ptr >= fp->end)
+       if (cups_fill(fp) <= 0)
+          break;
+
+      if (*(fp->ptr) == '\n')
+        *ptr++ = *(fp->ptr)++;
+
+      break;
+    }
+    else if (ch == '\n')
+    {
+     /*
+      * Line feed ends a line...
+      */
+
+      break;
+    }
+  }
+
+  *ptr = '\0';
+
+  return (ptr - buf);
+}
+
+
 /*
  * 'cupsFileGets()' - Get a CR and/or LF-terminated line.
  */
@@ -1139,7 +1217,51 @@ cupsFileRead(cups_file_t *fp,            /* I - CUPS file */
 off_t                                  /* O - New file position or -1 */
 cupsFileRewind(cups_file_t *fp)                /* I - CUPS file */
 {
-  return (cupsFileSeek(fp, 0L));
+ /*
+  * Range check input...
+  */
+
+  if (!fp || fp->mode != 'r')
+    return (-1);
+
+ /*
+  * Handle special cases...
+  */
+
+  if (fp->pos == 0)
+  {
+   /*
+    * No seeking necessary...
+    */
+
+    if (fp->ptr)
+    {
+      fp->ptr = fp->buf;
+      fp->eof = 0;
+    }
+
+    return (0);
+  }
+
+ /*
+  * Otherwise, seek in the file and cleanup any compression buffers...
+  */
+
+#ifdef HAVE_LIBZ
+  if (fp->compressed)
+  {
+    inflateEnd(&fp->stream);
+    fp->compressed = 0;
+  }
+#endif /* HAVE_LIBZ */
+
+  lseek(fp->fd, 0, SEEK_SET);
+
+  fp->pos = 0;
+  fp->ptr = NULL;
+  fp->end = NULL;
+
+  return (0);
 }
 
 
@@ -1165,6 +1287,13 @@ cupsFileSeek(cups_file_t *fp,            /* I - CUPS file */
   if (!fp || pos < 0 || fp->mode != 'r')
     return (-1);
 
+ /*
+  * Handle special cases...
+  */
+
+  if (pos == 0)
+    return (cupsFileRewind(fp));
+
   if (fp->pos == pos)
   {
    /*
@@ -1180,20 +1309,40 @@ cupsFileSeek(cups_file_t *fp,           /* I - CUPS file */
     return (pos);
   }
 
+#ifdef HAVE_LIBZ
+  if (!fp->compressed && !fp->ptr)
+  {
+   /*
+    * Preload a buffer to determine whether the file is compressed...
+    */
+
+    if (cups_fill(fp) < 0)
+      return (-1);
+  }
+#endif /* HAVE_LIBZ */
+
  /*
   * Figure out the number of bytes in the current buffer, and then
   * see if we are outside of it...
   */
 
-  bytes   = fp->end - fp->buf;
+  if (fp->ptr)
+    bytes = fp->end - fp->buf;
+  else
+    bytes = 0;
+
   fp->eof = 0;
 
+  DEBUG_printf(("    bytes=" CUPS_LLFMT "\n", CUPS_LLCAST bytes));
+
   if (pos < fp->pos)
   {
    /*
     * Need to seek backwards...
     */
 
+    DEBUG_puts("    SEEK BACKWARDS");
+
 #ifdef HAVE_LIBZ
     if (fp->compressed)
     {
@@ -1210,14 +1359,17 @@ cupsFileSeek(cups_file_t *fp,           /* I - CUPS file */
 
       if (bytes <= 0)
         return (-1);
+
+      fp->ptr = fp->buf + pos - fp->pos;
     }
     else
 #endif /* HAVE_LIBZ */
     {
       fp->pos = lseek(fp->fd, pos, SEEK_SET);
-      DEBUG_printf(("    lseek() returned %ld...\n", (long)fp->pos));
       fp->ptr = NULL;
       fp->end = NULL;
+
+      DEBUG_printf(("    lseek() returned %ld...\n", (long)fp->pos));
     }
   }
   else if (pos >= (fp->pos + bytes))
@@ -1226,23 +1378,30 @@ cupsFileSeek(cups_file_t *fp,           /* I - CUPS file */
     * Need to seek forwards...
     */
 
+    DEBUG_puts("    SEEK FORWARDS");
+
 #ifdef HAVE_LIBZ
-    if (fp->compressed || !fp->ptr)
+    if (fp->compressed)
     {
       while ((bytes = cups_fill(fp)) > 0)
+      {
         if (pos >= fp->pos && pos < (fp->pos + bytes))
          break;
+      }
 
       if (bytes <= 0)
         return (-1);
+
+      fp->ptr = fp->buf + pos - fp->pos;
     }
     else
 #endif /* HAVE_LIBZ */
     {
       fp->pos = lseek(fp->fd, pos, SEEK_SET);
-      DEBUG_printf(("    lseek() returned " CUPS_LLFMT "...\n", fp->pos));
       fp->ptr = NULL;
       fp->end = NULL;
+
+      DEBUG_printf(("    lseek() returned " CUPS_LLFMT "...\n", fp->pos));
     }
   }
   else
@@ -1252,14 +1411,111 @@ cupsFileSeek(cups_file_t *fp,          /* I - CUPS file */
     * range...
     */
 
+    DEBUG_puts("    SEEK INSIDE BUFFER");
+
     fp->ptr = fp->buf + pos - fp->pos;
-    DEBUG_puts(("    seek inside buffer..."));
   }
 
   return (fp->pos);
 }
 
 
+/*
+ * 'cupsFileStderr()' - Return a CUPS file associated with stderr.
+ */
+
+cups_file_t *
+cupsFileStderr(void)
+{
+  _cups_globals_t *cg = _cupsGlobals();        /* Pointer to library globals... */
+
+
+ /*
+  * Open file descriptor 2 as needed...
+  */
+
+  if (!cg->stdio_files[2])
+  {
+   /*
+    * Flush any pending output on the stdio file...
+    */
+
+    fflush(stderr);
+
+   /*
+    * Open file descriptor 2...
+    */
+
+    if ((cg->stdio_files[2] = cupsFileOpenFd(2, "w")) != NULL)
+      cg->stdio_files[2]->is_stdio = 1;
+  }
+
+  return (cg->stdio_files[2]);
+}
+
+
+/*
+ * 'cupsFileStdin()' - Return a CUPS file associated with stdin.
+ */
+
+cups_file_t *
+cupsFileStdin(void)
+{
+  _cups_globals_t *cg = _cupsGlobals();        /* Pointer to library globals... */
+
+
+ /*
+  * Open file descriptor 0 as needed...
+  */
+
+  if (!cg->stdio_files[0])
+  {
+   /*
+    * Open file descriptor 0...
+    */
+
+    if ((cg->stdio_files[0] = cupsFileOpenFd(0, "r")) != NULL)
+      cg->stdio_files[0]->is_stdio = 1;
+  }
+
+  return (cg->stdio_files[0]);
+}
+
+
+/*
+ * 'cupsFileStdout()' - Return a CUPS file associated with stdout.
+ */
+
+cups_file_t *
+cupsFileStdout(void)
+{
+  _cups_globals_t *cg = _cupsGlobals();        /* Pointer to library globals... */
+
+
+ /*
+  * Open file descriptor 1 as needed...
+  */
+
+  if (!cg->stdio_files[1])
+  {
+   /*
+    * Flush any pending output on the stdio file...
+    */
+
+    fflush(stdout);
+
+   /*
+    * Open file descriptor 1...
+    */
+
+    if ((cg->stdio_files[1] = cupsFileOpenFd(1, "w")) != NULL)
+      cg->stdio_files[1]->is_stdio = 1;
+  }
+
+  return (cg->stdio_files[1]);
+}
+
+
 /*
  * 'cupsFileTell()' - Return the current file position.
  */
@@ -1267,7 +1523,7 @@ cupsFileSeek(cups_file_t *fp,             /* I - CUPS file */
 off_t                                  /* O - File position */
 cupsFileTell(cups_file_t *fp)          /* I - CUPS file */
 {
-  return (fp->pos);
+  return (fp ? fp->pos : 0);
 }
 
 
@@ -1824,5 +2080,5 @@ cups_write(cups_file_t *fp,               /* I - CUPS file */
 
 
 /*
- * End of "$Id: file.c 5186 2006-02-26 18:56:05Z mike $".
+ * End of "$Id: file.c 5324 2006-03-23 16:47:46Z mike $".
  */
index 39cc07008a0a6c93e11c0c89d58c2b3d1b201fe6..24649147b79ae8e0cd99028ebddb92929b29748a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: file.h 5057 2006-02-02 20:38:29Z mike $"
+ * "$Id: file.h 5319 2006-03-21 15:28:29Z mike $"
  *
  *   Public file definitions for the Common UNIX Printing System (CUPS).
  *
@@ -81,6 +81,8 @@ extern int            cupsFileFlush(cups_file_t *fp);
 extern int             cupsFileGetChar(cups_file_t *fp);
 extern char            *cupsFileGetConf(cups_file_t *fp, char *buf, size_t buflen,
                                         char **value, int *linenum);
+extern size_t          cupsFileGetLine(cups_file_t *fp, char *buf,
+                                       size_t buflen);
 extern char            *cupsFileGets(cups_file_t *fp, char *buf, size_t buflen);
 extern int             cupsFileLock(cups_file_t *fp, int block);
 extern int             cupsFileNumber(cups_file_t *fp);
@@ -93,6 +95,9 @@ extern int            cupsFilePuts(cups_file_t *fp, const char *s);
 extern ssize_t         cupsFileRead(cups_file_t *fp, char *buf, size_t bytes);
 extern off_t           cupsFileRewind(cups_file_t *fp);
 extern off_t           cupsFileSeek(cups_file_t *fp, off_t pos);
+extern cups_file_t     *cupsFileStderr(void);
+extern cups_file_t     *cupsFileStdin(void);
+extern cups_file_t     *cupsFileStdout(void);
 extern off_t           cupsFileTell(cups_file_t *fp);
 extern int             cupsFileUnlock(cups_file_t *fp);
 extern ssize_t         cupsFileWrite(cups_file_t *fp, const char *buf, size_t bytes);
@@ -104,5 +109,5 @@ extern ssize_t              cupsFileWrite(cups_file_t *fp, const char *buf, size_t bytes);
 #endif /* !_CUPS_FILE_H_ */
 
 /*
- * End of "$Id: file.h 5057 2006-02-02 20:38:29Z mike $".
+ * End of "$Id: file.h 5319 2006-03-21 15:28:29Z mike $".
  */
index 2920da0f2991bbeaabf51177bf290bdd32dadb98..61f44ce1bb441d1a340be461e915dd70591ad752 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: globals.c 5294 2006-03-15 21:09:32Z mike $"
+ * "$Id: globals.c 5319 2006-03-21 15:28:29Z mike $"
  *
  *   Global variable access routines for the Common UNIX Printing System (CUPS).
  *
@@ -152,13 +152,16 @@ globals_init()
 static void
 globals_destructor(void *value)                /* I - Data to free */
 {
+  int                  i;              /* Looping var */
   _cups_globals_t      *cg;            /* Global data */
 
 
   cg = (_cups_globals_t *)value;
 
-  if (cg->http)
-    httpClose(cg->http);
+  httpClose(cg->http);
+
+  for (i = 0; i < 3; i ++)
+    cupsFileClose(cg->stdio_files[i]);
 
   _cupsStrFlush(cg);
   _cupsLangFlush(cg);
@@ -212,5 +215,5 @@ _cupsGlobals(void)
 
 
 /*
- * End of "$Id: globals.c 5294 2006-03-15 21:09:32Z mike $".
+ * End of "$Id: globals.c 5319 2006-03-21 15:28:29Z mike $".
  */
index 1fb98863db239d0342817ae534c56c391a15b167..b78440bb1dcec9fbc123b0c68d8a2926fd37f899 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: globals.h 5294 2006-03-15 21:09:32Z mike $"
+ * "$Id: globals.h 5319 2006-03-21 15:28:29Z mike $"
  *
  *   Global variable definitions for the Common UNIX Printing System (CUPS).
  *
@@ -72,6 +72,9 @@ typedef struct _cups_globals_s                /**** CUPS global state data ****/
                                        /* Number of server settings */
   cups_option_t                *cupsd_settings;/* Server settings */
 
+  /* file.c */
+  cups_file_t          *stdio_files[3];/* stdin, stdout, stderr */
+
   /* http.c */
   char                 http_date[256]; /* Date+time buffer */
 
@@ -159,5 +162,5 @@ extern void         _cupsStrFlush(_cups_globals_t *cg);
 #endif /* !_CUPS_GLOBALS_H_ */
 
 /*
- * End of "$Id: globals.h 5294 2006-03-15 21:09:32Z mike $".
+ * End of "$Id: globals.h 5319 2006-03-21 15:28:29Z mike $".
  */
index d34c35ccbe7519be3a04b62feb71cab5fdea9c26..cc109b7cc5f1b79e2b723b691d0ee94094947a99 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: ipp.c 5231 2006-03-05 17:22:27Z mike $"
+ * "$Id: ipp.c 5329 2006-03-23 20:37:36Z mike $"
  *
  *   Internet Printing Protocol support functions for the Common UNIX
  *   Printing System (CUPS).
@@ -2404,8 +2404,8 @@ ippWriteIO(void       *dst,               /* I - Destination */
  */
 
 ipp_attribute_t *                      /* O - New attribute */
-_ippAddAttr(ipp_t *ipp,                /* I - IPP message */
-              int   num_values)                /* I - Number of values */
+_ippAddAttr(ipp_t *ipp,                        /* I - IPP message */
+            int   num_values)          /* I - Number of values */
 {
   ipp_attribute_t      *attr;          /* New attribute */
 
@@ -2797,6 +2797,29 @@ ipp_write_file(int         *fd,          /* I - File descriptor */
 }
 
 
+#ifdef __linux
 /*
- * End of "$Id: ipp.c 5231 2006-03-05 17:22:27Z mike $".
+ * The following symbol definitions are provided only for KDE
+ * compatibility during the CUPS 1.2 testing period and will be
+ * removed in a future release of CUPS.  These are PRIVATE APIs
+ * from CUPS 1.1.x that the KDE developers chose to use...
+ */
+
+ipp_attribute_t *                      /* O - New attribute */
+_ipp_add(ipp_t *ipp,                   /* I - IPP message */
+         int   num_values)             /* I - Number of values */
+{
+  return (_ippAddAttr(ipp, num_values));
+}
+
+void
+_ipp_free(ipp_attribute_t *attr)       /* I - Attribute to free */
+{
+  _ippFreeAttr(attr);
+}
+#endif /* __linux */
+
+
+/*
+ * End of "$Id: ipp.c 5329 2006-03-23 20:37:36Z mike $".
  */
index 6eccb4d655f6a2c075c014ed42d23ef73147b1db..5d8f1dfd42d088fbbbe842f691fa3c21887cec4d 100644 (file)
@@ -28,3 +28,4 @@ _cups_strlcat
 _cups_strlcpy
 _ippAddAttr
 _ippFreeAttr
+_ppdGetEncoding
index d4cb32a736b2c54806a9deecea3fc74652adccfd..540b14a8d47e787e0ae5824d35be7901dc3555cb 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: ppd.c 5302 2006-03-18 00:49:17Z mike $"
+ * "$Id: ppd.c 5333 2006-03-24 00:52:21Z mike $"
  *
  *   PPD file routines for the Common UNIX Printing System (CUPS).
  *
@@ -36,6 +36,8 @@
  *
  *   ppdClose()             - Free all memory used by the PPD file.
  *   ppdErrorString()       - Returns the text assocated with a status.
+ *   _ppdGetEncoding()      - Get the CUPS encoding value for the given
+ *                            LanguageEncoding.
  *   ppdLastError()         - Return the status from the last ppdOpen*().
  *   ppdOpen()              - Read a PPD file into memory.
  *   ppdOpen2()             - Read a PPD file into memory.
@@ -54,8 +56,6 @@
  *   ppd_free_option()      - Free a single option.
  *   ppd_get_coption()      - Get a custom option record.
  *   ppd_get_cparam()       - Get a custom parameter record.
- *   ppd_get_encoding()     - Get the CUPS encoding value for the given
- *                            LanguageEncoding.
  *   ppd_get_group()        - Find or create the named group as needed.
  *   ppd_get_option()       - Find or create the named option as needed.
  *   ppd_read()             - Read a line from a PPD file, skipping comment
@@ -112,7 +112,6 @@ static ppd_coption_t        *ppd_get_coption(ppd_file_t *ppd, const char *name);
 static ppd_cparam_t    *ppd_get_cparam(ppd_coption_t *opt,
                                        const char *param,
                                        const char *text);
-static cups_encoding_t ppd_get_encoding(const char *name);
 static ppd_group_t     *ppd_get_group(ppd_file_t *ppd, const char *name,
                                       const char *text, _cups_globals_t *cg,
                                       cups_encoding_t encoding);
@@ -336,6 +335,31 @@ ppdErrorString(ppd_status_t status)        /* I - PPD status */
 }
 
 
+/*
+ * '_ppdGetEncoding()' - Get the CUPS encoding value for the given
+ *                       LanguageEncoding.
+ */
+
+cups_encoding_t                                /* O - CUPS encoding value */
+_ppdGetEncoding(const char *name)      /* I - LanguageEncoding string */
+{
+  if (!strcasecmp(name, "ISOLatin1"))
+    return (CUPS_ISO8859_1);
+  else if (!strcasecmp(name, "ISOLatin2"))
+    return (CUPS_ISO8859_2);
+  else if (!strcasecmp(name, "ISOLatin5"))
+    return (CUPS_ISO8859_5);
+  else if (!strcasecmp(name, "JIS83-RKSJ"))
+    return (CUPS_WINDOWS_932);
+  else if (!strcasecmp(name, "MacStandard"))
+    return (CUPS_MAC_ROMAN);
+  else if (!strcasecmp(name, "WindowsANSI"))
+    return (CUPS_WINDOWS_1252);
+  else
+    return (CUPS_UTF8);
+}
+
+
 /*
  * 'ppdLastError()' - Return the status from the last ppdOpen*().
  *
@@ -721,7 +745,7 @@ ppdOpen2(cups_file_t *fp)           /* I - File to read from */
       */
 
       ppd->lang_encoding = strdup("UTF-8");
-      encoding           = ppd_get_encoding(string);
+      encoding           = _ppdGetEncoding(string);
     }
     else if (!strcmp(keyword, "LanguageVersion"))
       ppd->lang_version = string;
@@ -2254,31 +2278,6 @@ ppd_get_cparam(ppd_coption_t *opt,       /* I - PPD file */
 }
 
 
-/*
- * 'ppd_get_encoding()' - Get the CUPS encoding value for the given
- *                        LanguageEncoding.
- */
-
-static cups_encoding_t                 /* O - CUPS encoding value */
-ppd_get_encoding(const char *name)     /* I - LanguageEncoding string */
-{
-  if (!strcasecmp(name, "ISOLatin1"))
-    return (CUPS_ISO8859_1);
-  else if (!strcasecmp(name, "ISOLatin2"))
-    return (CUPS_ISO8859_2);
-  else if (!strcasecmp(name, "ISOLatin5"))
-    return (CUPS_ISO8859_5);
-  else if (!strcasecmp(name, "JIS83-RKSJ"))
-    return (CUPS_WINDOWS_932);
-  else if (!strcasecmp(name, "MacStandard"))
-    return (CUPS_MAC_ROMAN);
-  else if (!strcasecmp(name, "WindowsANSI"))
-    return (CUPS_WINDOWS_1252);
-  else
-    return (CUPS_UTF8);
-}
-
-
 /*
  * 'ppd_get_group()' - Find or create the named group as needed.
  */
@@ -2939,5 +2938,5 @@ ppd_read(cups_file_t    *fp,              /* I - File to read from */
 
 
 /*
- * End of "$Id: ppd.c 5302 2006-03-18 00:49:17Z mike $".
+ * End of "$Id: ppd.c 5333 2006-03-24 00:52:21Z mike $".
  */
index e3053e13621854f2c589315296b3ec58973e9158..ade392dfe3caf8871b5bdbc9ba016b84cfe3202d 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: testhttp.c 5261 2006-03-09 20:47:49Z mike $"
+ * "$Id: testhttp.c 5344 2006-03-26 13:57:00Z mike $"
  *
  *   HTTP test program for the Common UNIX Printing System (CUPS).
  *
@@ -94,6 +94,8 @@ static uri_test_t     uri_tests[] =   /* URI test data */
                            "mailto", "", "", "user@domain.com", 0, 0 },
                          { HTTP_URI_OK, "socket://server/",
                            "socket", "", "server", "/", 9100, 0 },
+                         { HTTP_URI_OK, "socket://192.168.1.1:9101/",
+                           "socket", "", "192.168.1.1", "/", 9101, 9101 },
                          { HTTP_URI_OK, "ipp://username:password@[v1.fe80::200:1234:5678:9abc+eth0]:999/ipp",
                            "ipp", "username:password", "fe80::200:1234:5678:9abc%eth0", "/ipp", 999, 999 },
                          { HTTP_URI_OK, "http://server/admin?DEVICE_URI=usb://HP/Photosmart%25202600%2520series?serial=MY53OK70V10400",
@@ -515,5 +517,5 @@ main(int  argc,                             /* I - Number of command-line arguments */
 
 
 /*
- * End of "$Id: testhttp.c 5261 2006-03-09 20:47:49Z mike $".
+ * End of "$Id: testhttp.c 5344 2006-03-26 13:57:00Z mike $".
  */
diff --git a/data/smiley.ps b/data/smiley.ps
new file mode 100644 (file)
index 0000000..6ff31fd
--- /dev/null
@@ -0,0 +1,28 @@
+%!PS-Adobe-3.0
+%%BoundingBox: 36 36 576 756
+%%Pages: 1
+%%LanguageLevel: 2
+%%EndComments
+%%Page: (1) 1
+% Draw a black box around the page
+0 setgray
+1 setlinewidth
+36 36 540 720 rectstroke
+
+% Draw a two inch blue circle in the middle of the page
+0 0 1 setrgbcolor
+306 396 144 0 360 arc closepath fill
+
+% Draw two half inch yellow circles for eyes
+1 1 0 setrgbcolor
+252 432 36 0 360 arc closepath fill
+360 432 36 0 360 arc closepath fill
+
+% Draw the smile
+1 setlinecap
+18 setlinewidth
+306 396 99 200 340 arc stroke
+
+% Print it!
+showpage
+%%EOF
index fd2c02f90e0ee8b463634e9c3120e5ed4189e237..5562d2a8b8c1916477a356fd9dc98b9535518b31 100644 (file)
@@ -1,5 +1,5 @@
 #
-# "$Id: Makefile 5308 2006-03-18 13:18:18Z mike $"
+# "$Id: Makefile 5328 2006-03-23 20:23:19Z mike $"
 #
 #   Documentation makefile for the Common UNIX Printing System (CUPS).
 #
@@ -98,6 +98,7 @@ WEBIMAGES     =       \
                        images/printer-idle.gif \
                        images/printer-processing.gif \
                        images/printer-stopped.gif \
+                       images/smiley.jpg \
                        images/tab-left.gif \
                        images/tab-right.gif \
                        images/top-left.gif \
@@ -132,6 +133,7 @@ HELPFILES   =       \
                        help/man-cupsd.conf.html \
                        help/man-cupsd.html \
                        help/man-cupsenable.html \
+                       help/man-cupstestdsc.html \
                        help/man-cupstestppd.html \
                        help/man-filter.html \
                        help/man-lp.html \
@@ -164,6 +166,7 @@ HELPFILES   =       \
                        help/spec-command.html \
                        help/spec-design.html \
                        help/spec-ipp.html \
+                       help/spec-postscript.html \
                        help/spec-ppd.html \
                        help/spec-raster.html \
                        help/spec-stp.html \
index bc77e7d61595ba2f78bbc6d30ac02c9bb1995743..6fbd8a3a1d252d31dae3e4d51f43fcdfe5b8ce38 100644 (file)
@@ -94,6 +94,7 @@ library:</p>
        <li><a href='#cupsArrayRemove'><tt>cupsArrayRemove()</tt></a> </li>
        <li><a href='#cupsArrayRestore'><tt>cupsArrayRestore()</tt></a> </li>
        <li><a href='#cupsArraySave'><tt>cupsArraySave()</tt></a> </li>
+       <li><a href='#cupsArrayUserData'><tt>cupsArrayUserData()</tt></a> </li>
 </ul>
 <!-- NEW PAGE -->
 <h3 class='title'><a name='cupsArrayAdd'>cupsArrayAdd()</a></h3>
@@ -424,6 +425,24 @@ cupsArraySave(
 <h4>Returns</h4>
 <p>1 on success, 0 on failure</p>
 <!-- NEW PAGE -->
+<h3 class='title'><a name='cupsArrayUserData'>cupsArrayUserData()</a></h3>
+<h4>Description</h4>
+<p>Return the user data for an array.</p>
+<h4>Syntax</h4>
+<pre>
+void *
+cupsArrayUserData(
+    <a href='#cups_array_t'>cups_array_t</a> * a);
+</pre>
+<h4>Arguments</h4>
+<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
+<thead><tr><th>Name</th><th>Description</th></tr></thead>
+<tbody>
+<tr><td><tt>a</tt></td><td>Array</td></tr>
+</tbody></table></div>
+<h4>Returns</h4>
+<p>User data</p>
+<!-- NEW PAGE -->
 <h2 class='title'><a name='TYPES'>Types</a></h2>
 <ul>
        <li><a href='#cups_array_func_t'><tt>cups_array_func_t</tt></a> </li>
index e6f32fabe2389384c8549e45f8651b97da199030..42ffa2d1cb9eb2fd8ec4ab8c493bc5a7308e5d75 100644 (file)
@@ -97,6 +97,7 @@ CUPS 1.1 or higher.</p>
 <tr><td><tt>CUPS_PRINTER_CLASS</tt> </td><td>Printer class</td></tr>
 <tr><td><tt>CUPS_PRINTER_COLLATE</tt> </td><td>Can collage copies</td></tr>
 <tr><td><tt>CUPS_PRINTER_COLOR</tt> </td><td>Can do color printing</td></tr>
+<tr><td><tt>CUPS_PRINTER_COMMANDS</tt> <span class='info'>&nbsp;CUPS 1.2&nbsp;</span></td><td>Printer supports maintenance commands </td></tr>
 <tr><td><tt>CUPS_PRINTER_COPIES</tt> </td><td>Can do copies</td></tr>
 <tr><td><tt>CUPS_PRINTER_COVER</tt> </td><td>Can cover output</td></tr>
 <tr><td><tt>CUPS_PRINTER_DEFAULT</tt> </td><td>Default printer on network</td></tr>
@@ -157,6 +158,7 @@ CUPS 1.1 or higher.</p>
        <li><a href='#cupsPrintFiles2'><tt>cupsPrintFiles2()</tt></a> <span class='info'>&nbsp;CUPS 1.1.21&nbsp;</span></li>
        <li><a href='#cupsPutFd'><tt>cupsPutFd()</tt></a> <span class='info'>&nbsp;CUPS 1.1.20&nbsp;</span></li>
        <li><a href='#cupsPutFile'><tt>cupsPutFile()</tt></a> <span class='info'>&nbsp;CUPS 1.1.20&nbsp;</span></li>
+       <li><a href='#cupsRemoveOption'><tt>cupsRemoveOption()</tt></a> <span class='info'>&nbsp;CUPS 1.2&nbsp;</span></li>
        <li><a href='#cupsServer'><tt>cupsServer()</tt></a> </li>
        <li><a href='#cupsSetDests'><tt>cupsSetDests()</tt></a> </li>
        <li><a href='#cupsSetDests2'><tt>cupsSetDests2()</tt></a> <span class='info'>&nbsp;CUPS 1.1.21&nbsp;</span></li>
@@ -1018,6 +1020,30 @@ cupsPutFile(
 <h4>Returns</h4>
 <p>HTTP status</p>
 <!-- NEW PAGE -->
+<h3 class='title'><span class='info'>&nbsp;CUPS 1.2&nbsp;</span><a name='cupsRemoveOption'>cupsRemoveOption()</a></h3>
+<h4>Description</h4>
+<p>Remove an option from an option array.
+
+</p>
+<h4>Syntax</h4>
+<pre>
+int
+cupsRemoveOption(
+    const char * name,
+    int num_options,
+    <a href='#cups_option_t'>cups_option_t</a> ** options);
+</pre>
+<h4>Arguments</h4>
+<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
+<thead><tr><th>Name</th><th>Description</th></tr></thead>
+<tbody>
+<tr><td><tt>name</tt></td><td>Option name</td></tr>
+<tr><td><tt>num_options</tt></td><td>Current number of options</td></tr>
+<tr><td><tt>options</tt></td><td>Options</td></tr>
+</tbody></table></div>
+<h4>Returns</h4>
+<p>New number of options</p>
+<!-- NEW PAGE -->
 <h3 class='title'><a name='cupsServer'>cupsServer()</a></h3>
 <h4>Description</h4>
 <p>Return the hostname/address of the default server.
@@ -1039,7 +1065,7 @@ cupsServer(void);
 <p>Save the list of destinations for the default server.
 
 This function saves the destinations to /etc/cups/lpoptions when run
-as root and ~/.lpoptions when run as a normal user.</p>
+as root and ~/.cups/lpoptions when run as a normal user.</p>
 <h4>Syntax</h4>
 <pre>
 void
@@ -1062,7 +1088,7 @@ cupsSetDests(
 <p>Save the list of destinations for the specified server.
 
 This function saves the destinations to /etc/cups/lpoptions when run
-as root and ~/.lpoptions when run as a normal user.
+as root and ~/.cups/lpoptions when run as a normal user.
 
 </p>
 <h4>Syntax</h4>
index 107ef7906033fc3ef28d2099762f946075050e8b..fa862e96fb6aee75d3949cbe03c4b91e56ec1d68 100644 (file)
@@ -101,6 +101,7 @@ library:</p>
        <li><a href='#cupsFileFlush'><tt>cupsFileFlush()</tt></a> </li>
        <li><a href='#cupsFileGetChar'><tt>cupsFileGetChar()</tt></a> </li>
        <li><a href='#cupsFileGetConf'><tt>cupsFileGetConf()</tt></a> </li>
+       <li><a href='#cupsFileGetLine'><tt>cupsFileGetLine()</tt></a> </li>
        <li><a href='#cupsFileGets'><tt>cupsFileGets()</tt></a> </li>
        <li><a href='#cupsFileLock'><tt>cupsFileLock()</tt></a> </li>
        <li><a href='#cupsFileNumber'><tt>cupsFileNumber()</tt></a> </li>
@@ -113,6 +114,9 @@ library:</p>
        <li><a href='#cupsFileRead'><tt>cupsFileRead()</tt></a> </li>
        <li><a href='#cupsFileRewind'><tt>cupsFileRewind()</tt></a> </li>
        <li><a href='#cupsFileSeek'><tt>cupsFileSeek()</tt></a> </li>
+       <li><a href='#cupsFileStderr'><tt>cupsFileStderr()</tt></a> </li>
+       <li><a href='#cupsFileStdin'><tt>cupsFileStdin()</tt></a> </li>
+       <li><a href='#cupsFileStdout'><tt>cupsFileStdout()</tt></a> </li>
        <li><a href='#cupsFileTell'><tt>cupsFileTell()</tt></a> </li>
        <li><a href='#cupsFileUnlock'><tt>cupsFileUnlock()</tt></a> </li>
        <li><a href='#cupsFileWrite'><tt>cupsFileWrite()</tt></a> </li>
@@ -338,6 +342,34 @@ cupsFileGetConf(
 <h4>Returns</h4>
 <p>Line read or NULL on eof/error</p>
 <!-- NEW PAGE -->
+<h3 class='title'><a name='cupsFileGetLine'>cupsFileGetLine()</a></h3>
+<h4>Description</h4>
+<p>Get a CR and/or LF-terminated line that may
+contain binary data.
+
+This function differs from cupsFileGets() in that the trailing CR and LF
+are preserved, as is any binary data on the line. The buffer is nul-
+terminated, however you should use the returned length to determine
+the number of bytes on the line.</p>
+<h4>Syntax</h4>
+<pre>
+size_t
+cupsFileGetLine(
+    <a href='#cups_file_t'>cups_file_t</a> * fp,
+    char * buf,
+    size_t buflen);
+</pre>
+<h4>Arguments</h4>
+<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
+<thead><tr><th>Name</th><th>Description</th></tr></thead>
+<tbody>
+<tr><td><tt>fp</tt></td><td>File to read from</td></tr>
+<tr><td><tt>buf</tt></td><td>Buffer</td></tr>
+<tr><td><tt>buflen</tt></td><td>Size of buffer</td></tr>
+</tbody></table></div>
+<h4>Returns</h4>
+<p>Number of bytes on line or 0 on EOF</p>
+<!-- NEW PAGE -->
 <h3 class='title'><a name='cupsFileGets'>cupsFileGets()</a></h3>
 <h4>Description</h4>
 <p>Get a CR and/or LF-terminated line.</p>
@@ -578,6 +610,46 @@ cupsFileSeek(
 <h4>Returns</h4>
 <p>New file position or -1</p>
 <!-- NEW PAGE -->
+<h3 class='title'><a name='cupsFileStderr'>cupsFileStderr()</a></h3>
+<h4>Description</h4>
+<p>Just reposition the current pointer, since we have the right
+range...</p>
+<h4>Syntax</h4>
+<pre>
+<a href='#cups_file_t'>cups_file_t</a> *
+cupsFileStderr(void);
+</pre>
+<h4>Arguments</h4>
+<p>None.</p>
+<h4>Returns</h4>
+<p>Return a CUPS file associated with stderr.</p>
+<!-- NEW PAGE -->
+<h3 class='title'><a name='cupsFileStdin'>cupsFileStdin()</a></h3>
+<h4>Description</h4>
+<p>Open file descriptor 2...</p>
+<h4>Syntax</h4>
+<pre>
+<a href='#cups_file_t'>cups_file_t</a> *
+cupsFileStdin(void);
+</pre>
+<h4>Arguments</h4>
+<p>None.</p>
+<h4>Returns</h4>
+<p>Return a CUPS file associated with stdin.</p>
+<!-- NEW PAGE -->
+<h3 class='title'><a name='cupsFileStdout'>cupsFileStdout()</a></h3>
+<h4>Description</h4>
+<p>Open file descriptor 0...</p>
+<h4>Syntax</h4>
+<pre>
+<a href='#cups_file_t'>cups_file_t</a> *
+cupsFileStdout(void);
+</pre>
+<h4>Arguments</h4>
+<p>None.</p>
+<h4>Returns</h4>
+<p>Return a CUPS file associated with stdout.</p>
+<!-- NEW PAGE -->
 <h3 class='title'><a name='cupsFileTell'>cupsFileTell()</a></h3>
 <h4>Description</h4>
 <p>Return the current file position.</p>
index 575a80767edcde8a993148b1f560e78ab2f62985..7a08b335262a478e04f171bf8f175068e6ecf570 100644 (file)
@@ -191,6 +191,7 @@ require CUPS 1.1 or higher.</p>
 <tr><td><tt>HTTP_CONTINUE</tt> </td><td>Everything OK, keep going...</td></tr>
 <tr><td><tt>HTTP_CREATED</tt> </td><td>PUT command was successful</td></tr>
 <tr><td><tt>HTTP_ERROR</tt> </td><td>An error response from httpXxxx()</td></tr>
+<tr><td><tt>HTTP_EXPECTATION_FAILED</tt> </td><td>The expectation given in an Expect header field was not met</td></tr>
 <tr><td><tt>HTTP_FORBIDDEN</tt> </td><td>Forbidden to access this URI</td></tr>
 <tr><td><tt>HTTP_GATEWAY_TIMEOUT</tt> </td><td>Gateway connection timed out</td></tr>
 <tr><td><tt>HTTP_GONE</tt> </td><td>Server has gone away</td></tr>
@@ -211,6 +212,7 @@ require CUPS 1.1 or higher.</p>
 <tr><td><tt>HTTP_PAYMENT_REQUIRED</tt> </td><td>Payment required</td></tr>
 <tr><td><tt>HTTP_PRECONDITION</tt> </td><td>Precondition failed</td></tr>
 <tr><td><tt>HTTP_PROXY_AUTHENTICATION</tt> </td><td>Proxy Authentication is Required</td></tr>
+<tr><td><tt>HTTP_REQUESTED_RANGE</tt> </td><td>The requested range is not satisfiable</td></tr>
 <tr><td><tt>HTTP_REQUEST_TIMEOUT</tt> </td><td>Request timed out</td></tr>
 <tr><td><tt>HTTP_REQUEST_TOO_LARGE</tt> </td><td>Request entity too large</td></tr>
 <tr><td><tt>HTTP_RESET_CONTENT</tt> </td><td>Content was reset/recreated</td></tr>
@@ -368,7 +370,7 @@ require CUPS 1.1 or higher.</p>
        <li><a href='#httpFlushWrite'><tt>httpFlushWrite()</tt></a> <span class='info'>&nbsp;CUPS 1.2&nbsp;</span></li>
        <li><a href='#httpGet'><tt>httpGet()</tt></a> </li>
        <li><a href='#httpGetBlocking'><tt>httpGetBlocking()</tt></a> <span class='info'>&nbsp;CUPS 1.2&nbsp;</span></li>
-       <li><a href='#httpGetCookie'><tt>httpGetCookie()</tt></a> </li>
+       <li><a href='#httpGetCookie'><tt>httpGetCookie()</tt></a> <span class='info'>&nbsp;CUPS 1.1.19&nbsp;</span></li>
        <li><a href='#httpGetDateString'><tt>httpGetDateString()</tt></a> <span class='info'>&nbsp;DEPRECATED&nbsp;</span></li>
        <li><a href='#httpGetDateString2'><tt>httpGetDateString2()</tt></a> <span class='info'>&nbsp;CUPS 1.2&nbsp;</span></li>
        <li><a href='#httpGetDateTime'><tt>httpGetDateTime()</tt></a> </li>
@@ -397,6 +399,7 @@ require CUPS 1.1 or higher.</p>
        <li><a href='#httpSeparate2'><tt>httpSeparate2()</tt></a> <span class='info'>&nbsp;CUPS 1.1.21&nbsp;</span></li>
        <li><a href='#httpSeparateURI'><tt>httpSeparateURI()</tt></a> <span class='info'>&nbsp;CUPS 1.2&nbsp;</span></li>
        <li><a href='#httpSetCookie'><tt>httpSetCookie()</tt></a> <span class='info'>&nbsp;CUPS 1.1.19&nbsp;</span></li>
+       <li><a href='#httpSetExpect'><tt>httpSetExpect()</tt></a> <span class='info'>&nbsp;CUPS 1.2&nbsp;</span></li>
        <li><a href='#httpSetField'><tt>httpSetField()</tt></a> </li>
        <li><a href='#httpSetLength'><tt>httpSetLength()</tt></a> <span class='info'>&nbsp;CUPS 1.2&nbsp;</span></li>
        <li><a href='#httpStatus'><tt>httpStatus()</tt></a> </li>
@@ -1165,9 +1168,11 @@ httpGetBlocking(
 <h4>Returns</h4>
 <p>1 if blocking, 0 if non-blocking</p>
 <!-- NEW PAGE -->
-<h3 class='title'><a name='httpGetCookie'>httpGetCookie()</a></h3>
+<h3 class='title'><span class='info'>&nbsp;CUPS 1.1.19&nbsp;</span><a name='httpGetCookie'>httpGetCookie()</a></h3>
 <h4>Description</h4>
-<p>Get any cookie data from the response.</p>
+<p>Get any cookie data from the response.
+
+</p>
 <h4>Syntax</h4>
 <pre>
 const char *
@@ -1308,16 +1313,19 @@ httpGetHostByName(
 <!-- NEW PAGE -->
 <h3 class='title'><span class='info'>&nbsp;CUPS 1.2&nbsp;</span><a name='httpGetHostname'>httpGetHostname()</a></h3>
 <h4>Description</h4>
-<p>Get the FQDN for the local system.
+<p>Get the FQDN for the connection or local system.
 
-This function uses both gethostname() and gethostbyname() to
-get the local hostname with domain.
+When &quot;http&quot; points to a connected socket, return the hostname or
+address that was used in the call to httpConnect() or httpConnectEncrypt().
+Otherwise, return the FQDN for the local system using both gethostname()
+and gethostbyname() to get the local hostname with domain.
 
 </p>
 <h4>Syntax</h4>
 <pre>
 const char *
 httpGetHostname(
+    <a href='#http_t'>http_t</a> * http,
     char * s,
     int slen);
 </pre>
@@ -1325,11 +1333,12 @@ httpGetHostname(
 <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
 <thead><tr><th>Name</th><th>Description</th></tr></thead>
 <tbody>
+<tr><td><tt>http</tt></td><td>HTTP connection or NULL</td></tr>
 <tr><td><tt>s</tt></td><td>String buffer for name</td></tr>
 <tr><td><tt>slen</tt></td><td>Size of buffer</td></tr>
 </tbody></table></div>
 <h4>Returns</h4>
-<p>FQDN for this system</p>
+<p>FQDN for connection or system</p>
 <!-- NEW PAGE -->
 <h3 class='title'><span class='info'>&nbsp;DEPRECATED&nbsp;</span><a name='httpGetLength'>httpGetLength()</a></h3>
 <h4>Description</h4>
@@ -1846,6 +1855,30 @@ httpSetCookie(
 <h4>Returns</h4>
 <p>Nothing.</p>
 <!-- NEW PAGE -->
+<h3 class='title'><span class='info'>&nbsp;CUPS 1.2&nbsp;</span><a name='httpSetExpect'>httpSetExpect()</a></h3>
+<h4>Description</h4>
+<p>Set the Expect: header in a request.
+
+Currently only HTTP_CONTINUE is supported for the &quot;expect&quot; argument.
+
+</p>
+<h4>Syntax</h4>
+<pre>
+void
+httpSetExpect(
+    <a href='#http_t'>http_t</a> * http,
+    http_status_t expect);
+</pre>
+<h4>Arguments</h4>
+<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
+<thead><tr><th>Name</th><th>Description</th></tr></thead>
+<tbody>
+<tr><td><tt>http</tt></td><td>HTTP connection</td></tr>
+<tr><td><tt>expect</tt></td><td>HTTP status to expect (HTTP_CONTINUE)</td></tr>
+</tbody></table></div>
+<h4>Returns</h4>
+<p>Nothing.</p>
+<!-- NEW PAGE -->
 <h3 class='title'><a name='httpSetField'>httpSetField()</a></h3>
 <h4>Description</h4>
 <p>Set the value of an HTTP header.</p>
index 3e99de7c31f98b259601d507f865ed01820f4d18..139169bd75017afeacd33fed1232b509e71cc693 100644 (file)
@@ -185,6 +185,7 @@ library:</p>
        <li><a href='#ppdEmitFd'><tt>ppdEmitFd()</tt></a> </li>
        <li><a href='#ppdEmitJCL'><tt>ppdEmitJCL()</tt></a> </li>
        <li><a href='#ppdEmitJCLEnd'><tt>ppdEmitJCLEnd()</tt></a> <span class='info'>&nbsp;CUPS 1.2&nbsp;</span></li>
+       <li><a href='#ppdEmitString'><tt>ppdEmitString()</tt></a> <span class='info'>&nbsp;CUPS 1.2&nbsp;</span></li>
        <li><a href='#ppdErrorString'><tt>ppdErrorString()</tt></a> <span class='info'>&nbsp;CUPS 1.1.19&nbsp;</span></li>
        <li><a href='#ppdFindAttr'><tt>ppdFindAttr()</tt></a> <span class='info'>&nbsp;CUPS 1.1.19&nbsp;</span></li>
        <li><a href='#ppdFindChoice'><tt>ppdFindChoice()</tt></a> </li>
@@ -342,8 +343,8 @@ ppdEmitAfterOrder(
 <tr><td><tt>ppd</tt></td><td>PPD file record</td></tr>
 <tr><td><tt>fp</tt></td><td>File to write to</td></tr>
 <tr><td><tt>section</tt></td><td>Section to write</td></tr>
-<tr><td><tt>limit</tt></td><td>Non-zero to use min_order, 0 to include all</td></tr>
-<tr><td><tt>min_order</tt></td><td>Lowest order dependency to include</td></tr>
+<tr><td><tt>limit</tt></td><td>Non-zero to use min_order</td></tr>
+<tr><td><tt>min_order</tt></td><td>Lowest OrderDependency</td></tr>
 </tbody></table></div>
 <h4>Returns</h4>
 <p>0 on success, -1 on failure</p>
@@ -418,6 +419,38 @@ ppdEmitJCLEnd(
 <h4>Returns</h4>
 <p>0 on success, -1 on failure</p>
 <!-- NEW PAGE -->
+<h3 class='title'><span class='info'>&nbsp;CUPS 1.2&nbsp;</span><a name='ppdEmitString'>ppdEmitString()</a></h3>
+<h4>Description</h4>
+<p>Get a string containing the code for marked options.
+
+When &quot;min_order&quot; is greater than zero, this function only includes options
+whose OrderDependency value is greater than or equal to &quot;min_order&quot;.
+Otherwise, all options in the specified section are included in the
+returned string.
+
+The return string is allocated on the heap and should be freed using
+free() when you are done with it.
+
+</p>
+<h4>Syntax</h4>
+<pre>
+char *
+ppdEmitString(
+    <a href='#ppd_file_t'>ppd_file_t</a> * ppd,
+    <a href='#ppd_section_t'>ppd_section_t</a> section,
+    float min_order);
+</pre>
+<h4>Arguments</h4>
+<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
+<thead><tr><th>Name</th><th>Description</th></tr></thead>
+<tbody>
+<tr><td><tt>ppd</tt></td><td>PPD file record</td></tr>
+<tr><td><tt>section</tt></td><td>Section to write</td></tr>
+<tr><td><tt>min_order</tt></td><td>Lowest OrderDependency</td></tr>
+</tbody></table></div>
+<h4>Returns</h4>
+<p>String containing option code</p>
+<!-- NEW PAGE -->
 <h3 class='title'><span class='info'>&nbsp;CUPS 1.1.19&nbsp;</span><a name='ppdErrorString'>ppdErrorString()</a></h3>
 <h4>Description</h4>
 <p>Returns the text assocated with a status.
@@ -923,7 +956,8 @@ struct ppd_coption_s
 <pre>
 struct ppd_cparam_s
 {
-  <a href='#ppd_cpvalue_t'>ppd_cpvalue_t</a> minimum, maximum, current;
+  <a href='#ppd_cpvalue_t'>ppd_cpvalue_t</a> current;
+  <a href='#ppd_cplimit_t'>ppd_cplimit_t</a> minimum, maximum;
   char name[PPD_MAX_NAME];
   int order;
   char text[PPD_MAX_TEXT];
@@ -935,6 +969,7 @@ struct ppd_cparam_s
 <thead><tr><th>Name</th><th>Description</th></tr></thead>
 <tbody>
 <tr><td><tt>current</tt> </td><td>Current value</td></tr>
+<tr><td><tt>maximum</tt> </td><td>Maximum value</td></tr>
 <tr><td><tt>name[PPD_MAX_NAME]</tt> </td><td>Parameter name</td></tr>
 <tr><td><tt>order</tt> </td><td>Order (0 to N)</td></tr>
 <tr><td><tt>text[PPD_MAX_TEXT]</tt> </td><td>Human-readable text</td></tr>
@@ -1196,6 +1231,7 @@ struct ppd_size_s
        <li><a href='#ppd_const_t'><tt>ppd_const_t</tt></a> </li>
        <li><a href='#ppd_coption_t'><tt>ppd_coption_t</tt></a> <span class='info'>&nbsp;CUPS 1.2&nbsp;</span></li>
        <li><a href='#ppd_cparam_t'><tt>ppd_cparam_t</tt></a> <span class='info'>&nbsp;CUPS 1.2&nbsp;</span></li>
+       <li><a href='#ppd_cplimit_t'><tt>ppd_cplimit_t</tt></a> <span class='info'>&nbsp;CUPS 1.2&nbsp;</span></li>
        <li><a href='#ppd_cptype_t'><tt>ppd_cptype_t</tt></a> <span class='info'>&nbsp;CUPS 1.2&nbsp;</span></li>
        <li><a href='#ppd_cpvalue_t'><tt>ppd_cpvalue_t</tt></a> <span class='info'>&nbsp;CUPS 1.2&nbsp;</span></li>
        <li><a href='#ppd_emul_t'><tt>ppd_emul_t</tt></a> </li>
@@ -1248,6 +1284,14 @@ typedef struct <a href='#ppd_coption_s'>ppd_coption_s</a> ppd_coption_t;
 typedef struct <a href='#ppd_cparam_s'>ppd_cparam_s</a> ppd_cparam_t;
 </pre>
 <!-- NEW PAGE -->
+<h3 class='title'><span class='info'>&nbsp;CUPS 1.2&nbsp;</span><a name='ppd_cplimit_t'>ppd_cplimit_t</a></h3>
+<h4>Description</h4>
+<p>Custom Parameter Limit </p>
+<h4>Definition</h4>
+<pre>
+typedef union <a href='#ppd_cplimit_u'>ppd_cplimit_u</a> ppd_cplimit_t;
+</pre>
+<!-- NEW PAGE -->
 <h3 class='title'><span class='info'>&nbsp;CUPS 1.2&nbsp;</span><a name='ppd_cptype_t'>ppd_cptype_t</a></h3>
 <h4>Description</h4>
 <p>Custom Parameter Type </p>
@@ -1330,9 +1374,41 @@ typedef enum <a href='#ppd_ui_e'>ppd_ui_e</a> ppd_ui_t;
 <!-- NEW PAGE -->
 <h2 class='title'><a name='UNIONS'>Unions</a></h2>
 <ul>
+       <li><a href='#ppd_cplimit_u'><tt>ppd_cplimit_u</tt></a> <span class='info'>&nbsp;CUPS 1.2&nbsp;</span></li>
        <li><a href='#ppd_cpvalue_u'><tt>ppd_cpvalue_u</tt></a> <span class='info'>&nbsp;CUPS 1.2&nbsp;</span></li>
 </ul>
 <!-- NEW PAGE -->
+<h3 class='title'><span class='info'>&nbsp;CUPS 1.2&nbsp;</span><a name='ppd_cplimit_u'>ppd_cplimit_u</a></h3>
+<h4>Description</h4>
+<p>Custom Parameter Limit </p>
+<h4>Definition</h4>
+<pre>
+union ppd_cplimit_u
+{
+  float custom_curve;
+  int custom_int;
+  float custom_invcurve;
+  int custom_passcode;
+  int custom_password;
+  float custom_points;
+  float custom_real;
+  int custom_string;
+};
+</pre>
+<h4>Members</h4>
+<div class='table'><table align='center' border='1' width='80%'>
+<thead><tr><th>Name</th><th>Description</th></tr></thead>
+<tbody>
+<tr><td><tt>custom_curve</tt> </td><td>Gamma value</td></tr>
+<tr><td><tt>custom_int</tt> </td><td>Integer value</td></tr>
+<tr><td><tt>custom_invcurve</tt> </td><td>Gamma value</td></tr>
+<tr><td><tt>custom_passcode</tt> </td><td>Passcode length</td></tr>
+<tr><td><tt>custom_password</tt> </td><td>Password length</td></tr>
+<tr><td><tt>custom_points</tt> </td><td>Measurement value</td></tr>
+<tr><td><tt>custom_real</tt> </td><td>Real value</td></tr>
+<tr><td><tt>custom_string</tt> </td><td>String length</td></tr>
+</tbody></table></div>
+<!-- NEW PAGE -->
 <h3 class='title'><span class='info'>&nbsp;CUPS 1.2&nbsp;</span><a name='ppd_cpvalue_u'>ppd_cpvalue_u</a></h3>
 <h4>Description</h4>
 <p>Custom Parameter Value </p>
index c3d78660181e00cfc997cfba48523716aa81b825..33dd550122bdfab0cfe5eb39b72b8c66651b3d41 100644 (file)
@@ -1883,7 +1883,7 @@ are still pending or active then the new job will be
 rejected.</P>
 
 <P>Setting the maximum size to 0 disables this functionality. The
-default setting is 0.</P>
+default setting is 500.</P>
 
 
 <H2 CLASS="title"><SPAN CLASS="info">CUPS 1.1.7</SPAN><A NAME="MaxJobsPerPrinter">MaxJobsPerPrinter</A></H2>
diff --git a/doc/help/spec-postscript.html b/doc/help/spec-postscript.html
new file mode 100644 (file)
index 0000000..7e9f9a8
--- /dev/null
@@ -0,0 +1,120 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+<html>
+<!-- SECTION: Specifications -->
+<head>
+       <title>Generating PostScript for CUPS</title>
+       <meta name='keywords' content='Programming, PostScript, Document Structuring Conventions'>
+       <link rel='stylesheet' type='text/css' href='../cups.css'>
+</head>
+<body>
+<!--
+  "$Id$"
+
+  CUPS PostScript file specification for the Common UNIX Printing System (CUPS).
+
+  Copyright 2006 by Easy Software Products.
+
+  These coded instructions, statements, and computer programs are the
+  property of Easy Software Products and are protected by Federal
+  copyright law.  Distribution and use rights are outlined in the file
+  "LICENSE.txt" which should have been included with this file.  If this
+  file is missing or damaged please contact Easy Software Products
+  at:
+
+      Attn: CUPS Licensing Information
+      Easy Software Products
+      44141 Airport View Drive, Suite 204
+      Hollywood, Maryland 20636 USA
+
+      Voice: (301) 373-9600
+      EMail: cups-info@cups.org
+        WWW: http://www.cups.org
+-->
+
+<h2 class='title'><a name='INTRODUCTION'>Introduction</a></h2>
+
+<p>This document describes how to generate PostScript output for
+CUPS and is largely based on the <a
+href="http://partners.adobe.com/public/developer/en/ps/5001.DSC_Spec.pdf">
+Adobe TechNote #5001: PostScript Language Document Structuring
+Conventions Specification Version 3.0</a>. While CUPS can
+generally print any PostScript file, following the rules in the
+Adobe TechNote and this document will ensure that your PostScript
+output will work reliably.</p>
+
+<blockquote><b>Note:</b> While PostScript is currently the
+defacto-standard print job file format/language for UNIX-based
+applications, it is slowly being phased out in favor of Adobe's
+Portable Document Format ("PDF") which offers many advantages
+over PostScript. MacOS X uses PDF as the primary print job file
+format, and we expect Linux to soon follow. Both PostScript and
+PDF are complex formats, and we highly recommend using high-level
+toolkits whenever possible.</blockquote>
+
+<h3>Anatomy of a PostScript File</h3>
+
+<p>PostScript files are ASCII text files starting with a header
+line (<tt>%!PS-Adobe-3.0</tt>) followed by a combination of
+comment lines starting with two percent signs (<tt>%%</tt>) and
+PostScript code lines. The lines themselves should not exceed 255
+characters to conform to the DSC. The following short PostScript
+file produces a box with a smiley face in it:</p>
+
+<pre class="command">
+%!PS-Adobe-3.0
+%%BoundingBox: 36 36 576 756
+%%Pages: 1
+%%LanguageLevel: 2
+%%EndComments
+%%Page: (1) 1
+% Draw a black box around the page
+0 setgray
+1 setlinewidth
+36 36 540 720 rectstroke
+
+% Draw a two inch blue circle in the middle of the page
+0 0 1 setrgbcolor
+306 396 144 0 360 arc closepath fill
+
+% Draw two half inch yellow circles for eyes
+1 1 0 setrgbcolor
+252 432 36 0 360 arc closepath fill
+360 432 36 0 360 arc closepath fill
+
+% Draw the smile
+1 setlinecap
+18 setlinewidth
+306 396 99 200 340 arc stroke
+
+% Print it!
+showpage
+%%EOF
+</pre>
+
+<div class="figure"><table summary="Sample PostScript File Output">
+<caption>Figure 1: <a name="FIGURE_1">Sample PostScript File Output</a></caption>
+<tr><td align="center"><img src="../images/smiley.jpg"
+width="445" height="570" alt="Sample PostScript File Output"></td></tr>
+</table></div>
+
+
+<h2>Embedding Printer Options</h2>
+
+
+<h2>Embedding Fonts and Text</h2>
+
+
+<h2>Embedding Images</h2>
+
+
+<blockquote><b>Note:</b> While some printers support arbitrary
+binary data in PostScript files, we do not recommend this
+practice because it does not work with all printers or
+interfaces. In most cases, the Base-85 encoding and compression
+filters can be used to embed images with very little, if any,
+increase in data size.</blockquote>
+
+
+
+</body>
+</html>
diff --git a/doc/images/smiley.jpg b/doc/images/smiley.jpg
new file mode 100644 (file)
index 0000000..0076fae
Binary files /dev/null and b/doc/images/smiley.jpg differ
index 3f230052f2b042bcdbc82e8a2cd2dd5469111527..72612191f2c7935d1a032a7ce033e49b03eeadb6 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: pstops.c 5205 2006-02-28 21:05:24Z mike $"
+ * "$Id: pstops.c 5326 2006-03-23 19:33:35Z mike $"
  *
  *   PostScript filter for the Common UNIX Printing System (CUPS).
  *
  *
  * Contents:
  *
- *   main()            - Main entry...
- *   add_page()        - Add a page to the Pages array...
- *   check_range()     - Check to see if the current page is selected for
- *   copy_bytes()      - Copy bytes from the input file to stdout...
- *   do_prolog()       - Send the necessary document prolog commands...
- *   do_setup()        - Send the necessary document setup commands...
- *   end_nup()         - End processing for N-up printing...
- *   include_feature() - Include a printer option/feature command.
- *   psgets()          - Get a line from a file.
- *   start_nup()       - Start processing for N-up printing...
+ *   main()               - Main entry...
+ *   add_page()           - Add a page to the pages array...
+ *   check_range()        - Check to see if the current page is selected for
+ *   copy_bytes()         - Copy bytes from the input file to stdout...
+ *   copy_comments()      - Copy all of the comments section...
+ *   copy_dsc()           - Copy a DSC-conforming document...
+ *   copy_non_dsc()       - Copy a document that does not conform to the DSC...
+ *   copy_page()          - Copy a page description...
+ *   copy_prolog()        - Copy the document prolog section...
+ *   copy_setup()         - Copy the document setup section...
+ *   copy_trailer()       - Copy the document trailer...
+ *   do_prolog()          - Send the necessary document prolog commands...
+ *   do_setup()           - Send the necessary document setup commands...
+ *   doc_printf()         - Send a formatted string to stdout and/or the temp
+ *                          file.
+ *   doc_puts()           - Send a nul-terminated string to stdout and/or the
+ *                          temp file.
+ *   doc_write()          - Send data to stdout and/or the temp file.
+ *   end_nup()            - End processing for N-up printing...
+ *   include_feature()    - Include a printer option/feature command.
+ *   parse_text()         - Parse a text value in a comment...
+ *   set_pstops_options() - Set pstops options...
+ *   skip_page()          - Skip past a page that won't be printed...
+ *   start_nup()          - Start processing for N-up printing...
  */
 
 /*
  * Constants...
  */
 
-#define BORDER_NONE    0               /* No border or hairline border */
-#define BORDER_THICK   1               /* Think border */
-#define BORDER_SINGLE  2               /* Single-line hairline border */
-#define BORDER_SINGLE2 3               /* Single-line thick border */
-#define BORDER_DOUBLE  4               /* Double-line hairline border */
-#define BORDER_DOUBLE2 5               /* Double-line thick border */
+#define PSTOPS_BORDERNONE      0       /* No border or hairline border */
+#define PSTOPS_BORDERTHICK     1       /* Think border */
+#define PSTOPS_BORDERSINGLE    2       /* Single-line hairline border */
+#define PSTOPS_BORDERSINGLE2   3       /* Single-line thick border */
+#define PSTOPS_BORDERDOUBLE    4       /* Double-line hairline border */
+#define PSTOPS_BORDERDOUBLE2   5       /* Double-line thick border */
 
-#define LAYOUT_LRBT    0               /* Left to right, bottom to top */
-#define LAYOUT_LRTB    1               /* Left to right, top to bottom */
-#define LAYOUT_RLBT    2               /* Right to left, bottom to top */
-#define LAYOUT_RLTB    3               /* Right to left, top to bottom */
-#define LAYOUT_BTLR    4               /* Bottom to top, left to right */
-#define LAYOUT_TBLR    5               /* Top to bottom, left to right */
-#define LAYOUT_BTRL    6               /* Bottom to top, right to left */
-#define LAYOUT_TBRL    7               /* Top to bottom, right to left */
+#define PSTOPS_LAYOUT_LRBT     0       /* Left to right, bottom to top */
+#define PSTOPS_LAYOUT_LRTB     1       /* Left to right, top to bottom */
+#define PSTOPS_LAYOUT_RLBT     2       /* Right to left, bottom to top */
+#define PSTOPS_LAYOUT_RLTB     3       /* Right to left, top to bottom */
+#define PSTOPS_LAYOUT_BTLR     4       /* Bottom to top, left to right */
+#define PSTOPS_LAYOUT_TBLR     5       /* Top to bottom, left to right */
+#define PSTOPS_LAYOUT_BTRL     6       /* Bottom to top, right to left */
+#define PSTOPS_LAYOUT_TBRL     7       /* Top to bottom, right to left */
 
-#define LAYOUT_NEGATEY 1               /* The bits for the layout */
-#define LAYOUT_NEGATEX 2               /* definitions above... */
-#define LAYOUT_VERTICAL        4
-
-#define PROT_STANDARD  0               /* Adobe standard protocol */
-#define PROT_BCP       1               /* Adobe BCP protocol */
-#define PROT_TBCP      2               /* Adobe TBCP protocol */
+#define PSTOPS_LAYOUT_NEGATEY  1       /* The bits for the layout */
+#define PSTOPS_LAYOUT_NEGATEX  2       /* definitions above... */
+#define PSTOPS_LAYOUT_VERTICAL 4
 
 
 /*
 typedef struct                         /**** Page information ****/
 {
   char         *label;                 /* Page label */
+  int          bounding_box[4];        /* PageBoundingBox */
   off_t                offset;                 /* Offset to start of page */
   ssize_t      length;                 /* Number of bytes for page */
-  int          lbrt[4];                /* PageBoundingBox */
-  const char   *input_slot,            /* Input slot option or NULL */
-               *manual_feed;           /* Manual feed option or NULL */
-} page_info_t;
+  int          num_options;            /* Number of options for this page */
+  cups_option_t        *options;               /* Options for this page */
+} pstops_page_t;
+
+typedef struct                         /**** Document information ****/
+{
+  int          page;                   /* Current page */
+  int          bounding_box[4];        /* BoundingBox from header */
+  int          new_bounding_box[4];    /* New composite bounding box */
+  int          num_options;            /* Number of document-wide options */
+  cups_option_t        *options;               /* Document-wide options */
+  int          normal_landscape,       /* Normal rotation for landscape? */
+               saw_eof,                /* Saw the %%EOF comment? */
+               slow_collate,           /* Collate copies by hand? */
+               slow_duplex,            /* Duplex pages slowly? */
+               slow_order,             /* Reverse pages slowly? */
+               use_ESPshowpage;        /* Use ESPshowpage? */
+  cups_array_t *pages;                 /* Pages in document */
+  cups_file_t  *temp;                  /* Temporary file, if any */
+  char         tempfile[1024];         /* Temporary filename */
+  int          job_id;                 /* Job ID */
+  const char   *user,                  /* User name */
+               *title;                 /* Job name */
+  int          copies;                 /* Number of copies */
+  const char   *ap_input_slot,         /* AP_FIRSTPAGE_InputSlot value */
+               *ap_manual_feed;        /* AP_FIRSTPAGE_ManualFeed value */
+  float                brightness;             /* brightness value */
+  int          collate,                /* Collate copies? */
+               emit_jcl,               /* Emit JCL commands? */
+               fitplot;                /* Fit pages to media */
+  float                gamma;                  /* gamma value */
+  const char   *input_slot,            /* InputSlot value */
+               *manual_feed;           /* ManualFeed value */
+  int          mirror,                 /* doc->mirror/mirror pages */
+               number_up,              /* Number of pages on each sheet */
+               number_up_layout,       /* doc->number_up_layout of N-up pages */
+               output_order,           /* Requested reverse output order? */
+               page_border;            /* doc->page_border around pages */
+  const char   *page_label,            /* page-label option, if any */
+               *page_ranges,           /* page-ranges option, if any */
+               *page_set;              /* page-set option, if any */
+} pstops_doc_t;
 
 
 /*
- * Globals...
+ * Convenience macros...
  */
 
-int            NumPages = 0;           /* Number of pages in file */
-cups_array_t   *Pages;                 /* Info on each page */
-const char     *PageRanges = NULL;     /* Range of pages selected */
-const char     *PageSet = NULL;        /* All, Even, Odd pages */
-int            Order = 0,              /* 0 = normal, 1 = reverse pages */
-               Flip = 0,               /* Flip/mirror pages */
-               FitPlot = 0,            /* Fit pages to media */
-               NUp = 1,                /* Number of pages on each sheet (1, 2, 4) */
-               Collate = 0,            /* Collate copies? */
-               Copies = 1,             /* Number of copies */
-               UseESPsp = 0,           /* Use ESPshowpage? */
-               Border = BORDER_NONE,   /* Border around pages */
-               Layout = LAYOUT_LRTB,   /* Layout of N-up pages */
-               NormalLandscape = 0;    /* Normal rotation for landscape? */
+#define        is_first_page(p)        (doc->number_up == 1 || \
+                                ((p) % doc->number_up) == 1)
+#define        is_last_page(p)         (doc->number_up == 1 || \
+                                ((p) % doc->number_up) == 0)
+#define is_not_last_page(p)    (doc->number_up > 1 && \
+                                ((p) % doc->number_up) != 0)
 
 
 /*
  * Local functions...
  */
 
-static page_info_t     *add_page(const char *label, off_t offset,
-                                 const int *lbrt);
-static int             check_range(int page);
+static pstops_page_t   *add_page(pstops_doc_t *doc, const char *label);
+static int             check_range(pstops_doc_t *doc, int page);
 static void            copy_bytes(cups_file_t *fp, off_t offset,
                                   size_t length);
-static void            do_prolog(ppd_file_t *ppd);
-static void            do_setup(ppd_file_t *ppd, int copies,  int collate,
-                                int slowcollate, float g, float b);
-static void            end_nup(int number);
-static void            include_feature(ppd_file_t *ppd, const char *line,
-                                       cups_file_t *out);
-#define                        is_first_page(p)        (NUp == 1 || (((p)+1) % NUp) == 1)
-#define                        is_last_page(p)         (NUp > 1 && (((p)+1) % NUp) == 0)
-#define                is_not_last_page(p)     (NUp > 1 && ((p) % NUp) != 0)
-static char            *psgets(char *buf, size_t *bytes, FILE *fp);
-static void            start_nup(int number, int show_border, const int *lbrt);
+static size_t          copy_comments(cups_file_t *fp, pstops_doc_t *doc,
+                                     char *line, size_t linelen,
+                                     size_t linesize);
+static void            copy_dsc(cups_file_t *fp, pstops_doc_t *doc,
+                                ppd_file_t *ppd, char *line, size_t linelen,
+                                size_t linesize);
+static void            copy_non_dsc(cups_file_t *fp, pstops_doc_t *doc,
+                                    ppd_file_t *ppd, char *line,
+                                    size_t linelen, size_t linesize);
+static size_t          copy_page(cups_file_t *fp, pstops_doc_t *doc,
+                                 ppd_file_t *ppd, int number, char *line,
+                                 size_t linelen, size_t linesize);
+static size_t          copy_prolog(cups_file_t *fp, pstops_doc_t *doc,
+                                   ppd_file_t *ppd, char *line,
+                                   size_t linelen, size_t linesize);
+static size_t          copy_setup(cups_file_t *fp, pstops_doc_t *doc,
+                                  ppd_file_t *ppd, char *line,
+                                  size_t linelen, size_t linesize);
+static size_t          copy_trailer(cups_file_t *fp, pstops_doc_t *doc,
+                                    ppd_file_t *ppd, int number, char *line,
+                                    size_t linelen, size_t linesize);
+static void            do_prolog(pstops_doc_t *doc, ppd_file_t *ppd);
+static void            do_setup(pstops_doc_t *doc, ppd_file_t *ppd);
+static void            doc_printf(pstops_doc_t *doc, const char *format, ...);
+static void            doc_puts(pstops_doc_t *doc, const char *s);
+static void            doc_write(pstops_doc_t *doc, const char *s, size_t len);
+static void            end_nup(pstops_doc_t *doc, int number);
+static int             include_feature(ppd_file_t *ppd, const char *line,
+                                       int num_options,
+                                       cups_option_t **options);
+static char            *parse_text(const char *start, char **end, char *buffer,
+                                   size_t bufsize);
+static void            set_pstops_options(pstops_doc_t *doc, ppd_file_t *ppd,
+                                          char *argv[], int num_options,
+                                          cups_option_t *options);
+static size_t          skip_page(cups_file_t *fp, char *line, size_t linelen,
+                                 size_t linesize);
+static void            start_nup(pstops_doc_t *doc, int number,
+                                 int show_border, const int *bounding_box);
 
 
 /*
@@ -141,47 +209,14 @@ int                                       /* O - Exit status */
 main(int  argc,                                /* I - Number of command-line args */
      char *argv[])                     /* I - Command-line arguments */
 {
-  FILE         *fp;                    /* Print file */
+  pstops_doc_t doc;                    /* Document information */
+  cups_file_t  *fp;                    /* Print file */
   ppd_file_t   *ppd;                   /* PPD file */
-  ppd_attr_t   *attr;                  /* Attribute in PPD file */
-  ppd_option_t *option;                /* Option */
-  ppd_choice_t *choice;                /* Marked option choice */
   int          num_options;            /* Number of print options */
   cups_option_t        *options;               /* Print options */
-  const char   *val;                   /* Option value */
-  char         tempfile[255];          /* Temporary file name */
-  cups_file_t  *temp;                  /* Temporary file */
-  int          number;                 /* Page number */
-  int          slowcollate;            /* 1 if we need to collate manually */
-  int          sloworder;              /* 1 if we need to order manually */
-  int          slowduplex;             /* 1 if we need an even page count */
   char         line[8192];             /* Line buffer */
-  int          lbrt[4],                /* BoundingBox */
-               pagelbrt[4];            /* PageBoundingBox */
   size_t       len;                    /* Length of line buffer */
-  float                g;                      /* Gamma correction value */
-  float                b;                      /* Brightness factor */
-  int          level;                  /* Nesting level for embedded files */
-  int          nbytes,                 /* Number of bytes read */
-               tbytes;                 /* Bytes to read for binary data */
-  int          page;                   /* Current page sequence number */
-  int          real_page;              /* "Real" page number in document */
-  int          page_count;             /* Page count for NUp */
-  int          basepage;               /* Base page number */
-  int          subpage;                /* Sub-page number */
-  int          copy;                   /* Current copy */
-  int          saweof;                 /* Did we see a %%EOF tag? */
-  int          sent_espsp,             /* Did we send ESPshowpage commands? */
-               sent_prolog,            /* Did we send the prolog commands? */
-               sent_setup,             /* Did we send the setup commands? */
-               emit_jcl;               /* Emit JCL? */
-  float                min_order;              /* Minimum output order for selection */
-  char         label[256];             /* Page label */
-  page_info_t  *pageinfo;              /* Page information */
-  const char   *ap_input_slot,         /* First page InputSlot option */
-               *ap_manual_feed,        /* First page ManualFeed option */
-               *input_slot,            /* Original InputSlot option */
-               *manual_feed;           /* Original ManualFeed option */
+
 
  /*
   * Make sure status messages are not buffered...
@@ -205,1599 +240,2207 @@ main(int  argc,                               /* I - Number of command-line args */
   */
 
   if (argc == 6)
-    fp = stdin;
+    fp = cupsFileStdin();
   else
   {
    /*
     * Try to open the print file...
     */
 
-    if ((fp = fopen(argv[6], "rb")) == NULL)
+    if ((fp = cupsFileOpen(argv[6], "r")) == NULL)
     {
-      fprintf(stderr, "ERROR: unable to open print file \"%s\" - %s\n",
+      fprintf(stderr, "ERROR: Unable to open print file \"%s\" - %s\n",
               argv[6], strerror(errno));
       return (1);
     }
   }
 
  /*
-  * Process command-line options and write the prolog...
+  * Read the first line to see if we have DSC comments...
   */
 
-  g = 1.0;
-  b = 1.0;
+  if ((len = cupsFileGetLine(fp, line, sizeof(line))) == 0)
+  {
+    fputs("ERROR: Empty print file!\n", stderr);
+    return (1);
+  }
 
-  Copies = atoi(argv[4]);
+ /*
+  * Process command-line options...
+  */
 
   options     = NULL;
   num_options = cupsParseOptions(argv[5], 0, &options);
+  ppd         = SetCommonOptions(num_options, options, 1);
 
-  ppd = SetCommonOptions(num_options, options, 1);
-
-  if (ppd && ppd->landscape > 0)
-    NormalLandscape = 1;
-
-  if ((val = cupsGetOption("page-ranges", num_options, options)) != NULL)
-    PageRanges = val;
+  set_pstops_options(&doc, ppd, argv, num_options, options);
 
-  if ((val = cupsGetOption("page-set", num_options, options)) != NULL)
-    PageSet = val;
-
-  if ((val = cupsGetOption("multiple-document-handling", num_options, options)) != NULL)
-  {
-   /*
-    * This IPP attribute is unnecessarily complicated...
-    *
-    *   single-document, separate-documents-collated-copies, and
-    *   single-document-new-sheet all require collated copies.
-    *
-    *   separate-documents-uncollated-copies allows for uncollated copies.
-    */
-
-    Collate = strcasecmp(val, "separate-documents-uncollated-copies") != 0;
-  }
+ /*
+  * Write any "exit server" options that have been selected...
+  */
 
-  if ((val = cupsGetOption("Collate", num_options, options)) != NULL &&
-      (!strcasecmp(val, "true") ||!strcasecmp(val, "on") ||
-       !strcasecmp(val, "yes")))
-    Collate = 1;
+  ppdEmit(ppd, stdout, PPD_ORDER_EXIT);
 
-  if ((val = cupsGetOption("OutputOrder", num_options, options)) != NULL)
-  {
-    if (!strcasecmp(val, "Reverse"))
-      Order = 1;
-  }
-  else if (ppd)
-  {
-   /*
-    * Figure out the right default output order from the PPD file...
-    */
+ /*
+  * Write any JCL commands that are needed to print PostScript code...
+  */
 
-    if ((choice = ppdFindMarkedChoice(ppd, "OutputBin")) != NULL &&
-        (attr = ppdFindAttr(ppd, "PageStackOrder", choice->choice)) != NULL &&
-       attr->value)
-      Order = !strcasecmp(attr->value, "Reverse");
-    else if ((attr = ppdFindAttr(ppd, "DefaultOutputOrder", NULL)) != NULL &&
-             attr->value)
-      Order = !strcasecmp(attr->value, "Reverse");
-  }
+  if (doc.emit_jcl)
+    ppdEmitJCL(ppd, stdout, doc.job_id, doc.user, doc.title);
 
-  if ((val = cupsGetOption("number-up", num_options, options)) != NULL)
-    NUp = atoi(val);
+ /*
+  * Start with a DSC header...
+  */
 
-  if ((val = cupsGetOption("page-border", num_options, options)) != NULL)
-  {
-    if (!strcasecmp(val, "none"))
-      Border = BORDER_NONE;
-    else if (!strcasecmp(val, "single"))
-      Border = BORDER_SINGLE;
-    else if (!strcasecmp(val, "single-thick"))
-      Border = BORDER_SINGLE2;
-    else if (!strcasecmp(val, "double"))
-      Border = BORDER_DOUBLE;
-    else if (!strcasecmp(val, "double-thick"))
-      Border = BORDER_DOUBLE2;
-  }
+  puts("%!PS-Adobe-3.0");
 
-  if ((val = cupsGetOption("number-up-layout", num_options, options)) != NULL)
-  {
-    if (!strcasecmp(val, "lrtb"))
-      Layout = LAYOUT_LRTB;
-    else if (!strcasecmp(val, "lrbt"))
-      Layout = LAYOUT_LRBT;
-    else if (!strcasecmp(val, "rltb"))
-      Layout = LAYOUT_RLTB;
-    else if (!strcasecmp(val, "rlbt"))
-      Layout = LAYOUT_RLBT;
-    else if (!strcasecmp(val, "tblr"))
-      Layout = LAYOUT_TBLR;
-    else if (!strcasecmp(val, "tbrl"))
-      Layout = LAYOUT_TBRL;
-    else if (!strcasecmp(val, "btlr"))
-      Layout = LAYOUT_BTLR;
-    else if (!strcasecmp(val, "btrl"))
-      Layout = LAYOUT_BTRL;
-  }
+ /*
+  * Skip leading PJL in the document...
+  */
 
-  if ((val = cupsGetOption("gamma", num_options, options)) != NULL)
+  while (!strncmp(line, "\033%-12345X", 9) || !strncmp(line, "@PJL ", 5))
   {
    /*
-    * Get gamma value from 1 to 10000...
+    * Yup, we have leading PJL fun, so skip it until we hit the line
+    * with "ENTER LANGUAGE"...
     */
 
-    g = atoi(val) * 0.001f;
-
-    if (g < 0.001f)
-      g = 0.001f;
-    else if (g > 10.0f)
-      g = 10.0f;
-  }
-
-  if ((val = cupsGetOption("brightness", num_options, options)) != NULL)
-  {
-   /*
-    * Get brightness value from 10 to 1000.
-    */
+    fputs("DEBUG: Skipping PJL header...\n", stderr);
 
-    b = atoi(val) * 0.01f;
+    while (strstr(line, "ENTER LANGUAGE") == NULL)
+      if ((len = cupsFileGetLine(fp, line, sizeof(line))) == 0)
+        break;
 
-    if (b < 0.1f)
-      b = 0.1f;
-    else if (b > 10.0f)
-      b = 10.0f;
+    if ((len = cupsFileGetLine(fp, line, sizeof(line))) == 0)
+      break;
   }
 
-  if ((val = cupsGetOption("mirror", num_options, options)) != NULL &&
-      (!strcasecmp(val, "true") || !strcasecmp(val, "on") ||
-       !strcasecmp(val, "yes")))
-    Flip = 1;
-
-  if ((val = cupsGetOption("fitplot", num_options, options)) != NULL &&
-      (!strcasecmp(val, "true") || !strcasecmp(val, "on") ||
-       !strcasecmp(val, "yes")))
-    FitPlot = 1;
-
-  if ((val = cupsGetOption("emit-jcl", num_options, options)) != NULL &&
-      (!strcasecmp(val, "false") || !strcasecmp(val, "off") ||
-       !strcasecmp(val, "no") || !strcmp(val, "0")))
-    emit_jcl = 0;
-  else
-    emit_jcl = 1;
-
  /*
-  * Handle input slot/manual feed selections...
+  * Now see if the document conforms to the Adobe Document Structuring
+  * Conventions...
   */
 
-  if ((choice = ppdFindMarkedChoice(ppd, "InputSlot")) != NULL)
-    input_slot = choice->choice;
-  else
-    input_slot = NULL;
-
-  if ((choice = ppdFindMarkedChoice(ppd, "ManualFeed")) != NULL)
-    manual_feed = choice->choice;
-  else
-    manual_feed = NULL;
-
-  ap_input_slot  = cupsGetOption("AP_FIRSTPAGE_InputSlot", num_options,
-                                 options);
-  ap_manual_feed = cupsGetOption("AP_FIRSTPAGE_ManualFeed", num_options,
-                                 options);
-  min_order      = 999.0f;
-
-  if (ppd && (ap_input_slot || ap_manual_feed))
+  if (!strncmp(line, "%!PS-Adobe-", 11))
   {
    /*
-    * The first page/sheet will be using different options than
-    * the rest, so figure out the minimum order dependency for
-    * each of the options...
+    * Yes, filter the document...
     */
 
-    if ((option = ppdFindOption(ppd, "PageRegion")) != NULL &&
-        option->order < min_order)
-      min_order = option->order;
-
-    if ((option = ppdFindOption(ppd, "InputSlot")) != NULL &&
-        option->order < min_order)
-      min_order = option->order;
-
-    if ((option = ppdFindOption(ppd, "ManualFeed")) != NULL &&
-        option->order < min_order)
-      min_order = option->order;
+    copy_dsc(fp, &doc, ppd, line, len, sizeof(line));
   }
-
-  if (ppd && ppd->manual_copies && Duplex && Copies > 1)
+  else
   {
    /*
-    * Force collated copies when printing a duplexed document to
-    * a non-PS printer that doesn't do hardware copy generation.
-    * Otherwise the copies will end up on the front/back side of
-    * each page.
+    * No, display an error message and treat the file as if it contains
+    * a single page...
     */
 
-    Collate = 1;
+    copy_non_dsc(fp, &doc, ppd, line, len, sizeof(line));
   }
 
  /*
-  * See if we have to filter the fast or slow way...
+  * Send %%EOF as needed...
   */
 
-  if (Collate && Copies > 1)
-  {
-   /*
-    * See if we need to manually collate the pages...
-    */
-
-    slowcollate = 1;
-
-    if ((choice = ppdFindMarkedChoice(ppd, "Collate")) != NULL &&
-        !strcasecmp(choice->choice, "True"))
-    {
-     /*
-      * Hardware collate option is selected, see if the option is
-      * conflicting - if not, collate in hardware.  Otherwise,
-      * turn the hardware collate option off...
-      */
-
-      if ((option = ppdFindOption(ppd, "Option")) != NULL &&
-          !option->conflicted)
-       slowcollate = 0;
-      else
-        ppdMarkOption(ppd, "Collate", "False");
-    }
-  }
-  else
-    slowcollate = 0;
-
-  if (ppdFindOption(ppd, "OutputOrder") == NULL && Order)
-    sloworder = 1;
-  else
-    sloworder = 0;
-
-  if ((slowcollate || sloworder) && Duplex)
-    slowduplex = 1;
-  else
-    slowduplex = 0;
+  if (!doc.saw_eof)
+    puts("%%EOF");
 
  /*
-  * If we need to filter slowly, then create a temporary file for page data...
-  *
-  * If the temp file can't be created, then we'll ignore the collating/output
-  * order options...
+  * End the job with the appropriate JCL command or CTRL-D...
   */
 
-  if (sloworder || slowcollate)
+  if (doc.emit_jcl)
   {
-    if ((temp = cupsTempFile2(tempfile, sizeof(tempfile))) == NULL)
-      slowcollate = sloworder = 0;
+    if (ppd && ppd->jcl_end)
+      ppdEmitJCLEnd(ppd, stdout);
+    else
+      putchar(0x04);
   }
-  else
-    temp = NULL;
-
- /*
-  * Write any "exit server" options that have been selected...
-  */
-
-  ppdEmit(ppd, stdout, PPD_ORDER_EXIT);
-
- /*
-  * Write any JCL commands that are needed to print PostScript code...
-  */
-
-  if (emit_jcl)
-    ppdEmitJCL(ppd, stdout, atoi(argv[1]), argv[2], argv[3]);
 
  /*
-  * Read the first line to see if we have DSC comments...
+  * Close files and remove the temporary file if needed...
   */
 
-  len = sizeof(line);
-  if (psgets(line, &len, fp) == NULL)
+  if (doc.temp)
   {
-    fputs("ERROR: Empty print file!\n", stderr);
-    ppdClose(ppd);
-    return (1);
+    cupsFileClose(doc.temp);
+    unlink(doc.tempfile);
   }
 
- /*
-  * Handle leading PJL fun...
-  */
+  ppdClose(ppd);
+  cupsFreeOptions(num_options, options);
 
-  while (!strncmp(line, "\033%-12345X", 9) || !strncmp(line, "@PJL ", 5))
-  {
-   /*
-    * Yup, we have leading PJL fun, so skip it until we hit the line
-    * with "ENTER LANGUAGE"...
-    */
+  cupsFileClose(fp);
 
-    fputs("DEBUG: Skipping PJL header...\n", stderr);
+  return (0);
+}
 
-    while (strstr(line, "ENTER LANGUAGE") == NULL)
-    {
-      len = sizeof(line);
-      if (psgets(line, &len, fp) == NULL)
-        break;
-    }
 
-    len = sizeof(line);
-    if (psgets(line, &len, fp) == NULL)
-      break;
-  }
+/*
+ * 'add_page()' - Add a page to the pages array...
+ */
 
- /*
-  * Start sending the document with any commands needed...
-  */
+static pstops_page_t *                 /* O - New page info object */
+add_page(pstops_doc_t *doc,            /* I - Document information */
+         const char   *label)          /* I - Page label */
+{
+  pstops_page_t        *pageinfo;              /* New page info object */
 
-  fwrite(line, 1, len, stdout);
 
-  saweof      = 0;
-  sent_espsp  = 0;
-  sent_prolog = 0;
-  sent_setup  = 0;
+  if (!doc->pages)
+    doc->pages = cupsArrayNew(NULL, NULL);
 
-  if (Copies != 1 && (!Collate || !slowcollate))
+  if (!doc->pages)
   {
-   /*
-    * Tell the document processor the copy and duplex options
-    * that are required...
-    */
-
-    printf("%%%%Requirements: numcopies(%d)%s%s\n", Copies,
-           Collate ? " collate" : "",
-          Duplex ? " duplex" : "");
-
-   /*
-    * Apple uses RBI comments for various non-PPD options...
-    */
-
-    printf("%%RBINumCopies: %d\n", Copies);
+    fprintf(stderr, "EMERG: Unable to allocate memory for pages array: %s\n",
+            strerror(errno));
+    exit(1);
   }
-  else
+
+  if ((pageinfo = calloc(1, sizeof(pstops_page_t))) == NULL)
   {
-   /*
-    * Tell the document processor the duplex option that is required...
-    */
+    fprintf(stderr, "EMERG: Unable to allocate memory for page info: %s\n",
+            strerror(errno));
+    exit(1);
+  }
 
-    if (Duplex)
-      puts("%%Requirements: duplex");
+  pageinfo->label  = strdup(label);
+  pageinfo->offset = cupsFileTell(doc->temp);
 
-   /*
-    * Apple uses RBI comments for various non-PPD options...
-    */
+  cupsArrayAdd(doc->pages, pageinfo);
 
-    puts("%RBINumCopies: 1");
-  }
+  doc->page ++;
 
- /*
-  * Figure out if we should use ESPshowpage or not...
-  */
+  return (pageinfo);
+}
 
-  val = cupsGetOption("page-label", num_options, options);
 
-  if (val != NULL || getenv("CLASSIFICATION") != NULL || NUp > 1 ||
-      Border || strstr(line, "EPS") != NULL)
-  {
-   /*
-    * Yes, use ESPshowpage...
-    */
+/*
+ * 'check_range()' - Check to see if the current page is selected for
+ *                   printing.
+ */
 
-    UseESPsp = 1;
-  }
+static int                             /* O - 1 if selected, 0 otherwise */
+check_range(pstops_doc_t *doc,         /* I - Document information */
+            int          page)         /* I - Page number */
+{
+  const char   *range;                 /* Pointer into range string */
+  int          lower, upper;           /* Lower and upper page numbers */
 
-  fprintf(stderr, "DEBUG: slowcollate=%d, slowduplex=%d, sloworder=%d\n",
-          slowcollate, slowduplex, sloworder);
 
-  if (!strncmp(line, "%!PS-Adobe-", 11) && !strstr(line, "EPSF"))
+  if (doc->page_set)
   {
    /*
-    * OK, we have DSC comments and this isn't an EPS file; read until we
-    * find a %%Page comment...
+    * See if we only print even or odd pages...
     */
 
-    puts("%%Pages: (atend)");
-    printf("%%%%BoundingBox: %.0f %.0f %.0f %.0f\n", PageLeft, PageBottom,
-           PageRight, PageTop);
-
-    level   = 0;
-    lbrt[0] = 0;
-    lbrt[1] = 0;
-    lbrt[2] = (int)PageWidth;
-    lbrt[3] = (int)PageLength;
-
-    while (!feof(fp))
-    {
-      len = sizeof(line);
-      if (psgets(line, &len, fp) == NULL)
-        break;
+    if (!strcasecmp(doc->page_set, "even") &&
+        ((page - 1) % (doc->number_up << 1)) < doc->number_up)
+      return (0);
 
-      if (!strncmp(line, "%%", 2))
-        fprintf(stderr, "DEBUG: %d %s", level, line);
-      else if (line[0] != '%' && line[0] && !sent_espsp && UseESPsp)
-      {
-       /*
-        * Send ESPshowpage stuff...
-       */
+    if (!strcasecmp(doc->page_set, "odd") &&
+        ((page - 1) % (doc->number_up << 1)) >= doc->number_up)
+      return (0);
+  }
 
-        sent_espsp = 1;
+  if (!doc->page_ranges)
+    return (1);                                /* No range, print all pages... */
 
-       puts("userdict/ESPshowpage/showpage load put\n"
-            "userdict/showpage{}put");
-      }
+  for (range = doc->page_ranges; *range != '\0';)
+  {
+    if (*range == '-')
+    {
+      lower = 1;
+      range ++;
+      upper = strtol(range, (char **)&range, 10);
+    }
+    else
+    {
+      lower = strtol(range, (char **)&range, 10);
 
-      if (!strncmp(line, "%%BeginDocument:", 16) ||
-          !strncmp(line, "%%BeginDocument ", 16) ||    /* Adobe Acrobat BUG */
-         !strncmp(line, "%ADO_BeginApplication", 21))
+      if (*range == '-')
       {
-       fputs(line, stdout);
-        level ++;
+        range ++;
+       if (!isdigit(*range & 255))
+         upper = 65535;
+       else
+         upper = strtol(range, (char **)&range, 10);
       }
-      else if ((!strncmp(line, "%%EndDocument", 13) ||
-               !strncmp(line, "%ADO_EndApplication", 19)) && level > 0)
+      else
+        upper = lower;
+    }
+
+    if (page >= lower && page <= upper)
+      return (1);
+
+    if (*range == ',')
+      range ++;
+    else
+      break;
+  }
+
+  return (0);
+}
+
+
+/*
+ * 'copy_bytes()' - Copy bytes from the input file to stdout...
+ */
+
+static void
+copy_bytes(cups_file_t *fp,            /* I - File to read from */
+           off_t       offset,         /* I - Offset to page data */
+           size_t      length)         /* I - Length of page data */
+{
+  char         buffer[8192];           /* Data buffer */
+  ssize_t      nbytes;                 /* Number of bytes read */
+  size_t       nleft;                  /* Number of bytes left/remaining */
+
+
+  nleft = length;
+
+  if (cupsFileSeek(fp, offset) < 0)
+  {
+    fprintf(stderr, "ERROR: Unable to seek to offset " CUPS_LLFMT
+                    " in file - %s\n",
+            CUPS_LLCAST offset, strerror(errno));
+    return;
+  }
+
+  while (nleft > 0 || length == 0)
+  {
+    if (nleft > sizeof(buffer) || length == 0)
+      nbytes = sizeof(buffer);
+    else
+      nbytes = nleft;
+
+    if ((nbytes = cupsFileRead(fp, buffer, nbytes)) < 1)
+      return;
+
+    nleft -= nbytes;
+
+    fwrite(buffer, 1, nbytes, stdout);
+  }
+}
+
+
+/*
+ * 'copy_comments()' - Copy all of the comments section...
+ *
+ * This function expects "line" to be filled with a comment line.
+ * On return, "line" will contain the next line in the file, if any.
+ */
+
+static size_t                          /* O - Length of next line */
+copy_comments(cups_file_t  *fp,                /* I - File to read from */
+              pstops_doc_t *doc,       /* I - Document info */
+              char         *line,      /* I - Line buffer */
+             size_t       linelen,     /* I - Length of initial line */
+             size_t       linesize)    /* I - Size of line buffer */
+{
+  int  saw_bounding_box,               /* Saw %%BoundingBox: comment? */
+       saw_for,                        /* Saw %%For: comment? */
+       saw_pages,                      /* Saw %%Pages: comment? */
+       saw_title;                      /* Saw %%Title: comment? */
+
+
+ /*
+  * Loop until we see %%EndComments or a non-comment line...
+  */
+
+  saw_bounding_box = 0;
+  saw_for          = 0;
+  saw_pages        = 0;
+  saw_title        = 0;        
+
+  while (line[0] == '%')
+  {
+   /*
+    * Strip trailing whitespace...
+    */
+
+    while (linelen > 0)
+    {
+      linelen --;
+
+      if (!isspace(line[linelen] & 255))
+        break;
+      else
+        line[linelen] = '\0';
+    }
+
+   /*
+    * Log the header...
+    */
+
+    fprintf(stderr, "DEBUG: %s\n", line);
+
+   /*
+    * Pull the headers out...
+    */
+
+    if (!strncmp(line, "%%Pages:", 8))
+    {
+      if (saw_pages)
+        fputs("ERROR: Duplicate %%Pages: comment seen!\n", stderr);
+
+      saw_pages = 1;
+    }
+    else if (!strncmp(line, "%%BoundingBox:", 14))
+    {
+      if (saw_bounding_box)
+        fputs("ERROR: Duplicate %%BoundingBox: comment seen!\n", stderr);
+      else if (sscanf(line + 14, "%d%d%d%d", doc->bounding_box + 0,
+                     doc->bounding_box + 1, doc->bounding_box + 2,
+                     doc->bounding_box + 3) != 4)
       {
-       fputs(line, stdout);
-        level --;
+       fputs("ERROR: Bad %%BoundingBox: comment seen!\n", stderr);
+
+       doc->bounding_box[0] = (int)PageLeft;
+       doc->bounding_box[1] = (int)PageBottom;
+       doc->bounding_box[2] = (int)PageRight;
+       doc->bounding_box[3] = (int)PageTop;
       }
-      else if (!strncmp(line, "%cupsRotation:", 14) && level == 0)
+
+      saw_bounding_box = 1;
+    }
+    else if (!strncmp(line, "%%For:", 6))
+    {
+      saw_for = 1;
+      printf("%s\n", line);
+    }
+    else if (!strncmp(line, "%%Title:", 8))
+    {
+      saw_title = 1;
+      printf("%s\n", line);
+    }
+    else if (!strncmp(line, "%cupsRotation:", 14))
+    {
+     /*
+      * Reset orientation of document?
+      */
+
+      int orient = (atoi(line + 14) / 90) & 3;
+
+      if (orient != Orientation)
       {
        /*
-        * Reset orientation of document?
+        * Yes, update things so that the pages come out right...
        */
 
-        int orient = (atoi(line + 14) / 90) & 3;
-
-        if (orient != Orientation)
-       {
-         Orientation = (4 - Orientation + orient) & 3;
-         UpdatePageVars();
-         Orientation = orient;
-       }
+       Orientation = (4 - Orientation + orient) & 3;
+       UpdatePageVars();
+       Orientation = orient;
       }
-      else if (!strncmp(line, "%%BeginProlog", 13) && level == 0)
+    }
+    else if (!strcmp(line, "%%EndComments"))
+    {
+      linelen = cupsFileGetLine(fp, line, linesize);
+      break;
+    }
+    else if (strncmp(line, "%!", 2) && strncmp(line, "%cups", 5))
+      printf("%s\n", line);
+
+    if ((linelen = cupsFileGetLine(fp, line, linesize)) == 0)
+      break;
+  }
+
+  if (!saw_bounding_box)
+    fputs("ERROR: No %%BoundingBox: comment in header!\n", stderr);
+
+  if (!saw_pages)
+    fputs("ERROR: No %%Pages: comment in header!\n", stderr);
+
+  if (!saw_for)
+    printf("%%%%For: %s\n", doc->user);
+
+  if (!saw_title)
+    printf("%%%%Title: %s\n", doc->title);
+
+  if (doc->copies != 1 && (!doc->collate || !doc->slow_collate))
+  {
+   /*
+    * Tell the document processor the copy and duplex options
+    * that are required...
+    */
+
+    printf("%%%%Requirements: numcopies(%d)%s%s\n", doc->copies,
+           doc->collate ? " collate" : "",
+          Duplex ? " duplex" : "");
+
+   /*
+    * Apple uses RBI comments for various non-PPD options...
+    */
+
+    printf("%%RBINumCopies: %d\n", doc->copies);
+  }
+  else
+  {
+   /*
+    * Tell the document processor the duplex option that is required...
+    */
+
+    if (Duplex)
+      puts("%%Requirements: duplex");
+
+   /*
+    * Apple uses RBI comments for various non-PPD options...
+    */
+
+    puts("%RBINumCopies: 1");
+  }
+
+  puts("%%Pages: (atend)");
+  puts("%%BoundingBox: (atend)");
+  puts("%%EndComments");
+
+  return (linelen);
+}
+
+
+/*
+ * 'copy_dsc()' - Copy a DSC-conforming document...
+ *
+ * This function expects "line" to be filled with the %!PS-Adobe comment line.
+ */
+
+static void
+copy_dsc(cups_file_t  *fp,             /* I - File to read from */
+         pstops_doc_t *doc,            /* I - Document info */
+         ppd_file_t   *ppd,            /* I - PPD file */
+        char         *line,            /* I - Line buffer */
+        size_t       linelen,          /* I - Length of initial line */
+        size_t       linesize)         /* I - Size of line buffer */
+{
+  int          number;                 /* Page number */
+  pstops_page_t        *pageinfo;              /* Page information */
+
+
+ /*
+  * Make sure we use ESPshowpage for EPS files...
+  */
+
+  if (strstr(line, "EPSF"))
+  {
+    doc->use_ESPshowpage = 1;
+    doc->number_up       = 1;
+  }
+
+ /*
+  * Start sending the document with any commands needed...
+  */
+
+  fprintf(stderr, "DEBUG: Before copy_comments - %s", line);
+  linelen = copy_comments(fp, doc, line, linelen, linesize);
+
+ /*
+  * Now find the prolog section, if any...
+  */
+
+  fprintf(stderr, "DEBUG: Before copy_prolog - %s", line);
+  copy_prolog(fp, doc, ppd, line, linelen, linesize);
+
+ /*
+  * Then the document setup section...
+  */
+
+  fprintf(stderr, "DEBUG: Before copy_setup - %s", line);
+  copy_setup(fp, doc, ppd, line, linelen, linesize);
+
+ /*
+  * Then process pages until we have no more...
+  */
+
+  number = 0;
+
+  fprintf(stderr, "DEBUG: Before page loop - %s", line);
+  while (!strncmp(line, "%%Page:", 7))
+  {
+    number ++;
+
+    if (check_range(doc, (number - 1) / doc->number_up + 1))
+    {
+      fprintf(stderr, "DEBUG: Copying page %d...\n", number);
+      linelen = copy_page(fp, doc, ppd, number, line, linelen, linesize);
+    }
+    else
+    {
+      fprintf(stderr, "DEBUG: Skipping page %d...\n", number);
+      linelen = skip_page(fp, line, linelen, linesize);
+    }
+  }
+
+ /*
+  * Finish up the last page(s)...
+  */
+
+  if (number && is_not_last_page(number))
+  {
+    pageinfo = (pstops_page_t *)cupsArrayLast(doc->pages);
+
+    start_nup(doc, doc->number_up - 1, 0, doc->bounding_box);
+    doc_puts(doc, "showpage\n");
+    end_nup(doc, doc->number_up - 1);
+
+    pageinfo->length = cupsFileTell(doc->temp) - pageinfo->offset;
+  }
+
+  if (doc->slow_duplex && (doc->page & 1))
+  {
+   /*
+    * Make sure we have an even number of pages...
+    */
+
+    pageinfo = add_page(doc, "(filler)");
+
+    if (!doc->slow_order)
+    {
+      if (!ppd || !ppd->num_filters)
+       fprintf(stderr, "PAGE: %d %d\n", doc->page,
+               doc->slow_collate ? 1 : doc->copies);
+
+      printf("%%%%Page: (filler) %d\n", doc->page);
+    }
+
+    start_nup(doc, doc->number_up - 1, 0, doc->bounding_box);
+    doc_puts(doc, "showpage\n");
+    end_nup(doc, doc->number_up - 1);
+
+    pageinfo->length = cupsFileTell(doc->temp) - pageinfo->offset;
+  }
+
+ /*
+  * Make additional copies as necessary...
+  */
+
+  number = doc->slow_order ? 0 : doc->page;
+
+  if (doc->temp)
+  {
+    int        copy;                           /* Current copy */
+
+
+   /*
+    * Reopen the temporary file for reading...
+    */
+
+    cupsFileClose(doc->temp);
+
+    doc->temp = cupsFileOpen(doc->tempfile, "r");
+
+   /*
+    * Make the copies...
+    */
+
+    for (copy = !doc->slow_order; copy < doc->copies; copy ++)
+    {
+      pageinfo = doc->slow_order ? (pstops_page_t *)cupsArrayLast(doc->pages) :
+                                   (pstops_page_t *)cupsArrayFirst(doc->pages);
+
+      while (pageinfo)
       {
-       /*
-        * Write the existing comment line, and then follow with patches
-       * and prolog commands...
-       */
+        number ++;
 
-        fputs(line, stdout);
+       if (!ppd || !ppd->num_filters)
+         fprintf(stderr, "PAGE: %d 1\n", number);
 
-       if (!sent_prolog)
+       if (doc->number_up > 1)
+       {
+         printf("%%%%Page: (%d) %d\n", number, number);
+         printf("%%%%PageBoundingBox: %.0f %.0f %.0f %.0f\n",
+                PageLeft, PageBottom, PageRight, PageTop);
+       }
+       else
        {
-         sent_prolog = 1;
-          do_prolog(ppd);
+         printf("%%%%Page: %s %d\n", pageinfo->label, number);
+         printf("%%%%PageBoundingBox: %d %d %d %d\n",
+                pageinfo->bounding_box[0], pageinfo->bounding_box[1],
+                pageinfo->bounding_box[2], pageinfo->bounding_box[3]);
        }
+
+       copy_bytes(doc->temp, pageinfo->offset, pageinfo->length);
+
+       pageinfo = doc->slow_order ? (pstops_page_t *)cupsArrayPrev(doc->pages) :
+                                     (pstops_page_t *)cupsArrayNext(doc->pages);
       }
-      else if (!strncmp(line, "%%BeginSetup", 12) && level == 0)
-      {
-       /*
-        * Write the existing comment line, and then follow with document
-       * setup commands...
-       */
+    }
+  }
+
+ /*
+  * Write/copy the trailer...
+  */
+
+  linelen = copy_trailer(fp, doc, ppd, number, line, linelen, linesize);
+}
+
+
+/*
+ * 'copy_non_dsc()' - Copy a document that does not conform to the DSC...
+ *
+ * This function expects "line" to be filled with the %! comment line.
+ */
+
+static void
+copy_non_dsc(cups_file_t  *fp,         /* I - File to read from */
+             pstops_doc_t *doc,                /* I - Document info */
+             ppd_file_t   *ppd,                /* I - PPD file */
+            char         *line,        /* I - Line buffer */
+            size_t       linelen,      /* I - Length of initial line */
+            size_t       linesize)     /* I - Size of line buffer */
+{
+  int  copy;                           /* Current copy */
+  char buffer[8192];                   /* Copy buffer */
+  int  bytes;                          /* Number of bytes copied */
+
+
+ /*
+  * First let the user know that they are attempting to print a file
+  * that may not print correctly...
+  */
+
+  fputs("WARNING: This document does not conform to the Adobe Document "
+        "Structuring Conventions and may not print correctly!\n", stderr);
+
+ /*
+  * Then write a standard DSC comment section...
+  */
+
+  printf("%%%%BoundingBox: %.0f %.0f %.0f %.0f\n", PageLeft, PageBottom,
+         PageRight, PageTop);
+
+  if (doc->slow_collate && doc->copies > 1)
+    printf("%%%%Pages: %d\n", doc->copies);
+  else
+    puts("%%Pages: 1");
+
+  printf("%%%%For: %s\n", doc->user);
+  printf("%%%%Title: %s\n", doc->title);
+
+  if (doc->copies != 1 && (!doc->collate || !doc->slow_collate))
+  {
+   /*
+    * Tell the document processor the copy and duplex options
+    * that are required...
+    */
+
+    printf("%%%%Requirements: numcopies(%d)%s%s\n", doc->copies,
+           doc->collate ? " collate" : "",
+          Duplex ? " duplex" : "");
+
+   /*
+    * Apple uses RBI comments for various non-PPD options...
+    */
+
+    printf("%%RBINumCopies: %d\n", doc->copies);
+  }
+  else
+  {
+   /*
+    * Tell the document processor the duplex option that is required...
+    */
+
+    if (Duplex)
+      puts("%%Requirements: duplex");
+
+   /*
+    * Apple uses RBI comments for various non-PPD options...
+    */
+
+    puts("%RBINumCopies: 1");
+  }
+
+  puts("%%EndComments");
+
+ /*
+  * Then the prolog...
+  */
+
+  puts("%%BeginProlog");
+
+  do_prolog(doc, ppd);
+
+  puts("%%EndProlog");
+
+ /*
+  * Then the setup section...
+  */
+
+  puts("%%BeginSetup");
+
+  do_setup(doc, ppd);
+
+  puts("%%EndSetup");
+
+ /*
+  * Finally, embed a copy of the file inside a %%Page...
+  */
+
+  if (!ppd || !ppd->num_filters)
+    fprintf(stderr, "PAGE: 1 %d\n", doc->temp ? 1 : doc->copies);
+
+  puts("%%Page: 1 1");
+  puts("%%BeginPageSetup");
+  ppdEmit(ppd, stdout, PPD_ORDER_PAGE);
+  puts("%%EndPageSetup");
+  puts("%%BeginDocument: nondsc");
+
+  fwrite(line, linelen, 1, stdout);
+
+  if (doc->temp)
+    cupsFileWrite(doc->temp, line, linelen);
+
+  while ((bytes = cupsFileRead(fp, buffer, sizeof(buffer))) > 0)
+  {
+    fwrite(buffer, 1, bytes, stdout);
+
+    if (doc->temp)
+      cupsFileWrite(doc->temp, buffer, bytes);
+  }
+
+  puts("%%EndDocument");
+
+  if (doc->use_ESPshowpage)
+  {
+    WriteLabels(Orientation);
+    puts("ESPshowpage");
+  }
+
+  if (doc->temp)
+  {
+   /*
+    * Reopen the temporary file for reading...
+    */
+
+    cupsFileClose(doc->temp);
+
+    doc->temp = cupsFileOpen(doc->tempfile, "r");
+
+   /*
+    * Make the additional copies as needed...
+    */
+
+    for (copy = 1; copy < doc->copies; copy ++)
+    {
+      if (!ppd || !ppd->num_filters)
+       fputs("PAGE: 1 1\n", stderr);
+
+      printf("%%%%Page: %d %d\n", copy + 1, copy + 1);
+      puts("%%BeginPageSetup");
+      ppdEmit(ppd, stdout, PPD_ORDER_PAGE);
+      puts("%%EndPageSetup");
+      puts("%%BeginDocument: nondsc");
+
+      copy_bytes(doc->temp, 0, 0);
+
+      puts("%%EndDocument");
+
+      if (doc->use_ESPshowpage)
+      {
+       WriteLabels(Orientation);
+        puts("ESPshowpage");
+      }
+    }
+  }
+}
+
+
+/*
+ * 'copy_page()' - Copy a page description...
+ *
+ * This function expects "line" to be filled with a %%Page comment line.
+ * On return, "line" will contain the next line in the file, if any.
+ */
+
+static size_t                          /* O - Length of next line */
+copy_page(cups_file_t  *fp,            /* I - File to read from */
+          pstops_doc_t *doc,           /* I - Document info */
+          ppd_file_t   *ppd,           /* I - PPD file */
+         int          number,          /* I - Current page number */
+         char         *line,           /* I - Line buffer */
+         size_t       linelen,         /* I - Length of initial line */
+         size_t       linesize)        /* I - Size of line buffer */
+{
+  char         label[256],             /* Page label string */
+               *ptr;                   /* Pointer into line */
+  int          level;                  /* Embedded document level */
+  pstops_page_t        *pageinfo;              /* Page information */
+  int          first_page;             /* First page on N-up output? */
+  int          bounding_box[4];        /* PageBoundingBox */
+
+
+ /*
+  * Get the page label for this page...
+  */
+
+  first_page = is_first_page(number);
+
+  if (!parse_text(line + 7, &ptr, label, sizeof(label)))
+  {
+    fputs("ERROR: Bad %%Page: comment in file!\n", stderr);
+    label[0] = '\0';
+    number   = doc->page;
+  }
+  else if (strtol(ptr, &ptr, 10) == LONG_MAX || !isspace(*ptr & 255))
+  {
+    fputs("ERROR: Bad %%Page: comment in file!\n", stderr);
+    number = doc->page;
+  }
+
+ /*
+  * Create or update the current output page...
+  */
+
+  if (first_page)
+    pageinfo = add_page(doc, label);
+  else
+    pageinfo = (pstops_page_t *)cupsArrayLast(doc->pages);
+
+ /*
+  * Handle first page override...
+  */
+
+  if (doc->ap_input_slot || doc->ap_manual_feed)
+  {
+    if (doc->page == 1)
+    {
+     /*
+      * First page/sheet gets AP_FIRSTPAGE_* options...
+      */
+
+      pageinfo->num_options = cupsAddOption("InputSlot", doc->ap_input_slot,
+                                            pageinfo->num_options,
+                                           &(pageinfo->options));
+      pageinfo->num_options = cupsAddOption("ManualFeed", doc->ap_manual_feed,
+                                            pageinfo->num_options,
+                                           &(pageinfo->options));
+    }
+    else if (doc->page == (Duplex + 2))
+    {
+     /*
+      * Second page/sheet gets default options...
+      */
+
+      pageinfo->num_options = cupsAddOption("InputSlot", doc->input_slot,
+                                            pageinfo->num_options,
+                                           &(pageinfo->options));
+      pageinfo->num_options = cupsAddOption("ManualFeed", doc->manual_feed,
+                                            pageinfo->num_options,
+                                           &(pageinfo->options));
+    }
+  }
+
+ /*
+  * Scan comments until we see something other than %%Page*: or
+  * %%Include*...
+  */
+
+  memcpy(bounding_box, doc->bounding_box, sizeof(bounding_box));
+
+  while ((linelen = cupsFileGetLine(fp, line, linesize)) > 0)
+  {
+    if (!strncmp(line, "%%PageBoundingBox:", 18))
+    {
+     /*
+      * %%PageBoundingBox: llx lly urx ury
+      */
+
+      if (sscanf(line + 18, "%d%d%d%d", bounding_box + 0,
+                 bounding_box + 1, bounding_box + 2,
+                bounding_box + 3) != 4)
+      {
+        fputs("ERROR: Bad %%PageBoundingBox: comment in file!\n", stderr);
+        memcpy(bounding_box, doc->bounding_box,
+              sizeof(bounding_box));
+      }
+    }
+#if 0
+    else if (!strncmp(line, "%%PageCustomColors:", 19) ||
+             !strncmp(line, "%%PageMedia:", 12) ||
+            !strncmp(line, "%%PageOrientation:", 18) ||
+            !strncmp(line, "%%PageProcessColors:", 20) ||
+            !strncmp(line, "%%PageRequirements:", 18) ||
+            !strncmp(line, "%%PageResources:", 16))
+    {
+     /*
+      * Copy literal...
+      */
+    }
+#endif /* 0 */
+    else if (!strncmp(line, "%%PageCustomColors:", 19))
+    {
+     /*
+      * %%PageCustomColors: ...
+      */
+    }
+    else if (!strncmp(line, "%%PageMedia:", 12))
+    {
+     /*
+      * %%PageMedia: ...
+      */
+    }
+    else if (!strncmp(line, "%%PageOrientation:", 18))
+    {
+     /*
+      * %%PageOrientation: ...
+      */
+    }
+    else if (!strncmp(line, "%%PageProcessColors:", 20))
+    {
+     /*
+      * %%PageProcessColors: ...
+      */
+    }
+    else if (!strncmp(line, "%%PageRequirements:", 18))
+    {
+     /*
+      * %%PageRequirements: ...
+      */
+    }
+    else if (!strncmp(line, "%%PageResources:", 16))
+    {
+     /*
+      * %%PageResources: ...
+      */
+    }
+    else if (!strncmp(line, "%%IncludeFeature:", 17))
+    {
+     /*
+      * %%IncludeFeature: *MainKeyword OptionKeyword
+      */
+
+      if (doc->number_up == 1 &&!doc->fitplot)
+       pageinfo->num_options = include_feature(ppd, line,
+                                               pageinfo->num_options,
+                                               &(pageinfo->options));
+    }
+    else if (strncmp(line, "%%Include", 9))
+      break;
+  }
+
+  if (doc->number_up == 1)
+  {
+   /*
+    * Update the document's composite and page bounding box...
+    */
+
+    memcpy(pageinfo->bounding_box, bounding_box,
+           sizeof(pageinfo->bounding_box));
+
+    if (bounding_box[0] < doc->new_bounding_box[0])
+      doc->new_bounding_box[0] = bounding_box[0];
+    if (bounding_box[1] < doc->new_bounding_box[1])
+      doc->new_bounding_box[1] = bounding_box[1];
+    if (bounding_box[2] > doc->new_bounding_box[2])
+      doc->new_bounding_box[2] = bounding_box[2];
+    if (bounding_box[3] > doc->new_bounding_box[3])
+      doc->new_bounding_box[3] = bounding_box[3];
+  }
+
+ /*
+  * Output the page header as needed...
+  */
+
+  if (!doc->slow_order && first_page)
+  {
+    if (!ppd || !ppd->num_filters)
+      fprintf(stderr, "PAGE: %d %d\n", doc->page,
+             doc->slow_collate ? 1 : doc->copies);
+
+    if (doc->number_up > 1)
+    {
+      printf("%%%%Page: (%d) %d\n", doc->page, doc->page);
+      printf("%%%%PageBoundingBox: %.0f %.0f %.0f %.0f\n",
+            PageLeft, PageBottom, PageRight, PageTop);
+    }
+    else
+    {
+      printf("%%%%Page: %s %d\n", pageinfo->label, doc->page);
+      printf("%%%%PageBoundingBox: %d %d %d %d\n",
+            pageinfo->bounding_box[0], pageinfo->bounding_box[1],
+            pageinfo->bounding_box[2], pageinfo->bounding_box[3]);
+    }
+  }
+
+ /*
+  * Copy any page setup commands...
+  */
+
+  if (!strncmp(line, "%%BeginPageSetup", 16))
+  {
+   /*
+    * Copy page setup commands...
+    */
+
+    doc_write(doc, line, linelen);
+
+    while ((linelen = cupsFileGetLine(fp, line, linesize)) > 0)
+    {
+      if (!strncmp(line, "%%EndPageSetup", 14))
+        break;
+      else if (!strncmp(line, "%%Include", 9))
+        continue;
+
+      if (doc->number_up == 1 && !doc->fitplot)
+       doc_write(doc, line, linelen);
+    }
+
+   /*
+    * Skip %%EndPageSetup...
+    */
+
+    if (linelen > 0)
+      linelen = cupsFileGetLine(fp, line, linesize);
+
+    if (pageinfo->num_options == 0)
+      doc_puts(doc, "%%EndPageSetup\n");
+  }
+  else if (first_page && pageinfo->num_options > 0)
+    doc_puts(doc, "%%BeginPageSetup\n");
+
+  if (first_page && pageinfo->num_options > 0)
+  {
+    int                i;                      /* Looping var */
+    ppd_option_t *option;              /* PPD option */
+    int                min_order;              /* Minimum OrderDependency value */
+    char       *doc_setup,             /* DocumentSetup commands to send */
+               *any_setup;             /* AnySetup commands to send */
+
+
+   /*
+    * Yes, figure out the minimum OrderDependency value...
+    */
+
+    if ((option = ppdFindOption(ppd, "PageRegion")) != NULL)
+      min_order = option->order;
+    else
+      min_order = 999.0f;
+
+    for (i = 0; i < pageinfo->num_options; i ++)
+      if ((option = ppdFindOption(ppd, pageinfo->options[i].name)) != NULL &&
+          option->order < min_order)
+        min_order = option->order;
+
+   /*
+    * Mark and extract them...
+    */
+
+    cupsMarkOptions(ppd, pageinfo->num_options, pageinfo->options);
+
+    doc_setup = ppdEmitString(ppd, PPD_ORDER_DOCUMENT, min_order);
+    any_setup = ppdEmitString(ppd, PPD_ORDER_ANY, min_order);
+
+   /*
+    * Then send them out...
+    */
+
+    if (doc_setup)
+      doc_puts(doc, doc_setup);
+
+    if (any_setup)
+      doc_puts(doc, any_setup);
+
+   /*
+    * Free the command strings...
+    */
+
+    if (doc_setup)
+      free(doc_setup);
+
+    if (any_setup)
+      free(any_setup);
+
+    doc_puts(doc, "%%EndPageSetup\n");
+  }
+
+ /*
+  * Prep for the start of the page description...
+  */
+
+  start_nup(doc, number, 1, bounding_box);
+
+ /*
+  * Read the rest of the page description...
+  */
+
+  level = 0;
+
+  do
+  {
+    if (level == 0 &&
+        (!strncmp(line, "%%Page:", 7) ||
+        !strncmp(line, "%%Trailer:", 10) ||
+        !strncmp(line, "%%EOF", 5)))
+      break;
+    else if (!strncmp(line, "%%BeginDocument", 15) ||
+            !strncmp(line, "%ADO_BeginApplication", 21))
+    {
+      doc_write(doc, line, linelen);
+
+      level ++;
+    }
+    else if ((!strncmp(line, "%%EndDocument", 13) ||
+             !strncmp(line, "%ADO_EndApplication", 19)) && level > 0)
+    {
+      doc_write(doc, line, linelen);
+
+      level --;
+    }
+    else if (!strncmp(line, "%%BeginBinary:", 14) ||
+             (!strncmp(line, "%%BeginData:", 12) &&
+             !strstr(line, "ASCII") && !strstr(line, "Hex")))
+    {
+     /*
+      * Copy binary data...
+      */
 
-        fputs(line, stdout);
+      int      bytes;                  /* Bytes of data */
 
-       if (!sent_prolog)
-       {
-         sent_prolog = 1;
-          do_prolog(ppd);
-       }
 
-       if (!sent_setup)
-       {
-         sent_setup = 1;
-          do_setup(ppd, Copies, Collate, slowcollate, g, b);
-       }
-      }
-      else if (!strncmp(line, "%%BoundingBox:", 14) && level == 0)
-      {
-        if (sscanf(line + 14, "%d%d%d%d", pagelbrt + 0, pagelbrt + 1,
-                  pagelbrt + 2, pagelbrt + 3) == 4)
-         memcpy(lbrt, pagelbrt, sizeof(lbrt));
-      }
-      else if (!strncmp(line, "%%Page:", 7) && level == 0)
-        break;
-      else if (!strncmp(line, "%%IncludeFeature:", 17) && level == 0 &&
-               NUp == 1 && !FitPlot)
-        include_feature(ppd, line, NULL);
-      else if (!strncmp(line, "%%BeginBinary:", 14) ||
-               (!strncmp(line, "%%BeginData:", 12) &&
-               !strstr(line, "ASCII") && !strstr(line, "Hex")))
-      {
-       /*
-        * Copy binary data...
-       */
+      doc_write(doc, line, linelen);
 
-        tbytes = atoi(strchr(line, ':') + 1);
-       fputs(line, stdout);
+      bytes = atoi(strchr(line, ':') + 1);
+
+      while (bytes > 0)
+      {
+       if (bytes > linesize)
+         linelen = cupsFileRead(fp, line, linesize);
+       else
+         linelen = cupsFileRead(fp, line, bytes);
 
-       while (tbytes > 0)
+       if (linelen < 1)
        {
-         if (tbytes > sizeof(line))
-           nbytes = fread(line, 1, sizeof(line), fp);
-         else
-           nbytes = fread(line, 1, tbytes, fp);
+         line[0] = '\0';
+         perror("ERROR: Early end-of-file while reading binary data");
+         return (0);
+       }
 
-          if (nbytes < 1)
-         {
-           perror("ERROR: Early end-of-file while reading binary data");
-           return (1);
-         }
+        doc_write(doc, line, linelen);
 
-         fwrite(line, 1, nbytes, stdout);
-         tbytes -= nbytes;
-       }
+       bytes -= linelen;
       }
-      else if (strncmp(line, "%%Pages:", 8) != 0)
-        fwrite(line, 1, len, stdout);
     }
+    else
+      doc_write(doc, line, linelen);
+  }
+  while ((linelen = cupsFileGetLine(fp, line, linesize)) > 0);
 
  /*
-    * Make sure we have the prolog and setup commands written...
-    */
+ /*
+  * Finish up this page and return...
+  */
 
-    if (!sent_prolog)
-    {
-      puts("%%BeginProlog");
+  end_nup(doc, number);
 
-      sent_prolog = 1;
-      do_prolog(ppd);
+  pageinfo->length = cupsFileTell(doc->temp) - pageinfo->offset;
 
-      puts("%%EndProlog");
-    }
+  return (linelen);
+}
 
-    if (!sent_setup)
-    {
-      puts("%%BeginSetup");
 
-      sent_setup = 1;
-      do_setup(ppd, Copies, Collate, slowcollate, g, b);
+/*
+ * 'copy_prolog()' - Copy the document prolog section...
+ *
+ * This function expects "line" to be filled with a %%BeginProlog comment line.
+ * On return, "line" will contain the next line in the file, if any.
+ */
 
-      puts("%%EndSetup");
-    }
+static size_t                          /* O - Length of next line */
+copy_prolog(cups_file_t  *fp,          /* I - File to read from */
+            pstops_doc_t *doc,         /* I - Document info */
+            ppd_file_t   *ppd,         /* I - PPD file */
+           char         *line,         /* I - Line buffer */
+           size_t       linelen,       /* I - Length of initial line */
+           size_t       linesize)      /* I - Size of line buffer */
+{
+  while (strncmp(line, "%%BeginProlog", 13))
+  {
+    if (!strncmp(line, "%%BeginSetup", 12) || !strncmp(line, "%%Page:", 7))
+      break;
 
-    if (!sent_espsp && UseESPsp)
-    {
-     /*
-      * Send ESPshowpage stuff...
-      */
+    fwrite(line, 1, linelen, stdout);
 
-      sent_espsp = 1;
+    if ((linelen = cupsFileGetLine(fp, line, linesize)) == 0)
+      break;
+  }
 
-      puts("userdict/ESPshowpage/showpage load put\n"
-          "userdict/showpage{}put");
-    }
+  puts("%%BeginProlog");
 
-   /*
-    * Write the page and label prologs...
-    */
+  do_prolog(doc, ppd);
 
-    if (NUp == 2 || NUp == 6)
+  if (!strncmp(line, "%%BeginProlog", 13))
+  {
+    while ((linelen = cupsFileGetLine(fp, line, linesize)) > 0)
     {
-     /*
-      * For 2- and 6-up output, rotate the labels to match the orientation
-      * of the pages...
-      */
+      if (!strncmp(line, "%%EndProlog", 11) ||
+          !strncmp(line, "%%BeginSetup", 12) ||
+          !strncmp(line, "%%Page:", 7))
+        break;
 
-      if (Orientation & 1)
-       WriteLabelProlog(val, PageBottom, PageWidth - PageLength + PageTop,
-                        PageLength);
-      else
-       WriteLabelProlog(val, PageLeft, PageRight, PageLength);
+      fwrite(line, 1, linelen, stdout);
     }
+
+    if (!strncmp(line, "%%EndProlog", 11))
+      linelen = cupsFileGetLine(fp, line, linesize);
     else
-      WriteLabelProlog(val, PageBottom, PageTop, PageWidth);
+      fputs("ERROR: Missing %%EndProlog!\n", stderr);
+  }
 
-   /*
-    * Then read all of the pages, filtering as needed...
-    */
+  puts("%%EndProlog");
 
-    for (page = 1, real_page = 1, pageinfo = NULL;;)
-    {
-      if (!strncmp(line, "%%", 2))
-        fprintf(stderr, "DEBUG: %d %s", level, line);
+  return (linelen);
+}
 
-      if (!strncmp(line, "%%BeginDocument:", 16) ||
-          !strncmp(line, "%%BeginDocument ", 16) ||    /* Adobe Acrobat BUG */
-         !strncmp(line, "%ADO_BeginApplication", 21))
-      {
-        level ++;
 
-       if (!sloworder)
-          fputs(line, stdout);
+/*
+ * 'copy_setup()' - Copy the document setup section...
+ *
+ * This function expects "line" to be filled with a %%BeginSetup comment line.
+ * On return, "line" will contain the next line in the file, if any.
+ */
 
-       if (slowcollate || sloworder)
-         cupsFilePuts(temp, line);
-      }
-      else if ((!strncmp(line, "%%EndDocument", 13) ||
-               !strncmp(line, "%ADO_EndApplication", 19)) && level > 0)
-      {
-        level --;
+static size_t                          /* O - Length of next line */
+copy_setup(cups_file_t  *fp,           /* I - File to read from */
+           pstops_doc_t *doc,          /* I - Document info */
+           ppd_file_t   *ppd,          /* I - PPD file */
+          char         *line,          /* I - Line buffer */
+          size_t       linelen,        /* I - Length of initial line */
+          size_t       linesize)       /* I - Size of line buffer */
+{
+  while (strncmp(line, "%%BeginSetup", 12))
+  {
+    if (!strncmp(line, "%%Page:", 7))
+      break;
 
-       if (!sloworder)
-          fputs(line, stdout);
+    fwrite(line, 1, linelen, stdout);
 
-       if (slowcollate || sloworder)
-         cupsFilePuts(temp, line);
-      }
-      else if (!strcmp(line, "\004") && len == 1)
+    if ((linelen = cupsFileGetLine(fp, line, linesize)) == 0)
+      break;
+  }
+
+  if (!strncmp(line, "%%BeginSetup", 12))
+  {
+    while (strncmp(line, "%%EndSetup", 10))
+    {
+      if (!strncmp(line, "%%Page:", 7))
         break;
-      else if (!strncmp(line, "%%EOF", 5) && level == 0)
-      {
-        fputs("DEBUG: Saw EOF!\n", stderr);
-        saweof = 1;
-       break;
-      }
-      else if (!strncmp(line, "%%Page:", 7) && level == 0)
+      else if (!strncmp(line, "%%IncludeFeature:", 17))
       {
-       if (!check_range(real_page))
-       {
-         while (!feof(fp))
-         {
-           len = sizeof(line);
-           if (psgets(line, &len, fp) == NULL)
-             break;
-
-           if (!strncmp(line, "%%", 2))
-              fprintf(stderr, "DEBUG: %d %s", level, line);
-
-           if (!strncmp(line, "%%BeginDocument:", 16) ||
-               !strncmp(line, "%%BeginDocument ", 16) || /* Adobe Acrobat BUG */
-               !strncmp(line, "%ADO_BeginApplication", 21))
-              level ++;
-           else if ((!strncmp(line, "%%EndDocument", 13) ||
-                     !strncmp(line, "%ADO_EndApplication", 19)) && level > 0)
-              level --;
-           else if (!strncmp(line, "%%Page:", 7) && level == 0)
-           {
-             real_page ++;
-             break;
-           }
-           else if (!strncmp(line, "%%BeginBinary:", 14) ||
-                    (!strncmp(line, "%%BeginData:", 12) &&
-                     !strstr(line, "ASCII") && !strstr(line, "Hex")))
-           {
-            /*
-              * Skip binary data...
-             */
-
-              tbytes = atoi(strchr(line, ':') + 1);
-
-             while (tbytes > 0)
-             {
-               if (tbytes > sizeof(line))
-                 nbytes = fread(line, 1, sizeof(line), fp);
-               else
-                 nbytes = fread(line, 1, tbytes, fp);
-
-               if (nbytes < 1)
-               {
-                 perror("ERROR: Early end-of-file while reading binary data");
-                 return (1);
-               }
-
-               tbytes -= nbytes;
-             }
-           }
-          }
-
-          continue;
-        }
+       /*
+       * %%IncludeFeature: *MainKeyword OptionKeyword
+       */
 
-        if (!sloworder && NumPages > 0)
-         end_nup(NumPages - 1);
+        if (doc->number_up == 1 && !doc->fitplot)
+         doc->num_options = include_feature(ppd, line, doc->num_options,
+                                             &(doc->options));
+      }
+      else
+        fwrite(line, 1, linelen, stdout);
 
-        if (sscanf(line, "%%%%Page:%255s%*d", label) != 1)
-         sprintf(label, "%d", page);
+      if ((linelen = cupsFileGetLine(fp, line, linesize)) == 0)
+       break;
+    }
 
-       if (slowcollate || sloworder)
-       {
-         pageinfo = add_page(label, cupsFileTell(temp), lbrt);
+    if (!strncmp(line, "%%EndSetup", 10))
+      linelen = cupsFileGetLine(fp, line, linesize);
+    else
+      fputs("ERROR: Missing %%EndSetup!\n", stderr);
+  }
+  else
+    puts("%%BeginSetup");
 
-          if (ap_input_slot || ap_manual_feed)
-         {
-           if (page == 0)
-           {
-             pageinfo->input_slot  = ap_input_slot;
-             pageinfo->manual_feed = ap_manual_feed;
-           }
-           else if (page == (1 + Duplex))
-           {
-             pageinfo->input_slot  = input_slot;
-             pageinfo->manual_feed = manual_feed;
-           }
-         }
-       }
-       else
-         pageinfo = NULL;
+  do_setup(doc, ppd);
 
-        if (!sloworder)
-       {
-         if (is_first_page(NumPages))
-         {
-           if (ppd == NULL || ppd->num_filters == 0)
-             fprintf(stderr, "PAGE: %d %d\n", page, slowcollate ? 1 : Copies);
-
-            if (NUp > 1)
-             printf("%%%%Page: %d %d\n", page, page);
-           else
-              printf("%%%%Page: %s %d\n", label, page);
-
-            if (ap_input_slot || ap_manual_feed)
-           {
-             if (page == 0)
-             {
-               if (ap_input_slot)
-                 ppdMarkOption(ppd, "InputSlot", ap_input_slot);
-               if (ap_manual_feed)
-                 ppdMarkOption(ppd, "ManualFeed", ap_manual_feed);
-             }
-             else if (page == (1 + Duplex))
-             {
-               if (input_slot)
-                 ppdMarkOption(ppd, "InputSlot", input_slot);
-               if (manual_feed)
-                 ppdMarkOption(ppd, "ManualFeed", manual_feed);
-             }
-
-              ppdEmitAfterOrder(ppd, stdout, PPD_ORDER_DOCUMENT, 1, min_order);
-              ppdEmitAfterOrder(ppd, stdout, PPD_ORDER_ANY, 1, min_order);
-           }
-
-           page ++;
-           ppdEmit(ppd, stdout, PPD_ORDER_PAGE);
-         }
+  puts("%%EndSetup");
 
-         start_nup(NumPages, 1, lbrt);
-       }
+  return (linelen);
+}
 
-       NumPages ++;
-       real_page ++;
-      }
-      else if (!strncmp(line, "%%PageBoundingBox:", 18) && level == 0 &&
-               pageinfo)
-      {
-        if (sscanf(line + 18, "%d%d%d%d", pagelbrt + 0, pagelbrt + 1,
-                  pagelbrt + 2, pagelbrt + 3) == 4)
-         memcpy(pageinfo->lbrt, pagelbrt, sizeof(pageinfo->lbrt));
-      }
-      else if (!strncmp(line, "%%BeginBinary:", 14) ||
-               (!strncmp(line, "%%BeginData:", 12) &&
-               !strstr(line, "ASCII") && !strstr(line, "Hex")))
-      {
-       /*
-        * Copy binary data...
-       */
 
-        tbytes = atoi(strchr(line, ':') + 1);
+/*
+ * 'copy_trailer()' - Copy the document trailer...
+ *
+ * This function expects "line" to be filled with a %%Trailer comment line.
+ * On return, "line" will contain the next line in the file, if any.
+ */
 
-       if (!sloworder)
-         fputs(line, stdout);
-       if (slowcollate || sloworder)
-         cupsFilePuts(temp, line);
+static size_t                          /* O - Length of next line */
+copy_trailer(cups_file_t  *fp,         /* I - File to read from */
+             pstops_doc_t *doc,                /* I - Document info */
+             ppd_file_t   *ppd,                /* I - PPD file */
+            int          number,       /* I - Number of pages */
+            char         *line,        /* I - Line buffer */
+            size_t       linelen,      /* I - Length of initial line */
+            size_t       linesize)     /* I - Size of line buffer */
+{
+ /*
+  * Write the trailer comments...
+  */
 
-       while (tbytes > 0)
-       {
-         if (tbytes > sizeof(line))
-           nbytes = fread(line, 1, sizeof(line), fp);
-         else
-           nbytes = fread(line, 1, tbytes, fp);
+  puts("%%Trailer");
 
-          if (nbytes < 1)
-         {
-           perror("ERROR: Early end-of-file while reading binary data");
-           return (1);
-         }
+  while (linelen > 0)
+  {
+    if (!strncmp(line, "%%EOF", 5))
+      break;
+    else if (strncmp(line, "%%Trailer", 9) &&
+             strncmp(line, "%%Pages:", 8) &&
+             strncmp(line, "%%BoundingBox:", 14))
+      fwrite(line, 1, linelen, stdout);
 
-          if (!sloworder)
-           fwrite(line, 1, nbytes, stdout);
+    linelen = cupsFileGetLine(fp, line, linesize);
+  }
 
-          if (slowcollate || sloworder)
-           cupsFileWrite(temp, line, nbytes);
+  fprintf(stderr, "DEBUG: Wrote %d pages...\n", number);
 
-         tbytes -= nbytes;
-       }
-      }
-      else if (!strncmp(line, "%%IncludeFeature:", 17) && level == 0 &&
-               NUp == 1 && !FitPlot)
-      {
-       /*
-        * Embed printer commands as needed...
-       */
+  printf("%%%%Pages: %d\n", number);
+  if (doc->number_up > 1 || doc->fitplot)
+    printf("%%%%BoundingBox: %.0f %.0f %.0f %.0f\n",
+          PageLeft, PageBottom, PageRight, PageTop);
+  else
+    printf("%%%%BoundingBox: %d %d %d %d\n",
+          doc->new_bounding_box[0], doc->new_bounding_box[1],
+          doc->new_bounding_box[2], doc->new_bounding_box[3]);
 
-        if (level == 0 && NUp == 1)
-       {
-         include_feature(ppd, line, NULL);
+  return (linelen);
+}
 
-          if (slowcollate || sloworder)
-           include_feature(ppd, line, temp);
-       }
-      }
-      else if (!strncmp(line, "%%BeginFeature:", 15) && (NUp > 1 || FitPlot))
-      {
-       /*
-        * Strip page options for N-up > 1 or "fitplot"...
-       */
 
-        do
-       {
-         len = sizeof(line);
-         if (psgets(line, &len, fp) == NULL)
-           break;
-        }
-       while (strncmp(line, "%%EndFeature", 12));
-      }
-      else if (!strncmp(line, "%%Trailer", 9) && level == 0)
-      {
-        fputs("DEBUG: Saw Trailer!\n", stderr);
-        break;
-      }
-      else
-      {
-        if (!sloworder)
-          fwrite(line, 1, len, stdout);
+/*
+ * 'do_prolog()' - Send the necessary document prolog commands...
+ */
 
-       if (slowcollate || sloworder)
-         cupsFileWrite(temp, line, len);
-      }
+static void
+do_prolog(pstops_doc_t *doc,           /* I - Document information */
+          ppd_file_t   *ppd)           /* I - PPD file */
+{
+ /*
+  * Send the document prolog commands...
+  */
 
-     /*
-      * Get next line from file...
-      */
+  if (ppd && ppd->patches)
+  {
+    puts("%%BeginFeature: *JobPatchFile 1");
+    puts(ppd->patches);
+    puts("%%EndFeature");
+  }
 
-      if (pageinfo)
-       pageinfo->length = cupsFileTell(temp) - pageinfo->offset;
+  ppdEmit(ppd, stdout, PPD_ORDER_PROLOG);
 
-      len = sizeof(line);
-      if (psgets(line, &len, fp) == NULL)
-        break;
-    }
+ /*
+  * Define ESPshowpage here so that applications that define their
+  * own procedure to do a showpage pick it up...
+  */
 
-    if (!sloworder)
-    {
-      end_nup(NumPages - 1);
+  if (doc->use_ESPshowpage)
+    puts("userdict/ESPshowpage/showpage load put\n"
+        "userdict/showpage{}put");
 
-      if (is_not_last_page(NumPages))
-      {
-       start_nup(NUp - 1, 0, lbrt);
-        end_nup(NUp - 1);
-      }
+}
 
-      if (slowduplex && !(page & 1))
-      {
-       /*
-        * Make sure we have an even number of pages...
-       */
 
-       if (ppd == NULL || ppd->num_filters == 0)
-         fprintf(stderr, "PAGE: %d %d\n", page, slowcollate ? 1 : Copies);
+/*
+ * 'do_setup()' - Send the necessary document setup commands...
+ */
 
-        printf("%%%%Page: %d %d\n", page, page);
-       page ++;
-       ppdEmit(ppd, stdout, PPD_ORDER_PAGE);
+static void
+do_setup(pstops_doc_t *doc,            /* I - Document information */
+         ppd_file_t   *ppd)            /* I - PPD file */
+{
+ /*
+  * Mark any options from %%IncludeFeature: comments...
+  */
 
-       start_nup(NUp - 1, 0, lbrt);
-       puts("showpage");
-        end_nup(NUp - 1);
-      }
-    }
+  cupsMarkOptions(ppd, doc->num_options, doc->options);
 
-    if (slowcollate || sloworder)
-    {
-      if (!sloworder)
-      {
-        while (Copies > 1)
-       {
-         for (number = 0, pageinfo = (page_info_t *)cupsArrayFirst(Pages);
-              number < NumPages && pageinfo;
-              number ++, pageinfo = (page_info_t *)cupsArrayNext(Pages))
-         {
-           if (is_first_page(number))
-           {
-             if (ppd == NULL || ppd->num_filters == 0)
-               fprintf(stderr, "PAGE: %d 1\n", page);
-
-              if (NUp == 1)
-               printf("%%%%Page: %s %d\n", pageinfo->label, page);
-              else
-               printf("%%%%Page: %d %d\n", page, page);
-
-              if (pageinfo->input_slot || pageinfo->manual_feed)
-             {
-               if (pageinfo->input_slot)
-                 ppdMarkOption(ppd, "InputSlot", pageinfo->input_slot);
-               if (pageinfo->manual_feed)
-                 ppdMarkOption(ppd, "ManualFeed", pageinfo->manual_feed);
-
-               ppdEmitAfterOrder(ppd, stdout, PPD_ORDER_DOCUMENT, 1, min_order);
-               ppdEmitAfterOrder(ppd, stdout, PPD_ORDER_ANY, 1, min_order);
-              }
-
-             page ++;
-             ppdEmit(ppd, stdout, PPD_ORDER_PAGE);
-           }
-
-           start_nup(number, 1, pageinfo->lbrt);
-           copy_bytes(temp, pageinfo->offset, pageinfo->length);
-           end_nup(number);
-         }
+ /*
+  * Send all the printer-specific setup commands...
+  */
 
-          if (is_not_last_page(NumPages))
-         {
-           start_nup(NUp - 1, 0, lbrt);
-            end_nup(NUp - 1);
-         }
+  ppdEmit(ppd, stdout, PPD_ORDER_DOCUMENT);
+  ppdEmit(ppd, stdout, PPD_ORDER_ANY);
 
-         if (slowduplex && !(page & 1))
-         {
-          /*
-            * Make sure we have an even number of pages...
-           */
+ /*
+  * Set the number of copies for the job...
+  */
 
-           if (ppd == NULL || ppd->num_filters == 0)
-             fprintf(stderr, "PAGE: %d 1\n", page);
+  if (doc->copies != 1 && (!doc->collate || !doc->slow_collate))
+  {
+    printf("%%RBIBeginNonPPDFeature: *NumCopies %d\n", doc->copies);
+    printf("%d/languagelevel where{pop languagelevel 2 ge}{false}ifelse\n"
+           "{1 dict begin/NumCopies exch def currentdict end setpagedevice}\n"
+          "{userdict/#copies 3 -1 roll put}ifelse\n", doc->copies);
+    puts("%RBIEndNonPPDFeature");
+  }
 
-            printf("%%%%Page: %d %d\n", page, page);
-           page ++;
-           ppdEmit(ppd, stdout, PPD_ORDER_PAGE);
+ /*
+  * If we are doing N-up printing, disable setpagedevice...
+  */
 
-           start_nup(NUp - 1, 0, lbrt);
-           puts("showpage");
-            end_nup(NUp - 1);
-         }
+  if (doc->number_up > 1)
+    puts("userdict/setpagedevice{pop}bind put");
 
-         Copies --;
-       }
-      }
-      else
-      {
-        page_count = (NumPages + NUp - 1) / NUp;
-       copy       = 0;
+ /*
+  * Changes to the transfer function must be made AFTER any
+  * setpagedevice code...
+  */
 
-        fprintf(stderr, "DEBUG: page_count=%d\n", page_count);
+  if (doc->gamma != 1.0f || doc->brightness != 1.0f)
+    printf("{ neg 1 add dup 0 lt { pop 1 } { %.3f exp neg 1 add } "
+          "ifelse %.3f mul } bind settransfer\n", doc->gamma,
+          doc->brightness);
 
-        do
-       {
-         if (slowduplex && (page_count & 1))
-            basepage = page_count;
-         else
-           basepage = page_count - 1;
+ /*
+  * Make sure we have rectclip and rectstroke procedures of some sort...
+  */
 
-         for (; basepage >= 0; basepage --)
-         {
-           if (ppd == NULL || ppd->num_filters == 0)
-             fprintf(stderr, "PAGE: %d %d\n", page,
-                     slowcollate ? 1 : Copies);
-
-           pageinfo = (page_info_t *)cupsArrayIndex(Pages, basepage);
-
-            if (NUp == 1)
-              printf("%%%%Page: %s %d\n", pageinfo->label, page);
-           else
-              printf("%%%%Page: %d %d\n", page, page);
-
-            if (pageinfo->input_slot || pageinfo->manual_feed)
-           {
-             if (pageinfo->input_slot)
-               ppdMarkOption(ppd, "InputSlot", pageinfo->input_slot);
-             if (pageinfo->manual_feed)
-               ppdMarkOption(ppd, "ManualFeed", pageinfo->manual_feed);
-
-              ppdEmitAfterOrder(ppd, stdout, PPD_ORDER_DOCUMENT, 1, min_order);
-              ppdEmitAfterOrder(ppd, stdout, PPD_ORDER_ANY, 1, min_order);
-            }
-
-           page ++;
-
-           ppdEmit(ppd, stdout, PPD_ORDER_PAGE);
-
-            if (basepage >= page_count)
-           {
-             start_nup(NUp - 1, 0, pageinfo->lbrt);
-             puts("showpage");
-              end_nup(NUp - 1);
-           }
-           else
-           {
-             for (subpage = 0, number = basepage * NUp;
-                  subpage < NUp && number < NumPages;
-                  subpage ++, number ++)
-             {
-               pageinfo = (page_info_t *)cupsArrayIndex(Pages, number);
-
-               start_nup(number, 1, pageinfo->lbrt);
-               copy_bytes(temp, pageinfo->offset, pageinfo->length);
-               end_nup(number);
-             }
-
-              if (is_not_last_page(number))
-             {
-               start_nup(NUp - 1, 0, lbrt);
-               end_nup(NUp - 1);
-             }
-           }
-         }
+  WriteCommon();
 
-         copy ++;
-       }
-       while (copy < Copies && slowcollate);
-      }
-    }
+ /*
+  * Write the page and label prologs...
+  */
 
+  if (doc->number_up == 2 || doc->number_up == 6)
+  {
    /*
-    * Copy the trailer, if any...
+    * For 2- and 6-up output, rotate the labels to match the orientation
+    * of the pages...
     */
 
-    puts("%%Trailer");
-    printf("%%%%Pages: %d\n", page - 1);
+    if (Orientation & 1)
+      WriteLabelProlog(doc->page_label, PageBottom,
+                       PageWidth - PageLength + PageTop, PageLength);
+    else
+      WriteLabelProlog(doc->page_label, PageLeft, PageRight, PageLength);
+  }
+  else
+    WriteLabelProlog(doc->page_label, PageBottom, PageTop, PageWidth);
+}
+
 
-    if (UseESPsp)
-      puts("userdict/showpage/ESPshowpage load put\n");
+/*
+ * 'doc_printf()' - Send a formatted string to stdout and/or the temp file.
+ *
+ * This function should be used for all page-level output that is affected
+ * by ordering, collation, etc.
+ */
 
-    while (!feof(fp))
-    {
-      len = sizeof(line);
-      if (psgets(line, &len, fp) == NULL)
-        break;
+static void
+doc_printf(pstops_doc_t *doc,          /* I - Document information */
+           const char   *format,       /* I - Printf-style format string */
+          ...)                         /* I - Additional arguments as needed */
+{
+  va_list      ap;                     /* Pointer to arguments */
+  char         buffer[1024];           /* Output buffer */
+  size_t       bytes;                  /* Number of bytes to write */
 
-      if (!(!strcmp(line, "\004") && len == 1) &&
-          strncmp(line, "%%Pages:", 8) != 0)
-        fwrite(line, 1, len, stdout);
 
-      if (!strncmp(line, "%%EOF", 5))
-      {
-        fputs("DEBUG: Saw EOF!\n", stderr);
-        saweof = 1;
-       break;
-      }
-    }
-  }
-  else
-  {
-   /*
-    * No DSC comments - write any page commands and then the rest of the file...
-    */
+  va_start(ap, format);
+  bytes = vsnprintf(buffer, sizeof(buffer), format, ap);
+  va_end(ap);
+
+  if (bytes > sizeof(buffer))
+  {
+    fprintf(stderr,
+            "ERROR: doc_printf overflow (%d bytes) detected, aborting!\n",
+            (int)bytes);
+    exit(1);
+  }
+
+  doc_write(doc, buffer, bytes);
+}
+
+
+/*
+ * 'doc_puts()' - Send a nul-terminated string to stdout and/or the temp file.
+ *
+ * This function should be used for all page-level output that is affected
+ * by ordering, collation, etc.
+ */
+
+static void
+doc_puts(pstops_doc_t *doc,            /* I - Document information */
+         const char   *s)              /* I - String to send */
+{
+  doc_write(doc, s, strlen(s));
+}
+
 
-    if (slowcollate && Copies > 1)
-      printf("%%%%Pages: %d\n", Copies);
-    else
-      puts("%%Pages: 1");
+/*
+ * 'doc_write()' - Send data to stdout and/or the temp file.
+ */
 
-    if (UseESPsp)
-      puts("userdict/ESPshowpage/showpage load put\n"
-          "userdict/showpage{}put");
+static void
+doc_write(pstops_doc_t *doc,           /* I - Document information */
+          const char   *s,             /* I - Data to send */
+         size_t       len)             /* I - Number of bytes to send */
+{
+  if (!doc->slow_order)
+    fwrite(s, 1, len, stdout);
 
-    puts("%%BeginProlog");
-    WriteLabelProlog(val, PageBottom, PageTop, PageWidth);
-    do_prolog(ppd);
-    puts("%%EndProlog");
+  if (doc->temp)
+    cupsFileWrite(doc->temp, s, len);
+}
 
-    puts("%%BeginSetup");
-    do_setup(ppd, Copies, Collate, slowcollate, g, b);
-    puts("%%EndSetup");
 
-    if (ppd == NULL || ppd->num_filters == 0)
-      fprintf(stderr, "PAGE: 1 %d\n", slowcollate ? 1 : Copies);
+/*
+ * 'end_nup()' - End processing for N-up printing...
+ */
 
-    ppdEmit(ppd, stdout, PPD_ORDER_PAGE);
+static void
+end_nup(pstops_doc_t *doc,             /* I - Document information */
+        int          number)           /* I - Page number */
+{
+  if (doc->mirror || Orientation || doc->number_up > 1)
+    puts("userdict /ESPsave get restore");
 
-    saweof = 1;
+  switch (doc->number_up)
+  {
+    case 1 :
+       if (doc->use_ESPshowpage)
+       {
+         WriteLabels(Orientation);
+          puts("ESPshowpage");
+       }
+       break;
 
-    while ((nbytes = fread(line, 1, sizeof(line), fp)) > 0)
-    {
-      fwrite(line, 1, nbytes, stdout);
+    case 2 :
+    case 6 :
+       if (is_last_page(number) && doc->use_ESPshowpage)
+       {
+         if (Orientation & 1)
+         {
+          /*
+           * Rotate the labels back to portrait...
+           */
 
-      if (slowcollate)
-       cupsFileWrite(temp, line, nbytes);
-    }
+           WriteLabels(Orientation - 1);
+         }
+         else if (Orientation == 0)
+         {
+          /*
+           * Rotate the labels to landscape...
+           */
 
-    if (UseESPsp)
-    {
-      WriteLabels(Orientation);
-      puts("ESPshowpage");
-    }
+           WriteLabels(doc->normal_landscape ? 1 : 3);
+         }
+         else
+         {
+          /*
+           * Rotate the labels to landscape...
+           */
 
-    if (slowcollate)
-    {
-      while (Copies > 1)
-      {
-       if (ppd == NULL || ppd->num_filters == 0)
-         fputs("PAGE: 1 1\n", stderr);
+           WriteLabels(doc->normal_landscape ? 3 : 1);
+         }
 
-        ppdEmit(ppd, stdout, PPD_ORDER_PAGE);
-       copy_bytes(temp, 0, 0);
-       Copies --;
+          puts("ESPshowpage");
+       }
+        break;
 
-        if (UseESPsp)
+    default :
+       if (is_last_page(number) && doc->use_ESPshowpage)
        {
          WriteLabels(Orientation);
           puts("ESPshowpage");
        }
-      }
-    }
+        break;
   }
 
- /*
-  * Send %%EOF if needed...
-  */
+  fflush(stdout);
+}
+
+
+/*
+ * 'include_feature()' - Include a printer option/feature command.
+ */
+
+static int                             /* O  - New number of options */
+include_feature(
+    ppd_file_t    *ppd,                        /* I  - PPD file */
+    const char    *line,               /* I  - DSC line */
+    int           num_options,         /* I  - Number of options */
+    cups_option_t **options)           /* IO - Options */
+{
+  char         name[255],              /* Option name */
+               value[255];             /* Option value */
+  ppd_option_t *option;                /* Option in file */
+  ppd_choice_t *choice;                /* Choice */
 
-  if (!saweof)
-    puts("%%EOF");
 
  /*
-  * End the job with the appropriate JCL command or CTRL-D otherwise.
+  * Get the "%%IncludeFeature: *Keyword OptionKeyword" values...
   */
 
-  if (emit_jcl)
+  if (sscanf(line + 17, "%254s%254s", name, value) != 2)
   {
-    if (ppd && ppd->jcl_end)
-      ppdEmitJCLEnd(ppd, stdout);
-    else
-      putchar(0x04);
+    fputs("ERROR: Bad %%IncludeFeature: comment!\n", stderr);
+    return (num_options);
   }
 
  /*
-  * Close files and remove the temporary file if needed...
+  * Find the option and choice...
   */
 
-  if (slowcollate || sloworder)
+  if ((option = ppdFindOption(ppd, name + 1)) == NULL)
   {
-    cupsFileClose(temp);
-    unlink(tempfile);
+    fprintf(stderr, "WARNING: Unknown option \"%s\"!\n", name + 1);
+    return (num_options);
   }
 
-  ppdClose(ppd);
+  if (option->section == PPD_ORDER_EXIT ||
+      option->section == PPD_ORDER_JCL)
+  {
+    fprintf(stderr, "WARNING: Option \"%s\" cannot be included via "
+                    "IncludeFeature!\n", name + 1);
+    return (num_options);
+  }
 
-  if (fp != stdin)
-    fclose(fp);
+  if ((choice = ppdFindChoice(option, value)) == NULL)
+  {
+    fprintf(stderr, "WARNING: Unknown choice \"%s\" for option \"%s\"!\n",
+            value, name + 1);
+    return (num_options);
+  }
 
-  return (0);
+ /*
+  * Add the option to the option array and return...
+  */
+
+  return (cupsAddOption(name + 1, value, num_options, options));
 }
 
 
 /*
- * 'check_range()' - Check to see if the current page is selected for
- *                   printing.
+ * 'parse_text()' - Parse a text value in a comment...
+ *
+ * This function parses a DSC text value as defined on page 36 of the
+ * DSC specification.  Text values are either surrounded by parenthesis
+ * or whitespace-delimited.
+ *
+ * The value returned is the literal characters for the entire text
+ * string, including any parenthesis and escape characters.
  */
 
-static int             /* O - 1 if selected, 0 otherwise */
-check_range(int page)  /* I - Page number */
+static char *                          /* O - Value or NULL on error */
+parse_text(const char *start,          /* I - Start of text value */
+           char       **end,           /* O - End of text value */
+          char       *buffer,          /* I - Buffer */
+           size_t     bufsize)         /* I - Size of buffer */
 {
-  const char   *range;         /* Pointer into range string */
-  int          lower, upper;   /* Lower and upper page numbers */
+  char *bufptr,                        /* Pointer in buffer */
+       *bufend;                        /* End of buffer */
+  int  level;                          /* Parenthesis level */
 
 
-  if (PageSet != NULL)
-  {
-   /*
-    * See if we only print even or odd pages...
-    */
+ /*
+  * Skip leading whitespace...
+  */
 
-    if (!strcasecmp(PageSet, "even") && ((page - 1) % (NUp << 1)) <  NUp)
-      return (0);
-    if (!strcasecmp(PageSet, "odd") && ((page - 1) % (NUp << 1)) >= NUp)
-      return (0);
-  }
+  while (isspace(*start & 255))
+    start ++;
+
+ /*
+  * Then copy the value...
+  */
 
-  if (PageRanges == NULL)
-    return (1);                /* No range, print all pages... */
+  level  = 0;
+  bufptr = buffer;
+  bufend = buffer + bufsize - 1;
 
-  for (range = PageRanges; *range != '\0';)
+  while (bufptr < bufend)
   {
-    if (*range == '-')
-    {
-      lower = 1;
-      range ++;
-      upper = strtol(range, (char **)&range, 10);
-    }
-    else
-    {
-      lower = strtol(range, (char **)&range, 10);
+    if (isspace(*start & 255) && !level)
+      break;
 
-      if (*range == '-')
+    *bufptr++ = *start;
+
+    if (*start == '(')
+      level ++;
+    else if (*start == ')')
+    {
+      if (!level)
       {
-        range ++;
-       if (!isdigit(*range & 255))
-         upper = 65535;
-       else
-         upper = strtol(range, (char **)&range, 10);
+        start ++;
+        break;
       }
       else
-        upper = lower;
+        level --;
     }
+    else if (*start == '\\')
+    {
+     /*
+      * Copy escaped character...
+      */
 
-    if (page >= lower && page <= upper)
-      return (1);
+      int      i;                      /* Looping var */
 
-    if (*range == ',')
-      range ++;
-    else
-      break;
+
+      for (i = 1;
+           i <= 3 && isdigit(start[i] & 255) && bufptr < bufend;
+          *bufptr++ = start[i], i ++);
+    }
+
+    start ++;
   }
 
-  return (0);
+  *bufptr = '\0';
+
+ /*
+  * Return the value and new pointer into the line...
+  */
+
+  if (end)
+    *end = (char *)start;
+
+  if (bufptr == bufend)
+    return (NULL);
+  else
+    return (buffer);
 }
 
 
 /*
- * 'add_page()' - Add a page to the Pages array...
+ * 'set_pstops_options()' - Set pstops options...
  */
 
-static page_info_t *                   /* O - New page info object */
-add_page(const char *label,            /* I - Page label */
-         off_t      offset,            /* I - Offset in file */
-        const int  *lbrt)              /* I - BoundingBox for page */
+static void
+set_pstops_options(
+    pstops_doc_t  *doc,                        /* I - Document information */
+    ppd_file_t    *ppd,                        /* I - PPD file */
+    char          *argv[],             /* I - Command-line arguments */
+    int           num_options,         /* I - Number of options */
+    cups_option_t *options)            /* I - Options */
 {
-  page_info_t  *pageinfo;              /* New page info object */
-
-
-  if (!Pages)
-    Pages = cupsArrayNew(NULL, NULL);
+  const char   *val;                   /* Option value */
+  int          intval;                 /* Integer option value */
+  ppd_attr_t   *attr;                  /* PPD attribute */
+  ppd_option_t *option;                /* PPD option */
+  ppd_choice_t *choice;                /* PPD choice */
 
-  if (!Pages)
-  {
-    fprintf(stderr, "EMERG: Unable to allocate memory for pages array: %s\n",
-            strerror(errno));
-    exit(1);
-  }
 
-  if ((pageinfo = calloc(1, sizeof(page_info_t))) == NULL)
-  {
-    fprintf(stderr, "EMERG: Unable to allocate memory for page info: %s\n",
-            strerror(errno));
-    exit(1);
-  }
+ /*
+  * Initialize document information structure...
+  */
 
-  pageinfo->label  = strdup(label);
-  pageinfo->offset = offset;
+  memset(doc, 0, sizeof(pstops_doc_t));
 
-  memcpy(pageinfo->lbrt, lbrt, sizeof(pageinfo->lbrt));
+  doc->job_id = atoi(argv[1]);
+  doc->user   = argv[2];
+  doc->title  = argv[3];
+  doc->copies = atoi(argv[4]);
 
-  cupsArrayAdd(Pages, pageinfo);
+  if (ppd && ppd->landscape > 0)
+    doc->normal_landscape = 1;
 
-  return (pageinfo);
-}
+  doc->bounding_box[0] = (int)PageLeft;
+  doc->bounding_box[1] = (int)PageBottom;
+  doc->bounding_box[2] = (int)PageRight;
+  doc->bounding_box[3] = (int)PageTop;
 
+  doc->new_bounding_box[0] = INT_MAX;
+  doc->new_bounding_box[1] = INT_MAX;
+  doc->new_bounding_box[2] = INT_MIN;
+  doc->new_bounding_box[3] = INT_MIN;
 
-/*
- * 'copy_bytes()' - Copy bytes from the input file to stdout...
- */
+ /*
+  * AP_FIRSTPAGE_InputSlot
 */
 
-static void
-copy_bytes(cups_file_t *fp,            /* I - File to read from */
-           off_t       offset,         /* I - Offset to page data */
-           size_t      length)         /* I - Length of page data */
-{
-  char         buffer[8192];           /* Data buffer */
-  ssize_t      nbytes;                 /* Number of bytes read */
-  size_t       nleft;                  /* Number of bytes left/remaining */
+  doc->ap_input_slot = cupsGetOption("AP_FIRSTPAGE_InputSlot", num_options,
+                                     options);
 
+ /*
+  * AP_FIRSTPAGE_ManualFeed
+  */
 
-  nleft = length;
+  doc->ap_manual_feed = cupsGetOption("AP_FIRSTPAGE_ManualFeed", num_options,
+                                      options);
 
-  cupsFileSeek(fp, offset);
+ /*
+  * brightness
+  */
 
-  while (nleft > 0 || length == 0)
+  if ((val = cupsGetOption("brightness", num_options, options)) != NULL)
   {
-    if (nleft > sizeof(buffer) || length == 0)
-      nbytes = sizeof(buffer);
-    else
-      nbytes = nleft;
-
-    if ((nbytes = cupsFileRead(fp, buffer, nbytes)) < 1)
-      return;
+   /*
+    * Get brightness value from 10 to 1000.
+    */
 
-    nleft -= nbytes;
+    intval = atoi(val);
 
-    fwrite(buffer, 1, nbytes, stdout);
+    if (intval < 10 || intval > 1000)
+    {
+      fprintf(stderr, "ERROR: Unsupported brightness value %s, using "
+                      "brightness=100!\n", val);
+      doc->brightness = 1.0f;
+    }
+    else
+      doc->brightness = intval * 0.01f;
   }
-}
-
-
-/*
- * 'do_prolog()' - Send the necessary document prolog commands...
- */
+  else
+    doc->brightness = 1.0f;
 
-static void
-do_prolog(ppd_file_t *ppd)             /* I - PPD file */
-{
  /*
-  * Send the document prolog commands...
+  * collate, multiple-document-handling
   */
 
-  if (ppd && ppd->patches)
+  if ((val = cupsGetOption("multiple-document-handling", num_options, options)) != NULL)
   {
-    puts("%%BeginFeature: *JobPatchFile 1");
-    puts(ppd->patches);
-    puts("%%EndFeature");
+   /*
+    * This IPP attribute is unnecessarily complicated...
+    *
+    *   single-document, separate-documents-collated-copies, and
+    *   single-document-new-sheet all require collated copies.
+    *
+    *   separate-documents-uncollated-copies allows for uncollated copies.
+    */
+
+    doc->collate = strcasecmp(val, "separate-documents-uncollated-copies") != 0;
   }
 
-  ppdEmit(ppd, stdout, PPD_ORDER_PROLOG);
-}
+  if ((val = cupsGetOption("Collate", num_options, options)) != NULL &&
+      (!strcasecmp(val, "true") ||!strcasecmp(val, "on") ||
+       !strcasecmp(val, "yes")))
+    doc->collate = 1;
 
+ /*
+  * emit-jcl
+  */
 
-/*
- * 'do_setup()' - Send the necessary document setup commands...
- */
+  if ((val = cupsGetOption("emit-jcl", num_options, options)) != NULL &&
+      (!strcasecmp(val, "false") || !strcasecmp(val, "off") ||
+       !strcasecmp(val, "no") || !strcmp(val, "0")))
+    doc->emit_jcl = 0;
+  else
+    doc->emit_jcl = 1;
 
-static void
-do_setup(ppd_file_t *ppd,              /* I - PPD file */
-         int        copies,            /* I - Number of copies */
-        int        collate,            /* I - Collate output? */
-        int        slowcollate,        /* I - Slow collate */
-        float      g,                  /* I - Gamma value */
-        float      b)                  /* I - Brightness value */
-{
  /*
-  * Send all the printer-specific setup commands...
+  * fitplot
   */
 
-  ppdEmit(ppd, stdout, PPD_ORDER_DOCUMENT);
-  ppdEmit(ppd, stdout, PPD_ORDER_ANY);
+  if ((val = cupsGetOption("fitplot", num_options, options)) != NULL &&
+      (!strcasecmp(val, "true") || !strcasecmp(val, "on") ||
+       !strcasecmp(val, "yes")))
+    doc->fitplot = 1;
 
  /*
-  * Set the number of copies for the job...
+  * gamma
   */
 
-  if (copies != 1 && (!collate || !slowcollate))
+  if ((val = cupsGetOption("gamma", num_options, options)) != NULL)
   {
-    printf("%%RBIBeginNonPPDFeature: *NumCopies %d\n", copies);
-    printf("%d/languagelevel where{pop languagelevel 2 ge}{false}ifelse{1 dict begin"
-           "/NumCopies exch def currentdict end " 
-           "setpagedevice}{userdict/#copies 3 -1 roll put}ifelse\n", copies);
-    printf("%%RBIEndNonPPDFeature\n");
-  }
+   /*
+    * Get gamma value from 1 to 10000...
+    */
 
- /*
-  * If we are doing N-up printing, disable setpagedevice...
-  */
+    intval = atoi(val);
 
-  if (NUp > 1)
-    puts("userdict/setpagedevice{pop}bind put");
+    if (intval < 1 || intval > 10000)
+    {
+      fprintf(stderr, "ERROR: Unsupported gamma value %s, using "
+                      "gamma=1000!\n", val);
+      doc->gamma = 1.0f;
+    }
+    else
+      doc->gamma = intval * 0.001f;
+  }
+  else
+    doc->gamma = 1.0f;
 
  /*
-  * Changes to the transfer function must be made AFTER any
-  * setpagedevice code...
+  * InputSlot
   */
 
-  if (g != 1.0 || b != 1.0)
-    printf("{ neg 1 add dup 0 lt { pop 1 } { %.3f exp neg 1 add } "
-          "ifelse %.3f mul } bind settransfer\n", g, b);
+  if ((choice = ppdFindMarkedChoice(ppd, "InputSlot")) != NULL)
+    doc->input_slot = choice->choice;
 
  /*
-  * Make sure we have rectclip and rectstroke procedures of some sort...
+  * ManualFeed
   */
 
-  WriteCommon();
-}
+  if ((choice = ppdFindMarkedChoice(ppd, "ManualFeed")) != NULL)
+    doc->manual_feed = choice->choice;
 
+  if ((val = cupsGetOption("mirror", num_options, options)) != NULL &&
+      (!strcasecmp(val, "true") || !strcasecmp(val, "on") ||
+       !strcasecmp(val, "yes")))
+    doc->mirror = 1;
 
-/*
- * 'end_nup()' - End processing for N-up printing...
- */
+ /*
+  * number-up
 */
 
-static void
-end_nup(int number)    /* I - Page number */
-{
-  puts("");
+  if ((val = cupsGetOption("number-up", num_options, options)) != NULL)
+  {
+    switch (intval = atoi(val))
+    {
+      case 1 :
+      case 2 :
+      case 4 :
+      case 6 :
+      case 9 :
+      case 16 :
+          doc->number_up = intval;
+         break;
+      default :
+          fprintf(stderr,
+                 "ERROR: Unsupported number-up value %d, using number-up=1!\n",
+                 intval);
+          doc->number_up = 1;
+         break;
+    }
+  }
+  else
+    doc->number_up = 1;
 
-  if (Flip || Orientation || NUp > 1)
-    puts("userdict /ESPsave get restore");
+ /*
+  * number-up-layout
+  */
 
-  switch (NUp)
+  if ((val = cupsGetOption("number-up-layout", num_options, options)) != NULL)
   {
-    case 1 :
-       if (UseESPsp)
-       {
-         WriteLabels(Orientation);
-          puts("ESPshowpage");
-       }
-       break;
-
-    case 2 :
-    case 6 :
-       if (is_last_page(number) && UseESPsp)
-       {
-         if (Orientation & 1)
-         {
-          /*
-           * Rotate the labels back to portrait...
-           */
+    if (!strcasecmp(val, "lrtb"))
+      doc->number_up_layout = PSTOPS_LAYOUT_LRTB;
+    else if (!strcasecmp(val, "lrbt"))
+      doc->number_up_layout = PSTOPS_LAYOUT_LRBT;
+    else if (!strcasecmp(val, "rltb"))
+      doc->number_up_layout = PSTOPS_LAYOUT_RLTB;
+    else if (!strcasecmp(val, "rlbt"))
+      doc->number_up_layout = PSTOPS_LAYOUT_RLBT;
+    else if (!strcasecmp(val, "tblr"))
+      doc->number_up_layout = PSTOPS_LAYOUT_TBLR;
+    else if (!strcasecmp(val, "tbrl"))
+      doc->number_up_layout = PSTOPS_LAYOUT_TBRL;
+    else if (!strcasecmp(val, "btlr"))
+      doc->number_up_layout = PSTOPS_LAYOUT_BTLR;
+    else if (!strcasecmp(val, "btrl"))
+      doc->number_up_layout = PSTOPS_LAYOUT_BTRL;
+    else
+    {
+      fprintf(stderr, "ERROR: Unsupported number-up-layout value %s, using "
+                      "number-up-layout=lrtb!\n", val);
+      doc->number_up_layout = PSTOPS_LAYOUT_LRTB;
+    }
+  }
+  else
+    doc->number_up_layout = PSTOPS_LAYOUT_LRTB;
 
-           WriteLabels(Orientation - 1);
-         }
-         else if (Orientation == 0)
-         {
-          /*
-           * Rotate the labels to landscape...
-           */
+ /*
+  * OutputOrder
+  */
 
-           WriteLabels(NormalLandscape ? 1 : 3);
-         }
-         else
-         {
-          /*
-           * Rotate the labels to landscape...
-           */
+  if ((val = cupsGetOption("OutputOrder", num_options, options)) != NULL)
+  {
+    if (!strcasecmp(val, "Reverse"))
+      doc->output_order = 1;
+  }
+  else if (ppd)
+  {
+   /*
+    * Figure out the right default output order from the PPD file...
+    */
 
-           WriteLabels(NormalLandscape ? 3 : 1);
-         }
+    if ((choice = ppdFindMarkedChoice(ppd, "OutputBin")) != NULL &&
+        (attr = ppdFindAttr(ppd, "PageStackOrder", choice->choice)) != NULL &&
+       attr->value)
+      doc->output_order = !strcasecmp(attr->value, "Reverse");
+    else if ((attr = ppdFindAttr(ppd, "DefaultOutputOrder", NULL)) != NULL &&
+             attr->value)
+      doc->output_order = !strcasecmp(attr->value, "Reverse");
+  }
 
-          puts("ESPshowpage");
-       }
-        break;
+ /*
+  * page-border
+  */
 
-    default :
-       if (is_last_page(number) && UseESPsp)
-       {
-         WriteLabels(Orientation);
-          puts("ESPshowpage");
-       }
-        break;
+  if ((val = cupsGetOption("page-border", num_options, options)) != NULL)
+  {
+    if (!strcasecmp(val, "none"))
+      doc->page_border = PSTOPS_BORDERNONE;
+    else if (!strcasecmp(val, "single"))
+      doc->page_border = PSTOPS_BORDERSINGLE;
+    else if (!strcasecmp(val, "single-thick"))
+      doc->page_border = PSTOPS_BORDERSINGLE2;
+    else if (!strcasecmp(val, "double"))
+      doc->page_border = PSTOPS_BORDERDOUBLE;
+    else if (!strcasecmp(val, "double-thick"))
+      doc->page_border = PSTOPS_BORDERDOUBLE2;
+    else
+    {
+      fprintf(stderr, "ERROR: Unsupported page-border value %s, using "
+                      "page-border=none!\n", val);
+      doc->page_border = PSTOPS_BORDERNONE;
+    }
   }
+  else
+    doc->page_border = PSTOPS_BORDERNONE;
 
-  fflush(stdout);
-}
-
+ /*
+  * page-label
+  */
 
-/*
- * 'include_feature()' - Include a printer option/feature command.
- */
+  doc->page_label = cupsGetOption("page-label", num_options, options);
 
-static void
-include_feature(ppd_file_t  *ppd,      /* I - PPD file */
-                const char  *line,     /* I - DSC line */
-               cups_file_t *out)       /* I - Output file */
-{
-  char         name[255],              /* Option name */
-               value[255];             /* Option value */
-  ppd_option_t *option;                /* Option in file */
-  ppd_choice_t *choice;                /* Choice */
+ /*
+  * page-ranges
+  */
 
+  doc->page_ranges = cupsGetOption("page-ranges", num_options, options);
 
  /*
-  * Get the "%%IncludeFeature: *Keyword OptionKeyword" values...
+  * page-set
   */
 
-  if (sscanf(line + 17, "%254s%254s", name, value) != 2)
-  {
-    fprintf(stderr, "ERROR: Bad line: \"%s\"!\n", line);
-    return;
-  }
+  doc->page_set = cupsGetOption("page-set", num_options, options);
 
  /*
-  * Find the option and choice...
+  * Now figure out if we have to force collated copies, etc.
   */
 
-  if ((option = ppdFindOption(ppd, name + 1)) == NULL)
-  {
-    fprintf(stderr, "WARNING: Unknown option \"%s\"!\n", name + 1);
-    return;
-  }
-
-  if (option->section == PPD_ORDER_EXIT ||
-      option->section == PPD_ORDER_JCL)
+  if (ppd && ppd->manual_copies && Duplex && doc->copies > 1)
   {
-    fprintf(stderr, "WARNING: Option \"%s\" cannot be included via "
-                    "IncludeFeature!\n", name + 1);
-    return;
-  }
+   /*
+    * Force collated copies when printing a duplexed document to
+    * a non-PS printer that doesn't do hardware copy generation.
+    * Otherwise the copies will end up on the front/back side of
+    * each page.
+    */
 
-  if ((choice = ppdFindChoice(option, value)) == NULL)
-  {
-    fprintf(stderr, "WARNING: Unknown choice \"%s\" for option \"%s\"!\n",
-            value, name + 1);
-    return;
+    doc->collate = 1;
   }
 
  /*
-  * Emit the option...
+  * See if we have to filter the fast or slow way...
   */
 
-  if (out)
+  if (doc->collate && doc->copies > 1)
   {
-    cupsFilePuts(out, "[{\n");
-    cupsFilePrintf(out, "%%%%BeginFeature: %s %s\n", name, value);
-    if (choice->code && choice->code[0])
+   /*
+    * See if we need to manually collate the pages...
+    */
+
+    doc->slow_collate = 1;
+
+    if ((choice = ppdFindMarkedChoice(ppd, "Collate")) != NULL &&
+        !strcasecmp(choice->choice, "True"))
     {
-      if (choice->code[strlen(choice->code) - 1] != '\n')
-       cupsFilePrintf(out, "%s\n", choice->code);
+     /*
+      * Hardware collate option is selected, see if the option is
+      * conflicting - if not, collate in hardware.  Otherwise,
+      * turn the hardware collate option off...
+      */
+
+      if ((option = ppdFindOption(ppd, "Option")) != NULL &&
+          !option->conflicted)
+       doc->slow_collate = 0;
       else
-       cupsFilePuts(out, choice->code);
+        ppdMarkOption(ppd, "Collate", "False");
     }
-    cupsFilePuts(out, "%%EndFeature\n");
-    cupsFilePuts(out, "} stopped cleartomark\n");
   }
   else
+    doc->slow_collate = 0;
+
+  if (!ppdFindOption(ppd, "OutputOrder") && doc->output_order)
+    doc->slow_order = 1;
+  else
+    doc->slow_order = 0;
+
+  if ((doc->slow_collate || doc->slow_order) && Duplex)
+    doc->slow_duplex = 1;
+  else
+    doc->slow_duplex = 0;
+
+ /*
+  * Create a temporary file for page data if we need to filter slowly...
+  */
+
+  if (doc->slow_order || doc->slow_collate)
   {
-    puts("[{");
-    printf("%%%%BeginFeature: %s %s\n", name, value);
-    if (choice->code && choice->code[0])
+    if ((doc->temp = cupsTempFile2(doc->tempfile,
+                                   sizeof(doc->tempfile))) == NULL)
     {
-      if (choice->code[strlen(choice->code) - 1] != '\n')
-        printf("%s\n", choice->code);
-      else
-        fputs(choice->code, stdout);
+      fprintf(stderr, "ERROR: Unable to create temporary file: %s\n",
+              strerror(errno));
+      exit(1);
     }
-    puts("%%EndFeature");
-    puts("} stopped cleartomark");
   }
+
+ /*
+  * Figure out if we should use ESPshowpage or not...
+  */
+
+  if (doc->page_label || getenv("CLASSIFICATION") || doc->number_up > 1 ||
+      doc->page_border)
+  {
+   /*
+    * Yes, use ESPshowpage...
+    */
+
+    doc->use_ESPshowpage = 1;
+  }
+
+  fprintf(stderr, "DEBUG: slow_collate=%d, slow_duplex=%d, slow_order=%d\n",
+          doc->slow_collate, doc->slow_duplex, doc->slow_order);
 }
 
 
 /*
- * 'psgets()' - Get a line from a file.
- *
- * Note:
- *
- *   This function differs from the gets() function in that it
- *   handles any combination of CR, LF, or CR LF to end input
- *   lines.
+ * 'skip_page()' - Skip past a page that won't be printed...
  */
 
-static char *                          /* O  - String or NULL if EOF */
-psgets(char   *buf,                    /* I  - Buffer to read into */
-       size_t *bytes,                  /* IO - Length of buffer */
-       FILE   *fp)                     /* I  - File to read from */
+static size_t                          /* O - Length of next line */
+skip_page(cups_file_t *fp,             /* I - File to read from */
+          char        *line,           /* I - Line buffer */
+         size_t      linelen,          /* I - Length of initial line */
+          size_t      linesize)                /* I - Size of line buffer */
 {
-  char         *bufptr;                /* Pointer into buffer */
-  int          ch;                     /* Character from file */
-  size_t       len;                    /* Max length of string */
+  int  level;                          /* Embedded document level */
 
 
-  len    = *bytes - 1;
-  bufptr = buf;
-  ch     = EOF;
+  level = 0;
 
-  while ((bufptr - buf) < len)
+  while ((linelen = cupsFileGetLine(fp, line, linesize)) > 0)
   {
-    if ((ch = getc(fp)) == EOF)
+    if (level == 0 &&
+        (!strncmp(line, "%%Page:", 7) || !strncmp(line, "%%Trailer:", 10)))
       break;
-
-    if (ch == '\r')
+    else if (!strncmp(line, "%%BeginDocument", 15) ||
+            !strncmp(line, "%ADO_BeginApplication", 21))
+      level ++;
+    else if ((!strncmp(line, "%%EndDocument", 13) ||
+             !strncmp(line, "%ADO_EndApplication", 19)) && level > 0)
+      level --;
+    else if (!strncmp(line, "%%BeginBinary:", 14) ||
+             (!strncmp(line, "%%BeginData:", 12) &&
+             !strstr(line, "ASCII") && !strstr(line, "Hex")))
     {
      /*
-      * Got a CR; see if there is a LF as well...
+      * Skip binary data...
       */
 
-      ch = getc(fp);
+      int      bytes;                  /* Bytes of data */
 
-      if (ch != EOF && ch != '\n')
-      {
-        ungetc(ch, fp);        /* Nope, save it for later... */
-        ch = '\r';
-      }
-      else
-        *bufptr++ = '\r';
-      break;
-    }
-    else if (ch == '\n')
-      break;
-    else
-      *bufptr++ = ch;
-  }
 
- /*
-  * Add a trailing newline if it is there...
-  */
+      bytes = atoi(strchr(line, ':') + 1);
 
-  if (ch == '\n' || ch == '\r')
-  {
-    if ((bufptr - buf) < len)
-      *bufptr++ = ch;
-    else
-      ungetc(ch, fp);
-  }
+      while (bytes > 0)
+      {
+       if (bytes > linesize)
+         linelen = cupsFileRead(fp, line, linesize);
+       else
+         linelen = cupsFileRead(fp, line, bytes);
 
- /*
-  * Nul-terminate the string and return it (or NULL for EOF).
-  */
+       if (linelen < 1)
+       {
+         line[0] = '\0';
+         perror("ERROR: Early end-of-file while reading binary data");
+         return (0);
+       }
 
-  *bufptr = '\0';
-  *bytes  = bufptr - buf;
+       bytes -= linelen;
+      }
+    }
+  }
 
-  if (ch == EOF && bufptr == buf)
-    return (NULL);
-  else
-    return (buf);
+  return (linelen);
 }
 
 
@@ -1806,69 +2449,89 @@ psgets(char   *buf,                     /* I  - Buffer to read into */
  */
 
 static void
-start_nup(int       number,            /* I - Page number */
-          int       show_border,       /* I - Show the page border? */
-         const int *lbrt)              /* I - Page BoundingBox */ 
+start_nup(pstops_doc_t *doc,           /* I - Document information */
+          int          number,         /* I - Page number */
+         int          show_border,     /* I - Show the border? */
+         const int    *bounding_box)   /* I - BoundingBox value */
 {
-  int  pos;                            /* Position on page */
-  int  x, y;                           /* Relative position of subpage */
-  float        w, l,                           /* Width and length of subpage */
-       tx, ty;                         /* Translation values for subpage */
-  float        pw, pl;                         /* Printable width and length of full page */
+  int          pos;                    /* Position on page */
+  int          x, y;                   /* Relative position of subpage */
+  float                w, l,                   /* Width and length of subpage */
+               tx, ty;                 /* Translation values for subpage */
+  float                pagew,                  /* Printable width of page */
+               pagel;                  /* Printable height of page */
+  int          bboxw,                  /* BoundingBox width */
+               bboxl;                  /* BoundingBox height */
+
 
+  if (doc->mirror || Orientation || doc->number_up > 1)
+    doc_puts(doc, "userdict/ESPsave save put\n");
 
-  if (Flip || Orientation || NUp > 1)
-    puts("userdict/ESPsave save put");
+  if (doc->mirror)
+    doc_printf(doc, "%.1f 0.0 translate -1 1 scale\n", PageWidth);
 
-  if (Flip)
-    printf("%.1f 0.0 translate -1 1 scale\n", PageWidth);
+  pos   = (number - 1) % doc->number_up;
+  pagew = PageRight - PageLeft;
+  pagel = PageTop - PageBottom;
 
-  pos = number % NUp;
-  pw  = lbrt[2] - lbrt[0];
-  pl  = lbrt[3] - lbrt[1];
+  if (doc->fitplot)
+  {
+    bboxw = bounding_box[2] - bounding_box[0];
+    bboxl = bounding_box[3] - bounding_box[1];
+  }
+  else
+  {
+    bboxw = PageWidth;
+    bboxl = PageLength;
+  }
 
-  fprintf(stderr, "DEBUG: pw = %.1f, pl = %.1f\n", pw, pl);
-  fprintf(stderr, "DEBUG: PageLeft = %.1f, PageRight = %.1f\n", PageLeft, PageRight);
-  fprintf(stderr, "DEBUG: PageTop = %.1f, PageBottom = %.1f\n", PageTop, PageBottom);
-  fprintf(stderr, "DEBUG: PageWidth = %.1f, PageLength = %.1f\n", PageWidth, PageLength);
+  fprintf(stderr, "DEBUG: pagew = %.1f, pagel = %.1f\n", pagew, pagel);
+  fprintf(stderr, "DEBUG: bboxw = %d, bboxl = %d\n", bboxw, bboxl);
+  fprintf(stderr, "DEBUG: PageLeft = %.1f, PageRight = %.1f\n",
+          PageLeft, PageRight);
+  fprintf(stderr, "DEBUG: PageTop = %.1f, PageBottom = %.1f\n",
+          PageTop, PageBottom);
+  fprintf(stderr, "DEBUG: PageWidth = %.1f, PageLength = %.1f\n",
+          PageWidth, PageLength);
 
   switch (Orientation)
   {
     case 1 : /* Landscape */
-        printf("%.1f 0.0 translate 90 rotate\n", PageLength);
+        doc_printf(doc, "%.1f 0.0 translate 90 rotate\n", PageLength);
         break;
     case 2 : /* Reverse Portrait */
-        printf("%.1f %.1f translate 180 rotate\n", PageWidth, PageLength);
+        doc_printf(doc, "%.1f %.1f translate 180 rotate\n", PageWidth,
+                  PageLength);
         break;
     case 3 : /* Reverse Landscape */
-        printf("0.0 %.1f translate -90 rotate\n", PageWidth);
+        doc_printf(doc, "0.0 %.1f translate -90 rotate\n", PageWidth);
         break;
   }
 
-  if (Duplex && NUp > 1 && ((number / NUp) & 1))
-    printf("%.1f %.1f translate\n", PageWidth - PageRight, PageBottom);
-  else if (NUp > 1 || FitPlot)
-    printf("%.1f %.1f translate\n", PageLeft, PageBottom);
+  if (Duplex && doc->number_up > 1 && ((number / doc->number_up) & 1))
+    doc_printf(doc, "%.1f %.1f translate\n", PageWidth - PageRight, PageBottom);
+  else if (doc->number_up > 1 || doc->fitplot)
+    doc_printf(doc, "%.1f %.1f translate\n", PageLeft, PageBottom);
 
-  switch (NUp)
+  switch (doc->number_up)
   {
     default :
-        if (FitPlot)
+        if (doc->fitplot)
        {
-          w = PageRight - PageLeft;
-          l = w * pl / pw;
+          w = pagew;
+          l = w * bboxl / bboxw;
 
-          if (l > (PageTop - PageBottom))
+          if (l > pagel)
           {
-            l = PageTop - PageBottom;
-            w = l * pw / pl;
+            l = pagel;
+            w = l * bboxw / bboxl;
           }
 
-          tx = 0.5 * (PageRight - PageLeft - w);
-          ty = 0.5 * (PageTop - PageBottom - l);
+          tx = 0.5 * (pagew - w);
+          ty = 0.5 * (pagel - l);
 
-         printf("%.1f %.1f translate %.3f %.3f scale\n", tx, ty, w / pw,
-                l / pl);
+         doc_printf(doc, "%.1f %.1f translate %.3f %.3f scale\n", tx, ty,
+                    w / bboxw, l / bboxl);
        }
        else
        {
@@ -1882,60 +2545,60 @@ start_nup(int       number,             /* I - Page number */
        {
           x = pos & 1;
 
-          if (Layout & LAYOUT_NEGATEY)
+          if (doc->number_up_layout & PSTOPS_LAYOUT_NEGATEY)
            x = 1 - x;
 
-          w = pl;
-          l = w * PageLength / PageWidth;
+          w = pagel;
+          l = w * bboxl / bboxw;
 
-          if (l > (pw * 0.5))
+          if (l > (pagew * 0.5))
           {
-            l = pw * 0.5;
-            w = l * PageWidth / PageLength;
+            l = pagew * 0.5;
+            w = l * bboxw / bboxl;
           }
 
-          tx = 0.5 * (pw * 0.5 - l);
-          ty = 0.5 * (pl - w);
+          tx = 0.5 * (pagew * 0.5 - l);
+          ty = 0.5 * (pagel - w);
 
-          if (NormalLandscape)
-            printf("0.0 %.1f translate -90 rotate\n", pl);
+          if (doc->normal_landscape)
+            doc_printf(doc, "0.0 %.1f translate -90 rotate\n", pagel);
          else
-           printf("%.1f 0.0 translate 90 rotate\n", pw);
+           doc_printf(doc, "%.1f 0.0 translate 90 rotate\n", pagew);
 
-          printf("%.1f %.1f translate %.3f %.3f scale\n",
-                 ty, tx + l * x, w / PageWidth, l / PageLength);
+          doc_printf(doc, "%.1f %.1f translate %.3f %.3f scale\n",
+                     ty, tx + pagew * 0.5 * x, w / bboxw, l / bboxl);
         }
        else
        {
           x = pos & 1;
 
-          if (Layout & LAYOUT_NEGATEX)
+          if (doc->number_up_layout & PSTOPS_LAYOUT_NEGATEX)
            x = 1 - x;
 
-          l = pw;
-          w = l * PageWidth / PageLength;
+          l = pagew;
+          w = l * bboxw / bboxl;
 
-          if (w > (pl * 0.5))
+          if (w > (pagel * 0.5))
           {
-            w = pl * 0.5;
-            l = w * PageLength / PageWidth;
+            w = pagel * 0.5;
+            l = w * bboxl / bboxw;
           }
 
-          tx = 0.5 * (pl * 0.5 - w);
-          ty = 0.5 * (pw - l);
+          tx = 0.5 * (pagel * 0.5 - w);
+          ty = 0.5 * (pagew - l);
 
-          if (NormalLandscape)
-           printf("%.1f 0.0 translate 90 rotate\n", pw);
+          if (doc->normal_landscape)
+           doc_printf(doc, "%.1f 0.0 translate 90 rotate\n", pagew);
          else
-            printf("0.0 %.1f translate -90 rotate\n", pl);
+            doc_printf(doc, "0.0 %.1f translate -90 rotate\n", pagel);
 
-          printf("%.1f %.1f translate %.3f %.3f scale\n",
-                 tx + w * x, ty, w / PageWidth, l / PageLength);
+          doc_printf(doc, "%.1f %.1f translate %.3f %.3f scale\n",
+                     tx + pagel * 0.5 * x, ty, w / bboxw, l / bboxl);
         }
         break;
 
     case 4 :
-        if (Layout & LAYOUT_VERTICAL)
+        if (doc->number_up_layout & PSTOPS_LAYOUT_VERTICAL)
        {
          x = (pos / 2) & 1;
           y = pos & 1;
@@ -1946,40 +2609,41 @@ start_nup(int       number,             /* I - Page number */
          y = (pos / 2) & 1;
         }
 
-        if (Layout & LAYOUT_NEGATEX)
+        if (doc->number_up_layout & PSTOPS_LAYOUT_NEGATEX)
          x = 1 - x;
 
-       if (Layout & LAYOUT_NEGATEY)
+       if (doc->number_up_layout & PSTOPS_LAYOUT_NEGATEY)
          y = 1 - y;
 
-        w = pw * 0.5;
-       l = w * PageLength / PageWidth;
+        w = pagew * 0.5;
+       l = w * bboxl / bboxw;
 
-       if (l > (pl * 0.5))
+       if (l > (pagel * 0.5))
        {
-         l = pl * 0.5;
-         w = l * PageWidth / PageLength;
+         l = pagel * 0.5;
+         w = l * bboxw / bboxl;
        }
 
-        tx = 0.5 * (pw * 0.5 - w);
-        ty = 0.5 * (pl * 0.5 - l);
+        tx = 0.5 * (pagew * 0.5 - w);
+        ty = 0.5 * (pagel * 0.5 - l);
 
-       printf("%.1f %.1f translate %.3f %.3f scale\n", tx + x * w, ty + y * l,
-              w / PageWidth, l / PageLength);
+       doc_printf(doc, "%.1f %.1f translate %.3f %.3f scale\n",
+                  tx + x * pagew * 0.5, ty + y * pagel * 0.5,
+                  w / bboxw, l / bboxl);
         break;
 
     case 6 :
         if (Orientation & 1)
        {
-         if (Layout & LAYOUT_VERTICAL)
+         if (doc->number_up_layout & PSTOPS_LAYOUT_VERTICAL)
          {
            x = pos / 3;
            y = pos % 3;
 
-            if (Layout & LAYOUT_NEGATEX)
+            if (doc->number_up_layout & PSTOPS_LAYOUT_NEGATEX)
              x = 1 - x;
 
-            if (Layout & LAYOUT_NEGATEY)
+            if (doc->number_up_layout & PSTOPS_LAYOUT_NEGATEY)
              y = 2 - y;
          }
          else
@@ -1987,44 +2651,45 @@ start_nup(int       number,             /* I - Page number */
            x = pos & 1;
            y = pos / 2;
 
-            if (Layout & LAYOUT_NEGATEX)
+            if (doc->number_up_layout & PSTOPS_LAYOUT_NEGATEX)
              x = 1 - x;
 
-            if (Layout & LAYOUT_NEGATEY)
+            if (doc->number_up_layout & PSTOPS_LAYOUT_NEGATEY)
              y = 2 - y;
          }
 
-          w = pl * 0.5;
-          l = w * PageLength / PageWidth;
+          w = pagel * 0.5;
+          l = w * bboxl / bboxw;
 
-          if (l > (pw * 0.333))
+          if (l > (pagew * 0.333))
           {
-            l = pw * 0.333;
-            w = l * PageWidth / PageLength;
+            l = pagew * 0.333;
+            w = l * bboxw / bboxl;
           }
 
-          tx = 0.5 * (pl - 2 * w);
-          ty = 0.5 * (pw - 3 * l);
+          tx = 0.5 * (pagel - 2 * w);
+          ty = 0.5 * (pagew - 3 * l);
 
-          if (NormalLandscape)
-            printf("0.0 %.1f translate -90 rotate\n", pl);
+          if (doc->normal_landscape)
+            doc_printf(doc, "0.0 %.1f translate -90 rotate\n", pagel);
          else
-           printf("%.1f 0.0 translate 90 rotate\n", pw);
+           doc_printf(doc, "%.1f 0.0 translate 90 rotate\n", pagew);
 
-          printf("%.1f %.1f translate %.3f %.3f scale\n",
-                 tx + x * w, ty + y * l, w / PageWidth, l / PageLength);
+          doc_printf(doc, "%.1f %.1f translate %.3f %.3f scale\n",
+                     tx + x * y * pagel * 0.5, ty + pagew * 0.333,
+                    w / bboxw, l / bboxl);
         }
        else
        {
-         if (Layout & LAYOUT_VERTICAL)
+         if (doc->number_up_layout & PSTOPS_LAYOUT_VERTICAL)
          {
            x = pos / 2;
            y = pos & 1;
 
-            if (Layout & LAYOUT_NEGATEX)
+            if (doc->number_up_layout & PSTOPS_LAYOUT_NEGATEX)
              x = 2 - x;
 
-            if (Layout & LAYOUT_NEGATEY)
+            if (doc->number_up_layout & PSTOPS_LAYOUT_NEGATEY)
              y = 1 - y;
          }
          else
@@ -2032,37 +2697,38 @@ start_nup(int       number,             /* I - Page number */
            x = pos % 3;
            y = pos / 3;
 
-            if (Layout & LAYOUT_NEGATEX)
+            if (doc->number_up_layout & PSTOPS_LAYOUT_NEGATEX)
              x = 2 - x;
 
-            if (Layout & LAYOUT_NEGATEY)
+            if (doc->number_up_layout & PSTOPS_LAYOUT_NEGATEY)
              y = 1 - y;
          }
 
-          l = pw * 0.5;
-          w = l * PageWidth / PageLength;
+          l = pagew * 0.5;
+          w = l * bboxw / bboxl;
 
-          if (w > (pl * 0.333))
+          if (w > (pagel * 0.333))
           {
-            w = pl * 0.333;
-            l = w * PageLength / PageWidth;
+            w = pagel * 0.333;
+            l = w * bboxl / bboxw;
           }
 
-          tx = 0.5 * (pl - 3 * w);
-          ty = 0.5 * (pw - 2 * l);
+          tx = 0.5 * (pagel - 3 * w);
+          ty = 0.5 * (pagew - 2 * l);
 
-          if (NormalLandscape)
-           printf("%.1f 0.0 translate 90 rotate\n", pw);
+          if (doc->normal_landscape)
+           doc_printf(doc, "%.1f 0.0 translate 90 rotate\n", pagew);
          else
-            printf("0.0 %.1f translate -90 rotate\n", pl);
+            doc_printf(doc, "0.0 %.1f translate -90 rotate\n", pagel);
 
-          printf("%.1f %.1f translate %.3f %.3f scale\n",
-                 tx + w * x, ty + l * y, w / PageWidth, l / PageLength);
+          doc_printf(doc, "%.1f %.1f translate %.3f %.3f scale\n",
+                     tx + x * pagel * 0.333, ty + y * pagew * 0.5,
+                    w / bboxw, l / bboxl);
         }
         break;
 
     case 9 :
-        if (Layout & LAYOUT_VERTICAL)
+        if (doc->number_up_layout & PSTOPS_LAYOUT_VERTICAL)
        {
          x = (pos / 3) % 3;
           y = pos % 3;
@@ -2073,30 +2739,31 @@ start_nup(int       number,             /* I - Page number */
          y = (pos / 3) % 3;
         }
 
-        if (Layout & LAYOUT_NEGATEX)
+        if (doc->number_up_layout & PSTOPS_LAYOUT_NEGATEX)
          x = 2 - x;
 
-       if (Layout & LAYOUT_NEGATEY)
+       if (doc->number_up_layout & PSTOPS_LAYOUT_NEGATEY)
          y = 2 - y;
 
-        w = pw * 0.333;
-       l = w * PageLength / PageWidth;
+        w = pagew * 0.333;
+       l = w * bboxl / bboxw;
 
-       if (l > (pl * 0.333))
+       if (l > (pagel * 0.333))
        {
-         l = pl * 0.333;
-         w = l * PageWidth / PageLength;
+         l = pagel * 0.333;
+         w = l * bboxw / bboxl;
        }
 
-        tx = 0.5 * (pw * 0.333 - w);
-        ty = 0.5 * (pl * 0.333 - l);
+        tx = 0.5 * (pagew * 0.333 - w);
+        ty = 0.5 * (pagel * 0.333 - l);
 
-       printf("%.1f %.1f translate %.3f %.3f scale\n", tx + x * w, ty + y * l,
-              w / PageWidth, l / PageLength);
+       doc_printf(doc, "%.1f %.1f translate %.3f %.3f scale\n",
+                  tx + x * pagew * 0.333, ty + y * pagel * 0.333,
+                  w / bboxw, l / bboxl);
         break;
 
     case 16 :
-        if (Layout & LAYOUT_VERTICAL)
+        if (doc->number_up_layout & PSTOPS_LAYOUT_VERTICAL)
        {
          x = (pos / 4) & 3;
           y = pos & 3;
@@ -2107,26 +2774,27 @@ start_nup(int       number,             /* I - Page number */
          y = (pos / 4) & 3;
         }
 
-        if (Layout & LAYOUT_NEGATEX)
+        if (doc->number_up_layout & PSTOPS_LAYOUT_NEGATEX)
          x = 3 - x;
 
-       if (Layout & LAYOUT_NEGATEY)
+       if (doc->number_up_layout & PSTOPS_LAYOUT_NEGATEY)
          y = 3 - y;
 
-        w = pw * 0.25;
-       l = w * PageLength / PageWidth;
+        w = pagew * 0.25;
+       l = w * bboxl / bboxw;
 
-       if (l > (pl * 0.25))
+       if (l > (pagel * 0.25))
        {
-         l = pl * 0.25;
-         w = l * PageWidth / PageLength;
+         l = pagel * 0.25;
+         w = l * bboxw / bboxl;
        }
 
-        tx = 0.5 * (pw * 0.25 - w);
-        ty = 0.5 * (pl * 0.25 - l);
+        tx = 0.5 * (pagew * 0.25 - w);
+        ty = 0.5 * (pagel * 0.25 - l);
 
-       printf("%.1f %.1f translate %.3f %.3f scale\n", tx + x * w, ty + y * l,
-              w / PageWidth, l / PageLength);
+       doc_printf(doc, "%.1f %.1f translate %.3f %.3f scale\n",
+                  tx + x * pagew * 0.25, ty + y * pagel * 0.25,
+                  w / bboxw, l / bboxl);
         break;
   }
 
@@ -2134,14 +2802,14 @@ start_nup(int       number,             /* I - Page number */
   * Draw borders as necessary...
   */
 
-  if (Border && show_border)
+  if (doc->page_border && show_border)
   {
-    int                rects;          /* Number of border rectangles */
-    float      fscale,         /* Scaling value for points */
-               margin;         /* Current margin for borders */
+    int                rects;                  /* Number of border rectangles */
+    float      fscale,                 /* Scaling value for points */
+               margin;                 /* Current margin for borders */
 
 
-    rects  = (Border & BORDER_DOUBLE) ? 2 : 1;
+    rects  = (doc->page_border & PSTOPS_BORDERDOUBLE) ? 2 : 1;
     fscale = PageWidth / w;
     margin = 2.25 * fscale;
 
@@ -2149,47 +2817,58 @@ start_nup(int       number,             /* I - Page number */
     * Set the line width and color...
     */
 
-    puts("gsave");
-    printf("%.3f setlinewidth 0 setgray newpath\n",
-           (Border & BORDER_THICK) ? 0.5 * fscale : 0.24 * fscale);
+    doc_puts(doc, "gsave\n");
+    doc_printf(doc, "%.3f setlinewidth 0 setgray newpath\n",
+               (doc->page_border & PSTOPS_BORDERTHICK) ? 0.5 * fscale :
+                                                        0.24 * fscale);
 
    /*
     * Draw border boxes...
     */
 
     for (; rects > 0; rects --, margin += 2 * fscale)
-      if (NUp > 1)
-       printf("%.1f %.1f %.1f %.1f ESPrs\n",
-              margin,
-              margin,
-              PageWidth - 2 * margin,
-              PageLength - 2 * margin);
+      if (doc->number_up > 1)
+       doc_printf(doc, "%.1f %.1f %.1f %.1f ESPrs\n",
+                  margin - 2.25 * fscale,
+                  margin - 2.25 * fscale,
+                  bboxw + 4.5 * fscale - 2 * margin,
+                  bboxl + 4.5 * fscale - 2 * margin);
       else
-       printf("%.1f %.1f %.1f %.1f ESPrs\n",
-               PageLeft + margin,
-              PageBottom + margin,
-              PageRight - PageLeft - 2 * margin,
-              PageTop - PageBottom - 2 * margin);
+       doc_printf(doc, "%.1f %.1f %.1f %.1f ESPrs\n",
+                  PageLeft + margin,
+                  PageBottom + margin,
+                  PageRight - PageLeft - 2 * margin,
+                  PageTop - PageBottom - 2 * margin);
 
    /*
     * Restore pen settings...
     */
 
-    puts("grestore");
+    doc_puts(doc, "grestore\n");
   }
 
-  if (NUp > 1)
+  if (doc->fitplot)
   {
    /*
     * Clip the page that follows to the bounding box of the page...
     */
 
-    printf("%d %d translate\n", -lbrt[0], -lbrt[1]);
-    printf("0 0 %d %d ESPrc\n", lbrt[2] - lbrt[0], lbrt[3] - lbrt[1]);
+    doc_printf(doc, "%d %d translate\n", -bounding_box[0],
+               -bounding_box[1]);
+    doc_printf(doc, "%d %d %d %d ESPrc\n", bounding_box[0], bounding_box[1],
+               bboxw, bboxl);
+  }
+  else if (doc->number_up > 1)
+  {
+   /*
+    * Clip the page that follows to the default page size...
+    */
+
+    doc_printf(doc, "0 0 %d %d ESPrc\n", bboxw, bboxl);
   }
 }
 
 
 /*
- * End of "$Id: pstops.c 5205 2006-02-28 21:05:24Z mike $".
+ * End of "$Id: pstops.c 5326 2006-03-23 19:33:35Z mike $".
  */
index e75545eb80aa36896fccdf972a6479be4fb803b2..c8de26b4a1c828fa2bc81be851502de545b3de31 100644 (file)
@@ -1,5 +1,5 @@
 #
-# "$Id: Makefile 5308 2006-03-18 13:18:18Z mike $"
+# "$Id: Makefile 5335 2006-03-24 02:56:20Z mike $"
 #
 #   Locale file makefile for the Common UNIX Printing System (CUPS).
 #
@@ -79,7 +79,7 @@ uninstall:
 pot:
        echo Updating cups.pot...
        cd ..; xgettext -o locale/cups.pot -j --keyword=_ --no-wrap \
-               --copyright-holder="Easy Software Products" \
+               --no-location --copyright-holder="Easy Software Products" \
                --msgid-bugs-address="http://www.cups.org/str.php" \
                */*.c
        (cat cups.header; \
@@ -89,7 +89,7 @@ pot:
        mv cups.pot.N cups.pot
        for loc in $(LANGUAGES) ; do \
                echo Merging changes into cups_$$loc.po... ; \
-               msgmerge -o cups_$$loc.po cups_$$loc.po cups.pot ; \
+               msgmerge -o cups_$$loc.po --no-location cups_$$loc.po cups.pot ; \
        done
 
 
@@ -108,5 +108,5 @@ translate.o:        ../cups/http.h ../cups/i18n.h ../cups/language.h ../cups/string.h
 
 
 #
-# End of "$Id: Makefile 5308 2006-03-18 13:18:18Z mike $".
+# End of "$Id: Makefile 5335 2006-03-24 02:56:20Z mike $".
 #
index 17c16b70db54d22a137a2eed8db405c69e545036..9f062970e99cb8cc9af72901b1f6db12d4dd1dc4 100644 (file)
@@ -29,7 +29,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: CUPS 1.2\n"
 "Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
-"POT-Creation-Date: 2006-03-13 08:39-0500\n"
+"POT-Creation-Date: 2006-03-23 21:52-0500\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -37,1029 +37,657 @@ msgstr ""
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: cgi-bin/admin.c:1276 cgi-bin/admin.c:1154 cgi-bin/admin.c:1195
-#: cgi-bin/admin.c:1203
 msgid "Options Installed"
 msgstr ""
 
-#: cgi-bin/classes.c:103
 msgid "Class"
 msgstr ""
 
-#: cgi-bin/printers.c:104
 msgid "Printer"
 msgstr ""
 
-#: cups/ppd.c:654 cups/ppd.c:1045 cups/ppd.c:660 cups/ppd.c:1167
 msgid "Extra"
 msgstr ""
 
-#: cups/ppd.c:656 cups/ppd.c:881 cups/ppd.c:1047 cups/ppd.c:662 cups/ppd.c:996
-#: cups/ppd.c:1169 cups/ppd.c:651 cups/ppd.c:983 cups/ppd.c:1148
-#: cups/ppd.c:972 cups/ppd.c:1137 cups/ppd.c:646 cups/ppd.c:973
-#: cups/ppd.c:1138 cups/ppd.c:970 cups/ppd.c:1135
 msgid "General"
 msgstr ""
 
-#: cups/ppd.c:704 cups/ppd.c:1105 cups/ppd.c:710 cups/ppd.c:1224
-#: cups/ppd.c:697 cups/ppd.c:1201 cups/ppd.c:1190 cups/ppd.c:692
-#: cups/ppd.c:1191 cups/ppd.c:1188
 msgid "Media Size"
 msgstr ""
 
-#: cups/ppd.c:706 cups/ppd.c:1107 cups/ppd.c:712 cups/ppd.c:1226
-#: cups/ppd.c:699 cups/ppd.c:1203 cups/ppd.c:1192 cups/ppd.c:694
-#: cups/ppd.c:1193 cups/ppd.c:1190
 msgid "Media Type"
 msgstr ""
 
-#: cups/ppd.c:708 cups/ppd.c:1109 cups/ppd.c:714 cups/ppd.c:1228
-#: cups/ppd.c:701 cups/ppd.c:1205 cups/ppd.c:1194 cups/ppd.c:696
-#: cups/ppd.c:1195 cups/ppd.c:1192
 msgid "Media Source"
 msgstr ""
 
-#: cups/ppd.c:710 cups/ppd.c:1111 cups/ppd.c:716 cups/ppd.c:1230
-#: cups/ppd.c:703 cups/ppd.c:1207 cups/ppd.c:1196 cups/ppd.c:698
-#: cups/ppd.c:1197 cups/ppd.c:1194
 msgid "Output Mode"
 msgstr ""
 
-#: cups/ppd.c:712 cups/ppd.c:1113 cups/ppd.c:718 cups/ppd.c:1232
-#: cups/ppd.c:705 cups/ppd.c:1209 cups/ppd.c:1198 cups/ppd.c:700
-#: cups/ppd.c:1199 cups/ppd.c:1196
 msgid "Resolution"
 msgstr ""
 
-#: cups/ppd.c:907
 msgid "Variable"
 msgstr ""
 
-#: cups/ppd.c:1535 cups/ppd.c:1650 cups/ppd.c:1627 cups/ppd.c:1616
-#: cups/ppd.c:1622 cups/ppd.c:1619
 msgid "Yes"
 msgstr ""
 
-#: cups/ppd.c:1537 cups/ppd.c:1652 cups/ppd.c:1629 cups/ppd.c:1618
-#: cups/ppd.c:1624 cups/ppd.c:1621
 msgid "No"
 msgstr ""
 
-#: cups/ppd.c:1824
 msgid "Auto"
 msgstr ""
 
-#: scheduler/client.c:2247 scheduler/client.c:2251 scheduler/client.c:2274
-#: scheduler/client.c:2308 scheduler/client.c:2349 scheduler/client.c:2350
 msgid "Enter your username and password or the root username and password to access this page."
 msgstr ""
 
-#: scheduler/client.c:2252 scheduler/client.c:2256 scheduler/client.c:2279
-#: scheduler/client.c:2313 scheduler/client.c:2354 scheduler/client.c:2355
 msgid "You must use a https: URL to access this page."
 msgstr ""
 
-#: scheduler/ipp.c:236 scheduler/ipp.c:244 scheduler/ipp.c:246
-#: scheduler/ipp.c:260
 #, c-format
 msgid "Bad request version number %d.%d!"
 msgstr ""
 
-#: scheduler/ipp.c:246 scheduler/ipp.c:254 scheduler/ipp.c:256
-#: scheduler/ipp.c:270
 msgid "No attributes in request!"
 msgstr ""
 
-#: scheduler/ipp.c:269 scheduler/ipp.c:277 scheduler/ipp.c:279
-#: scheduler/ipp.c:293
 #, c-format
 msgid "Attribute groups are out of order (%x < %x)!"
 msgstr ""
 
-#: scheduler/ipp.c:379 scheduler/ipp.c:389 scheduler/ipp.c:391
-#: scheduler/ipp.c:405
 msgid "Missing required attributes!"
 msgstr ""
 
-#: scheduler/ipp.c:575 scheduler/ipp.c:585 scheduler/ipp.c:591
-#: scheduler/ipp.c:605
 #, c-format
 msgid "%s not supported!"
 msgstr ""
 
-#: scheduler/ipp.c:684 scheduler/ipp.c:1055 scheduler/ipp.c:2271
-#: scheduler/ipp.c:2383 scheduler/ipp.c:3707 scheduler/ipp.c:4417
-#: scheduler/ipp.c:4649 scheduler/ipp.c:5002 scheduler/ipp.c:5445
-#: scheduler/ipp.c:5890 scheduler/ipp.c:6245 scheduler/ipp.c:6609
-#: scheduler/ipp.c:7308 scheduler/ipp.c:8179 scheduler/ipp.c:8585
-#: scheduler/ipp.c:8663 scheduler/ipp.c:8836 scheduler/ipp.c:696
-#: scheduler/ipp.c:1079 scheduler/ipp.c:2318 scheduler/ipp.c:2433
-#: scheduler/ipp.c:3901 scheduler/ipp.c:4621 scheduler/ipp.c:4855
-#: scheduler/ipp.c:5237 scheduler/ipp.c:5526 scheduler/ipp.c:5834
-#: scheduler/ipp.c:6113 scheduler/ipp.c:6155 scheduler/ipp.c:6657
-#: scheduler/ipp.c:7365 scheduler/ipp.c:8251 scheduler/ipp.c:8662
-#: scheduler/ipp.c:8742 scheduler/ipp.c:8917 scheduler/ipp.c:702
-#: scheduler/ipp.c:1093 scheduler/ipp.c:2357 scheduler/ipp.c:2472
-#: scheduler/ipp.c:3993 scheduler/ipp.c:4730 scheduler/ipp.c:4973
-#: scheduler/ipp.c:5357 scheduler/ipp.c:5769 scheduler/ipp.c:6077
-#: scheduler/ipp.c:6368 scheduler/ipp.c:6410 scheduler/ipp.c:6916
-#: scheduler/ipp.c:7626 scheduler/ipp.c:8589 scheduler/ipp.c:9003
-#: scheduler/ipp.c:9084 scheduler/ipp.c:9259 scheduler/ipp.c:716
-#: scheduler/ipp.c:1003 scheduler/ipp.c:1174 scheduler/ipp.c:2812
-#: scheduler/ipp.c:2927 scheduler/ipp.c:4699 scheduler/ipp.c:4942
-#: scheduler/ipp.c:5326 scheduler/ipp.c:5738 scheduler/ipp.c:6046
-#: scheduler/ipp.c:6337 scheduler/ipp.c:6379 scheduler/ipp.c:7116
-#: scheduler/ipp.c:8081 scheduler/ipp.c:8745 scheduler/ipp.c:8826
-#: scheduler/ipp.c:9001 scheduler/ipp.c:4715 scheduler/ipp.c:4958
-#: scheduler/ipp.c:5342 scheduler/ipp.c:5754 scheduler/ipp.c:6062
-#: scheduler/ipp.c:6353 scheduler/ipp.c:6395 scheduler/ipp.c:7132
-#: scheduler/ipp.c:8097 scheduler/ipp.c:8761 scheduler/ipp.c:8842
-#: scheduler/ipp.c:9017
 msgid "The printer or class was not found."
 msgstr ""
 
-#: scheduler/ipp.c:762 scheduler/ipp.c:777 scheduler/ipp.c:784
-#: scheduler/ipp.c:799
 msgid "The printer-uri must be of the form \"ipp://HOSTNAME/classes/CLASSNAME\"."
 msgstr ""
 
-#: scheduler/ipp.c:778 scheduler/ipp.c:1454 scheduler/ipp.c:793
-#: scheduler/ipp.c:1482 scheduler/ipp.c:800 scheduler/ipp.c:1515
-#: scheduler/ipp.c:815 scheduler/ipp.c:2031
 #, c-format
 msgid "The printer-uri \"%s\" contains invalid characters."
 msgstr ""
 
-#: scheduler/ipp.c:811 scheduler/ipp.c:826 scheduler/ipp.c:833
-#: scheduler/ipp.c:848
 #, c-format
 msgid "A printer named \"%s\" already exists!"
 msgstr ""
 
-#: scheduler/ipp.c:904 scheduler/ipp.c:924 scheduler/ipp.c:933
-#: scheduler/ipp.c:944
 #, c-format
 msgid "Attempt to set %s printer-state to bad value %d!"
 msgstr ""
 
-#: scheduler/ipp.c:1000 scheduler/ipp.c:1022 scheduler/ipp.c:1034
 #, c-format
 msgid "add_class: Unknown printer-op-policy \"%s\"."
 msgstr ""
 
-#: scheduler/ipp.c:1013 scheduler/ipp.c:1035 scheduler/ipp.c:1047
 #, c-format
 msgid "add_class: Unknown printer-error-policy \"%s\"."
 msgstr ""
 
-#: scheduler/ipp.c:1144 scheduler/ipp.c:1168 scheduler/ipp.c:1200
-#: scheduler/ipp.c:1112
 msgid "Unable to allocate memory for file types!"
 msgstr ""
 
-#: scheduler/ipp.c:1290 scheduler/ipp.c:4501 scheduler/ipp.c:1316
-#: scheduler/ipp.c:4705 scheduler/ipp.c:1348 scheduler/ipp.c:4804
-#: scheduler/ipp.c:1810 scheduler/ipp.c:4773 scheduler/ipp.c:4789
 #, c-format
 msgid "Character set \"%s\" not supported!"
 msgstr ""
 
-#: scheduler/ipp.c:1299 scheduler/ipp.c:4510 scheduler/ipp.c:1325
-#: scheduler/ipp.c:4714 scheduler/ipp.c:1357 scheduler/ipp.c:4813
-#: scheduler/ipp.c:1819 scheduler/ipp.c:4782 scheduler/ipp.c:4798
 #, c-format
 msgid "Language \"%s\" not supported!"
 msgstr ""
 
-#: scheduler/ipp.c:1309 scheduler/ipp.c:4520 scheduler/ipp.c:1335
-#: scheduler/ipp.c:4724 scheduler/ipp.c:1367 scheduler/ipp.c:4823
-#: scheduler/ipp.c:1829 scheduler/ipp.c:4792 scheduler/ipp.c:4808
 #, c-format
 msgid "The notify-user-data value is too large (%d > 63 octets)!"
 msgstr ""
 
-#: scheduler/ipp.c:1326 scheduler/ipp.c:1352 scheduler/ipp.c:1384
-#: scheduler/ipp.c:1846
 msgid "The notify-lease-duration attribute cannot be used with job subscriptions."
 msgstr ""
 
-#: scheduler/ipp.c:1438 scheduler/ipp.c:1466 scheduler/ipp.c:1499
-#: scheduler/ipp.c:2015
 msgid "The printer-uri must be of the form \"ipp://HOSTNAME/printers/PRINTERNAME\"."
 msgstr ""
 
-#: scheduler/ipp.c:1487 scheduler/ipp.c:1515 scheduler/ipp.c:1548
-#: scheduler/ipp.c:2064
 #, c-format
 msgid "A class named \"%s\" already exists!"
 msgstr ""
 
-#: scheduler/ipp.c:1575 scheduler/ipp.c:1607 scheduler/ipp.c:1644
-#: scheduler/ipp.c:2157
 #, c-format
 msgid "File device URIs have been disabled! To enable, see the FileDevice directive in \"%s/cupsd.conf\"."
 msgstr ""
 
-#: scheduler/ipp.c:1595 scheduler/ipp.c:1627 scheduler/ipp.c:1664
-#: scheduler/ipp.c:2177
 #, c-format
 msgid "Bad device-uri \"%s\"!"
 msgstr ""
 
-#: scheduler/ipp.c:1626 scheduler/ipp.c:1659 scheduler/ipp.c:1698
-#: scheduler/ipp.c:2211
 #, c-format
 msgid "Bad port-monitor \"%s\"!"
 msgstr ""
 
-#: scheduler/ipp.c:1669 scheduler/ipp.c:1705 scheduler/ipp.c:1744
-#: scheduler/ipp.c:2257
 #, c-format
 msgid "Bad printer-state value %d!"
 msgstr ""
 
-#: scheduler/ipp.c:1762 scheduler/ipp.c:1800 scheduler/ipp.c:1842
-#: scheduler/ipp.c:8585 scheduler/ipp.c:8601
 #, c-format
 msgid "Unknown printer-op-policy \"%s\"."
 msgstr ""
 
-#: scheduler/ipp.c:1775 scheduler/ipp.c:1813 scheduler/ipp.c:1855
-#: scheduler/ipp.c:8600 scheduler/ipp.c:8616
 #, c-format
 msgid "Unknown printer-error-policy \"%s\"."
 msgstr ""
 
-#: scheduler/ipp.c:1837 scheduler/ipp.c:1875 scheduler/ipp.c:1919
-#: scheduler/ipp.c:2336
 #, c-format
 msgid "Unable to copy interface script - %s!"
 msgstr ""
 
-#: scheduler/ipp.c:1862 scheduler/ipp.c:1900 scheduler/ipp.c:1944
-#: scheduler/ipp.c:2361
 #, c-format
 msgid "Unable to copy PPD file - %s!"
 msgstr ""
 
-#: scheduler/ipp.c:1915 scheduler/ipp.c:1954 scheduler/ipp.c:2000
-#: scheduler/ipp.c:2417
 msgid "Unable to copy PPD file!"
 msgstr ""
 
-#: scheduler/ipp.c:2076 scheduler/ipp.c:2364 scheduler/ipp.c:5188
-#: scheduler/ipp.c:6008 scheduler/ipp.c:6147 scheduler/ipp.c:7394
-#: scheduler/ipp.c:7538 scheduler/ipp.c:7776 scheduler/ipp.c:8261
-#: scheduler/ipp.c:2116 scheduler/ipp.c:2412 scheduler/ipp.c:5102
-#: scheduler/ipp.c:5955 scheduler/ipp.c:7452 scheduler/ipp.c:7599
-#: scheduler/ipp.c:7839 scheduler/ipp.c:8334 scheduler/ipp.c:2158
-#: scheduler/ipp.c:2451 scheduler/ipp.c:5220 scheduler/ipp.c:6210
-#: scheduler/ipp.c:7713 scheduler/ipp.c:7928 scheduler/ipp.c:8167
-#: scheduler/ipp.c:8672 scheduler/ipp.c:2613 scheduler/ipp.c:2906
-#: scheduler/ipp.c:5189 scheduler/ipp.c:6179 scheduler/ipp.c:7203
-#: scheduler/ipp.c:7418 scheduler/ipp.c:7657 scheduler/ipp.c:8164
-#: scheduler/ipp.c:5205 scheduler/ipp.c:6195 scheduler/ipp.c:7219
-#: scheduler/ipp.c:7434 scheduler/ipp.c:7673 scheduler/ipp.c:8180
 msgid "Got a printer-uri attribute but no job-id!"
 msgstr ""
 
-#: scheduler/ipp.c:2097 scheduler/ipp.c:2433 scheduler/ipp.c:5210
-#: scheduler/ipp.c:6029 scheduler/ipp.c:6169 scheduler/ipp.c:7416
-#: scheduler/ipp.c:7560 scheduler/ipp.c:7797 scheduler/ipp.c:8282
-#: scheduler/ipp.c:2138 scheduler/ipp.c:2484 scheduler/ipp.c:5125
-#: scheduler/ipp.c:5978 scheduler/ipp.c:6201 scheduler/ipp.c:7475
-#: scheduler/ipp.c:7622 scheduler/ipp.c:7862 scheduler/ipp.c:8357
-#: scheduler/ipp.c:2180 scheduler/ipp.c:2523 scheduler/ipp.c:5243
-#: scheduler/ipp.c:6233 scheduler/ipp.c:6456 scheduler/ipp.c:7736
-#: scheduler/ipp.c:7951 scheduler/ipp.c:8190 scheduler/ipp.c:8695
-#: scheduler/ipp.c:2635 scheduler/ipp.c:2978 scheduler/ipp.c:5212
-#: scheduler/ipp.c:6202 scheduler/ipp.c:6425 scheduler/ipp.c:7226
-#: scheduler/ipp.c:7441 scheduler/ipp.c:7680 scheduler/ipp.c:8187
-#: scheduler/ipp.c:5228 scheduler/ipp.c:6218 scheduler/ipp.c:6441
-#: scheduler/ipp.c:7242 scheduler/ipp.c:7457 scheduler/ipp.c:7696
-#: scheduler/ipp.c:8203
 #, c-format
 msgid "Bad job-uri attribute \"%s\"!"
 msgstr ""
 
-#: scheduler/ipp.c:2116 scheduler/ipp.c:2451 scheduler/ipp.c:5228
-#: scheduler/ipp.c:6047 scheduler/ipp.c:6188 scheduler/ipp.c:7434
-#: scheduler/ipp.c:7578 scheduler/ipp.c:7815 scheduler/ipp.c:8300
 #, c-format
 msgid "Job #%d doesn't exist!"
 msgstr ""
 
-#: scheduler/ipp.c:2131 scheduler/ipp.c:2172 scheduler/ipp.c:2214
-#: scheduler/ipp.c:2669
 #, c-format
 msgid "Job #%d is not held for authentication!"
 msgstr ""
 
-#: scheduler/ipp.c:2153 scheduler/ipp.c:2195
 #, c-format
 msgid "You are not authorized to authenticate job #%d owned by \"%s\"!"
 msgstr ""
 
-#: scheduler/ipp.c:2221 scheduler/ipp.c:2264 scheduler/ipp.c:2303
-#: scheduler/ipp.c:2758
 msgid "The printer-uri attribute is required!"
 msgstr ""
 
-#: scheduler/ipp.c:2238 scheduler/ipp.c:2283 scheduler/ipp.c:2322
-#: scheduler/ipp.c:2777
 msgid "Missing requesting-user-name attribute!"
 msgstr ""
 
-#: scheduler/ipp.c:2277 scheduler/ipp.c:2324 scheduler/ipp.c:2363
-#: scheduler/ipp.c:2818
 #, c-format
 msgid "The printer-uri \"%s\" is not valid."
 msgstr ""
 
-#: scheduler/ipp.c:2410 scheduler/ipp.c:2460 scheduler/ipp.c:2499
-#: scheduler/ipp.c:2954
 #, c-format
 msgid "No active jobs on %s!"
 msgstr ""
 
-#: scheduler/ipp.c:2462 scheduler/ipp.c:2513
 #, c-format
 msgid "You are not authorized to delete job #%d owned by \"%s\"!"
 msgstr ""
 
-#: scheduler/ipp.c:2476 scheduler/ipp.c:2527 scheduler/ipp.c:2563
-#: scheduler/ipp.c:3018
 #, c-format
 msgid "Job #%d is already %s - can't cancel."
 msgstr ""
 
-#: scheduler/ipp.c:3720 scheduler/ipp.c:3914 scheduler/ipp.c:4006
-#: scheduler/ipp.c:1190
 msgid "The printer or class is not shared!"
 msgstr ""
 
-#: scheduler/ipp.c:3746 scheduler/ipp.c:6647 scheduler/ipp.c:3940
-#: scheduler/ipp.c:6695 scheduler/ipp.c:4032 scheduler/ipp.c:6954
-#: scheduler/ipp.c:1216
 #, c-format
 msgid "Destination \"%s\" is not accepting jobs."
 msgstr ""
 
-#: scheduler/ipp.c:3759 scheduler/ipp.c:6443 scheduler/ipp.c:3954
-#: scheduler/ipp.c:6487 scheduler/ipp.c:4046 scheduler/ipp.c:6739
-#: scheduler/ipp.c:1230
 #, c-format
 msgid "Bad copies value %d."
 msgstr ""
 
-#: scheduler/ipp.c:3775 scheduler/ipp.c:6459 scheduler/ipp.c:3971
-#: scheduler/ipp.c:6504 scheduler/ipp.c:4063 scheduler/ipp.c:6756
-#: scheduler/ipp.c:1247
 #, c-format
 msgid "Bad page-ranges values %d-%d."
 msgstr ""
 
-#: scheduler/ipp.c:3795 scheduler/ipp.c:3991 scheduler/ipp.c:4083
-#: scheduler/ipp.c:1267
 msgid "Too many active jobs."
 msgstr ""
 
-#: scheduler/ipp.c:3801 scheduler/ipp.c:6668 scheduler/ipp.c:3997
-#: scheduler/ipp.c:6716 scheduler/ipp.c:4089 scheduler/ipp.c:6975
-#: scheduler/ipp.c:1273
 msgid "Quota limit reached."
 msgstr ""
 
-#: scheduler/ipp.c:3824 scheduler/ipp.c:6691 scheduler/ipp.c:4022
-#: scheduler/ipp.c:6741 scheduler/ipp.c:4114 scheduler/ipp.c:7000
-#: scheduler/ipp.c:1306
 #, c-format
 msgid "Unable to add job for destination \"%s\"!"
 msgstr ""
 
-#: scheduler/ipp.c:4469 scheduler/ipp.c:4673 scheduler/ipp.c:4770
-#: scheduler/ipp.c:4739 scheduler/ipp.c:4755
 msgid "No subscription attributes in request!"
 msgstr ""
 
-#: scheduler/ipp.c:4559 scheduler/ipp.c:4763 scheduler/ipp.c:4869
-#: scheduler/ipp.c:4838 scheduler/ipp.c:4854
 msgid "notify-events not specified!"
 msgstr ""
 
-#: scheduler/ipp.c:4577 scheduler/ipp.c:4781 scheduler/ipp.c:4887
-#: scheduler/ipp.c:4856 scheduler/ipp.c:4872
 #, c-format
 msgid "Job %d not found!"
 msgstr ""
 
-#: scheduler/ipp.c:4827 scheduler/ipp.c:4957 scheduler/ipp.c:5075
-#: scheduler/ipp.c:5044 scheduler/ipp.c:5060
 msgid "No default printer"
 msgstr ""
 
-#: scheduler/ipp.c:4930 scheduler/ipp.c:5060 scheduler/ipp.c:5178
-#: scheduler/ipp.c:5147 scheduler/ipp.c:5163
 msgid "cups-deviced failed to execute."
 msgstr ""
 
-#: scheduler/ipp.c:5393 scheduler/ipp.c:5479 scheduler/ipp.c:5722
-#: scheduler/ipp.c:5691 scheduler/ipp.c:5707
 msgid "cups-driverd failed to execute."
 msgstr ""
 
-#: scheduler/ipp.c:5571 scheduler/ipp.c:5594 scheduler/ipp.c:5837
-#: scheduler/ipp.c:5806 scheduler/ipp.c:5822
 msgid "No destinations added."
 msgstr ""
 
-#: scheduler/ipp.c:5794 scheduler/ipp.c:5736 scheduler/ipp.c:2615
-#: scheduler/ipp.c:5530 scheduler/ipp.c:5979 scheduler/ipp.c:7840
-#: scheduler/ipp.c:3070 scheduler/ipp.c:5499 scheduler/ipp.c:5948
-#: scheduler/ipp.c:7330 scheduler/ipp.c:3086 scheduler/ipp.c:5515
-#: scheduler/ipp.c:5964 scheduler/ipp.c:7346
 #, c-format
 msgid "notify-subscription-id %d no good!"
 msgstr ""
 
-#: scheduler/ipp.c:5878 scheduler/ipp.c:5822 scheduler/ipp.c:6065
-#: scheduler/ipp.c:6034 scheduler/ipp.c:6050
 #, c-format
 msgid "Job #%s does not exist!"
 msgstr ""
 
-#: scheduler/ipp.c:5900 scheduler/ipp.c:2116 scheduler/ipp.c:2451
-#: scheduler/ipp.c:5228 scheduler/ipp.c:6047 scheduler/ipp.c:6188
-#: scheduler/ipp.c:7434 scheduler/ipp.c:7578 scheduler/ipp.c:7815
-#: scheduler/ipp.c:8300 scheduler/ipp.c:2157 scheduler/ipp.c:2502
-#: scheduler/ipp.c:5143 scheduler/ipp.c:5844 scheduler/ipp.c:5996
-#: scheduler/ipp.c:6174 scheduler/ipp.c:6219 scheduler/ipp.c:7493
-#: scheduler/ipp.c:7640 scheduler/ipp.c:7880 scheduler/ipp.c:8375
-#: scheduler/ipp.c:2199 scheduler/ipp.c:2541 scheduler/ipp.c:5261
-#: scheduler/ipp.c:6087 scheduler/ipp.c:6251 scheduler/ipp.c:6429
-#: scheduler/ipp.c:6474 scheduler/ipp.c:7754 scheduler/ipp.c:7969
-#: scheduler/ipp.c:8208 scheduler/ipp.c:8713 scheduler/ipp.c:2654
-#: scheduler/ipp.c:2996 scheduler/ipp.c:5230 scheduler/ipp.c:6056
-#: scheduler/ipp.c:6220 scheduler/ipp.c:6398 scheduler/ipp.c:6443
-#: scheduler/ipp.c:7244 scheduler/ipp.c:7459 scheduler/ipp.c:7698
-#: scheduler/ipp.c:8205 scheduler/ipp.c:5246 scheduler/ipp.c:6072
-#: scheduler/ipp.c:6236 scheduler/ipp.c:6414 scheduler/ipp.c:6459
-#: scheduler/ipp.c:7260 scheduler/ipp.c:7475 scheduler/ipp.c:7714
-#: scheduler/ipp.c:8221
 #, c-format
 msgid "Job #%d does not exist!"
 msgstr ""
 
-#: scheduler/ipp.c:5969 scheduler/ipp.c:5915 scheduler/ipp.c:6150
-#: scheduler/ipp.c:6119 scheduler/ipp.c:6135
 msgid "No subscriptions found."
 msgstr ""
 
-#: scheduler/ipp.c:6058 scheduler/ipp.c:6007
 #, c-format
 msgid "Not authorized to hold job #%d owned by \"%s\"!"
 msgstr ""
 
-#: scheduler/ipp.c:6203 scheduler/ipp.c:8315 scheduler/ipp.c:6250
-#: scheduler/ipp.c:8390 scheduler/ipp.c:6505 scheduler/ipp.c:8728
-#: scheduler/ipp.c:6474 scheduler/ipp.c:8220 scheduler/ipp.c:6490
-#: scheduler/ipp.c:8236
 #, c-format
 msgid "Job #%d is finished and cannot be altered!"
 msgstr ""
 
-#: scheduler/ipp.c:6215 scheduler/ipp.c:6262
 #, c-format
 msgid "You are not authorized to move job #%d owned by \"%s\"!"
 msgstr ""
 
-#: scheduler/ipp.c:6228 scheduler/ipp.c:6098 scheduler/ipp.c:6353
-#: scheduler/ipp.c:6322 scheduler/ipp.c:6338
 msgid "job-printer-uri attribute missing!"
 msgstr ""
 
-#: scheduler/ipp.c:6485 scheduler/ipp.c:7847 scheduler/ipp.c:6531
-#: scheduler/ipp.c:7913 scheduler/ipp.c:6783 scheduler/ipp.c:8238
-#: scheduler/ipp.c:6703 scheduler/ipp.c:7728 scheduler/ipp.c:6719
-#: scheduler/ipp.c:7744
 #, c-format
 msgid "Unsupported compression \"%s\"!"
 msgstr ""
 
-#: scheduler/ipp.c:6504 scheduler/ipp.c:7866 scheduler/ipp.c:6550
-#: scheduler/ipp.c:7932 scheduler/ipp.c:6802 scheduler/ipp.c:8257
-#: scheduler/ipp.c:6722 scheduler/ipp.c:7747 scheduler/ipp.c:6738
-#: scheduler/ipp.c:7763
 msgid "No file!?!"
 msgstr ""
 
-#: scheduler/ipp.c:6522 scheduler/ipp.c:6568 scheduler/ipp.c:6820
-#: scheduler/ipp.c:6740 scheduler/ipp.c:6756
 #, c-format
 msgid "Could not scan type \"%s\"!"
 msgstr ""
 
-#: scheduler/ipp.c:6574 scheduler/ipp.c:7936 scheduler/ipp.c:6620
-#: scheduler/ipp.c:8001 scheduler/ipp.c:6879 scheduler/ipp.c:8332
-#: scheduler/ipp.c:6799 scheduler/ipp.c:7822 scheduler/ipp.c:6815
-#: scheduler/ipp.c:7838
 #, c-format
 msgid "Unsupported format '%s/%s'!"
 msgstr ""
 
-#: scheduler/ipp.c:6621 scheduler/ipp.c:6669 scheduler/ipp.c:6928
 msgid "Printer not shared!"
 msgstr ""
 
-#: scheduler/ipp.c:6661 scheduler/ipp.c:6709 scheduler/ipp.c:6968
 #, c-format
 msgid "Too many jobs - %d jobs, max jobs is %d."
 msgstr ""
 
-#: scheduler/ipp.c:7448 scheduler/ipp.c:7507 scheduler/ipp.c:7768
-#: scheduler/ipp.c:7258 scheduler/ipp.c:7274
 #, c-format
 msgid "Job #%d is not held!"
 msgstr ""
 
-#: scheduler/ipp.c:7459 scheduler/ipp.c:7518
 #, c-format
 msgid "You are not authorized to release job id %d owned by \"%s\"!"
 msgstr ""
 
-#: scheduler/ipp.c:7592 scheduler/ipp.c:7654 scheduler/ipp.c:7983
-#: scheduler/ipp.c:7473 scheduler/ipp.c:7489
 #, c-format
 msgid "Job #%d is not complete!"
 msgstr ""
 
-#: scheduler/ipp.c:7608 scheduler/ipp.c:7670 scheduler/ipp.c:8001
-#: scheduler/ipp.c:7491 scheduler/ipp.c:7507
 #, c-format
 msgid "Job #%d cannot be restarted - no files!"
 msgstr ""
 
-#: scheduler/ipp.c:7619 scheduler/ipp.c:7681
 #, c-format
 msgid "You are not authorized to restart job id %d owned by \"%s\"!"
 msgstr ""
 
-#: scheduler/ipp.c:7826 scheduler/ipp.c:7891
 #, c-format
 msgid "You are not authorized to send document for job #%d owned by \"%s\"!"
 msgstr ""
 
-#: scheduler/ipp.c:7883 scheduler/ipp.c:8803 scheduler/ipp.c:7949
-#: scheduler/ipp.c:8883 scheduler/ipp.c:8274 scheduler/ipp.c:9225
-#: scheduler/ipp.c:7764 scheduler/ipp.c:8967 scheduler/ipp.c:7780
-#: scheduler/ipp.c:8983
 #, c-format
 msgid "Bad document-format \"%s\"!"
 msgstr ""
 
-#: scheduler/ipp.c:8326 scheduler/ipp.c:8401
 #, c-format
 msgid "You are not authorized to alter job id %d owned by \"%s\"!"
 msgstr ""
 
-#: scheduler/ipp.c:8371 scheduler/ipp.c:8446 scheduler/ipp.c:8783
-#: scheduler/ipp.c:8275 scheduler/ipp.c:8291
 #, c-format
 msgid "%s cannot be changed."
 msgstr ""
 
-#: scheduler/ipp.c:8387 scheduler/ipp.c:8462 scheduler/ipp.c:8799
-#: scheduler/ipp.c:8291 scheduler/ipp.c:8307
 msgid "Bad job-priority value!"
 msgstr ""
 
-#: scheduler/ipp.c:8395 scheduler/ipp.c:8470 scheduler/ipp.c:8807
-#: scheduler/ipp.c:8299 scheduler/ipp.c:8315
 msgid "Job is completed and cannot be changed."
 msgstr ""
 
-#: scheduler/ipp.c:8409 scheduler/ipp.c:8484 scheduler/ipp.c:8821
-#: scheduler/ipp.c:8313 scheduler/ipp.c:8329
 msgid "Bad job-state value!"
 msgstr ""
 
-#: scheduler/ipp.c:8423 scheduler/ipp.c:8435 scheduler/ipp.c:8446
-#: scheduler/ipp.c:8498 scheduler/ipp.c:8510 scheduler/ipp.c:8521
-#: scheduler/ipp.c:8835 scheduler/ipp.c:8850 scheduler/ipp.c:8861
-#: scheduler/ipp.c:8327 scheduler/ipp.c:8342 scheduler/ipp.c:8353
-#: scheduler/ipp.c:8343 scheduler/ipp.c:8358 scheduler/ipp.c:8369
 msgid "Job state cannot be changed."
 msgstr ""
 
-#: scheduler/ipp.c:8787 scheduler/ipp.c:8867 scheduler/ipp.c:9209
-#: scheduler/ipp.c:8951 scheduler/ipp.c:8967
 #, c-format
 msgid "Unsupported compression attribute %s!"
 msgstr ""
 
-#: scheduler/ipp.c:8815 scheduler/ipp.c:8894 scheduler/ipp.c:9236
-#: scheduler/ipp.c:8978 scheduler/ipp.c:8994
 #, c-format
 msgid "Unsupported format \"%s\"!"
 msgstr ""
 
-#: berkeley/lpc.c:201
 #, c-format
 msgid "%s is not implemented by the CUPS version of lpc.\n"
 msgstr ""
 
-#: berkeley/lpc.c:216
 msgid ""
 "Commands may be abbreviated.  Commands are:\n"
 "\n"
 "exit    help    quit    status  ?\n"
 msgstr ""
 
-#: berkeley/lpc.c:222 berkeley/lpc.c:221
 msgid "help\t\tget help on commands\n"
 msgstr ""
 
-#: berkeley/lpc.c:225 berkeley/lpc.c:223
 msgid "status\t\tshow status of daemon and queue\n"
 msgstr ""
 
-#: berkeley/lpc.c:228 berkeley/lpc.c:225
 msgid "?Invalid help command unknown\n"
 msgstr ""
 
-#: berkeley/lpc.c:478 berkeley/lpc.c:490 berkeley/lpc.c:475 berkeley/lpc.c:487
-#: berkeley/lpc.c:476 berkeley/lpc.c:488
 #, c-format
 msgid "\tprinter is on device '%s' speed -1\n"
 msgstr ""
 
-#: berkeley/lpc.c:496 berkeley/lpc.c:493 berkeley/lpc.c:494
 msgid "\tqueuing is enabled\n"
 msgstr ""
 
-#: berkeley/lpc.c:498 berkeley/lpc.c:495 berkeley/lpc.c:496
 msgid "\tqueuing is disabled\n"
 msgstr ""
 
-#: berkeley/lpc.c:501 berkeley/lpc.c:498 berkeley/lpc.c:499
 msgid "\tprinting is enabled\n"
 msgstr ""
 
-#: berkeley/lpc.c:503 berkeley/lpc.c:500 berkeley/lpc.c:501
 msgid "\tprinting is disabled\n"
 msgstr ""
 
-#: berkeley/lpc.c:506 berkeley/lpc.c:503 berkeley/lpc.c:504
 msgid "\tno entries\n"
 msgstr ""
 
-#: berkeley/lpc.c:508 berkeley/lpc.c:505 berkeley/lpc.c:506
 #, c-format
 msgid "\t%d entries\n"
 msgstr ""
 
-#: berkeley/lpc.c:510 berkeley/lpc.c:507 berkeley/lpc.c:508
 msgid "\tdaemon present\n"
 msgstr ""
 
-#: berkeley/lpq.c:94
 msgid "lpq: Unable to contact server!\n"
 msgstr ""
 
-#: berkeley/lpq.c:125 berkeley/lpr.c:114 berkeley/lprm.c:107
-#: systemv/accept.c:108 systemv/cancel.c:95 systemv/lpstat.c:115
-#: systemv/lpadmin.c:284 systemv/lp.c:135 systemv/lpinfo.c:80
-#: systemv/lpmove.c:84 systemv/accept.c:106 systemv/cancel.c:93
-#: systemv/lpmove.c:89 berkeley/lpq.c:124 systemv/lp.c:136
-#: systemv/lpstat.c:116 berkeley/lpr.c:116 systemv/lp.c:140
-#: systemv/cupsaddsmb.c:98
 #, c-format
 msgid "%s: Sorry, no encryption support compiled in!\n"
 msgstr ""
 
-#: berkeley/lpq.c:155
 #, c-format
 msgid "lpq: Unknown destination \"%s/%s\"!\n"
 msgstr ""
 
-#: berkeley/lpq.c:159
 #, c-format
 msgid "lpq: Unknown destination \"%s\"!\n"
 msgstr ""
 
-#: berkeley/lpq.c:211 systemv/lp.c:564
 #, c-format
 msgid "lp: error - %s environment variable names non-existent destination \"%s\"!\n"
 msgstr ""
 
-#: berkeley/lpq.c:216
 msgid "lpq: error - no default destination available.\n"
 msgstr ""
 
-#: berkeley/lpq.c:363 berkeley/lpq.c:523
 #, c-format
 msgid "lpq: get-jobs failed: %s\n"
 msgstr ""
 
-#: berkeley/lpq.c:457 berkeley/lpq.c:444 berkeley/lpq.c:488
 msgid "Rank   Owner      Pri  Job        Files                       Total Size\n"
 msgstr ""
 
-#: berkeley/lpq.c:461 berkeley/lpq.c:448 berkeley/lpq.c:492
 msgid "Rank    Owner   Job     File(s)                         Total Size\n"
 msgstr ""
 
-#: berkeley/lpq.c:498 berkeley/lpq.c:485 berkeley/lpq.c:529
 #, c-format
 msgid "%s: %-33.33s [job %d localhost]\n"
 msgstr ""
 
-#: berkeley/lpq.c:500 berkeley/lpq.c:487 berkeley/lpq.c:531
 #, c-format
 msgid "        %-39.39s %.0f bytes\n"
 msgstr ""
 
-#: berkeley/lpq.c:506 berkeley/lpq.c:493 berkeley/lpq.c:537
 #, c-format
 msgid "%-6s %-10.10s %-4d %-10d %-27.27s %.0f bytes\n"
 msgstr ""
 
-#: berkeley/lpq.c:511 berkeley/lpq.c:498 berkeley/lpq.c:542
 #, c-format
 msgid "%-7s %-7.7s %-7d %-31.31s %.0f bytes\n"
 msgstr ""
 
-#: berkeley/lpq.c:529 berkeley/lpq.c:515 berkeley/lpq.c:559
 msgid "no entries\n"
 msgstr ""
 
-#: berkeley/lpq.c:591 berkeley/lpq.c:620
 #, c-format
 msgid "lpq: get-printer-attributes failed: %s\n"
 msgstr ""
 
-#: berkeley/lpq.c:605 berkeley/lpq.c:576 berkeley/lpq.c:621
 #, c-format
 msgid "%s is ready\n"
 msgstr ""
 
-#: berkeley/lpq.c:608 berkeley/lpq.c:579 berkeley/lpq.c:624
 #, c-format
 msgid "%s is ready and printing\n"
 msgstr ""
 
-#: berkeley/lpq.c:612 berkeley/lpq.c:583 berkeley/lpq.c:628
 #, c-format
 msgid "%s is not ready\n"
 msgstr ""
 
-#: berkeley/lpq.c:633 berkeley/lpq.c:601
 msgid "Usage: lpq [-P dest] [-l] [+interval]\n"
 msgstr ""
 
-#: berkeley/lpr.c:132
 #, c-format
 msgid "lpr: error - expected value after -%c option!\n"
 msgstr ""
 
-#: berkeley/lpr.c:146
 #, c-format
 msgid "lpr: warning - '%c' format modifier not supported - output may not be correct!\n"
 msgstr ""
 
-#: berkeley/lpr.c:159
 msgid "lpr: error - expected option=value after -o option!\n"
 msgstr ""
 
-#: berkeley/lpr.c:185
 msgid "lpr: warning - email notification is not currently supported!\n"
 msgstr ""
 
-#: berkeley/lpr.c:207
 msgid "lpr: error - expected destination after -P option!\n"
 msgstr ""
 
-#: berkeley/lpr.c:240
 msgid "lpr: error - expected copy count after -# option!\n"
 msgstr ""
 
-#: berkeley/lpr.c:263
 #, c-format
 msgid "lpr: error - expected name after -%c option!\n"
 msgstr ""
 
-#: berkeley/lpr.c:281
 msgid "lpr: error - expected username after -U option!\n"
 msgstr ""
 
-#: berkeley/lpr.c:292
 #, c-format
 msgid "lpr: error - unknown option '%c'!\n"
 msgstr ""
 
-#: berkeley/lpr.c:305
 #, c-format
 msgid "lpr: error - unable to access \"%s\" - %s\n"
 msgstr ""
 
-#: berkeley/lpr.c:323
 #, c-format
 msgid "lpr: error - too many files - \"%s\"\n"
 msgstr ""
 
-#: berkeley/lpr.c:364
 #, c-format
 msgid "lpr: error - %s environment variable names non-existent destination \"%s\"!\n"
 msgstr ""
 
-#: berkeley/lpr.c:369
 msgid "lpr: error - no default destination available.\n"
 msgstr ""
 
-#: berkeley/lpr.c:372
 msgid "lpr: error - scheduler not responding!\n"
 msgstr ""
 
-#: berkeley/lpr.c:421
 #, c-format
 msgid "lpr: error - unable to create temporary file \"%s\" - %s\n"
 msgstr ""
 
-#: berkeley/lpr.c:431
 #, c-format
 msgid "lpr: error - unable to write to temporary file \"%s\" - %s\n"
 msgstr ""
 
-#: berkeley/lpr.c:445
 msgid "lpr: error - stdin is empty, so no job has been sent.\n"
 msgstr ""
 
-#: berkeley/lpr.c:461 berkeley/lpr.c:460
 #, c-format
 msgid "lpr: error - unable to print file: %s\n"
 msgstr ""
 
-#: berkeley/lprm.c:87
 msgid "lprm: Unable to contact server!\n"
 msgstr ""
 
-#: berkeley/lprm.c:127
 #, c-format
 msgid "lprm: Unknown destination \"%s\"!\n"
 msgstr ""
 
-#: berkeley/lprm.c:136
 #, c-format
 msgid "lprm: Unknown option '%c'!\n"
 msgstr ""
 
-#: berkeley/lprm.c:223
 msgid "lprm: Job or printer not found!\n"
 msgstr ""
 
-#: berkeley/lprm.c:227
 msgid "lprm: Not authorized to lprm job(s)!\n"
 msgstr ""
 
-#: berkeley/lprm.c:231
 #, c-format
 msgid "lprm: You don't own job ID %d!\n"
 msgstr ""
 
-#: berkeley/lprm.c:236
 msgid "lprm: Unable to lprm job(s)!\n"
 msgstr ""
 
-#: berkeley/lprm.c:253 berkeley/lprm.c:269
 msgid "lprm: Unable to cancel job(s)!\n"
 msgstr ""
 
-#: systemv/accept.c:84 systemv/accept.c:82
 #, c-format
 msgid "%s: Don't know what to do!\n"
 msgstr ""
 
-#: systemv/accept.c:129 systemv/accept.c:127
 #, c-format
 msgid "%s: Expected server name after -h!\n"
 msgstr ""
 
-#: systemv/accept.c:147 systemv/accept.c:145
 #, c-format
 msgid "%s: Expected reason text after -r!\n"
 msgstr ""
 
-#: systemv/accept.c:157 systemv/accept.c:155
 #, c-format
 msgid "%s: Unknown option '%c'!\n"
 msgstr ""
 
-#: systemv/accept.c:173 systemv/accept.c:171 systemv/accept.c:192
 #, c-format
 msgid "%s: Unable to connect to server: %s\n"
 msgstr ""
 
-#: systemv/accept.c:217 systemv/accept.c:227 systemv/accept.c:268
-#: systemv/accept.c:278 systemv/accept.c:206 systemv/accept.c:230
 #, c-format
 msgid "%s: Operation failed: %s\n"
 msgstr ""
 
-#: systemv/cancel.c:118 systemv/cancel.c:116
 msgid "cancel: Error - expected hostname after '-h' option!\n"
 msgstr ""
 
-#: systemv/cancel.c:139 systemv/cancel.c:137
 msgid "cancel: Error - expected username after '-u' option!\n"
 msgstr ""
 
-#: systemv/cancel.c:150 systemv/cancel.c:148
 #, c-format
 msgid "cancel: Unknown option '%c'!\n"
 msgstr ""
 
-#: systemv/cancel.c:207 systemv/cancel.c:205
 #, c-format
 msgid "cancel: Unknown destination \"%s\"!\n"
 msgstr ""
 
-#: systemv/cancel.c:229 systemv/cancel.c:319 systemv/cancel.c:227
-#: systemv/cancel.c:308
 msgid "cancel: Unable to contact server!\n"
 msgstr ""
 
-#: systemv/cancel.c:295 systemv/cancel.c:370 systemv/cancel.c:284
-#: systemv/cancel.c:348
 #, c-format
 msgid "cancel: %s failed: %s\n"
 msgstr ""
 
-#: systemv/cupsaddsmb.c:290 systemv/cupsaddsmb.c:311
 #, c-format
 msgid "cupsaddsmb: Missing value on line %d!\n"
 msgstr ""
 
-#: systemv/cupsaddsmb.c:301 systemv/cupsaddsmb.c:322
 #, c-format
 msgid "cupsaddsmb: Missing double quote on line %d!\n"
 msgstr ""
 
-#: systemv/cupsaddsmb.c:313 systemv/cupsaddsmb.c:334
 #, c-format
 msgid "cupsaddsmb: Bad option + choice on line %d!\n"
 msgstr ""
 
-#: systemv/cupsaddsmb.c:496 systemv/cupsaddsmb.c:553
 #, c-format
 msgid "cupsaddsmb: Unable to connect to server \"%s\" for %s - %s\n"
 msgstr ""
 
-#: systemv/cupsaddsmb.c:509 systemv/cupsaddsmb.c:566
 #, c-format
 msgid "cupsaddsmb: No PPD file for printer \"%s\" - skipping!\n"
 msgstr ""
 
-#: systemv/cupsaddsmb.c:548 systemv/cupsaddsmb.c:562
 #, c-format
 msgid "cupsaddsmb: get-printer-attributes failed for \"%s\": %s\n"
 msgstr ""
 
-#: systemv/cupsaddsmb.c:578 systemv/cupsaddsmb.c:620
 #, c-format
 msgid "cupsaddsmb: Unable to convert PPD file for %s - %s\n"
 msgstr ""
 
-#: systemv/cupsaddsmb.c:633 systemv/cupsaddsmb.c:677
 #, c-format
 msgid "cupsaddsmb: Unable to copy Windows 2000 printer driver files (%d)!\n"
 msgstr ""
 
-#: systemv/cupsaddsmb.c:660 systemv/cupsaddsmb.c:704
 #, c-format
 msgid "cupsaddsmb: Unable to copy CUPS printer driver files (%d)!\n"
 msgstr ""
 
-#: systemv/cupsaddsmb.c:697 systemv/cupsaddsmb.c:739
 #, c-format
 msgid "cupsaddsmb: Unable to install Windows 2000 printer driver files (%d)!\n"
 msgstr ""
 
-#: systemv/cupsaddsmb.c:727 systemv/cupsaddsmb.c:771
 #, c-format
 msgid "cupsaddsmb: Unable to copy Windows 9x printer driver files (%d)!\n"
 msgstr ""
 
-#: systemv/cupsaddsmb.c:750 systemv/cupsaddsmb.c:792
 #, c-format
 msgid "cupsaddsmb: Unable to install Windows 9x printer driver files (%d)!\n"
 msgstr ""
 
-#: systemv/cupsaddsmb.c:771 systemv/cupsaddsmb.c:822
 #, c-format
 msgid "cupsaddsmb: Unable to set Windows printer driver (%d)!\n"
 msgstr ""
 
-#: systemv/cupsaddsmb.c:854 systemv/cupsaddsmb.c:905
 msgid ""
 "Usage: cupsaddsmb [options] printer1 ... printerN\n"
 "       cupsaddsmb [options] -a\n"
@@ -1072,408 +700,254 @@ msgid ""
 "  -v               Be verbose (show commands)\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:120 systemv/cupstestppd.c:137
 msgid "cupstestppd: The -q option is incompatible with the -v option.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:136 systemv/cupstestppd.c:153
 msgid "cupstestppd: The -v option is incompatible with the -q option.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:193 systemv/cupstestppd.c:210
 #, c-format
 msgid ""
 " FAIL\n"
 "      **FAIL**  Unable to open PPD file - %s\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:204 systemv/cupstestppd.c:221
 #, c-format
 msgid ""
 " FAIL\n"
 "      **FAIL**  Unable to open PPD file - %s on line %d.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:213 systemv/cupstestppd.c:230
 msgid "                REF: Page 42, section 5.2.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:217 systemv/cupstestppd.c:234
 msgid "                REF: Page 20, section 3.4.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:222 systemv/cupstestppd.c:239
 msgid "                REF: Pages 45-46, section 5.2.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:227 systemv/cupstestppd.c:244
 msgid "                REF: Pages 42-45, section 5.2.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:231 systemv/cupstestppd.c:248
 msgid "                REF: Pages 48-49, section 5.2.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:235 systemv/cupstestppd.c:252
 msgid "                REF: Pages 52-54, section 5.2.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:239 systemv/cupstestppd.c:256
 msgid "                REF: Page 15, section 3.2.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:243 systemv/cupstestppd.c:247
-#: systemv/cupstestppd.c:260 systemv/cupstestppd.c:264
 msgid "                REF: Page 15, section 3.1.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:251 systemv/cupstestppd.c:268
 msgid "                REF: Pages 16-17, section 3.2.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:255 systemv/cupstestppd.c:272
 msgid "                REF: Page 19, section 3.3.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:259 systemv/cupstestppd.c:276
 msgid "                REF: Page 27, section 3.5.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:280 systemv/cupstestppd.c:299
 msgid ""
 "\n"
 "    DETAILED CONFORMANCE TEST RESULTS\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:307 systemv/cupstestppd.c:326
-#: systemv/cupstestppd.c:325
 #, c-format
 msgid "        WARN    %s has no corresponding options!\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:318 systemv/cupstestppd.c:333
-#: systemv/cupstestppd.c:354 systemv/cupstestppd.c:369
-#: systemv/cupstestppd.c:397 systemv/cupstestppd.c:417
-#: systemv/cupstestppd.c:439 systemv/cupstestppd.c:459
-#: systemv/cupstestppd.c:479 systemv/cupstestppd.c:499
-#: systemv/cupstestppd.c:517 systemv/cupstestppd.c:535
-#: systemv/cupstestppd.c:556 systemv/cupstestppd.c:575
-#: systemv/cupstestppd.c:595 systemv/cupstestppd.c:615
-#: systemv/cupstestppd.c:635 systemv/cupstestppd.c:655
-#: systemv/cupstestppd.c:673 systemv/cupstestppd.c:690
-#: systemv/cupstestppd.c:712 systemv/cupstestppd.c:730
-#: systemv/cupstestppd.c:747 systemv/cupstestppd.c:765
-#: systemv/cupstestppd.c:781 systemv/cupstestppd.c:801
-#: systemv/cupstestppd.c:832 systemv/cupstestppd.c:854
-#: systemv/cupstestppd.c:902 systemv/cupstestppd.c:931
-#: systemv/cupstestppd.c:952 systemv/cupstestppd.c:337
-#: systemv/cupstestppd.c:352 systemv/cupstestppd.c:373
-#: systemv/cupstestppd.c:388 systemv/cupstestppd.c:416
-#: systemv/cupstestppd.c:436 systemv/cupstestppd.c:458
-#: systemv/cupstestppd.c:478 systemv/cupstestppd.c:498
-#: systemv/cupstestppd.c:518 systemv/cupstestppd.c:536
-#: systemv/cupstestppd.c:554 systemv/cupstestppd.c:594
-#: systemv/cupstestppd.c:614 systemv/cupstestppd.c:634
-#: systemv/cupstestppd.c:654 systemv/cupstestppd.c:674
-#: systemv/cupstestppd.c:692 systemv/cupstestppd.c:709
-#: systemv/cupstestppd.c:731 systemv/cupstestppd.c:749
-#: systemv/cupstestppd.c:766 systemv/cupstestppd.c:784
-#: systemv/cupstestppd.c:800 systemv/cupstestppd.c:820
-#: systemv/cupstestppd.c:851 systemv/cupstestppd.c:873
-#: systemv/cupstestppd.c:921 systemv/cupstestppd.c:950
-#: systemv/cupstestppd.c:971 systemv/cupstestppd.c:343
-#: systemv/cupstestppd.c:361 systemv/cupstestppd.c:376
-#: systemv/cupstestppd.c:412 systemv/cupstestppd.c:440
-#: systemv/cupstestppd.c:460 systemv/cupstestppd.c:482
-#: systemv/cupstestppd.c:502 systemv/cupstestppd.c:522
-#: systemv/cupstestppd.c:542 systemv/cupstestppd.c:560
-#: systemv/cupstestppd.c:578 systemv/cupstestppd.c:599
-#: systemv/cupstestppd.c:618 systemv/cupstestppd.c:638
-#: systemv/cupstestppd.c:658 systemv/cupstestppd.c:678
-#: systemv/cupstestppd.c:698 systemv/cupstestppd.c:716
-#: systemv/cupstestppd.c:733 systemv/cupstestppd.c:755
-#: systemv/cupstestppd.c:773 systemv/cupstestppd.c:790
-#: systemv/cupstestppd.c:808 systemv/cupstestppd.c:824
-#: systemv/cupstestppd.c:844 systemv/cupstestppd.c:875
-#: systemv/cupstestppd.c:897 systemv/cupstestppd.c:945
-#: systemv/cupstestppd.c:974 systemv/cupstestppd.c:995
-#: systemv/cupstestppd.c:1050 systemv/cupstestppd.c:1075
-#: systemv/cupstestppd.c:1095 systemv/cupstestppd.c:1116
-#: systemv/cupstestppd.c:1138 systemv/cupstestppd.c:1172
 msgid " FAIL\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:321 systemv/cupstestppd.c:340
-#: systemv/cupstestppd.c:364
 msgid ""
 "      **FAIL**  REQUIRED DefaultImageableArea\n"
 "                REF: Page 102, section 5.15.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:336 systemv/cupstestppd.c:355
-#: systemv/cupstestppd.c:379
 #, c-format
 msgid ""
 "      **FAIL**  BAD DefaultImageableArea %s!\n"
 "                REF: Page 102, section 5.15.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:346 systemv/cupstestppd.c:365
-#: systemv/cupstestppd.c:389
 msgid "        PASS    DefaultImageableArea\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:357 systemv/cupstestppd.c:376
-#: systemv/cupstestppd.c:400
 msgid ""
 "      **FAIL**  REQUIRED DefaultPaperDimension\n"
 "                REF: Page 103, section 5.15.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:372 systemv/cupstestppd.c:391
-#: systemv/cupstestppd.c:415
 #, c-format
 msgid ""
 "      **FAIL**  BAD DefaultPaperDimension %s!\n"
 "                REF: Page 103, section 5.15.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:380 systemv/cupstestppd.c:399
-#: systemv/cupstestppd.c:423
 msgid "        PASS    DefaultPaperDimension\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:400 systemv/cupstestppd.c:419
-#: systemv/cupstestppd.c:443
 #, c-format
 msgid ""
 "      **FAIL**  BAD Default%s %s\n"
 "                REF: Page 40, section 4.5.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:409 systemv/cupstestppd.c:428
-#: systemv/cupstestppd.c:452
 #, c-format
 msgid "        PASS    Default%s\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:420 systemv/cupstestppd.c:439
-#: systemv/cupstestppd.c:463
 #, c-format
 msgid ""
 "      **FAIL**  REQUIRED Default%s\n"
 "                REF: Page 40, section 4.5.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:432 systemv/cupstestppd.c:451
-#: systemv/cupstestppd.c:475
 msgid "        PASS    FileVersion\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:442 systemv/cupstestppd.c:461
-#: systemv/cupstestppd.c:485
 msgid ""
 "      **FAIL**  REQUIRED FileVersion\n"
 "                REF: Page 56, section 5.3.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:452 systemv/cupstestppd.c:471
-#: systemv/cupstestppd.c:495
 msgid "        PASS    FormatVersion\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:462 systemv/cupstestppd.c:481
-#: systemv/cupstestppd.c:505
 msgid ""
 "      **FAIL**  REQUIRED FormatVersion\n"
 "                REF: Page 56, section 5.3.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:472 systemv/cupstestppd.c:491
-#: systemv/cupstestppd.c:515
 msgid "        PASS    LanguageEncoding\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:482 systemv/cupstestppd.c:501
-#: systemv/cupstestppd.c:525
 msgid ""
 "      **FAIL**  REQUIRED LanguageEncoding\n"
 "                REF: Pages 56-57, section 5.3.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:492 systemv/cupstestppd.c:511
-#: systemv/cupstestppd.c:535
 msgid "        PASS    LanguageVersion\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:502 systemv/cupstestppd.c:521
-#: systemv/cupstestppd.c:545
 msgid ""
 "      **FAIL**  REQUIRED LanguageVersion\n"
 "                REF: Pages 57-58, section 5.3.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:520 systemv/cupstestppd.c:539
-#: systemv/cupstestppd.c:563
 msgid ""
 "      **FAIL**  BAD Manufacturer (should be \"HP\")\n"
 "                REF: Page 211, table D.1.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:528 systemv/cupstestppd.c:547
-#: systemv/cupstestppd.c:571
 msgid "        PASS    Manufacturer\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:538 systemv/cupstestppd.c:557
-#: systemv/cupstestppd.c:581
 msgid ""
 "      **FAIL**  REQUIRED Manufacturer\n"
 "                REF: Pages 58-59, section 5.3.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:559 systemv/cupstestppd.c:578
-#: systemv/cupstestppd.c:602
 #, c-format
 msgid ""
 "      **FAIL**  BAD ModelName - \"%c\" not allowed in string.\n"
 "                REF: Pages 59-60, section 5.3.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:568 systemv/cupstestppd.c:587
-#: systemv/cupstestppd.c:611
 msgid "        PASS    ModelName\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:578 systemv/cupstestppd.c:597
-#: systemv/cupstestppd.c:621
 msgid ""
 "      **FAIL**  REQUIRED ModelName\n"
 "                REF: Pages 59-60, section 5.3.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:588 systemv/cupstestppd.c:607
-#: systemv/cupstestppd.c:631
 msgid "        PASS    NickName\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:598 systemv/cupstestppd.c:617
-#: systemv/cupstestppd.c:641
 msgid ""
 "      **FAIL**  REQUIRED NickName\n"
 "                REF: Page 60, section 5.3.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:608 systemv/cupstestppd.c:627
-#: systemv/cupstestppd.c:651
 msgid "        PASS    PageSize\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:618 systemv/cupstestppd.c:637
-#: systemv/cupstestppd.c:661
 msgid ""
 "      **FAIL**  REQUIRED PageSize\n"
 "                REF: Pages 99-100, section 5.14.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:628 systemv/cupstestppd.c:647
-#: systemv/cupstestppd.c:671
 msgid "        PASS    PageRegion\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:638 systemv/cupstestppd.c:657
-#: systemv/cupstestppd.c:681
 msgid ""
 "      **FAIL**  REQUIRED PageRegion\n"
 "                REF: Page 100, section 5.14.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:648 systemv/cupstestppd.c:667
-#: systemv/cupstestppd.c:691
 msgid "        PASS    PCFileName\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:658 systemv/cupstestppd.c:677
-#: systemv/cupstestppd.c:701
 msgid ""
 "      **FAIL**  REQUIRED PCFileName\n"
 "                REF: Pages 61-62, section 5.3.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:676 systemv/cupstestppd.c:695
-#: systemv/cupstestppd.c:719
 msgid ""
 "      **FAIL**  BAD Product - not \"(string)\".\n"
 "                REF: Page 62, section 5.3.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:683 systemv/cupstestppd.c:702
-#: systemv/cupstestppd.c:726
 msgid "        PASS    Product\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:693 systemv/cupstestppd.c:712
-#: systemv/cupstestppd.c:736
 msgid ""
 "      **FAIL**  REQUIRED Product\n"
 "                REF: Page 62, section 5.3.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:715 systemv/cupstestppd.c:734
-#: systemv/cupstestppd.c:758
 msgid ""
 "      **FAIL**  BAD PSVersion - not \"(string) int\".\n"
 "                REF: Pages 62-64, section 5.3.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:723 systemv/cupstestppd.c:742
-#: systemv/cupstestppd.c:766
 msgid "        PASS    PSVersion\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:733 systemv/cupstestppd.c:752
-#: systemv/cupstestppd.c:776
 msgid ""
 "      **FAIL**  REQUIRED PSVersion\n"
 "                REF: Pages 62-64, section 5.3.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:750 systemv/cupstestppd.c:769
-#: systemv/cupstestppd.c:793
 msgid ""
 "      **FAIL**  BAD ShortNickName - longer than 31 chars.\n"
 "                REF: Pages 64-65, section 5.3.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:758 systemv/cupstestppd.c:777
-#: systemv/cupstestppd.c:801
 msgid "        PASS    ShortNickName\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:768 systemv/cupstestppd.c:787
-#: systemv/cupstestppd.c:811
 msgid ""
 "      **FAIL**  REQUIRED ShortNickName\n"
 "                REF: Page 64-65, section 5.3.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:784 systemv/cupstestppd.c:803
-#: systemv/cupstestppd.c:827
 msgid ""
 "      **FAIL**  BAD JobPatchFile attribute in file\n"
 "                REF: Page 24, section 3.4.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:804 systemv/cupstestppd.c:823
-#: systemv/cupstestppd.c:847
 msgid ""
 "      **FAIL**  REQUIRED PageSize\n"
 "                REF: Page 41, section 5.\n"
 "                REF: Page 99, section 5.14.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:835 systemv/cupstestppd.c:854
-#: systemv/cupstestppd.c:878
 #, c-format
 msgid ""
 "      **FAIL**  REQUIRED ImageableArea for PageSize %s\n"
@@ -1481,8 +955,6 @@ msgid ""
 "                REF: Page 102, section 5.15.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:857 systemv/cupstestppd.c:876
-#: systemv/cupstestppd.c:900
 #, c-format
 msgid ""
 "      **FAIL**  REQUIRED PaperDimension for PageSize %s\n"
@@ -1490,620 +962,419 @@ msgid ""
 "                REF: Page 103, section 5.15.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:905 systemv/cupstestppd.c:924
-#: systemv/cupstestppd.c:948
 #, c-format
 msgid ""
 "      **FAIL**  Bad %s choice %s!\n"
 "                REF: Page 84, section 5.9\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:934 systemv/cupstestppd.c:953
-#: systemv/cupstestppd.c:977
 #, c-format
 msgid ""
 "      **FAIL**  REQUIRED %s does not define choice None!\n"
 "                REF: Page 122, section 5.17\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:955 systemv/cupstestppd.c:974
-#: systemv/cupstestppd.c:998
 #, c-format
 msgid ""
 "      **FAIL**  Bad %s choice %s!\n"
 "                REF: Page 122, section 5.17\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:967 systemv/cupstestppd.c:986
-#: systemv/cupstestppd.c:1186
 msgid " PASS\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:976 systemv/cupstestppd.c:997
-#: systemv/cupstestppd.c:1197
 #, c-format
 msgid ""
 "        WARN    Duplex option keyword %s should be named Duplex or JCLDuplex!\n"
 "                REF: Page 122, section 5.17\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:986 systemv/cupstestppd.c:1007
-#: systemv/cupstestppd.c:1207
 msgid "        WARN    Default choices conflicting!\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:994 systemv/cupstestppd.c:1015
-#: systemv/cupstestppd.c:1215
 #, c-format
 msgid ""
 "        WARN    Obsolete PPD version %.1f!\n"
 "                REF: Page 42, section 5.2.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:1002 systemv/cupstestppd.c:1023
-#: systemv/cupstestppd.c:1223
 msgid ""
 "        WARN    LanguageEncoding required by PPD 4.3 spec.\n"
 "                REF: Pages 56-57, section 5.3.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:1010 systemv/cupstestppd.c:1031
-#: systemv/cupstestppd.c:1231
 msgid ""
 "        WARN    Manufacturer required by PPD 4.3 spec.\n"
 "                REF: Pages 58-59, section 5.3.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:1023 systemv/cupstestppd.c:1044
-#: systemv/cupstestppd.c:1244
 msgid ""
 "        WARN    PCFileName longer than 8.3 in violation of PPD spec.\n"
 "                REF: Pages 61-62, section 5.3.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:1031 systemv/cupstestppd.c:1052
-#: systemv/cupstestppd.c:1252
 msgid ""
 "        WARN    ShortNickName required by PPD 4.3 spec.\n"
 "                REF: Pages 64-65, section 5.3.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:1048 systemv/cupstestppd.c:1069
-#: systemv/cupstestppd.c:1269
 msgid ""
 "        WARN    Protocols contains both PJL and BCP; expected TBCP.\n"
 "                REF: Pages 78-79, section 5.7.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:1057 systemv/cupstestppd.c:1078
-#: systemv/cupstestppd.c:1278
 msgid ""
 "        WARN    Protocols contains PJL but JCL attributes are not set.\n"
 "                REF: Pages 78-79, section 5.7.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:1085 systemv/cupstestppd.c:1106
-#: systemv/cupstestppd.c:1306
 #, c-format
 msgid ""
 "        WARN    %s shares a common prefix with %s\n"
 "                REF: Page 15, section 3.2.\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:1097 systemv/cupstestppd.c:1118
-#: systemv/cupstestppd.c:1318
 #, c-format
 msgid "    %d ERROR%s FOUND\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:1100 systemv/cupstestppd.c:1121
-#: systemv/cupstestppd.c:1321
 msgid "    NO ERRORS FOUND\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:1360 systemv/cupstestppd.c:1465
-#: systemv/cupstestppd.c:1665
 #, c-format
 msgid ""
 "        WARN    \"%s %s\" conflicts with \"%s %s\"\n"
 "                (constraint=\"%s %s %s %s\")\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:1376 systemv/cupstestppd.c:1481
-#: systemv/cupstestppd.c:1681
 msgid ""
 "Usage: cupstestppd [-q] [-r] [-v[v]] filename1.ppd[.gz] [... filenameN.ppd[.gz]]\n"
 "       program | cupstestppd [-q] [-r] [-v[v]] -\n"
 msgstr ""
 
-#: systemv/lpstat.c:144 systemv/lpstat.c:155
 msgid "lpstat: Need \"completed\" or \"not-completed\" after -W!\n"
 msgstr ""
 
-#: systemv/lpstat.c:212 systemv/lpstat.c:213
 msgid "lpstat: The -b option requires a destination argument.\n"
 msgstr ""
 
-#: systemv/lpstat.c:274 systemv/lpinfo.c:143 systemv/lpmove.c:105
-#: systemv/lpmove.c:110 systemv/lpstat.c:275
 msgid "Error: need hostname after '-h' option!\n"
 msgstr ""
 
-#: systemv/lpstat.c:433 systemv/lpstat.c:434
 #, c-format
 msgid "lpstat: Unknown option '%c'!\n"
 msgstr ""
 
-#: systemv/lpstat.c:504 systemv/lpstat.c:505
 #, c-format
 msgid "lpstat: Invalid destination name in list \"%s\"!\n"
 msgstr ""
 
-#: systemv/lpstat.c:519 systemv/lpstat.c:520
 #, c-format
 msgid "lpstat: Unknown destination \"%s\"!\n"
 msgstr ""
 
-#: systemv/lpstat.c:541 systemv/lpstat.c:542
 #, c-format
 msgid "lpstat: Unable to connect to server %s on port %d: %s\n"
 msgstr ""
 
-#: systemv/lpstat.c:625 systemv/lpstat.c:773 systemv/lpstat.c:1187
-#: systemv/lpstat.c:1379 systemv/lpstat.c:1809 systemv/lpstat.c:2262
 #, c-format
 msgid "lpstat: get-printers failed: %s\n"
 msgstr ""
 
-#: systemv/lpstat.c:741
 #, c-format
 msgid "%s accepting requests since Jan 01 00:00\n"
 msgstr ""
 
-#: systemv/lpstat.c:745
 #, c-format
 msgid ""
 "%s not accepting requests since Jan 01 00:00 -\n"
 "\t%s\n"
 msgstr ""
 
-#: systemv/lpstat.c:754
 #, c-format
 msgid "%s/%s accepting requests since Jan 01 00:00\n"
 msgstr ""
 
-#: systemv/lpstat.c:758
 #, c-format
 msgid ""
 "%s/%s not accepting requests since Jan 01 00:00 -\n"
 "\t%s\n"
 msgstr ""
 
-#: systemv/lpstat.c:861 systemv/lpstat.c:1056
 #, c-format
 msgid "lpstat: get-classes failed: %s\n"
 msgstr ""
 
-#: systemv/lpstat.c:1033 systemv/lpstat.c:1011 systemv/lpstat.c:1039
 #, c-format
 msgid "members of class %s:\n"
 msgstr ""
 
-#: systemv/lpstat.c:1080 systemv/lpstat.c:1057 systemv/lpstat.c:1085
 #, c-format
 msgid "system default destination: %s/%s\n"
 msgstr ""
 
-#: systemv/lpstat.c:1083 systemv/lpstat.c:1060 systemv/lpstat.c:1088
 #, c-format
 msgid "system default destination: %s\n"
 msgstr ""
 
-#: systemv/lpstat.c:1105 systemv/lpstat.c:1082 systemv/lpstat.c:1110
 #, c-format
 msgid "lpstat: error - %s environment variable names non-existent destination \"%s\"!\n"
 msgstr ""
 
-#: systemv/lpstat.c:1109 systemv/lpstat.c:1086 systemv/lpstat.c:1114
 msgid "no system default destination\n"
 msgstr ""
 
-#: systemv/lpstat.c:1313 systemv/lpstat.c:1281 systemv/lpstat.c:1309
-#: systemv/lpstat.c:1311
 #, c-format
 msgid "Output for printer %s is sent to remote printer %s on %s\n"
 msgstr ""
 
-#: systemv/lpstat.c:1319 systemv/lpstat.c:1323 systemv/lpstat.c:1287
-#: systemv/lpstat.c:1291 systemv/lpstat.c:1315 systemv/lpstat.c:1317
-#: systemv/lpstat.c:1321
 #, c-format
 msgid "Output for printer %s is sent to %s\n"
 msgstr ""
 
-#: systemv/lpstat.c:1331 systemv/lpstat.c:1299 systemv/lpstat.c:1327
-#: systemv/lpstat.c:1329
 #, c-format
 msgid "Output for printer %s/%s is sent to remote printer %s on %s\n"
 msgstr ""
 
-#: systemv/lpstat.c:1337 systemv/lpstat.c:1341 systemv/lpstat.c:1305
-#: systemv/lpstat.c:1309 systemv/lpstat.c:1333 systemv/lpstat.c:1335
-#: systemv/lpstat.c:1339
 #, c-format
 msgid "Output for printer %s/%s is sent to %s\n"
 msgstr ""
 
-#: systemv/lpstat.c:1346 systemv/lpstat.c:1349 systemv/lpstat.c:1352
-#: systemv/lpstat.c:1314 systemv/lpstat.c:1317 systemv/lpstat.c:1320
-#: systemv/lpstat.c:1342 systemv/lpstat.c:1345 systemv/lpstat.c:1348
-#: systemv/lpstat.c:1344 systemv/lpstat.c:1347 systemv/lpstat.c:1350
 #, c-format
 msgid "device for %s: %s\n"
 msgstr ""
 
-#: systemv/lpstat.c:1359 systemv/lpstat.c:1362 systemv/lpstat.c:1365
-#: systemv/lpstat.c:1327 systemv/lpstat.c:1330 systemv/lpstat.c:1333
-#: systemv/lpstat.c:1355 systemv/lpstat.c:1358 systemv/lpstat.c:1361
-#: systemv/lpstat.c:1357 systemv/lpstat.c:1360 systemv/lpstat.c:1363
 #, c-format
 msgid "device for %s/%s: %s\n"
 msgstr ""
 
-#: systemv/lpstat.c:1481 systemv/lpstat.c:1693
 #, c-format
 msgid "lpstat: get-jobs failed: %s\n"
 msgstr ""
 
-#: systemv/lpstat.c:1681 systemv/lpstat.c:1635 systemv/lpstat.c:1663
-#: systemv/lpstat.c:1665
 #, c-format
 msgid "\tqueued for %s\n"
 msgstr ""
 
-#: systemv/lpstat.c:2037 systemv/lpstat.c:1971 systemv/lpstat.c:1999
-#: systemv/lpstat.c:2001
 #, c-format
 msgid "printer %s is idle.  enabled since %s\n"
 msgstr ""
 
-#: systemv/lpstat.c:2042 systemv/lpstat.c:1976 systemv/lpstat.c:2004
-#: systemv/lpstat.c:2006
 #, c-format
 msgid "printer %s now printing %s-%d.  enabled since %s\n"
 msgstr ""
 
-#: systemv/lpstat.c:2048 systemv/lpstat.c:1982 systemv/lpstat.c:2010
-#: systemv/lpstat.c:2012
 #, c-format
 msgid "printer %s disabled since %s -\n"
 msgstr ""
 
-#: systemv/lpstat.c:2056 systemv/lpstat.c:2169 systemv/lpstat.c:1990
-#: systemv/lpstat.c:2103 systemv/lpstat.c:2018 systemv/lpstat.c:2131
-#: systemv/lpstat.c:2020 systemv/lpstat.c:2133
 msgid "\treason unknown\n"
 msgstr ""
 
-#: systemv/lpstat.c:2063 systemv/lpstat.c:2176 systemv/lpstat.c:1997
-#: systemv/lpstat.c:2110 systemv/lpstat.c:2025 systemv/lpstat.c:2138
-#: systemv/lpstat.c:2027 systemv/lpstat.c:2140
 msgid ""
 "\tForm mounted:\n"
 "\tContent types: any\n"
 "\tPrinter types: unknown\n"
 msgstr ""
 
-#: systemv/lpstat.c:2069 systemv/lpstat.c:2182 systemv/lpstat.c:2003
-#: systemv/lpstat.c:2116 systemv/lpstat.c:2031 systemv/lpstat.c:2144
-#: systemv/lpstat.c:2033 systemv/lpstat.c:2146
 #, c-format
 msgid "\tDescription: %s\n"
 msgstr ""
 
-#: systemv/lpstat.c:2074 systemv/lpstat.c:2187 systemv/lpstat.c:2008
-#: systemv/lpstat.c:2121 systemv/lpstat.c:2036 systemv/lpstat.c:2149
-#: systemv/lpstat.c:2038 systemv/lpstat.c:2151
 msgid "\tAlerts:"
 msgstr ""
 
-#: systemv/lpstat.c:2083 systemv/lpstat.c:2196 systemv/lpstat.c:2017
-#: systemv/lpstat.c:2130 systemv/lpstat.c:2045 systemv/lpstat.c:2158
-#: systemv/lpstat.c:2047 systemv/lpstat.c:2160
 #, c-format
 msgid "\tLocation: %s\n"
 msgstr ""
 
-#: systemv/lpstat.c:2088 systemv/lpstat.c:2201 systemv/lpstat.c:2022
-#: systemv/lpstat.c:2135 systemv/lpstat.c:2050 systemv/lpstat.c:2163
-#: systemv/lpstat.c:2052 systemv/lpstat.c:2165
 msgid "\tConnection: remote\n"
 msgstr ""
 
-#: systemv/lpstat.c:2092 systemv/lpstat.c:2205 systemv/lpstat.c:2026
-#: systemv/lpstat.c:2139 systemv/lpstat.c:2054 systemv/lpstat.c:2167
-#: systemv/lpstat.c:2056 systemv/lpstat.c:2169
 #, c-format
 msgid "\tInterface: %s.ppd\n"
 msgstr ""
 
-#: systemv/lpstat.c:2097 systemv/lpstat.c:2210 systemv/lpstat.c:2031
-#: systemv/lpstat.c:2144 systemv/lpstat.c:2059 systemv/lpstat.c:2172
-#: systemv/lpstat.c:2061 systemv/lpstat.c:2174
 msgid "\tConnection: direct\n"
 msgstr ""
 
-#: systemv/lpstat.c:2101 systemv/lpstat.c:2214 systemv/lpstat.c:2035
-#: systemv/lpstat.c:2148 systemv/lpstat.c:2063 systemv/lpstat.c:2176
-#: systemv/lpstat.c:2065 systemv/lpstat.c:2178
 #, c-format
 msgid "\tInterface: %s/interfaces/%s\n"
 msgstr ""
 
-#: systemv/lpstat.c:2105 systemv/lpstat.c:2218 systemv/lpstat.c:2039
-#: systemv/lpstat.c:2152 systemv/lpstat.c:2067 systemv/lpstat.c:2180
-#: systemv/lpstat.c:2069 systemv/lpstat.c:2182
 #, c-format
 msgid "\tInterface: %s/ppd/%s.ppd\n"
 msgstr ""
 
-#: systemv/lpstat.c:2107 systemv/lpstat.c:2220 systemv/lpstat.c:2041
-#: systemv/lpstat.c:2154 systemv/lpstat.c:2069 systemv/lpstat.c:2182
-#: systemv/lpstat.c:2071 systemv/lpstat.c:2184
 msgid "\tOn fault: no alert\n"
 msgstr ""
 
-#: systemv/lpstat.c:2108 systemv/lpstat.c:2221 systemv/lpstat.c:2042
-#: systemv/lpstat.c:2155 systemv/lpstat.c:2070 systemv/lpstat.c:2183
-#: systemv/lpstat.c:2072 systemv/lpstat.c:2185
 msgid "\tAfter fault: continue\n"
 msgstr ""
 
-#: systemv/lpstat.c:2112 systemv/lpstat.c:2126 systemv/lpstat.c:2225
-#: systemv/lpstat.c:2239 systemv/lpstat.c:2046 systemv/lpstat.c:2060
-#: systemv/lpstat.c:2159 systemv/lpstat.c:2173 systemv/lpstat.c:2074
-#: systemv/lpstat.c:2088 systemv/lpstat.c:2187 systemv/lpstat.c:2201
-#: systemv/lpstat.c:2076 systemv/lpstat.c:2090 systemv/lpstat.c:2189
-#: systemv/lpstat.c:2203
 msgid "\tUsers allowed:\n"
 msgstr ""
 
-#: systemv/lpstat.c:2119 systemv/lpstat.c:2232 systemv/lpstat.c:2053
-#: systemv/lpstat.c:2166 systemv/lpstat.c:2081 systemv/lpstat.c:2194
-#: systemv/lpstat.c:2083 systemv/lpstat.c:2196
 msgid "\tUsers denied:\n"
 msgstr ""
 
-#: systemv/lpstat.c:2127 systemv/lpstat.c:2240 systemv/lpstat.c:2061
-#: systemv/lpstat.c:2174 systemv/lpstat.c:2089 systemv/lpstat.c:2202
-#: systemv/lpstat.c:2091 systemv/lpstat.c:2204
 msgid "\t\t(all)\n"
 msgstr ""
 
-#: systemv/lpstat.c:2129 systemv/lpstat.c:2242 systemv/lpstat.c:2063
-#: systemv/lpstat.c:2176 systemv/lpstat.c:2091 systemv/lpstat.c:2204
-#: systemv/lpstat.c:2093 systemv/lpstat.c:2206
 msgid "\tForms allowed:\n"
 msgstr ""
 
-#: systemv/lpstat.c:2130 systemv/lpstat.c:2133 systemv/lpstat.c:2243
-#: systemv/lpstat.c:2246 systemv/lpstat.c:2064 systemv/lpstat.c:2067
-#: systemv/lpstat.c:2177 systemv/lpstat.c:2180 systemv/lpstat.c:2092
-#: systemv/lpstat.c:2095 systemv/lpstat.c:2205 systemv/lpstat.c:2208
-#: systemv/lpstat.c:2094 systemv/lpstat.c:2097 systemv/lpstat.c:2207
-#: systemv/lpstat.c:2210
 msgid "\t\t(none)\n"
 msgstr ""
 
-#: systemv/lpstat.c:2131 systemv/lpstat.c:2244 systemv/lpstat.c:2065
-#: systemv/lpstat.c:2178 systemv/lpstat.c:2093 systemv/lpstat.c:2206
-#: systemv/lpstat.c:2095 systemv/lpstat.c:2208
 msgid "\tBanner required\n"
 msgstr ""
 
-#: systemv/lpstat.c:2132 systemv/lpstat.c:2245 systemv/lpstat.c:2066
-#: systemv/lpstat.c:2179 systemv/lpstat.c:2094 systemv/lpstat.c:2207
-#: systemv/lpstat.c:2096 systemv/lpstat.c:2209
 msgid "\tCharset sets:\n"
 msgstr ""
 
-#: systemv/lpstat.c:2134 systemv/lpstat.c:2247 systemv/lpstat.c:2068
-#: systemv/lpstat.c:2181 systemv/lpstat.c:2096 systemv/lpstat.c:2209
-#: systemv/lpstat.c:2098 systemv/lpstat.c:2211
 msgid "\tDefault pitch:\n"
 msgstr ""
 
-#: systemv/lpstat.c:2135 systemv/lpstat.c:2248 systemv/lpstat.c:2069
-#: systemv/lpstat.c:2182 systemv/lpstat.c:2097 systemv/lpstat.c:2210
-#: systemv/lpstat.c:2099 systemv/lpstat.c:2212
 msgid "\tDefault page size:\n"
 msgstr ""
 
-#: systemv/lpstat.c:2136 systemv/lpstat.c:2249 systemv/lpstat.c:2070
-#: systemv/lpstat.c:2183 systemv/lpstat.c:2098 systemv/lpstat.c:2211
-#: systemv/lpstat.c:2100 systemv/lpstat.c:2213
 msgid "\tDefault port settings:\n"
 msgstr ""
 
-#: systemv/lpstat.c:2146 systemv/lpstat.c:2080 systemv/lpstat.c:2108
-#: systemv/lpstat.c:2110
 #, c-format
 msgid "printer %s/%s is idle.  enabled since %s\n"
 msgstr ""
 
-#: systemv/lpstat.c:2153 systemv/lpstat.c:2087 systemv/lpstat.c:2115
-#: systemv/lpstat.c:2117
 #, c-format
 msgid "printer %s/%s now printing %s-%d.  enabled since %s\n"
 msgstr ""
 
-#: systemv/lpstat.c:2160 systemv/lpstat.c:2094 systemv/lpstat.c:2122
-#: systemv/lpstat.c:2124
 #, c-format
 msgid "printer %s/%s disabled since %s -\n"
 msgstr ""
 
-#: systemv/lpstat.c:2279 systemv/lpstat.c:2212 systemv/lpstat.c:2240
-#: systemv/lpstat.c:2242
 msgid "scheduler is running\n"
 msgstr ""
 
-#: systemv/lpstat.c:2281 systemv/lpstat.c:2214 systemv/lpstat.c:2242
-#: systemv/lpstat.c:2244
 msgid "scheduler is not running\n"
 msgstr ""
 
-#: systemv/lpadmin.c:113 systemv/lpadmin.c:166 systemv/lpadmin.c:237
-#: systemv/lpadmin.c:298 systemv/lpadmin.c:317 systemv/lpadmin.c:383
-#: systemv/lpadmin.c:424 systemv/lpadmin.c:511 systemv/lpadmin.c:557
-#: systemv/lpadmin.c:603 systemv/lpadmin.c:665 systemv/lpadmin.c:711
-#: systemv/lpadmin.c:772
 #, c-format
 msgid "lpadmin: Unable to connect to server: %s\n"
 msgstr ""
 
-#: systemv/lpadmin.c:122
 msgid ""
 "lpadmin: Unable to add a printer to the class:\n"
 "         You must specify a printer name first!\n"
 msgstr ""
 
-#: systemv/lpadmin.c:137
 msgid "lpadmin: Expected class name after '-c' option!\n"
 msgstr ""
 
-#: systemv/lpadmin.c:148 systemv/lpadmin.c:460
 msgid "lpadmin: Class name can only contain printable characters!\n"
 msgstr ""
 
-#: systemv/lpadmin.c:181
 msgid "lpadmin: Expected printer name after '-d' option!\n"
 msgstr ""
 
-#: systemv/lpadmin.c:192 systemv/lpadmin.c:409 systemv/lpadmin.c:583
 msgid "lpadmin: Printer name can only contain printable characters!\n"
 msgstr ""
 
-#: systemv/lpadmin.c:219
 msgid "lpadmin: Expected hostname after '-h' option!\n"
 msgstr ""
 
-#: systemv/lpadmin.c:246
 msgid ""
 "lpadmin: Unable to set the interface script:\n"
 "         You must specify a printer name first!\n"
 msgstr ""
 
-#: systemv/lpadmin.c:264
 msgid "lpadmin: Expected interface after '-i' option!\n"
 msgstr ""
 
-#: systemv/lpadmin.c:326
 msgid ""
 "lpadmin: Unable to set the interface script or PPD file:\n"
 "         You must specify a printer name first!\n"
 msgstr ""
 
-#: systemv/lpadmin.c:345
 msgid "lpadmin: Expected model after '-m' option!\n"
 msgstr ""
 
-#: systemv/lpadmin.c:365
 msgid "lpadmin: Expected name=value after '-o' option!\n"
 msgstr ""
 
-#: systemv/lpadmin.c:398
 msgid "lpadmin: Expected printer after '-p' option!\n"
 msgstr ""
 
-#: systemv/lpadmin.c:433
 msgid ""
 "lpadmin: Unable to remove a printer from the class:\n"
 "         You must specify a printer name first!\n"
 msgstr ""
 
-#: systemv/lpadmin.c:449
 msgid "lpadmin: Expected class after '-r' option!\n"
 msgstr ""
 
-#: systemv/lpadmin.c:479
 msgid "lpadmin: Expected allow/deny:userlist after '-u' option!\n"
 msgstr ""
 
-#: systemv/lpadmin.c:496
 #, c-format
 msgid "lpadmin: Unknown allow/deny option \"%s\"!\n"
 msgstr ""
 
-#: systemv/lpadmin.c:520
 msgid ""
 "lpadmin: Unable to set the device URI:\n"
 "         You must specify a printer name first!\n"
 msgstr ""
 
-#: systemv/lpadmin.c:538
 msgid "lpadmin: Expected device URI after '-v' option!\n"
 msgstr ""
 
-#: systemv/lpadmin.c:572
 msgid "lpadmin: Expected printer or class after '-x' option!\n"
 msgstr ""
 
-#: systemv/lpadmin.c:612
 msgid ""
 "lpadmin: Unable to set the printer description:\n"
 "         You must specify a printer name first!\n"
 msgstr ""
 
-#: systemv/lpadmin.c:631
 msgid "lpadmin: Expected description after '-D' option!\n"
 msgstr ""
 
-#: systemv/lpadmin.c:647
 msgid "lpadmin: Expected file type(s) after '-I' option!\n"
 msgstr ""
 
-#: systemv/lpadmin.c:653
 msgid "lpadmin: Warning - content type list ignored!\n"
 msgstr ""
 
-#: systemv/lpadmin.c:674
 msgid ""
 "lpadmin: Unable to set the printer location:\n"
 "         You must specify a printer name first!\n"
 msgstr ""
 
-#: systemv/lpadmin.c:692
 msgid "lpadmin: Expected location after '-L' option!\n"
 msgstr ""
 
-#: systemv/lpadmin.c:720
 msgid ""
 "lpadmin: Unable to set the PPD file:\n"
 "         You must specify a printer name first!\n"
 msgstr ""
 
-#: systemv/lpadmin.c:738
 msgid "lpadmin: Expected PPD after '-P' option!\n"
 msgstr ""
 
-#: systemv/lpadmin.c:749
 #, c-format
 msgid "lpadmin: Unknown option '%c'!\n"
 msgstr ""
 
-#: systemv/lpadmin.c:754
 #, c-format
 msgid "lpadmin: Unknown argument '%s'!\n"
 msgstr ""
 
-#: systemv/lpadmin.c:781
 msgid ""
 "lpadmin: Unable to set the printer options:\n"
 "         You must specify a printer name first!\n"
 msgstr ""
 
-#: systemv/lpadmin.c:793
 msgid ""
 "Usage:\n"
 "\n"
@@ -2116,209 +1387,163 @@ msgid ""
 "\n"
 msgstr ""
 
-#: systemv/lpadmin.c:1554 systemv/lpadmin.c:1440
 #, c-format
 msgid "lpadmin: Unable to create temporary file: %s\n"
 msgstr ""
 
-#: systemv/lpadmin.c:1562 systemv/lpadmin.c:1448
 #, c-format
 msgid "lpadmin: Unable to open file \"%s\": %s\n"
 msgstr ""
 
-#: systemv/lpadmin.c:1631 systemv/lpadmin.c:1862 systemv/lpadmin.c:1870
 #, c-format
 msgid "lpadmin: add-printer (set model) failed: %s\n"
 msgstr ""
 
-#: systemv/lpadmin.c:1701 systemv/lpadmin.c:1708
 #, c-format
 msgid "lpadmin: add-printer (set description) failed: %s\n"
 msgstr ""
 
-#: systemv/lpadmin.c:1784 systemv/lpadmin.c:1792
 #, c-format
 msgid "lpadmin: add-printer (set location) failed: %s\n"
 msgstr ""
 
-#: systemv/lpadmin.c:2021 systemv/lpadmin.c:1814 systemv/lpadmin.c:1831
 #, c-format
 msgid "lpadmin: Unable to create temporary file - %s\n"
 msgstr ""
 
-#: systemv/lpadmin.c:2031 systemv/lpadmin.c:1824 systemv/lpadmin.c:1841
 #, c-format
 msgid "lpadmin: Unable to open PPD file \"%s\" - %s\n"
 msgstr ""
 
-#: systemv/lpadmin.c:2117 systemv/lpadmin.c:2125
 #, c-format
 msgid "lpadmin: %s failed: %s\n"
 msgstr ""
 
-#: systemv/lp.c:153
 msgid "lp: Expected destination after -d option!\n"
 msgstr ""
 
-#: systemv/lp.c:184
 msgid "lp: Expected form after -f option!\n"
 msgstr ""
 
-#: systemv/lp.c:202
 msgid "lp: Expected hostname after -h option!\n"
 msgstr ""
 
-#: systemv/lp.c:220
 msgid "lp: Expected job ID after -i option!\n"
 msgstr ""
 
-#: systemv/lp.c:230
 msgid "lp: Error - cannot print files and alter jobs simultaneously!\n"
 msgstr ""
 
-#: systemv/lp.c:242
 msgid "lp: Error - bad job ID!\n"
 msgstr ""
 
-#: systemv/lp.c:264
 msgid "lp: Expected copies after -n option!\n"
 msgstr ""
 
-#: systemv/lp.c:285
 msgid "lp: Expected option string after -o option!\n"
 msgstr ""
 
-#: systemv/lp.c:304
 #, c-format
 msgid "lp: Expected priority after -%c option!\n"
 msgstr ""
 
-#: systemv/lp.c:326
 msgid "lp: Priority must be between 1 and 100.\n"
 msgstr ""
 
-#: systemv/lp.c:348
 msgid "lp: Expected title after -t option!\n"
 msgstr ""
 
-#: systemv/lp.c:364
 msgid "lp: Expected mode list after -y option!\n"
 msgstr ""
 
-#: systemv/lp.c:370
 msgid "lp: Warning - mode option ignored!\n"
 msgstr ""
 
-#: systemv/lp.c:383
 msgid "lp: Expected hold name after -H option!\n"
 msgstr ""
 
-#: systemv/lp.c:405
 msgid "lp: Need job ID (-i) before \"-H restart\"!\n"
 msgstr ""
 
-#: systemv/lp.c:427
 msgid "lp: Expected page list after -P option!\n"
 msgstr ""
 
-#: systemv/lp.c:446
 msgid "lp: Expected character set after -S option!\n"
 msgstr ""
 
-#: systemv/lp.c:452
 msgid "lp: Warning - character set option ignored!\n"
 msgstr ""
 
-#: systemv/lp.c:463
 msgid "lp: Expected content type after -T option!\n"
 msgstr ""
 
-#: systemv/lp.c:469
 msgid "lp: Warning - content type option ignored!\n"
 msgstr ""
 
-#: systemv/lp.c:473
 #, c-format
 msgid "lp: Unknown option '%c'!\n"
 msgstr ""
 
-#: systemv/lp.c:482
 msgid "lp: Error - cannot print from stdin if files or a job ID are provided!\n"
 msgstr ""
 
-#: systemv/lp.c:497
 #, c-format
 msgid "lp: Unable to access \"%s\" - %s\n"
 msgstr ""
 
-#: systemv/lp.c:514
 #, c-format
 msgid "lp: Too many files - \"%s\"\n"
 msgstr ""
 
-#: systemv/lp.c:569
 msgid "lp: error - no default destination available.\n"
 msgstr ""
 
-#: systemv/lp.c:572
 msgid "lp: error - scheduler not responding!\n"
 msgstr ""
 
-#: systemv/lp.c:611
 #, c-format
 msgid "lp: unable to create temporary file \"%s\" - %s\n"
 msgstr ""
 
-#: systemv/lp.c:620
 #, c-format
 msgid "lp: error - unable to write to temporary file \"%s\" - %s\n"
 msgstr ""
 
-#: systemv/lp.c:634
 msgid "lp: stdin is empty, so no job has been sent.\n"
 msgstr ""
 
-#: systemv/lp.c:650
 #, c-format
 msgid "lp: unable to print file: %s\n"
 msgstr ""
 
-#: systemv/lp.c:656 systemv/lp.c:653 systemv/lp.c:713 systemv/lp.c:729
 #, c-format
 msgid "request id is %s-%d (%d file(s))\n"
 msgstr ""
 
-#: systemv/lp.c:703 systemv/lp.c:713
 #, c-format
 msgid "lp: restart-job failed: %s\n"
 msgstr ""
 
-#: systemv/lp.c:769 systemv/lp.c:779
 #, c-format
 msgid "lp: set-job-attributes failed: %s\n"
 msgstr ""
 
-#: systemv/lpinfo.c:98 systemv/lpinfo.c:117
 #, c-format
 msgid "lpinfo: Unable to connect to server: %s\n"
 msgstr ""
 
-#: systemv/lpinfo.c:152
 #, c-format
 msgid "lpinfo: Unknown option '%c'!\n"
 msgstr ""
 
-#: systemv/lpinfo.c:158
 #, c-format
 msgid "lpinfo: Unknown argument '%s'!\n"
 msgstr ""
 
-#: systemv/lpinfo.c:225 systemv/lpinfo.c:310
 #, c-format
 msgid "lpinfo: cups-get-devices failed: %s\n"
 msgstr ""
 
-#: systemv/lpinfo.c:293
 #, c-format
 msgid ""
 "Device: uri = %s\n"
@@ -2327,12 +1552,10 @@ msgid ""
 "        make-and-model = %s\n"
 msgstr ""
 
-#: systemv/lpinfo.c:376 systemv/lpinfo.c:454
 #, c-format
 msgid "lpinfo: cups-get-ppds failed: %s\n"
 msgstr ""
 
-#: systemv/lpinfo.c:438
 #, c-format
 msgid ""
 "Model:  name = %s\n"
@@ -2340,54 +1563,43 @@ msgid ""
 "        make-and-model = %s\n"
 msgstr ""
 
-#: systemv/lpmove.c:114 systemv/lpmove.c:119
 #, c-format
 msgid "lpmove: Unknown option '%c'!\n"
 msgstr ""
 
-#: systemv/lpmove.c:133 systemv/lpmove.c:138
 #, c-format
 msgid "lpmove: Unknown argument '%s'!\n"
 msgstr ""
 
-#: systemv/lpmove.c:140
 msgid "Usage: lpmove job dest\n"
 msgstr ""
 
-#: systemv/lpmove.c:151 systemv/lpmove.c:156
 #, c-format
 msgid "lpmove: Unable to connect to server: %s\n"
 msgstr ""
 
-#: systemv/lpmove.c:225 systemv/lpmove.c:234
 #, c-format
 msgid "lpmove: move-job failed: %s\n"
 msgstr ""
 
-#: systemv/lpoptions.c:109
 msgid "lpoptions: Unknown printer or class!\n"
 msgstr ""
 
-#: systemv/lpoptions.c:159
 msgid "lpoptions: No printers!?!\n"
 msgstr ""
 
-#: systemv/lpoptions.c:207
 #, c-format
 msgid "lpoptions: Unable to add printer or instance: %s\n"
 msgstr ""
 
-#: systemv/lpoptions.c:411
 #, c-format
 msgid "lpoptions: Destination %s has no PPD file!\n"
 msgstr ""
 
-#: systemv/lpoptions.c:420
 #, c-format
 msgid "lpoptions: Unable to open PPD file for %s!\n"
 msgstr ""
 
-#: systemv/lpoptions.c:444
 msgid ""
 "Usage: lpoptions [-h server] [-E] -d printer\n"
 "       lpoptions [-h server] [-E] [-p printer] -l\n"
@@ -2395,591 +1607,418 @@ msgid ""
 "       lpoptions [-h server] [-E] -x printer\n"
 msgstr ""
 
-#: systemv/lppasswd.c:192
 msgid "lppasswd: Only root can add or delete passwords!\n"
 msgstr ""
 
-#: systemv/lppasswd.c:212
 msgid "Enter old password:"
 msgstr ""
 
-#: systemv/lppasswd.c:218 systemv/lppasswd.c:236
 #, c-format
 msgid "lppasswd: Unable to copy password string: %s\n"
 msgstr ""
 
-#: systemv/lppasswd.c:230
 msgid "Enter password:"
 msgstr ""
 
-#: systemv/lppasswd.c:241
 msgid "Enter password again:"
 msgstr ""
 
-#: systemv/lppasswd.c:247
 msgid "lppasswd: Sorry, passwords don't match!\n"
 msgstr ""
 
-#: systemv/lppasswd.c:271
 msgid ""
 "lppasswd: Sorry, password rejected.\n"
 "Your password must be at least 6 characters long, cannot contain\n"
 "your username, and must contain at least one letter and number.\n"
 msgstr ""
 
-#: systemv/lppasswd.c:321
 msgid "lppasswd: Password file busy!\n"
 msgstr ""
 
-#: systemv/lppasswd.c:324 systemv/lppasswd.c:333 systemv/lppasswd.c:351
 #, c-format
 msgid "lppasswd: Unable to open password file: %s\n"
 msgstr ""
 
-#: systemv/lppasswd.c:386 systemv/lppasswd.c:399 systemv/lppasswd.c:431
 #, c-format
 msgid "lppasswd: Unable to write to password file: %s\n"
 msgstr ""
 
-#: systemv/lppasswd.c:411
 #, c-format
 msgid "lppasswd: user \"%s\" and group \"%s\" do not exist.\n"
 msgstr ""
 
-#: systemv/lppasswd.c:421
 msgid "lppasswd: Sorry, password doesn't match!\n"
 msgstr ""
 
-#: systemv/lppasswd.c:454
 msgid "lppasswd: Password file not updated!\n"
 msgstr ""
 
-#: systemv/lppasswd.c:469
 #, c-format
 msgid "lppasswd: failed to backup old password file: %s\n"
 msgstr ""
 
-#: systemv/lppasswd.c:482
 #, c-format
 msgid "lppasswd: failed to rename password file: %s\n"
 msgstr ""
 
-#: systemv/lppasswd.c:501 systemv/lppasswd.c:500
 msgid "Usage: lppasswd [-g groupname]\n"
 msgstr ""
 
-#: systemv/lppasswd.c:506 systemv/lppasswd.c:503
 msgid ""
 "Usage: lppasswd [-g groupname] [username]\n"
 "       lppasswd [-g groupname] -a [username]\n"
 "       lppasswd [-g groupname] -x [username]\n"
 msgstr ""
 
-#: cgi-bin/admin.c:125 cgi-bin/admin.c:142 cgi-bin/admin.c:143
 msgid "Start Printer"
 msgstr ""
 
-#: cgi-bin/admin.c:127 cgi-bin/admin.c:144 cgi-bin/admin.c:145
 msgid "Stop Printer"
 msgstr ""
 
-#: cgi-bin/admin.c:129 cgi-bin/admin.c:146 cgi-bin/admin.c:147
 msgid "Start Class"
 msgstr ""
 
-#: cgi-bin/admin.c:131 cgi-bin/admin.c:148 cgi-bin/admin.c:149
 msgid "Stop Class"
 msgstr ""
 
-#: cgi-bin/admin.c:133 cgi-bin/admin.c:150 cgi-bin/admin.c:151
 msgid "Accept Jobs"
 msgstr ""
 
-#: cgi-bin/admin.c:135 cgi-bin/admin.c:152 cgi-bin/admin.c:153
 msgid "Reject Jobs"
 msgstr ""
 
-#: cgi-bin/admin.c:137 cgi-bin/admin.c:154 cgi-bin/admin.c:155
 msgid "Purge Jobs"
 msgstr ""
 
-#: cgi-bin/admin.c:141 cgi-bin/admin.c:158 cgi-bin/admin.c:159
 msgid "Set As Default"
 msgstr ""
 
-#: cgi-bin/admin.c:168 cgi-bin/admin.c:179 cgi-bin/admin.c:2690
-#: cgi-bin/admin.c:185 cgi-bin/admin.c:196 cgi-bin/admin.c:2734
-#: cgi-bin/admin.c:186 cgi-bin/admin.c:197 cgi-bin/admin.c:2377
 msgid "Administration"
 msgstr ""
 
-#: cgi-bin/admin.c:224 cgi-bin/admin.c:241 cgi-bin/admin.c:242
 msgid "Modify Class"
 msgstr ""
 
-#: cgi-bin/admin.c:224 cgi-bin/admin.c:241 cgi-bin/admin.c:242
 msgid "Add Class"
 msgstr ""
 
-#: cgi-bin/admin.c:385 cgi-bin/admin.c:402 cgi-bin/admin.c:404
 msgid "The class name may only contain up to 127 printable characters and may not contain spaces, slashes (/), or the pound sign (#)."
 msgstr ""
 
-#: cgi-bin/admin.c:444 cgi-bin/admin.c:462 cgi-bin/admin.c:464
 msgid "Unable to modify class:"
 msgstr ""
 
-#: cgi-bin/admin.c:445 cgi-bin/admin.c:463 cgi-bin/admin.c:465
 msgid "Unable to add class:"
 msgstr ""
 
-#: cgi-bin/admin.c:514 cgi-bin/admin.c:532 cgi-bin/admin.c:534
 msgid "Modify Printer"
 msgstr ""
 
-#: cgi-bin/admin.c:514 cgi-bin/admin.c:532 cgi-bin/admin.c:534
 msgid "Add Printer"
 msgstr ""
 
-#: cgi-bin/admin.c:583 cgi-bin/admin.c:602 cgi-bin/admin.c:604
 msgid "The printer name may only contain up to 127 printable characters and may not contain spaces, slashes (/), or the pound sign (#)."
 msgstr ""
 
-#: cgi-bin/admin.c:900 cgi-bin/admin.c:930 cgi-bin/admin.c:932
 msgid "Unable to get list of printer drivers:"
 msgstr ""
 
-#: cgi-bin/admin.c:983 cgi-bin/admin.c:1014 cgi-bin/admin.c:1016
 msgid "Unable to modify printer:"
 msgstr ""
 
-#: cgi-bin/admin.c:984 cgi-bin/admin.c:1015 cgi-bin/admin.c:1017
 msgid "Unable to add printer:"
 msgstr ""
 
-#: cgi-bin/admin.c:1051 cgi-bin/admin.c:1082 cgi-bin/admin.c:1084
 msgid "Set Printer Options"
 msgstr ""
 
-#: cgi-bin/admin.c:1062 cgi-bin/admin.c:2330 cgi-bin/admin.c:2391
-#: cgi-bin/admin.c:3112 cgi-bin/admin.c:3213 cgi-bin/admin.c:3449
-#: cgi-bin/admin.c:1095 cgi-bin/admin.c:2374 cgi-bin/admin.c:2435
-#: cgi-bin/admin.c:3156 cgi-bin/admin.c:3258 cgi-bin/admin.c:3496
-#: cgi-bin/admin.c:1097 cgi-bin/admin.c:1846 cgi-bin/admin.c:1907
-#: cgi-bin/admin.c:2405 cgi-bin/admin.c:2507 cgi-bin/admin.c:2745
 msgid "Missing form variable!"
 msgstr ""
 
-#: cgi-bin/admin.c:1076 cgi-bin/admin.c:1113 cgi-bin/admin.c:1115
 msgid "Unable to get PPD file!"
 msgstr ""
 
-#: cgi-bin/admin.c:1084 cgi-bin/admin.c:1123 cgi-bin/admin.c:1125
 msgid "Unable to open PPD file:"
 msgstr ""
 
-#: cgi-bin/admin.c:1241 cgi-bin/admin.c:1282 cgi-bin/admin.c:1290
 msgid "Banners"
 msgstr ""
 
-#: cgi-bin/admin.c:1255 cgi-bin/admin.c:1296 cgi-bin/admin.c:1304
 msgid "Starting Banner"
 msgstr ""
 
-#: cgi-bin/admin.c:1262 cgi-bin/admin.c:1303 cgi-bin/admin.c:1311
 msgid "Ending Banner"
 msgstr ""
 
-#: cgi-bin/admin.c:1280 cgi-bin/admin.c:1321 cgi-bin/admin.c:1329
 msgid "Policies"
 msgstr ""
 
-#: cgi-bin/admin.c:1304 cgi-bin/admin.c:1345 cgi-bin/admin.c:1353
 msgid "Error Policy"
 msgstr ""
 
-#: cgi-bin/admin.c:1331 cgi-bin/admin.c:1372 cgi-bin/admin.c:1380
 msgid "Operation Policy"
 msgstr ""
 
-#: cgi-bin/admin.c:1352 cgi-bin/admin.c:1372 cgi-bin/admin.c:1393
-#: cgi-bin/admin.c:1413 cgi-bin/admin.c:1401 cgi-bin/admin.c:1421
 msgid "PS Binary Protocol"
 msgstr ""
 
-#: cgi-bin/admin.c:1358 cgi-bin/admin.c:1399 cgi-bin/admin.c:1407
 msgid "None"
 msgstr ""
 
-#: cgi-bin/admin.c:1490 cgi-bin/admin.c:1534 cgi-bin/admin.c:1542
 msgid "Unable to set options:"
 msgstr ""
 
-#: cgi-bin/admin.c:1591 cgi-bin/admin.c:1607 cgi-bin/admin.c:1620
-#: cgi-bin/admin.c:2099 cgi-bin/admin.c:2106 cgi-bin/admin.c:1635
-#: cgi-bin/admin.c:1651 cgi-bin/admin.c:1664 cgi-bin/admin.c:2143
-#: cgi-bin/admin.c:2150 cgi-bin/admin.c:1609 cgi-bin/admin.c:1618
 msgid "Change Settings"
 msgstr ""
 
-#: cgi-bin/admin.c:1592 cgi-bin/admin.c:1608 cgi-bin/admin.c:1621
-#: cgi-bin/admin.c:1636 cgi-bin/admin.c:1652 cgi-bin/admin.c:1665
-#: cgi-bin/admin.c:1611
 msgid "Unable to change server settings:"
 msgstr ""
 
-#: cgi-bin/admin.c:2097 cgi-bin/admin.c:2190 cgi-bin/admin.c:2141
-#: cgi-bin/admin.c:2234 cgi-bin/admin.c:1703
 msgid "Unable to upload cupsd.conf file:"
 msgstr ""
 
-#: cgi-bin/admin.c:2134 cgi-bin/admin.c:2146 cgi-bin/admin.c:2193
-#: cgi-bin/admin.c:2200 cgi-bin/admin.c:2232 cgi-bin/admin.c:2244
-#: cgi-bin/admin.c:2267 cgi-bin/admin.c:2178 cgi-bin/admin.c:2190
-#: cgi-bin/admin.c:2237 cgi-bin/admin.c:2276 cgi-bin/admin.c:2288
-#: cgi-bin/admin.c:2311 cgi-bin/admin.c:1646 cgi-bin/admin.c:1658
-#: cgi-bin/admin.c:1706 cgi-bin/admin.c:1713 cgi-bin/admin.c:1745
-#: cgi-bin/admin.c:1758 cgi-bin/admin.c:1782
 msgid "Edit Configuration File"
 msgstr ""
 
-#: cgi-bin/admin.c:2135 cgi-bin/admin.c:2147 cgi-bin/admin.c:2179
-#: cgi-bin/admin.c:2191 cgi-bin/printers.c:219 cgi-bin/printers.c:224
-#: cgi-bin/admin.c:1647 cgi-bin/admin.c:1659
 msgid "Unable to create temporary file:"
 msgstr ""
 
-#: cgi-bin/admin.c:2233 cgi-bin/admin.c:2245 cgi-bin/admin.c:2268
-#: cgi-bin/admin.c:2277 cgi-bin/admin.c:2289 cgi-bin/admin.c:2312
-#: cgi-bin/admin.c:1747 cgi-bin/admin.c:1760 cgi-bin/admin.c:1784
 msgid "Unable to access cupsd.conf file:"
 msgstr ""
 
-#: cgi-bin/admin.c:2247 cgi-bin/admin.c:2291 cgi-bin/admin.c:1762
 msgid "Unable to edit cupsd.conf files larger than 1MB!"
 msgstr ""
 
-#: cgi-bin/admin.c:2316 cgi-bin/admin.c:2360 cgi-bin/admin.c:1832
 msgid "Delete Class"
 msgstr ""
 
-#: cgi-bin/admin.c:2357 cgi-bin/admin.c:2401 cgi-bin/admin.c:1873
 msgid "Unable to delete class:"
 msgstr ""
 
-#: cgi-bin/admin.c:2377 cgi-bin/admin.c:2421 cgi-bin/admin.c:1893
 msgid "Delete Printer"
 msgstr ""
 
-#: cgi-bin/admin.c:2418 cgi-bin/admin.c:2462 cgi-bin/admin.c:1934
 msgid "Unable to delete printer:"
 msgstr ""
 
-#: cgi-bin/admin.c:2447 cgi-bin/admin.c:2491 cgi-bin/admin.c:2053
-#: cgi-bin/admin.c:2072
 msgid "Export Printers to Samba"
 msgstr ""
 
-#: cgi-bin/admin.c:2515 cgi-bin/admin.c:2559
 msgid "Unable to fork process!"
 msgstr ""
 
-#: cgi-bin/admin.c:2534 cgi-bin/admin.c:2578
 msgid "Unable to connect to server!"
 msgstr ""
 
-#: cgi-bin/admin.c:2538 cgi-bin/admin.c:2582
 msgid "Unable to get printer attributes!"
 msgstr ""
 
-#: cgi-bin/admin.c:2543 cgi-bin/admin.c:2587
 msgid "Unable to convert PPD file!"
 msgstr ""
 
-#: cgi-bin/admin.c:2547 cgi-bin/admin.c:2591
 msgid "Unable to copy Windows 2000 printer driver files!"
 msgstr ""
 
-#: cgi-bin/admin.c:2552 cgi-bin/admin.c:2596
 msgid "Unable to install Windows 2000 printer driver files!"
 msgstr ""
 
-#: cgi-bin/admin.c:2557 cgi-bin/admin.c:2601
 msgid "Unable to copy Windows 9x printer driver files!"
 msgstr ""
 
-#: cgi-bin/admin.c:2562 cgi-bin/admin.c:2606
 msgid "Unable to install Windows 9x printer driver files!"
 msgstr ""
 
-#: cgi-bin/admin.c:2567 cgi-bin/admin.c:2611
 msgid "Unable to set Windows printer driver!"
 msgstr ""
 
-#: cgi-bin/admin.c:2572 cgi-bin/admin.c:2616
 msgid "No printer drivers found!"
 msgstr ""
 
-#: cgi-bin/admin.c:2576 cgi-bin/admin.c:2620
 msgid "Unable to execute cupsaddsmb command!"
 msgstr ""
 
-#: cgi-bin/admin.c:2582 cgi-bin/admin.c:2626
 #, c-format
 msgid "cupsaddsmb failed with status %d"
 msgstr ""
 
-#: cgi-bin/admin.c:2592 cgi-bin/admin.c:2636
 #, c-format
 msgid "cupsaddsmb crashed on signal %d"
 msgstr ""
 
-#: cgi-bin/admin.c:2608 cgi-bin/admin.c:2652 cgi-bin/admin.c:2061
 msgid "A Samba username is required to export printer drivers!"
 msgstr ""
 
-#: cgi-bin/admin.c:2612 cgi-bin/admin.c:2656 cgi-bin/admin.c:2065
 msgid "A Samba password is required to export printer drivers!"
 msgstr ""
 
-#: cgi-bin/admin.c:2704 cgi-bin/admin.c:2748 cgi-bin/admin.c:2102
 msgid "Unable to open cupsd.conf file:"
 msgstr ""
 
-#: cgi-bin/admin.c:3144 cgi-bin/admin.c:3400 cgi-bin/admin.c:3189
-#: cgi-bin/admin.c:3447 cgi-bin/admin.c:2438 cgi-bin/admin.c:2696
 msgid "Unable to change printer:"
 msgstr ""
 
-#: cgi-bin/admin.c:3214 cgi-bin/admin.c:3259 cgi-bin/admin.c:3399
-#: cgi-bin/admin.c:3417 cgi-bin/admin.c:3305 cgi-bin/admin.c:3446
-#: cgi-bin/admin.c:3464 cgi-bin/admin.c:2508 cgi-bin/admin.c:2554
-#: cgi-bin/admin.c:2695 cgi-bin/admin.c:2713
 msgid "Set Allowed Users"
 msgstr ""
 
-#: cgi-bin/admin.c:3262 cgi-bin/admin.c:3308 cgi-bin/admin.c:2557
 msgid "Unable to get printer attributes:"
 msgstr ""
 
-#: cgi-bin/admin.c:3450 cgi-bin/admin.c:3488 cgi-bin/admin.c:3506
-#: cgi-bin/admin.c:3497 cgi-bin/admin.c:3536 cgi-bin/admin.c:3554
-#: cgi-bin/admin.c:2746 cgi-bin/admin.c:2785 cgi-bin/admin.c:2803
 msgid "Set Publishing"
 msgstr ""
 
-#: cgi-bin/admin.c:3489 cgi-bin/admin.c:3537 cgi-bin/admin.c:2786
 msgid "Unable to change printer-is-shared attribute:"
 msgstr ""
 
-#: cgi-bin/classes.c:161 cgi-bin/classes.c:208 cgi-bin/classes.c:159
-#: cgi-bin/classes.c:206 cgi-bin/classes.c:164 cgi-bin/classes.c:211
 msgid "Classes"
 msgstr ""
 
-#: cgi-bin/classes.c:355 cgi-bin/classes.c:356 cgi-bin/classes.c:354
-#: cgi-bin/classes.c:359
 msgid "Unable to get class list:"
 msgstr ""
 
-#: cgi-bin/classes.c:454 cgi-bin/classes.c:455 cgi-bin/classes.c:453
-#: cgi-bin/classes.c:458
 msgid "Unable to get class status:"
 msgstr ""
 
-#: cgi-bin/ipp-var.c:366 cgi-bin/ipp-var.c:419 cgi-bin/ipp-var.c:489
-#: cgi-bin/ipp-var.c:490
 msgid "Move Job"
 msgstr ""
 
-#: cgi-bin/ipp-var.c:367
 msgid "Unable to find destination for job!"
 msgstr ""
 
-#: cgi-bin/ipp-var.c:421 cgi-bin/ipp-var.c:491 cgi-bin/ipp-var.c:492
 msgid "Move All Jobs"
 msgstr ""
 
-#: cgi-bin/ipp-var.c:496 cgi-bin/ipp-var.c:497
 msgid "Unable to move job"
 msgstr ""
 
-#: cgi-bin/ipp-var.c:498 cgi-bin/ipp-var.c:499
 msgid "Unable to move jobs"
 msgstr ""
 
-#: cgi-bin/ipp-var.c:603 cgi-bin/ipp-var.c:605
 msgid "Print Test Page"
 msgstr ""
 
-#: cgi-bin/ipp-var.c:606 cgi-bin/ipp-var.c:608
 msgid "Unable to print test page:"
 msgstr ""
 
-#: cgi-bin/jobs.c:111 cgi-bin/jobs.c:122 cgi-bin/jobs.c:184
 msgid "Jobs"
 msgstr ""
 
-#: cgi-bin/jobs.c:187
 msgid "Job operation failed:"
 msgstr ""
 
-#: cgi-bin/printers.c:161 cgi-bin/printers.c:208 cgi-bin/printers.c:211
-#: cgi-bin/printers.c:166 cgi-bin/printers.c:335 cgi-bin/printers.c:171
-#: cgi-bin/printers.c:340
 msgid "Printers"
 msgstr ""
 
-#: cgi-bin/printers.c:362 cgi-bin/printers.c:366 cgi-bin/printers.c:518
-#: cgi-bin/printers.c:523
 msgid "Unable to get printer list:"
 msgstr ""
 
-#: cgi-bin/printers.c:461 cgi-bin/printers.c:468 cgi-bin/printers.c:628
-#: cgi-bin/printers.c:633
 msgid "Unable to get printer status:"
 msgstr ""
 
-#: cups/ppd.c:319 cups/ppd.c:302
 msgid "OK"
 msgstr ""
 
-#: cups/ppd.c:320 cups/ppd.c:303
 msgid "Unable to open PPD file"
 msgstr ""
 
-#: cups/ppd.c:321 cups/ppd.c:304
 msgid "NULL PPD file pointer"
 msgstr ""
 
-#: cups/ppd.c:322 cups/ppd.c:305
 msgid "Memory allocation error"
 msgstr ""
 
-#: cups/ppd.c:323 cups/ppd.c:306
 msgid "Missing PPD-Adobe-4.x header"
 msgstr ""
 
-#: cups/ppd.c:324 cups/ppd.c:307
 msgid "Missing value string"
 msgstr ""
 
-#: cups/ppd.c:325 cups/ppd.c:308
 msgid "Internal error"
 msgstr ""
 
-#: cups/ppd.c:326 cups/ppd.c:309
 msgid "Bad OpenGroup"
 msgstr ""
 
-#: cups/ppd.c:327 cups/ppd.c:310
 msgid "OpenGroup without a CloseGroup first"
 msgstr ""
 
-#: cups/ppd.c:328 cups/ppd.c:311
 msgid "Bad OpenUI/JCLOpenUI"
 msgstr ""
 
-#: cups/ppd.c:329 cups/ppd.c:312
 msgid "OpenUI/JCLOpenUI without a CloseUI/JCLCloseUI first"
 msgstr ""
 
-#: cups/ppd.c:330 cups/ppd.c:313
 msgid "Bad OrderDependency"
 msgstr ""
 
-#: cups/ppd.c:331 cups/ppd.c:314
 msgid "Bad UIConstraints"
 msgstr ""
 
-#: cups/ppd.c:332 cups/ppd.c:315
 msgid "Missing asterisk in column 1"
 msgstr ""
 
-#: cups/ppd.c:333 cups/ppd.c:316
 msgid "Line longer than the maximum allowed (255 characters)"
 msgstr ""
 
-#: cups/ppd.c:334 cups/ppd.c:317
 msgid "Illegal control character"
 msgstr ""
 
-#: cups/ppd.c:335 cups/ppd.c:318
 msgid "Illegal main keyword string"
 msgstr ""
 
-#: cups/ppd.c:336 cups/ppd.c:319
 msgid "Illegal option keyword string"
 msgstr ""
 
-#: cups/ppd.c:337 cups/ppd.c:320
 msgid "Illegal translation string"
 msgstr ""
 
-#: cups/ppd.c:338 cups/ppd.c:321
 msgid "Illegal whitespace character"
 msgstr ""
 
-#: cups/ppd.c:339 cups/ppd.c:322
 msgid "Bad custom parameter"
 msgstr ""
 
-#: cups/ppd.c:344 cups/ppd.c:327
 msgid "Unknown"
 msgstr ""
 
-#: cups/ppd.c:1033 cups/ppd.c:1020 cups/ppd.c:1009 cups/ppd.c:1010
-#: cups/ppd.c:1007
 msgid "Custom"
 msgstr ""
 
-#: cups/ppd.c:1259 cups/ppd.c:1236 cups/ppd.c:1225 cups/ppd.c:1226
-#: cups/ppd.c:1223
 msgid "JCL"
 msgstr ""
 
-#: scheduler/ipp.c:2184 scheduler/ipp.c:2226 scheduler/ipp.c:2681
 msgid "No authentication information provided!"
 msgstr ""
 
-#: systemv/cupsaddsmb.c:440 systemv/cupsaddsmb.c:252
 #, c-format
 msgid "Password for %s required to access %s via SAMBA: "
 msgstr ""
 
-#: systemv/cupsaddsmb.c:451 cups/adminutil.c:626
 #, c-format
 msgid "Running command: %s %s -N -U '%s%%%s' -c '%s'\n"
 msgstr ""
 
-#: systemv/cupsaddsmb.c:479 cups/adminutil.c:656 cups/adminutil.c:1683
 #, c-format
 msgid "cupsaddsmb: Unable to run \"%s\": %s\n"
 msgstr ""
 
-#: systemv/cupsaddsmb.c:805
 msgid "cupsaddsmb: No Windows printer drivers are installed!\n"
 msgstr ""
 
-#: systemv/cupsaddsmb.c:810
 msgid "cupsaddsmb: Warning, no Windows 2000 printer drivers are installed!\n"
 msgstr ""
 
-#: systemv/lpadmin.c:881
 #, c-format
 msgid "lpadmin: Printer %s is already a member of class %s.\n"
 msgstr ""
 
-#: systemv/lpadmin.c:1115
 msgid "lpadmin: No member names were seen!\n"
 msgstr ""
 
-#: systemv/lpadmin.c:1129
 #, c-format
 msgid "lpadmin: Printer %s is not a member of class %s.\n"
 msgstr ""
 
-#: systemv/lpinfo.c:278
 #, c-format
 msgid ""
 "Device: uri = %s\n"
@@ -2989,7 +2028,6 @@ msgid ""
 "        device-id = %s\n"
 msgstr ""
 
-#: systemv/lpinfo.c:410
 #, c-format
 msgid ""
 "Model:  name = %s\n"
@@ -2998,387 +2036,302 @@ msgid ""
 "        device-id = %s\n"
 msgstr ""
 
-#: systemv/lpmove.c:145
 msgid "Usage: lpmove job/src dest\n"
 msgstr ""
 
-#: systemv/lpstat.c:144 systemv/lpstat.c:156
 msgid "lpstat: Need \"completed\", \"not-completed\", or \"all\" after -W!\n"
 msgstr ""
 
-#: systemv/lpstat.c:740 systemv/lpstat.c:768
 #, c-format
 msgid "%s accepting requests since %s\n"
 msgstr ""
 
-#: systemv/lpstat.c:743 systemv/lpstat.c:771
 #, c-format
 msgid ""
 "%s not accepting requests since %s -\n"
 "\t%s\n"
 msgstr ""
 
-#: systemv/lpstat.c:752 systemv/lpstat.c:780
 #, c-format
 msgid "%s/%s accepting requests since %s\n"
 msgstr ""
 
-#: systemv/lpstat.c:755 systemv/lpstat.c:783
 #, c-format
 msgid ""
 "%s/%s not accepting requests since %s -\n"
 "\t%s\n"
 msgstr ""
 
-#: berkeley/lpc.c:88 berkeley/lpc.c:116 berkeley/lpc.c:152
 msgid "lpc> "
 msgstr ""
 
-#: berkeley/lpq.c:93 systemv/cancel.c:250 systemv/cancel.c:332
-#: systemv/cancel.c:331
 #, c-format
 msgid "%s: Unable to contact server!\n"
 msgstr ""
 
-#: berkeley/lpq.c:138 berkeley/lpr.c:128 berkeley/lprm.c:144
-#: systemv/accept.c:120 systemv/cancel.c:107 systemv/lp.c:150
-#: systemv/lpstat.c:144 berkeley/lpr.c:130 systemv/lp.c:154
 #, c-format
 msgid "%s: Error - expected username after '-U' option!\n"
 msgstr ""
 
-#: berkeley/lpq.c:173
 #, c-format
 msgid "%s: Error - unknown destination \"%s/%s\"!\n"
 msgstr ""
 
-#: berkeley/lpq.c:177 systemv/lpstat.c:549
 #, c-format
 msgid "%s: Unknown destination \"%s\"!\n"
 msgstr ""
 
-#: berkeley/lpq.c:201 berkeley/lprm.c:167 systemv/accept.c:146
-#: systemv/cancel.c:135 systemv/lp.c:227 systemv/lpstat.c:300 systemv/lp.c:231
 #, c-format
 msgid "%s: Error - expected hostname after '-h' option!\n"
 msgstr ""
 
-#: berkeley/lpq.c:253
 #, c-format
 msgid "%s: error - %s environment variable names non-existent destination \"%s\"!\n"
 msgstr ""
 
-#: berkeley/lpq.c:258
 #, c-format
 msgid "%s: error - no default destination available.\n"
 msgstr ""
 
-#: berkeley/lpq.c:647
 msgid "Usage: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]\n"
 msgstr ""
 
-#: berkeley/lpr.c:148 berkeley/lpr.c:150
 #, c-format
 msgid "%s: Error - expected hostname after '-H' option!\n"
 msgstr ""
 
-#: berkeley/lpr.c:171 berkeley/lpr.c:173
 #, c-format
 msgid "%s: Error - expected value after '-%c' option!\n"
 msgstr ""
 
-#: berkeley/lpr.c:185 berkeley/lpr.c:187
 #, c-format
 msgid "%s: Warning - '%c' format modifier not supported - output may not be correct!\n"
 msgstr ""
 
-#: berkeley/lpr.c:199 berkeley/lpr.c:201
 #, c-format
 msgid "%s: error - expected option=value after '-o' option!\n"
 msgstr ""
 
-#: berkeley/lpr.c:250 berkeley/lpr.c:258
 #, c-format
 msgid "%s: Error - expected destination after '-P' option!\n"
 msgstr ""
 
-#: berkeley/lpr.c:285 berkeley/lpr.c:293
 #, c-format
 msgid "%s: Error - expected copy count after '-#' option!\n"
 msgstr ""
 
-#: berkeley/lpr.c:309 berkeley/lpr.c:317
 #, c-format
 msgid "%s: Error - expected name after '-%c' option!\n"
 msgstr ""
 
-#: berkeley/lpr.c:320 berkeley/lprm.c:179 systemv/accept.c:176
-#: systemv/cancel.c:169 systemv/lp.c:529 systemv/lpstat.c:461
-#: berkeley/lpr.c:328 systemv/lp.c:545
 #, c-format
 msgid "%s: Error - unknown option '%c'!\n"
 msgstr ""
 
-#: berkeley/lpr.c:333 systemv/lp.c:554 berkeley/lpr.c:341 systemv/lp.c:570
 #, c-format
 msgid "%s: Error - unable to access \"%s\" - %s\n"
 msgstr ""
 
-#: berkeley/lpr.c:351 systemv/lp.c:571 berkeley/lpr.c:359 systemv/lp.c:587
 #, c-format
 msgid "%s: Error - too many files - \"%s\"\n"
 msgstr ""
 
-#: berkeley/lpr.c:393 systemv/lp.c:621 berkeley/lpr.c:401 systemv/lp.c:637
 #, c-format
 msgid "%s: Error - %s environment variable names non-existent destination \"%s\"!\n"
 msgstr ""
 
-#: berkeley/lpr.c:398 systemv/lp.c:626 berkeley/lpr.c:406 systemv/lp.c:642
 #, c-format
 msgid "%s: Error - no default destination available.\n"
 msgstr ""
 
-#: berkeley/lpr.c:402 systemv/lp.c:630 berkeley/lpr.c:410 systemv/lp.c:646
 #, c-format
 msgid "%s: Error - scheduler not responding!\n"
 msgstr ""
 
-#: berkeley/lpr.c:452 systemv/lp.c:670 berkeley/lpr.c:460 systemv/lp.c:686
 #, c-format
 msgid "%s: Error - unable to create temporary file \"%s\" - %s\n"
 msgstr ""
 
-#: berkeley/lpr.c:462 systemv/lp.c:679 berkeley/lpr.c:470 systemv/lp.c:695
 #, c-format
 msgid "%s: Error - unable to write to temporary file \"%s\" - %s\n"
 msgstr ""
 
-#: berkeley/lpr.c:476 systemv/lp.c:693 berkeley/lpr.c:484 systemv/lp.c:709
 #, c-format
 msgid "%s: Error - stdin is empty, so no job has been sent.\n"
 msgstr ""
 
-#: berkeley/lprm.c:127 systemv/cancel.c:227
 #, c-format
 msgid "%s: Error - unknown destination \"%s\"!\n"
 msgstr ""
 
-#: systemv/accept.c:165
 #, c-format
 msgid "%s: Error - expected reason text after '-r' option!\n"
 msgstr ""
 
-#: systemv/cancel.c:157
 #, c-format
 msgid "%s: Error - expected username after '-u' option!\n"
 msgstr ""
 
-#: systemv/cancel.c:308 systemv/cancel.c:373 systemv/cancel.c:372
 #, c-format
 msgid "%s: %s failed: %s\n"
 msgstr ""
 
-#: systemv/lp.c:173 systemv/lp.c:177
 #, c-format
 msgid "%s: Error - expected destination after '-d' option!\n"
 msgstr ""
 
-#: systemv/lp.c:206 systemv/lp.c:210
 #, c-format
 msgid "%s: Error - expected form after '-f' option!\n"
 msgstr ""
 
-#: systemv/lp.c:213 systemv/lp.c:217
 #, c-format
 msgid "%s: Warning - form option ignored!\n"
 msgstr ""
 
-#: systemv/lp.c:247 systemv/lp.c:251
 #, c-format
 msgid "%s: Expected job ID after '-i' option!\n"
 msgstr ""
 
-#: systemv/lp.c:258 systemv/lp.c:262
 #, c-format
 msgid "%s: Error - cannot print files and alter jobs simultaneously!\n"
 msgstr ""
 
-#: systemv/lp.c:271 systemv/lp.c:275
 #, c-format
 msgid "%s: Error - bad job ID!\n"
 msgstr ""
 
-#: systemv/lp.c:296 systemv/lp.c:308
 #, c-format
 msgid "%s: Error - expected copies after '-n' option!\n"
 msgstr ""
 
-#: systemv/lp.c:319 systemv/lp.c:331
 #, c-format
 msgid "%s: Error - expected option string after '-o' option!\n"
 msgstr ""
 
-#: systemv/lp.c:340 systemv/lp.c:352
 #, c-format
 msgid "%s: Error - expected priority after '-%c' option!\n"
 msgstr ""
 
-#: systemv/lp.c:363 systemv/lp.c:375
 #, c-format
 msgid "%s: Error - priority must be between 1 and 100.\n"
 msgstr ""
 
-#: systemv/lp.c:387 systemv/lp.c:399
 #, c-format
 msgid "%s: Error - expected title after '-t' option!\n"
 msgstr ""
 
-#: systemv/lp.c:405 systemv/lp.c:417
 #, c-format
 msgid "%s: Error - expected mode list after '-y' option!\n"
 msgstr ""
 
-#: systemv/lp.c:413 systemv/lp.c:425
 #, c-format
 msgid "%s: Warning - mode option ignored!\n"
 msgstr ""
 
-#: systemv/lp.c:427 systemv/lp.c:439
 #, c-format
 msgid "%s: Error - expected hold name after '-H' option!\n"
 msgstr ""
 
-#: systemv/lp.c:451 systemv/lp.c:463
 #, c-format
 msgid "%s: Need job ID ('-i jobid') before '-H restart'!\n"
 msgstr ""
 
-#: systemv/lp.c:475 systemv/lp.c:487
 #, c-format
 msgid "%s: Error - expected page list after '-P' option!\n"
 msgstr ""
 
-#: systemv/lp.c:496 systemv/lp.c:508
 #, c-format
 msgid "%s: Error - expected character set after '-S' option!\n"
 msgstr ""
 
-#: systemv/lp.c:504 systemv/lp.c:516
 #, c-format
 msgid "%s: Warning - character set option ignored!\n"
 msgstr ""
 
-#: systemv/lp.c:516 systemv/lp.c:528
 #, c-format
 msgid "%s: Error - expected content type after '-T' option!\n"
 msgstr ""
 
-#: systemv/lp.c:524 systemv/lp.c:536
 #, c-format
 msgid "%s: Warning - content type option ignored!\n"
 msgstr ""
 
-#: systemv/lp.c:538 systemv/lp.c:554
 #, c-format
 msgid "%s: Error - cannot print from stdin if files or a job ID are provided!\n"
 msgstr ""
 
-#: systemv/lpstat.c:164 systemv/lpstat.c:178
 #, c-format
 msgid "%s: Error - need \"completed\", \"not-completed\", or \"all\" after '-W' option!\n"
 msgstr ""
 
-#: systemv/lpstat.c:237
 #, c-format
 msgid "%s: Error - expected destination after '-b' option!\n"
 msgstr ""
 
-#: systemv/lpstat.c:534
 #, c-format
 msgid "%s: Invalid destination name in list \"%s\"!\n"
 msgstr ""
 
-#: systemv/lpstat.c:571 systemv/cupsaddsmb.c:156 systemv/cupsaddsmb.c:177
 #, c-format
 msgid "%s: Unable to connect to server\n"
 msgstr ""
 
-#: cups/notify.c:91
 msgid "Print Job:"
 msgstr ""
 
-#: cups/notify.c:96
 msgid "pending"
 msgstr ""
 
-#: cups/notify.c:99
 msgid "held"
 msgstr ""
 
-#: cups/notify.c:102 cups/notify.c:143
 msgid "processing"
 msgstr ""
 
-#: cups/notify.c:105 cups/notify.c:146
 msgid "stopped"
 msgstr ""
 
-#: cups/notify.c:108
 msgid "canceled"
 msgstr ""
 
-#: cups/notify.c:111
 msgid "aborted"
 msgstr ""
 
-#: cups/notify.c:114
 msgid "completed"
 msgstr ""
 
-#: cups/notify.c:117 cups/notify.c:149
 msgid "unknown"
 msgstr ""
 
-#: cups/notify.c:126
 msgid "untitled"
 msgstr ""
 
-#: cups/notify.c:135
 msgid "Printer:"
 msgstr ""
 
-#: cups/notify.c:140
 msgid "idle"
 msgstr ""
 
-#: scheduler/ipp.c:5513 scheduler/ipp.c:5482 scheduler/ipp.c:5498
 msgid "Missing notify-subscription-ids attribute!"
 msgstr ""
 
-#: scheduler/ipp.c:7851 scheduler/ipp.c:7341 scheduler/ipp.c:7357
 msgid "Job subscriptions cannot be renewed!"
 msgstr ""
 
-#: scheduler/main.c:163
 msgid "cupsd: Expected config filename after \"-c\" option!\n"
 msgstr ""
 
-#: scheduler/main.c:218
 msgid "cupsd: launchd(8) support not compiled in, running in normal mode.\n"
 msgstr ""
 
-#: scheduler/main.c:225
 #, c-format
 msgid "cupsd: Unknown option \"%c\" - aborting!\n"
 msgstr ""
 
-#: scheduler/main.c:232
 #, c-format
 msgid "cupsd: Unknown argument \"%s\" - aborting!\n"
 msgstr ""
 
-#: scheduler/main.c:2315 scheduler/main.c:2329 scheduler/main.c:2304
 msgid ""
 "Usage: cupsd [-c config-file] [-f] [-F] [-h] [-l]\n"
 "\n"
@@ -3389,126 +2342,99 @@ msgid ""
 "-l                  Run cupsd from launchd(8)\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:1343 systemv/cupstestppd.c:1543
 #, c-format
 msgid "        WARN    Line %d only contains whitespace!\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:1361 systemv/cupstestppd.c:1561
 msgid "        WARN    File contains a mix of CR, LF, and CR LF line endings!\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:1366 systemv/cupstestppd.c:1566
 msgid "        WARN    Non-Windows PPD files should use lines ending with only LF, not CR LF!\n"
 msgstr ""
 
-#: cgi-bin/printers.c:218 cgi-bin/printers.c:289 cgi-bin/printers.c:223
-#: cgi-bin/printers.c:294
 msgid "Printer Maintenance"
 msgstr ""
 
-#: cgi-bin/printers.c:292 cgi-bin/printers.c:297
 msgid "Unable to send maintenance job:"
 msgstr ""
 
-#: systemv/cupsaddsmb.c:566 systemv/cupsaddsmb.c:233
 #, c-format
 msgid "cupsaddsmb: No PPD file for printer \"%s\" - %s\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:346
 #, c-format
 msgid "      **FAIL**  %s %s does not exist!\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:1053
 #, c-format
 msgid "      **FAIL**  Bad language \"%s\"!\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:1078
 #, c-format
 msgid "      **FAIL**  Missing \"%s\" translation string for option %s!\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:1098
 #, c-format
 msgid "      **FAIL**  Default translation string for option %s contains 8-bit characters!\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:1119
 #, c-format
 msgid "      **FAIL**  Missing \"%s\" translation string for option %s, choice %s!\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:1141
 #, c-format
 msgid "      **FAIL**  Default translation string for option %s choice %s contains 8-bit characters!\n"
 msgstr ""
 
-#: systemv/cupstestppd.c:1175
 #, c-format
 msgid "      **FAIL**  Bad cupsFilter value \"%s\"!\n"
 msgstr ""
 
-#: cgi-bin/help.c:98 cgi-bin/help.c:139 cgi-bin/help.c:149 cgi-bin/help.c:179
 msgid "Help"
 msgstr ""
 
-#: cups/adminutil.c:233 cups/adminutil.c:246
 #, c-format
 msgid "Missing value on line %d!\n"
 msgstr ""
 
-#: cups/adminutil.c:249 cups/adminutil.c:265
 #, c-format
 msgid "Missing double quote on line %d!\n"
 msgstr ""
 
-#: cups/adminutil.c:266 cups/adminutil.c:284
 #, c-format
 msgid "Bad option + choice on line %d!\n"
 msgstr ""
 
-#: cups/adminutil.c:417
 #, c-format
 msgid "Unable to copy Windows 2000 printer driver files (%d)!\n"
 msgstr ""
 
-#: cups/adminutil.c:445
 #, c-format
 msgid "Unable to copy CUPS printer driver files (%d)!\n"
 msgstr ""
 
-#: cups/adminutil.c:480
 #, c-format
 msgid "Unable to install Windows 2000 printer driver files (%d)!\n"
 msgstr ""
 
-#: cups/adminutil.c:514
 #, c-format
 msgid "Unable to copy Windows 9x printer driver files (%d)!\n"
 msgstr ""
 
-#: cups/adminutil.c:536
 #, c-format
 msgid "Unable to install Windows 9x printer driver files (%d)!\n"
 msgstr ""
 
-#: cups/adminutil.c:547
 msgid "No Windows printer drivers are installed!\n"
 msgstr ""
 
-#: cups/adminutil.c:550
 msgid "Warning, no Windows 2000 printer drivers are installed!\n"
 msgstr ""
 
-#: cups/adminutil.c:568 cups/adminutil.c:658
 #, c-format
 msgid "Unable to set Windows printer driver (%d)!\n"
 msgstr ""
 
-#: systemv/cupsaddsmb.c:278
 msgid ""
 "Usage: cupsaddsmb [options] printer1 ... printerN\n"
 "       cupsaddsmb [options] -a\n"
@@ -3522,69 +2448,157 @@ msgid ""
 "  -v               Be verbose (show commands)\n"
 msgstr ""
 
-#: cups/adminutil.c:464
 #, c-format
 msgid "Unable to copy Windows 2000 printer driver files (%d)!"
 msgstr ""
 
-#: cups/adminutil.c:499
 #, c-format
 msgid "Unable to copy CUPS printer driver files (%d)!"
 msgstr ""
 
-#: cups/adminutil.c:542
 #, c-format
 msgid "Unable to install Windows 2000 printer driver files (%d)!"
 msgstr ""
 
-#: cups/adminutil.c:583
 #, c-format
 msgid "Unable to copy Windows 9x printer driver files (%d)!"
 msgstr ""
 
-#: cups/adminutil.c:612
 #, c-format
 msgid "Unable to install Windows 9x printer driver files (%d)!"
 msgstr ""
 
-#: cups/adminutil.c:631
 msgid "No Windows printer drivers are installed!"
 msgstr ""
 
-#: cups/adminutil.c:636
 msgid "Warning, no Windows 2000 printer drivers are installed!"
 msgstr ""
 
-#: cups/adminutil.c:736
 #, c-format
 msgid "open of %s failed: %s"
 msgstr ""
 
-#: cups/adminutil.c:1653
 #, c-format
 msgid "Running command: %s %s -N -A %s -c '%s'\n"
 msgstr ""
 
-#: cups/adminutil.c:1750
 #, c-format
 msgid "stat of %s failed: %s"
 msgstr ""
 
-#: scheduler/ipp.c:3021
 #, c-format
 msgid "Job #%d is already cancelled - can't cancel."
 msgstr ""
 
-#: scheduler/ipp.c:3027
 #, c-format
 msgid "Job #%d is already aborted - can't cancel."
 msgstr ""
 
-#: scheduler/ipp.c:3033
 #, c-format
 msgid "Job #%d is already completed - can't cancel."
 msgstr ""
 
+#, c-format
+msgid "You must access this page using the URL <A HREF=\"https://%s:%d%s\">https://%s:%d%s</A>."
+msgstr ""
+
+#, c-format
+msgid "Unsupported format '%s'!"
+msgstr ""
+
+msgid "FAIL\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"    Line %d is longer than 255 characters (%d)!\n"
+"        REF: Page 25, Line Length\n"
+msgstr ""
+
+msgid ""
+"    Missing %!PS-Adobe-3.0 on first line!\n"
+"        REF: Page 17, 3.1 Conforming Documents\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"    Bad %%%%Pages: on line %d!\n"
+"        REF: Page 43, %%%%Pages:\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"    Bad %%%%BoundingBox: on line %d!\n"
+"        REF: Page 39, %%%%BoundingBox:\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"    Bad %%%%Page: on line %d!\n"
+"        REF: Page 53, %%%%Page:\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"    Missing or bad %%BoundingBox: comment!\n"
+"        REF: Page 39, %%BoundingBox:\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"    Missing or bad %%Pages: comment!\n"
+"        REF: Page 43, %%Pages:\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"    Missing %%EndComments comment!\n"
+"        REF: Page 41, %%EndComments\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"    Missing or bad %%Page: comments!\n"
+"        REF: Page 53, %%Page:\n"
+msgstr ""
+
+#, c-format
+msgid "    Too many %%EndDocument comments!\n"
+msgstr ""
+
+#, c-format
+msgid "    Too many %%BeginDocument comments!\n"
+msgstr ""
+
+#, c-format
+msgid "    Saw %d lines that exceeded 255 characters!\n"
+msgstr ""
+
+msgid "PASS\n"
+msgstr ""
+
+msgid "    Warning: file contains binary data!\n"
+msgstr ""
+
+#, c-format
+msgid "    Warning: obsolete DSC version %.1f in file!\n"
+msgstr ""
+
+#, c-format
+msgid "    Warning: no %%EndComments comment in file!\n"
+msgstr ""
+
+msgid ""
+"Usage: cupstestdsc [options] filename.ps [... filename.ps]\n"
+"       cupstestdsc [options] -\n"
+"\n"
+"Options:\n"
+"\n"
+"    -h       Show program usage\n"
+"\n"
+"    Note: this program only validates the DSC comments, not the PostScript itself.\n"
+msgstr ""
+
 
 #
 # End of "$Id$".
index 45804bbd256728dc7a3f6e7dc2f763653104d42b..b81c73eb62293fce7bc1ef0bc730500b595e44cc 100644 (file)
@@ -22,88 +22,56 @@ msgid ""
 msgstr ""
 "Project-Id-Version: CUPS 1.2\n"
 "Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
-"POT-Creation-Date: 2006-03-13 08:39-0500\n"
+"POT-Creation-Date: 2006-03-23 21:52-0500\n"
 "PO-Revision-Date: 2006-03-13 17:36+0100\n"
 "Last-Translator: Juan Pablo González Riopedre <riopedre@tiscali.es>\n"
 "Language-Team: Spanish\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit"
+"Content-Transfer-Encoding: 8bit\n"
 
-#: cgi-bin/admin.c:1276 cgi-bin/admin.c:1154 cgi-bin/admin.c:1195
-#: cgi-bin/admin.c:1203
 msgid "Options Installed"
 msgstr "Opciones instaladas"
 
-#: cgi-bin/classes.c:103
 msgid "Class"
 msgstr "Clase"
 
-#: cgi-bin/printers.c:104
 msgid "Printer"
 msgstr "Impresora"
 
-#: cups/ppd.c:654 cups/ppd.c:1045 cups/ppd.c:660 cups/ppd.c:1167
 msgid "Extra"
 msgstr "Extra"
 
-#: cups/ppd.c:656 cups/ppd.c:881 cups/ppd.c:1047 cups/ppd.c:662 cups/ppd.c:996
-#: cups/ppd.c:1169 cups/ppd.c:651 cups/ppd.c:983 cups/ppd.c:1148
-#: cups/ppd.c:972 cups/ppd.c:1137 cups/ppd.c:646 cups/ppd.c:973
-#: cups/ppd.c:1138 cups/ppd.c:970 cups/ppd.c:1135
 msgid "General"
 msgstr "General"
 
-#: cups/ppd.c:704 cups/ppd.c:1105 cups/ppd.c:710 cups/ppd.c:1224
-#: cups/ppd.c:697 cups/ppd.c:1201 cups/ppd.c:1190 cups/ppd.c:692
-#: cups/ppd.c:1191 cups/ppd.c:1188
 msgid "Media Size"
 msgstr "Tamaño de papel"
 
-#: cups/ppd.c:706 cups/ppd.c:1107 cups/ppd.c:712 cups/ppd.c:1226
-#: cups/ppd.c:699 cups/ppd.c:1203 cups/ppd.c:1192 cups/ppd.c:694
-#: cups/ppd.c:1193 cups/ppd.c:1190
 msgid "Media Type"
 msgstr "Tipo de papel"
 
-#: cups/ppd.c:708 cups/ppd.c:1109 cups/ppd.c:714 cups/ppd.c:1228
-#: cups/ppd.c:701 cups/ppd.c:1205 cups/ppd.c:1194 cups/ppd.c:696
-#: cups/ppd.c:1195 cups/ppd.c:1192
 msgid "Media Source"
 msgstr "Fuente del papel"
 
-#: cups/ppd.c:710 cups/ppd.c:1111 cups/ppd.c:716 cups/ppd.c:1230
-#: cups/ppd.c:703 cups/ppd.c:1207 cups/ppd.c:1196 cups/ppd.c:698
-#: cups/ppd.c:1197 cups/ppd.c:1194
 msgid "Output Mode"
 msgstr "Modo de salida"
 
-#: cups/ppd.c:712 cups/ppd.c:1113 cups/ppd.c:718 cups/ppd.c:1232
-#: cups/ppd.c:705 cups/ppd.c:1209 cups/ppd.c:1198 cups/ppd.c:700
-#: cups/ppd.c:1199 cups/ppd.c:1196
 msgid "Resolution"
 msgstr "Resolución"
 
-#: cups/ppd.c:907
 msgid "Variable"
 msgstr "Variable"
 
-#: cups/ppd.c:1535 cups/ppd.c:1650 cups/ppd.c:1627 cups/ppd.c:1616
-#: cups/ppd.c:1622 cups/ppd.c:1619
 msgid "Yes"
 msgstr "Si"
 
-#: cups/ppd.c:1537 cups/ppd.c:1652 cups/ppd.c:1629 cups/ppd.c:1618
-#: cups/ppd.c:1624 cups/ppd.c:1621
 msgid "No"
 msgstr "No"
 
-#: cups/ppd.c:1824
 msgid "Auto"
 msgstr "Auto"
 
-#: scheduler/client.c:2247 scheduler/client.c:2251 scheduler/client.c:2274
-#: scheduler/client.c:2308 scheduler/client.c:2349 scheduler/client.c:2350
 msgid ""
 "Enter your username and password or the root username and password to access "
 "this page."
@@ -111,154 +79,89 @@ msgstr ""
 "Introduzca su nombre de usuario y contraseña o el nombre de usuario y "
 "contraseña de root para poder acceder a esta página"
 
-#: scheduler/client.c:2252 scheduler/client.c:2256 scheduler/client.c:2279
-#: scheduler/client.c:2313 scheduler/client.c:2354 scheduler/client.c:2355
 msgid "You must use a https: URL to access this page."
 msgstr "Debe escribir una URL https para acceder a esta página."
 
-#: scheduler/ipp.c:236 scheduler/ipp.c:244 scheduler/ipp.c:246
-#: scheduler/ipp.c:260
 #, c-format
 msgid "Bad request version number %d.%d!"
 msgstr "Petición incorrecta de número de versión %d %d."
 
-#: scheduler/ipp.c:246 scheduler/ipp.c:254 scheduler/ipp.c:256
-#: scheduler/ipp.c:270
 msgid "No attributes in request!"
 msgstr "No hay atributos en la solicitud."
 
-#: scheduler/ipp.c:269 scheduler/ipp.c:277 scheduler/ipp.c:279
-#: scheduler/ipp.c:293
 #, c-format
 msgid "Attribute groups are out of order (%x < %x)!"
 msgstr "Los grupos de atributos no están ordenados (%x < %x)."
 
-#: scheduler/ipp.c:379 scheduler/ipp.c:389 scheduler/ipp.c:391
-#: scheduler/ipp.c:405
 msgid "Missing required attributes!"
 msgstr "Faltan atributos necesarios."
 
-#: scheduler/ipp.c:575 scheduler/ipp.c:585 scheduler/ipp.c:591
-#: scheduler/ipp.c:605
 #, c-format
 msgid "%s not supported!"
 msgstr "No se admite el uso de %s."
 
-#: scheduler/ipp.c:684 scheduler/ipp.c:1055 scheduler/ipp.c:2271
-#: scheduler/ipp.c:2383 scheduler/ipp.c:3707 scheduler/ipp.c:4417
-#: scheduler/ipp.c:4649 scheduler/ipp.c:5002 scheduler/ipp.c:5445
-#: scheduler/ipp.c:5890 scheduler/ipp.c:6245 scheduler/ipp.c:6609
-#: scheduler/ipp.c:7308 scheduler/ipp.c:8179 scheduler/ipp.c:8585
-#: scheduler/ipp.c:8663 scheduler/ipp.c:8836 scheduler/ipp.c:696
-#: scheduler/ipp.c:1079 scheduler/ipp.c:2318 scheduler/ipp.c:2433
-#: scheduler/ipp.c:3901 scheduler/ipp.c:4621 scheduler/ipp.c:4855
-#: scheduler/ipp.c:5237 scheduler/ipp.c:5526 scheduler/ipp.c:5834
-#: scheduler/ipp.c:6113 scheduler/ipp.c:6155 scheduler/ipp.c:6657
-#: scheduler/ipp.c:7365 scheduler/ipp.c:8251 scheduler/ipp.c:8662
-#: scheduler/ipp.c:8742 scheduler/ipp.c:8917 scheduler/ipp.c:702
-#: scheduler/ipp.c:1093 scheduler/ipp.c:2357 scheduler/ipp.c:2472
-#: scheduler/ipp.c:3993 scheduler/ipp.c:4730 scheduler/ipp.c:4973
-#: scheduler/ipp.c:5357 scheduler/ipp.c:5769 scheduler/ipp.c:6077
-#: scheduler/ipp.c:6368 scheduler/ipp.c:6410 scheduler/ipp.c:6916
-#: scheduler/ipp.c:7626 scheduler/ipp.c:8589 scheduler/ipp.c:9003
-#: scheduler/ipp.c:9084 scheduler/ipp.c:9259 scheduler/ipp.c:716
-#: scheduler/ipp.c:1003 scheduler/ipp.c:1174 scheduler/ipp.c:2812
-#: scheduler/ipp.c:2927 scheduler/ipp.c:4699 scheduler/ipp.c:4942
-#: scheduler/ipp.c:5326 scheduler/ipp.c:5738 scheduler/ipp.c:6046
-#: scheduler/ipp.c:6337 scheduler/ipp.c:6379 scheduler/ipp.c:7116
-#: scheduler/ipp.c:8081 scheduler/ipp.c:8745 scheduler/ipp.c:8826
-#: scheduler/ipp.c:9001 scheduler/ipp.c:4715 scheduler/ipp.c:4958
-#: scheduler/ipp.c:5342 scheduler/ipp.c:5754 scheduler/ipp.c:6062
-#: scheduler/ipp.c:6353 scheduler/ipp.c:6395 scheduler/ipp.c:7132
-#: scheduler/ipp.c:8097 scheduler/ipp.c:8761 scheduler/ipp.c:8842
-#: scheduler/ipp.c:9017
 msgid "The printer or class was not found."
 msgstr "No se ha encontrado la impresora o la clase."
 
-#: scheduler/ipp.c:762 scheduler/ipp.c:777 scheduler/ipp.c:784
-#: scheduler/ipp.c:799
 msgid ""
 "The printer-uri must be of the form \"ipp://HOSTNAME/classes/CLASSNAME\"."
 msgstr ""
-"El printer-uri debe ser de la forma \"ipp://NOMBRE_ORDENADOR/classes/NOMBRE_CLASE\"."
+"El printer-uri debe ser de la forma \"ipp://NOMBRE_ORDENADOR/classes/"
+"NOMBRE_CLASE\"."
 
-#: scheduler/ipp.c:778 scheduler/ipp.c:1454 scheduler/ipp.c:793
-#: scheduler/ipp.c:1482 scheduler/ipp.c:800 scheduler/ipp.c:1515
-#: scheduler/ipp.c:815 scheduler/ipp.c:2031
 #, c-format
 msgid "The printer-uri \"%s\" contains invalid characters."
 msgstr "El printer-uri \"%s\" contiene caracteres incorrectos."
 
-#: scheduler/ipp.c:811 scheduler/ipp.c:826 scheduler/ipp.c:833
-#: scheduler/ipp.c:848
 #, c-format
 msgid "A printer named \"%s\" already exists!"
 msgstr "Ya existe una impresora llamada \"%s\"."
 
-#: scheduler/ipp.c:904 scheduler/ipp.c:924 scheduler/ipp.c:933
-#: scheduler/ipp.c:944
 #, c-format
 msgid "Attempt to set %s printer-state to bad value %d!"
-msgstr "Se ha intentado cambiar el valor printer-state de %s a un valor incorrecto %d."
+msgstr ""
+"Se ha intentado cambiar el valor printer-state de %s a un valor incorrecto %"
+"d."
 
-#: scheduler/ipp.c:1000 scheduler/ipp.c:1022 scheduler/ipp.c:1034
 #, c-format
 msgid "add_class: Unknown printer-op-policy \"%s\"."
 msgstr "add_class: printer-op-policy \"%s\" desconocido."
 
-#: scheduler/ipp.c:1013 scheduler/ipp.c:1035 scheduler/ipp.c:1047
 #, c-format
 msgid "add_class: Unknown printer-error-policy \"%s\"."
 msgstr "add_class: printer-error-policy \"%s\" desconocido."
 
-#: scheduler/ipp.c:1144 scheduler/ipp.c:1168 scheduler/ipp.c:1200
-#: scheduler/ipp.c:1112
 msgid "Unable to allocate memory for file types!"
 msgstr "No se ha podido reservar memoria para tipos de archivo."
 
-#: scheduler/ipp.c:1290 scheduler/ipp.c:4501 scheduler/ipp.c:1316
-#: scheduler/ipp.c:4705 scheduler/ipp.c:1348 scheduler/ipp.c:4804
-#: scheduler/ipp.c:1810 scheduler/ipp.c:4773 scheduler/ipp.c:4789
 #, c-format
 msgid "Character set \"%s\" not supported!"
 msgstr "No se admite el uso del juego de caracteres \"%s\"."
 
-#: scheduler/ipp.c:1299 scheduler/ipp.c:4510 scheduler/ipp.c:1325
-#: scheduler/ipp.c:4714 scheduler/ipp.c:1357 scheduler/ipp.c:4813
-#: scheduler/ipp.c:1819 scheduler/ipp.c:4782 scheduler/ipp.c:4798
 #, c-format
 msgid "Language \"%s\" not supported!"
 msgstr "No se admite el uso del idioma \"%s\"."
 
-#: scheduler/ipp.c:1309 scheduler/ipp.c:4520 scheduler/ipp.c:1335
-#: scheduler/ipp.c:4724 scheduler/ipp.c:1367 scheduler/ipp.c:4823
-#: scheduler/ipp.c:1829 scheduler/ipp.c:4792 scheduler/ipp.c:4808
 #, c-format
 msgid "The notify-user-data value is too large (%d > 63 octets)!"
 msgstr "El valor notify-user-data es demasiado grande (%d > 63 octetos)."
 
-#: scheduler/ipp.c:1326 scheduler/ipp.c:1352 scheduler/ipp.c:1384
-#: scheduler/ipp.c:1846
 msgid ""
 "The notify-lease-duration attribute cannot be used with job subscriptions."
 msgstr ""
-"El atributo notify-lease-duration no puede ser usado con subscripciones de trabajos."
+"El atributo notify-lease-duration no puede ser usado con subscripciones de "
+"trabajos."
 
-#: scheduler/ipp.c:1438 scheduler/ipp.c:1466 scheduler/ipp.c:1499
-#: scheduler/ipp.c:2015
 msgid ""
 "The printer-uri must be of the form \"ipp://HOSTNAME/printers/PRINTERNAME\"."
 msgstr ""
-"El printer-uri debe ser de la forma \"ipp://NOMBRE_ORDENADOR/printers/NOMBRE_IMPRESORA\"."
+"El printer-uri debe ser de la forma \"ipp://NOMBRE_ORDENADOR/printers/"
+"NOMBRE_IMPRESORA\"."
 
-#: scheduler/ipp.c:1487 scheduler/ipp.c:1515 scheduler/ipp.c:1548
-#: scheduler/ipp.c:2064
 #, c-format
 msgid "A class named \"%s\" already exists!"
 msgstr "Ya existe una clase llamada \"%s\"."
 
-#: scheduler/ipp.c:1575 scheduler/ipp.c:1607 scheduler/ipp.c:1644
-#: scheduler/ipp.c:2157
 #, c-format
 msgid ""
 "File device URIs have been disabled! To enable, see the FileDevice directive "
@@ -267,415 +170,241 @@ msgstr ""
 "Los URIs del dispositivo de archivo han sido deshabilitados. Para "
 "habilitarlos, vea la directiva FileDevice en \"%s/cupsd.conf\"."
 
-#: scheduler/ipp.c:1595 scheduler/ipp.c:1627 scheduler/ipp.c:1664
-#: scheduler/ipp.c:2177
 #, c-format
 msgid "Bad device-uri \"%s\"!"
 msgstr "device-uri \"%s\" incorrecto."
 
-#: scheduler/ipp.c:1626 scheduler/ipp.c:1659 scheduler/ipp.c:1698
-#: scheduler/ipp.c:2211
 #, c-format
 msgid "Bad port-monitor \"%s\"!"
 msgstr "port-monitor \"%s\" incorrecto."
 
-#: scheduler/ipp.c:1669 scheduler/ipp.c:1705 scheduler/ipp.c:1744
-#: scheduler/ipp.c:2257
 #, c-format
 msgid "Bad printer-state value %d!"
 msgstr "Valor printer-state %d incorrecto."
 
-#: scheduler/ipp.c:1762 scheduler/ipp.c:1800 scheduler/ipp.c:1842
-#: scheduler/ipp.c:8585 scheduler/ipp.c:8601
 #, c-format
 msgid "Unknown printer-op-policy \"%s\"."
 msgstr "printer-op-policy \"%s\" incorrecto."
 
-#: scheduler/ipp.c:1775 scheduler/ipp.c:1813 scheduler/ipp.c:1855
-#: scheduler/ipp.c:8600 scheduler/ipp.c:8616
 #, c-format
 msgid "Unknown printer-error-policy \"%s\"."
 msgstr "printer-error-policy \"%s\" incorrecto."
 
-#: scheduler/ipp.c:1837 scheduler/ipp.c:1875 scheduler/ipp.c:1919
-#: scheduler/ipp.c:2336
 #, c-format
 msgid "Unable to copy interface script - %s!"
 msgstr "No se ha podido copiar el script de interface - %s."
 
-#: scheduler/ipp.c:1862 scheduler/ipp.c:1900 scheduler/ipp.c:1944
-#: scheduler/ipp.c:2361
 #, c-format
 msgid "Unable to copy PPD file - %s!"
 msgstr "No se ha podido copiar el archivo PPD - %s."
 
-#: scheduler/ipp.c:1915 scheduler/ipp.c:1954 scheduler/ipp.c:2000
-#: scheduler/ipp.c:2417
 msgid "Unable to copy PPD file!"
 msgstr "No se ha podido copiar el archivo PPD."
 
-#: scheduler/ipp.c:2076 scheduler/ipp.c:2364 scheduler/ipp.c:5188
-#: scheduler/ipp.c:6008 scheduler/ipp.c:6147 scheduler/ipp.c:7394
-#: scheduler/ipp.c:7538 scheduler/ipp.c:7776 scheduler/ipp.c:8261
-#: scheduler/ipp.c:2116 scheduler/ipp.c:2412 scheduler/ipp.c:5102
-#: scheduler/ipp.c:5955 scheduler/ipp.c:7452 scheduler/ipp.c:7599
-#: scheduler/ipp.c:7839 scheduler/ipp.c:8334 scheduler/ipp.c:2158
-#: scheduler/ipp.c:2451 scheduler/ipp.c:5220 scheduler/ipp.c:6210
-#: scheduler/ipp.c:7713 scheduler/ipp.c:7928 scheduler/ipp.c:8167
-#: scheduler/ipp.c:8672 scheduler/ipp.c:2613 scheduler/ipp.c:2906
-#: scheduler/ipp.c:5189 scheduler/ipp.c:6179 scheduler/ipp.c:7203
-#: scheduler/ipp.c:7418 scheduler/ipp.c:7657 scheduler/ipp.c:8164
-#: scheduler/ipp.c:5205 scheduler/ipp.c:6195 scheduler/ipp.c:7219
-#: scheduler/ipp.c:7434 scheduler/ipp.c:7673 scheduler/ipp.c:8180
 msgid "Got a printer-uri attribute but no job-id!"
 msgstr "Se ha obtenido el atributo printer-uri pero no el job-id."
 
-#: scheduler/ipp.c:2097 scheduler/ipp.c:2433 scheduler/ipp.c:5210
-#: scheduler/ipp.c:6029 scheduler/ipp.c:6169 scheduler/ipp.c:7416
-#: scheduler/ipp.c:7560 scheduler/ipp.c:7797 scheduler/ipp.c:8282
-#: scheduler/ipp.c:2138 scheduler/ipp.c:2484 scheduler/ipp.c:5125
-#: scheduler/ipp.c:5978 scheduler/ipp.c:6201 scheduler/ipp.c:7475
-#: scheduler/ipp.c:7622 scheduler/ipp.c:7862 scheduler/ipp.c:8357
-#: scheduler/ipp.c:2180 scheduler/ipp.c:2523 scheduler/ipp.c:5243
-#: scheduler/ipp.c:6233 scheduler/ipp.c:6456 scheduler/ipp.c:7736
-#: scheduler/ipp.c:7951 scheduler/ipp.c:8190 scheduler/ipp.c:8695
-#: scheduler/ipp.c:2635 scheduler/ipp.c:2978 scheduler/ipp.c:5212
-#: scheduler/ipp.c:6202 scheduler/ipp.c:6425 scheduler/ipp.c:7226
-#: scheduler/ipp.c:7441 scheduler/ipp.c:7680 scheduler/ipp.c:8187
-#: scheduler/ipp.c:5228 scheduler/ipp.c:6218 scheduler/ipp.c:6441
-#: scheduler/ipp.c:7242 scheduler/ipp.c:7457 scheduler/ipp.c:7696
-#: scheduler/ipp.c:8203
 #, c-format
 msgid "Bad job-uri attribute \"%s\"!"
 msgstr "Atributo job-uri \"%s\" incorrecto."
 
-#: scheduler/ipp.c:2116 scheduler/ipp.c:2451 scheduler/ipp.c:5228
-#: scheduler/ipp.c:6047 scheduler/ipp.c:6188 scheduler/ipp.c:7434
-#: scheduler/ipp.c:7578 scheduler/ipp.c:7815 scheduler/ipp.c:8300
 #, c-format
 msgid "Job #%d doesn't exist!"
 msgstr "El trabajo #%d no existe."
 
-#: scheduler/ipp.c:2131 scheduler/ipp.c:2172 scheduler/ipp.c:2214
-#: scheduler/ipp.c:2669
 #, c-format
 msgid "Job #%d is not held for authentication!"
 msgstr "El trabajo #%d no está retenido para autentificación."
 
-#: scheduler/ipp.c:2153 scheduler/ipp.c:2195
 #, c-format
 msgid "You are not authorized to authenticate job #%d owned by \"%s\"!"
-msgstr "No tiene permiso para autentificar el trabajo #%d que pertenece a \"%s\"."
+msgstr ""
+"No tiene permiso para autentificar el trabajo #%d que pertenece a \"%s\"."
 
-#: scheduler/ipp.c:2221 scheduler/ipp.c:2264 scheduler/ipp.c:2303
-#: scheduler/ipp.c:2758
 msgid "The printer-uri attribute is required!"
 msgstr "Se necesita el atributo printer-uri."
 
-#: scheduler/ipp.c:2238 scheduler/ipp.c:2283 scheduler/ipp.c:2322
-#: scheduler/ipp.c:2777
 msgid "Missing requesting-user-name attribute!"
 msgstr "Falta el atributo requesting-user-name."
 
-#: scheduler/ipp.c:2277 scheduler/ipp.c:2324 scheduler/ipp.c:2363
-#: scheduler/ipp.c:2818
 #, c-format
 msgid "The printer-uri \"%s\" is not valid."
 msgstr "El printer-uri \"%s\" no es válido."
 
-#: scheduler/ipp.c:2410 scheduler/ipp.c:2460 scheduler/ipp.c:2499
-#: scheduler/ipp.c:2954
 #, c-format
 msgid "No active jobs on %s!"
 msgstr "No hay trabajos activos en %s."
 
-#: scheduler/ipp.c:2462 scheduler/ipp.c:2513
 #, c-format
 msgid "You are not authorized to delete job #%d owned by \"%s\"!"
 msgstr "No tiene permiso para borrar el trabajo #%d que pertenece a \"%s\"."
 
-#: scheduler/ipp.c:2476 scheduler/ipp.c:2527 scheduler/ipp.c:2563
-#: scheduler/ipp.c:3018
 #, c-format
 msgid "Job #%d is already %s - can't cancel."
 msgstr "El trabajo #%d ya está %s - no se puede cancelar."
 
-#: scheduler/ipp.c:3720 scheduler/ipp.c:3914 scheduler/ipp.c:4006
-#: scheduler/ipp.c:1190
 msgid "The printer or class is not shared!"
 msgstr "La impresora o clase no está compartida."
 
-#: scheduler/ipp.c:3746 scheduler/ipp.c:6647 scheduler/ipp.c:3940
-#: scheduler/ipp.c:6695 scheduler/ipp.c:4032 scheduler/ipp.c:6954
-#: scheduler/ipp.c:1216
 #, c-format
 msgid "Destination \"%s\" is not accepting jobs."
 msgstr "El destino %s no está aceptando trabajos."
 
-#: scheduler/ipp.c:3759 scheduler/ipp.c:6443 scheduler/ipp.c:3954
-#: scheduler/ipp.c:6487 scheduler/ipp.c:4046 scheduler/ipp.c:6739
-#: scheduler/ipp.c:1230
 #, c-format
 msgid "Bad copies value %d."
 msgstr "Valor de copias %d incorrecto."
 
-#: scheduler/ipp.c:3775 scheduler/ipp.c:6459 scheduler/ipp.c:3971
-#: scheduler/ipp.c:6504 scheduler/ipp.c:4063 scheduler/ipp.c:6756
-#: scheduler/ipp.c:1247
 #, c-format
 msgid "Bad page-ranges values %d-%d."
 msgstr "Valores de page-ranges %d-%d incorrectos."
 
-#: scheduler/ipp.c:3795 scheduler/ipp.c:3991 scheduler/ipp.c:4083
-#: scheduler/ipp.c:1267
 msgid "Too many active jobs."
 msgstr "Demasiados trabajos activos."
 
-#: scheduler/ipp.c:3801 scheduler/ipp.c:6668 scheduler/ipp.c:3997
-#: scheduler/ipp.c:6716 scheduler/ipp.c:4089 scheduler/ipp.c:6975
-#: scheduler/ipp.c:1273
 msgid "Quota limit reached."
 msgstr "Se ha alcanzado el límite de cuota."
 
-#: scheduler/ipp.c:3824 scheduler/ipp.c:6691 scheduler/ipp.c:4022
-#: scheduler/ipp.c:6741 scheduler/ipp.c:4114 scheduler/ipp.c:7000
-#: scheduler/ipp.c:1306
 #, c-format
 msgid "Unable to add job for destination \"%s\"!"
 msgstr "No se ha podido añadir el trabajo para el destino \"%s\"."
 
-#: scheduler/ipp.c:4469 scheduler/ipp.c:4673 scheduler/ipp.c:4770
-#: scheduler/ipp.c:4739 scheduler/ipp.c:4755
 msgid "No subscription attributes in request!"
 msgstr "No hay atributos de subscripción en la solicitud."
 
-#: scheduler/ipp.c:4559 scheduler/ipp.c:4763 scheduler/ipp.c:4869
-#: scheduler/ipp.c:4838 scheduler/ipp.c:4854
 msgid "notify-events not specified!"
 msgstr "notify-events no especificado."
 
-#: scheduler/ipp.c:4577 scheduler/ipp.c:4781 scheduler/ipp.c:4887
-#: scheduler/ipp.c:4856 scheduler/ipp.c:4872
 #, c-format
 msgid "Job %d not found!"
 msgstr "No se ha encontrado el trabajo %d."
 
-#: scheduler/ipp.c:4827 scheduler/ipp.c:4957 scheduler/ipp.c:5075
-#: scheduler/ipp.c:5044 scheduler/ipp.c:5060
 msgid "No default printer"
 msgstr "No hay impresora predeterminada"
 
-#: scheduler/ipp.c:4930 scheduler/ipp.c:5060 scheduler/ipp.c:5178
-#: scheduler/ipp.c:5147 scheduler/ipp.c:5163
 msgid "cups-deviced failed to execute."
 msgstr "Ha fallado al ejecutarse cups-deviced."
 
-#: scheduler/ipp.c:5393 scheduler/ipp.c:5479 scheduler/ipp.c:5722
-#: scheduler/ipp.c:5691 scheduler/ipp.c:5707
 msgid "cups-driverd failed to execute."
 msgstr "Ha fallado al ejecutarse cups-driverd."
 
-#: scheduler/ipp.c:5571 scheduler/ipp.c:5594 scheduler/ipp.c:5837
-#: scheduler/ipp.c:5806 scheduler/ipp.c:5822
 msgid "No destinations added."
 msgstr "No se han añadido destinos."
 
-#: scheduler/ipp.c:5794 scheduler/ipp.c:5736 scheduler/ipp.c:2615
-#: scheduler/ipp.c:5530 scheduler/ipp.c:5979 scheduler/ipp.c:7840
-#: scheduler/ipp.c:3070 scheduler/ipp.c:5499 scheduler/ipp.c:5948
-#: scheduler/ipp.c:7330 scheduler/ipp.c:3086 scheduler/ipp.c:5515
-#: scheduler/ipp.c:5964 scheduler/ipp.c:7346
 #, c-format
 msgid "notify-subscription-id %d no good!"
 msgstr "notify-subscription-id %d incorrecto."
 
-#: scheduler/ipp.c:5878 scheduler/ipp.c:5822 scheduler/ipp.c:6065
-#: scheduler/ipp.c:6034 scheduler/ipp.c:6050
 #, c-format
 msgid "Job #%s does not exist!"
 msgstr "El trabajo #%s no existe."
 
-#: scheduler/ipp.c:5900 scheduler/ipp.c:2116 scheduler/ipp.c:2451
-#: scheduler/ipp.c:5228 scheduler/ipp.c:6047 scheduler/ipp.c:6188
-#: scheduler/ipp.c:7434 scheduler/ipp.c:7578 scheduler/ipp.c:7815
-#: scheduler/ipp.c:8300 scheduler/ipp.c:2157 scheduler/ipp.c:2502
-#: scheduler/ipp.c:5143 scheduler/ipp.c:5844 scheduler/ipp.c:5996
-#: scheduler/ipp.c:6174 scheduler/ipp.c:6219 scheduler/ipp.c:7493
-#: scheduler/ipp.c:7640 scheduler/ipp.c:7880 scheduler/ipp.c:8375
-#: scheduler/ipp.c:2199 scheduler/ipp.c:2541 scheduler/ipp.c:5261
-#: scheduler/ipp.c:6087 scheduler/ipp.c:6251 scheduler/ipp.c:6429
-#: scheduler/ipp.c:6474 scheduler/ipp.c:7754 scheduler/ipp.c:7969
-#: scheduler/ipp.c:8208 scheduler/ipp.c:8713 scheduler/ipp.c:2654
-#: scheduler/ipp.c:2996 scheduler/ipp.c:5230 scheduler/ipp.c:6056
-#: scheduler/ipp.c:6220 scheduler/ipp.c:6398 scheduler/ipp.c:6443
-#: scheduler/ipp.c:7244 scheduler/ipp.c:7459 scheduler/ipp.c:7698
-#: scheduler/ipp.c:8205 scheduler/ipp.c:5246 scheduler/ipp.c:6072
-#: scheduler/ipp.c:6236 scheduler/ipp.c:6414 scheduler/ipp.c:6459
-#: scheduler/ipp.c:7260 scheduler/ipp.c:7475 scheduler/ipp.c:7714
-#: scheduler/ipp.c:8221
 #, c-format
 msgid "Job #%d does not exist!"
 msgstr "El trabajo #%d no existe."
 
-#: scheduler/ipp.c:5969 scheduler/ipp.c:5915 scheduler/ipp.c:6150
-#: scheduler/ipp.c:6119 scheduler/ipp.c:6135
 msgid "No subscriptions found."
 msgstr "No se han encontrado subscripciones."
 
-#: scheduler/ipp.c:6058 scheduler/ipp.c:6007
 #, c-format
 msgid "Not authorized to hold job #%d owned by \"%s\"!"
 msgstr "No está autorizado a retener el trabajo #%d que pertenece a \"%s\"."
 
-#: scheduler/ipp.c:6203 scheduler/ipp.c:8315 scheduler/ipp.c:6250
-#: scheduler/ipp.c:8390 scheduler/ipp.c:6505 scheduler/ipp.c:8728
-#: scheduler/ipp.c:6474 scheduler/ipp.c:8220 scheduler/ipp.c:6490
-#: scheduler/ipp.c:8236
 #, c-format
 msgid "Job #%d is finished and cannot be altered!"
 msgstr "El trabajo #%d ha terminado y no puede ser modificado."
 
-#: scheduler/ipp.c:6215 scheduler/ipp.c:6262
 #, c-format
 msgid "You are not authorized to move job #%d owned by \"%s\"!"
 msgstr "No está autorizado a mover el trabajo#%d que pertenece a \"%s\"."
 
-#: scheduler/ipp.c:6228 scheduler/ipp.c:6098 scheduler/ipp.c:6353
-#: scheduler/ipp.c:6322 scheduler/ipp.c:6338
 msgid "job-printer-uri attribute missing!"
 msgstr "Atributo job-printer-uri desaparecido."
 
-#: scheduler/ipp.c:6485 scheduler/ipp.c:7847 scheduler/ipp.c:6531
-#: scheduler/ipp.c:7913 scheduler/ipp.c:6783 scheduler/ipp.c:8238
-#: scheduler/ipp.c:6703 scheduler/ipp.c:7728 scheduler/ipp.c:6719
-#: scheduler/ipp.c:7744
 #, c-format
 msgid "Unsupported compression \"%s\"!"
 msgstr "No se admite el uso de la compresión \"%s\"."
 
-#: scheduler/ipp.c:6504 scheduler/ipp.c:7866 scheduler/ipp.c:6550
-#: scheduler/ipp.c:7932 scheduler/ipp.c:6802 scheduler/ipp.c:8257
-#: scheduler/ipp.c:6722 scheduler/ipp.c:7747 scheduler/ipp.c:6738
-#: scheduler/ipp.c:7763
 msgid "No file!?!"
 msgstr "¡¿¡No hay archivo!?!"
 
-#: scheduler/ipp.c:6522 scheduler/ipp.c:6568 scheduler/ipp.c:6820
-#: scheduler/ipp.c:6740 scheduler/ipp.c:6756
 #, c-format
 msgid "Could not scan type \"%s\"!"
 msgstr "No se puede analizar el tipo \"%s\"."
 
-#: scheduler/ipp.c:6574 scheduler/ipp.c:7936 scheduler/ipp.c:6620
-#: scheduler/ipp.c:8001 scheduler/ipp.c:6879 scheduler/ipp.c:8332
-#: scheduler/ipp.c:6799 scheduler/ipp.c:7822 scheduler/ipp.c:6815
-#: scheduler/ipp.c:7838
 #, c-format
 msgid "Unsupported format '%s/%s'!"
 msgstr "No se admite el uso del formato '%s/%s'."
 
-#: scheduler/ipp.c:6621 scheduler/ipp.c:6669 scheduler/ipp.c:6928
 msgid "Printer not shared!"
 msgstr "La impresora no está compartida."
 
-#: scheduler/ipp.c:6661 scheduler/ipp.c:6709 scheduler/ipp.c:6968
 #, c-format
 msgid "Too many jobs - %d jobs, max jobs is %d."
 msgstr "Demasiados trabajos - %d trabajos, el máximo de trabajos es %d."
 
-#: scheduler/ipp.c:7448 scheduler/ipp.c:7507 scheduler/ipp.c:7768
-#: scheduler/ipp.c:7258 scheduler/ipp.c:7274
 #, c-format
 msgid "Job #%d is not held!"
 msgstr "El trabajo #%d no está retenido."
 
-#: scheduler/ipp.c:7459 scheduler/ipp.c:7518
 #, c-format
 msgid "You are not authorized to release job id %d owned by \"%s\"!"
 msgstr "No tiene permiso para liberar el trabajo id %d que pertenece a \"%s\"."
 
-#: scheduler/ipp.c:7592 scheduler/ipp.c:7654 scheduler/ipp.c:7983
-#: scheduler/ipp.c:7473 scheduler/ipp.c:7489
 #, c-format
 msgid "Job #%d is not complete!"
 msgstr "El trabajo #%d no ha sido completado."
 
-#: scheduler/ipp.c:7608 scheduler/ipp.c:7670 scheduler/ipp.c:8001
-#: scheduler/ipp.c:7491 scheduler/ipp.c:7507
 #, c-format
 msgid "Job #%d cannot be restarted - no files!"
 msgstr "El trabajo #%d no puede ser reiniciado - no hay archivos."
 
-#: scheduler/ipp.c:7619 scheduler/ipp.c:7681
 #, c-format
 msgid "You are not authorized to restart job id %d owned by \"%s\"!"
-msgstr "No tiene permiso para reiniciar el trabajo id %d que pertenece a \"%s\"."
+msgstr ""
+"No tiene permiso para reiniciar el trabajo id %d que pertenece a \"%s\"."
 
-#: scheduler/ipp.c:7826 scheduler/ipp.c:7891
 #, c-format
 msgid "You are not authorized to send document for job #%d owned by \"%s\"!"
-msgstr "No tiene permiso para enviar el documento para el trabajo #%d que pertenece a \"%s\"."
+msgstr ""
+"No tiene permiso para enviar el documento para el trabajo #%d que pertenece "
+"a \"%s\"."
 
-#: scheduler/ipp.c:7883 scheduler/ipp.c:8803 scheduler/ipp.c:7949
-#: scheduler/ipp.c:8883 scheduler/ipp.c:8274 scheduler/ipp.c:9225
-#: scheduler/ipp.c:7764 scheduler/ipp.c:8967 scheduler/ipp.c:7780
-#: scheduler/ipp.c:8983
 #, c-format
 msgid "Bad document-format \"%s\"!"
 msgstr "document-format \"%s\" incorrecto."
 
-#: scheduler/ipp.c:8326 scheduler/ipp.c:8401
 #, c-format
 msgid "You are not authorized to alter job id %d owned by \"%s\"!"
 msgstr "No tiene permiso para alterar el trabajo id %d que pertenece a \"%s\"."
 
-#: scheduler/ipp.c:8371 scheduler/ipp.c:8446 scheduler/ipp.c:8783
-#: scheduler/ipp.c:8275 scheduler/ipp.c:8291
 #, c-format
 msgid "%s cannot be changed."
 msgstr "%s no puede ser cambiado."
 
-#: scheduler/ipp.c:8387 scheduler/ipp.c:8462 scheduler/ipp.c:8799
-#: scheduler/ipp.c:8291 scheduler/ipp.c:8307
 msgid "Bad job-priority value!"
 msgstr "Valor job-priority incorrecto."
 
-#: scheduler/ipp.c:8395 scheduler/ipp.c:8470 scheduler/ipp.c:8807
-#: scheduler/ipp.c:8299 scheduler/ipp.c:8315
 msgid "Job is completed and cannot be changed."
 msgstr "El trabajo está terminado y no puede ser cambiado."
 
-#: scheduler/ipp.c:8409 scheduler/ipp.c:8484 scheduler/ipp.c:8821
-#: scheduler/ipp.c:8313 scheduler/ipp.c:8329
 msgid "Bad job-state value!"
 msgstr "Valor job-state incorrecto."
 
-#: scheduler/ipp.c:8423 scheduler/ipp.c:8435 scheduler/ipp.c:8446
-#: scheduler/ipp.c:8498 scheduler/ipp.c:8510 scheduler/ipp.c:8521
-#: scheduler/ipp.c:8835 scheduler/ipp.c:8850 scheduler/ipp.c:8861
-#: scheduler/ipp.c:8327 scheduler/ipp.c:8342 scheduler/ipp.c:8353
-#: scheduler/ipp.c:8343 scheduler/ipp.c:8358 scheduler/ipp.c:8369
 msgid "Job state cannot be changed."
 msgstr "No se puede cambiar el estado del trabajo."
 
-#: scheduler/ipp.c:8787 scheduler/ipp.c:8867 scheduler/ipp.c:9209
-#: scheduler/ipp.c:8951 scheduler/ipp.c:8967
 #, c-format
 msgid "Unsupported compression attribute %s!"
 msgstr "No se admite el uso del atributo de compresión %s."
 
-#: scheduler/ipp.c:8815 scheduler/ipp.c:8894 scheduler/ipp.c:9236
-#: scheduler/ipp.c:8978 scheduler/ipp.c:8994
 #, c-format
 msgid "Unsupported format \"%s\"!"
 msgstr "No se admite el uso del formato \"%s\"."
 
-#: berkeley/lpc.c:201
 #, c-format
 msgid "%s is not implemented by the CUPS version of lpc.\n"
 msgstr "%s no está implementado en la versión de CUPS de lpc.\n"
 
-#: berkeley/lpc.c:216
 msgid ""
 "Commands may be abbreviated.  Commands are:\n"
 "\n"
@@ -685,158 +414,120 @@ msgstr ""
 "\n"
 "exit    help    quit    status  ?\n"
 
-#: berkeley/lpc.c:222 berkeley/lpc.c:221
 msgid "help\t\tget help on commands\n"
 msgstr "help\t\tproporciona ayuda sobre los comandos\n"
 
-#: berkeley/lpc.c:225 berkeley/lpc.c:223
 msgid "status\t\tshow status of daemon and queue\n"
 msgstr "status\t\tmuestra el estado del demonio y la cola\n"
 
-#: berkeley/lpc.c:228 berkeley/lpc.c:225
 msgid "?Invalid help command unknown\n"
 msgstr "?Ayuda sobre comando desconocido\n"
 
-#: berkeley/lpc.c:478 berkeley/lpc.c:490 berkeley/lpc.c:475 berkeley/lpc.c:487
-#: berkeley/lpc.c:476 berkeley/lpc.c:488
 #, c-format
 msgid "\tprinter is on device '%s' speed -1\n"
 msgstr "\tla impresora está conectada a '%s' velocidad -1\n"
 
-#: berkeley/lpc.c:496 berkeley/lpc.c:493 berkeley/lpc.c:494
 msgid "\tqueuing is enabled\n"
 msgstr "\tla cola está activada\n"
 
-#: berkeley/lpc.c:498 berkeley/lpc.c:495 berkeley/lpc.c:496
 msgid "\tqueuing is disabled\n"
 msgstr "\tla cola está desactivada\n"
 
-#: berkeley/lpc.c:501 berkeley/lpc.c:498 berkeley/lpc.c:499
 msgid "\tprinting is enabled\n"
 msgstr "\tla impresión está activada\n"
 
-#: berkeley/lpc.c:503 berkeley/lpc.c:500 berkeley/lpc.c:501
 msgid "\tprinting is disabled\n"
 msgstr "\tla impresión está desactivada\n"
 
-#: berkeley/lpc.c:506 berkeley/lpc.c:503 berkeley/lpc.c:504
 msgid "\tno entries\n"
 msgstr "\tno hay entradas\n"
 
-#: berkeley/lpc.c:508 berkeley/lpc.c:505 berkeley/lpc.c:506
 #, c-format
 msgid "\t%d entries\n"
 msgstr "\t%d entradas\n"
 
-#: berkeley/lpc.c:510 berkeley/lpc.c:507 berkeley/lpc.c:508
 msgid "\tdaemon present\n"
 msgstr "\tdemonio presente\n"
 
-#: berkeley/lpq.c:94
 msgid "lpq: Unable to contact server!\n"
 msgstr "lpq: No se ha podido contactar con el servidor.\n"
 
-#: berkeley/lpq.c:125 berkeley/lpr.c:114 berkeley/lprm.c:107
-#: systemv/accept.c:108 systemv/cancel.c:95 systemv/lpstat.c:115
-#: systemv/lpadmin.c:284 systemv/lp.c:135 systemv/lpinfo.c:80
-#: systemv/lpmove.c:84 systemv/accept.c:106 systemv/cancel.c:93
-#: systemv/lpmove.c:89 berkeley/lpq.c:124 systemv/lp.c:136
-#: systemv/lpstat.c:116 berkeley/lpr.c:116 systemv/lp.c:140
-#: systemv/cupsaddsmb.c:98
 #, c-format
 msgid "%s: Sorry, no encryption support compiled in!\n"
 msgstr "%s: Lo siento, no está compilado el uso de la opción de cifrado.\n"
 
-#: berkeley/lpq.c:155
 #, c-format
 msgid "lpq: Unknown destination \"%s/%s\"!\n"
 msgstr "lpq: Destino desconocido \"%s/%s\".\n"
 
-#: berkeley/lpq.c:159
 #, c-format
 msgid "lpq: Unknown destination \"%s\"!\n"
 msgstr "lpq: Destino desconocido \"%s\".\n"
 
-#: berkeley/lpq.c:211 systemv/lp.c:564
 #, c-format
 msgid ""
 "lp: error - %s environment variable names non-existent destination \"%s\"!\n"
 msgstr ""
-"lp: error - los nombres de la variable de entorno %s no existentes en el destino \"%s\".\n"
+"lp: error - los nombres de la variable de entorno %s no existentes en el "
+"destino \"%s\".\n"
 
-#: berkeley/lpq.c:216
 msgid "lpq: error - no default destination available.\n"
 msgstr "lpq: error - no está disponible el destino predeterminado.\n"
 
-#: berkeley/lpq.c:363 berkeley/lpq.c:523
 #, c-format
 msgid "lpq: get-jobs failed: %s\n"
 msgstr "lpq: get-jobs ha fallado: %s\n"
 
-#: berkeley/lpq.c:457 berkeley/lpq.c:444 berkeley/lpq.c:488
 msgid ""
 "Rank   Owner      Pri  Job        Files                       Total Size\n"
 msgstr ""
 "Rango  Propiet.   Pri  Trabajo    Archivos                    Tamaño total\n"
 
-#: berkeley/lpq.c:461 berkeley/lpq.c:448 berkeley/lpq.c:492
 msgid "Rank    Owner   Job     File(s)                         Total Size\n"
 msgstr "Rango  Propiet. Trabajo Archivo(s)                      Tamaño total\n"
 
-#: berkeley/lpq.c:498 berkeley/lpq.c:485 berkeley/lpq.c:529
 #, c-format
 msgid "%s: %-33.33s [job %d localhost]\n"
 msgstr "%s: %-33.33s [trabajo %d localhost]\n"
 
-#: berkeley/lpq.c:500 berkeley/lpq.c:487 berkeley/lpq.c:531
 #, c-format
 msgid "        %-39.39s %.0f bytes\n"
 msgstr "        %-39.39s %.de bytes\n"
 
-#: berkeley/lpq.c:506 berkeley/lpq.c:493 berkeley/lpq.c:537
 #, c-format
 msgid "%-6s %-10.10s %-4d %-10d %-27.27s %.0f bytes\n"
 msgstr "%-6s %-10.10s %-4d %-10d %-27.27s %.de bytes\n"
 
-#: berkeley/lpq.c:511 berkeley/lpq.c:498 berkeley/lpq.c:542
 #, c-format
 msgid "%-7s %-7.7s %-7d %-31.31s %.0f bytes\n"
 msgstr "%-7s %-7.7s %-7d %-31.31s %.de bytes\n"
 
-#: berkeley/lpq.c:529 berkeley/lpq.c:515 berkeley/lpq.c:559
 msgid "no entries\n"
 msgstr "no hay entradas\n"
 
-#: berkeley/lpq.c:591 berkeley/lpq.c:620
 #, c-format
 msgid "lpq: get-printer-attributes failed: %s\n"
 msgstr "lpq: get-printer-attributes ha fallado: %s\n"
 
-#: berkeley/lpq.c:605 berkeley/lpq.c:576 berkeley/lpq.c:621
 #, c-format
 msgid "%s is ready\n"
 msgstr "%s está preparada\n"
 
-#: berkeley/lpq.c:608 berkeley/lpq.c:579 berkeley/lpq.c:624
 #, c-format
 msgid "%s is ready and printing\n"
 msgstr "%s está preparada e imprimiendo\n"
 
-#: berkeley/lpq.c:612 berkeley/lpq.c:583 berkeley/lpq.c:628
 #, c-format
 msgid "%s is not ready\n"
 msgstr "%s no está preparada\n"
 
-#: berkeley/lpq.c:633 berkeley/lpq.c:601
 msgid "Usage: lpq [-P dest] [-l] [+interval]\n"
 msgstr "Uso: lpq (-P destino) (-I) (+intervalo)\n"
 
-#: berkeley/lpr.c:132
 #, c-format
 msgid "lpr: error - expected value after -%c option!\n"
 msgstr "lpr: error - se esperaba un valor tras la opción %c\n"
 
-#: berkeley/lpr.c:146
 #, c-format
 msgid ""
 "lpr: warning - '%c' format modifier not supported - output may not be "
@@ -845,241 +536,208 @@ msgstr ""
 "lpr: advertencia - no admite el uso del modificador de formato '%c' - la "
 "salida puede que no sea correcta.\n"
 
-#: berkeley/lpr.c:159
 msgid "lpr: error - expected option=value after -o option!\n"
 msgstr "lpr: error - se esperaba opción=valor tras la opción -o.\n"
 
-#: berkeley/lpr.c:185
 msgid "lpr: warning - email notification is not currently supported!\n"
-msgstr "lpr: advertencia - actualmente no admite el uso de la notificación por email.\n"
+msgstr ""
+"lpr: advertencia - actualmente no admite el uso de la notificación por "
+"email.\n"
 
-#: berkeley/lpr.c:207
 msgid "lpr: error - expected destination after -P option!\n"
 msgstr "lpr: error - se esperaba un destino tras la opción -P.\n"
 
-#: berkeley/lpr.c:240
 msgid "lpr: error - expected copy count after -# option!\n"
 msgstr "lpr: error - se esperaba un número de copias tras la opción -#.\n"
 
-#: berkeley/lpr.c:263
 #, c-format
 msgid "lpr: error - expected name after -%c option!\n"
 msgstr "lpr: error - se esperaba un nombre tras la opción -%c.\n"
 
-#: berkeley/lpr.c:281
 msgid "lpr: error - expected username after -U option!\n"
 msgstr "lpr: error - se esperaba un nombre de usuario tras la opción -U.\n"
 
-#: berkeley/lpr.c:292
 #, c-format
 msgid "lpr: error - unknown option '%c'!\n"
 msgstr "lpr: error - opción \"%c\" desconocida.\n"
 
-#: berkeley/lpr.c:305
 #, c-format
 msgid "lpr: error - unable to access \"%s\" - %s\n"
 msgstr "lpr: error - no se ha podido acceder a \"%s\" - \"s\n"
 
-#: berkeley/lpr.c:323
 #, c-format
 msgid "lpr: error - too many files - \"%s\"\n"
 msgstr "lpr: error - demasiados archivos - \"%s\"\n"
 
-#: berkeley/lpr.c:364
 #, c-format
 msgid ""
 "lpr: error - %s environment variable names non-existent destination \"%s\"!\n"
 msgstr ""
-"lpr: error - los nombres de variables de entorno %s no existen en el destino \"%s\".\n"
+"lpr: error - los nombres de variables de entorno %s no existen en el destino "
+"\"%s\".\n"
 
-#: berkeley/lpr.c:369
 msgid "lpr: error - no default destination available.\n"
 msgstr "lpr: error - no está disponible el destino predeterminado.\n"
 
-#: berkeley/lpr.c:372
 msgid "lpr: error - scheduler not responding!\n"
 msgstr "lpr: error- el planificador de tareas no responde.\n"
 
-#: berkeley/lpr.c:421
 #, c-format
 msgid "lpr: error - unable to create temporary file \"%s\" - %s\n"
 msgstr "lpr: error - no se ha podido crear el archivo temporal \"%s\" - %s\n"
 
-#: berkeley/lpr.c:431
 #, c-format
 msgid "lpr: error - unable to write to temporary file \"%s\" - %s\n"
-msgstr "lpr: error - no se ha podido escribir en el archivo temporal \"%s\" - %s\n"
+msgstr ""
+"lpr: error - no se ha podido escribir en el archivo temporal \"%s\" - %s\n"
 
-#: berkeley/lpr.c:445
 msgid "lpr: error - stdin is empty, so no job has been sent.\n"
-msgstr "lpr: error - stdin está vacío, por lo tanto no se ha enviado ningún trabajo.\n"
+msgstr ""
+"lpr: error - stdin está vacío, por lo tanto no se ha enviado ningún "
+"trabajo.\n"
 
-#: berkeley/lpr.c:461 berkeley/lpr.c:460
 #, c-format
 msgid "lpr: error - unable to print file: %s\n"
 msgstr "lpr: error - no se ha podido imprimir el archivo: %s\n"
 
-#: berkeley/lprm.c:87
 msgid "lprm: Unable to contact server!\n"
 msgstr "lprm: No se ha podido contactar con el servidor.\n"
 
-#: berkeley/lprm.c:127
 #, c-format
 msgid "lprm: Unknown destination \"%s\"!\n"
 msgstr "lprm: Destino \"%s\" desconocido.\n"
 
-#: berkeley/lprm.c:136
 #, c-format
 msgid "lprm: Unknown option '%c'!\n"
 msgstr "lprm: Opción '%c' desconocida.\n"
 
-#: berkeley/lprm.c:223
 msgid "lprm: Job or printer not found!\n"
 msgstr "lprm: No se ha encontrado el trabajo o la impresora.\n"
 
-#: berkeley/lprm.c:227
 msgid "lprm: Not authorized to lprm job(s)!\n"
 msgstr "lprm: No tiene permiso para lprm trabajo(s).\n"
 
-#: berkeley/lprm.c:231
 #, c-format
 msgid "lprm: You don't own job ID %d!\n"
 msgstr "lprm: No es el propietario del trabajo ID %d.\n"
 
-#: berkeley/lprm.c:236
 msgid "lprm: Unable to lprm job(s)!\n"
 msgstr "lprm: No se han podido lprm trabajo(s).\n"
 
-#: berkeley/lprm.c:253 berkeley/lprm.c:269
 msgid "lprm: Unable to cancel job(s)!\n"
 msgstr "lprm: No se han podido cancelar los trabajos.\n"
 
-#: systemv/accept.c:84 systemv/accept.c:82
 #, c-format
 msgid "%s: Don't know what to do!\n"
 msgstr "%s: No sé que hay que hacer.\n"
 
-#: systemv/accept.c:129 systemv/accept.c:127
 #, c-format
 msgid "%s: Expected server name after -h!\n"
 msgstr "%s: Se esperaba un nombre de servidor tras -h.\n"
 
-#: systemv/accept.c:147 systemv/accept.c:145
 #, c-format
 msgid "%s: Expected reason text after -r!\n"
 msgstr "%s: Se esperaba un texto con una razón tras -r.\n"
 
-#: systemv/accept.c:157 systemv/accept.c:155
 #, c-format
 msgid "%s: Unknown option '%c'!\n"
 msgstr "%s: Opción '%c' desconocida.\n"
 
-#: systemv/accept.c:173 systemv/accept.c:171 systemv/accept.c:192
 #, c-format
 msgid "%s: Unable to connect to server: %s\n"
 msgstr "%s: No se ha podido conectar con el servidor: %s\n"
 
-#: systemv/accept.c:217 systemv/accept.c:227 systemv/accept.c:268
-#: systemv/accept.c:278 systemv/accept.c:206 systemv/accept.c:230
 #, c-format
 msgid "%s: Operation failed: %s\n"
 msgstr "%s: La operación ha fallado: %s\n"
 
-#: systemv/cancel.c:118 systemv/cancel.c:116
 msgid "cancel: Error - expected hostname after '-h' option!\n"
-msgstr "cancel: Error - se esperaba un nombre de ordenador tras la opción '-h'.\n"
+msgstr ""
+"cancel: Error - se esperaba un nombre de ordenador tras la opción '-h'.\n"
 
-#: systemv/cancel.c:139 systemv/cancel.c:137
 msgid "cancel: Error - expected username after '-u' option!\n"
-msgstr "cancel: Error - se esperaba un nombre de usuario tras la opción '-u'.\n"
+msgstr ""
+"cancel: Error - se esperaba un nombre de usuario tras la opción '-u'.\n"
 
-#: systemv/cancel.c:150 systemv/cancel.c:148
 #, c-format
 msgid "cancel: Unknown option '%c'!\n"
 msgstr "cancel: Opción '%c' desconocida.\n"
 
-#: systemv/cancel.c:207 systemv/cancel.c:205
 #, c-format
 msgid "cancel: Unknown destination \"%s\"!\n"
 msgstr "cancel: Destino \"%s\" desconocido.\n"
 
-#: systemv/cancel.c:229 systemv/cancel.c:319 systemv/cancel.c:227
-#: systemv/cancel.c:308
 msgid "cancel: Unable to contact server!\n"
 msgstr "cancel: No se ha podido contactar con el servidor.\n"
 
-#: systemv/cancel.c:295 systemv/cancel.c:370 systemv/cancel.c:284
-#: systemv/cancel.c:348
 #, c-format
 msgid "cancel: %s failed: %s\n"
 msgstr "cancel: %s ha fallado: %s\n"
 
-#: systemv/cupsaddsmb.c:290 systemv/cupsaddsmb.c:311
 #, c-format
 msgid "cupsaddsmb: Missing value on line %d!\n"
 msgstr "cupsaddsmb: Falta un valor en la línea %d.\n"
 
-#: systemv/cupsaddsmb.c:301 systemv/cupsaddsmb.c:322
 #, c-format
 msgid "cupsaddsmb: Missing double quote on line %d!\n"
 msgstr "cupsaddsmb: Faltan dobles comillas en línea %d\n"
 
-#: systemv/cupsaddsmb.c:313 systemv/cupsaddsmb.c:334
 #, c-format
 msgid "cupsaddsmb: Bad option + choice on line %d!\n"
 msgstr "cupsaddsmb: Mala opción + preferencia en línea %d.\n"
 
-#: systemv/cupsaddsmb.c:496 systemv/cupsaddsmb.c:553
 #, c-format
 msgid "cupsaddsmb: Unable to connect to server \"%s\" for %s - %s\n"
 msgstr "cupsaddsmb: No se ha podido conectar al servidor \"%s\" para %s - %s\n"
 
-#: systemv/cupsaddsmb.c:509 systemv/cupsaddsmb.c:566
 #, c-format
 msgid "cupsaddsmb: No PPD file for printer \"%s\" - skipping!\n"
 msgstr "cupsaddsmb: No hay archivo PPD para la impresora \"%s\" - omitiendo.\n"
 
-#: systemv/cupsaddsmb.c:548 systemv/cupsaddsmb.c:562
 #, c-format
 msgid "cupsaddsmb: get-printer-attributes failed for \"%s\": %s\n"
 msgstr "cupsaddsmb: get-printer-attributes ha fallado para \"%s\": %s\n"
 
-#: systemv/cupsaddsmb.c:578 systemv/cupsaddsmb.c:620
 #, c-format
 msgid "cupsaddsmb: Unable to convert PPD file for %s - %s\n"
 msgstr "cupsaddsmb: No se ha podido convertir el archivo PPD para %s - %s\n"
 
-#: systemv/cupsaddsmb.c:633 systemv/cupsaddsmb.c:677
 #, c-format
 msgid "cupsaddsmb: Unable to copy Windows 2000 printer driver files (%d)!\n"
-msgstr "cupsaddsmb: No se han podido copiar los archivos de los controladores de impresoras de Windows 2000 (%d).\n"
+msgstr ""
+"cupsaddsmb: No se han podido copiar los archivos de los controladores de "
+"impresoras de Windows 2000 (%d).\n"
 
-#: systemv/cupsaddsmb.c:660 systemv/cupsaddsmb.c:704
 #, c-format
 msgid "cupsaddsmb: Unable to copy CUPS printer driver files (%d)!\n"
-msgstr "cupsaddsmb: No se han podido copiar los archivos de los controladores de impresoras de CUPS (%d).\n"
+msgstr ""
+"cupsaddsmb: No se han podido copiar los archivos de los controladores de "
+"impresoras de CUPS (%d).\n"
 
-#: systemv/cupsaddsmb.c:697 systemv/cupsaddsmb.c:739
 #, c-format
 msgid "cupsaddsmb: Unable to install Windows 2000 printer driver files (%d)!\n"
-msgstr "cupsaddsmb: No se han podido instalar los archivos de los controladores de impresoras de Windows 2000 (%d).\n"
+msgstr ""
+"cupsaddsmb: No se han podido instalar los archivos de los controladores de "
+"impresoras de Windows 2000 (%d).\n"
 
-#: systemv/cupsaddsmb.c:727 systemv/cupsaddsmb.c:771
 #, c-format
 msgid "cupsaddsmb: Unable to copy Windows 9x printer driver files (%d)!\n"
-msgstr "cupsaddsmb: No se han podido copiar los archivos de los controladores de impresoras de Windows 9x (%d).\n"
+msgstr ""
+"cupsaddsmb: No se han podido copiar los archivos de los controladores de "
+"impresoras de Windows 9x (%d).\n"
 
-#: systemv/cupsaddsmb.c:750 systemv/cupsaddsmb.c:792
 #, c-format
 msgid "cupsaddsmb: Unable to install Windows 9x printer driver files (%d)!\n"
-msgstr "cupsaddsmb: No se han podido instalar los archivos de los controladores de impresoras de Windows 9x (%d).\n"
+msgstr ""
+"cupsaddsmb: No se han podido instalar los archivos de los controladores de "
+"impresoras de Windows 9x (%d).\n"
 
-#: systemv/cupsaddsmb.c:771 systemv/cupsaddsmb.c:822
 #, c-format
 msgid "cupsaddsmb: Unable to set Windows printer driver (%d)!\n"
-msgstr "cupsaddsmb: No se ha podido poner el controlador de impresora de Windows (%d).\n"
+msgstr ""
+"cupsaddsmb: No se ha podido poner el controlador de impresora de Windows (%"
+"d).\n"
 
-#: systemv/cupsaddsmb.c:854 systemv/cupsaddsmb.c:905
 msgid ""
 "Usage: cupsaddsmb [options] printer1 ... printerN\n"
 "       cupsaddsmb [options] -a\n"
@@ -1101,15 +759,12 @@ msgstr ""
 "  -h servidor-cups   Usa el servidor CUPS especificado\n"
 "  -v               Ser detallado (mostrar comandos)\n"
 
-#: systemv/cupstestppd.c:120 systemv/cupstestppd.c:137
 msgid "cupstestppd: The -q option is incompatible with the -v option.\n"
 msgstr "cupstestppd: La opción -q no es compatible con la opción -v.\n"
 
-#: systemv/cupstestppd.c:136 systemv/cupstestppd.c:153
 msgid "cupstestppd: The -v option is incompatible with the -q option.\n"
 msgstr "cupstestppd: La opción -v no es compatible con la opción -q.\n"
 
-#: systemv/cupstestppd.c:193 systemv/cupstestppd.c:210
 #, c-format
 msgid ""
 " FAIL\n"
@@ -1118,7 +773,6 @@ msgstr ""
 " FALLO\n"
 "      **FALLO**  No se ha podido abrir el archivo PPD - %s\n"
 
-#: systemv/cupstestppd.c:204 systemv/cupstestppd.c:221
 #, c-format
 msgid ""
 " FAIL\n"
@@ -1127,52 +781,39 @@ msgstr ""
 " FALLO\n"
 "      **FALLO**  No se ha podido abrir el archivo PPD - %s en la línea %d.\n"
 
-#: systemv/cupstestppd.c:213 systemv/cupstestppd.c:230
 msgid "                REF: Page 42, section 5.2.\n"
 msgstr "                REF: Página 42, sección 5.2.\n"
 
-#: systemv/cupstestppd.c:217 systemv/cupstestppd.c:234
 msgid "                REF: Page 20, section 3.4.\n"
 msgstr "                REF: Página 20, sección 3.4.\n"
 
-#: systemv/cupstestppd.c:222 systemv/cupstestppd.c:239
 msgid "                REF: Pages 45-46, section 5.2.\n"
 msgstr "                REF: Páginas 45-46, sección 5.2.\n"
 
-#: systemv/cupstestppd.c:227 systemv/cupstestppd.c:244
 msgid "                REF: Pages 42-45, section 5.2.\n"
 msgstr "                REF: Páginas 42-45, sección 5.2.\n"
 
-#: systemv/cupstestppd.c:231 systemv/cupstestppd.c:248
 msgid "                REF: Pages 48-49, section 5.2.\n"
 msgstr "                REF: Páginas 48-49, sección 5.2.\n"
 
-#: systemv/cupstestppd.c:235 systemv/cupstestppd.c:252
 msgid "                REF: Pages 52-54, section 5.2.\n"
 msgstr "                REF: Páginas 52-54, sección 5.2.\n"
 
-#: systemv/cupstestppd.c:239 systemv/cupstestppd.c:256
 msgid "                REF: Page 15, section 3.2.\n"
 msgstr "                REF: Página 15, sección 3.2.\n"
 
-#: systemv/cupstestppd.c:243 systemv/cupstestppd.c:247
-#: systemv/cupstestppd.c:260 systemv/cupstestppd.c:264
 msgid "                REF: Page 15, section 3.1.\n"
 msgstr "                REF: Página 15, sección 3.1.\n"
 
-#: systemv/cupstestppd.c:251 systemv/cupstestppd.c:268
 msgid "                REF: Pages 16-17, section 3.2.\n"
 msgstr "                REF: Páginas 16-17, sección 3.2.\n"
 
-#: systemv/cupstestppd.c:255 systemv/cupstestppd.c:272
 msgid "                REF: Page 19, section 3.3.\n"
 msgstr "                REF: Página 19, sección 3.3.\n"
 
-#: systemv/cupstestppd.c:259 systemv/cupstestppd.c:276
 msgid "                REF: Page 27, section 3.5.\n"
 msgstr "                REF: Página 27, sección 3.5.\n"
 
-#: systemv/cupstestppd.c:280 systemv/cupstestppd.c:299
 msgid ""
 "\n"
 "    DETAILED CONFORMANCE TEST RESULTS\n"
@@ -1180,66 +821,13 @@ msgstr ""
 "\n"
 "    RESULTADOS DETALLADOS DE LA PRUEBA DE CONFORMIDAD\n"
 
-#: systemv/cupstestppd.c:307 systemv/cupstestppd.c:326
-#: systemv/cupstestppd.c:325
 #, c-format
 msgid "        WARN    %s has no corresponding options!\n"
 msgstr "        ADVERTENCIA    %s tiene opciones que no corresponden.\n"
 
-#: systemv/cupstestppd.c:318 systemv/cupstestppd.c:333
-#: systemv/cupstestppd.c:354 systemv/cupstestppd.c:369
-#: systemv/cupstestppd.c:397 systemv/cupstestppd.c:417
-#: systemv/cupstestppd.c:439 systemv/cupstestppd.c:459
-#: systemv/cupstestppd.c:479 systemv/cupstestppd.c:499
-#: systemv/cupstestppd.c:517 systemv/cupstestppd.c:535
-#: systemv/cupstestppd.c:556 systemv/cupstestppd.c:575
-#: systemv/cupstestppd.c:595 systemv/cupstestppd.c:615
-#: systemv/cupstestppd.c:635 systemv/cupstestppd.c:655
-#: systemv/cupstestppd.c:673 systemv/cupstestppd.c:690
-#: systemv/cupstestppd.c:712 systemv/cupstestppd.c:730
-#: systemv/cupstestppd.c:747 systemv/cupstestppd.c:765
-#: systemv/cupstestppd.c:781 systemv/cupstestppd.c:801
-#: systemv/cupstestppd.c:832 systemv/cupstestppd.c:854
-#: systemv/cupstestppd.c:902 systemv/cupstestppd.c:931
-#: systemv/cupstestppd.c:952 systemv/cupstestppd.c:337
-#: systemv/cupstestppd.c:352 systemv/cupstestppd.c:373
-#: systemv/cupstestppd.c:388 systemv/cupstestppd.c:416
-#: systemv/cupstestppd.c:436 systemv/cupstestppd.c:458
-#: systemv/cupstestppd.c:478 systemv/cupstestppd.c:498
-#: systemv/cupstestppd.c:518 systemv/cupstestppd.c:536
-#: systemv/cupstestppd.c:554 systemv/cupstestppd.c:594
-#: systemv/cupstestppd.c:614 systemv/cupstestppd.c:634
-#: systemv/cupstestppd.c:654 systemv/cupstestppd.c:674
-#: systemv/cupstestppd.c:692 systemv/cupstestppd.c:709
-#: systemv/cupstestppd.c:731 systemv/cupstestppd.c:749
-#: systemv/cupstestppd.c:766 systemv/cupstestppd.c:784
-#: systemv/cupstestppd.c:800 systemv/cupstestppd.c:820
-#: systemv/cupstestppd.c:851 systemv/cupstestppd.c:873
-#: systemv/cupstestppd.c:921 systemv/cupstestppd.c:950
-#: systemv/cupstestppd.c:971 systemv/cupstestppd.c:343
-#: systemv/cupstestppd.c:361 systemv/cupstestppd.c:376
-#: systemv/cupstestppd.c:412 systemv/cupstestppd.c:440
-#: systemv/cupstestppd.c:460 systemv/cupstestppd.c:482
-#: systemv/cupstestppd.c:502 systemv/cupstestppd.c:522
-#: systemv/cupstestppd.c:542 systemv/cupstestppd.c:560
-#: systemv/cupstestppd.c:578 systemv/cupstestppd.c:599
-#: systemv/cupstestppd.c:618 systemv/cupstestppd.c:638
-#: systemv/cupstestppd.c:658 systemv/cupstestppd.c:678
-#: systemv/cupstestppd.c:698 systemv/cupstestppd.c:716
-#: systemv/cupstestppd.c:733 systemv/cupstestppd.c:755
-#: systemv/cupstestppd.c:773 systemv/cupstestppd.c:790
-#: systemv/cupstestppd.c:808 systemv/cupstestppd.c:824
-#: systemv/cupstestppd.c:844 systemv/cupstestppd.c:875
-#: systemv/cupstestppd.c:897 systemv/cupstestppd.c:945
-#: systemv/cupstestppd.c:974 systemv/cupstestppd.c:995
-#: systemv/cupstestppd.c:1050 systemv/cupstestppd.c:1075
-#: systemv/cupstestppd.c:1095 systemv/cupstestppd.c:1116
-#: systemv/cupstestppd.c:1138 systemv/cupstestppd.c:1172
 msgid " FAIL\n"
 msgstr " FALLO\n"
 
-#: systemv/cupstestppd.c:321 systemv/cupstestppd.c:340
-#: systemv/cupstestppd.c:364
 msgid ""
 "      **FAIL**  REQUIRED DefaultImageableArea\n"
 "                REF: Page 102, section 5.15.\n"
@@ -1247,8 +835,6 @@ msgstr ""
 "      **FALLO**  SE NECESITA DefaultImageableArea\n"
 "                REF: Página 102, sección 5.15.\n"
 
-#: systemv/cupstestppd.c:336 systemv/cupstestppd.c:355
-#: systemv/cupstestppd.c:379
 #, c-format
 msgid ""
 "      **FAIL**  BAD DefaultImageableArea %s!\n"
@@ -1257,13 +843,9 @@ msgstr ""
 "      **FALLO**  MAL DefaultImageableArea %s\n"
 "                REF: Página 102, sección 5.15.\n"
 
-#: systemv/cupstestppd.c:346 systemv/cupstestppd.c:365
-#: systemv/cupstestppd.c:389
 msgid "        PASS    DefaultImageableArea\n"
 msgstr "        PASA    DefaultImageableArea\n"
 
-#: systemv/cupstestppd.c:357 systemv/cupstestppd.c:376
-#: systemv/cupstestppd.c:400
 msgid ""
 "      **FAIL**  REQUIRED DefaultPaperDimension\n"
 "                REF: Page 103, section 5.15.\n"
@@ -1271,8 +853,6 @@ msgstr ""
 "      **FALLO**  SE NECESITA DefaultPaperDimension\n"
 "                REF: Página 103, sección 5.15.\n"
 
-#: systemv/cupstestppd.c:372 systemv/cupstestppd.c:391
-#: systemv/cupstestppd.c:415
 #, c-format
 msgid ""
 "      **FAIL**  BAD DefaultPaperDimension %s!\n"
@@ -1281,13 +861,9 @@ msgstr ""
 "      **FALLO**  MAL DefaultPaperDimension %s.\n"
 "                REF: Página 103, sección 5.15.\n"
 
-#: systemv/cupstestppd.c:380 systemv/cupstestppd.c:399
-#: systemv/cupstestppd.c:423
 msgid "        PASS    DefaultPaperDimension\n"
 msgstr "        PASA    DefaultPaperDimension\n"
 
-#: systemv/cupstestppd.c:400 systemv/cupstestppd.c:419
-#: systemv/cupstestppd.c:443
 #, c-format
 msgid ""
 "      **FAIL**  BAD Default%s %s\n"
@@ -1296,14 +872,10 @@ msgstr ""
 "      **FALLO**  MAL %s %s predeterminado\n"
 "                REF: Página 40, sección 4.5.\n"
 
-#: systemv/cupstestppd.c:409 systemv/cupstestppd.c:428
-#: systemv/cupstestppd.c:452
 #, c-format
 msgid "        PASS    Default%s\n"
 msgstr "        PASA    %s predeterminado\n"
 
-#: systemv/cupstestppd.c:420 systemv/cupstestppd.c:439
-#: systemv/cupstestppd.c:463
 #, c-format
 msgid ""
 "      **FAIL**  REQUIRED Default%s\n"
@@ -1312,13 +884,9 @@ msgstr ""
 "      **FALLO**  SE NECESITA %s predeterminado\n"
 "                REF: Página 40, sección 4.5.\n"
 
-#: systemv/cupstestppd.c:432 systemv/cupstestppd.c:451
-#: systemv/cupstestppd.c:475
 msgid "        PASS    FileVersion\n"
 msgstr "        PASA    FileVersion\n"
 
-#: systemv/cupstestppd.c:442 systemv/cupstestppd.c:461
-#: systemv/cupstestppd.c:485
 msgid ""
 "      **FAIL**  REQUIRED FileVersion\n"
 "                REF: Page 56, section 5.3.\n"
@@ -1326,13 +894,9 @@ msgstr ""
 "      **FALLO**  SE NECESITA FileVersion\n"
 "                REF: Página 56, sección 5.3.\n"
 
-#: systemv/cupstestppd.c:452 systemv/cupstestppd.c:471
-#: systemv/cupstestppd.c:495
 msgid "        PASS    FormatVersion\n"
 msgstr "        PASA    FormatVersion\n"
 
-#: systemv/cupstestppd.c:462 systemv/cupstestppd.c:481
-#: systemv/cupstestppd.c:505
 msgid ""
 "      **FAIL**  REQUIRED FormatVersion\n"
 "                REF: Page 56, section 5.3.\n"
@@ -1340,13 +904,9 @@ msgstr ""
 "      **FALLO**  SE NECESITA FormatVersion\n"
 "                REF: Página 56, sección 5.3.\n"
 
-#: systemv/cupstestppd.c:472 systemv/cupstestppd.c:491
-#: systemv/cupstestppd.c:515
 msgid "        PASS    LanguageEncoding\n"
 msgstr "        PASA    LanguageEncoding\n"
 
-#: systemv/cupstestppd.c:482 systemv/cupstestppd.c:501
-#: systemv/cupstestppd.c:525
 msgid ""
 "      **FAIL**  REQUIRED LanguageEncoding\n"
 "                REF: Pages 56-57, section 5.3.\n"
@@ -1354,13 +914,9 @@ msgstr ""
 "      **FALLO**  SE NECESITA LanguageEncoding\n"
 "                REF: Páginas 56-57, sección 5.3.\n"
 
-#: systemv/cupstestppd.c:492 systemv/cupstestppd.c:511
-#: systemv/cupstestppd.c:535
 msgid "        PASS    LanguageVersion\n"
 msgstr "        PASA    LanguageVersion\n"
 
-#: systemv/cupstestppd.c:502 systemv/cupstestppd.c:521
-#: systemv/cupstestppd.c:545
 msgid ""
 "      **FAIL**  REQUIRED LanguageVersion\n"
 "                REF: Pages 57-58, section 5.3.\n"
@@ -1368,8 +924,6 @@ msgstr ""
 "      **FALLO**  SE NECESITA LanguageVersion\n"
 "                REF: Páginas 57-58, sección 5.3.\n"
 
-#: systemv/cupstestppd.c:520 systemv/cupstestppd.c:539
-#: systemv/cupstestppd.c:563
 msgid ""
 "      **FAIL**  BAD Manufacturer (should be \"HP\")\n"
 "                REF: Page 211, table D.1.\n"
@@ -1377,13 +931,9 @@ msgstr ""
 "      **FALLO**  Fabricante INCORRECTO (debería ser \"HP\")\n"
 "                REF: Página 211, tabla D.1.\n"
 
-#: systemv/cupstestppd.c:528 systemv/cupstestppd.c:547
-#: systemv/cupstestppd.c:571
 msgid "        PASS    Manufacturer\n"
 msgstr "        PASA    Manufacturer\n"
 
-#: systemv/cupstestppd.c:538 systemv/cupstestppd.c:557
-#: systemv/cupstestppd.c:581
 msgid ""
 "      **FAIL**  REQUIRED Manufacturer\n"
 "                REF: Pages 58-59, section 5.3.\n"
@@ -1391,8 +941,6 @@ msgstr ""
 "      **FALLO**  SE NECESITA Manufacturer\n"
 "                REF: Páginas 58-59, sección 5.3.\n"
 
-#: systemv/cupstestppd.c:559 systemv/cupstestppd.c:578
-#: systemv/cupstestppd.c:602
 #, c-format
 msgid ""
 "      **FAIL**  BAD ModelName - \"%c\" not allowed in string.\n"
@@ -1401,13 +949,9 @@ msgstr ""
 "      **FALLO**  MAL  ModelName - \"%c\" no está permitido en la cadena.\n"
 "                REF: Páginas 59-60, sección 5.3.\n"
 
-#: systemv/cupstestppd.c:568 systemv/cupstestppd.c:587
-#: systemv/cupstestppd.c:611
 msgid "        PASS    ModelName\n"
 msgstr "        PASA    ModelName\n"
 
-#: systemv/cupstestppd.c:578 systemv/cupstestppd.c:597
-#: systemv/cupstestppd.c:621
 msgid ""
 "      **FAIL**  REQUIRED ModelName\n"
 "                REF: Pages 59-60, section 5.3.\n"
@@ -1415,13 +959,9 @@ msgstr ""
 "      **FALLO**  SE NECESITA ModelName\n"
 "                REF: Páginas 59-60, sección 5.3.\n"
 
-#: systemv/cupstestppd.c:588 systemv/cupstestppd.c:607
-#: systemv/cupstestppd.c:631
 msgid "        PASS    NickName\n"
 msgstr "        PASA    NickName\n"
 
-#: systemv/cupstestppd.c:598 systemv/cupstestppd.c:617
-#: systemv/cupstestppd.c:641
 msgid ""
 "      **FAIL**  REQUIRED NickName\n"
 "                REF: Page 60, section 5.3.\n"
@@ -1429,13 +969,9 @@ msgstr ""
 "      **FALLO**  SE NECESITA NickName\n"
 "                REF: Página 60, sección 5.3.\n"
 
-#: systemv/cupstestppd.c:608 systemv/cupstestppd.c:627
-#: systemv/cupstestppd.c:651
 msgid "        PASS    PageSize\n"
 msgstr "        PASA    PageSize\n"
 
-#: systemv/cupstestppd.c:618 systemv/cupstestppd.c:637
-#: systemv/cupstestppd.c:661
 msgid ""
 "      **FAIL**  REQUIRED PageSize\n"
 "                REF: Pages 99-100, section 5.14.\n"
@@ -1443,13 +979,9 @@ msgstr ""
 "      **FALLO**  SE NECESITA PageSize\n"
 "                REF: Páginas 99-100, sección 5.14.\n"
 
-#: systemv/cupstestppd.c:628 systemv/cupstestppd.c:647
-#: systemv/cupstestppd.c:671
 msgid "        PASS    PageRegion\n"
 msgstr "        PASA    PageRegion\n"
 
-#: systemv/cupstestppd.c:638 systemv/cupstestppd.c:657
-#: systemv/cupstestppd.c:681
 msgid ""
 "      **FAIL**  REQUIRED PageRegion\n"
 "                REF: Page 100, section 5.14.\n"
@@ -1457,13 +989,9 @@ msgstr ""
 "      **FALLO**  SE NECESITA PageRegion\n"
 "                REF: Página 100, sección 5.14.\n"
 
-#: systemv/cupstestppd.c:648 systemv/cupstestppd.c:667
-#: systemv/cupstestppd.c:691
 msgid "        PASS    PCFileName\n"
 msgstr "        PASA    PCFileName\n"
 
-#: systemv/cupstestppd.c:658 systemv/cupstestppd.c:677
-#: systemv/cupstestppd.c:701
 msgid ""
 "      **FAIL**  REQUIRED PCFileName\n"
 "                REF: Pages 61-62, section 5.3.\n"
@@ -1471,8 +999,6 @@ msgstr ""
 "      **FALLO**  SE NECESITA PCFileName\n"
 "                REF: Páginas 61-62, sección 5.3.\n"
 
-#: systemv/cupstestppd.c:676 systemv/cupstestppd.c:695
-#: systemv/cupstestppd.c:719
 msgid ""
 "      **FAIL**  BAD Product - not \"(string)\".\n"
 "                REF: Page 62, section 5.3.\n"
@@ -1480,13 +1006,9 @@ msgstr ""
 "      **FALLO**  MAL Product - no es \"(string)\".\n"
 "                REF: Página 62, sección 5.3.\n"
 
-#: systemv/cupstestppd.c:683 systemv/cupstestppd.c:702
-#: systemv/cupstestppd.c:726
 msgid "        PASS    Product\n"
 msgstr "        PASA    Product\n"
 
-#: systemv/cupstestppd.c:693 systemv/cupstestppd.c:712
-#: systemv/cupstestppd.c:736
 msgid ""
 "      **FAIL**  REQUIRED Product\n"
 "                REF: Page 62, section 5.3.\n"
@@ -1494,8 +1016,6 @@ msgstr ""
 "      **FALLO**  SE NECESITA Product\n"
 "                REF: Página 62, sección 5.3.\n"
 
-#: systemv/cupstestppd.c:715 systemv/cupstestppd.c:734
-#: systemv/cupstestppd.c:758
 msgid ""
 "      **FAIL**  BAD PSVersion - not \"(string) int\".\n"
 "                REF: Pages 62-64, section 5.3.\n"
@@ -1503,13 +1023,9 @@ msgstr ""
 "      **FALLO**  MAL PSVersion - no es \"(string) int\".\n"
 "                REF: Páginas 62-64, sección 5.3.\n"
 
-#: systemv/cupstestppd.c:723 systemv/cupstestppd.c:742
-#: systemv/cupstestppd.c:766
 msgid "        PASS    PSVersion\n"
 msgstr "        PASA    PSVersion\n"
 
-#: systemv/cupstestppd.c:733 systemv/cupstestppd.c:752
-#: systemv/cupstestppd.c:776
 msgid ""
 "      **FAIL**  REQUIRED PSVersion\n"
 "                REF: Pages 62-64, section 5.3.\n"
@@ -1517,8 +1033,6 @@ msgstr ""
 "      **FALLO**  SE NECESITA PSVersion\n"
 "                REF: Páginas 62-64, sección 5.3.\n"
 
-#: systemv/cupstestppd.c:750 systemv/cupstestppd.c:769
-#: systemv/cupstestppd.c:793
 msgid ""
 "      **FAIL**  BAD ShortNickName - longer than 31 chars.\n"
 "                REF: Pages 64-65, section 5.3.\n"
@@ -1526,13 +1040,9 @@ msgstr ""
 "      **FALLO**  MAL ShortNickName - mayor de 31 caracteres.\n"
 "                REF: Páginas 64-65, sección 5.3.\n"
 
-#: systemv/cupstestppd.c:758 systemv/cupstestppd.c:777
-#: systemv/cupstestppd.c:801
 msgid "        PASS    ShortNickName\n"
 msgstr "        PASA    ShortNickName\n"
 
-#: systemv/cupstestppd.c:768 systemv/cupstestppd.c:787
-#: systemv/cupstestppd.c:811
 msgid ""
 "      **FAIL**  REQUIRED ShortNickName\n"
 "                REF: Page 64-65, section 5.3.\n"
@@ -1540,8 +1050,6 @@ msgstr ""
 "      **FALLO**  SE NECESITA ShortNickName\n"
 "                REF: Página 64-65, sección 5.3.\n"
 
-#: systemv/cupstestppd.c:784 systemv/cupstestppd.c:803
-#: systemv/cupstestppd.c:827
 msgid ""
 "      **FAIL**  BAD JobPatchFile attribute in file\n"
 "                REF: Page 24, section 3.4.\n"
@@ -1549,8 +1057,6 @@ msgstr ""
 "      **FALLO**  MAL atributo JobPatchFile en archivo\n"
 "                REF: Página 24, sección 3.4.\n"
 
-#: systemv/cupstestppd.c:804 systemv/cupstestppd.c:823
-#: systemv/cupstestppd.c:847
 msgid ""
 "      **FAIL**  REQUIRED PageSize\n"
 "                REF: Page 41, section 5.\n"
@@ -1560,8 +1066,6 @@ msgstr ""
 "                REF: Página 41, sección 5.\n"
 "                REF: Página 99, sección 5.14.\n"
 
-#: systemv/cupstestppd.c:835 systemv/cupstestppd.c:854
-#: systemv/cupstestppd.c:878
 #, c-format
 msgid ""
 "      **FAIL**  REQUIRED ImageableArea for PageSize %s\n"
@@ -1572,8 +1076,6 @@ msgstr ""
 "                REF: Página 41, sección 5.\n"
 "                REF: Página 102, sección 5.15.\n"
 
-#: systemv/cupstestppd.c:857 systemv/cupstestppd.c:876
-#: systemv/cupstestppd.c:900
 #, c-format
 msgid ""
 "      **FAIL**  REQUIRED PaperDimension for PageSize %s\n"
@@ -1584,8 +1086,6 @@ msgstr ""
 "                REF: Página 41, sección 5.\n"
 "                REF: Página 103, sección 5.15.\n"
 
-#: systemv/cupstestppd.c:905 systemv/cupstestppd.c:924
-#: systemv/cupstestppd.c:948
 #, c-format
 msgid ""
 "      **FAIL**  Bad %s choice %s!\n"
@@ -1594,8 +1094,6 @@ msgstr ""
 "      **FALLO**  Preferencia %s incorrecta %s.\n"
 "                REF: Página 84, sección 5.9\n"
 
-#: systemv/cupstestppd.c:934 systemv/cupstestppd.c:953
-#: systemv/cupstestppd.c:977
 #, c-format
 msgid ""
 "      **FAIL**  REQUIRED %s does not define choice None!\n"
@@ -1604,8 +1102,6 @@ msgstr ""
 "      **FALLO**  SE NECESITA %s no define la preferencia None\n"
 "                REF: Página 122, sección 5.17\n"
 
-#: systemv/cupstestppd.c:955 systemv/cupstestppd.c:974
-#: systemv/cupstestppd.c:998
 #, c-format
 msgid ""
 "      **FAIL**  Bad %s choice %s!\n"
@@ -1614,13 +1110,9 @@ msgstr ""
 "      **FALLO**  Preferencia %s incorrecta %s.\n"
 "                REF: Página 122, sección 5.17\n"
 
-#: systemv/cupstestppd.c:967 systemv/cupstestppd.c:986
-#: systemv/cupstestppd.c:1186
 msgid " PASS\n"
 msgstr " PASA\n"
 
-#: systemv/cupstestppd.c:976 systemv/cupstestppd.c:997
-#: systemv/cupstestppd.c:1197
 #, c-format
 msgid ""
 "        WARN    Duplex option keyword %s should be named Duplex or "
@@ -1631,14 +1123,10 @@ msgstr ""
 "JCLDuplex.\n"
 "                REF: Página 122, sección 5.17\n"
 
-#: systemv/cupstestppd.c:986 systemv/cupstestppd.c:1007
-#: systemv/cupstestppd.c:1207
 msgid "        WARN    Default choices conflicting!\n"
 msgstr ""
 "        ADVERTENCIA    Las preferencias predeterminadas están en conflicto.\n"
 
-#: systemv/cupstestppd.c:994 systemv/cupstestppd.c:1015
-#: systemv/cupstestppd.c:1215
 #, c-format
 msgid ""
 "        WARN    Obsolete PPD version %.1f!\n"
@@ -1647,62 +1135,54 @@ msgstr ""
 "        ADVERTENCIA    Versión de PPD %.1f anticuada.\n"
 "                REF: Página 42, sección 5.2.\n"
 
-#: systemv/cupstestppd.c:1002 systemv/cupstestppd.c:1023
-#: systemv/cupstestppd.c:1223
 msgid ""
 "        WARN    LanguageEncoding required by PPD 4.3 spec.\n"
 "                REF: Pages 56-57, section 5.3.\n"
 msgstr ""
-"        ADVERTENCIA    Se necesita LanguageEncoding por especificación de PPD 4.3.\n"
+"        ADVERTENCIA    Se necesita LanguageEncoding por especificación de "
+"PPD 4.3.\n"
 "                REF: Páginas 56-57, sección 5.3.\n"
 
-#: systemv/cupstestppd.c:1010 systemv/cupstestppd.c:1031
-#: systemv/cupstestppd.c:1231
 msgid ""
 "        WARN    Manufacturer required by PPD 4.3 spec.\n"
 "                REF: Pages 58-59, section 5.3.\n"
 msgstr ""
-"        ADVERTENCIA    Se necesita Manufacturer por especificación de PPD 4.3.\n"
+"        ADVERTENCIA    Se necesita Manufacturer por especificación de PPD "
+"4.3.\n"
 "                REF: Páginas 58-59, seccion 5.3.\n"
 
-#: systemv/cupstestppd.c:1023 systemv/cupstestppd.c:1044
-#: systemv/cupstestppd.c:1244
 msgid ""
 "        WARN    PCFileName longer than 8.3 in violation of PPD spec.\n"
 "                REF: Pages 61-62, section 5.3.\n"
 msgstr ""
-"        ADVERTENCIA    PCFileName es mas largo que 8.3 violando la especificación PPD.\n"
+"        ADVERTENCIA    PCFileName es mas largo que 8.3 violando la "
+"especificación PPD.\n"
 "                REF: Páginas 61-62, sección 5.3.\n"
 
-#: systemv/cupstestppd.c:1031 systemv/cupstestppd.c:1052
-#: systemv/cupstestppd.c:1252
 msgid ""
 "        WARN    ShortNickName required by PPD 4.3 spec.\n"
 "                REF: Pages 64-65, section 5.3.\n"
 msgstr ""
-"        ADVERTENCIA    Se necesita ShortNickName por especificación de PPD 4.3.\n"
+"        ADVERTENCIA    Se necesita ShortNickName por especificación de PPD "
+"4.3.\n"
 "                REF: Páginas 64-65, sección 5.3.\n"
 
-#: systemv/cupstestppd.c:1048 systemv/cupstestppd.c:1069
-#: systemv/cupstestppd.c:1269
 msgid ""
 "        WARN    Protocols contains both PJL and BCP; expected TBCP.\n"
 "                REF: Pages 78-79, section 5.7.\n"
 msgstr ""
-"        ADVERTENCIA    Protocols contiene a ambos, PJL y BCP; se esperaba TBCP.\n"
+"        ADVERTENCIA    Protocols contiene a ambos, PJL y BCP; se esperaba "
+"TBCP.\n"
 "                REF: Páginas 78-79, sección 5.7.\n"
 
-#: systemv/cupstestppd.c:1057 systemv/cupstestppd.c:1078
-#: systemv/cupstestppd.c:1278
 msgid ""
 "        WARN    Protocols contains PJL but JCL attributes are not set.\n"
 "                REF: Pages 78-79, section 5.7.\n"
 msgstr ""
-"        ADVERTENCIA    Protocols contiene a PJL pero no se especifican los atributos JCL.\n"
+"        ADVERTENCIA    Protocols contiene a PJL pero no se especifican los "
+"atributos JCL.\n"
 "                REF: Páginas 78-79, sección 5.7.\n"
 
-#: systemv/cupstestppd.c:1085 systemv/cupstestppd.c:1106
-#: systemv/cupstestppd.c:1306
 #, c-format
 msgid ""
 "        WARN    %s shares a common prefix with %s\n"
@@ -1711,19 +1191,13 @@ msgstr ""
 "        ADVERTENCIA    %s comparte un prefijo común con %s\n"
 "                REF: Página 15, sección 3.2.\n"
 
-#: systemv/cupstestppd.c:1097 systemv/cupstestppd.c:1118
-#: systemv/cupstestppd.c:1318
 #, c-format
 msgid "    %d ERROR%s FOUND\n"
 msgstr "    %d ERROR%s ENCONTRADO(S)\n"
 
-#: systemv/cupstestppd.c:1100 systemv/cupstestppd.c:1121
-#: systemv/cupstestppd.c:1321
 msgid "    NO ERRORS FOUND\n"
 msgstr "....NO SE HAN ENCONTRADO ERRORES\n"
 
-#: systemv/cupstestppd.c:1360 systemv/cupstestppd.c:1465
-#: systemv/cupstestppd.c:1665
 #, c-format
 msgid ""
 "        WARN    \"%s %s\" conflicts with \"%s %s\"\n"
@@ -1732,8 +1206,6 @@ msgstr ""
 "        ADVERTENCIA    \"%s %s\" está en conflicto con \"%s %s\"\n"
 "                (restricción=\"%s %s %s %s\")\n"
 
-#: systemv/cupstestppd.c:1376 systemv/cupstestppd.c:1481
-#: systemv/cupstestppd.c:1681
 msgid ""
 "Usage: cupstestppd [-q] [-r] [-v[v]] filename1.ppd[.gz] [... filenameN.ppd[."
 "gz]]\n"
@@ -1743,51 +1215,39 @@ msgstr ""
 "nombre_archivoN.ppd[.gz]]\n"
 "       programa | cupstestppd [-q] [-r] [-v[v]] -\n"
 
-#: systemv/lpstat.c:144 systemv/lpstat.c:155
 msgid "lpstat: Need \"completed\" or \"not-completed\" after -W!\n"
 msgstr "lpstat: Se necesita 'completed' o 'not completed' tras -W.\n"
 
-#: systemv/lpstat.c:212 systemv/lpstat.c:213
 msgid "lpstat: The -b option requires a destination argument.\n"
 msgstr "lpstat: La opción -b necesita un argumento destino.\n"
 
-#: systemv/lpstat.c:274 systemv/lpinfo.c:143 systemv/lpmove.c:105
-#: systemv/lpmove.c:110 systemv/lpstat.c:275
 msgid "Error: need hostname after '-h' option!\n"
 msgstr "Error: se necesita un nombre de ordenador tras la opción '-h'.\n"
 
-#: systemv/lpstat.c:433 systemv/lpstat.c:434
 #, c-format
 msgid "lpstat: Unknown option '%c'!\n"
 msgstr "lpstat: Opción '%c' desconocida.\n"
 
-#: systemv/lpstat.c:504 systemv/lpstat.c:505
 #, c-format
 msgid "lpstat: Invalid destination name in list \"%s\"!\n"
 msgstr "lpstat: Nombre de destino inválido en lista \"%s\".\n"
 
-#: systemv/lpstat.c:519 systemv/lpstat.c:520
 #, c-format
 msgid "lpstat: Unknown destination \"%s\"!\n"
 msgstr "lpstat: Destino desconocido \"%s\".\n"
 
-#: systemv/lpstat.c:541 systemv/lpstat.c:542
 #, c-format
 msgid "lpstat: Unable to connect to server %s on port %d: %s\n"
 msgstr "lpstat: No se ha podido conectar al servidor %s en el puerto %d: %s\n"
 
-#: systemv/lpstat.c:625 systemv/lpstat.c:773 systemv/lpstat.c:1187
-#: systemv/lpstat.c:1379 systemv/lpstat.c:1809 systemv/lpstat.c:2262
 #, c-format
 msgid "lpstat: get-printers failed: %s\n"
 msgstr "lpstat: get-printers ha fallado: %s\n"
 
-#: systemv/lpstat.c:741
 #, c-format
 msgid "%s accepting requests since Jan 01 00:00\n"
 msgstr "%s aceptando peticiones desde Ene 01 00:00\n"
 
-#: systemv/lpstat.c:745
 #, c-format
 msgid ""
 "%s not accepting requests since Jan 01 00:00 -\n"
@@ -1796,12 +1256,10 @@ msgstr ""
 "%s no aceptando peticiones desde Ene 01 00:00 - \n"
 "\t%s\n"
 
-#: systemv/lpstat.c:754
 #, c-format
 msgid "%s/%s accepting requests since Jan 01 00:00\n"
 msgstr "%s/%s aceptando peticiones desde Ene 01 00:00\n"
 
-#: systemv/lpstat.c:758
 #, c-format
 msgid ""
 "%s/%s not accepting requests since Jan 01 00:00 -\n"
@@ -1810,27 +1268,22 @@ msgstr ""
 "%s/%s no aceptando peticiones desde Ene 01 00:00 -\n"
 "\t%s\n"
 
-#: systemv/lpstat.c:861 systemv/lpstat.c:1056
 #, c-format
 msgid "lpstat: get-classes failed: %s\n"
 msgstr "lpstat: get-classes ha fallado: %s\n"
 
-#: systemv/lpstat.c:1033 systemv/lpstat.c:1011 systemv/lpstat.c:1039
 #, c-format
 msgid "members of class %s:\n"
 msgstr "miembros de la clase %s:\n"
 
-#: systemv/lpstat.c:1080 systemv/lpstat.c:1057 systemv/lpstat.c:1085
 #, c-format
 msgid "system default destination: %s/%s\n"
 msgstr "destino predeterminado del sistema: %s/%s\n"
 
-#: systemv/lpstat.c:1083 systemv/lpstat.c:1060 systemv/lpstat.c:1088
 #, c-format
 msgid "system default destination: %s\n"
 msgstr "destino predeterminado del sistema: %s\n"
 
-#: systemv/lpstat.c:1105 systemv/lpstat.c:1082 systemv/lpstat.c:1110
 #, c-format
 msgid ""
 "lpstat: error - %s environment variable names non-existent destination \"%s"
@@ -1839,90 +1292,59 @@ msgstr ""
 "lpstat: error - Los nombre de variable de entorno %s no existen en el "
 "destino \"%s\".\n"
 
-#: systemv/lpstat.c:1109 systemv/lpstat.c:1086 systemv/lpstat.c:1114
 msgid "no system default destination\n"
 msgstr "no hay un destino predeterminado del sistema\n"
 
-#: systemv/lpstat.c:1313 systemv/lpstat.c:1281 systemv/lpstat.c:1309
-#: systemv/lpstat.c:1311
 #, c-format
 msgid "Output for printer %s is sent to remote printer %s on %s\n"
-msgstr "La salida de la impresora %s se ha enviado a la impresora remota %s en %s\n"
+msgstr ""
+"La salida de la impresora %s se ha enviado a la impresora remota %s en %s\n"
 
-#: systemv/lpstat.c:1319 systemv/lpstat.c:1323 systemv/lpstat.c:1287
-#: systemv/lpstat.c:1291 systemv/lpstat.c:1315 systemv/lpstat.c:1317
-#: systemv/lpstat.c:1321
 #, c-format
 msgid "Output for printer %s is sent to %s\n"
 msgstr "La salida de la impresora %s se ha enviado a %s\n"
 
-#: systemv/lpstat.c:1331 systemv/lpstat.c:1299 systemv/lpstat.c:1327
-#: systemv/lpstat.c:1329
 #, c-format
 msgid "Output for printer %s/%s is sent to remote printer %s on %s\n"
-msgstr "La salida de la impresora %s/%s se ha enviado a la impresora remota %s en %s\n"
+msgstr ""
+"La salida de la impresora %s/%s se ha enviado a la impresora remota %s en %"
+"s\n"
 
-#: systemv/lpstat.c:1337 systemv/lpstat.c:1341 systemv/lpstat.c:1305
-#: systemv/lpstat.c:1309 systemv/lpstat.c:1333 systemv/lpstat.c:1335
-#: systemv/lpstat.c:1339
 #, c-format
 msgid "Output for printer %s/%s is sent to %s\n"
 msgstr "La salida de la impresora %s/%s se ha enviado a %s\n"
 
-#: systemv/lpstat.c:1346 systemv/lpstat.c:1349 systemv/lpstat.c:1352
-#: systemv/lpstat.c:1314 systemv/lpstat.c:1317 systemv/lpstat.c:1320
-#: systemv/lpstat.c:1342 systemv/lpstat.c:1345 systemv/lpstat.c:1348
-#: systemv/lpstat.c:1344 systemv/lpstat.c:1347 systemv/lpstat.c:1350
 #, c-format
 msgid "device for %s: %s\n"
 msgstr "tipo de conexión para %s: %s\n"
 
-#: systemv/lpstat.c:1359 systemv/lpstat.c:1362 systemv/lpstat.c:1365
-#: systemv/lpstat.c:1327 systemv/lpstat.c:1330 systemv/lpstat.c:1333
-#: systemv/lpstat.c:1355 systemv/lpstat.c:1358 systemv/lpstat.c:1361
-#: systemv/lpstat.c:1357 systemv/lpstat.c:1360 systemv/lpstat.c:1363
 #, c-format
 msgid "device for %s/%s: %s\n"
 msgstr "tipo de conexión para %s/%s: %s\n"
 
-#: systemv/lpstat.c:1481 systemv/lpstat.c:1693
 #, c-format
 msgid "lpstat: get-jobs failed: %s\n"
 msgstr "lpstat: get-jobs ha fallado: %s\n"
 
-#: systemv/lpstat.c:1681 systemv/lpstat.c:1635 systemv/lpstat.c:1663
-#: systemv/lpstat.c:1665
 #, c-format
 msgid "\tqueued for %s\n"
 msgstr "\ten cola para %s\n"
 
-#: systemv/lpstat.c:2037 systemv/lpstat.c:1971 systemv/lpstat.c:1999
-#: systemv/lpstat.c:2001
 #, c-format
 msgid "printer %s is idle.  enabled since %s\n"
 msgstr "la impresora %s está inactiva.  activada desde %s\n"
 
-#: systemv/lpstat.c:2042 systemv/lpstat.c:1976 systemv/lpstat.c:2004
-#: systemv/lpstat.c:2006
 #, c-format
 msgid "printer %s now printing %s-%d.  enabled since %s\n"
 msgstr "la impresora %s está imprimiendo %s-%d.  activada desde %s\n"
 
-#: systemv/lpstat.c:2048 systemv/lpstat.c:1982 systemv/lpstat.c:2010
-#: systemv/lpstat.c:2012
 #, c-format
 msgid "printer %s disabled since %s -\n"
 msgstr "la impresora %s está deshabilitada desde %s -\n"
 
-#: systemv/lpstat.c:2056 systemv/lpstat.c:2169 systemv/lpstat.c:1990
-#: systemv/lpstat.c:2103 systemv/lpstat.c:2018 systemv/lpstat.c:2131
-#: systemv/lpstat.c:2020 systemv/lpstat.c:2133
 msgid "\treason unknown\n"
 msgstr "\trazón desconocida\n"
 
-#: systemv/lpstat.c:2063 systemv/lpstat.c:2176 systemv/lpstat.c:1997
-#: systemv/lpstat.c:2110 systemv/lpstat.c:2025 systemv/lpstat.c:2138
-#: systemv/lpstat.c:2027 systemv/lpstat.c:2140
 msgid ""
 "\tForm mounted:\n"
 "\tContent types: any\n"
@@ -1932,175 +1354,93 @@ msgstr ""
 "\tTipos de contenido: cualquiera\n"
 "\tTipos de impresora: desconocido\n"
 
-#: systemv/lpstat.c:2069 systemv/lpstat.c:2182 systemv/lpstat.c:2003
-#: systemv/lpstat.c:2116 systemv/lpstat.c:2031 systemv/lpstat.c:2144
-#: systemv/lpstat.c:2033 systemv/lpstat.c:2146
 #, c-format
 msgid "\tDescription: %s\n"
 msgstr "\tDescripción: %s\n"
 
-#: systemv/lpstat.c:2074 systemv/lpstat.c:2187 systemv/lpstat.c:2008
-#: systemv/lpstat.c:2121 systemv/lpstat.c:2036 systemv/lpstat.c:2149
-#: systemv/lpstat.c:2038 systemv/lpstat.c:2151
 msgid "\tAlerts:"
 msgstr "\tAlertas:"
 
-#: systemv/lpstat.c:2083 systemv/lpstat.c:2196 systemv/lpstat.c:2017
-#: systemv/lpstat.c:2130 systemv/lpstat.c:2045 systemv/lpstat.c:2158
-#: systemv/lpstat.c:2047 systemv/lpstat.c:2160
 #, c-format
 msgid "\tLocation: %s\n"
 msgstr "\tUbicación: %s\n"
 
-#: systemv/lpstat.c:2088 systemv/lpstat.c:2201 systemv/lpstat.c:2022
-#: systemv/lpstat.c:2135 systemv/lpstat.c:2050 systemv/lpstat.c:2163
-#: systemv/lpstat.c:2052 systemv/lpstat.c:2165
 msgid "\tConnection: remote\n"
 msgstr "\tConexión: remota\n"
 
-#: systemv/lpstat.c:2092 systemv/lpstat.c:2205 systemv/lpstat.c:2026
-#: systemv/lpstat.c:2139 systemv/lpstat.c:2054 systemv/lpstat.c:2167
-#: systemv/lpstat.c:2056 systemv/lpstat.c:2169
 #, c-format
 msgid "\tInterface: %s.ppd\n"
 msgstr "\tInterfaz: %s.ppd\n"
 
-#: systemv/lpstat.c:2097 systemv/lpstat.c:2210 systemv/lpstat.c:2031
-#: systemv/lpstat.c:2144 systemv/lpstat.c:2059 systemv/lpstat.c:2172
-#: systemv/lpstat.c:2061 systemv/lpstat.c:2174
 msgid "\tConnection: direct\n"
 msgstr "\tConexión: directa\n"
 
-#: systemv/lpstat.c:2101 systemv/lpstat.c:2214 systemv/lpstat.c:2035
-#: systemv/lpstat.c:2148 systemv/lpstat.c:2063 systemv/lpstat.c:2176
-#: systemv/lpstat.c:2065 systemv/lpstat.c:2178
 #, c-format
 msgid "\tInterface: %s/interfaces/%s\n"
 msgstr "\tInterfaz: %s/interfaces/%s\n"
 
-#: systemv/lpstat.c:2105 systemv/lpstat.c:2218 systemv/lpstat.c:2039
-#: systemv/lpstat.c:2152 systemv/lpstat.c:2067 systemv/lpstat.c:2180
-#: systemv/lpstat.c:2069 systemv/lpstat.c:2182
 #, c-format
 msgid "\tInterface: %s/ppd/%s.ppd\n"
 msgstr "\tInterfaz: %s/ppd/%s.ppd\n"
 
-#: systemv/lpstat.c:2107 systemv/lpstat.c:2220 systemv/lpstat.c:2041
-#: systemv/lpstat.c:2154 systemv/lpstat.c:2069 systemv/lpstat.c:2182
-#: systemv/lpstat.c:2071 systemv/lpstat.c:2184
 msgid "\tOn fault: no alert\n"
 msgstr "\tEn fallo: no alertar\n"
 
-#: systemv/lpstat.c:2108 systemv/lpstat.c:2221 systemv/lpstat.c:2042
-#: systemv/lpstat.c:2155 systemv/lpstat.c:2070 systemv/lpstat.c:2183
-#: systemv/lpstat.c:2072 systemv/lpstat.c:2185
 msgid "\tAfter fault: continue\n"
 msgstr "\tTras fallo: continuar\n"
 
-#: systemv/lpstat.c:2112 systemv/lpstat.c:2126 systemv/lpstat.c:2225
-#: systemv/lpstat.c:2239 systemv/lpstat.c:2046 systemv/lpstat.c:2060
-#: systemv/lpstat.c:2159 systemv/lpstat.c:2173 systemv/lpstat.c:2074
-#: systemv/lpstat.c:2088 systemv/lpstat.c:2187 systemv/lpstat.c:2201
-#: systemv/lpstat.c:2076 systemv/lpstat.c:2090 systemv/lpstat.c:2189
-#: systemv/lpstat.c:2203
 msgid "\tUsers allowed:\n"
 msgstr "\tUsuarios permitidos:\n"
 
-#: systemv/lpstat.c:2119 systemv/lpstat.c:2232 systemv/lpstat.c:2053
-#: systemv/lpstat.c:2166 systemv/lpstat.c:2081 systemv/lpstat.c:2194
-#: systemv/lpstat.c:2083 systemv/lpstat.c:2196
 msgid "\tUsers denied:\n"
 msgstr "\tUsuarios denegados:\n"
 
-#: systemv/lpstat.c:2127 systemv/lpstat.c:2240 systemv/lpstat.c:2061
-#: systemv/lpstat.c:2174 systemv/lpstat.c:2089 systemv/lpstat.c:2202
-#: systemv/lpstat.c:2091 systemv/lpstat.c:2204
 msgid "\t\t(all)\n"
 msgstr "\t\t(todos)\n"
 
-#: systemv/lpstat.c:2129 systemv/lpstat.c:2242 systemv/lpstat.c:2063
-#: systemv/lpstat.c:2176 systemv/lpstat.c:2091 systemv/lpstat.c:2204
-#: systemv/lpstat.c:2093 systemv/lpstat.c:2206
 msgid "\tForms allowed:\n"
 msgstr "\tFormularios permitidos:\n"
 
-#: systemv/lpstat.c:2130 systemv/lpstat.c:2133 systemv/lpstat.c:2243
-#: systemv/lpstat.c:2246 systemv/lpstat.c:2064 systemv/lpstat.c:2067
-#: systemv/lpstat.c:2177 systemv/lpstat.c:2180 systemv/lpstat.c:2092
-#: systemv/lpstat.c:2095 systemv/lpstat.c:2205 systemv/lpstat.c:2208
-#: systemv/lpstat.c:2094 systemv/lpstat.c:2097 systemv/lpstat.c:2207
-#: systemv/lpstat.c:2210
 msgid "\t\t(none)\n"
 msgstr "\t\t(ninguno)\n"
 
-#: systemv/lpstat.c:2131 systemv/lpstat.c:2244 systemv/lpstat.c:2065
-#: systemv/lpstat.c:2178 systemv/lpstat.c:2093 systemv/lpstat.c:2206
-#: systemv/lpstat.c:2095 systemv/lpstat.c:2208
 msgid "\tBanner required\n"
 msgstr "\tSe necesita un banner\n"
 
-#: systemv/lpstat.c:2132 systemv/lpstat.c:2245 systemv/lpstat.c:2066
-#: systemv/lpstat.c:2179 systemv/lpstat.c:2094 systemv/lpstat.c:2207
-#: systemv/lpstat.c:2096 systemv/lpstat.c:2209
 msgid "\tCharset sets:\n"
 msgstr "\tAjustes del juego de caracteres:\n"
 
-#: systemv/lpstat.c:2134 systemv/lpstat.c:2247 systemv/lpstat.c:2068
-#: systemv/lpstat.c:2181 systemv/lpstat.c:2096 systemv/lpstat.c:2209
-#: systemv/lpstat.c:2098 systemv/lpstat.c:2211
 msgid "\tDefault pitch:\n"
 msgstr "\tPaso predeterminado:\n"
 
-#: systemv/lpstat.c:2135 systemv/lpstat.c:2248 systemv/lpstat.c:2069
-#: systemv/lpstat.c:2182 systemv/lpstat.c:2097 systemv/lpstat.c:2210
-#: systemv/lpstat.c:2099 systemv/lpstat.c:2212
 msgid "\tDefault page size:\n"
 msgstr "\tTamaño de página predeterminado:\n"
 
-#: systemv/lpstat.c:2136 systemv/lpstat.c:2249 systemv/lpstat.c:2070
-#: systemv/lpstat.c:2183 systemv/lpstat.c:2098 systemv/lpstat.c:2211
-#: systemv/lpstat.c:2100 systemv/lpstat.c:2213
 msgid "\tDefault port settings:\n"
 msgstr "\tAjustes del puerto predeterminados:\n"
 
-#: systemv/lpstat.c:2146 systemv/lpstat.c:2080 systemv/lpstat.c:2108
-#: systemv/lpstat.c:2110
 #, c-format
 msgid "printer %s/%s is idle.  enabled since %s\n"
 msgstr "la impresora %s/%s está inactiva.  activada desde %s\n"
 
-#: systemv/lpstat.c:2153 systemv/lpstat.c:2087 systemv/lpstat.c:2115
-#: systemv/lpstat.c:2117
 #, c-format
 msgid "printer %s/%s now printing %s-%d.  enabled since %s\n"
 msgstr "la impresora %s/%s está imprimiendo %s-%d.  activada desde %s\n"
 
-#: systemv/lpstat.c:2160 systemv/lpstat.c:2094 systemv/lpstat.c:2122
-#: systemv/lpstat.c:2124
 #, c-format
 msgid "printer %s/%s disabled since %s -\n"
 msgstr "la impresora %s/%s está desactivada desde %s -\n"
 
-#: systemv/lpstat.c:2279 systemv/lpstat.c:2212 systemv/lpstat.c:2240
-#: systemv/lpstat.c:2242
 msgid "scheduler is running\n"
 msgstr "el planificador de tareas se está ejecutando\n"
 
-#: systemv/lpstat.c:2281 systemv/lpstat.c:2214 systemv/lpstat.c:2242
-#: systemv/lpstat.c:2244
 msgid "scheduler is not running\n"
 msgstr "el planificador de tareas no se está ejecutando\n"
 
-#: systemv/lpadmin.c:113 systemv/lpadmin.c:166 systemv/lpadmin.c:237
-#: systemv/lpadmin.c:298 systemv/lpadmin.c:317 systemv/lpadmin.c:383
-#: systemv/lpadmin.c:424 systemv/lpadmin.c:511 systemv/lpadmin.c:557
-#: systemv/lpadmin.c:603 systemv/lpadmin.c:665 systemv/lpadmin.c:711
-#: systemv/lpadmin.c:772
 #, c-format
 msgid "lpadmin: Unable to connect to server: %s\n"
 msgstr "lpadmin: No se ha podido conectar al servidor: %s\n"
 
-#: systemv/lpadmin.c:122
 msgid ""
 "lpadmin: Unable to add a printer to the class:\n"
 "         You must specify a printer name first!\n"
@@ -2108,30 +1448,24 @@ msgstr ""
 "lpadmin: No se ha podido añadir una impresora a la clase:\n"
 "         Debe especificar un nombre de impresora primero.\n"
 
-#: systemv/lpadmin.c:137
 msgid "lpadmin: Expected class name after '-c' option!\n"
 msgstr "lpadmin: Se esperaba un nombre de clase tras la opción '-c'\n"
 
-#: systemv/lpadmin.c:148 systemv/lpadmin.c:460
 msgid "lpadmin: Class name can only contain printable characters!\n"
 msgstr ""
 "lpadmin: El nombre de la clase sólo puede contener caracteres imprimibles.\n"
 
-#: systemv/lpadmin.c:181
 msgid "lpadmin: Expected printer name after '-d' option!\n"
 msgstr "lpadmin: Se esperaba un nombre de impresora tras la opción '-d'\n"
 
-#: systemv/lpadmin.c:192 systemv/lpadmin.c:409 systemv/lpadmin.c:583
 msgid "lpadmin: Printer name can only contain printable characters!\n"
 msgstr ""
 "lpadmin: El nombre de la impresora sólo puede contener caracteres "
 "imprimibles.\n"
 
-#: systemv/lpadmin.c:219
 msgid "lpadmin: Expected hostname after '-h' option!\n"
 msgstr "lpadmin: Se esperaba un nombre de ordenador tras la opción '-h'.\n"
 
-#: systemv/lpadmin.c:246
 msgid ""
 "lpadmin: Unable to set the interface script:\n"
 "         You must specify a printer name first!\n"
@@ -2139,11 +1473,9 @@ msgstr ""
 "lpadmin: No se ha podido establecer el script de interfaz:\n"
 "         Primero debe especificar un nombre de impresora.\n"
 
-#: systemv/lpadmin.c:264
 msgid "lpadmin: Expected interface after '-i' option!\n"
 msgstr "lpadmin: Se esperaba una interfaz tras la opción '-i'.\n"
 
-#: systemv/lpadmin.c:326
 msgid ""
 "lpadmin: Unable to set the interface script or PPD file:\n"
 "         You must specify a printer name first!\n"
@@ -2151,19 +1483,15 @@ msgstr ""
 "lpadmin: No se ha podido establecer el script de interfaz o el archivo PPD:\n"
 "         Primero debe especificar un nombre de impresora.\n"
 
-#: systemv/lpadmin.c:345
 msgid "lpadmin: Expected model after '-m' option!\n"
 msgstr "lpadmin: Se esperaba un modelo tras la opción '-m'.\n"
 
-#: systemv/lpadmin.c:365
 msgid "lpadmin: Expected name=value after '-o' option!\n"
 msgstr "lpadmin: Se esperaba un nombre=valor tras la opción '-o'.\n"
 
-#: systemv/lpadmin.c:398
 msgid "lpadmin: Expected printer after '-p' option!\n"
 msgstr "lpadmin: Se esperaba una impresora tras la opción '-p'.\n"
 
-#: systemv/lpadmin.c:433
 msgid ""
 "lpadmin: Unable to remove a printer from the class:\n"
 "         You must specify a printer name first!\n"
@@ -2171,20 +1499,16 @@ msgstr ""
 "lpadmin: No se ha podido quitar una impresora de la clase:\n"
 "         Primero debe especificar un nombre de impresora.\n"
 
-#: systemv/lpadmin.c:449
 msgid "lpadmin: Expected class after '-r' option!\n"
 msgstr "lpadmin: Se esperaba una clase tras la opción '-r'\n"
 
-#: systemv/lpadmin.c:479
 msgid "lpadmin: Expected allow/deny:userlist after '-u' option!\n"
 msgstr "lpadmin: Se esperaba allow/deny:lista_usuarios tras la opción '-u'.\n"
 
-#: systemv/lpadmin.c:496
 #, c-format
 msgid "lpadmin: Unknown allow/deny option \"%s\"!\n"
 msgstr "lpadmin: Opción allow/deny desconocida \"%s\".\n"
 
-#: systemv/lpadmin.c:520
 msgid ""
 "lpadmin: Unable to set the device URI:\n"
 "         You must specify a printer name first!\n"
@@ -2192,15 +1516,12 @@ msgstr ""
 "lpadmin: No se ha podido ajustar el URI de dispositivo:\n"
 "         Primero debe especificar un nombre de impresora.\n"
 
-#: systemv/lpadmin.c:538
 msgid "lpadmin: Expected device URI after '-v' option!\n"
 msgstr "lpadmin: Se esperaba un URI de dispositivo tras la opción '-v'.\n"
 
-#: systemv/lpadmin.c:572
 msgid "lpadmin: Expected printer or class after '-x' option!\n"
 msgstr "lpadmin: Se esperaba una impresora o clase tras la opción '-x'.\n"
 
-#: systemv/lpadmin.c:612
 msgid ""
 "lpadmin: Unable to set the printer description:\n"
 "         You must specify a printer name first!\n"
@@ -2208,20 +1529,16 @@ msgstr ""
 "lpadmin: No se ha podido establecer la descripción de la impresora:\n"
 "         Primero debe especificar un nombre de impresora.\n"
 
-#: systemv/lpadmin.c:631
 msgid "lpadmin: Expected description after '-D' option!\n"
 msgstr "lpadmin: Se esperaba una descripción tras la opción '-D'.\n"
 
-#: systemv/lpadmin.c:647
 msgid "lpadmin: Expected file type(s) after '-I' option!\n"
 msgstr "lpadmin: Se esperaba tipo(s) de archivo(s) tras la opción '-l'.\n"
 
-#: systemv/lpadmin.c:653
 msgid "lpadmin: Warning - content type list ignored!\n"
 msgstr ""
 "lpadmin: Advertencia - lista de tipo de contenido no tenida en cuenta.\n"
 
-#: systemv/lpadmin.c:674
 msgid ""
 "lpadmin: Unable to set the printer location:\n"
 "         You must specify a printer name first!\n"
@@ -2229,11 +1546,9 @@ msgstr ""
 "lpadmin: No se ha podido establecer la ubicación de la impresora:\n"
 "         Primero debe especificar un nombre de impresora.\n"
 
-#: systemv/lpadmin.c:692
 msgid "lpadmin: Expected location after '-L' option!\n"
 msgstr "lpadmin: Se esperaba una ubicación tras la opción '-L'.\n"
 
-#: systemv/lpadmin.c:720
 msgid ""
 "lpadmin: Unable to set the PPD file:\n"
 "         You must specify a printer name first!\n"
@@ -2241,21 +1556,17 @@ msgstr ""
 "lpadmin: No se ha podido establecer el archivo PPD:\n"
 "         Primero debe especificar un nombre de impresora.\n"
 
-#: systemv/lpadmin.c:738
 msgid "lpadmin: Expected PPD after '-P' option!\n"
 msgstr "lpadmin: Se esperaba un PPD tras la opción '-P'.\n"
 
-#: systemv/lpadmin.c:749
 #, c-format
 msgid "lpadmin: Unknown option '%c'!\n"
 msgstr "lpadmin: Opción '%c' desconocida.\n"
 
-#: systemv/lpadmin.c:754
 #, c-format
 msgid "lpadmin: Unknown argument '%s'!\n"
 msgstr "lpadmin: Argumento '%s' desconocido.\n"
 
-#: systemv/lpadmin.c:781
 msgid ""
 "lpadmin: Unable to set the printer options:\n"
 "         You must specify a printer name first!\n"
@@ -2263,7 +1574,6 @@ msgstr ""
 "lpadmin: No se han podido establecer las opciones de impresora:\n"
 "         Primero debe especificar un nombre de impresora.\n"
 
-#: systemv/lpadmin.c:793
 msgid ""
 "Usage:\n"
 "\n"
@@ -2285,215 +1595,169 @@ msgstr ""
 "                       [-u allow:usuario,usuario] [-u deny:usuario,usuario]\n"
 "\n"
 
-#: systemv/lpadmin.c:1554 systemv/lpadmin.c:1440
 #, c-format
 msgid "lpadmin: Unable to create temporary file: %s\n"
 msgstr "lpadmin: No se ha podido crear el archivo temporal: %s\n"
 
-#: systemv/lpadmin.c:1562 systemv/lpadmin.c:1448
 #, c-format
 msgid "lpadmin: Unable to open file \"%s\": %s\n"
 msgstr "lpadmin: No se ha podido abrir el archivo \"%s\": %s\n"
 
-#: systemv/lpadmin.c:1631 systemv/lpadmin.c:1862 systemv/lpadmin.c:1870
 #, c-format
 msgid "lpadmin: add-printer (set model) failed: %s\n"
 msgstr "lpadmin: add-printer (establecer modelo) ha fallado: %s\n"
 
-#: systemv/lpadmin.c:1701 systemv/lpadmin.c:1708
 #, c-format
 msgid "lpadmin: add-printer (set description) failed: %s\n"
 msgstr "lpadmin: add-printer (establecer descripción) ha fallado: %s\n"
 
-#: systemv/lpadmin.c:1784 systemv/lpadmin.c:1792
 #, c-format
 msgid "lpadmin: add-printer (set location) failed: %s\n"
 msgstr "lpadmin: add-printer (establecer ubicación) ha fallado: %s\n"
 
-#: systemv/lpadmin.c:2021 systemv/lpadmin.c:1814 systemv/lpadmin.c:1831
 #, c-format
 msgid "lpadmin: Unable to create temporary file - %s\n"
 msgstr "lpadmin: No se ha podido crear el archivo temporal - %s\n"
 
-#: systemv/lpadmin.c:2031 systemv/lpadmin.c:1824 systemv/lpadmin.c:1841
 #, c-format
 msgid "lpadmin: Unable to open PPD file \"%s\" - %s\n"
 msgstr "lpadmin: No se ha podido abrir el archivo PPD \"%s\" - %s\n"
 
-#: systemv/lpadmin.c:2117 systemv/lpadmin.c:2125
 #, c-format
 msgid "lpadmin: %s failed: %s\n"
 msgstr "lpadmin: %s ha fallado: %s\n"
 
-#: systemv/lp.c:153
 msgid "lp: Expected destination after -d option!\n"
 msgstr "lp: Se esperaba un destino tras la opción -d.\n"
 
-#: systemv/lp.c:184
 msgid "lp: Expected form after -f option!\n"
 msgstr "lp: Se esperaba un formulario tras la opción -f.\n"
 
-#: systemv/lp.c:202
 msgid "lp: Expected hostname after -h option!\n"
 msgstr "lp: Se esperaba un nombre de ordenador tras la opción -h.\n"
 
-#: systemv/lp.c:220
 msgid "lp: Expected job ID after -i option!\n"
 msgstr "lp: Se esperaba un ID de trabajo tras la opción -i.\n"
 
-#: systemv/lp.c:230
 msgid "lp: Error - cannot print files and alter jobs simultaneously!\n"
 msgstr ""
 "lp: Error - no se pueden imprimir archivos y alterar trabajos al mismo "
 "tiempo.\n"
 
-#: systemv/lp.c:242
 msgid "lp: Error - bad job ID!\n"
 msgstr "lp: Error - ID de trabajo incorrecta.\n"
 
-#: systemv/lp.c:264
 msgid "lp: Expected copies after -n option!\n"
 msgstr "lp: Se esperaba número de copias tras la opción -n.\n"
 
-#: systemv/lp.c:285
 msgid "lp: Expected option string after -o option!\n"
 msgstr "lp: Se esperaba una cadena de opciones tras la opción -o.\n"
 
-#: systemv/lp.c:304
 #, c-format
 msgid "lp: Expected priority after -%c option!\n"
 msgstr "lp: Se esperaba un valor de prioridad tras la opción -%c.\n"
 
-#: systemv/lp.c:326
 msgid "lp: Priority must be between 1 and 100.\n"
 msgstr "lp: La prioridad debe estar entre 1 y 100.\n"
 
-#: systemv/lp.c:348
 msgid "lp: Expected title after -t option!\n"
 msgstr "lp: Se esperaba un título tras la opción -t.\n"
 
-#: systemv/lp.c:364
 msgid "lp: Expected mode list after -y option!\n"
 msgstr "lp: Se esperaba una lista de modos tras la opción -y.\n"
 
-#: systemv/lp.c:370
 msgid "lp: Warning - mode option ignored!\n"
 msgstr "lp: Advertencia - opción de modo no tenida en cuenta.\n"
 
-#: systemv/lp.c:383
 msgid "lp: Expected hold name after -H option!\n"
 msgstr "lp: Se esperaba un nombre de retención tras la opción -H.\n"
 
-#: systemv/lp.c:405
 msgid "lp: Need job ID (-i) before \"-H restart\"!\n"
 msgstr "lp: Se necesita la ID de trabajo (-i) antes de \"-H restart\".\n"
 
-#: systemv/lp.c:427
 msgid "lp: Expected page list after -P option!\n"
 msgstr "lp: Se esperaba una lista de páginas tras la opción -P.\n"
 
-#: systemv/lp.c:446
 msgid "lp: Expected character set after -S option!\n"
 msgstr "lp: Se esperaba un juego de caracteres tras la opción -S.\n"
 
-#: systemv/lp.c:452
 msgid "lp: Warning - character set option ignored!\n"
 msgstr "lp: Advertencia - opción de juego de caracteres no tenida en cuenta.\n"
 
-#: systemv/lp.c:463
 msgid "lp: Expected content type after -T option!\n"
 msgstr "lp: Se esperaba un tipo de contenido tras la opción -T.\n"
 
-#: systemv/lp.c:469
 msgid "lp: Warning - content type option ignored!\n"
 msgstr "lp: Advertencia - opción de tipo de contenido no tenida en cuenta.\n"
 
-#: systemv/lp.c:473
 #, c-format
 msgid "lp: Unknown option '%c'!\n"
 msgstr "lp: Opción '%c' desconocida.\n"
 
-#: systemv/lp.c:482
 msgid ""
 "lp: Error - cannot print from stdin if files or a job ID are provided!\n"
 msgstr ""
 "lp: Error - no se puede imprimir desde stdin si se proporcionan archivos o "
 "un ID de trabajo.\n"
 
-#: systemv/lp.c:497
 #, c-format
 msgid "lp: Unable to access \"%s\" - %s\n"
 msgstr "lp: No se ha podido acceder a \"%s\" - %s\n"
 
-#: systemv/lp.c:514
 #, c-format
 msgid "lp: Too many files - \"%s\"\n"
 msgstr "lp: Demasiados archivos - \"%s\"\n"
 
-#: systemv/lp.c:569
 msgid "lp: error - no default destination available.\n"
 msgstr "lp: error - no está disponible el destino predeterminado.\n"
 
-#: systemv/lp.c:572
 msgid "lp: error - scheduler not responding!\n"
 msgstr "lp: error - el planificador de tareas no responde.\n"
 
-#: systemv/lp.c:611
 #, c-format
 msgid "lp: unable to create temporary file \"%s\" - %s\n"
 msgstr "lp: no se ha podido crear el archivo temporal \"%s\" - %s\n"
 
-#: systemv/lp.c:620
 #, c-format
 msgid "lp: error - unable to write to temporary file \"%s\" - %s\n"
 msgstr ""
 "lp: error - no se ha podido escribir en el archivo temporal \"%s\" - %s\n"
 
-#: systemv/lp.c:634
 msgid "lp: stdin is empty, so no job has been sent.\n"
 msgstr "lp: stdin está vacío, por lo tanto no se ha enviado ningún trabajo.\n"
 
-#: systemv/lp.c:650
 #, c-format
 msgid "lp: unable to print file: %s\n"
 msgstr "lp: no se ha podido imprimir el archivo: %s\n"
 
-#: systemv/lp.c:656 systemv/lp.c:653 systemv/lp.c:713 systemv/lp.c:729
 #, c-format
 msgid "request id is %s-%d (%d file(s))\n"
 msgstr "la id solicitada es %s-%d (%d archivo(s))\n"
 
-#: systemv/lp.c:703 systemv/lp.c:713
 #, c-format
 msgid "lp: restart-job failed: %s\n"
 msgstr "lp: restart-job ha fallado: %s\n"
 
-#: systemv/lp.c:769 systemv/lp.c:779
 #, c-format
 msgid "lp: set-job-attributes failed: %s\n"
 msgstr "lp: set-job-attibutes ha fallado: %s\n"
 
-#: systemv/lpinfo.c:98 systemv/lpinfo.c:117
 #, c-format
 msgid "lpinfo: Unable to connect to server: %s\n"
 msgstr "lpinfo: No se ha podido conectar al servidor: %s\n"
 
-#: systemv/lpinfo.c:152
 #, c-format
 msgid "lpinfo: Unknown option '%c'!\n"
 msgstr "lpinfo: Opción '%c' desconocida.\n"
 
-#: systemv/lpinfo.c:158
 #, c-format
 msgid "lpinfo: Unknown argument '%s'!\n"
 msgstr "lpinfo Argumento '%s' desconocido.\n"
 
-#: systemv/lpinfo.c:225 systemv/lpinfo.c:310
 #, c-format
 msgid "lpinfo: cups-get-devices failed: %s\n"
 msgstr "lpinfo: cups-get-devices ha fallado: %s\n"
 
-#: systemv/lpinfo.c:293
 #, c-format
 msgid ""
 "Device: uri = %s\n"
@@ -2506,12 +1770,10 @@ msgstr ""
 "        info = %s\n"
 "        make-and-model = %s\n"
 
-#: systemv/lpinfo.c:376 systemv/lpinfo.c:454
 #, c-format
 msgid "lpinfo: cups-get-ppds failed: %s\n"
 msgstr "lpinfo: cups-get-ppds ha fallado: %s\n"
 
-#: systemv/lpinfo.c:438
 #, c-format
 msgid ""
 "Model:  name = %s\n"
@@ -2522,54 +1784,43 @@ msgstr ""
 "        natural_language = %s\n"
 "        make-and-model = %s\n"
 
-#: systemv/lpmove.c:114 systemv/lpmove.c:119
 #, c-format
 msgid "lpmove: Unknown option '%c'!\n"
 msgstr "lpmove: Opción '%c' desconocida.\n"
 
-#: systemv/lpmove.c:133 systemv/lpmove.c:138
 #, c-format
 msgid "lpmove: Unknown argument '%s'!\n"
 msgstr "lpmove: Argumento '%s' desconocido.\n"
 
-#: systemv/lpmove.c:140
 msgid "Usage: lpmove job dest\n"
 msgstr "Uso: lpmove trabajo destino\n"
 
-#: systemv/lpmove.c:151 systemv/lpmove.c:156
 #, c-format
 msgid "lpmove: Unable to connect to server: %s\n"
 msgstr "lpmove: No se ha podido conectar al servidor: %s\n"
 
-#: systemv/lpmove.c:225 systemv/lpmove.c:234
 #, c-format
 msgid "lpmove: move-job failed: %s\n"
 msgstr "lpmove: move-job ha fallado: %s\n"
 
-#: systemv/lpoptions.c:109
 msgid "lpoptions: Unknown printer or class!\n"
 msgstr "lpoptions: Impresora o clase desconocida.\n"
 
-#: systemv/lpoptions.c:159
 msgid "lpoptions: No printers!?!\n"
 msgstr "lpoptions: ¡¿¡No hay impresoras!?!\n"
 
-#: systemv/lpoptions.c:207
 #, c-format
 msgid "lpoptions: Unable to add printer or instance: %s\n"
 msgstr "lpoptions: No se ha podido añadir la impresora o la instancia: %s\n"
 
-#: systemv/lpoptions.c:411
 #, c-format
 msgid "lpoptions: Destination %s has no PPD file!\n"
 msgstr "lpoptions: El destino %s no tiene archivo PPD.\n"
 
-#: systemv/lpoptions.c:420
 #, c-format
 msgid "lpoptions: Unable to open PPD file for %s!\n"
 msgstr "lpoptions: No se ha podido abrir el archivo PPD para %s.\n"
 
-#: systemv/lpoptions.c:444
 msgid ""
 "Usage: lpoptions [-h server] [-E] -d printer\n"
 "       lpoptions [-h server] [-E] [-p printer] -l\n"
@@ -2581,32 +1832,25 @@ msgstr ""
 "       lpoptions [-h servidor] [-E] -p impresora -o opción[=valor] ...\n"
 "       lpoptions [-h servidor] [-E] -x impresora\n"
 
-#: systemv/lppasswd.c:192
 msgid "lppasswd: Only root can add or delete passwords!\n"
 msgstr "lppasswd: Solo el usuario root puede añadir o borrar contraseñas.\n"
 
-#: systemv/lppasswd.c:212
 msgid "Enter old password:"
 msgstr "Introduzca la contraseña antigua:"
 
-#: systemv/lppasswd.c:218 systemv/lppasswd.c:236
 #, c-format
 msgid "lppasswd: Unable to copy password string: %s\n"
 msgstr "lppasswd: No se ha podido copiar la cadena de contraseña: %s\n"
 
-#: systemv/lppasswd.c:230
 msgid "Enter password:"
 msgstr "Introduzca la contraseña:"
 
-#: systemv/lppasswd.c:241
 msgid "Enter password again:"
 msgstr "Introduzca nuevamente la contraseña:"
 
-#: systemv/lppasswd.c:247
 msgid "lppasswd: Sorry, passwords don't match!\n"
 msgstr "lppasswd: Lo siento, las contraseñas no coinciden.\n"
 
-#: systemv/lppasswd.c:271
 msgid ""
 "lppasswd: Sorry, password rejected.\n"
 "Your password must be at least 6 characters long, cannot contain\n"
@@ -2616,50 +1860,40 @@ msgstr ""
 "Su contraseña debe tener al menos 6 caracteres, no puede contener\n"
 "su nombre de usuario, y debe tener al menos una letra y un número.\n"
 
-#: systemv/lppasswd.c:321
 msgid "lppasswd: Password file busy!\n"
 msgstr "lppasswd: Archivo de contraseñas ocupado.\n"
 
-#: systemv/lppasswd.c:324 systemv/lppasswd.c:333 systemv/lppasswd.c:351
 #, c-format
 msgid "lppasswd: Unable to open password file: %s\n"
 msgstr "lppasswd: No se ha podido abrir el archivo de contraseñas: %s\n"
 
-#: systemv/lppasswd.c:386 systemv/lppasswd.c:399 systemv/lppasswd.c:431
 #, c-format
 msgid "lppasswd: Unable to write to password file: %s\n"
 msgstr "lppasswd: No se ha podido escribir en el archivo de contraseñas: %s\n"
 
-#: systemv/lppasswd.c:411
 #, c-format
 msgid "lppasswd: user \"%s\" and group \"%s\" do not exist.\n"
 msgstr "lppasswd: el usuario \"%s\" y el grupo \"%s\" no existen.\n"
 
-#: systemv/lppasswd.c:421
 msgid "lppasswd: Sorry, password doesn't match!\n"
 msgstr "lppasswd: Lo siento, las contraseñas no coinciden.\n"
 
-#: systemv/lppasswd.c:454
 msgid "lppasswd: Password file not updated!\n"
 msgstr "lppasswd: Archivo de contraseñas no actualizado.\n"
 
-#: systemv/lppasswd.c:469
 #, c-format
 msgid "lppasswd: failed to backup old password file: %s\n"
 msgstr ""
 "lppasswd: falló al hacer una copia de seguridad del antiguo archivo de "
 "contraseñas: %s\n"
 
-#: systemv/lppasswd.c:482
 #, c-format
 msgid "lppasswd: failed to rename password file: %s\n"
 msgstr "lppasswd: falló al cambiar de nombre al archivo de contraseñas: %s\n"
 
-#: systemv/lppasswd.c:501 systemv/lppasswd.c:500
 msgid "Usage: lppasswd [-g groupname]\n"
 msgstr "Usage: lppasswd [-g nombre_grupo]\n"
 
-#: systemv/lppasswd.c:506 systemv/lppasswd.c:503
 msgid ""
 "Usage: lppasswd [-g groupname] [username]\n"
 "       lppasswd [-g groupname] -a [username]\n"
@@ -2669,53 +1903,39 @@ msgstr ""
 "       lppasswd [-g nombre_grupo] -a [nombre_usuario]\n"
 "       lppasswd [-g nombre_grupo] -x [nombre_usuario]\n"
 
-#: cgi-bin/admin.c:125 cgi-bin/admin.c:142 cgi-bin/admin.c:143
 msgid "Start Printer"
 msgstr "Iniciar impresora"
 
-#: cgi-bin/admin.c:127 cgi-bin/admin.c:144 cgi-bin/admin.c:145
 msgid "Stop Printer"
 msgstr "Detener impresora"
 
-#: cgi-bin/admin.c:129 cgi-bin/admin.c:146 cgi-bin/admin.c:147
 msgid "Start Class"
 msgstr "Iniciar clase"
 
-#: cgi-bin/admin.c:131 cgi-bin/admin.c:148 cgi-bin/admin.c:149
 msgid "Stop Class"
 msgstr "Detener clase"
 
-#: cgi-bin/admin.c:133 cgi-bin/admin.c:150 cgi-bin/admin.c:151
 msgid "Accept Jobs"
 msgstr "Aceptar trabajos"
 
-#: cgi-bin/admin.c:135 cgi-bin/admin.c:152 cgi-bin/admin.c:153
 msgid "Reject Jobs"
 msgstr "Rechazar trabajos"
 
-#: cgi-bin/admin.c:137 cgi-bin/admin.c:154 cgi-bin/admin.c:155
 msgid "Purge Jobs"
 msgstr "Purgar trabajos"
 
-#: cgi-bin/admin.c:141 cgi-bin/admin.c:158 cgi-bin/admin.c:159
 msgid "Set As Default"
 msgstr "Poner como predeterminada"
 
-#: cgi-bin/admin.c:168 cgi-bin/admin.c:179 cgi-bin/admin.c:2690
-#: cgi-bin/admin.c:185 cgi-bin/admin.c:196 cgi-bin/admin.c:2734
-#: cgi-bin/admin.c:186 cgi-bin/admin.c:197 cgi-bin/admin.c:2377
 msgid "Administration"
 msgstr "Administración"
 
-#: cgi-bin/admin.c:224 cgi-bin/admin.c:241 cgi-bin/admin.c:242
 msgid "Modify Class"
 msgstr "Modificar clase"
 
-#: cgi-bin/admin.c:224 cgi-bin/admin.c:241 cgi-bin/admin.c:242
 msgid "Add Class"
 msgstr "Añadir clase"
 
-#: cgi-bin/admin.c:385 cgi-bin/admin.c:402 cgi-bin/admin.c:404
 msgid ""
 "The class name may only contain up to 127 printable characters and may not "
 "contain spaces, slashes (/), or the pound sign (#)."
@@ -2723,23 +1943,18 @@ msgstr ""
 "El nombre de la clase sólo puede contener hasta 127 caracteres imprimibles y "
 "no puede contener espacios, barras (/), o la almohadilla (#)."
 
-#: cgi-bin/admin.c:444 cgi-bin/admin.c:462 cgi-bin/admin.c:464
 msgid "Unable to modify class:"
 msgstr "No se ha podido modificar la clase:"
 
-#: cgi-bin/admin.c:445 cgi-bin/admin.c:463 cgi-bin/admin.c:465
 msgid "Unable to add class:"
 msgstr "No se ha podido añadir la clase:"
 
-#: cgi-bin/admin.c:514 cgi-bin/admin.c:532 cgi-bin/admin.c:534
 msgid "Modify Printer"
 msgstr "Modificar impresora"
 
-#: cgi-bin/admin.c:514 cgi-bin/admin.c:532 cgi-bin/admin.c:534
 msgid "Add Printer"
 msgstr "Añadir impresora"
 
-#: cgi-bin/admin.c:583 cgi-bin/admin.c:602 cgi-bin/admin.c:604
 msgid ""
 "The printer name may only contain up to 127 printable characters and may not "
 "contain spaces, slashes (/), or the pound sign (#)."
@@ -2747,456 +1962,319 @@ msgstr ""
 "El nombre de la impresora sólo puede contener hasta 127 caracteres "
 "imprimibles y no puede contener espacios, barras (/), o la almohadilla (#)."
 
-#: cgi-bin/admin.c:900 cgi-bin/admin.c:930 cgi-bin/admin.c:932
 msgid "Unable to get list of printer drivers:"
 msgstr "No se ha podido obtener la lista de controladores de impresora:"
 
-#: cgi-bin/admin.c:983 cgi-bin/admin.c:1014 cgi-bin/admin.c:1016
 msgid "Unable to modify printer:"
 msgstr "No se ha podido modificar la impresora:"
 
-#: cgi-bin/admin.c:984 cgi-bin/admin.c:1015 cgi-bin/admin.c:1017
 msgid "Unable to add printer:"
 msgstr "No se ha podido añadir la impresora:"
 
-#: cgi-bin/admin.c:1051 cgi-bin/admin.c:1082 cgi-bin/admin.c:1084
 msgid "Set Printer Options"
 msgstr "Cambiar opciones impresora"
 
-#: cgi-bin/admin.c:1062 cgi-bin/admin.c:2330 cgi-bin/admin.c:2391
-#: cgi-bin/admin.c:3112 cgi-bin/admin.c:3213 cgi-bin/admin.c:3449
-#: cgi-bin/admin.c:1095 cgi-bin/admin.c:2374 cgi-bin/admin.c:2435
-#: cgi-bin/admin.c:3156 cgi-bin/admin.c:3258 cgi-bin/admin.c:3496
-#: cgi-bin/admin.c:1097 cgi-bin/admin.c:1846 cgi-bin/admin.c:1907
-#: cgi-bin/admin.c:2405 cgi-bin/admin.c:2507 cgi-bin/admin.c:2745
 msgid "Missing form variable!"
 msgstr "Variable de formulario desaparecida."
 
-#: cgi-bin/admin.c:1076 cgi-bin/admin.c:1113 cgi-bin/admin.c:1115
 msgid "Unable to get PPD file!"
 msgstr "No se ha podido obtener el archivo PPD."
 
-#: cgi-bin/admin.c:1084 cgi-bin/admin.c:1123 cgi-bin/admin.c:1125
 msgid "Unable to open PPD file:"
 msgstr "No se ha podido abrir el archivo PPD:"
 
-#: cgi-bin/admin.c:1241 cgi-bin/admin.c:1282 cgi-bin/admin.c:1290
 msgid "Banners"
 msgstr "Banners"
 
-#: cgi-bin/admin.c:1255 cgi-bin/admin.c:1296 cgi-bin/admin.c:1304
 msgid "Starting Banner"
 msgstr "Banner inicial"
 
-#: cgi-bin/admin.c:1262 cgi-bin/admin.c:1303 cgi-bin/admin.c:1311
 msgid "Ending Banner"
 msgstr "Banner final"
 
-#: cgi-bin/admin.c:1280 cgi-bin/admin.c:1321 cgi-bin/admin.c:1329
 msgid "Policies"
 msgstr "Reglas"
 
-#: cgi-bin/admin.c:1304 cgi-bin/admin.c:1345 cgi-bin/admin.c:1353
 msgid "Error Policy"
 msgstr "Directiva de error"
 
-#: cgi-bin/admin.c:1331 cgi-bin/admin.c:1372 cgi-bin/admin.c:1380
 msgid "Operation Policy"
 msgstr "Directiva de operación"
 
-#: cgi-bin/admin.c:1352 cgi-bin/admin.c:1372 cgi-bin/admin.c:1393
-#: cgi-bin/admin.c:1413 cgi-bin/admin.c:1401 cgi-bin/admin.c:1421
 msgid "PS Binary Protocol"
 msgstr "Protocolo Binario PS"
 
-#: cgi-bin/admin.c:1358 cgi-bin/admin.c:1399 cgi-bin/admin.c:1407
 msgid "None"
 msgstr "Ninguno"
 
-#: cgi-bin/admin.c:1490 cgi-bin/admin.c:1534 cgi-bin/admin.c:1542
 msgid "Unable to set options:"
 msgstr "No se han podido cambiar las opciones:"
 
-#: cgi-bin/admin.c:1591 cgi-bin/admin.c:1607 cgi-bin/admin.c:1620
-#: cgi-bin/admin.c:2099 cgi-bin/admin.c:2106 cgi-bin/admin.c:1635
-#: cgi-bin/admin.c:1651 cgi-bin/admin.c:1664 cgi-bin/admin.c:2143
-#: cgi-bin/admin.c:2150 cgi-bin/admin.c:1609 cgi-bin/admin.c:1618
 msgid "Change Settings"
 msgstr "Cambiar especificaciones"
 
-#: cgi-bin/admin.c:1592 cgi-bin/admin.c:1608 cgi-bin/admin.c:1621
-#: cgi-bin/admin.c:1636 cgi-bin/admin.c:1652 cgi-bin/admin.c:1665
-#: cgi-bin/admin.c:1611
 msgid "Unable to change server settings:"
 msgstr "No se han podido cambiar las especificaciones del servidor:"
 
-#: cgi-bin/admin.c:2097 cgi-bin/admin.c:2190 cgi-bin/admin.c:2141
-#: cgi-bin/admin.c:2234 cgi-bin/admin.c:1703
 msgid "Unable to upload cupsd.conf file:"
 msgstr "No se ha podido copiar el archivo cupsd.conf:"
 
-#: cgi-bin/admin.c:2134 cgi-bin/admin.c:2146 cgi-bin/admin.c:2193
-#: cgi-bin/admin.c:2200 cgi-bin/admin.c:2232 cgi-bin/admin.c:2244
-#: cgi-bin/admin.c:2267 cgi-bin/admin.c:2178 cgi-bin/admin.c:2190
-#: cgi-bin/admin.c:2237 cgi-bin/admin.c:2276 cgi-bin/admin.c:2288
-#: cgi-bin/admin.c:2311 cgi-bin/admin.c:1646 cgi-bin/admin.c:1658
-#: cgi-bin/admin.c:1706 cgi-bin/admin.c:1713 cgi-bin/admin.c:1745
-#: cgi-bin/admin.c:1758 cgi-bin/admin.c:1782
 msgid "Edit Configuration File"
 msgstr "Editar archivo de configuración"
 
-#: cgi-bin/admin.c:2135 cgi-bin/admin.c:2147 cgi-bin/admin.c:2179
-#: cgi-bin/admin.c:2191 cgi-bin/printers.c:219 cgi-bin/printers.c:224
-#: cgi-bin/admin.c:1647 cgi-bin/admin.c:1659
 msgid "Unable to create temporary file:"
 msgstr "No se ha podido crear el archivo temporal:"
 
-#: cgi-bin/admin.c:2233 cgi-bin/admin.c:2245 cgi-bin/admin.c:2268
-#: cgi-bin/admin.c:2277 cgi-bin/admin.c:2289 cgi-bin/admin.c:2312
-#: cgi-bin/admin.c:1747 cgi-bin/admin.c:1760 cgi-bin/admin.c:1784
 msgid "Unable to access cupsd.conf file:"
 msgstr "No se ha podido acceder al archivo cupsd.conf"
 
-#: cgi-bin/admin.c:2247 cgi-bin/admin.c:2291 cgi-bin/admin.c:1762
 msgid "Unable to edit cupsd.conf files larger than 1MB!"
 msgstr "No se pueden editar archivos cupsd.conf mayores de 1MB."
 
-#: cgi-bin/admin.c:2316 cgi-bin/admin.c:2360 cgi-bin/admin.c:1832
 msgid "Delete Class"
 msgstr "Borrar clase"
 
-#: cgi-bin/admin.c:2357 cgi-bin/admin.c:2401 cgi-bin/admin.c:1873
 msgid "Unable to delete class:"
 msgstr "No se ha podido borrar la clase:"
 
-#: cgi-bin/admin.c:2377 cgi-bin/admin.c:2421 cgi-bin/admin.c:1893
 msgid "Delete Printer"
 msgstr "Borrar impresora"
 
-#: cgi-bin/admin.c:2418 cgi-bin/admin.c:2462 cgi-bin/admin.c:1934
 msgid "Unable to delete printer:"
 msgstr "No se ha podido borrar la impresora:"
 
-#: cgi-bin/admin.c:2447 cgi-bin/admin.c:2491 cgi-bin/admin.c:2053
-#: cgi-bin/admin.c:2072
 msgid "Export Printers to Samba"
 msgstr "Exportar impresoras a Samba"
 
-#: cgi-bin/admin.c:2515 cgi-bin/admin.c:2559
 msgid "Unable to fork process!"
 msgstr "No se ha podido bifurcar el proceso."
 
-#: cgi-bin/admin.c:2534 cgi-bin/admin.c:2578
 msgid "Unable to connect to server!"
 msgstr "No se ha podido conectar al servidor."
 
-#: cgi-bin/admin.c:2538 cgi-bin/admin.c:2582
 msgid "Unable to get printer attributes!"
 msgstr "No se han podido obtener los atributos de la impresora."
 
-#: cgi-bin/admin.c:2543 cgi-bin/admin.c:2587
 msgid "Unable to convert PPD file!"
 msgstr "No se ha podido convertir el archivo PPD."
 
-#: cgi-bin/admin.c:2547 cgi-bin/admin.c:2591
 msgid "Unable to copy Windows 2000 printer driver files!"
 msgstr ""
 "No se han podido copiar los archivos del controlador de impresora de Windows "
 "2000."
 
-#: cgi-bin/admin.c:2552 cgi-bin/admin.c:2596
 msgid "Unable to install Windows 2000 printer driver files!"
 msgstr ""
 "No se han podido instalar los archivos del controlador de impresora de "
 "Windows 2000."
 
-#: cgi-bin/admin.c:2557 cgi-bin/admin.c:2601
 msgid "Unable to copy Windows 9x printer driver files!"
 msgstr ""
 "No se han podido copiar los archivos del controlador de impresora de Windows "
 "9x."
 
-#: cgi-bin/admin.c:2562 cgi-bin/admin.c:2606
 msgid "Unable to install Windows 9x printer driver files!"
 msgstr ""
 "No se han podido instalar los archivos del controlador de impresora de "
 "Windows 9x."
 
-#: cgi-bin/admin.c:2567 cgi-bin/admin.c:2611
 msgid "Unable to set Windows printer driver!"
 msgstr "No se ha podido configurar el controlador de impresora de Windows."
 
-#: cgi-bin/admin.c:2572 cgi-bin/admin.c:2616
 msgid "No printer drivers found!"
 msgstr "No se han encontrado controladores de impresora."
 
-#: cgi-bin/admin.c:2576 cgi-bin/admin.c:2620
 msgid "Unable to execute cupsaddsmb command!"
 msgstr "No se ha podido ejecutar el comando cupsaddsmb."
 
-#: cgi-bin/admin.c:2582 cgi-bin/admin.c:2626
 #, c-format
 msgid "cupsaddsmb failed with status %d"
 msgstr "cupsaddsmb ha fallado con estado %d"
 
-#: cgi-bin/admin.c:2592 cgi-bin/admin.c:2636
 #, c-format
 msgid "cupsaddsmb crashed on signal %d"
 msgstr "cupsaddsmb se ha estropeado con señal %d"
 
-#: cgi-bin/admin.c:2608 cgi-bin/admin.c:2652 cgi-bin/admin.c:2061
 msgid "A Samba username is required to export printer drivers!"
 msgstr ""
 "Se requiere un nombre de usuario Samba para exportar los controladores de "
 "impresora."
 
-#: cgi-bin/admin.c:2612 cgi-bin/admin.c:2656 cgi-bin/admin.c:2065
 msgid "A Samba password is required to export printer drivers!"
 msgstr ""
 "Se requiere una contraseña Samba para exportar los controladores de "
 "impresora."
 
-#: cgi-bin/admin.c:2704 cgi-bin/admin.c:2748 cgi-bin/admin.c:2102
 msgid "Unable to open cupsd.conf file:"
 msgstr "No se ha podido abrir el archivo cupsd.conf:"
 
-#: cgi-bin/admin.c:3144 cgi-bin/admin.c:3400 cgi-bin/admin.c:3189
-#: cgi-bin/admin.c:3447 cgi-bin/admin.c:2438 cgi-bin/admin.c:2696
 msgid "Unable to change printer:"
 msgstr "No se ha podido cambiar la impresora:"
 
-#: cgi-bin/admin.c:3214 cgi-bin/admin.c:3259 cgi-bin/admin.c:3399
-#: cgi-bin/admin.c:3417 cgi-bin/admin.c:3305 cgi-bin/admin.c:3446
-#: cgi-bin/admin.c:3464 cgi-bin/admin.c:2508 cgi-bin/admin.c:2554
-#: cgi-bin/admin.c:2695 cgi-bin/admin.c:2713
 msgid "Set Allowed Users"
 msgstr "Establecer usuarios permitidos"
 
-#: cgi-bin/admin.c:3262 cgi-bin/admin.c:3308 cgi-bin/admin.c:2557
 msgid "Unable to get printer attributes:"
 msgstr "No se han podido obtener los atributos de la impresora:"
 
-#: cgi-bin/admin.c:3450 cgi-bin/admin.c:3488 cgi-bin/admin.c:3506
-#: cgi-bin/admin.c:3497 cgi-bin/admin.c:3536 cgi-bin/admin.c:3554
-#: cgi-bin/admin.c:2746 cgi-bin/admin.c:2785 cgi-bin/admin.c:2803
 msgid "Set Publishing"
 msgstr "Hacer pública"
 
-#: cgi-bin/admin.c:3489 cgi-bin/admin.c:3537 cgi-bin/admin.c:2786
 msgid "Unable to change printer-is-shared attribute:"
 msgstr "No se ha podido cambiar el atributo printer-is-shared:"
 
-#: cgi-bin/classes.c:161 cgi-bin/classes.c:208 cgi-bin/classes.c:159
-#: cgi-bin/classes.c:206 cgi-bin/classes.c:164 cgi-bin/classes.c:211
 msgid "Classes"
 msgstr "Clases"
 
-#: cgi-bin/classes.c:355 cgi-bin/classes.c:356 cgi-bin/classes.c:354
-#: cgi-bin/classes.c:359
 msgid "Unable to get class list:"
 msgstr "No se ha podido obtener la lista de clases:"
 
-#: cgi-bin/classes.c:454 cgi-bin/classes.c:455 cgi-bin/classes.c:453
-#: cgi-bin/classes.c:458
 msgid "Unable to get class status:"
 msgstr "No se ha podido obtener el estado de la clase:"
 
-#: cgi-bin/ipp-var.c:366 cgi-bin/ipp-var.c:419 cgi-bin/ipp-var.c:489
-#: cgi-bin/ipp-var.c:490
 msgid "Move Job"
 msgstr "Mover trabajo"
 
-#: cgi-bin/ipp-var.c:367
 msgid "Unable to find destination for job!"
 msgstr "No se ha podido encontrar destino para el trabajo."
 
-#: cgi-bin/ipp-var.c:421 cgi-bin/ipp-var.c:491 cgi-bin/ipp-var.c:492
 msgid "Move All Jobs"
 msgstr "Mover todos los trabajos"
 
-#: cgi-bin/ipp-var.c:496 cgi-bin/ipp-var.c:497
 msgid "Unable to move job"
 msgstr "No se ha podido mover el trabajo"
 
-#: cgi-bin/ipp-var.c:498 cgi-bin/ipp-var.c:499
 msgid "Unable to move jobs"
 msgstr "No se han podido mover los trabajos"
 
-#: cgi-bin/ipp-var.c:603 cgi-bin/ipp-var.c:605
 msgid "Print Test Page"
 msgstr "Imprimir página de prueba"
 
-#: cgi-bin/ipp-var.c:606 cgi-bin/ipp-var.c:608
 msgid "Unable to print test page:"
 msgstr "No se ha podido imprimir la página de prueba:"
 
-#: cgi-bin/jobs.c:111 cgi-bin/jobs.c:122 cgi-bin/jobs.c:184
 msgid "Jobs"
 msgstr "Trabajos"
 
-#: cgi-bin/jobs.c:187
 msgid "Job operation failed:"
 msgstr "La operación del trabajo ha fallado:"
 
-#: cgi-bin/printers.c:161 cgi-bin/printers.c:208 cgi-bin/printers.c:211
-#: cgi-bin/printers.c:166 cgi-bin/printers.c:335 cgi-bin/printers.c:171
-#: cgi-bin/printers.c:340
 msgid "Printers"
 msgstr "Impresoras"
 
-#: cgi-bin/printers.c:362 cgi-bin/printers.c:366 cgi-bin/printers.c:518
-#: cgi-bin/printers.c:523
 msgid "Unable to get printer list:"
 msgstr "No se ha podido obtener la lista de impresoras:"
 
-#: cgi-bin/printers.c:461 cgi-bin/printers.c:468 cgi-bin/printers.c:628
-#: cgi-bin/printers.c:633
 msgid "Unable to get printer status:"
 msgstr "No se ha podido obtener el estado de la impresora"
 
-#: cups/ppd.c:319 cups/ppd.c:302
 msgid "OK"
 msgstr "OK"
 
-#: cups/ppd.c:320 cups/ppd.c:303
 msgid "Unable to open PPD file"
 msgstr "No se ha podido abrir el archivo PPD"
 
-#: cups/ppd.c:321 cups/ppd.c:304
 msgid "NULL PPD file pointer"
 msgstr "Puntero de archivo PPD NULO"
 
-#: cups/ppd.c:322 cups/ppd.c:305
 msgid "Memory allocation error"
 msgstr "Error de reserva de memoria"
 
-#: cups/ppd.c:323 cups/ppd.c:306
 msgid "Missing PPD-Adobe-4.x header"
 msgstr "Falta cabecera PPD-Adobe-4.x"
 
-#: cups/ppd.c:324 cups/ppd.c:307
 msgid "Missing value string"
 msgstr "Falta cadena de valores"
 
-#: cups/ppd.c:325 cups/ppd.c:308
 msgid "Internal error"
 msgstr "Error interno"
 
-#: cups/ppd.c:326 cups/ppd.c:309
 msgid "Bad OpenGroup"
 msgstr "OpenGroup incorrecto"
 
-#: cups/ppd.c:327 cups/ppd.c:310
 msgid "OpenGroup without a CloseGroup first"
 msgstr "OpenGroup sin un CloseGroup previo"
 
-#: cups/ppd.c:328 cups/ppd.c:311
 msgid "Bad OpenUI/JCLOpenUI"
 msgstr "OpenUI/JCLOpenUI incorrecto"
 
-#: cups/ppd.c:329 cups/ppd.c:312
 msgid "OpenUI/JCLOpenUI without a CloseUI/JCLCloseUI first"
 msgstr "OpenUI/JCLOpenUI sin un CloseUI/JCLCloseUI previo"
 
-#: cups/ppd.c:330 cups/ppd.c:313
 msgid "Bad OrderDependency"
 msgstr "OrderDependency incorrecto"
 
-#: cups/ppd.c:331 cups/ppd.c:314
 msgid "Bad UIConstraints"
 msgstr "UIConstraints incorrecto"
 
-#: cups/ppd.c:332 cups/ppd.c:315
 msgid "Missing asterisk in column 1"
 msgstr "Falta un asterisco en la columna 1"
 
-#: cups/ppd.c:333 cups/ppd.c:316
 msgid "Line longer than the maximum allowed (255 characters)"
 msgstr "Línea más larga que el máximo permitido (255 caracteres)"
 
-#: cups/ppd.c:334 cups/ppd.c:317
 msgid "Illegal control character"
 msgstr "Carácter de control ilegal"
 
-#: cups/ppd.c:335 cups/ppd.c:318
 msgid "Illegal main keyword string"
 msgstr "Cadena de clave principal ilegal"
 
-#: cups/ppd.c:336 cups/ppd.c:319
 msgid "Illegal option keyword string"
 msgstr "Cadena de clave de opción ilegal"
 
-#: cups/ppd.c:337 cups/ppd.c:320
 msgid "Illegal translation string"
 msgstr "Cadena de traducción ilegal"
 
-#: cups/ppd.c:338 cups/ppd.c:321
 msgid "Illegal whitespace character"
 msgstr "Carácter de espacio en blanco ilegal"
 
-#: cups/ppd.c:339 cups/ppd.c:322
 msgid "Bad custom parameter"
 msgstr "Parámetro a medida incorrecto"
 
-#: cups/ppd.c:344 cups/ppd.c:327
 msgid "Unknown"
 msgstr "Desconocido"
 
-#: cups/ppd.c:1033 cups/ppd.c:1020 cups/ppd.c:1009 cups/ppd.c:1010
-#: cups/ppd.c:1007
 msgid "Custom"
 msgstr "A medida"
 
-#: cups/ppd.c:1259 cups/ppd.c:1236 cups/ppd.c:1225 cups/ppd.c:1226
-#: cups/ppd.c:1223
 msgid "JCL"
 msgstr "JCL"
 
-#: scheduler/ipp.c:2184 scheduler/ipp.c:2226 scheduler/ipp.c:2681
 msgid "No authentication information provided!"
 msgstr "No se ha proporcionado información de autentificación."
 
-#: systemv/cupsaddsmb.c:440 systemv/cupsaddsmb.c:252
 #, c-format
 msgid "Password for %s required to access %s via SAMBA: "
 msgstr "Se requiere la contraseña de %s para acceder a %s vía SAMBA: "
 
-#: systemv/cupsaddsmb.c:451 cups/adminutil.c:626
 #, c-format
 msgid "Running command: %s %s -N -U '%s%%%s' -c '%s'\n"
 msgstr "Ejecutando comando: %s %s -N -U '%s%%%s' -c '%s'\n"
 
-#: systemv/cupsaddsmb.c:479 cups/adminutil.c:656 cups/adminutil.c:1683
 #, c-format
 msgid "cupsaddsmb: Unable to run \"%s\": %s\n"
 msgstr "cupsaddsmb: No se ha podido ejecutar \"%s\": %s\n"
 
-#: systemv/cupsaddsmb.c:805
 msgid "cupsaddsmb: No Windows printer drivers are installed!\n"
 msgstr ""
 "cupsaddsmb: No está instalado ningún controlador de impresora de Windows.\n"
 
-#: systemv/cupsaddsmb.c:810
 msgid "cupsaddsmb: Warning, no Windows 2000 printer drivers are installed!\n"
 msgstr ""
 "cupsaddsmb: Advertencia, no está instalado ningún controlador de impresora "
 "de Windows 2000.\n"
 
-#: systemv/lpadmin.c:881
 #, c-format
 msgid "lpadmin: Printer %s is already a member of class %s.\n"
 msgstr "lpadmin: La impresora %s ya es miembro de la clase %s.\n"
 
-#: systemv/lpadmin.c:1115
 msgid "lpadmin: No member names were seen!\n"
 msgstr "lpadmin: No se han visto nombres de miembros.\n"
 
-#: systemv/lpadmin.c:1129
 #, c-format
 msgid "lpadmin: Printer %s is not a member of class %s.\n"
 msgstr "lpadmin: La impresora %s no es miembro de la clase %s.\n"
 
-#: systemv/lpinfo.c:278
 #, c-format
 msgid ""
 "Device: uri = %s\n"
@@ -3211,7 +2289,6 @@ msgstr ""
 "        make-and-model = %s\n"
 "        device-id = %s\n"
 
-#: systemv/lpinfo.c:410
 #, c-format
 msgid ""
 "Model:  name = %s\n"
@@ -3224,21 +2301,17 @@ msgstr ""
 "        make-and-model = %s\n"
 "        device-id = %s\n"
 
-#: systemv/lpmove.c:145
 msgid "Usage: lpmove job/src dest\n"
 msgstr "Uso: lpmove trabajo/fuente destino\n"
 
-#: systemv/lpstat.c:144 systemv/lpstat.c:156
 msgid "lpstat: Need \"completed\", \"not-completed\", or \"all\" after -W!\n"
 msgstr ""
 "lpstat: Se necesita \"completed\", \"not completed\", o \"all\" tras -W.\n"
 
-#: systemv/lpstat.c:740 systemv/lpstat.c:768
 #, c-format
 msgid "%s accepting requests since %s\n"
 msgstr "%s aceptando peticiones desde %s\n"
 
-#: systemv/lpstat.c:743 systemv/lpstat.c:771
 #, c-format
 msgid ""
 "%s not accepting requests since %s -\n"
@@ -3247,12 +2320,10 @@ msgstr ""
 "%s no acepta peticiones desde %s -\n"
 "\t%s\n"
 
-#: systemv/lpstat.c:752 systemv/lpstat.c:780
 #, c-format
 msgid "%s/%s accepting requests since %s\n"
 msgstr "%s/%s aceptando peticiones desde %s\n"
 
-#: systemv/lpstat.c:755 systemv/lpstat.c:783
 #, c-format
 msgid ""
 "%s/%s not accepting requests since %s -\n"
@@ -3261,40 +2332,29 @@ msgstr ""
 "%s/%s no acepta peticiones desde %s -\n"
 "\t%s\n"
 
-#: berkeley/lpc.c:88 berkeley/lpc.c:116 berkeley/lpc.c:152
 msgid "lpc> "
 msgstr "lpc> "
 
-#: berkeley/lpq.c:93 systemv/cancel.c:250 systemv/cancel.c:332
-#: systemv/cancel.c:331
 #, c-format
 msgid "%s: Unable to contact server!\n"
 msgstr "%s: No se ha podido contactar con el servidor.\n"
 
-#: berkeley/lpq.c:138 berkeley/lpr.c:128 berkeley/lprm.c:144
-#: systemv/accept.c:120 systemv/cancel.c:107 systemv/lp.c:150
-#: systemv/lpstat.c:144 berkeley/lpr.c:130 systemv/lp.c:154
 #, c-format
 msgid "%s: Error - expected username after '-U' option!\n"
 msgstr "%s: Error - se esperaba un nombre de usuario tras la opción '-U'.\n"
 
-#: berkeley/lpq.c:173
 #, c-format
 msgid "%s: Error - unknown destination \"%s/%s\"!\n"
 msgstr "%s: Error - destino \"%s/%s\" desconocido.\n"
 
-#: berkeley/lpq.c:177 systemv/lpstat.c:549
 #, c-format
 msgid "%s: Unknown destination \"%s\"!\n"
 msgstr "%s: Destino \"%s\" desconocido.\n"
 
-#: berkeley/lpq.c:201 berkeley/lprm.c:167 systemv/accept.c:146
-#: systemv/cancel.c:135 systemv/lp.c:227 systemv/lpstat.c:300 systemv/lp.c:231
 #, c-format
 msgid "%s: Error - expected hostname after '-h' option!\n"
 msgstr "%s: Error - se esperaba un nombre de ordenador tras la opción '-h'.\n"
 
-#: berkeley/lpq.c:253
 #, c-format
 msgid ""
 "%s: error - %s environment variable names non-existent destination \"%s\"!\n"
@@ -3302,29 +2362,24 @@ msgstr ""
 "%s: error - %s nombres de variables de entorno no existen en destino \"%s"
 "\".\n"
 
-#: berkeley/lpq.c:258
 #, c-format
 msgid "%s: error - no default destination available.\n"
 msgstr "%s: error - destino predeterminado no disponible.\n"
 
-#: berkeley/lpq.c:647
 msgid ""
 "Usage: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]\n"
 msgstr ""
 "Uso: lpq (-P dest) (-U nombre_usuario) (-h nombre_ordenador(:puerto)) (-l) "
 "(+intervalo)\n"
 
-#: berkeley/lpr.c:148 berkeley/lpr.c:150
 #, c-format
 msgid "%s: Error - expected hostname after '-H' option!\n"
 msgstr "%s: Error - se esperaba un nombre de ordenador tras la opción '-H'.\n"
 
-#: berkeley/lpr.c:171 berkeley/lpr.c:173
 #, c-format
 msgid "%s: Error - expected value after '-%c' option!\n"
 msgstr "%s: Error - se esperaba un valor tras la opción '%c'.\n"
 
-#: berkeley/lpr.c:185 berkeley/lpr.c:187
 #, c-format
 msgid ""
 "%s: Warning - '%c' format modifier not supported - output may not be "
@@ -3333,44 +2388,34 @@ msgstr ""
 "%s: Advertencia - no se admite el uso del modificador de formato '%c' - la "
 "salida puede no ser correcta.\n"
 
-#: berkeley/lpr.c:199 berkeley/lpr.c:201
 #, c-format
 msgid "%s: error - expected option=value after '-o' option!\n"
 msgstr "%s: error - se esperaba opción=valor tras la opción '-o'.\n"
 
-#: berkeley/lpr.c:250 berkeley/lpr.c:258
 #, c-format
 msgid "%s: Error - expected destination after '-P' option!\n"
 msgstr "%s: Error - se esperaba un destino tras la opción '-P'.\n"
 
-#: berkeley/lpr.c:285 berkeley/lpr.c:293
 #, c-format
 msgid "%s: Error - expected copy count after '-#' option!\n"
 msgstr "%s: Error - se esperaba un número de copias tras la opción '-#'.\n"
 
-#: berkeley/lpr.c:309 berkeley/lpr.c:317
 #, c-format
 msgid "%s: Error - expected name after '-%c' option!\n"
 msgstr "%s: Error - se esperaba un nombre tras la opción '%c'.\n"
 
-#: berkeley/lpr.c:320 berkeley/lprm.c:179 systemv/accept.c:176
-#: systemv/cancel.c:169 systemv/lp.c:529 systemv/lpstat.c:461
-#: berkeley/lpr.c:328 systemv/lp.c:545
 #, c-format
 msgid "%s: Error - unknown option '%c'!\n"
 msgstr "%s: Error - opción '%c' desconocida.\n"
 
-#: berkeley/lpr.c:333 systemv/lp.c:554 berkeley/lpr.c:341 systemv/lp.c:570
 #, c-format
 msgid "%s: Error - unable to access \"%s\" - %s\n"
 msgstr "%s: Error - no se ha podido acceder a \"%s\" - %s\n"
 
-#: berkeley/lpr.c:351 systemv/lp.c:571 berkeley/lpr.c:359 systemv/lp.c:587
 #, c-format
 msgid "%s: Error - too many files - \"%s\"\n"
 msgstr "%s: Error - demasiados archivos - \"%s\"\n"
 
-#: berkeley/lpr.c:393 systemv/lp.c:621 berkeley/lpr.c:401 systemv/lp.c:637
 #, c-format
 msgid ""
 "%s: Error - %s environment variable names non-existent destination \"%s\"!\n"
@@ -3378,156 +2423,126 @@ msgstr ""
 "%s: Error - %s nombres de variables de entorno no existen en destino \"%s"
 "\".\n"
 
-#: berkeley/lpr.c:398 systemv/lp.c:626 berkeley/lpr.c:406 systemv/lp.c:642
 #, c-format
 msgid "%s: Error - no default destination available.\n"
 msgstr "%s: Error - destino predeterminado no disponible.\n"
 
-#: berkeley/lpr.c:402 systemv/lp.c:630 berkeley/lpr.c:410 systemv/lp.c:646
 #, c-format
 msgid "%s: Error - scheduler not responding!\n"
 msgstr "%s: Error - el programa planificador de tareas no responde.\n"
 
-#: berkeley/lpr.c:452 systemv/lp.c:670 berkeley/lpr.c:460 systemv/lp.c:686
 #, c-format
 msgid "%s: Error - unable to create temporary file \"%s\" - %s\n"
 msgstr "%s: Error - no se ha podido crear el archivo temporal \"%s\" - %s\n"
 
-#: berkeley/lpr.c:462 systemv/lp.c:679 berkeley/lpr.c:470 systemv/lp.c:695
 #, c-format
 msgid "%s: Error - unable to write to temporary file \"%s\" - %s\n"
 msgstr "%s: Error - no se ha podido escribir al archivo temporal \"%s\" - %s\n"
 
-#: berkeley/lpr.c:476 systemv/lp.c:693 berkeley/lpr.c:484 systemv/lp.c:709
 #, c-format
 msgid "%s: Error - stdin is empty, so no job has been sent.\n"
 msgstr ""
 "%s: Error - stdin está vacío, por lo tanto no se ha enviado ningún trabajo.\n"
 
-#: berkeley/lprm.c:127 systemv/cancel.c:227
 #, c-format
 msgid "%s: Error - unknown destination \"%s\"!\n"
 msgstr "%s: Error - destino \"%s\" desconocido.\n"
 
-#: systemv/accept.c:165
 #, c-format
 msgid "%s: Error - expected reason text after '-r' option!\n"
 msgstr "%s: Error - se esperaba un texto con una razón tras la opción '-r'.\n"
 
-#: systemv/cancel.c:157
 #, c-format
 msgid "%s: Error - expected username after '-u' option!\n"
 msgstr "%s: Error - se esperaba un nombre de usuario tras la opción '-u'.\n"
 
-#: systemv/cancel.c:308 systemv/cancel.c:373 systemv/cancel.c:372
 #, c-format
 msgid "%s: %s failed: %s\n"
 msgstr "%s: %s ha fallado: %s\n"
 
-#: systemv/lp.c:173 systemv/lp.c:177
 #, c-format
 msgid "%s: Error - expected destination after '-d' option!\n"
 msgstr "%s: Error -  se esperaba un destino tras la opción '-d'.\n"
 
-#: systemv/lp.c:206 systemv/lp.c:210
 #, c-format
 msgid "%s: Error - expected form after '-f' option!\n"
 msgstr "%s: Error - se esperaba un formulario tras la opción '-f'.\n"
 
-#: systemv/lp.c:213 systemv/lp.c:217
 #, c-format
 msgid "%s: Warning - form option ignored!\n"
 msgstr "%s: Advertencia - opción de formulario no tenida en cuenta.\n"
 
-#: systemv/lp.c:247 systemv/lp.c:251
 #, c-format
 msgid "%s: Expected job ID after '-i' option!\n"
 msgstr "%s : Se esperaba una ID de trabajo tras la opción '-i'.\n"
 
-#: systemv/lp.c:258 systemv/lp.c:262
 #, c-format
 msgid "%s: Error - cannot print files and alter jobs simultaneously!\n"
 msgstr ""
 "%s: Error - no se pueden imprimir archivos y alterar trabajos al mismo "
 "tiempo.\n"
 
-#: systemv/lp.c:271 systemv/lp.c:275
 #, c-format
 msgid "%s: Error - bad job ID!\n"
 msgstr "%s: Error - ID de trabajo incorrecta.\n"
 
-#: systemv/lp.c:296 systemv/lp.c:308
 #, c-format
 msgid "%s: Error - expected copies after '-n' option!\n"
 msgstr "%s: Error -  se esperaba número de copias tras la opción '-n'.\n"
 
-#: systemv/lp.c:319 systemv/lp.c:331
 #, c-format
 msgid "%s: Error - expected option string after '-o' option!\n"
 msgstr "%s: Error - se esperaba una cadena de opciones tras la opción '-o'.\n"
 
-#: systemv/lp.c:340 systemv/lp.c:352
 #, c-format
 msgid "%s: Error - expected priority after '-%c' option!\n"
 msgstr "%s: Error - se esperaba un valor de prioridad tras la opción '-%c'.\n"
 
-#: systemv/lp.c:363 systemv/lp.c:375
 #, c-format
 msgid "%s: Error - priority must be between 1 and 100.\n"
 msgstr "%s: Error - la prioridad debe estar entre 1 y 100.\n"
 
-#: systemv/lp.c:387 systemv/lp.c:399
 #, c-format
 msgid "%s: Error - expected title after '-t' option!\n"
 msgstr "%s: Error - se esperaba un título tras la opción '-t'.\n"
 
-#: systemv/lp.c:405 systemv/lp.c:417
 #, c-format
 msgid "%s: Error - expected mode list after '-y' option!\n"
 msgstr "%s: Error - se esperaba una lista de modos tras la opción '-y'.\n"
 
-#: systemv/lp.c:413 systemv/lp.c:425
 #, c-format
 msgid "%s: Warning - mode option ignored!\n"
 msgstr "%s: Advertencia - opción de modo no tenida en cuenta.\n"
 
-#: systemv/lp.c:427 systemv/lp.c:439
 #, c-format
 msgid "%s: Error - expected hold name after '-H' option!\n"
 msgstr "%s: Error - se esperaba un nombre de retención tras la opción '-H'.\n"
 
-#: systemv/lp.c:451 systemv/lp.c:463
 #, c-format
 msgid "%s: Need job ID ('-i jobid') before '-H restart'!\n"
 msgstr ""
 "%s: Se necesita un ID de trabajo ('-i id_trabajo') antes de '-H restart'.\n"
 
-#: systemv/lp.c:475 systemv/lp.c:487
 #, c-format
 msgid "%s: Error - expected page list after '-P' option!\n"
 msgstr "%s: Error - se esperaba una lista de páginas tras la opción '-P'.\n"
 
-#: systemv/lp.c:496 systemv/lp.c:508
 #, c-format
 msgid "%s: Error - expected character set after '-S' option!\n"
 msgstr "%s: Error - se esperaba un juego de caracteres tras la opción '-S'.\n"
 
-#: systemv/lp.c:504 systemv/lp.c:516
 #, c-format
 msgid "%s: Warning - character set option ignored!\n"
 msgstr "%s: Advertencia - opción de juego de caracteres no tenida en cuenta.\n"
 
-#: systemv/lp.c:516 systemv/lp.c:528
 #, c-format
 msgid "%s: Error - expected content type after '-T' option!\n"
 msgstr "%s: Error - se esperaba un tipo de contenido tras la opción '-T'.\n"
 
-#: systemv/lp.c:524 systemv/lp.c:536
 #, c-format
 msgid "%s: Warning - content type option ignored!\n"
 msgstr "%s: Advertencia - opción de tipo de contenido no tenida en cuenta.\n"
 
-#: systemv/lp.c:538 systemv/lp.c:554
 #, c-format
 msgid ""
 "%s: Error - cannot print from stdin if files or a job ID are provided!\n"
@@ -3535,7 +2550,6 @@ msgstr ""
 "%s: Error - no se puede imprimir desde stdin si se proporcionan archivos o "
 "una ID de trabajo.\n"
 
-#: systemv/lpstat.c:164 systemv/lpstat.c:178
 #, c-format
 msgid ""
 "%s: Error - need \"completed\", \"not-completed\", or \"all\" after '-W' "
@@ -3544,100 +2558,78 @@ msgstr ""
 "%s: Error - se necesita \"completed\", \"not completed\", o \"all\" tras la "
 "opción '-W'.\n"
 
-#: systemv/lpstat.c:237
 #, c-format
 msgid "%s: Error - expected destination after '-b' option!\n"
 msgstr "%s: Error - se esperaba un destino tras la opción '-b'.\n"
 
-#: systemv/lpstat.c:534
 #, c-format
 msgid "%s: Invalid destination name in list \"%s\"!\n"
 msgstr "%s: Nombre de destino no válido en la lista \"%s\".\n"
 
-#: systemv/lpstat.c:571 systemv/cupsaddsmb.c:156 systemv/cupsaddsmb.c:177
 #, c-format
 msgid "%s: Unable to connect to server\n"
 msgstr "%s: No se ha podido conectar al servidor\n"
 
-#: cups/notify.c:91
 msgid "Print Job:"
 msgstr "Imprimir trabajo:"
 
-#: cups/notify.c:96
 msgid "pending"
 msgstr "pendiente"
 
-#: cups/notify.c:99
 msgid "held"
 msgstr "retenido"
 
-#: cups/notify.c:102 cups/notify.c:143
 msgid "processing"
 msgstr "en proceso"
 
-#: cups/notify.c:105 cups/notify.c:146
 msgid "stopped"
 msgstr "parado"
 
-#: cups/notify.c:108
 msgid "canceled"
 msgstr "cancelado"
 
-#: cups/notify.c:111
 msgid "aborted"
 msgstr "cancelado"
 
-#: cups/notify.c:114
 msgid "completed"
 msgstr "completado"
 
-#: cups/notify.c:117 cups/notify.c:149
 msgid "unknown"
 msgstr "desconocido"
 
-#: cups/notify.c:126
 msgid "untitled"
 msgstr "sin título"
 
-#: cups/notify.c:135
 msgid "Printer:"
 msgstr "Impresora:"
 
-#: cups/notify.c:140
 msgid "idle"
 msgstr "inactiva"
 
-#: scheduler/ipp.c:5513 scheduler/ipp.c:5482 scheduler/ipp.c:5498
 msgid "Missing notify-subscription-ids attribute!"
 msgstr "Atributo notify-subscription-ids desaparecido."
 
-#: scheduler/ipp.c:7851 scheduler/ipp.c:7341 scheduler/ipp.c:7357
 msgid "Job subscriptions cannot be renewed!"
 msgstr "Las suscripciones de trabajos no han podido ser renovadas."
 
-#: scheduler/main.c:163
 msgid "cupsd: Expected config filename after \"-c\" option!\n"
 msgstr ""
 "cupsd: Se esperaba un nombre de archivo de configuración tras la opción \"-c"
 "\".\n"
 
-#: scheduler/main.c:218
 msgid "cupsd: launchd(8) support not compiled in, running in normal mode.\n"
 msgstr ""
 "cupsd: el uso de launchd(8) no ha sido compilado, ejecutándose en modo "
 "normal.\n"
 
-#: scheduler/main.c:225
 #, c-format
 msgid "cupsd: Unknown option \"%c\" - aborting!\n"
 msgstr "cupsd: Opción \"%c\" desconocida - cancelando.\n"
 
-#: scheduler/main.c:232
 #, c-format
 msgid "cupsd: Unknown argument \"%s\" - aborting!\n"
 msgstr "cupsd: Argumento \"%s\" desconocido - cancelando.\n"
 
-#: scheduler/main.c:2315 scheduler/main.c:2329 scheduler/main.c:2304
 msgid ""
 "Usage: cupsd [-c config-file] [-f] [-F] [-h] [-l]\n"
 "\n"
@@ -3655,19 +2647,16 @@ msgstr ""
 "-h                  Muestra este mensaje de cómo se usa\n"
 "-l                  Ejecuta cupsd desde launchd(8)\n"
 
-#: systemv/cupstestppd.c:1343 systemv/cupstestppd.c:1543
 #, c-format
 msgid "        WARN    Line %d only contains whitespace!\n"
 msgstr "        ADVERTENCIA    La línea %d solo contiene espacios en blanco.\n"
 
-#: systemv/cupstestppd.c:1361 systemv/cupstestppd.c:1561
 msgid ""
 "        WARN    File contains a mix of CR, LF, and CR LF line endings!\n"
 msgstr ""
 "        ADVERTENCIA    El archivo contiene una mezcla de líneas acabadas en "
 "CR, LF y CR LF.\n"
 
-#: systemv/cupstestppd.c:1366 systemv/cupstestppd.c:1566
 msgid ""
 "        WARN    Non-Windows PPD files should use lines ending with only LF, "
 "not CR LF!\n"
@@ -3675,37 +2664,29 @@ msgstr ""
 "        ADVERTENCIA    Los archivos PPD que no sean de Windows deben tener "
 "líneas que acaben sólo en LF, no en CR LF.\n"
 
-#: cgi-bin/printers.c:218 cgi-bin/printers.c:289 cgi-bin/printers.c:223
-#: cgi-bin/printers.c:294
 msgid "Printer Maintenance"
 msgstr "Mantenimiento de impresora"
 
-#: cgi-bin/printers.c:292 cgi-bin/printers.c:297
 msgid "Unable to send maintenance job:"
 msgstr "No se ha podido enviar el trabajo de mantenimiento:"
 
-#: systemv/cupsaddsmb.c:566 systemv/cupsaddsmb.c:233
 #, c-format
 msgid "cupsaddsmb: No PPD file for printer \"%s\" - %s\n"
 msgstr "cupsaddsmb: No hay archivo PPD para la impresora \"%s\" - %s\n"
 
-#: systemv/cupstestppd.c:346
 #, c-format
 msgid "      **FAIL**  %s %s does not exist!\n"
 msgstr "      **FALLO**  %s %s no existe.\n"
 
-#: systemv/cupstestppd.c:1053
 #, c-format
 msgid "      **FAIL**  Bad language \"%s\"!\n"
 msgstr "      **FALLO**  Idioma incorrecto \"%s\".\n"
 
-#: systemv/cupstestppd.c:1078
 #, c-format
 msgid "      **FAIL**  Missing \"%s\" translation string for option %s!\n"
 msgstr ""
 "      **FALLO**  Cadena de traducción \"%s\" para opción %s desaparecida.\n"
 
-#: systemv/cupstestppd.c:1098
 #, c-format
 msgid ""
 "      **FAIL**  Default translation string for option %s contains 8-bit "
@@ -3714,7 +2695,6 @@ msgstr ""
 "      **FALLO**  Cadena de traducción predeterminada para opción %s contiene "
 "caracteres de 8-bits.\n"
 
-#: systemv/cupstestppd.c:1119
 #, c-format
 msgid ""
 "      **FAIL**  Missing \"%s\" translation string for option %s, choice %s!\n"
@@ -3722,7 +2702,6 @@ msgstr ""
 "      **FALLO**  Cadena de traducción \"%s\" para opción %s, preferencia %"
 "s.\n"
 
-#: systemv/cupstestppd.c:1141
 #, c-format
 msgid ""
 "      **FAIL**  Default translation string for option %s choice %s contains "
@@ -3731,82 +2710,68 @@ msgstr ""
 "      **FALLO**  Cadena de traducción predeterminada para opción %s "
 "preferencia %s contiene caracteres de 8-bits.\n"
 
-#: systemv/cupstestppd.c:1175
 #, c-format
 msgid "      **FAIL**  Bad cupsFilter value \"%s\"!\n"
 msgstr "      **FALLO**  Valor cupsFilter incorrecto \"%s\".\n"
 
-#: cgi-bin/help.c:98 cgi-bin/help.c:139 cgi-bin/help.c:149 cgi-bin/help.c:179
 msgid "Help"
 msgstr "Ayuda"
 
-#: cups/adminutil.c:233 cups/adminutil.c:246
 #, c-format
 msgid "Missing value on line %d!\n"
 msgstr "Falta un valor en la línea %d.\n"
 
-#: cups/adminutil.c:249 cups/adminutil.c:265
 #, c-format
 msgid "Missing double quote on line %d!\n"
 msgstr "Faltan dobles comillas en línea %d.\n"
 
-#: cups/adminutil.c:266 cups/adminutil.c:284
 #, c-format
 msgid "Bad option + choice on line %d!\n"
 msgstr "Opción incorrecta + preferencia en línea %s.\n"
 
-#: cups/adminutil.c:417
 #, c-format
 msgid "Unable to copy Windows 2000 printer driver files (%d)!\n"
 msgstr ""
 "No se han podido copiar los archivos del controlador de impresora de Windows "
 "2000 (%d).\n"
 
-#: cups/adminutil.c:445
 #, c-format
 msgid "Unable to copy CUPS printer driver files (%d)!\n"
 msgstr ""
 "No se han podido copiar los archivos del controlador de impresora de CUPS (%"
 "d).\n"
 
-#: cups/adminutil.c:480
 #, c-format
 msgid "Unable to install Windows 2000 printer driver files (%d)!\n"
 msgstr ""
 "No se han podido instalar los archivos del controlador de impresora de "
 "Windows 2000 (%d).\n"
 
-#: cups/adminutil.c:514
 #, c-format
 msgid "Unable to copy Windows 9x printer driver files (%d)!\n"
 msgstr ""
 "No se han podido copiar los archivos del controlador de impresora de Windows "
 "9x (%d).\n"
 
-#: cups/adminutil.c:536
 #, c-format
 msgid "Unable to install Windows 9x printer driver files (%d)!\n"
 msgstr ""
 "No se han podido instalar los archivos del controlador de impresora de "
 "Windows 9x (%d).\n"
 
-#: cups/adminutil.c:547
 msgid "No Windows printer drivers are installed!\n"
 msgstr "No está instalado ningún controlador de impresora de Windows.\n"
 
-#: cups/adminutil.c:550
 msgid "Warning, no Windows 2000 printer drivers are installed!\n"
 msgstr ""
 "Advertencia, no está instalado ningún controlador de impresora de Windows "
 "2000.\n"
 
-#: cups/adminutil.c:568 cups/adminutil.c:658
 #, c-format
 msgid "Unable to set Windows printer driver (%d)!\n"
 msgstr ""
 "No se ha podido configurar el controlador de impresora de Windows (%d).\n"
 
-#: systemv/cupsaddsmb.c:278
 msgid ""
 "Usage: cupsaddsmb [options] printer1 ... printerN\n"
 "       cupsaddsmb [options] -a\n"
@@ -3831,78 +2796,170 @@ msgstr ""
 "  -h servidor_cups   Usa el servidor CUPS especificado\n"
 "  -v               Ser detallado (mostrar comandos)\n"
 
-#: cups/adminutil.c:464
 #, c-format
 msgid "Unable to copy Windows 2000 printer driver files (%d)!"
 msgstr ""
 "No se han podido copiar los archivos del controlador de impresora de Windows "
 "2000 (%d)."
 
-#: cups/adminutil.c:499
 #, c-format
 msgid "Unable to copy CUPS printer driver files (%d)!"
 msgstr ""
 "No se han podido copiar los archivos del controlador de impresora de CUPS (%"
 "d)."
 
-#: cups/adminutil.c:542
 #, c-format
 msgid "Unable to install Windows 2000 printer driver files (%d)!"
 msgstr ""
 "No se han podido instalar los archivos del controlador de impresora de "
 "Windows 2000 (%d)."
 
-#: cups/adminutil.c:583
 #, c-format
 msgid "Unable to copy Windows 9x printer driver files (%d)!"
 msgstr ""
 "No se han podido copiar los archivos del controlador de impresora de Windows "
 "9x (%d)."
 
-#: cups/adminutil.c:612
 #, c-format
 msgid "Unable to install Windows 9x printer driver files (%d)!"
 msgstr ""
 "No se han podido instalar los archivos del controlador de impresora de "
 "Windows 9x (%d)."
 
-#: cups/adminutil.c:631
 msgid "No Windows printer drivers are installed!"
 msgstr "No está instalado ningún controlador de impresora de Windows."
 
-#: cups/adminutil.c:636
 msgid "Warning, no Windows 2000 printer drivers are installed!"
 msgstr ""
 "Advertencia, no está instalado ningún controlador de impresora de Windows "
 "2000."
 
-#: cups/adminutil.c:736
 #, c-format
 msgid "open of %s failed: %s"
 msgstr "la apertura de %s ha fallado: %s"
 
-#: cups/adminutil.c:1653
 #, c-format
 msgid "Running command: %s %s -N -A %s -c '%s'\n"
 msgstr "Ejecutando comando: %s %s -N -A '%s -c '%s'\n"
 
-#: cups/adminutil.c:1750
 #, c-format
 msgid "stat of %s failed: %s"
 msgstr "verificación de %s ha fallado: %s"
 
-#: scheduler/ipp.c:3021
 #, c-format
 msgid "Job #%d is already cancelled - can't cancel."
 msgstr "El trabajo #%d ya está cancelado - no se puede cancelar."
 
-#: scheduler/ipp.c:3027
 #, c-format
 msgid "Job #%d is already aborted - can't cancel."
 msgstr "El trabajo #%d ya está anulado - no se puede cancelar."
 
-#: scheduler/ipp.c:3033
 #, c-format
 msgid "Job #%d is already completed - can't cancel."
 msgstr "El trabajo #%d ya ha sido completado - no se puede cancelar."
 
+#, c-format
+msgid ""
+"You must access this page using the URL <A HREF=\"https://%s:%d%s\">https://%"
+"s:%d%s</A>."
+msgstr ""
+
+#, fuzzy, c-format
+msgid "Unsupported format '%s'!"
+msgstr "No se admite el uso del formato '%s/%s'."
+
+#, fuzzy
+msgid "FAIL\n"
+msgstr " FALLO\n"
+
+#, c-format
+msgid ""
+"    Line %d is longer than 255 characters (%d)!\n"
+"        REF: Page 25, Line Length\n"
+msgstr ""
+
+msgid ""
+"    Missing %!PS-Adobe-3.0 on first line!\n"
+"        REF: Page 17, 3.1 Conforming Documents\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"    Bad %%%%Pages: on line %d!\n"
+"        REF: Page 43, %%%%Pages:\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"    Bad %%%%BoundingBox: on line %d!\n"
+"        REF: Page 39, %%%%BoundingBox:\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"    Bad %%%%Page: on line %d!\n"
+"        REF: Page 53, %%%%Page:\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"    Missing or bad %%BoundingBox: comment!\n"
+"        REF: Page 39, %%BoundingBox:\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"    Missing or bad %%Pages: comment!\n"
+"        REF: Page 43, %%Pages:\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"    Missing %%EndComments comment!\n"
+"        REF: Page 41, %%EndComments\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"    Missing or bad %%Page: comments!\n"
+"        REF: Page 53, %%Page:\n"
+msgstr ""
+
+#, c-format
+msgid "    Too many %%EndDocument comments!\n"
+msgstr ""
+
+#, c-format
+msgid "    Too many %%BeginDocument comments!\n"
+msgstr ""
+
+#, c-format
+msgid "    Saw %d lines that exceeded 255 characters!\n"
+msgstr ""
+
+#, fuzzy
+msgid "PASS\n"
+msgstr " PASA\n"
+
+msgid "    Warning: file contains binary data!\n"
+msgstr ""
+
+#, c-format
+msgid "    Warning: obsolete DSC version %.1f in file!\n"
+msgstr ""
+
+#, c-format
+msgid "    Warning: no %%EndComments comment in file!\n"
+msgstr ""
+
+msgid ""
+"Usage: cupstestdsc [options] filename.ps [... filename.ps]\n"
+"       cupstestdsc [options] -\n"
+"\n"
+"Options:\n"
+"\n"
+"    -h       Show program usage\n"
+"\n"
+"    Note: this program only validates the DSC comments, not the PostScript "
+"itself.\n"
+msgstr ""
index 2dffe55d8773375e734466cfee2cb097ce81580e..0a6f7d2f5e9cd8506b71d44543ad0e40d233e0d7 100644 (file)
@@ -25,7 +25,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: CUPS 1.2\n"
 "Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
-"POT-Creation-Date: 2006-03-13 08:39-0500\n"
+"POT-Creation-Date: 2006-03-23 21:52-0500\n"
 "PO-Revision-Date: 2006-03-14 09:29+0900\n"
 "Last-Translator: Kenshi Muto <kmuto@debian.org>\n"
 "Language-Team: Japanese <LL@li.org>\n"
@@ -33,80 +33,48 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: cgi-bin/admin.c:1276 cgi-bin/admin.c:1154 cgi-bin/admin.c:1195
-#: cgi-bin/admin.c:1203
 msgid "Options Installed"
 msgstr "インストールされたオプション"
 
-#: cgi-bin/classes.c:103
 msgid "Class"
 msgstr "クラス"
 
-#: cgi-bin/printers.c:104
 msgid "Printer"
 msgstr "プリンタ"
 
-#: cups/ppd.c:654 cups/ppd.c:1045 cups/ppd.c:660 cups/ppd.c:1167
 msgid "Extra"
 msgstr "補助"
 
-#: cups/ppd.c:656 cups/ppd.c:881 cups/ppd.c:1047 cups/ppd.c:662 cups/ppd.c:996
-#: cups/ppd.c:1169 cups/ppd.c:651 cups/ppd.c:983 cups/ppd.c:1148
-#: cups/ppd.c:972 cups/ppd.c:1137 cups/ppd.c:646 cups/ppd.c:973
-#: cups/ppd.c:1138 cups/ppd.c:970 cups/ppd.c:1135
 msgid "General"
 msgstr "一般"
 
-#: cups/ppd.c:704 cups/ppd.c:1105 cups/ppd.c:710 cups/ppd.c:1224
-#: cups/ppd.c:697 cups/ppd.c:1201 cups/ppd.c:1190 cups/ppd.c:692
-#: cups/ppd.c:1191 cups/ppd.c:1188
 msgid "Media Size"
 msgstr "用紙サイズ"
 
-#: cups/ppd.c:706 cups/ppd.c:1107 cups/ppd.c:712 cups/ppd.c:1226
-#: cups/ppd.c:699 cups/ppd.c:1203 cups/ppd.c:1192 cups/ppd.c:694
-#: cups/ppd.c:1193 cups/ppd.c:1190
 msgid "Media Type"
 msgstr "用紙形式"
 
-#: cups/ppd.c:708 cups/ppd.c:1109 cups/ppd.c:714 cups/ppd.c:1228
-#: cups/ppd.c:701 cups/ppd.c:1205 cups/ppd.c:1194 cups/ppd.c:696
-#: cups/ppd.c:1195 cups/ppd.c:1192
 msgid "Media Source"
 msgstr "給紙"
 
-#: cups/ppd.c:710 cups/ppd.c:1111 cups/ppd.c:716 cups/ppd.c:1230
-#: cups/ppd.c:703 cups/ppd.c:1207 cups/ppd.c:1196 cups/ppd.c:698
-#: cups/ppd.c:1197 cups/ppd.c:1194
 msgid "Output Mode"
 msgstr "出力モード"
 
-#: cups/ppd.c:712 cups/ppd.c:1113 cups/ppd.c:718 cups/ppd.c:1232
-#: cups/ppd.c:705 cups/ppd.c:1209 cups/ppd.c:1198 cups/ppd.c:700
-#: cups/ppd.c:1199 cups/ppd.c:1196
 msgid "Resolution"
 msgstr "解像度"
 
-#: cups/ppd.c:907
 msgid "Variable"
 msgstr "可変"
 
-#: cups/ppd.c:1535 cups/ppd.c:1650 cups/ppd.c:1627 cups/ppd.c:1616
-#: cups/ppd.c:1622 cups/ppd.c:1619
 msgid "Yes"
 msgstr "はい"
 
-#: cups/ppd.c:1537 cups/ppd.c:1652 cups/ppd.c:1629 cups/ppd.c:1618
-#: cups/ppd.c:1624 cups/ppd.c:1621
 msgid "No"
 msgstr "いいえ"
 
-#: cups/ppd.c:1824
 msgid "Auto"
 msgstr "自動"
 
-#: scheduler/client.c:2247 scheduler/client.c:2251 scheduler/client.c:2274
-#: scheduler/client.c:2308 scheduler/client.c:2349 scheduler/client.c:2350
 msgid ""
 "Enter your username and password or the root username and password to access "
 "this page."
@@ -114,157 +82,87 @@ msgstr ""
 "このページにアクセスするために、あなたのユーザ名とパスワード、あるいは root "
 "のユーザ名とパスワードを入力してください。"
 
-#: scheduler/client.c:2252 scheduler/client.c:2256 scheduler/client.c:2279
-#: scheduler/client.c:2313 scheduler/client.c:2354 scheduler/client.c:2355
 msgid "You must use a https: URL to access this page."
 msgstr "このページにアクセスするためには、https: URL を使う必要があります。"
 
-#: scheduler/ipp.c:236 scheduler/ipp.c:244 scheduler/ipp.c:246
-#: scheduler/ipp.c:260
 #, c-format
 msgid "Bad request version number %d.%d!"
 msgstr "バージョン番号 %d.%d は無効なリクエストです!"
 
-#: scheduler/ipp.c:246 scheduler/ipp.c:254 scheduler/ipp.c:256
-#: scheduler/ipp.c:270
 msgid "No attributes in request!"
 msgstr "リクエストに属性がありません!"
 
-#: scheduler/ipp.c:269 scheduler/ipp.c:277 scheduler/ipp.c:279
-#: scheduler/ipp.c:293
 #, c-format
 msgid "Attribute groups are out of order (%x < %x)!"
 msgstr "属性グループは範囲外です (%x < %x)!"
 
-#: scheduler/ipp.c:379 scheduler/ipp.c:389 scheduler/ipp.c:391
-#: scheduler/ipp.c:405
 msgid "Missing required attributes!"
 msgstr "必須の属性が設定されていません!"
 
-#: scheduler/ipp.c:575 scheduler/ipp.c:585 scheduler/ipp.c:591
-#: scheduler/ipp.c:605
 #, c-format
 msgid "%s not supported!"
 msgstr "%s はサポートされていません!"
 
-#: scheduler/ipp.c:684 scheduler/ipp.c:1055 scheduler/ipp.c:2271
-#: scheduler/ipp.c:2383 scheduler/ipp.c:3707 scheduler/ipp.c:4417
-#: scheduler/ipp.c:4649 scheduler/ipp.c:5002 scheduler/ipp.c:5445
-#: scheduler/ipp.c:5890 scheduler/ipp.c:6245 scheduler/ipp.c:6609
-#: scheduler/ipp.c:7308 scheduler/ipp.c:8179 scheduler/ipp.c:8585
-#: scheduler/ipp.c:8663 scheduler/ipp.c:8836 scheduler/ipp.c:696
-#: scheduler/ipp.c:1079 scheduler/ipp.c:2318 scheduler/ipp.c:2433
-#: scheduler/ipp.c:3901 scheduler/ipp.c:4621 scheduler/ipp.c:4855
-#: scheduler/ipp.c:5237 scheduler/ipp.c:5526 scheduler/ipp.c:5834
-#: scheduler/ipp.c:6113 scheduler/ipp.c:6155 scheduler/ipp.c:6657
-#: scheduler/ipp.c:7365 scheduler/ipp.c:8251 scheduler/ipp.c:8662
-#: scheduler/ipp.c:8742 scheduler/ipp.c:8917 scheduler/ipp.c:702
-#: scheduler/ipp.c:1093 scheduler/ipp.c:2357 scheduler/ipp.c:2472
-#: scheduler/ipp.c:3993 scheduler/ipp.c:4730 scheduler/ipp.c:4973
-#: scheduler/ipp.c:5357 scheduler/ipp.c:5769 scheduler/ipp.c:6077
-#: scheduler/ipp.c:6368 scheduler/ipp.c:6410 scheduler/ipp.c:6916
-#: scheduler/ipp.c:7626 scheduler/ipp.c:8589 scheduler/ipp.c:9003
-#: scheduler/ipp.c:9084 scheduler/ipp.c:9259 scheduler/ipp.c:716
-#: scheduler/ipp.c:1003 scheduler/ipp.c:1174 scheduler/ipp.c:2812
-#: scheduler/ipp.c:2927 scheduler/ipp.c:4699 scheduler/ipp.c:4942
-#: scheduler/ipp.c:5326 scheduler/ipp.c:5738 scheduler/ipp.c:6046
-#: scheduler/ipp.c:6337 scheduler/ipp.c:6379 scheduler/ipp.c:7116
-#: scheduler/ipp.c:8081 scheduler/ipp.c:8745 scheduler/ipp.c:8826
-#: scheduler/ipp.c:9001 scheduler/ipp.c:4715 scheduler/ipp.c:4958
-#: scheduler/ipp.c:5342 scheduler/ipp.c:5754 scheduler/ipp.c:6062
-#: scheduler/ipp.c:6353 scheduler/ipp.c:6395 scheduler/ipp.c:7132
-#: scheduler/ipp.c:8097 scheduler/ipp.c:8761 scheduler/ipp.c:8842
-#: scheduler/ipp.c:9017
 msgid "The printer or class was not found."
 msgstr "プリンタまたはクラスが見つかりませんでした。"
 
-#: scheduler/ipp.c:762 scheduler/ipp.c:777 scheduler/ipp.c:784
-#: scheduler/ipp.c:799
 msgid ""
 "The printer-uri must be of the form \"ipp://HOSTNAME/classes/CLASSNAME\"."
 msgstr ""
 "printer-uri は、\"ipp://ホスト名/classes/クラス名\" 形式でなければなりませ"
 "ん。"
 
-#: scheduler/ipp.c:778 scheduler/ipp.c:1454 scheduler/ipp.c:793
-#: scheduler/ipp.c:1482 scheduler/ipp.c:800 scheduler/ipp.c:1515
-#: scheduler/ipp.c:815 scheduler/ipp.c:2031
 #, c-format
 msgid "The printer-uri \"%s\" contains invalid characters."
 msgstr "printer-uri \"%s\" には、無効な文字が含まれています。"
 
-#: scheduler/ipp.c:811 scheduler/ipp.c:826 scheduler/ipp.c:833
-#: scheduler/ipp.c:848
 #, c-format
 msgid "A printer named \"%s\" already exists!"
 msgstr "プリンタ名 \"%s\" はすでに存在します!"
 
-#: scheduler/ipp.c:904 scheduler/ipp.c:924 scheduler/ipp.c:933
-#: scheduler/ipp.c:944
 #, c-format
 msgid "Attempt to set %s printer-state to bad value %d!"
 msgstr "%s printer-state に 不正な値 %d を設定しようとしています!"
 
-#: scheduler/ipp.c:1000 scheduler/ipp.c:1022 scheduler/ipp.c:1034
 #, c-format
 msgid "add_class: Unknown printer-op-policy \"%s\"."
 msgstr "add_class: \"%s\" は未知の printer-op-policy です。"
 
-#: scheduler/ipp.c:1013 scheduler/ipp.c:1035 scheduler/ipp.c:1047
 #, c-format
 msgid "add_class: Unknown printer-error-policy \"%s\"."
 msgstr "add_class: \"%s\" は未知の printer-error-policy です。"
 
-#: scheduler/ipp.c:1144 scheduler/ipp.c:1168 scheduler/ipp.c:1200
-#: scheduler/ipp.c:1112
 msgid "Unable to allocate memory for file types!"
 msgstr "ファイルタイプ用にメモリを割り当てられません!"
 
-#: scheduler/ipp.c:1290 scheduler/ipp.c:4501 scheduler/ipp.c:1316
-#: scheduler/ipp.c:4705 scheduler/ipp.c:1348 scheduler/ipp.c:4804
-#: scheduler/ipp.c:1810 scheduler/ipp.c:4773 scheduler/ipp.c:4789
 #, c-format
 msgid "Character set \"%s\" not supported!"
 msgstr "文字セット \"%s\" はサポートされていません!"
 
-#: scheduler/ipp.c:1299 scheduler/ipp.c:4510 scheduler/ipp.c:1325
-#: scheduler/ipp.c:4714 scheduler/ipp.c:1357 scheduler/ipp.c:4813
-#: scheduler/ipp.c:1819 scheduler/ipp.c:4782 scheduler/ipp.c:4798
 #, c-format
 msgid "Language \"%s\" not supported!"
 msgstr "言語 \"%s\" はサポートされていません!"
 
-#: scheduler/ipp.c:1309 scheduler/ipp.c:4520 scheduler/ipp.c:1335
-#: scheduler/ipp.c:4724 scheduler/ipp.c:1367 scheduler/ipp.c:4823
-#: scheduler/ipp.c:1829 scheduler/ipp.c:4792 scheduler/ipp.c:4808
 #, c-format
 msgid "The notify-user-data value is too large (%d > 63 octets)!"
 msgstr "notify-user-data 値が大きすぎます (%d > 63 オクテット)!"
 
-#: scheduler/ipp.c:1326 scheduler/ipp.c:1352 scheduler/ipp.c:1384
-#: scheduler/ipp.c:1846
 msgid ""
 "The notify-lease-duration attribute cannot be used with job subscriptions."
 msgstr ""
 "notify-lease-duration 属性は、ジョブサブスクリプションと一緒に使うことはでき"
 "ません。"
 
-#: scheduler/ipp.c:1438 scheduler/ipp.c:1466 scheduler/ipp.c:1499
-#: scheduler/ipp.c:2015
 msgid ""
 "The printer-uri must be of the form \"ipp://HOSTNAME/printers/PRINTERNAME\"."
 msgstr ""
 "printer-uri は \"ipp://ホスト名/printers/プリンタ名\" 形式でなければなりませ"
 "ん。"
 
-#: scheduler/ipp.c:1487 scheduler/ipp.c:1515 scheduler/ipp.c:1548
-#: scheduler/ipp.c:2064
 #, c-format
 msgid "A class named \"%s\" already exists!"
 msgstr "クラス名 \"%s\" はすでに存在します!"
 
-#: scheduler/ipp.c:1575 scheduler/ipp.c:1607 scheduler/ipp.c:1644
-#: scheduler/ipp.c:2157
 #, c-format
 msgid ""
 "File device URIs have been disabled! To enable, see the FileDevice directive "
@@ -273,430 +171,252 @@ msgstr ""
 "ファイルデバイス URI は無効になっています! 有効にするために、\"%s/cupsd.conf"
 "\" の FileDevice ディレクティブを確認してください。"
 
-#: scheduler/ipp.c:1595 scheduler/ipp.c:1627 scheduler/ipp.c:1664
-#: scheduler/ipp.c:2177
 #, c-format
 msgid "Bad device-uri \"%s\"!"
 msgstr "\"%s\" は無効な device-uri です!"
 
-#: scheduler/ipp.c:1626 scheduler/ipp.c:1659 scheduler/ipp.c:1698
-#: scheduler/ipp.c:2211
 #, c-format
 msgid "Bad port-monitor \"%s\"!"
 msgstr "\"%s\" は無効な port-monitor です!"
 
-#: scheduler/ipp.c:1669 scheduler/ipp.c:1705 scheduler/ipp.c:1744
-#: scheduler/ipp.c:2257
 #, c-format
 msgid "Bad printer-state value %d!"
 msgstr "%d は無効な printer-state 値です!"
 
-#: scheduler/ipp.c:1762 scheduler/ipp.c:1800 scheduler/ipp.c:1842
-#: scheduler/ipp.c:8585 scheduler/ipp.c:8601
 #, c-format
 msgid "Unknown printer-op-policy \"%s\"."
 msgstr "\"%s\" は未知の printer-op-policy です。"
 
-#: scheduler/ipp.c:1775 scheduler/ipp.c:1813 scheduler/ipp.c:1855
-#: scheduler/ipp.c:8600 scheduler/ipp.c:8616
 #, c-format
 msgid "Unknown printer-error-policy \"%s\"."
 msgstr "\"%s\" は未知の printer-error-policy です。"
 
-#: scheduler/ipp.c:1837 scheduler/ipp.c:1875 scheduler/ipp.c:1919
-#: scheduler/ipp.c:2336
 #, c-format
 msgid "Unable to copy interface script - %s!"
 msgstr "インターフェイススクリプトをコピーできません - %s!"
 
-#: scheduler/ipp.c:1862 scheduler/ipp.c:1900 scheduler/ipp.c:1944
-#: scheduler/ipp.c:2361
 #, c-format
 msgid "Unable to copy PPD file - %s!"
 msgstr " PPD ファイルをコピーできません - %s!"
 
-#: scheduler/ipp.c:1915 scheduler/ipp.c:1954 scheduler/ipp.c:2000
-#: scheduler/ipp.c:2417
 msgid "Unable to copy PPD file!"
 msgstr "PPD ファイルをコピーできません!"
 
-#: scheduler/ipp.c:2076 scheduler/ipp.c:2364 scheduler/ipp.c:5188
-#: scheduler/ipp.c:6008 scheduler/ipp.c:6147 scheduler/ipp.c:7394
-#: scheduler/ipp.c:7538 scheduler/ipp.c:7776 scheduler/ipp.c:8261
-#: scheduler/ipp.c:2116 scheduler/ipp.c:2412 scheduler/ipp.c:5102
-#: scheduler/ipp.c:5955 scheduler/ipp.c:7452 scheduler/ipp.c:7599
-#: scheduler/ipp.c:7839 scheduler/ipp.c:8334 scheduler/ipp.c:2158
-#: scheduler/ipp.c:2451 scheduler/ipp.c:5220 scheduler/ipp.c:6210
-#: scheduler/ipp.c:7713 scheduler/ipp.c:7928 scheduler/ipp.c:8167
-#: scheduler/ipp.c:8672 scheduler/ipp.c:2613 scheduler/ipp.c:2906
-#: scheduler/ipp.c:5189 scheduler/ipp.c:6179 scheduler/ipp.c:7203
-#: scheduler/ipp.c:7418 scheduler/ipp.c:7657 scheduler/ipp.c:8164
-#: scheduler/ipp.c:5205 scheduler/ipp.c:6195 scheduler/ipp.c:7219
-#: scheduler/ipp.c:7434 scheduler/ipp.c:7673 scheduler/ipp.c:8180
 msgid "Got a printer-uri attribute but no job-id!"
 msgstr "printer-uri 属性を取得しましたが、job-id を取得できませんでした!"
 
-#: scheduler/ipp.c:2097 scheduler/ipp.c:2433 scheduler/ipp.c:5210
-#: scheduler/ipp.c:6029 scheduler/ipp.c:6169 scheduler/ipp.c:7416
-#: scheduler/ipp.c:7560 scheduler/ipp.c:7797 scheduler/ipp.c:8282
-#: scheduler/ipp.c:2138 scheduler/ipp.c:2484 scheduler/ipp.c:5125
-#: scheduler/ipp.c:5978 scheduler/ipp.c:6201 scheduler/ipp.c:7475
-#: scheduler/ipp.c:7622 scheduler/ipp.c:7862 scheduler/ipp.c:8357
-#: scheduler/ipp.c:2180 scheduler/ipp.c:2523 scheduler/ipp.c:5243
-#: scheduler/ipp.c:6233 scheduler/ipp.c:6456 scheduler/ipp.c:7736
-#: scheduler/ipp.c:7951 scheduler/ipp.c:8190 scheduler/ipp.c:8695
-#: scheduler/ipp.c:2635 scheduler/ipp.c:2978 scheduler/ipp.c:5212
-#: scheduler/ipp.c:6202 scheduler/ipp.c:6425 scheduler/ipp.c:7226
-#: scheduler/ipp.c:7441 scheduler/ipp.c:7680 scheduler/ipp.c:8187
-#: scheduler/ipp.c:5228 scheduler/ipp.c:6218 scheduler/ipp.c:6441
-#: scheduler/ipp.c:7242 scheduler/ipp.c:7457 scheduler/ipp.c:7696
-#: scheduler/ipp.c:8203
 #, c-format
 msgid "Bad job-uri attribute \"%s\"!"
 msgstr "\"%s\" は無効な job-uri 属性です!"
 
-#: scheduler/ipp.c:2116 scheduler/ipp.c:2451 scheduler/ipp.c:5228
-#: scheduler/ipp.c:6047 scheduler/ipp.c:6188 scheduler/ipp.c:7434
-#: scheduler/ipp.c:7578 scheduler/ipp.c:7815 scheduler/ipp.c:8300
 #, c-format
 msgid "Job #%d doesn't exist!"
 msgstr "ジョブ #%d は存在しません!"
 
-#: scheduler/ipp.c:2131 scheduler/ipp.c:2172 scheduler/ipp.c:2214
-#: scheduler/ipp.c:2669
 #, c-format
 msgid "Job #%d is not held for authentication!"
 msgstr "ジョブ #%d は認証が行われていません!"
 
-#: scheduler/ipp.c:2153 scheduler/ipp.c:2195
 #, c-format
 msgid "You are not authorized to authenticate job #%d owned by \"%s\"!"
 msgstr ""
 "あなたは \"%2$s\" の所有しているジョブ #%1$d を証明することを許可されていませ"
 "ん!"
 
-#: scheduler/ipp.c:2221 scheduler/ipp.c:2264 scheduler/ipp.c:2303
-#: scheduler/ipp.c:2758
 msgid "The printer-uri attribute is required!"
 msgstr "printer-uri 属性は必須です!"
 
-#: scheduler/ipp.c:2238 scheduler/ipp.c:2283 scheduler/ipp.c:2322
-#: scheduler/ipp.c:2777
 msgid "Missing requesting-user-name attribute!"
 msgstr "requesting-user-name 属性が設定されていません!"
 
-#: scheduler/ipp.c:2277 scheduler/ipp.c:2324 scheduler/ipp.c:2363
-#: scheduler/ipp.c:2818
 #, c-format
 msgid "The printer-uri \"%s\" is not valid."
 msgstr "printer-uri \"%s\" は有効ではありません。"
 
-#: scheduler/ipp.c:2410 scheduler/ipp.c:2460 scheduler/ipp.c:2499
-#: scheduler/ipp.c:2954
 #, c-format
 msgid "No active jobs on %s!"
 msgstr "%s にはアクティブなジョブはありません!"
 
-#: scheduler/ipp.c:2462 scheduler/ipp.c:2513
 #, c-format
 msgid "You are not authorized to delete job #%d owned by \"%s\"!"
 msgstr ""
 "あなたは \"%2$s\" の所有しているジョブ #%1$d を削除することを許可されていませ"
 "ん!"
 
-#: scheduler/ipp.c:2476 scheduler/ipp.c:2527 scheduler/ipp.c:2563
-#: scheduler/ipp.c:3018
 #, c-format
 msgid "Job #%d is already %s - can't cancel."
 msgstr "ジョブ #%d はすでに %s です - キャンセルできません。"
 
-#: scheduler/ipp.c:3720 scheduler/ipp.c:3914 scheduler/ipp.c:4006
-#: scheduler/ipp.c:1190
 msgid "The printer or class is not shared!"
 msgstr "プリンタまたはクラスは共有できません!"
 
-#: scheduler/ipp.c:3746 scheduler/ipp.c:6647 scheduler/ipp.c:3940
-#: scheduler/ipp.c:6695 scheduler/ipp.c:4032 scheduler/ipp.c:6954
-#: scheduler/ipp.c:1216
 #, c-format
 msgid "Destination \"%s\" is not accepting jobs."
 msgstr "宛先 \"%s\" はジョブを受け付けていません。"
 
-#: scheduler/ipp.c:3759 scheduler/ipp.c:6443 scheduler/ipp.c:3954
-#: scheduler/ipp.c:6487 scheduler/ipp.c:4046 scheduler/ipp.c:6739
-#: scheduler/ipp.c:1230
 #, c-format
 msgid "Bad copies value %d."
 msgstr "%d は不正なコピー値です。"
 
-#: scheduler/ipp.c:3775 scheduler/ipp.c:6459 scheduler/ipp.c:3971
-#: scheduler/ipp.c:6504 scheduler/ipp.c:4063 scheduler/ipp.c:6756
-#: scheduler/ipp.c:1247
 #, c-format
 msgid "Bad page-ranges values %d-%d."
 msgstr "%d-%d は不正な page-ranges 値です。"
 
-#: scheduler/ipp.c:3795 scheduler/ipp.c:3991 scheduler/ipp.c:4083
-#: scheduler/ipp.c:1267
 msgid "Too many active jobs."
 msgstr "アクティブなジョブが多すぎます。"
 
-#: scheduler/ipp.c:3801 scheduler/ipp.c:6668 scheduler/ipp.c:3997
-#: scheduler/ipp.c:6716 scheduler/ipp.c:4089 scheduler/ipp.c:6975
-#: scheduler/ipp.c:1273
 msgid "Quota limit reached."
 msgstr "Quota の制限に達しました。"
 
-#: scheduler/ipp.c:3824 scheduler/ipp.c:6691 scheduler/ipp.c:4022
-#: scheduler/ipp.c:6741 scheduler/ipp.c:4114 scheduler/ipp.c:7000
-#: scheduler/ipp.c:1306
 #, c-format
 msgid "Unable to add job for destination \"%s\"!"
 msgstr "宛先 \"%s\" にジョブを追加できません!"
 
-#: scheduler/ipp.c:4469 scheduler/ipp.c:4673 scheduler/ipp.c:4770
-#: scheduler/ipp.c:4739 scheduler/ipp.c:4755
 msgid "No subscription attributes in request!"
 msgstr "リクエストにサブスクリプション属性がありません!"
 
-#: scheduler/ipp.c:4559 scheduler/ipp.c:4763 scheduler/ipp.c:4869
-#: scheduler/ipp.c:4838 scheduler/ipp.c:4854
 msgid "notify-events not specified!"
 msgstr "notify-events が指定されていません!"
 
-#: scheduler/ipp.c:4577 scheduler/ipp.c:4781 scheduler/ipp.c:4887
-#: scheduler/ipp.c:4856 scheduler/ipp.c:4872
 #, c-format
 msgid "Job %d not found!"
 msgstr "ジョブ %d は見つかりません!"
 
-#: scheduler/ipp.c:4827 scheduler/ipp.c:4957 scheduler/ipp.c:5075
-#: scheduler/ipp.c:5044 scheduler/ipp.c:5060
 msgid "No default printer"
 msgstr "デフォルトプリンタはありません"
 
-#: scheduler/ipp.c:4930 scheduler/ipp.c:5060 scheduler/ipp.c:5178
-#: scheduler/ipp.c:5147 scheduler/ipp.c:5163
 msgid "cups-deviced failed to execute."
 msgstr "cups-deviced の実行に失敗しました。"
 
-#: scheduler/ipp.c:5393 scheduler/ipp.c:5479 scheduler/ipp.c:5722
-#: scheduler/ipp.c:5691 scheduler/ipp.c:5707
 msgid "cups-driverd failed to execute."
 msgstr "cups-driverd の実行に失敗しました。"
 
-#: scheduler/ipp.c:5571 scheduler/ipp.c:5594 scheduler/ipp.c:5837
-#: scheduler/ipp.c:5806 scheduler/ipp.c:5822
 msgid "No destinations added."
 msgstr "追加された宛先はありません。"
 
-#: scheduler/ipp.c:5794 scheduler/ipp.c:5736 scheduler/ipp.c:2615
-#: scheduler/ipp.c:5530 scheduler/ipp.c:5979 scheduler/ipp.c:7840
-#: scheduler/ipp.c:3070 scheduler/ipp.c:5499 scheduler/ipp.c:5948
-#: scheduler/ipp.c:7330 scheduler/ipp.c:3086 scheduler/ipp.c:5515
-#: scheduler/ipp.c:5964 scheduler/ipp.c:7346
 #, c-format
 msgid "notify-subscription-id %d no good!"
 msgstr "notify-subscription-id %d は良くありません!"
 
-#: scheduler/ipp.c:5878 scheduler/ipp.c:5822 scheduler/ipp.c:6065
-#: scheduler/ipp.c:6034 scheduler/ipp.c:6050
 #, c-format
 msgid "Job #%s does not exist!"
 msgstr "ジョブ #%s は存在しません!"
 
-#: scheduler/ipp.c:5900 scheduler/ipp.c:2116 scheduler/ipp.c:2451
-#: scheduler/ipp.c:5228 scheduler/ipp.c:6047 scheduler/ipp.c:6188
-#: scheduler/ipp.c:7434 scheduler/ipp.c:7578 scheduler/ipp.c:7815
-#: scheduler/ipp.c:8300 scheduler/ipp.c:2157 scheduler/ipp.c:2502
-#: scheduler/ipp.c:5143 scheduler/ipp.c:5844 scheduler/ipp.c:5996
-#: scheduler/ipp.c:6174 scheduler/ipp.c:6219 scheduler/ipp.c:7493
-#: scheduler/ipp.c:7640 scheduler/ipp.c:7880 scheduler/ipp.c:8375
-#: scheduler/ipp.c:2199 scheduler/ipp.c:2541 scheduler/ipp.c:5261
-#: scheduler/ipp.c:6087 scheduler/ipp.c:6251 scheduler/ipp.c:6429
-#: scheduler/ipp.c:6474 scheduler/ipp.c:7754 scheduler/ipp.c:7969
-#: scheduler/ipp.c:8208 scheduler/ipp.c:8713 scheduler/ipp.c:2654
-#: scheduler/ipp.c:2996 scheduler/ipp.c:5230 scheduler/ipp.c:6056
-#: scheduler/ipp.c:6220 scheduler/ipp.c:6398 scheduler/ipp.c:6443
-#: scheduler/ipp.c:7244 scheduler/ipp.c:7459 scheduler/ipp.c:7698
-#: scheduler/ipp.c:8205 scheduler/ipp.c:5246 scheduler/ipp.c:6072
-#: scheduler/ipp.c:6236 scheduler/ipp.c:6414 scheduler/ipp.c:6459
-#: scheduler/ipp.c:7260 scheduler/ipp.c:7475 scheduler/ipp.c:7714
-#: scheduler/ipp.c:8221
 #, c-format
 msgid "Job #%d does not exist!"
 msgstr "ジョブ #%d は存在しません!"
 
-#: scheduler/ipp.c:5969 scheduler/ipp.c:5915 scheduler/ipp.c:6150
-#: scheduler/ipp.c:6119 scheduler/ipp.c:6135
 msgid "No subscriptions found."
 msgstr "サブスクリプションが見つかりません。"
 
-#: scheduler/ipp.c:6058 scheduler/ipp.c:6007
 #, c-format
 msgid "Not authorized to hold job #%d owned by \"%s\"!"
 msgstr ""
 "\"%2$s\" の所有しているジョブ #%1$d をホールドすることを許可されていません!"
 
-#: scheduler/ipp.c:6203 scheduler/ipp.c:8315 scheduler/ipp.c:6250
-#: scheduler/ipp.c:8390 scheduler/ipp.c:6505 scheduler/ipp.c:8728
-#: scheduler/ipp.c:6474 scheduler/ipp.c:8220 scheduler/ipp.c:6490
-#: scheduler/ipp.c:8236
 #, c-format
 msgid "Job #%d is finished and cannot be altered!"
 msgstr "ジョブ #%d は完了し、変更することはできません!"
 
-#: scheduler/ipp.c:6215 scheduler/ipp.c:6262
 #, c-format
 msgid "You are not authorized to move job #%d owned by \"%s\"!"
 msgstr ""
 "あなたは \"%2$s\" の所有しているジョブ #%1$d を移動することを許可されていませ"
 "ん!"
 
-#: scheduler/ipp.c:6228 scheduler/ipp.c:6098 scheduler/ipp.c:6353
-#: scheduler/ipp.c:6322 scheduler/ipp.c:6338
 msgid "job-printer-uri attribute missing!"
 msgstr "job-printer-uri 属性がありません!"
 
-#: scheduler/ipp.c:6485 scheduler/ipp.c:7847 scheduler/ipp.c:6531
-#: scheduler/ipp.c:7913 scheduler/ipp.c:6783 scheduler/ipp.c:8238
-#: scheduler/ipp.c:6703 scheduler/ipp.c:7728 scheduler/ipp.c:6719
-#: scheduler/ipp.c:7744
 #, c-format
 msgid "Unsupported compression \"%s\"!"
 msgstr "\"%s\" はサポートされていない圧縮です!"
 
-#: scheduler/ipp.c:6504 scheduler/ipp.c:7866 scheduler/ipp.c:6550
-#: scheduler/ipp.c:7932 scheduler/ipp.c:6802 scheduler/ipp.c:8257
-#: scheduler/ipp.c:6722 scheduler/ipp.c:7747 scheduler/ipp.c:6738
-#: scheduler/ipp.c:7763
 msgid "No file!?!"
 msgstr "ファイルがありません!?!"
 
-#: scheduler/ipp.c:6522 scheduler/ipp.c:6568 scheduler/ipp.c:6820
-#: scheduler/ipp.c:6740 scheduler/ipp.c:6756
 #, c-format
 msgid "Could not scan type \"%s\"!"
 msgstr "タイプ \"%s\" を検査できませんでした!"
 
-#: scheduler/ipp.c:6574 scheduler/ipp.c:7936 scheduler/ipp.c:6620
-#: scheduler/ipp.c:8001 scheduler/ipp.c:6879 scheduler/ipp.c:8332
-#: scheduler/ipp.c:6799 scheduler/ipp.c:7822 scheduler/ipp.c:6815
-#: scheduler/ipp.c:7838
 #, c-format
 msgid "Unsupported format '%s/%s'!"
 msgstr "'%s/%s' はサポートされていない形式です!"
 
-#: scheduler/ipp.c:6621 scheduler/ipp.c:6669 scheduler/ipp.c:6928
 msgid "Printer not shared!"
 msgstr "プリンタは共有されていません!"
 
-#: scheduler/ipp.c:6661 scheduler/ipp.c:6709 scheduler/ipp.c:6968
 #, c-format
 msgid "Too many jobs - %d jobs, max jobs is %d."
 msgstr "ジョブが多すぎます - %d ジョブ。最大ジョブ数は %d です。"
 
-#: scheduler/ipp.c:7448 scheduler/ipp.c:7507 scheduler/ipp.c:7768
-#: scheduler/ipp.c:7258 scheduler/ipp.c:7274
 #, c-format
 msgid "Job #%d is not held!"
 msgstr "ジョブ #%d はホールドされていません!"
 
-#: scheduler/ipp.c:7459 scheduler/ipp.c:7518
 #, c-format
 msgid "You are not authorized to release job id %d owned by \"%s\"!"
 msgstr ""
 "あなたは \"%2$s\" の所有しているジョブ ID %1$d を解放することを許可されていま"
 "せん!"
 
-#: scheduler/ipp.c:7592 scheduler/ipp.c:7654 scheduler/ipp.c:7983
-#: scheduler/ipp.c:7473 scheduler/ipp.c:7489
 #, c-format
 msgid "Job #%d is not complete!"
 msgstr "ジョブ #%d は完結していません!"
 
-#: scheduler/ipp.c:7608 scheduler/ipp.c:7670 scheduler/ipp.c:8001
-#: scheduler/ipp.c:7491 scheduler/ipp.c:7507
 #, c-format
 msgid "Job #%d cannot be restarted - no files!"
 msgstr "ジョブ #%d は再起動できません - ファイルがありません!"
 
-#: scheduler/ipp.c:7619 scheduler/ipp.c:7681
 #, c-format
 msgid "You are not authorized to restart job id %d owned by \"%s\"!"
 msgstr ""
 "あなたは \"%2$s\" の所有しているジョブ ID %1$d を再開することを許可されていま"
 "せん!"
 
-#: scheduler/ipp.c:7826 scheduler/ipp.c:7891
 #, c-format
 msgid "You are not authorized to send document for job #%d owned by \"%s\"!"
 msgstr ""
 "あなたは \"%2$s\" の所有しているジョブ #%1$d にドキュメントを送信することを許"
 "可されていません!"
 
-#: scheduler/ipp.c:7883 scheduler/ipp.c:8803 scheduler/ipp.c:7949
-#: scheduler/ipp.c:8883 scheduler/ipp.c:8274 scheduler/ipp.c:9225
-#: scheduler/ipp.c:7764 scheduler/ipp.c:8967 scheduler/ipp.c:7780
-#: scheduler/ipp.c:8983
 #, c-format
 msgid "Bad document-format \"%s\"!"
 msgstr "\"%s\" は不正な document-format です!"
 
-#: scheduler/ipp.c:8326 scheduler/ipp.c:8401
 #, c-format
 msgid "You are not authorized to alter job id %d owned by \"%s\"!"
 msgstr ""
 "あなたは \"%2$s\" の所有しているジョブ ID %1$d を変更することを許可されていま"
 "せん!"
 
-#: scheduler/ipp.c:8371 scheduler/ipp.c:8446 scheduler/ipp.c:8783
-#: scheduler/ipp.c:8275 scheduler/ipp.c:8291
 #, c-format
 msgid "%s cannot be changed."
 msgstr "%s は変更できません。"
 
-#: scheduler/ipp.c:8387 scheduler/ipp.c:8462 scheduler/ipp.c:8799
-#: scheduler/ipp.c:8291 scheduler/ipp.c:8307
 msgid "Bad job-priority value!"
 msgstr "不正な job-priority 値です!"
 
-#: scheduler/ipp.c:8395 scheduler/ipp.c:8470 scheduler/ipp.c:8807
-#: scheduler/ipp.c:8299 scheduler/ipp.c:8315
 msgid "Job is completed and cannot be changed."
 msgstr "ジョブは完結し、変更できません。"
 
-#: scheduler/ipp.c:8409 scheduler/ipp.c:8484 scheduler/ipp.c:8821
-#: scheduler/ipp.c:8313 scheduler/ipp.c:8329
 msgid "Bad job-state value!"
 msgstr "不正な job-state 値です!"
 
-#: scheduler/ipp.c:8423 scheduler/ipp.c:8435 scheduler/ipp.c:8446
-#: scheduler/ipp.c:8498 scheduler/ipp.c:8510 scheduler/ipp.c:8521
-#: scheduler/ipp.c:8835 scheduler/ipp.c:8850 scheduler/ipp.c:8861
-#: scheduler/ipp.c:8327 scheduler/ipp.c:8342 scheduler/ipp.c:8353
-#: scheduler/ipp.c:8343 scheduler/ipp.c:8358 scheduler/ipp.c:8369
 msgid "Job state cannot be changed."
 msgstr "ジョブの状態を変更できません。"
 
-#: scheduler/ipp.c:8787 scheduler/ipp.c:8867 scheduler/ipp.c:9209
-#: scheduler/ipp.c:8951 scheduler/ipp.c:8967
 #, c-format
 msgid "Unsupported compression attribute %s!"
 msgstr "%s はサポートされていない圧縮属性です!"
 
-#: scheduler/ipp.c:8815 scheduler/ipp.c:8894 scheduler/ipp.c:9236
-#: scheduler/ipp.c:8978 scheduler/ipp.c:8994
 #, c-format
 msgid "Unsupported format \"%s\"!"
 msgstr "\"%s\" はサポートされていない形式です!"
 
-#: berkeley/lpc.c:201
 #, c-format
 msgid "%s is not implemented by the CUPS version of lpc.\n"
 msgstr "%s は lpc の CUPS バージョンでは実装されていません。\n"
 
-#: berkeley/lpc.c:216
 msgid ""
 "Commands may be abbreviated.  Commands are:\n"
 "\n"
@@ -706,159 +426,120 @@ msgstr ""
 "\n"
 "exit    help    quit    status  ?\n"
 
-#: berkeley/lpc.c:222 berkeley/lpc.c:221
 msgid "help\t\tget help on commands\n"
 msgstr "help\t\tコマンドのヘルプを取得\n"
 
-#: berkeley/lpc.c:225 berkeley/lpc.c:223
 msgid "status\t\tshow status of daemon and queue\n"
 msgstr "status\t\tデーモンとキューの状態を表示\n"
 
-#: berkeley/lpc.c:228 berkeley/lpc.c:225
 msgid "?Invalid help command unknown\n"
 msgstr "?無効なヘルプコマンドです\n"
 
-#: berkeley/lpc.c:478 berkeley/lpc.c:490 berkeley/lpc.c:475 berkeley/lpc.c:487
-#: berkeley/lpc.c:476 berkeley/lpc.c:488
 #, c-format
 msgid "\tprinter is on device '%s' speed -1\n"
 msgstr "\tプリンタはデバイス '%s'上。速度 -1\n"
 
-#: berkeley/lpc.c:496 berkeley/lpc.c:493 berkeley/lpc.c:494
 msgid "\tqueuing is enabled\n"
 msgstr "\tキューは有効です\n"
 
-#: berkeley/lpc.c:498 berkeley/lpc.c:495 berkeley/lpc.c:496
 msgid "\tqueuing is disabled\n"
 msgstr "\tキューは無効です\n"
 
-#: berkeley/lpc.c:501 berkeley/lpc.c:498 berkeley/lpc.c:499
 msgid "\tprinting is enabled\n"
 msgstr "\t印刷は有効です\n"
 
-#: berkeley/lpc.c:503 berkeley/lpc.c:500 berkeley/lpc.c:501
 msgid "\tprinting is disabled\n"
 msgstr "\t印刷は無効です\n"
 
-#: berkeley/lpc.c:506 berkeley/lpc.c:503 berkeley/lpc.c:504
 msgid "\tno entries\n"
 msgstr "\tエントリがありません\n"
 
-#: berkeley/lpc.c:508 berkeley/lpc.c:505 berkeley/lpc.c:506
 #, c-format
 msgid "\t%d entries\n"
 msgstr "\t%d エントリ\n"
 
-#: berkeley/lpc.c:510 berkeley/lpc.c:507 berkeley/lpc.c:508
 msgid "\tdaemon present\n"
 msgstr "\tデーモンは提供されています\n"
 
-#: berkeley/lpq.c:94
 msgid "lpq: Unable to contact server!\n"
 msgstr "lpq: サーバに連絡できません!\n"
 
-#: berkeley/lpq.c:125 berkeley/lpr.c:114 berkeley/lprm.c:107
-#: systemv/accept.c:108 systemv/cancel.c:95 systemv/lpstat.c:115
-#: systemv/lpadmin.c:284 systemv/lp.c:135 systemv/lpinfo.c:80
-#: systemv/lpmove.c:84 systemv/accept.c:106 systemv/cancel.c:93
-#: systemv/lpmove.c:89 berkeley/lpq.c:124 systemv/lp.c:136
-#: systemv/lpstat.c:116 berkeley/lpr.c:116 systemv/lp.c:140
-#: systemv/cupsaddsmb.c:98
 #, c-format
 msgid "%s: Sorry, no encryption support compiled in!\n"
 msgstr "%s: すみません、暗号化サポートはコンパイル時に組み込まれていません!\n"
 
-#: berkeley/lpq.c:155
 #, c-format
 msgid "lpq: Unknown destination \"%s/%s\"!\n"
 msgstr "lpq: \"%s/%s\" は未知の宛先です!\n"
 
-#: berkeley/lpq.c:159
 #, c-format
 msgid "lpq: Unknown destination \"%s\"!\n"
 msgstr "lpq: \"%s\" は未知の宛先です!\n"
 
-#: berkeley/lpq.c:211 systemv/lp.c:564
 #, c-format
 msgid ""
 "lp: error - %s environment variable names non-existent destination \"%s\"!\n"
 msgstr "lp: エラー - 環境変数 %s が存在しない宛先 \"%s\" を指しています!\n"
 
-#: berkeley/lpq.c:216
 msgid "lpq: error - no default destination available.\n"
 msgstr "lpq: エラー - 利用可能なデフォルトの宛先がありません。\n"
 
-#: berkeley/lpq.c:363 berkeley/lpq.c:523
 #, c-format
 msgid "lpq: get-jobs failed: %s\n"
 msgstr "lpq: get-jobs に失敗しました: %s\n"
 
-#: berkeley/lpq.c:457 berkeley/lpq.c:444 berkeley/lpq.c:488
 msgid ""
 "Rank   Owner      Pri  Job        Files                       Total Size\n"
 msgstr ""
 "ランク 所有者     優先 ジョブ     ファイル                    合計サイズ\n"
 
-#: berkeley/lpq.c:461 berkeley/lpq.c:448 berkeley/lpq.c:492
 msgid "Rank    Owner   Job     File(s)                         Total Size\n"
 msgstr ""
 "Rank    Owner   Job     File(s)                         Total Size\n"
 "ランク  所有者  ジョブ  ファイル                        合計サイズ\n"
 
-#: berkeley/lpq.c:498 berkeley/lpq.c:485 berkeley/lpq.c:529
 #, c-format
 msgid "%s: %-33.33s [job %d localhost]\n"
 msgstr "%s: %-33.33s [ジョブ %d localhost]\n"
 
-#: berkeley/lpq.c:500 berkeley/lpq.c:487 berkeley/lpq.c:531
 #, c-format
 msgid "        %-39.39s %.0f bytes\n"
 msgstr "        %-39.39s %.0f バイト\n"
 
-#: berkeley/lpq.c:506 berkeley/lpq.c:493 berkeley/lpq.c:537
 #, c-format
 msgid "%-6s %-10.10s %-4d %-10d %-27.27s %.0f bytes\n"
 msgstr "%-6s %-10.10s %-4d %-10d %-27.27s %.0f バイト\n"
 
-#: berkeley/lpq.c:511 berkeley/lpq.c:498 berkeley/lpq.c:542
 #, c-format
 msgid "%-7s %-7.7s %-7d %-31.31s %.0f bytes\n"
 msgstr "%-7s %-7.7s %-7d %-31.31s %.0f バイト\n"
 
-#: berkeley/lpq.c:529 berkeley/lpq.c:515 berkeley/lpq.c:559
 msgid "no entries\n"
 msgstr "エントリがありません\n"
 
-#: berkeley/lpq.c:591 berkeley/lpq.c:620
 #, c-format
 msgid "lpq: get-printer-attributes failed: %s\n"
 msgstr "lpq: get-printer-attributes に失敗しました: %s\n"
 
-#: berkeley/lpq.c:605 berkeley/lpq.c:576 berkeley/lpq.c:621
 #, c-format
 msgid "%s is ready\n"
 msgstr "%s は準備ができています\n"
 
-#: berkeley/lpq.c:608 berkeley/lpq.c:579 berkeley/lpq.c:624
 #, c-format
 msgid "%s is ready and printing\n"
 msgstr "%s は準備ができており印刷しています\n"
 
-#: berkeley/lpq.c:612 berkeley/lpq.c:583 berkeley/lpq.c:628
 #, c-format
 msgid "%s is not ready\n"
 msgstr "%s は準備ができていません\n"
 
-#: berkeley/lpq.c:633 berkeley/lpq.c:601
 msgid "Usage: lpq [-P dest] [-l] [+interval]\n"
 msgstr "使い方: lpq [-P 宛先] [-l] [+インターバル]\n"
 
-#: berkeley/lpr.c:132
 #, c-format
 msgid "lpr: error - expected value after -%c option!\n"
 msgstr "lpr: エラー - -%c オプションのあとには値が必要です!\n"
 
-#: berkeley/lpr.c:146
 #, c-format
 msgid ""
 "lpr: warning - '%c' format modifier not supported - output may not be "
@@ -867,247 +548,194 @@ msgstr ""
 "lpr: 警告 - '%c' 形式修飾子はサポートされていません - 出力は正しくないものに"
 "なるかもしれません!\n"
 
-#: berkeley/lpr.c:159
 msgid "lpr: error - expected option=value after -o option!\n"
 msgstr "lpr: エラー - -o オプションのあとには オプション=値 が必要です!\n"
 
-#: berkeley/lpr.c:185
 msgid "lpr: warning - email notification is not currently supported!\n"
 msgstr "lpr: 警告 - メール通知は現在サポートされていません!\n"
 
-#: berkeley/lpr.c:207
 msgid "lpr: error - expected destination after -P option!\n"
 msgstr "lpr: エラー - -P オプションのあとには宛先が必要です!\n"
 
-#: berkeley/lpr.c:240
 msgid "lpr: error - expected copy count after -# option!\n"
 msgstr "lpr: エラー - -# オプションのあとにはコピー数が必要です!\n"
 
-#: berkeley/lpr.c:263
 #, c-format
 msgid "lpr: error - expected name after -%c option!\n"
 msgstr "lpr: エラー - -%c オプションのあとには名前が必要です!\n"
 
-#: berkeley/lpr.c:281
 msgid "lpr: error - expected username after -U option!\n"
 msgstr "lpr: エラー - -U オプションのあとにはユーザ名が必要です!\n"
 
-#: berkeley/lpr.c:292
 #, c-format
 msgid "lpr: error - unknown option '%c'!\n"
 msgstr "lpr: エラー - '%c' は未知のオプションです!\n"
 
-#: berkeley/lpr.c:305
 #, c-format
 msgid "lpr: error - unable to access \"%s\" - %s\n"
 msgstr "lpr: エラー - \"%s\" にアクセスできません - %s\n"
 
-#: berkeley/lpr.c:323
 #, c-format
 msgid "lpr: error - too many files - \"%s\"\n"
 msgstr "lpr: エラー - ファイルが多すぎます - \"%s\"\n"
 
-#: berkeley/lpr.c:364
 #, c-format
 msgid ""
 "lpr: error - %s environment variable names non-existent destination \"%s\"!\n"
 msgstr "lpr: エラー - 環境変数 %s が存在しない宛先 \"%s\" を指しています!\n"
 
-#: berkeley/lpr.c:369
 msgid "lpr: error - no default destination available.\n"
 msgstr "lpr: エラー - 利用可能なデフォルトの宛先がありません。\n"
 
-#: berkeley/lpr.c:372
 msgid "lpr: error - scheduler not responding!\n"
 msgstr "lpr: エラー - スケジューラが応答していません!\n"
 
-#: berkeley/lpr.c:421
 #, c-format
 msgid "lpr: error - unable to create temporary file \"%s\" - %s\n"
 msgstr "lpr: エラー - テンポラリファイル \"%s\" を作成できません - %s\n"
 
-#: berkeley/lpr.c:431
 #, c-format
 msgid "lpr: error - unable to write to temporary file \"%s\" - %s\n"
 msgstr "lpr: エラー - テンポラリファイル \"%s\" に書き込めません - %s\n"
 
-#: berkeley/lpr.c:445
 msgid "lpr: error - stdin is empty, so no job has been sent.\n"
 msgstr "lpr: エラー - 標準入力が空なので、ジョブは送られていません。\n"
 
-#: berkeley/lpr.c:461 berkeley/lpr.c:460
 #, c-format
 msgid "lpr: error - unable to print file: %s\n"
 msgstr "lpr: エラー - ファイルを印刷できません: %s\n"
 
-#: berkeley/lprm.c:87
 msgid "lprm: Unable to contact server!\n"
 msgstr "lprm: サーバに連絡できません!\n"
 
-#: berkeley/lprm.c:127
 #, c-format
 msgid "lprm: Unknown destination \"%s\"!\n"
 msgstr "lprm: \"%s\" は未知の宛先です!\n"
 
-#: berkeley/lprm.c:136
 #, c-format
 msgid "lprm: Unknown option '%c'!\n"
 msgstr "lprm: '%c' は未知のオプションです!\n"
 
-#: berkeley/lprm.c:223
 msgid "lprm: Job or printer not found!\n"
 msgstr "lprm: ジョブまたはプリンタが見つかりません!\n"
 
-#: berkeley/lprm.c:227
 msgid "lprm: Not authorized to lprm job(s)!\n"
 msgstr "lprm: lprm ジョブ の実行は許可されていません!\n"
 
-#: berkeley/lprm.c:231
 #, c-format
 msgid "lprm: You don't own job ID %d!\n"
 msgstr "lprm: あなたはジョブ ID %d の所有者ではありません!\n"
 
-#: berkeley/lprm.c:236
 msgid "lprm: Unable to lprm job(s)!\n"
 msgstr "lprm: lprm ジョブ ができません!\n"
 
-#: berkeley/lprm.c:253 berkeley/lprm.c:269
 msgid "lprm: Unable to cancel job(s)!\n"
 msgstr "lprm: ジョブをキャンセルできません!\n"
 
-#: systemv/accept.c:84 systemv/accept.c:82
 #, c-format
 msgid "%s: Don't know what to do!\n"
 msgstr "%s: 何が起きているか不明です!\n"
 
-#: systemv/accept.c:129 systemv/accept.c:127
 #, c-format
 msgid "%s: Expected server name after -h!\n"
 msgstr "%s: -h のあとにはサーバ名が必要です!\n"
 
-#: systemv/accept.c:147 systemv/accept.c:145
 #, c-format
 msgid "%s: Expected reason text after -r!\n"
 msgstr "%s: -r のあとには理由のテキストが必要です!\n"
 
-#: systemv/accept.c:157 systemv/accept.c:155
 #, c-format
 msgid "%s: Unknown option '%c'!\n"
 msgstr "%s: '%c' は未知のオプションです!\n"
 
-#: systemv/accept.c:173 systemv/accept.c:171 systemv/accept.c:192
 #, c-format
 msgid "%s: Unable to connect to server: %s\n"
 msgstr "%s: サーバに接続できません: %s\n"
 
-#: systemv/accept.c:217 systemv/accept.c:227 systemv/accept.c:268
-#: systemv/accept.c:278 systemv/accept.c:206 systemv/accept.c:230
 #, c-format
 msgid "%s: Operation failed: %s\n"
 msgstr "%s: 操作に失敗しました: %s\n"
 
-#: systemv/cancel.c:118 systemv/cancel.c:116
 msgid "cancel: Error - expected hostname after '-h' option!\n"
 msgstr "cancel: エラー - '-h' オプションのあとにはホスト名が必要です!\n"
 
-#: systemv/cancel.c:139 systemv/cancel.c:137
 msgid "cancel: Error - expected username after '-u' option!\n"
 msgstr "cancel: エラー - '-u' オプションのあとにはユーザ名が必要です!\n"
 
-#: systemv/cancel.c:150 systemv/cancel.c:148
 #, c-format
 msgid "cancel: Unknown option '%c'!\n"
 msgstr "cancel: '%c' は未知のオプションです!\n"
 
-#: systemv/cancel.c:207 systemv/cancel.c:205
 #, c-format
 msgid "cancel: Unknown destination \"%s\"!\n"
 msgstr "cancel: \"%s\" は未知の宛先です!\n"
 
-#: systemv/cancel.c:229 systemv/cancel.c:319 systemv/cancel.c:227
-#: systemv/cancel.c:308
 msgid "cancel: Unable to contact server!\n"
 msgstr "cancel: サーバに連絡できません!\n"
 
-#: systemv/cancel.c:295 systemv/cancel.c:370 systemv/cancel.c:284
-#: systemv/cancel.c:348
 #, c-format
 msgid "cancel: %s failed: %s\n"
 msgstr "cancel: %s 失敗しました: %s\n"
 
-#: systemv/cupsaddsmb.c:290 systemv/cupsaddsmb.c:311
 #, c-format
 msgid "cupsaddsmb: Missing value on line %d!\n"
 msgstr "cupsaddsmb: %d 行に値がありません!\n"
 
-#: systemv/cupsaddsmb.c:301 systemv/cupsaddsmb.c:322
 #, c-format
 msgid "cupsaddsmb: Missing double quote on line %d!\n"
 msgstr "cupsaddsmb: %d 行に二重引用符がありません!\n"
 
-#: systemv/cupsaddsmb.c:313 systemv/cupsaddsmb.c:334
 #, c-format
 msgid "cupsaddsmb: Bad option + choice on line %d!\n"
 msgstr "cupsaddsmb: %d 行に不正なオプションと選択があります!\n"
 
-#: systemv/cupsaddsmb.c:496 systemv/cupsaddsmb.c:553
 #, c-format
 msgid "cupsaddsmb: Unable to connect to server \"%s\" for %s - %s\n"
 msgstr "cupsaddsmb: %1$s のサーバ \"%2$s\" に接続できません - %s\n"
 
-#: systemv/cupsaddsmb.c:509 systemv/cupsaddsmb.c:566
 #, c-format
 msgid "cupsaddsmb: No PPD file for printer \"%s\" - skipping!\n"
 msgstr ""
 "cupsaddsmb: プリンタ \"%s\" の PPD ファイルがありません - スキップします!\n"
 
-#: systemv/cupsaddsmb.c:548 systemv/cupsaddsmb.c:562
 #, c-format
 msgid "cupsaddsmb: get-printer-attributes failed for \"%s\": %s\n"
 msgstr "cupsaddsmb: \"%s\" の get-printer-attributes に失敗しました: %s\n"
 
-#: systemv/cupsaddsmb.c:578 systemv/cupsaddsmb.c:620
 #, c-format
 msgid "cupsaddsmb: Unable to convert PPD file for %s - %s\n"
 msgstr "cupsaddsmb: %s の PPD ファイルを変換できません - %s\n"
 
-#: systemv/cupsaddsmb.c:633 systemv/cupsaddsmb.c:677
 #, c-format
 msgid "cupsaddsmb: Unable to copy Windows 2000 printer driver files (%d)!\n"
 msgstr ""
 "cupsaddsmb: Windows 2000 プリンタドライバファイルをコピーできません (%d)!\n"
 
-#: systemv/cupsaddsmb.c:660 systemv/cupsaddsmb.c:704
 #, c-format
 msgid "cupsaddsmb: Unable to copy CUPS printer driver files (%d)!\n"
 msgstr "cupsaddsmb: CUPS プリンタドライバファイルをコピーできません (%d)!\n"
 
-#: systemv/cupsaddsmb.c:697 systemv/cupsaddsmb.c:739
 #, c-format
 msgid "cupsaddsmb: Unable to install Windows 2000 printer driver files (%d)!\n"
 msgstr ""
 "cupsaddsmb: Windows 2000 プリンタドライバファイルをインストールできません (%"
 "d)!\n"
 
-#: systemv/cupsaddsmb.c:727 systemv/cupsaddsmb.c:771
 #, c-format
 msgid "cupsaddsmb: Unable to copy Windows 9x printer driver files (%d)!\n"
 msgstr ""
 "cupsaddsmb: Windows 9x プリンタドライバファイルをコピーできません (%d)!\n"
 
-#: systemv/cupsaddsmb.c:750 systemv/cupsaddsmb.c:792
 #, c-format
 msgid "cupsaddsmb: Unable to install Windows 9x printer driver files (%d)!\n"
 msgstr ""
 "cupsaddsmb: Windows 9x プリンタドライバファイルをインストールできません (%"
 "d)!\n"
 
-#: systemv/cupsaddsmb.c:771 systemv/cupsaddsmb.c:822
 #, c-format
 msgid "cupsaddsmb: Unable to set Windows printer driver (%d)!\n"
 msgstr "cupsaddsmb: Windows プリンタドライバを設定できません (%d)!\n"
 
-#: systemv/cupsaddsmb.c:854 systemv/cupsaddsmb.c:905
 msgid ""
 "Usage: cupsaddsmb [options] printer1 ... printerN\n"
 "       cupsaddsmb [options] -a\n"
@@ -1129,15 +757,12 @@ msgstr ""
 "  -h cupsサーバ    指定の CUPS サーバを使う\n"
 "  -v               冗長にする (コマンドを表示する)\n"
 
-#: systemv/cupstestppd.c:120 systemv/cupstestppd.c:137
 msgid "cupstestppd: The -q option is incompatible with the -v option.\n"
 msgstr "cupstestppd: -q オプションは -v オプションと両立できません。\n"
 
-#: systemv/cupstestppd.c:136 systemv/cupstestppd.c:153
 msgid "cupstestppd: The -v option is incompatible with the -q option.\n"
 msgstr "cupstestppd: -v オプションは -q オプションと両立できません。\n"
 
-#: systemv/cupstestppd.c:193 systemv/cupstestppd.c:210
 #, c-format
 msgid ""
 " FAIL\n"
@@ -1146,7 +771,6 @@ msgstr ""
 " 失敗\n"
 "      **失敗**  PPD ファイルを開くことができません - %s\n"
 
-#: systemv/cupstestppd.c:204 systemv/cupstestppd.c:221
 #, c-format
 msgid ""
 " FAIL\n"
@@ -1155,52 +779,39 @@ msgstr ""
 " 失敗\n"
 "      **失敗**  PPD ファイルを開くことができません - %2$d 行の %1$s。\n"
 
-#: systemv/cupstestppd.c:213 systemv/cupstestppd.c:230
 msgid "                REF: Page 42, section 5.2.\n"
 msgstr "                REF: 42 ページ、セクション 5.2。\n"
 
-#: systemv/cupstestppd.c:217 systemv/cupstestppd.c:234
 msgid "                REF: Page 20, section 3.4.\n"
 msgstr "                REF: 20 ページ、セクション 3.4。\n"
 
-#: systemv/cupstestppd.c:222 systemv/cupstestppd.c:239
 msgid "                REF: Pages 45-46, section 5.2.\n"
 msgstr "                REF: 45-46 ページ、セクション 5.2。\n"
 
-#: systemv/cupstestppd.c:227 systemv/cupstestppd.c:244
 msgid "                REF: Pages 42-45, section 5.2.\n"
 msgstr "                REF: 42-45 ページ、セクション 5.2。\n"
 
-#: systemv/cupstestppd.c:231 systemv/cupstestppd.c:248
 msgid "                REF: Pages 48-49, section 5.2.\n"
 msgstr "                REF: 48-49 ページ、セクション 5.2。\n"
 
-#: systemv/cupstestppd.c:235 systemv/cupstestppd.c:252
 msgid "                REF: Pages 52-54, section 5.2.\n"
 msgstr "                REF: 52-54 ページ、セクション 5.2。\n"
 
-#: systemv/cupstestppd.c:239 systemv/cupstestppd.c:256
 msgid "                REF: Page 15, section 3.2.\n"
 msgstr "                REF: 15 ページ、セクション 3.2。\n"
 
-#: systemv/cupstestppd.c:243 systemv/cupstestppd.c:247
-#: systemv/cupstestppd.c:260 systemv/cupstestppd.c:264
 msgid "                REF: Page 15, section 3.1.\n"
 msgstr "                REF: 15 ページ、セクション 3.1。\n"
 
-#: systemv/cupstestppd.c:251 systemv/cupstestppd.c:268
 msgid "                REF: Pages 16-17, section 3.2.\n"
 msgstr "                REF: 16-17 ページ、セクション 3.2。\n"
 
-#: systemv/cupstestppd.c:255 systemv/cupstestppd.c:272
 msgid "                REF: Page 19, section 3.3.\n"
 msgstr "                REF: 19 ページ、セクション 3.3。\n"
 
-#: systemv/cupstestppd.c:259 systemv/cupstestppd.c:276
 msgid "                REF: Page 27, section 3.5.\n"
 msgstr "                REF: 27 ページ、セクション 3.5。\n"
 
-#: systemv/cupstestppd.c:280 systemv/cupstestppd.c:299
 msgid ""
 "\n"
 "    DETAILED CONFORMANCE TEST RESULTS\n"
@@ -1208,66 +819,13 @@ msgstr ""
 "\n"
 "    適合テスト結果詳細\n"
 
-#: systemv/cupstestppd.c:307 systemv/cupstestppd.c:326
-#: systemv/cupstestppd.c:325
 #, c-format
 msgid "        WARN    %s has no corresponding options!\n"
 msgstr "        警告    %s は相当するオプションがありません!\n"
 
-#: systemv/cupstestppd.c:318 systemv/cupstestppd.c:333
-#: systemv/cupstestppd.c:354 systemv/cupstestppd.c:369
-#: systemv/cupstestppd.c:397 systemv/cupstestppd.c:417
-#: systemv/cupstestppd.c:439 systemv/cupstestppd.c:459
-#: systemv/cupstestppd.c:479 systemv/cupstestppd.c:499
-#: systemv/cupstestppd.c:517 systemv/cupstestppd.c:535
-#: systemv/cupstestppd.c:556 systemv/cupstestppd.c:575
-#: systemv/cupstestppd.c:595 systemv/cupstestppd.c:615
-#: systemv/cupstestppd.c:635 systemv/cupstestppd.c:655
-#: systemv/cupstestppd.c:673 systemv/cupstestppd.c:690
-#: systemv/cupstestppd.c:712 systemv/cupstestppd.c:730
-#: systemv/cupstestppd.c:747 systemv/cupstestppd.c:765
-#: systemv/cupstestppd.c:781 systemv/cupstestppd.c:801
-#: systemv/cupstestppd.c:832 systemv/cupstestppd.c:854
-#: systemv/cupstestppd.c:902 systemv/cupstestppd.c:931
-#: systemv/cupstestppd.c:952 systemv/cupstestppd.c:337
-#: systemv/cupstestppd.c:352 systemv/cupstestppd.c:373
-#: systemv/cupstestppd.c:388 systemv/cupstestppd.c:416
-#: systemv/cupstestppd.c:436 systemv/cupstestppd.c:458
-#: systemv/cupstestppd.c:478 systemv/cupstestppd.c:498
-#: systemv/cupstestppd.c:518 systemv/cupstestppd.c:536
-#: systemv/cupstestppd.c:554 systemv/cupstestppd.c:594
-#: systemv/cupstestppd.c:614 systemv/cupstestppd.c:634
-#: systemv/cupstestppd.c:654 systemv/cupstestppd.c:674
-#: systemv/cupstestppd.c:692 systemv/cupstestppd.c:709
-#: systemv/cupstestppd.c:731 systemv/cupstestppd.c:749
-#: systemv/cupstestppd.c:766 systemv/cupstestppd.c:784
-#: systemv/cupstestppd.c:800 systemv/cupstestppd.c:820
-#: systemv/cupstestppd.c:851 systemv/cupstestppd.c:873
-#: systemv/cupstestppd.c:921 systemv/cupstestppd.c:950
-#: systemv/cupstestppd.c:971 systemv/cupstestppd.c:343
-#: systemv/cupstestppd.c:361 systemv/cupstestppd.c:376
-#: systemv/cupstestppd.c:412 systemv/cupstestppd.c:440
-#: systemv/cupstestppd.c:460 systemv/cupstestppd.c:482
-#: systemv/cupstestppd.c:502 systemv/cupstestppd.c:522
-#: systemv/cupstestppd.c:542 systemv/cupstestppd.c:560
-#: systemv/cupstestppd.c:578 systemv/cupstestppd.c:599
-#: systemv/cupstestppd.c:618 systemv/cupstestppd.c:638
-#: systemv/cupstestppd.c:658 systemv/cupstestppd.c:678
-#: systemv/cupstestppd.c:698 systemv/cupstestppd.c:716
-#: systemv/cupstestppd.c:733 systemv/cupstestppd.c:755
-#: systemv/cupstestppd.c:773 systemv/cupstestppd.c:790
-#: systemv/cupstestppd.c:808 systemv/cupstestppd.c:824
-#: systemv/cupstestppd.c:844 systemv/cupstestppd.c:875
-#: systemv/cupstestppd.c:897 systemv/cupstestppd.c:945
-#: systemv/cupstestppd.c:974 systemv/cupstestppd.c:995
-#: systemv/cupstestppd.c:1050 systemv/cupstestppd.c:1075
-#: systemv/cupstestppd.c:1095 systemv/cupstestppd.c:1116
-#: systemv/cupstestppd.c:1138 systemv/cupstestppd.c:1172
 msgid " FAIL\n"
 msgstr " 失敗\n"
 
-#: systemv/cupstestppd.c:321 systemv/cupstestppd.c:340
-#: systemv/cupstestppd.c:364
 msgid ""
 "      **FAIL**  REQUIRED DefaultImageableArea\n"
 "                REF: Page 102, section 5.15.\n"
@@ -1275,8 +833,6 @@ msgstr ""
 "      **失敗**  DefaultImageableArea が必須\n"
 "                REF: 102 ページ、セクション 5.15。\n"
 
-#: systemv/cupstestppd.c:336 systemv/cupstestppd.c:355
-#: systemv/cupstestppd.c:379
 #, c-format
 msgid ""
 "      **FAIL**  BAD DefaultImageableArea %s!\n"
@@ -1285,13 +841,9 @@ msgstr ""
 "      **失敗**  %s は不正な DefaultImageableArea です!\n"
 "                REF: 102 ページ、セクション 5.15。\n"
 
-#: systemv/cupstestppd.c:346 systemv/cupstestppd.c:365
-#: systemv/cupstestppd.c:389
 msgid "        PASS    DefaultImageableArea\n"
 msgstr "        合格    DefaultImageableArea\n"
 
-#: systemv/cupstestppd.c:357 systemv/cupstestppd.c:376
-#: systemv/cupstestppd.c:400
 msgid ""
 "      **FAIL**  REQUIRED DefaultPaperDimension\n"
 "                REF: Page 103, section 5.15.\n"
@@ -1299,8 +851,6 @@ msgstr ""
 "      **失敗**  DefaultPaperDimension は必須\n"
 "                REF: 103 ページ、セクション 5.15。\n"
 
-#: systemv/cupstestppd.c:372 systemv/cupstestppd.c:391
-#: systemv/cupstestppd.c:415
 #, c-format
 msgid ""
 "      **FAIL**  BAD DefaultPaperDimension %s!\n"
@@ -1309,13 +859,9 @@ msgstr ""
 "      **失敗**  %s は不正な DefaultPaperDimension です!\n"
 "                REF: 103 ページ、セクション 5.15。\n"
 
-#: systemv/cupstestppd.c:380 systemv/cupstestppd.c:399
-#: systemv/cupstestppd.c:423
 msgid "        PASS    DefaultPaperDimension\n"
 msgstr "        合格    DefaultPaperDimension\n"
 
-#: systemv/cupstestppd.c:400 systemv/cupstestppd.c:419
-#: systemv/cupstestppd.c:443
 #, c-format
 msgid ""
 "      **FAIL**  BAD Default%s %s\n"
@@ -1324,14 +870,10 @@ msgstr ""
 "      **失敗**  %2$s は不正な Default%1$s\n"
 "                REF: 40 ページ、セクション 4.5。\n"
 
-#: systemv/cupstestppd.c:409 systemv/cupstestppd.c:428
-#: systemv/cupstestppd.c:452
 #, c-format
 msgid "        PASS    Default%s\n"
 msgstr "        合格    Default%s\n"
 
-#: systemv/cupstestppd.c:420 systemv/cupstestppd.c:439
-#: systemv/cupstestppd.c:463
 #, c-format
 msgid ""
 "      **FAIL**  REQUIRED Default%s\n"
@@ -1340,13 +882,9 @@ msgstr ""
 "      **失敗**  Default%s は必須\n"
 "                REF: 40 ページ、セクション 4.5。\n"
 
-#: systemv/cupstestppd.c:432 systemv/cupstestppd.c:451
-#: systemv/cupstestppd.c:475
 msgid "        PASS    FileVersion\n"
 msgstr "        合格    FileVersion\n"
 
-#: systemv/cupstestppd.c:442 systemv/cupstestppd.c:461
-#: systemv/cupstestppd.c:485
 msgid ""
 "      **FAIL**  REQUIRED FileVersion\n"
 "                REF: Page 56, section 5.3.\n"
@@ -1354,13 +892,9 @@ msgstr ""
 "      **失敗**  FileVersion は必須\n"
 "                REF: 56 ページ、セクション 5.3。\n"
 
-#: systemv/cupstestppd.c:452 systemv/cupstestppd.c:471
-#: systemv/cupstestppd.c:495
 msgid "        PASS    FormatVersion\n"
 msgstr "        合格    FormatVersion\n"
 
-#: systemv/cupstestppd.c:462 systemv/cupstestppd.c:481
-#: systemv/cupstestppd.c:505
 msgid ""
 "      **FAIL**  REQUIRED FormatVersion\n"
 "                REF: Page 56, section 5.3.\n"
@@ -1368,13 +902,9 @@ msgstr ""
 "      **失敗**  FormatVersion は必須\n"
 "                REF: 56 ページ、セクション 5.3。\n"
 
-#: systemv/cupstestppd.c:472 systemv/cupstestppd.c:491
-#: systemv/cupstestppd.c:515
 msgid "        PASS    LanguageEncoding\n"
 msgstr "        合格    LanguageEncoding\n"
 
-#: systemv/cupstestppd.c:482 systemv/cupstestppd.c:501
-#: systemv/cupstestppd.c:525
 msgid ""
 "      **FAIL**  REQUIRED LanguageEncoding\n"
 "                REF: Pages 56-57, section 5.3.\n"
@@ -1382,13 +912,9 @@ msgstr ""
 "      **失敗**  LanguageEncoding は必須\n"
 "                REF: 56-57 ページ、セクション 5.3。\n"
 
-#: systemv/cupstestppd.c:492 systemv/cupstestppd.c:511
-#: systemv/cupstestppd.c:535
 msgid "        PASS    LanguageVersion\n"
 msgstr "        合格    LanguageVersion\n"
 
-#: systemv/cupstestppd.c:502 systemv/cupstestppd.c:521
-#: systemv/cupstestppd.c:545
 msgid ""
 "      **FAIL**  REQUIRED LanguageVersion\n"
 "                REF: Pages 57-58, section 5.3.\n"
@@ -1396,8 +922,6 @@ msgstr ""
 "      **失敗**  LanguageVersion は必須\n"
 "                REF: 57-58 ページ、セクション 5.3。\n"
 
-#: systemv/cupstestppd.c:520 systemv/cupstestppd.c:539
-#: systemv/cupstestppd.c:563
 msgid ""
 "      **FAIL**  BAD Manufacturer (should be \"HP\")\n"
 "                REF: Page 211, table D.1.\n"
@@ -1405,13 +929,9 @@ msgstr ""
 "      **失敗**  不正な Manufacturer (\"HP\" でなければなりません)\n"
 "                REF: 211 ページ、表 D.1。\n"
 
-#: systemv/cupstestppd.c:528 systemv/cupstestppd.c:547
-#: systemv/cupstestppd.c:571
 msgid "        PASS    Manufacturer\n"
 msgstr "        合格    Manufacturer\n"
 
-#: systemv/cupstestppd.c:538 systemv/cupstestppd.c:557
-#: systemv/cupstestppd.c:581
 msgid ""
 "      **FAIL**  REQUIRED Manufacturer\n"
 "                REF: Pages 58-59, section 5.3.\n"
@@ -1419,8 +939,6 @@ msgstr ""
 "      **失敗**  Manufacturer は必須\n"
 "                REF: 58-59 ページ、セクション 5.3。\n"
 
-#: systemv/cupstestppd.c:559 systemv/cupstestppd.c:578
-#: systemv/cupstestppd.c:602
 #, c-format
 msgid ""
 "      **FAIL**  BAD ModelName - \"%c\" not allowed in string.\n"
@@ -1429,13 +947,9 @@ msgstr ""
 "      **失敗**  不正な ModelName - 文字列に \"%c\" は許可されていません。\n"
 "                REF: 59-60 ページ、セクション 5.3。\n"
 
-#: systemv/cupstestppd.c:568 systemv/cupstestppd.c:587
-#: systemv/cupstestppd.c:611
 msgid "        PASS    ModelName\n"
 msgstr "        合格    ModelName\n"
 
-#: systemv/cupstestppd.c:578 systemv/cupstestppd.c:597
-#: systemv/cupstestppd.c:621
 msgid ""
 "      **FAIL**  REQUIRED ModelName\n"
 "                REF: Pages 59-60, section 5.3.\n"
@@ -1443,13 +957,9 @@ msgstr ""
 "      **失敗**  ModelName は必須\n"
 "                REF: 59-60 ページ、セクション 5.3。\n"
 
-#: systemv/cupstestppd.c:588 systemv/cupstestppd.c:607
-#: systemv/cupstestppd.c:631
 msgid "        PASS    NickName\n"
 msgstr "        合格    NickName\n"
 
-#: systemv/cupstestppd.c:598 systemv/cupstestppd.c:617
-#: systemv/cupstestppd.c:641
 msgid ""
 "      **FAIL**  REQUIRED NickName\n"
 "                REF: Page 60, section 5.3.\n"
@@ -1457,13 +967,9 @@ msgstr ""
 "      **失敗**  NickName は必須\n"
 "                REF: 60 ページ、セクション 5.3。\n"
 
-#: systemv/cupstestppd.c:608 systemv/cupstestppd.c:627
-#: systemv/cupstestppd.c:651
 msgid "        PASS    PageSize\n"
 msgstr "        合格    PageSize\n"
 
-#: systemv/cupstestppd.c:618 systemv/cupstestppd.c:637
-#: systemv/cupstestppd.c:661
 msgid ""
 "      **FAIL**  REQUIRED PageSize\n"
 "                REF: Pages 99-100, section 5.14.\n"
@@ -1471,13 +977,9 @@ msgstr ""
 "      **失敗**  PageSize は必須\n"
 "                REF: 99-100 ページ、セクション 5.14。\n"
 
-#: systemv/cupstestppd.c:628 systemv/cupstestppd.c:647
-#: systemv/cupstestppd.c:671
 msgid "        PASS    PageRegion\n"
 msgstr "        合格    PageRegion\n"
 
-#: systemv/cupstestppd.c:638 systemv/cupstestppd.c:657
-#: systemv/cupstestppd.c:681
 msgid ""
 "      **FAIL**  REQUIRED PageRegion\n"
 "                REF: Page 100, section 5.14.\n"
@@ -1485,13 +987,9 @@ msgstr ""
 "      **失敗**  PageRegion は必須\n"
 "                REF: 100 ページ、セクション 5.14。\n"
 
-#: systemv/cupstestppd.c:648 systemv/cupstestppd.c:667
-#: systemv/cupstestppd.c:691
 msgid "        PASS    PCFileName\n"
 msgstr "        合格    PCFileName\n"
 
-#: systemv/cupstestppd.c:658 systemv/cupstestppd.c:677
-#: systemv/cupstestppd.c:701
 msgid ""
 "      **FAIL**  REQUIRED PCFileName\n"
 "                REF: Pages 61-62, section 5.3.\n"
@@ -1499,8 +997,6 @@ msgstr ""
 "      **失敗**  PCFileName は必須\n"
 "                REF: 61-62 ページ、セクション 5.3。\n"
 
-#: systemv/cupstestppd.c:676 systemv/cupstestppd.c:695
-#: systemv/cupstestppd.c:719
 msgid ""
 "      **FAIL**  BAD Product - not \"(string)\".\n"
 "                REF: Page 62, section 5.3.\n"
@@ -1508,13 +1004,9 @@ msgstr ""
 "      **失敗**  不正な Product - \"(文字列)\" ではありません。\n"
 "                REF: 62 ページ、セクション 5.3。\n"
 
-#: systemv/cupstestppd.c:683 systemv/cupstestppd.c:702
-#: systemv/cupstestppd.c:726
 msgid "        PASS    Product\n"
 msgstr "        合格    Product\n"
 
-#: systemv/cupstestppd.c:693 systemv/cupstestppd.c:712
-#: systemv/cupstestppd.c:736
 msgid ""
 "      **FAIL**  REQUIRED Product\n"
 "                REF: Page 62, section 5.3.\n"
@@ -1522,8 +1014,6 @@ msgstr ""
 "      **失敗**  Product は必須\n"
 "                REF: 62 ページ、セクション 5.3。\n"
 
-#: systemv/cupstestppd.c:715 systemv/cupstestppd.c:734
-#: systemv/cupstestppd.c:758
 msgid ""
 "      **FAIL**  BAD PSVersion - not \"(string) int\".\n"
 "                REF: Pages 62-64, section 5.3.\n"
@@ -1531,13 +1021,9 @@ msgstr ""
 "      **失敗**  不正な PSVersion - \"(文字列) 整数\" ではありません。\n"
 "                REF: 62-64 ページ、セクション 5.3。\n"
 
-#: systemv/cupstestppd.c:723 systemv/cupstestppd.c:742
-#: systemv/cupstestppd.c:766
 msgid "        PASS    PSVersion\n"
 msgstr "        合格    PSVersion\n"
 
-#: systemv/cupstestppd.c:733 systemv/cupstestppd.c:752
-#: systemv/cupstestppd.c:776
 msgid ""
 "      **FAIL**  REQUIRED PSVersion\n"
 "                REF: Pages 62-64, section 5.3.\n"
@@ -1545,8 +1031,6 @@ msgstr ""
 "      **失敗**  PSVersion は必須\n"
 "                REF: 62-64 ページ、セクション 5.3。\n"
 
-#: systemv/cupstestppd.c:750 systemv/cupstestppd.c:769
-#: systemv/cupstestppd.c:793
 msgid ""
 "      **FAIL**  BAD ShortNickName - longer than 31 chars.\n"
 "                REF: Pages 64-65, section 5.3.\n"
@@ -1554,13 +1038,9 @@ msgstr ""
 "      **失敗**  不正な ShortNickName - 31 文字を超えています。\n"
 "                REF: 64-65 ページ、セクション 5.3。\n"
 
-#: systemv/cupstestppd.c:758 systemv/cupstestppd.c:777
-#: systemv/cupstestppd.c:801
 msgid "        PASS    ShortNickName\n"
 msgstr "        合格    ShortNickName\n"
 
-#: systemv/cupstestppd.c:768 systemv/cupstestppd.c:787
-#: systemv/cupstestppd.c:811
 msgid ""
 "      **FAIL**  REQUIRED ShortNickName\n"
 "                REF: Page 64-65, section 5.3.\n"
@@ -1568,8 +1048,6 @@ msgstr ""
 "      **失敗**  ShortNickName は必須\n"
 "                REF: 64-65 ページ、セクション 5.3。\n"
 
-#: systemv/cupstestppd.c:784 systemv/cupstestppd.c:803
-#: systemv/cupstestppd.c:827
 msgid ""
 "      **FAIL**  BAD JobPatchFile attribute in file\n"
 "                REF: Page 24, section 3.4.\n"
@@ -1577,8 +1055,6 @@ msgstr ""
 "      **失敗**  ファイルに不正な JobPatchFile 属性があります\n"
 "                REF: 24 ページ、セクション 3.4。\n"
 
-#: systemv/cupstestppd.c:804 systemv/cupstestppd.c:823
-#: systemv/cupstestppd.c:847
 msgid ""
 "      **FAIL**  REQUIRED PageSize\n"
 "                REF: Page 41, section 5.\n"
@@ -1588,8 +1064,6 @@ msgstr ""
 "                REF: 41 ページ、セクション 5。\n"
 "                REF: 99 ページ、セクション 5.14。\n"
 
-#: systemv/cupstestppd.c:835 systemv/cupstestppd.c:854
-#: systemv/cupstestppd.c:878
 #, c-format
 msgid ""
 "      **FAIL**  REQUIRED ImageableArea for PageSize %s\n"
@@ -1600,8 +1074,6 @@ msgstr ""
 "                REF: 41 ページ、セクション 5。\n"
 "                REF: 102 ページ、セクション 5.15。\n"
 
-#: systemv/cupstestppd.c:857 systemv/cupstestppd.c:876
-#: systemv/cupstestppd.c:900
 #, c-format
 msgid ""
 "      **FAIL**  REQUIRED PaperDimension for PageSize %s\n"
@@ -1612,8 +1084,6 @@ msgstr ""
 "                REF: 41 ページ、セクション 5。\n"
 "                REF: 103 ページ、セクション 5.15。\n"
 
-#: systemv/cupstestppd.c:905 systemv/cupstestppd.c:924
-#: systemv/cupstestppd.c:948
 #, c-format
 msgid ""
 "      **FAIL**  Bad %s choice %s!\n"
@@ -1622,8 +1092,6 @@ msgstr ""
 "      **失敗**  不正な %s が %s を選んでいます!\n"
 "                REF: 84 ページ、セクション 5.9\n"
 
-#: systemv/cupstestppd.c:934 systemv/cupstestppd.c:953
-#: systemv/cupstestppd.c:977
 #, c-format
 msgid ""
 "      **FAIL**  REQUIRED %s does not define choice None!\n"
@@ -1632,8 +1100,6 @@ msgstr ""
 "      **失敗**  必須の %s が選択肢 None を定義していません!\n"
 "                REF: 122 ページ、セクション 5.17\n"
 
-#: systemv/cupstestppd.c:955 systemv/cupstestppd.c:974
-#: systemv/cupstestppd.c:998
 #, c-format
 msgid ""
 "      **FAIL**  Bad %s choice %s!\n"
@@ -1642,13 +1108,9 @@ msgstr ""
 "      **FAIL**  不正な %s が %s を選んでいます!\n"
 "                REF: 122 ページ、セクション 5.17\n"
 
-#: systemv/cupstestppd.c:967 systemv/cupstestppd.c:986
-#: systemv/cupstestppd.c:1186
 msgid " PASS\n"
 msgstr " 合格\n"
 
-#: systemv/cupstestppd.c:976 systemv/cupstestppd.c:997
-#: systemv/cupstestppd.c:1197
 #, c-format
 msgid ""
 "        WARN    Duplex option keyword %s should be named Duplex or "
@@ -1659,13 +1121,9 @@ msgstr ""
 "う名前であるべきです!\n"
 "                REF: 122 ページ、セクション 5.17\n"
 
-#: systemv/cupstestppd.c:986 systemv/cupstestppd.c:1007
-#: systemv/cupstestppd.c:1207
 msgid "        WARN    Default choices conflicting!\n"
 msgstr "        警告    デフォルトの選択肢が衝突しています!\n"
 
-#: systemv/cupstestppd.c:994 systemv/cupstestppd.c:1015
-#: systemv/cupstestppd.c:1215
 #, c-format
 msgid ""
 "        WARN    Obsolete PPD version %.1f!\n"
@@ -1674,8 +1132,6 @@ msgstr ""
 "        警告    PPD バージョン %.1f は時代遅れです!\n"
 "                REF: 42 ページ、セクション 5.2。\n"
 
-#: systemv/cupstestppd.c:1002 systemv/cupstestppd.c:1023
-#: systemv/cupstestppd.c:1223
 msgid ""
 "        WARN    LanguageEncoding required by PPD 4.3 spec.\n"
 "                REF: Pages 56-57, section 5.3.\n"
@@ -1683,8 +1139,6 @@ msgstr ""
 "        警告    LanguageEncoding は PPD 4.3 仕様で必須です。\n"
 "                REF: 56-57 ページ、セクション 5.3。\n"
 
-#: systemv/cupstestppd.c:1010 systemv/cupstestppd.c:1031
-#: systemv/cupstestppd.c:1231
 msgid ""
 "        WARN    Manufacturer required by PPD 4.3 spec.\n"
 "                REF: Pages 58-59, section 5.3.\n"
@@ -1692,8 +1146,6 @@ msgstr ""
 "        警告    Manufacturer は PPD 4.3 仕様で必須です。\n"
 "                REF: 58-59 ページ、セクション 5.3。\n"
 
-#: systemv/cupstestppd.c:1023 systemv/cupstestppd.c:1044
-#: systemv/cupstestppd.c:1244
 msgid ""
 "        WARN    PCFileName longer than 8.3 in violation of PPD spec.\n"
 "                REF: Pages 61-62, section 5.3.\n"
@@ -1701,8 +1153,6 @@ msgstr ""
 "        警告    8.3 文字より長い PCFileName は PPD 仕様違反です。\n"
 "                REF: 61-62 ページ、セクション 5.3。\n"
 
-#: systemv/cupstestppd.c:1031 systemv/cupstestppd.c:1052
-#: systemv/cupstestppd.c:1252
 msgid ""
 "        WARN    ShortNickName required by PPD 4.3 spec.\n"
 "                REF: Pages 64-65, section 5.3.\n"
@@ -1710,8 +1160,6 @@ msgstr ""
 "        警告    ShortNickName は PPD 4.3 仕様で必須です。\n"
 "                REF: 64-65 ページ、セクション 5.3。\n"
 
-#: systemv/cupstestppd.c:1048 systemv/cupstestppd.c:1069
-#: systemv/cupstestppd.c:1269
 msgid ""
 "        WARN    Protocols contains both PJL and BCP; expected TBCP.\n"
 "                REF: Pages 78-79, section 5.7.\n"
@@ -1720,8 +1168,6 @@ msgstr ""
 "す。\n"
 "                REF: 78-79 ページ、セクション 5.7。\n"
 
-#: systemv/cupstestppd.c:1057 systemv/cupstestppd.c:1078
-#: systemv/cupstestppd.c:1278
 msgid ""
 "        WARN    Protocols contains PJL but JCL attributes are not set.\n"
 "                REF: Pages 78-79, section 5.7.\n"
@@ -1730,8 +1176,6 @@ msgstr ""
 "ん。\n"
 "                REF: 78-79 ページ、セクション 5.7。\n"
 
-#: systemv/cupstestppd.c:1085 systemv/cupstestppd.c:1106
-#: systemv/cupstestppd.c:1306
 #, c-format
 msgid ""
 "        WARN    %s shares a common prefix with %s\n"
@@ -1740,19 +1184,13 @@ msgstr ""
 "        警告    %s は %s と一般プリフィクスを共有します。\n"
 "                REF: 15 ページ、セクション 3.2。\n"
 
-#: systemv/cupstestppd.c:1097 systemv/cupstestppd.c:1118
-#: systemv/cupstestppd.c:1318
 #, c-format
 msgid "    %d ERROR%s FOUND\n"
 msgstr "    %d 個のエラー%s が見つかりました\n"
 
-#: systemv/cupstestppd.c:1100 systemv/cupstestppd.c:1121
-#: systemv/cupstestppd.c:1321
 msgid "    NO ERRORS FOUND\n"
 msgstr "    エラーは見つかりませんでした\n"
 
-#: systemv/cupstestppd.c:1360 systemv/cupstestppd.c:1465
-#: systemv/cupstestppd.c:1665
 #, c-format
 msgid ""
 "        WARN    \"%s %s\" conflicts with \"%s %s\"\n"
@@ -1761,8 +1199,6 @@ msgstr ""
 "        警告    \"%s %s\" は \"%s %s\" と衝突します\n"
 "                (constraint=\"%s %s %s %s\")\n"
 
-#: systemv/cupstestppd.c:1376 systemv/cupstestppd.c:1481
-#: systemv/cupstestppd.c:1681
 msgid ""
 "Usage: cupstestppd [-q] [-r] [-v[v]] filename1.ppd[.gz] [... filenameN.ppd[."
 "gz]]\n"
@@ -1772,52 +1208,40 @@ msgstr ""
 "ppd[.gz]]\n"
 "       プログラム | cupstestppd [-q] [-r] [-v[v]] -\n"
 
-#: systemv/lpstat.c:144 systemv/lpstat.c:155
 msgid "lpstat: Need \"completed\" or \"not-completed\" after -W!\n"
 msgstr ""
 "lpstat: -W のあとには \"completed\" または \"not-completed\" が必要です!\n"
 
-#: systemv/lpstat.c:212 systemv/lpstat.c:213
 msgid "lpstat: The -b option requires a destination argument.\n"
 msgstr "lpstat: -b オプションには宛先の引数が必須です。\n"
 
-#: systemv/lpstat.c:274 systemv/lpinfo.c:143 systemv/lpmove.c:105
-#: systemv/lpmove.c:110 systemv/lpstat.c:275
 msgid "Error: need hostname after '-h' option!\n"
 msgstr "エラー:'-h' オプションのあとにはホスト名が必要です!\n"
 
-#: systemv/lpstat.c:433 systemv/lpstat.c:434
 #, c-format
 msgid "lpstat: Unknown option '%c'!\n"
 msgstr "lpstat: '%c' は未知のオプションです!\n"
 
-#: systemv/lpstat.c:504 systemv/lpstat.c:505
 #, c-format
 msgid "lpstat: Invalid destination name in list \"%s\"!\n"
 msgstr "lpstat: リスト \"%s\" に不正な宛先名があります!\n"
 
-#: systemv/lpstat.c:519 systemv/lpstat.c:520
 #, c-format
 msgid "lpstat: Unknown destination \"%s\"!\n"
 msgstr "lpstat: \"%s\" は未知の宛先です!\n"
 
-#: systemv/lpstat.c:541 systemv/lpstat.c:542
 #, c-format
 msgid "lpstat: Unable to connect to server %s on port %d: %s\n"
 msgstr "lpstat: ポート %2$d: %3$s にあるサーバ %1$s に接続できません\n"
 
-#: systemv/lpstat.c:625 systemv/lpstat.c:773 systemv/lpstat.c:1187
-#: systemv/lpstat.c:1379 systemv/lpstat.c:1809 systemv/lpstat.c:2262
 #, c-format
 msgid "lpstat: get-printers failed: %s\n"
 msgstr "lpstat: get-printers に失敗しました: %s\n"
 
-#: systemv/lpstat.c:741
 #, c-format
 msgid "%s accepting requests since Jan 01 00:00\n"
 msgstr "%s は Jan 01 00:00 以来リクエストを受け付けています\n"
 
-#: systemv/lpstat.c:745
 #, c-format
 msgid ""
 "%s not accepting requests since Jan 01 00:00 -\n"
@@ -1826,12 +1250,10 @@ msgstr ""
 "%s は Jan 01 00:00 以来リクエストを受け付けていません -\n"
 "\t%s\n"
 
-#: systemv/lpstat.c:754
 #, c-format
 msgid "%s/%s accepting requests since Jan 01 00:00\n"
 msgstr "%s/%s は Jan 01 00:00 以来リクエストを受け付けています\n"
 
-#: systemv/lpstat.c:758
 #, c-format
 msgid ""
 "%s/%s not accepting requests since Jan 01 00:00 -\n"
@@ -1840,118 +1262,79 @@ msgstr ""
 "%s/%s は Jan 01 00:00 以来リクエストを受け付けていません -\n"
 "\t%s\n"
 
-#: systemv/lpstat.c:861 systemv/lpstat.c:1056
 #, c-format
 msgid "lpstat: get-classes failed: %s\n"
 msgstr "lpstat: get-classes に失敗しました: %s\n"
 
-#: systemv/lpstat.c:1033 systemv/lpstat.c:1011 systemv/lpstat.c:1039
 #, c-format
 msgid "members of class %s:\n"
 msgstr "クラス %s のメンバー:\n"
 
-#: systemv/lpstat.c:1080 systemv/lpstat.c:1057 systemv/lpstat.c:1085
 #, c-format
 msgid "system default destination: %s/%s\n"
 msgstr "システムのデフォルトの宛先: %s/%s\n"
 
-#: systemv/lpstat.c:1083 systemv/lpstat.c:1060 systemv/lpstat.c:1088
 #, c-format
 msgid "system default destination: %s\n"
 msgstr "システムのデフォルトの宛先: %s\n"
 
-#: systemv/lpstat.c:1105 systemv/lpstat.c:1082 systemv/lpstat.c:1110
 #, c-format
 msgid ""
 "lpstat: error - %s environment variable names non-existent destination \"%s"
 "\"!\n"
 msgstr "lpstat: エラー - 環境変数 %s が存在しない宛先 \"%s\" を指しています!\n"
 
-#: systemv/lpstat.c:1109 systemv/lpstat.c:1086 systemv/lpstat.c:1114
 msgid "no system default destination\n"
 msgstr "システムのデフォルトの宛先がありません\n"
 
-#: systemv/lpstat.c:1313 systemv/lpstat.c:1281 systemv/lpstat.c:1309
-#: systemv/lpstat.c:1311
 #, c-format
 msgid "Output for printer %s is sent to remote printer %s on %s\n"
 msgstr "プリンタ %1$s の出力は、%3$s のリモートプリンタ %2$s に送られます\n"
 
-#: systemv/lpstat.c:1319 systemv/lpstat.c:1323 systemv/lpstat.c:1287
-#: systemv/lpstat.c:1291 systemv/lpstat.c:1315 systemv/lpstat.c:1317
-#: systemv/lpstat.c:1321
 #, c-format
 msgid "Output for printer %s is sent to %s\n"
 msgstr "プリンタ %s の出力は %s に送られます\n"
 
-#: systemv/lpstat.c:1331 systemv/lpstat.c:1299 systemv/lpstat.c:1327
-#: systemv/lpstat.c:1329
 #, c-format
 msgid "Output for printer %s/%s is sent to remote printer %s on %s\n"
 msgstr ""
 "プリンタ %1$s/%2$s の出力は、%4$s のリモートプリンタ %3$s に送られます\n"
 
-#: systemv/lpstat.c:1337 systemv/lpstat.c:1341 systemv/lpstat.c:1305
-#: systemv/lpstat.c:1309 systemv/lpstat.c:1333 systemv/lpstat.c:1335
-#: systemv/lpstat.c:1339
 #, c-format
 msgid "Output for printer %s/%s is sent to %s\n"
 msgstr "プリンタ %s/%s の出力は %s に送られます\n"
 
-#: systemv/lpstat.c:1346 systemv/lpstat.c:1349 systemv/lpstat.c:1352
-#: systemv/lpstat.c:1314 systemv/lpstat.c:1317 systemv/lpstat.c:1320
-#: systemv/lpstat.c:1342 systemv/lpstat.c:1345 systemv/lpstat.c:1348
-#: systemv/lpstat.c:1344 systemv/lpstat.c:1347 systemv/lpstat.c:1350
 #, c-format
 msgid "device for %s: %s\n"
 msgstr "%s のデバイス: %s\n"
 
-#: systemv/lpstat.c:1359 systemv/lpstat.c:1362 systemv/lpstat.c:1365
-#: systemv/lpstat.c:1327 systemv/lpstat.c:1330 systemv/lpstat.c:1333
-#: systemv/lpstat.c:1355 systemv/lpstat.c:1358 systemv/lpstat.c:1361
-#: systemv/lpstat.c:1357 systemv/lpstat.c:1360 systemv/lpstat.c:1363
 #, c-format
 msgid "device for %s/%s: %s\n"
 msgstr "%s/%s のデバイス: %s\n"
 
-#: systemv/lpstat.c:1481 systemv/lpstat.c:1693
 #, c-format
 msgid "lpstat: get-jobs failed: %s\n"
 msgstr "lpstat: get-jobs に失敗しました: %s\n"
 
-#: systemv/lpstat.c:1681 systemv/lpstat.c:1635 systemv/lpstat.c:1663
-#: systemv/lpstat.c:1665
 #, c-format
 msgid "\tqueued for %s\n"
 msgstr "\t%s にキューしました\n"
 
-#: systemv/lpstat.c:2037 systemv/lpstat.c:1971 systemv/lpstat.c:1999
-#: systemv/lpstat.c:2001
 #, c-format
 msgid "printer %s is idle.  enabled since %s\n"
 msgstr "プリンタ %s は待機中です。%s 以来有効です\n"
 
-#: systemv/lpstat.c:2042 systemv/lpstat.c:1976 systemv/lpstat.c:2004
-#: systemv/lpstat.c:2006
 #, c-format
 msgid "printer %s now printing %s-%d.  enabled since %s\n"
 msgstr "プリンタ %s は %s-%d を印刷しています。%s 以来有効です\n"
 
-#: systemv/lpstat.c:2048 systemv/lpstat.c:1982 systemv/lpstat.c:2010
-#: systemv/lpstat.c:2012
 #, c-format
 msgid "printer %s disabled since %s -\n"
 msgstr "プリンタ %s は %s 以来無効です -\n"
 
-#: systemv/lpstat.c:2056 systemv/lpstat.c:2169 systemv/lpstat.c:1990
-#: systemv/lpstat.c:2103 systemv/lpstat.c:2018 systemv/lpstat.c:2131
-#: systemv/lpstat.c:2020 systemv/lpstat.c:2133
 msgid "\treason unknown\n"
 msgstr "\t未知の理由\n"
 
-#: systemv/lpstat.c:2063 systemv/lpstat.c:2176 systemv/lpstat.c:1997
-#: systemv/lpstat.c:2110 systemv/lpstat.c:2025 systemv/lpstat.c:2138
-#: systemv/lpstat.c:2027 systemv/lpstat.c:2140
 msgid ""
 "\tForm mounted:\n"
 "\tContent types: any\n"
@@ -1961,175 +1344,93 @@ msgstr ""
 "\t内容形式: すべて\n"
 "\tプリンタ形式: 未知\n"
 
-#: systemv/lpstat.c:2069 systemv/lpstat.c:2182 systemv/lpstat.c:2003
-#: systemv/lpstat.c:2116 systemv/lpstat.c:2031 systemv/lpstat.c:2144
-#: systemv/lpstat.c:2033 systemv/lpstat.c:2146
 #, c-format
 msgid "\tDescription: %s\n"
 msgstr "\t説明: %s\n"
 
-#: systemv/lpstat.c:2074 systemv/lpstat.c:2187 systemv/lpstat.c:2008
-#: systemv/lpstat.c:2121 systemv/lpstat.c:2036 systemv/lpstat.c:2149
-#: systemv/lpstat.c:2038 systemv/lpstat.c:2151
 msgid "\tAlerts:"
 msgstr "\t警報:"
 
-#: systemv/lpstat.c:2083 systemv/lpstat.c:2196 systemv/lpstat.c:2017
-#: systemv/lpstat.c:2130 systemv/lpstat.c:2045 systemv/lpstat.c:2158
-#: systemv/lpstat.c:2047 systemv/lpstat.c:2160
 #, c-format
 msgid "\tLocation: %s\n"
 msgstr "\t場所: %s\n"
 
-#: systemv/lpstat.c:2088 systemv/lpstat.c:2201 systemv/lpstat.c:2022
-#: systemv/lpstat.c:2135 systemv/lpstat.c:2050 systemv/lpstat.c:2163
-#: systemv/lpstat.c:2052 systemv/lpstat.c:2165
 msgid "\tConnection: remote\n"
 msgstr "\t接続: リモート\n"
 
-#: systemv/lpstat.c:2092 systemv/lpstat.c:2205 systemv/lpstat.c:2026
-#: systemv/lpstat.c:2139 systemv/lpstat.c:2054 systemv/lpstat.c:2167
-#: systemv/lpstat.c:2056 systemv/lpstat.c:2169
 #, c-format
 msgid "\tInterface: %s.ppd\n"
 msgstr "\tインターフェイス: %s.ppd\n"
 
-#: systemv/lpstat.c:2097 systemv/lpstat.c:2210 systemv/lpstat.c:2031
-#: systemv/lpstat.c:2144 systemv/lpstat.c:2059 systemv/lpstat.c:2172
-#: systemv/lpstat.c:2061 systemv/lpstat.c:2174
 msgid "\tConnection: direct\n"
 msgstr "\t接続: 直結\n"
 
-#: systemv/lpstat.c:2101 systemv/lpstat.c:2214 systemv/lpstat.c:2035
-#: systemv/lpstat.c:2148 systemv/lpstat.c:2063 systemv/lpstat.c:2176
-#: systemv/lpstat.c:2065 systemv/lpstat.c:2178
 #, c-format
 msgid "\tInterface: %s/interfaces/%s\n"
 msgstr "\tインターフェイス: %s/interfaces/%s\n"
 
-#: systemv/lpstat.c:2105 systemv/lpstat.c:2218 systemv/lpstat.c:2039
-#: systemv/lpstat.c:2152 systemv/lpstat.c:2067 systemv/lpstat.c:2180
-#: systemv/lpstat.c:2069 systemv/lpstat.c:2182
 #, c-format
 msgid "\tInterface: %s/ppd/%s.ppd\n"
 msgstr "\tインターフェイス: %s/ppd/%s.ppd\n"
 
-#: systemv/lpstat.c:2107 systemv/lpstat.c:2220 systemv/lpstat.c:2041
-#: systemv/lpstat.c:2154 systemv/lpstat.c:2069 systemv/lpstat.c:2182
-#: systemv/lpstat.c:2071 systemv/lpstat.c:2184
 msgid "\tOn fault: no alert\n"
 msgstr "\t失敗時: 警告なし\n"
 
-#: systemv/lpstat.c:2108 systemv/lpstat.c:2221 systemv/lpstat.c:2042
-#: systemv/lpstat.c:2155 systemv/lpstat.c:2070 systemv/lpstat.c:2183
-#: systemv/lpstat.c:2072 systemv/lpstat.c:2185
 msgid "\tAfter fault: continue\n"
 msgstr "\t失敗後: 継続\n"
 
-#: systemv/lpstat.c:2112 systemv/lpstat.c:2126 systemv/lpstat.c:2225
-#: systemv/lpstat.c:2239 systemv/lpstat.c:2046 systemv/lpstat.c:2060
-#: systemv/lpstat.c:2159 systemv/lpstat.c:2173 systemv/lpstat.c:2074
-#: systemv/lpstat.c:2088 systemv/lpstat.c:2187 systemv/lpstat.c:2201
-#: systemv/lpstat.c:2076 systemv/lpstat.c:2090 systemv/lpstat.c:2189
-#: systemv/lpstat.c:2203
 msgid "\tUsers allowed:\n"
 msgstr "\t許可されているユーザ:\n"
 
-#: systemv/lpstat.c:2119 systemv/lpstat.c:2232 systemv/lpstat.c:2053
-#: systemv/lpstat.c:2166 systemv/lpstat.c:2081 systemv/lpstat.c:2194
-#: systemv/lpstat.c:2083 systemv/lpstat.c:2196
 msgid "\tUsers denied:\n"
 msgstr "\t拒否されているユーザ:\n"
 
-#: systemv/lpstat.c:2127 systemv/lpstat.c:2240 systemv/lpstat.c:2061
-#: systemv/lpstat.c:2174 systemv/lpstat.c:2089 systemv/lpstat.c:2202
-#: systemv/lpstat.c:2091 systemv/lpstat.c:2204
 msgid "\t\t(all)\n"
 msgstr "\t\t(すべて)\n"
 
-#: systemv/lpstat.c:2129 systemv/lpstat.c:2242 systemv/lpstat.c:2063
-#: systemv/lpstat.c:2176 systemv/lpstat.c:2091 systemv/lpstat.c:2204
-#: systemv/lpstat.c:2093 systemv/lpstat.c:2206
 msgid "\tForms allowed:\n"
 msgstr "\t許可されている用紙:\n"
 
-#: systemv/lpstat.c:2130 systemv/lpstat.c:2133 systemv/lpstat.c:2243
-#: systemv/lpstat.c:2246 systemv/lpstat.c:2064 systemv/lpstat.c:2067
-#: systemv/lpstat.c:2177 systemv/lpstat.c:2180 systemv/lpstat.c:2092
-#: systemv/lpstat.c:2095 systemv/lpstat.c:2205 systemv/lpstat.c:2208
-#: systemv/lpstat.c:2094 systemv/lpstat.c:2097 systemv/lpstat.c:2207
-#: systemv/lpstat.c:2210
 msgid "\t\t(none)\n"
 msgstr "\t\t(なし)\n"
 
-#: systemv/lpstat.c:2131 systemv/lpstat.c:2244 systemv/lpstat.c:2065
-#: systemv/lpstat.c:2178 systemv/lpstat.c:2093 systemv/lpstat.c:2206
-#: systemv/lpstat.c:2095 systemv/lpstat.c:2208
 msgid "\tBanner required\n"
 msgstr "\tバナーが必要\n"
 
-#: systemv/lpstat.c:2132 systemv/lpstat.c:2245 systemv/lpstat.c:2066
-#: systemv/lpstat.c:2179 systemv/lpstat.c:2094 systemv/lpstat.c:2207
-#: systemv/lpstat.c:2096 systemv/lpstat.c:2209
 msgid "\tCharset sets:\n"
 msgstr "\t文字セット:\n"
 
-#: systemv/lpstat.c:2134 systemv/lpstat.c:2247 systemv/lpstat.c:2068
-#: systemv/lpstat.c:2181 systemv/lpstat.c:2096 systemv/lpstat.c:2209
-#: systemv/lpstat.c:2098 systemv/lpstat.c:2211
 msgid "\tDefault pitch:\n"
 msgstr "\tデフォルトピッチ:\n"
 
-#: systemv/lpstat.c:2135 systemv/lpstat.c:2248 systemv/lpstat.c:2069
-#: systemv/lpstat.c:2182 systemv/lpstat.c:2097 systemv/lpstat.c:2210
-#: systemv/lpstat.c:2099 systemv/lpstat.c:2212
 msgid "\tDefault page size:\n"
 msgstr "\tデフォルト用紙サイズ:\n"
 
-#: systemv/lpstat.c:2136 systemv/lpstat.c:2249 systemv/lpstat.c:2070
-#: systemv/lpstat.c:2183 systemv/lpstat.c:2098 systemv/lpstat.c:2211
-#: systemv/lpstat.c:2100 systemv/lpstat.c:2213
 msgid "\tDefault port settings:\n"
 msgstr "\tデフォルトポート設定:\n"
 
-#: systemv/lpstat.c:2146 systemv/lpstat.c:2080 systemv/lpstat.c:2108
-#: systemv/lpstat.c:2110
 #, c-format
 msgid "printer %s/%s is idle.  enabled since %s\n"
 msgstr "プリンタ %s/%s は待機中です。%s 以来有効です\n"
 
-#: systemv/lpstat.c:2153 systemv/lpstat.c:2087 systemv/lpstat.c:2115
-#: systemv/lpstat.c:2117
 #, c-format
 msgid "printer %s/%s now printing %s-%d.  enabled since %s\n"
 msgstr "プリンタ %s/%s は %s-%d を印刷しています。%s 以来有効です\n"
 
-#: systemv/lpstat.c:2160 systemv/lpstat.c:2094 systemv/lpstat.c:2122
-#: systemv/lpstat.c:2124
 #, c-format
 msgid "printer %s/%s disabled since %s -\n"
 msgstr "プリンタ %s/%s は %s 以来無効です -\n"
 
-#: systemv/lpstat.c:2279 systemv/lpstat.c:2212 systemv/lpstat.c:2240
-#: systemv/lpstat.c:2242
 msgid "scheduler is running\n"
 msgstr "スケジューラは動作中です\n"
 
-#: systemv/lpstat.c:2281 systemv/lpstat.c:2214 systemv/lpstat.c:2242
-#: systemv/lpstat.c:2244
 msgid "scheduler is not running\n"
 msgstr "スケジューラは動作していません\n"
 
-#: systemv/lpadmin.c:113 systemv/lpadmin.c:166 systemv/lpadmin.c:237
-#: systemv/lpadmin.c:298 systemv/lpadmin.c:317 systemv/lpadmin.c:383
-#: systemv/lpadmin.c:424 systemv/lpadmin.c:511 systemv/lpadmin.c:557
-#: systemv/lpadmin.c:603 systemv/lpadmin.c:665 systemv/lpadmin.c:711
-#: systemv/lpadmin.c:772
 #, c-format
 msgid "lpadmin: Unable to connect to server: %s\n"
 msgstr "lpadmin: サーバに接続できません: %s\n"
 
-#: systemv/lpadmin.c:122
 msgid ""
 "lpadmin: Unable to add a printer to the class:\n"
 "         You must specify a printer name first!\n"
@@ -2137,27 +1438,21 @@ msgstr ""
 "lpadmin: クラスにプリンタを追加できません:\n"
 "         先にプリンタ名を指定する必要があります!\n"
 
-#: systemv/lpadmin.c:137
 msgid "lpadmin: Expected class name after '-c' option!\n"
 msgstr "lpadmin: '-c' オプションのあとにはクラス名が必要です!\n"
 
-#: systemv/lpadmin.c:148 systemv/lpadmin.c:460
 msgid "lpadmin: Class name can only contain printable characters!\n"
 msgstr "lpadmin: クラス名は表示可能文字のみで構成されなければなりません!\n"
 
-#: systemv/lpadmin.c:181
 msgid "lpadmin: Expected printer name after '-d' option!\n"
 msgstr "lpadmin: '-d' オプションのあとにはプリンタ名が必要です!\n"
 
-#: systemv/lpadmin.c:192 systemv/lpadmin.c:409 systemv/lpadmin.c:583
 msgid "lpadmin: Printer name can only contain printable characters!\n"
 msgstr "lpadmin: プリンタ名は表示可能文字のみで構成されなければなりません!\n"
 
-#: systemv/lpadmin.c:219
 msgid "lpadmin: Expected hostname after '-h' option!\n"
 msgstr "lpadmin: '-h' オプションのあとにはホスト名が必要です!\n"
 
-#: systemv/lpadmin.c:246
 msgid ""
 "lpadmin: Unable to set the interface script:\n"
 "         You must specify a printer name first!\n"
@@ -2165,11 +1460,9 @@ msgstr ""
 "lpadmin: インターフェイススクリプトを設定できません:\n"
 "         先にプリンタ名を指定する必要があります!\n"
 
-#: systemv/lpadmin.c:264
 msgid "lpadmin: Expected interface after '-i' option!\n"
 msgstr "lpadmin: '-i' オプションのあとにはインターフェイス名が必要です!\n"
 
-#: systemv/lpadmin.c:326
 msgid ""
 "lpadmin: Unable to set the interface script or PPD file:\n"
 "         You must specify a printer name first!\n"
@@ -2177,19 +1470,15 @@ msgstr ""
 "lpadmin: インターフェイススクリプトまたは PPD ファイルを設定できません:\n"
 "         先にプリンタ名を指定する必要があります!\n"
 
-#: systemv/lpadmin.c:345
 msgid "lpadmin: Expected model after '-m' option!\n"
 msgstr "lpadmin: '-m' オプションのあとにはモデル名が必要です!\n"
 
-#: systemv/lpadmin.c:365
 msgid "lpadmin: Expected name=value after '-o' option!\n"
 msgstr "lpadmin: '-o' オプションのあとには 名前=値 が必要です!\n"
 
-#: systemv/lpadmin.c:398
 msgid "lpadmin: Expected printer after '-p' option!\n"
 msgstr "lpadmin: '-p' オプションのあとにはプリンタ名が必要です!\n"
 
-#: systemv/lpadmin.c:433
 msgid ""
 "lpadmin: Unable to remove a printer from the class:\n"
 "         You must specify a printer name first!\n"
@@ -2197,21 +1486,17 @@ msgstr ""
 "lpadmin: クラスからプリンタを削除できません:\n"
 "         先にプリンタ名を指定する必要があります!\n"
 
-#: systemv/lpadmin.c:449
 msgid "lpadmin: Expected class after '-r' option!\n"
 msgstr "lpadmin: '-r' オプションのあとにはクラス名が必要です!\n"
 
-#: systemv/lpadmin.c:479
 msgid "lpadmin: Expected allow/deny:userlist after '-u' option!\n"
 msgstr ""
 "lpadmin: '-u' オプションのあとには allow/deny:ユーザリスト が必要です!\n"
 
-#: systemv/lpadmin.c:496
 #, c-format
 msgid "lpadmin: Unknown allow/deny option \"%s\"!\n"
 msgstr "lpadmin: \"%s\" は未知の allow/deny オプションです!\n"
 
-#: systemv/lpadmin.c:520
 msgid ""
 "lpadmin: Unable to set the device URI:\n"
 "         You must specify a printer name first!\n"
@@ -2219,16 +1504,13 @@ msgstr ""
 "lpadmin: デバイス URI を設定できません:\n"
 "         先にプリンタ名を指定する必要があります!\n"
 
-#: systemv/lpadmin.c:538
 msgid "lpadmin: Expected device URI after '-v' option!\n"
 msgstr "lpadmin: '-v' オプションのあとにはデバイス URI が必要です!\n"
 
-#: systemv/lpadmin.c:572
 msgid "lpadmin: Expected printer or class after '-x' option!\n"
 msgstr ""
 "lpadmin: '-x' オプションのあとにはプリンタ名またはクラス名が必要です!\n"
 
-#: systemv/lpadmin.c:612
 msgid ""
 "lpadmin: Unable to set the printer description:\n"
 "         You must specify a printer name first!\n"
@@ -2236,19 +1518,15 @@ msgstr ""
 "lpadmin: プリンタ説明を設定できません:\n"
 "         先にプリンタ名を指定する必要があります!\n"
 
-#: systemv/lpadmin.c:631
 msgid "lpadmin: Expected description after '-D' option!\n"
 msgstr "lpadmin: '-D' オプションのあとに説明が必要です!\n"
 
-#: systemv/lpadmin.c:647
 msgid "lpadmin: Expected file type(s) after '-I' option!\n"
 msgstr "lpadmin: '-I' オプションのあとにファイル形式が必要です!\n"
 
-#: systemv/lpadmin.c:653
 msgid "lpadmin: Warning - content type list ignored!\n"
 msgstr "lpadmin: 警告 - コンテンツタイプリストは無視されます!\n"
 
-#: systemv/lpadmin.c:674
 msgid ""
 "lpadmin: Unable to set the printer location:\n"
 "         You must specify a printer name first!\n"
@@ -2256,11 +1534,9 @@ msgstr ""
 "lpadmin: プリンタの場所が設定できません:\n"
 "         先にプリンタ名を指定する必要があります!\n"
 
-#: systemv/lpadmin.c:692
 msgid "lpadmin: Expected location after '-L' option!\n"
 msgstr "lpadmin: '-L' オプションのあとに場所が必要です!\n"
 
-#: systemv/lpadmin.c:720
 msgid ""
 "lpadmin: Unable to set the PPD file:\n"
 "         You must specify a printer name first!\n"
@@ -2268,21 +1544,17 @@ msgstr ""
 "lpadmin: PPD ファイルを設定できません:\n"
 "         先にプリンタ名を指定する必要があります!\n"
 
-#: systemv/lpadmin.c:738
 msgid "lpadmin: Expected PPD after '-P' option!\n"
 msgstr "lpadmin: '-P' オプションのあとに PPD が必要です!\n"
 
-#: systemv/lpadmin.c:749
 #, c-format
 msgid "lpadmin: Unknown option '%c'!\n"
 msgstr "lpadmin: '%c' は未知のオプションです!\n"
 
-#: systemv/lpadmin.c:754
 #, c-format
 msgid "lpadmin: Unknown argument '%s'!\n"
 msgstr "lpadmin: '%s' は未知の引数です!\n"
 
-#: systemv/lpadmin.c:781
 msgid ""
 "lpadmin: Unable to set the printer options:\n"
 "         You must specify a printer name first!\n"
@@ -2290,7 +1562,6 @@ msgstr ""
 "lpadmin: プリンタオプションを設定できません:\n"
 "         先にプリンタ名を指定する必要があります!\n"
 
-#: systemv/lpadmin.c:793
 msgid ""
 "Usage:\n"
 "\n"
@@ -2313,213 +1584,167 @@ msgstr ""
 "                       [-u allow:ユーザ,ユーザ] [-u deny:ユーザ,ユーザ]\n"
 "\n"
 
-#: systemv/lpadmin.c:1554 systemv/lpadmin.c:1440
 #, c-format
 msgid "lpadmin: Unable to create temporary file: %s\n"
 msgstr "lpadmin: テンポラリファイルを作成できません: %s\n"
 
-#: systemv/lpadmin.c:1562 systemv/lpadmin.c:1448
 #, c-format
 msgid "lpadmin: Unable to open file \"%s\": %s\n"
 msgstr "lpadmin: ファイル \"%s\" を開くことができません: %s\n"
 
-#: systemv/lpadmin.c:1631 systemv/lpadmin.c:1862 systemv/lpadmin.c:1870
 #, c-format
 msgid "lpadmin: add-printer (set model) failed: %s\n"
 msgstr "lpadmin: add-printer (モデルの設定) に失敗しました: %s\n"
 
-#: systemv/lpadmin.c:1701 systemv/lpadmin.c:1708
 #, c-format
 msgid "lpadmin: add-printer (set description) failed: %s\n"
 msgstr "lpadmin: add-printer (説明の設定) に失敗しました: %s\n"
 
-#: systemv/lpadmin.c:1784 systemv/lpadmin.c:1792
 #, c-format
 msgid "lpadmin: add-printer (set location) failed: %s\n"
 msgstr "lpadmin: add-printer (場所の設定) に失敗しました: %s\n"
 
-#: systemv/lpadmin.c:2021 systemv/lpadmin.c:1814 systemv/lpadmin.c:1831
 #, c-format
 msgid "lpadmin: Unable to create temporary file - %s\n"
 msgstr "lpadmin: テンポラリファイルを作成できません - %s\n"
 
-#: systemv/lpadmin.c:2031 systemv/lpadmin.c:1824 systemv/lpadmin.c:1841
 #, c-format
 msgid "lpadmin: Unable to open PPD file \"%s\" - %s\n"
 msgstr "lpadmin: PPD ファイル \"%s\" を開くことができません - %s\n"
 
-#: systemv/lpadmin.c:2117 systemv/lpadmin.c:2125
 #, c-format
 msgid "lpadmin: %s failed: %s\n"
 msgstr "lpadmin: %s 失敗しました: %s\n"
 
-#: systemv/lp.c:153
 msgid "lp: Expected destination after -d option!\n"
 msgstr "lp: -d オプションのあとには宛先が必要です!\n"
 
-#: systemv/lp.c:184
 msgid "lp: Expected form after -f option!\n"
 msgstr "lp: -f オプションのあとには用紙名が必要です!\n"
 
-#: systemv/lp.c:202
 msgid "lp: Expected hostname after -h option!\n"
 msgstr "lp: -h オプションのあとにはホスト名が必要です!\n"
 
-#: systemv/lp.c:220
 msgid "lp: Expected job ID after -i option!\n"
 msgstr "lp: -i オプションのあとにはジョブ ID が必要です!\n"
 
-#: systemv/lp.c:230
 msgid "lp: Error - cannot print files and alter jobs simultaneously!\n"
 msgstr ""
 "lp: エラー - ファイルを印刷できず、ジョブを同時に変えることができません!\n"
 
-#: systemv/lp.c:242
 msgid "lp: Error - bad job ID!\n"
 msgstr "lp: エラー - 不正なジョブ ID です!\n"
 
-#: systemv/lp.c:264
 msgid "lp: Expected copies after -n option!\n"
 msgstr "lp: -n オプションのあとにはコピー数が必要です!\n"
 
-#: systemv/lp.c:285
 msgid "lp: Expected option string after -o option!\n"
 msgstr "lp: -o オプションのあとには文字列が必要です!\n"
 
-#: systemv/lp.c:304
 #, c-format
 msgid "lp: Expected priority after -%c option!\n"
 msgstr "lp: -%c オプションのあとには優先度が必要です!\n"
 
-#: systemv/lp.c:326
 msgid "lp: Priority must be between 1 and 100.\n"
 msgstr "lp: 優先度は 1 から 100 の間である必要があります。\n"
 
-#: systemv/lp.c:348
 msgid "lp: Expected title after -t option!\n"
 msgstr "lp: -t オプションのあとにはタイトルが必要です!\n"
 
-#: systemv/lp.c:364
 msgid "lp: Expected mode list after -y option!\n"
 msgstr "lp: -y オプションのあとにはモードリストが必要です!\n"
 
-#: systemv/lp.c:370
 msgid "lp: Warning - mode option ignored!\n"
 msgstr "lp: 警告 - モードオプションは無視されます!\n"
 
-#: systemv/lp.c:383
 msgid "lp: Expected hold name after -H option!\n"
 msgstr "lp: -H オプションのあとにはホールド名が必要です!\n"
 
-#: systemv/lp.c:405
 msgid "lp: Need job ID (-i) before \"-H restart\"!\n"
 msgstr "\"-H restart\" の前にはジョブ ID (-i) が必要です!\n"
 
-#: systemv/lp.c:427
 msgid "lp: Expected page list after -P option!\n"
 msgstr "lp: -P オプションのあとにはページリストが必要です!\n"
 
-#: systemv/lp.c:446
 msgid "lp: Expected character set after -S option!\n"
 msgstr "lp: -S オプションのあとには文字セットが必要です!\n"
 
-#: systemv/lp.c:452
 msgid "lp: Warning - character set option ignored!\n"
 msgstr "lp: 警告 - 文字セットオプションは無視されます!\n"
 
-#: systemv/lp.c:463
 msgid "lp: Expected content type after -T option!\n"
 msgstr "lp: -T オプションのあとにはコンテンツタイプが必要です!\n"
 
-#: systemv/lp.c:469
 msgid "lp: Warning - content type option ignored!\n"
 msgstr "lp: 警告 - コンテンツタイプオプションは無視されます!\n"
 
-#: systemv/lp.c:473
 #, c-format
 msgid "lp: Unknown option '%c'!\n"
 msgstr "lp: '%c' は未知のオプションです!\n"
 
-#: systemv/lp.c:482
 msgid ""
 "lp: Error - cannot print from stdin if files or a job ID are provided!\n"
 msgstr ""
 "lp: エラー - ファイルまたはジョブ ID が提供されている場合、標準入力から印刷で"
 "きません!\n"
 
-#: systemv/lp.c:497
 #, c-format
 msgid "lp: Unable to access \"%s\" - %s\n"
 msgstr "lp: \"%s\" にアクセスできません - %s\n"
 
-#: systemv/lp.c:514
 #, c-format
 msgid "lp: Too many files - \"%s\"\n"
 msgstr "lp: ファイルが多すぎます - \"%s\"\n"
 
-#: systemv/lp.c:569
 msgid "lp: error - no default destination available.\n"
 msgstr "lp: エラー - 利用可能なデフォルトの宛先がありません。\n"
 
-#: systemv/lp.c:572
 msgid "lp: error - scheduler not responding!\n"
 msgstr "lp: エラー - スケジューラが応答していません!\n"
 
-#: systemv/lp.c:611
 #, c-format
 msgid "lp: unable to create temporary file \"%s\" - %s\n"
 msgstr "lp: テンポラリファイル \"%s\" を作成できません - %s\n"
 
-#: systemv/lp.c:620
 #, c-format
 msgid "lp: error - unable to write to temporary file \"%s\" - %s\n"
 msgstr "lp: エラー - テンポラリファイル \"%s\" に書き込めません - %s\n"
 
-#: systemv/lp.c:634
 msgid "lp: stdin is empty, so no job has been sent.\n"
 msgstr "lp: 標準入力が空なので、ジョブは送られていません。\n"
 
-#: systemv/lp.c:650
 #, c-format
 msgid "lp: unable to print file: %s\n"
 msgstr "lp: ファイルを印刷できません: %s\n"
 
-#: systemv/lp.c:656 systemv/lp.c:653 systemv/lp.c:713 systemv/lp.c:729
 #, c-format
 msgid "request id is %s-%d (%d file(s))\n"
 msgstr "リクエスト ID は %s-%d です (%d 個のファイル)\n"
 
-#: systemv/lp.c:703 systemv/lp.c:713
 #, c-format
 msgid "lp: restart-job failed: %s\n"
 msgstr "lp: restart-job に失敗しました: %s\n"
 
-#: systemv/lp.c:769 systemv/lp.c:779
 #, c-format
 msgid "lp: set-job-attributes failed: %s\n"
 msgstr "lp: set-job-attributes に失敗しました: %s\n"
 
-#: systemv/lpinfo.c:98 systemv/lpinfo.c:117
 #, c-format
 msgid "lpinfo: Unable to connect to server: %s\n"
 msgstr "lpinfo: サーバに接続できません: %s\n"
 
-#: systemv/lpinfo.c:152
 #, c-format
 msgid "lpinfo: Unknown option '%c'!\n"
 msgstr "lpinfo: '%c' は未知のオプションです!\n"
 
-#: systemv/lpinfo.c:158
 #, c-format
 msgid "lpinfo: Unknown argument '%s'!\n"
 msgstr "lpinfo: '%s' は未知の引数です!\n"
 
-#: systemv/lpinfo.c:225 systemv/lpinfo.c:310
 #, c-format
 msgid "lpinfo: cups-get-devices failed: %s\n"
 msgstr "lpinfo: cups-get-devices に失敗しました: %s\n"
 
-#: systemv/lpinfo.c:293
 #, c-format
 msgid ""
 "Device: uri = %s\n"
@@ -2532,12 +1757,10 @@ msgstr ""
 "          info = %s\n"
 "          make-and-model = %s\n"
 
-#: systemv/lpinfo.c:376 systemv/lpinfo.c:454
 #, c-format
 msgid "lpinfo: cups-get-ppds failed: %s\n"
 msgstr "lpinfo: cups-get-ppds に失敗しました: %s\n"
 
-#: systemv/lpinfo.c:438
 #, c-format
 msgid ""
 "Model:  name = %s\n"
@@ -2548,54 +1771,43 @@ msgstr ""
 "         natural_language = %s\n"
 "         make-and-model = %s\n"
 
-#: systemv/lpmove.c:114 systemv/lpmove.c:119
 #, c-format
 msgid "lpmove: Unknown option '%c'!\n"
 msgstr "lpmove: '%c' は未知のオプションです!\n"
 
-#: systemv/lpmove.c:133 systemv/lpmove.c:138
 #, c-format
 msgid "lpmove: Unknown argument '%s'!\n"
 msgstr "lpmove: '%s' は未知の引数です!\n"
 
-#: systemv/lpmove.c:140
 msgid "Usage: lpmove job dest\n"
 msgstr "使い方: lpmove ジョブ 宛先\n"
 
-#: systemv/lpmove.c:151 systemv/lpmove.c:156
 #, c-format
 msgid "lpmove: Unable to connect to server: %s\n"
 msgstr "lpmove: サーバに接続できません: %s\n"
 
-#: systemv/lpmove.c:225 systemv/lpmove.c:234
 #, c-format
 msgid "lpmove: move-job failed: %s\n"
 msgstr "lpmove: move-job に失敗しました: %s\n"
 
-#: systemv/lpoptions.c:109
 msgid "lpoptions: Unknown printer or class!\n"
 msgstr "lpoptions: 未知のプリンタまたはクラスです!\n"
 
-#: systemv/lpoptions.c:159
 msgid "lpoptions: No printers!?!\n"
 msgstr "lpoptions: プリンタがありません!?!\n"
 
-#: systemv/lpoptions.c:207
 #, c-format
 msgid "lpoptions: Unable to add printer or instance: %s\n"
 msgstr "lpoptions: プリンタまたはインスタンスを追加できません: %s\n"
 
-#: systemv/lpoptions.c:411
 #, c-format
 msgid "lpoptions: Destination %s has no PPD file!\n"
 msgstr "lpoptions: 宛先 %s は PPD ファイルを持っていません!\n"
 
-#: systemv/lpoptions.c:420
 #, c-format
 msgid "lpoptions: Unable to open PPD file for %s!\n"
 msgstr "lpoptions: %s の PPD ファイルを開くことができません!\n"
 
-#: systemv/lpoptions.c:444
 msgid ""
 "Usage: lpoptions [-h server] [-E] -d printer\n"
 "       lpoptions [-h server] [-E] [-p printer] -l\n"
@@ -2607,32 +1819,25 @@ msgstr ""
 "        lpoptions [-h サーバ] [-E] -p プリンタ -o オプション[=値] ...\n"
 "        lpoptions [-h サーバ] [-E] -x プリンタ\n"
 
-#: systemv/lppasswd.c:192
 msgid "lppasswd: Only root can add or delete passwords!\n"
 msgstr "lppasswd: root だけがパスワードの追加と削除を行えます!\n"
 
-#: systemv/lppasswd.c:212
 msgid "Enter old password:"
 msgstr "古いパスワードを入力:"
 
-#: systemv/lppasswd.c:218 systemv/lppasswd.c:236
 #, c-format
 msgid "lppasswd: Unable to copy password string: %s\n"
 msgstr "lppasswd: パスワード文字列をコピーできません: %s\n"
 
-#: systemv/lppasswd.c:230
 msgid "Enter password:"
 msgstr "パスワードを入力:"
 
-#: systemv/lppasswd.c:241
 msgid "Enter password again:"
 msgstr "パスワードを再度入力:"
 
-#: systemv/lppasswd.c:247
 msgid "lppasswd: Sorry, passwords don't match!\n"
 msgstr "lppasswd: すみませんが、パスワードがマッチしません!\n"
 
-#: systemv/lppasswd.c:271
 msgid ""
 "lppasswd: Sorry, password rejected.\n"
 "Your password must be at least 6 characters long, cannot contain\n"
@@ -2642,49 +1847,39 @@ msgstr ""
 "パスワードは少なくとも 6 文字以上で、あなたのユーザ名を含んではならず、\n"
 "少なくとも 1 つの英字および数値を含んでなければなりません。\n"
 
-#: systemv/lppasswd.c:321
 msgid "lppasswd: Password file busy!\n"
 msgstr "lppasswd: パスワードファイルがビジー状態です!\n"
 
-#: systemv/lppasswd.c:324 systemv/lppasswd.c:333 systemv/lppasswd.c:351
 #, c-format
 msgid "lppasswd: Unable to open password file: %s\n"
 msgstr "lppasswd: パスワードファイルを開くことができません: %s\n"
 
-#: systemv/lppasswd.c:386 systemv/lppasswd.c:399 systemv/lppasswd.c:431
 #, c-format
 msgid "lppasswd: Unable to write to password file: %s\n"
 msgstr "lppasswd: パスワードファイルに書き込むことができません: %s\n"
 
-#: systemv/lppasswd.c:411
 #, c-format
 msgid "lppasswd: user \"%s\" and group \"%s\" do not exist.\n"
 msgstr "lppasswd: ユーザ \"%s\" およびグループ \"%s\" は存在しません。\n"
 
-#: systemv/lppasswd.c:421
 msgid "lppasswd: Sorry, password doesn't match!\n"
 msgstr "lppasswd: すみませんが、パスワードがマッチしません!\n"
 
-#: systemv/lppasswd.c:454
 msgid "lppasswd: Password file not updated!\n"
 msgstr "lppasswd: パスワードファイルは更新されません!\n"
 
-#: systemv/lppasswd.c:469
 #, c-format
 msgid "lppasswd: failed to backup old password file: %s\n"
 msgstr ""
 "lppasswd: 古いパスワードファイルをバックアップするのに失敗しました: %s\n"
 
-#: systemv/lppasswd.c:482
 #, c-format
 msgid "lppasswd: failed to rename password file: %s\n"
 msgstr "lppasswd: パスワードファイルを名前変更するのに失敗しました: %s\n"
 
-#: systemv/lppasswd.c:501 systemv/lppasswd.c:500
 msgid "Usage: lppasswd [-g groupname]\n"
 msgstr "使い方: lppasswd [-g グループ名]\n"
 
-#: systemv/lppasswd.c:506 systemv/lppasswd.c:503
 msgid ""
 "Usage: lppasswd [-g groupname] [username]\n"
 "       lppasswd [-g groupname] -a [username]\n"
@@ -2694,53 +1889,39 @@ msgstr ""
 "       lppasswd [-g グループ名] -a [ユーザ名]\n"
 "       lppasswd [-g グループ名] -x [ユーザ名]\n"
 
-#: cgi-bin/admin.c:125 cgi-bin/admin.c:142 cgi-bin/admin.c:143
 msgid "Start Printer"
 msgstr "プリンタの開始"
 
-#: cgi-bin/admin.c:127 cgi-bin/admin.c:144 cgi-bin/admin.c:145
 msgid "Stop Printer"
 msgstr "プリンタの停止"
 
-#: cgi-bin/admin.c:129 cgi-bin/admin.c:146 cgi-bin/admin.c:147
 msgid "Start Class"
 msgstr "クラスの開始"
 
-#: cgi-bin/admin.c:131 cgi-bin/admin.c:148 cgi-bin/admin.c:149
 msgid "Stop Class"
 msgstr "クラスの停止"
 
-#: cgi-bin/admin.c:133 cgi-bin/admin.c:150 cgi-bin/admin.c:151
 msgid "Accept Jobs"
 msgstr "ジョブの受け付け"
 
-#: cgi-bin/admin.c:135 cgi-bin/admin.c:152 cgi-bin/admin.c:153
 msgid "Reject Jobs"
 msgstr "ジョブの拒否"
 
-#: cgi-bin/admin.c:137 cgi-bin/admin.c:154 cgi-bin/admin.c:155
 msgid "Purge Jobs"
 msgstr "ジョブの削除"
 
-#: cgi-bin/admin.c:141 cgi-bin/admin.c:158 cgi-bin/admin.c:159
 msgid "Set As Default"
 msgstr "デフォルトに設定"
 
-#: cgi-bin/admin.c:168 cgi-bin/admin.c:179 cgi-bin/admin.c:2690
-#: cgi-bin/admin.c:185 cgi-bin/admin.c:196 cgi-bin/admin.c:2734
-#: cgi-bin/admin.c:186 cgi-bin/admin.c:197 cgi-bin/admin.c:2377
 msgid "Administration"
 msgstr "管理"
 
-#: cgi-bin/admin.c:224 cgi-bin/admin.c:241 cgi-bin/admin.c:242
 msgid "Modify Class"
 msgstr "クラスの変更"
 
-#: cgi-bin/admin.c:224 cgi-bin/admin.c:241 cgi-bin/admin.c:242
 msgid "Add Class"
 msgstr "クラスの追加"
 
-#: cgi-bin/admin.c:385 cgi-bin/admin.c:402 cgi-bin/admin.c:404
 msgid ""
 "The class name may only contain up to 127 printable characters and may not "
 "contain spaces, slashes (/), or the pound sign (#)."
@@ -2748,23 +1929,18 @@ msgstr ""
 "クラス名は 127 文字以内の表示可能文字から成り、空白、スラッシュ (/)、ポンド記"
 "号 (#) を含んではなりません。"
 
-#: cgi-bin/admin.c:444 cgi-bin/admin.c:462 cgi-bin/admin.c:464
 msgid "Unable to modify class:"
 msgstr "クラスを変更できません:"
 
-#: cgi-bin/admin.c:445 cgi-bin/admin.c:463 cgi-bin/admin.c:465
 msgid "Unable to add class:"
 msgstr "クラスを追加できません:"
 
-#: cgi-bin/admin.c:514 cgi-bin/admin.c:532 cgi-bin/admin.c:534
 msgid "Modify Printer"
 msgstr "プリンタの変更"
 
-#: cgi-bin/admin.c:514 cgi-bin/admin.c:532 cgi-bin/admin.c:534
 msgid "Add Printer"
 msgstr "プリンタの追加"
 
-#: cgi-bin/admin.c:583 cgi-bin/admin.c:602 cgi-bin/admin.c:604
 msgid ""
 "The printer name may only contain up to 127 printable characters and may not "
 "contain spaces, slashes (/), or the pound sign (#)."
@@ -2772,443 +1948,306 @@ msgstr ""
 "プリンタ名は 127 文字以内の表示可能文字から成り、空白、スラッシュ (/)、ポンド"
 "記号 (#) を含んではなりません。"
 
-#: cgi-bin/admin.c:900 cgi-bin/admin.c:930 cgi-bin/admin.c:932
 msgid "Unable to get list of printer drivers:"
 msgstr "プリンタドライバのリストを取得できません:"
 
-#: cgi-bin/admin.c:983 cgi-bin/admin.c:1014 cgi-bin/admin.c:1016
 msgid "Unable to modify printer:"
 msgstr "プリンタを変更できません:"
 
-#: cgi-bin/admin.c:984 cgi-bin/admin.c:1015 cgi-bin/admin.c:1017
 msgid "Unable to add printer:"
 msgstr "プリンタを追加できません:"
 
-#: cgi-bin/admin.c:1051 cgi-bin/admin.c:1082 cgi-bin/admin.c:1084
 msgid "Set Printer Options"
 msgstr "プリンタオプションの設定"
 
-#: cgi-bin/admin.c:1062 cgi-bin/admin.c:2330 cgi-bin/admin.c:2391
-#: cgi-bin/admin.c:3112 cgi-bin/admin.c:3213 cgi-bin/admin.c:3449
-#: cgi-bin/admin.c:1095 cgi-bin/admin.c:2374 cgi-bin/admin.c:2435
-#: cgi-bin/admin.c:3156 cgi-bin/admin.c:3258 cgi-bin/admin.c:3496
-#: cgi-bin/admin.c:1097 cgi-bin/admin.c:1846 cgi-bin/admin.c:1907
-#: cgi-bin/admin.c:2405 cgi-bin/admin.c:2507 cgi-bin/admin.c:2745
 msgid "Missing form variable!"
 msgstr "フォームの値がありません!"
 
-#: cgi-bin/admin.c:1076 cgi-bin/admin.c:1113 cgi-bin/admin.c:1115
 msgid "Unable to get PPD file!"
 msgstr "PPD ファイルを取得できません!"
 
-#: cgi-bin/admin.c:1084 cgi-bin/admin.c:1123 cgi-bin/admin.c:1125
 msgid "Unable to open PPD file:"
 msgstr "PPD ファイルを取得できません:"
 
-#: cgi-bin/admin.c:1241 cgi-bin/admin.c:1282 cgi-bin/admin.c:1290
 msgid "Banners"
 msgstr "バナー"
 
-#: cgi-bin/admin.c:1255 cgi-bin/admin.c:1296 cgi-bin/admin.c:1304
 msgid "Starting Banner"
 msgstr "開始バナー"
 
-#: cgi-bin/admin.c:1262 cgi-bin/admin.c:1303 cgi-bin/admin.c:1311
 msgid "Ending Banner"
 msgstr "終了バナー"
 
-#: cgi-bin/admin.c:1280 cgi-bin/admin.c:1321 cgi-bin/admin.c:1329
 msgid "Policies"
 msgstr "ポリシー"
 
-#: cgi-bin/admin.c:1304 cgi-bin/admin.c:1345 cgi-bin/admin.c:1353
 msgid "Error Policy"
 msgstr "エラーポリシー"
 
-#: cgi-bin/admin.c:1331 cgi-bin/admin.c:1372 cgi-bin/admin.c:1380
 msgid "Operation Policy"
 msgstr "操作ポリシー"
 
-#: cgi-bin/admin.c:1352 cgi-bin/admin.c:1372 cgi-bin/admin.c:1393
-#: cgi-bin/admin.c:1413 cgi-bin/admin.c:1401 cgi-bin/admin.c:1421
 msgid "PS Binary Protocol"
 msgstr "PS バイナリプロトコル"
 
-#: cgi-bin/admin.c:1358 cgi-bin/admin.c:1399 cgi-bin/admin.c:1407
 msgid "None"
 msgstr "なし"
 
-#: cgi-bin/admin.c:1490 cgi-bin/admin.c:1534 cgi-bin/admin.c:1542
 msgid "Unable to set options:"
 msgstr "オプションを設定できません:"
 
-#: cgi-bin/admin.c:1591 cgi-bin/admin.c:1607 cgi-bin/admin.c:1620
-#: cgi-bin/admin.c:2099 cgi-bin/admin.c:2106 cgi-bin/admin.c:1635
-#: cgi-bin/admin.c:1651 cgi-bin/admin.c:1664 cgi-bin/admin.c:2143
-#: cgi-bin/admin.c:2150 cgi-bin/admin.c:1609 cgi-bin/admin.c:1618
 msgid "Change Settings"
 msgstr "設定の変更"
 
-#: cgi-bin/admin.c:1592 cgi-bin/admin.c:1608 cgi-bin/admin.c:1621
-#: cgi-bin/admin.c:1636 cgi-bin/admin.c:1652 cgi-bin/admin.c:1665
-#: cgi-bin/admin.c:1611
 msgid "Unable to change server settings:"
 msgstr "サーバの設定を変更できません:"
 
-#: cgi-bin/admin.c:2097 cgi-bin/admin.c:2190 cgi-bin/admin.c:2141
-#: cgi-bin/admin.c:2234 cgi-bin/admin.c:1703
 msgid "Unable to upload cupsd.conf file:"
 msgstr "cupsd.conf ファイルをアップロードできません:"
 
-#: cgi-bin/admin.c:2134 cgi-bin/admin.c:2146 cgi-bin/admin.c:2193
-#: cgi-bin/admin.c:2200 cgi-bin/admin.c:2232 cgi-bin/admin.c:2244
-#: cgi-bin/admin.c:2267 cgi-bin/admin.c:2178 cgi-bin/admin.c:2190
-#: cgi-bin/admin.c:2237 cgi-bin/admin.c:2276 cgi-bin/admin.c:2288
-#: cgi-bin/admin.c:2311 cgi-bin/admin.c:1646 cgi-bin/admin.c:1658
-#: cgi-bin/admin.c:1706 cgi-bin/admin.c:1713 cgi-bin/admin.c:1745
-#: cgi-bin/admin.c:1758 cgi-bin/admin.c:1782
 msgid "Edit Configuration File"
 msgstr "設定ファイルの編集"
 
-#: cgi-bin/admin.c:2135 cgi-bin/admin.c:2147 cgi-bin/admin.c:2179
-#: cgi-bin/admin.c:2191 cgi-bin/printers.c:219 cgi-bin/printers.c:224
-#: cgi-bin/admin.c:1647 cgi-bin/admin.c:1659
 msgid "Unable to create temporary file:"
 msgstr "テンポラリファイルを作成できません:"
 
-#: cgi-bin/admin.c:2233 cgi-bin/admin.c:2245 cgi-bin/admin.c:2268
-#: cgi-bin/admin.c:2277 cgi-bin/admin.c:2289 cgi-bin/admin.c:2312
-#: cgi-bin/admin.c:1747 cgi-bin/admin.c:1760 cgi-bin/admin.c:1784
 msgid "Unable to access cupsd.conf file:"
 msgstr "cupsd.conf ファイルにアクセスできません:"
 
-#: cgi-bin/admin.c:2247 cgi-bin/admin.c:2291 cgi-bin/admin.c:1762
 msgid "Unable to edit cupsd.conf files larger than 1MB!"
 msgstr "1MB 以上の cupsd.conf ファイルは編集できません!"
 
-#: cgi-bin/admin.c:2316 cgi-bin/admin.c:2360 cgi-bin/admin.c:1832
 msgid "Delete Class"
 msgstr "クラスの削除"
 
-#: cgi-bin/admin.c:2357 cgi-bin/admin.c:2401 cgi-bin/admin.c:1873
 msgid "Unable to delete class:"
 msgstr "クラスを削除できません:"
 
-#: cgi-bin/admin.c:2377 cgi-bin/admin.c:2421 cgi-bin/admin.c:1893
 msgid "Delete Printer"
 msgstr "プリンタの削除"
 
-#: cgi-bin/admin.c:2418 cgi-bin/admin.c:2462 cgi-bin/admin.c:1934
 msgid "Unable to delete printer:"
 msgstr "プリンタを削除できません:"
 
-#: cgi-bin/admin.c:2447 cgi-bin/admin.c:2491 cgi-bin/admin.c:2053
-#: cgi-bin/admin.c:2072
 msgid "Export Printers to Samba"
 msgstr "プリンタを Samba にエキスポート"
 
-#: cgi-bin/admin.c:2515 cgi-bin/admin.c:2559
 msgid "Unable to fork process!"
 msgstr "プロセスをフォークできません!"
 
-#: cgi-bin/admin.c:2534 cgi-bin/admin.c:2578
 msgid "Unable to connect to server!"
 msgstr "サーバに接続できません!"
 
-#: cgi-bin/admin.c:2538 cgi-bin/admin.c:2582
 msgid "Unable to get printer attributes!"
 msgstr "プリンタ属性を取得できません!"
 
-#: cgi-bin/admin.c:2543 cgi-bin/admin.c:2587
 msgid "Unable to convert PPD file!"
 msgstr "PPD ファイルを変換できません!"
 
-#: cgi-bin/admin.c:2547 cgi-bin/admin.c:2591
 msgid "Unable to copy Windows 2000 printer driver files!"
 msgstr "Windows 2000 プリンタドライバファイルをコピーできません!"
 
-#: cgi-bin/admin.c:2552 cgi-bin/admin.c:2596
 msgid "Unable to install Windows 2000 printer driver files!"
 msgstr "Windows 2000 プリンタドライバファイルをインストールできません!"
 
-#: cgi-bin/admin.c:2557 cgi-bin/admin.c:2601
 msgid "Unable to copy Windows 9x printer driver files!"
 msgstr "Windows 9x プリンタドライバファイルをコピーできません!"
 
-#: cgi-bin/admin.c:2562 cgi-bin/admin.c:2606
 msgid "Unable to install Windows 9x printer driver files!"
 msgstr "Windows 9x プリンタドライバファイルをインストールできません!"
 
-#: cgi-bin/admin.c:2567 cgi-bin/admin.c:2611
 msgid "Unable to set Windows printer driver!"
 msgstr "Windows プリンタドライバを設定できません!"
 
-#: cgi-bin/admin.c:2572 cgi-bin/admin.c:2616
 msgid "No printer drivers found!"
 msgstr "プリンタドライバが見つかりません!"
 
-#: cgi-bin/admin.c:2576 cgi-bin/admin.c:2620
 msgid "Unable to execute cupsaddsmb command!"
 msgstr "cupsaddsmb コマンドを実行できません!"
 
-#: cgi-bin/admin.c:2582 cgi-bin/admin.c:2626
 #, c-format
 msgid "cupsaddsmb failed with status %d"
 msgstr "cupsaddsmb は状態 %d で失敗しました"
 
-#: cgi-bin/admin.c:2592 cgi-bin/admin.c:2636
 #, c-format
 msgid "cupsaddsmb crashed on signal %d"
 msgstr "cupsaddsmb はシグナル %d でクラッシュしました"
 
-#: cgi-bin/admin.c:2608 cgi-bin/admin.c:2652 cgi-bin/admin.c:2061
 msgid "A Samba username is required to export printer drivers!"
 msgstr "プリンタドライバをエキスポートするには、Samba のユーザ名が必要です!"
 
-#: cgi-bin/admin.c:2612 cgi-bin/admin.c:2656 cgi-bin/admin.c:2065
 msgid "A Samba password is required to export printer drivers!"
 msgstr "プリンタドライバをエキスポートするには Samba のパスワードが必要です!"
 
-#: cgi-bin/admin.c:2704 cgi-bin/admin.c:2748 cgi-bin/admin.c:2102
 msgid "Unable to open cupsd.conf file:"
 msgstr "cupsd.conf ファイルを開くことができません:"
 
-#: cgi-bin/admin.c:3144 cgi-bin/admin.c:3400 cgi-bin/admin.c:3189
-#: cgi-bin/admin.c:3447 cgi-bin/admin.c:2438 cgi-bin/admin.c:2696
 msgid "Unable to change printer:"
 msgstr "プリンタを変更できません:"
 
-#: cgi-bin/admin.c:3214 cgi-bin/admin.c:3259 cgi-bin/admin.c:3399
-#: cgi-bin/admin.c:3417 cgi-bin/admin.c:3305 cgi-bin/admin.c:3446
-#: cgi-bin/admin.c:3464 cgi-bin/admin.c:2508 cgi-bin/admin.c:2554
-#: cgi-bin/admin.c:2695 cgi-bin/admin.c:2713
 msgid "Set Allowed Users"
 msgstr "許可するユーザの設定"
 
-#: cgi-bin/admin.c:3262 cgi-bin/admin.c:3308 cgi-bin/admin.c:2557
 msgid "Unable to get printer attributes:"
 msgstr "プリンタ属性を取得できません:"
 
-#: cgi-bin/admin.c:3450 cgi-bin/admin.c:3488 cgi-bin/admin.c:3506
-#: cgi-bin/admin.c:3497 cgi-bin/admin.c:3536 cgi-bin/admin.c:3554
-#: cgi-bin/admin.c:2746 cgi-bin/admin.c:2785 cgi-bin/admin.c:2803
 msgid "Set Publishing"
 msgstr "公開の設定"
 
-#: cgi-bin/admin.c:3489 cgi-bin/admin.c:3537 cgi-bin/admin.c:2786
 msgid "Unable to change printer-is-shared attribute:"
 msgstr "printer-is-shared 属性を変更できません:"
 
-#: cgi-bin/classes.c:161 cgi-bin/classes.c:208 cgi-bin/classes.c:159
-#: cgi-bin/classes.c:206 cgi-bin/classes.c:164 cgi-bin/classes.c:211
 msgid "Classes"
 msgstr "クラス"
 
-#: cgi-bin/classes.c:355 cgi-bin/classes.c:356 cgi-bin/classes.c:354
-#: cgi-bin/classes.c:359
 msgid "Unable to get class list:"
 msgstr "クラスリストを取得できません:"
 
-#: cgi-bin/classes.c:454 cgi-bin/classes.c:455 cgi-bin/classes.c:453
-#: cgi-bin/classes.c:458
 msgid "Unable to get class status:"
 msgstr "クラスの状態を取得できません:"
 
-#: cgi-bin/ipp-var.c:366 cgi-bin/ipp-var.c:419 cgi-bin/ipp-var.c:489
-#: cgi-bin/ipp-var.c:490
 msgid "Move Job"
 msgstr "ジョブの移動"
 
-#: cgi-bin/ipp-var.c:367
 msgid "Unable to find destination for job!"
 msgstr "ジョブの宛先が見つかりません!"
 
-#: cgi-bin/ipp-var.c:421 cgi-bin/ipp-var.c:491 cgi-bin/ipp-var.c:492
 msgid "Move All Jobs"
 msgstr "すべてのジョブの移動"
 
-#: cgi-bin/ipp-var.c:496 cgi-bin/ipp-var.c:497
 msgid "Unable to move job"
 msgstr "ジョブを移動できません"
 
-#: cgi-bin/ipp-var.c:498 cgi-bin/ipp-var.c:499
 msgid "Unable to move jobs"
 msgstr "ジョブを移動できません"
 
-#: cgi-bin/ipp-var.c:603 cgi-bin/ipp-var.c:605
 msgid "Print Test Page"
 msgstr "テストページの印刷"
 
-#: cgi-bin/ipp-var.c:606 cgi-bin/ipp-var.c:608
 msgid "Unable to print test page:"
 msgstr "テストページを印刷できません:"
 
-#: cgi-bin/jobs.c:111 cgi-bin/jobs.c:122 cgi-bin/jobs.c:184
 msgid "Jobs"
 msgstr "ジョブ"
 
-#: cgi-bin/jobs.c:187
 msgid "Job operation failed:"
 msgstr "ジョブ操作に失敗しました:"
 
-#: cgi-bin/printers.c:161 cgi-bin/printers.c:208 cgi-bin/printers.c:211
-#: cgi-bin/printers.c:166 cgi-bin/printers.c:335 cgi-bin/printers.c:171
-#: cgi-bin/printers.c:340
 msgid "Printers"
 msgstr "プリンタ"
 
-#: cgi-bin/printers.c:362 cgi-bin/printers.c:366 cgi-bin/printers.c:518
-#: cgi-bin/printers.c:523
 msgid "Unable to get printer list:"
 msgstr "プリンタリストを取得できません:"
 
-#: cgi-bin/printers.c:461 cgi-bin/printers.c:468 cgi-bin/printers.c:628
-#: cgi-bin/printers.c:633
 msgid "Unable to get printer status:"
 msgstr "プリンタの状態を取得できません:"
 
-#: cups/ppd.c:319 cups/ppd.c:302
 msgid "OK"
 msgstr "OK"
 
-#: cups/ppd.c:320 cups/ppd.c:303
 msgid "Unable to open PPD file"
 msgstr "PPD ファイルを開くことができません"
 
-#: cups/ppd.c:321 cups/ppd.c:304
 msgid "NULL PPD file pointer"
 msgstr "NULL PPD ファイルポインタ"
 
-#: cups/ppd.c:322 cups/ppd.c:305
 msgid "Memory allocation error"
 msgstr "メモリ割り当てエラー"
 
-#: cups/ppd.c:323 cups/ppd.c:306
 msgid "Missing PPD-Adobe-4.x header"
 msgstr "PPD-Adobe-4.x ヘッダがありません"
 
-#: cups/ppd.c:324 cups/ppd.c:307
 msgid "Missing value string"
 msgstr "値文字列がありません"
 
-#: cups/ppd.c:325 cups/ppd.c:308
 msgid "Internal error"
 msgstr "内部エラー"
 
-#: cups/ppd.c:326 cups/ppd.c:309
 msgid "Bad OpenGroup"
 msgstr "不正な OpenGroup"
 
-#: cups/ppd.c:327 cups/ppd.c:310
 msgid "OpenGroup without a CloseGroup first"
 msgstr "最初の CloseGroup なしの OpenGroup"
 
-#: cups/ppd.c:328 cups/ppd.c:311
 msgid "Bad OpenUI/JCLOpenUI"
 msgstr "不正な OpenUI/JCLOpenUI"
 
-#: cups/ppd.c:329 cups/ppd.c:312
 msgid "OpenUI/JCLOpenUI without a CloseUI/JCLCloseUI first"
 msgstr "最初の CloseUI/JCLCloseUI なしの OpenUI/JCLOpenUI"
 
-#: cups/ppd.c:330 cups/ppd.c:313
 msgid "Bad OrderDependency"
 msgstr "不正な OrderDependency"
 
-#: cups/ppd.c:331 cups/ppd.c:314
 msgid "Bad UIConstraints"
 msgstr "不正な UIConstraints"
 
-#: cups/ppd.c:332 cups/ppd.c:315
 msgid "Missing asterisk in column 1"
 msgstr "1 列目にアスタリスクがありません"
 
-#: cups/ppd.c:333 cups/ppd.c:316
 msgid "Line longer than the maximum allowed (255 characters)"
 msgstr "1 行が最大許可値 (255 文字) を超えています"
 
-#: cups/ppd.c:334 cups/ppd.c:317
 msgid "Illegal control character"
 msgstr "不正な制御文字"
 
-#: cups/ppd.c:335 cups/ppd.c:318
 msgid "Illegal main keyword string"
 msgstr "不正なメインキーワード文字列"
 
-#: cups/ppd.c:336 cups/ppd.c:319
 msgid "Illegal option keyword string"
 msgstr "不正なオプションキーワード文字列"
 
-#: cups/ppd.c:337 cups/ppd.c:320
 msgid "Illegal translation string"
 msgstr "不正な翻訳文字列"
 
-#: cups/ppd.c:338 cups/ppd.c:321
 msgid "Illegal whitespace character"
 msgstr "不正な空白文字"
 
-#: cups/ppd.c:339 cups/ppd.c:322
 msgid "Bad custom parameter"
 msgstr "不正なカスタムパラメータ"
 
-#: cups/ppd.c:344 cups/ppd.c:327
 msgid "Unknown"
 msgstr "未知"
 
-#: cups/ppd.c:1033 cups/ppd.c:1020 cups/ppd.c:1009 cups/ppd.c:1010
-#: cups/ppd.c:1007
 msgid "Custom"
 msgstr "カスタム"
 
-#: cups/ppd.c:1259 cups/ppd.c:1236 cups/ppd.c:1225 cups/ppd.c:1226
-#: cups/ppd.c:1223
 msgid "JCL"
 msgstr "JCL"
 
-#: scheduler/ipp.c:2184 scheduler/ipp.c:2226 scheduler/ipp.c:2681
 msgid "No authentication information provided!"
 msgstr "認証情報が提供されていません!"
 
-#: systemv/cupsaddsmb.c:440 systemv/cupsaddsmb.c:252
 #, c-format
 msgid "Password for %s required to access %s via SAMBA: "
 msgstr "SAMBA 経由で %2$s にアクセスするのに必要な %1$s のパスワード: "
 
-#: systemv/cupsaddsmb.c:451 cups/adminutil.c:626
 #, c-format
 msgid "Running command: %s %s -N -U '%s%%%s' -c '%s'\n"
 msgstr "コマンドを実行中: %s %s -N -U '%s%%%s' -c '%s'\n"
 
-#: systemv/cupsaddsmb.c:479 cups/adminutil.c:656 cups/adminutil.c:1683
 #, c-format
 msgid "cupsaddsmb: Unable to run \"%s\": %s\n"
 msgstr "cupsaddsmb: \"%s\" を実行できません: %s\n"
 
-#: systemv/cupsaddsmb.c:805
 msgid "cupsaddsmb: No Windows printer drivers are installed!\n"
 msgstr "cupsaddsmb: Windows プリンタドライバがインストールされていません!\n"
 
-#: systemv/cupsaddsmb.c:810
 msgid "cupsaddsmb: Warning, no Windows 2000 printer drivers are installed!\n"
 msgstr ""
 "cupsaddsmb: 警告: Windows 2000 プリンタドライバがインストールされていませ"
 "ん!\n"
 
-#: systemv/lpadmin.c:881
 #, c-format
 msgid "lpadmin: Printer %s is already a member of class %s.\n"
 msgstr "lpadmin: プリンタ %s はすでにクラス %s のメンバーです。\n"
 
-#: systemv/lpadmin.c:1115
 msgid "lpadmin: No member names were seen!\n"
 msgstr "lpadmin: メンバー名が見当たりません!\n"
 
-#: systemv/lpadmin.c:1129
 #, c-format
 msgid "lpadmin: Printer %s is not a member of class %s.\n"
 msgstr "lpadmin: プリンタ %s はクラス %s のメンバーではありません。\n"
 
-#: systemv/lpinfo.c:278
 #, c-format
 msgid ""
 "Device: uri = %s\n"
@@ -3223,7 +2262,6 @@ msgstr ""
 "          make-and-model = %s\n"
 "          device-id = %s\n"
 
-#: systemv/lpinfo.c:410
 #, c-format
 msgid ""
 "Model:  name = %s\n"
@@ -3236,22 +2274,18 @@ msgstr ""
 "         make-and-model = %s\n"
 "         device-id = %s\n"
 
-#: systemv/lpmove.c:145
 msgid "Usage: lpmove job/src dest\n"
 msgstr "使い方: lpmove ジョブまたはソース 宛先\n"
 
-#: systemv/lpstat.c:144 systemv/lpstat.c:156
 msgid "lpstat: Need \"completed\", \"not-completed\", or \"all\" after -W!\n"
 msgstr ""
 "lpstat: -W のあとには \"completed\"、\"not-completed\"、\"all\" のいずれかが"
 "必要です!\n"
 
-#: systemv/lpstat.c:740 systemv/lpstat.c:768
 #, c-format
 msgid "%s accepting requests since %s\n"
 msgstr "%s は %s 以来リクエストを受け付けています\n"
 
-#: systemv/lpstat.c:743 systemv/lpstat.c:771
 #, c-format
 msgid ""
 "%s not accepting requests since %s -\n"
@@ -3260,12 +2294,10 @@ msgstr ""
 "%s は %s 以来リクエストを受け付けていません -\n"
 "\t%s\n"
 
-#: systemv/lpstat.c:752 systemv/lpstat.c:780
 #, c-format
 msgid "%s/%s accepting requests since %s\n"
 msgstr "%s/%s は %s 以来リクエストを受け付けています\n"
 
-#: systemv/lpstat.c:755 systemv/lpstat.c:783
 #, c-format
 msgid ""
 "%s/%s not accepting requests since %s -\n"
@@ -3274,68 +2306,52 @@ msgstr ""
 "%s/%s は %s 以来リクエストを受け付けていません -\n"
 "\t%s\n"
 
-#: berkeley/lpc.c:88 berkeley/lpc.c:116 berkeley/lpc.c:152
 msgid "lpc> "
 msgstr "lpc> "
 
-#: berkeley/lpq.c:93 systemv/cancel.c:250 systemv/cancel.c:332
-#: systemv/cancel.c:331
 #, c-format
 msgid "%s: Unable to contact server!\n"
 msgstr "%s: サーバに連絡できません!\n"
 
-#: berkeley/lpq.c:138 berkeley/lpr.c:128 berkeley/lprm.c:144
-#: systemv/accept.c:120 systemv/cancel.c:107 systemv/lp.c:150
-#: systemv/lpstat.c:144 berkeley/lpr.c:130 systemv/lp.c:154
 #, c-format
 msgid "%s: Error - expected username after '-U' option!\n"
 msgstr "%s: エラー - '-U' オプションのあとにはユーザ名が必要です!\n"
 
-#: berkeley/lpq.c:173
 #, c-format
 msgid "%s: Error - unknown destination \"%s/%s\"!\n"
 msgstr "%s: エラー - \"%s/%s\" は未知の宛先です!\n"
 
-#: berkeley/lpq.c:177 systemv/lpstat.c:549
 #, c-format
 msgid "%s: Unknown destination \"%s\"!\n"
 msgstr "%s: \"%s\" は未知の宛先です!\n"
 
-#: berkeley/lpq.c:201 berkeley/lprm.c:167 systemv/accept.c:146
-#: systemv/cancel.c:135 systemv/lp.c:227 systemv/lpstat.c:300 systemv/lp.c:231
 #, c-format
 msgid "%s: Error - expected hostname after '-h' option!\n"
 msgstr "%s: エラー -  '-h' オプションのあとにはホスト名が必要です!\n"
 
-#: berkeley/lpq.c:253
 #, c-format
 msgid ""
 "%s: error - %s environment variable names non-existent destination \"%s\"!\n"
 msgstr "%s: エラー - 環境変数 %s が存在しない宛先 \"%s\" を指しています!\n"
 
-#: berkeley/lpq.c:258
 #, c-format
 msgid "%s: error - no default destination available.\n"
 msgstr "%s: エラー - 利用可能なデフォルトの宛先がありません。\n"
 
-#: berkeley/lpq.c:647
 msgid ""
 "Usage: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]\n"
 msgstr ""
 "使い方: lpq [-P 宛先] [-U ユーザ名] [-h ホスト名[:ポート]] [-l] [+インターバ"
 "ル]\n"
 
-#: berkeley/lpr.c:148 berkeley/lpr.c:150
 #, c-format
 msgid "%s: Error - expected hostname after '-H' option!\n"
 msgstr "%s: エラー - '-H' オプションのあとにはホスト名が必要です!\n"
 
-#: berkeley/lpr.c:171 berkeley/lpr.c:173
 #, c-format
 msgid "%s: Error - expected value after '-%c' option!\n"
 msgstr "%s: エラー -  '-%c' オプションのあとには値が必要です!\n"
 
-#: berkeley/lpr.c:185 berkeley/lpr.c:187
 #, c-format
 msgid ""
 "%s: Warning - '%c' format modifier not supported - output may not be "
@@ -3344,196 +2360,156 @@ msgstr ""
 "%s: 警告 - '%c' 形式修飾子はサポートされていません - 出力は正しくないものにな"
 "るかもしれません!\n"
 
-#: berkeley/lpr.c:199 berkeley/lpr.c:201
 #, c-format
 msgid "%s: error - expected option=value after '-o' option!\n"
 msgstr "%s: '-o' オプションのあとには オプション=値 が必要です!\n"
 
-#: berkeley/lpr.c:250 berkeley/lpr.c:258
 #, c-format
 msgid "%s: Error - expected destination after '-P' option!\n"
 msgstr "%s: エラー - '-P' オプションのあとには宛先が必要です!\n"
 
-#: berkeley/lpr.c:285 berkeley/lpr.c:293
 #, c-format
 msgid "%s: Error - expected copy count after '-#' option!\n"
 msgstr "%s: エラー - '-#' オプションのあとにはコピー数が必要です!\n"
 
-#: berkeley/lpr.c:309 berkeley/lpr.c:317
 #, c-format
 msgid "%s: Error - expected name after '-%c' option!\n"
 msgstr "%s: エラー - '-%c' オプションのあとには名前が必要です!\n"
 
-#: berkeley/lpr.c:320 berkeley/lprm.c:179 systemv/accept.c:176
-#: systemv/cancel.c:169 systemv/lp.c:529 systemv/lpstat.c:461
-#: berkeley/lpr.c:328 systemv/lp.c:545
 #, c-format
 msgid "%s: Error - unknown option '%c'!\n"
 msgstr "%s: エラー - '%c' は未知のオプションです!\n"
 
-#: berkeley/lpr.c:333 systemv/lp.c:554 berkeley/lpr.c:341 systemv/lp.c:570
 #, c-format
 msgid "%s: Error - unable to access \"%s\" - %s\n"
 msgstr "%s: エラー - \"%s\" にアクセスできません - %s\n"
 
-#: berkeley/lpr.c:351 systemv/lp.c:571 berkeley/lpr.c:359 systemv/lp.c:587
 #, c-format
 msgid "%s: Error - too many files - \"%s\"\n"
 msgstr "%s: エラー - ファイルが多すぎます - \"%s\"\n"
 
-#: berkeley/lpr.c:393 systemv/lp.c:621 berkeley/lpr.c:401 systemv/lp.c:637
 #, c-format
 msgid ""
 "%s: Error - %s environment variable names non-existent destination \"%s\"!\n"
 msgstr "%s: エラー - 環境変数 %s が存在しない宛先 \"%s\" を指しています!\n"
 
-#: berkeley/lpr.c:398 systemv/lp.c:626 berkeley/lpr.c:406 systemv/lp.c:642
 #, c-format
 msgid "%s: Error - no default destination available.\n"
 msgstr "%s: エラー - 利用可能なデフォルトの宛先がありません。\n"
 
-#: berkeley/lpr.c:402 systemv/lp.c:630 berkeley/lpr.c:410 systemv/lp.c:646
 #, c-format
 msgid "%s: Error - scheduler not responding!\n"
 msgstr "%s: エラー - スケジューラが応答していません!\n"
 
-#: berkeley/lpr.c:452 systemv/lp.c:670 berkeley/lpr.c:460 systemv/lp.c:686
 #, c-format
 msgid "%s: Error - unable to create temporary file \"%s\" - %s\n"
 msgstr "%s: エラー - テンポラリファイル \"%s\" を作成できません - %s\n"
 
-#: berkeley/lpr.c:462 systemv/lp.c:679 berkeley/lpr.c:470 systemv/lp.c:695
 #, c-format
 msgid "%s: Error - unable to write to temporary file \"%s\" - %s\n"
 msgstr "%s: エラー - テンポラリファイル \"%s\" に書き込みできません - %s\n"
 
-#: berkeley/lpr.c:476 systemv/lp.c:693 berkeley/lpr.c:484 systemv/lp.c:709
 #, c-format
 msgid "%s: Error - stdin is empty, so no job has been sent.\n"
 msgstr "%s: エラー - 標準入力が空なので、ジョブは送られていません。\n"
 
-#: berkeley/lprm.c:127 systemv/cancel.c:227
 #, c-format
 msgid "%s: Error - unknown destination \"%s\"!\n"
 msgstr "%s: エラー - \"%s\" は未知の宛先です!\n"
 
-#: systemv/accept.c:165
 #, c-format
 msgid "%s: Error - expected reason text after '-r' option!\n"
 msgstr "%s: -r のあとには理由のテキストが必要です!\n"
 
-#: systemv/cancel.c:157
 #, c-format
 msgid "%s: Error - expected username after '-u' option!\n"
 msgstr "%s: エラー - '-u' オプションのあとにはユーザ名が必要です!\n"
 
-#: systemv/cancel.c:308 systemv/cancel.c:373 systemv/cancel.c:372
 #, c-format
 msgid "%s: %s failed: %s\n"
 msgstr "%s: %s 失敗しました: %s\n"
 
-#: systemv/lp.c:173 systemv/lp.c:177
 #, c-format
 msgid "%s: Error - expected destination after '-d' option!\n"
 msgstr "%s: '-d' オプションのあとにはプリンタ名が必要です!\n"
 
-#: systemv/lp.c:206 systemv/lp.c:210
 #, c-format
 msgid "%s: Error - expected form after '-f' option!\n"
 msgstr "%s: エラー - '-f' オプションのあとには用紙名が必要です!\n"
 
-#: systemv/lp.c:213 systemv/lp.c:217
 #, c-format
 msgid "%s: Warning - form option ignored!\n"
 msgstr "%s: 警告 - 用紙オプションは無視されます!\n"
 
-#: systemv/lp.c:247 systemv/lp.c:251
 #, c-format
 msgid "%s: Expected job ID after '-i' option!\n"
 msgstr "%s: '-i' オプションのあとにはジョブ ID が必要です!\n"
 
-#: systemv/lp.c:258 systemv/lp.c:262
 #, c-format
 msgid "%s: Error - cannot print files and alter jobs simultaneously!\n"
 msgstr ""
 "%s: エラー - ファイルを印刷できず、ジョブを同時に変えることができません!\n"
 
-#: systemv/lp.c:271 systemv/lp.c:275
 #, c-format
 msgid "%s: Error - bad job ID!\n"
 msgstr "%s: エラー - 不正なジョブ ID です!\n"
 
-#: systemv/lp.c:296 systemv/lp.c:308
 #, c-format
 msgid "%s: Error - expected copies after '-n' option!\n"
 msgstr "%s: エラー - '-n' オプションのあとにはコピー数が必要です!\n"
 
-#: systemv/lp.c:319 systemv/lp.c:331
 #, c-format
 msgid "%s: Error - expected option string after '-o' option!\n"
 msgstr "%s: エラー - '-o' オプションのあとには文字列が必要です!\n"
 
-#: systemv/lp.c:340 systemv/lp.c:352
 #, c-format
 msgid "%s: Error - expected priority after '-%c' option!\n"
 msgstr "%s: エラー - '-%c' オプションのあとには優先度が必要です!\n"
 
-#: systemv/lp.c:363 systemv/lp.c:375
 #, c-format
 msgid "%s: Error - priority must be between 1 and 100.\n"
 msgstr "%s: エラー - 優先度は 1 から 100 の間である必要があります。\n"
 
-#: systemv/lp.c:387 systemv/lp.c:399
 #, c-format
 msgid "%s: Error - expected title after '-t' option!\n"
 msgstr "%s: エラー - '-t' オプションのあとにはタイトルが必要です!\n"
 
-#: systemv/lp.c:405 systemv/lp.c:417
 #, c-format
 msgid "%s: Error - expected mode list after '-y' option!\n"
 msgstr "%s: エラー - '-y' オプションのあとにはモードリストが必要です!\n"
 
-#: systemv/lp.c:413 systemv/lp.c:425
 #, c-format
 msgid "%s: Warning - mode option ignored!\n"
 msgstr "%s: 警告 - モードオプションは無視されます!\n"
 
-#: systemv/lp.c:427 systemv/lp.c:439
 #, c-format
 msgid "%s: Error - expected hold name after '-H' option!\n"
 msgstr "%s: エラー - '-H' オプションのあとにはホールド名が必要です!\n"
 
-#: systemv/lp.c:451 systemv/lp.c:463
 #, c-format
 msgid "%s: Need job ID ('-i jobid') before '-H restart'!\n"
 msgstr "%s: '-H restart' の前にはジョブ ID ('-i ジョブID') が必要です!\n"
 
-#: systemv/lp.c:475 systemv/lp.c:487
 #, c-format
 msgid "%s: Error - expected page list after '-P' option!\n"
 msgstr "%s: '-P' オプションのあとにはページリストが必要です!\n"
 
-#: systemv/lp.c:496 systemv/lp.c:508
 #, c-format
 msgid "%s: Error - expected character set after '-S' option!\n"
 msgstr "%s: エラー - '-S' オプションのあとには文字セットが必要です!\n"
 
-#: systemv/lp.c:504 systemv/lp.c:516
 #, c-format
 msgid "%s: Warning - character set option ignored!\n"
 msgstr "%s: 警告 - 文字セットオプションは無視されます!\n"
 
-#: systemv/lp.c:516 systemv/lp.c:528
 #, c-format
 msgid "%s: Error - expected content type after '-T' option!\n"
 msgstr "%s: エラー - '-T' オプションのあとにはコンテンツタイプが必要です!\n"
 
-#: systemv/lp.c:524 systemv/lp.c:536
 #, c-format
 msgid "%s: Warning - content type option ignored!\n"
 msgstr "%s: 警告 - コンテンツタイプオプションは無視されます!\n"
 
-#: systemv/lp.c:538 systemv/lp.c:554
 #, c-format
 msgid ""
 "%s: Error - cannot print from stdin if files or a job ID are provided!\n"
@@ -3541,7 +2517,6 @@ msgstr ""
 "%s: エラー - ファイルまたはジョブ ID が提供されている場合、標準入力から印刷で"
 "きません。 \n"
 
-#: systemv/lpstat.c:164 systemv/lpstat.c:178
 #, c-format
 msgid ""
 "%s: Error - need \"completed\", \"not-completed\", or \"all\" after '-W' "
@@ -3550,98 +2525,76 @@ msgstr ""
 "%s: エラー - '-W' オプションのあとには、\"completed\"、\"not-completed\"、"
 "\"all\" のいずれかが必要です!\n"
 
-#: systemv/lpstat.c:237
 #, c-format
 msgid "%s: Error - expected destination after '-b' option!\n"
 msgstr "%s: エラー - '-b' オプションのあとに宛先を指定する必要があります!\n"
 
-#: systemv/lpstat.c:534
 #, c-format
 msgid "%s: Invalid destination name in list \"%s\"!\n"
 msgstr "%s: リスト \"%s\" に無効な宛先名があります!\n"
 
-#: systemv/lpstat.c:571 systemv/cupsaddsmb.c:156 systemv/cupsaddsmb.c:177
 #, c-format
 msgid "%s: Unable to connect to server\n"
 msgstr "%s: サーバに接続できません\n"
 
-#: cups/notify.c:91
 msgid "Print Job:"
 msgstr "ジョブの印刷:"
 
-#: cups/notify.c:96
 msgid "pending"
 msgstr "保留"
 
-#: cups/notify.c:99
 msgid "held"
 msgstr "ホールド"
 
-#: cups/notify.c:102 cups/notify.c:143
 msgid "processing"
 msgstr "処理中"
 
-#: cups/notify.c:105 cups/notify.c:146
 msgid "stopped"
 msgstr "停止"
 
-#: cups/notify.c:108
 msgid "canceled"
 msgstr "キャンセル"
 
-#: cups/notify.c:111
 msgid "aborted"
 msgstr "停止"
 
-#: cups/notify.c:114
 msgid "completed"
 msgstr "完了"
 
-#: cups/notify.c:117 cups/notify.c:149
 msgid "unknown"
 msgstr "未知"
 
-#: cups/notify.c:126
 msgid "untitled"
 msgstr "タイトルなし"
 
-#: cups/notify.c:135
 msgid "Printer:"
 msgstr "プリンタ:"
 
-#: cups/notify.c:140
 msgid "idle"
 msgstr "待機中"
 
-#: scheduler/ipp.c:5513 scheduler/ipp.c:5482 scheduler/ipp.c:5498
 msgid "Missing notify-subscription-ids attribute!"
 msgstr "notify-subscription-ids 属性がありません!"
 
-#: scheduler/ipp.c:7851 scheduler/ipp.c:7341 scheduler/ipp.c:7357
 msgid "Job subscriptions cannot be renewed!"
 msgstr "ジョブサブスクリプションが更新されていません!"
 
-#: scheduler/main.c:163
 msgid "cupsd: Expected config filename after \"-c\" option!\n"
 msgstr "cupsd: -c オプションのあとには設定ファイル名が必要です!\n"
 
-#: scheduler/main.c:218
 msgid "cupsd: launchd(8) support not compiled in, running in normal mode.\n"
 msgstr ""
 "cupsd: launchd(8) サポートがコンパイルされていないので、通常モードで動作しま"
 "す。\n"
 
-#: scheduler/main.c:225
 #, c-format
 msgid "cupsd: Unknown option \"%c\" - aborting!\n"
 msgstr "cupsd: \"%c\" は未知のオプションです - 停止します!\n"
 
-#: scheduler/main.c:232
 #, c-format
 msgid "cupsd: Unknown argument \"%s\" - aborting!\n"
 msgstr "cupsd: \"%s\" は未知の引数です - 停止します!\n"
 
-#: scheduler/main.c:2315 scheduler/main.c:2329 scheduler/main.c:2304
 msgid ""
 "Usage: cupsd [-c config-file] [-f] [-F] [-h] [-l]\n"
 "\n"
@@ -3659,18 +2612,15 @@ msgstr ""
 "-h                  この使用例を表示する\n"
 "-l                  launchd(8) から cupsd を実行する\n"
 
-#: systemv/cupstestppd.c:1343 systemv/cupstestppd.c:1543
 #, c-format
 msgid "        WARN    Line %d only contains whitespace!\n"
 msgstr "        警告    %d 行が空白だけです!\n"
 
-#: systemv/cupstestppd.c:1361 systemv/cupstestppd.c:1561
 msgid ""
 "        WARN    File contains a mix of CR, LF, and CR LF line endings!\n"
 msgstr ""
 "        警告    ファイルが CR、LF、CR LF の行末を混在して含んでいます!\n"
 
-#: systemv/cupstestppd.c:1366 systemv/cupstestppd.c:1566
 msgid ""
 "        WARN    Non-Windows PPD files should use lines ending with only LF, "
 "not CR LF!\n"
@@ -3678,36 +2628,28 @@ msgstr ""
 "        警告    非 Windows PPD ファイルは、CR LF でなく LF のみを行末に使うべ"
 "きです!\n"
 
-#: cgi-bin/printers.c:218 cgi-bin/printers.c:289 cgi-bin/printers.c:223
-#: cgi-bin/printers.c:294
 msgid "Printer Maintenance"
 msgstr "プリンタのメンテナンス"
 
-#: cgi-bin/printers.c:292 cgi-bin/printers.c:297
 msgid "Unable to send maintenance job:"
 msgstr "メンテナンスジョブを送れません:"
 
-#: systemv/cupsaddsmb.c:566 systemv/cupsaddsmb.c:233
 #, c-format
 msgid "cupsaddsmb: No PPD file for printer \"%s\" - %s\n"
 msgstr "cupsaddsmb: プリンタ \"%s\" の PPD ファイルがありません - %s\n"
 
-#: systemv/cupstestppd.c:346
 #, c-format
 msgid "      **FAIL**  %s %s does not exist!\n"
 msgstr "      **失敗** %s %s は存在しません!\n"
 
-#: systemv/cupstestppd.c:1053
 #, c-format
 msgid "      **FAIL**  Bad language \"%s\"!\n"
 msgstr "      **失敗**  無効な言語 \"%s\" です!\n"
 
-#: systemv/cupstestppd.c:1078
 #, c-format
 msgid "      **FAIL**  Missing \"%s\" translation string for option %s!\n"
 msgstr "      **失敗**  \"%s\" 翻訳文字列 (オプション %s 用) がありません!\n"
 
-#: systemv/cupstestppd.c:1098
 #, c-format
 msgid ""
 "      **FAIL**  Default translation string for option %s contains 8-bit "
@@ -3716,14 +2658,12 @@ msgstr ""
 "      **失敗**  オプション %s のデフォルトの翻訳文字列が8ビット文字を含んでい"
 "ます!\n"
 
-#: systemv/cupstestppd.c:1119
 #, c-format
 msgid ""
 "      **FAIL**  Missing \"%s\" translation string for option %s, choice %s!\n"
 msgstr ""
 "      **失敗**  \"%s\" 翻訳文字列 (オプション %s、選択 %s) がありません!\n"
 
-#: systemv/cupstestppd.c:1141
 #, c-format
 msgid ""
 "      **FAIL**  Default translation string for option %s choice %s contains "
@@ -3732,69 +2672,55 @@ msgstr ""
 "      **失敗**  オプション %s、選択 %s のデフォルトの翻訳文字列が8ビット文字"
 "を含んでいます!\n"
 
-#: systemv/cupstestppd.c:1175
 #, c-format
 msgid "      **FAIL**  Bad cupsFilter value \"%s\"!\n"
 msgstr "      **失敗**  \"%s\" は不正な cupsFilter 値です!\n"
 
-#: cgi-bin/help.c:98 cgi-bin/help.c:139 cgi-bin/help.c:149 cgi-bin/help.c:179
 msgid "Help"
 msgstr "ヘルプ"
 
-#: cups/adminutil.c:233 cups/adminutil.c:246
 #, c-format
 msgid "Missing value on line %d!\n"
 msgstr "%d 行に値がありません!\n"
 
-#: cups/adminutil.c:249 cups/adminutil.c:265
 #, c-format
 msgid "Missing double quote on line %d!\n"
 msgstr "%d 行に二重引用符がありません!\n"
 
-#: cups/adminutil.c:266 cups/adminutil.c:284
 #, c-format
 msgid "Bad option + choice on line %d!\n"
 msgstr "%d 行に不正なオプションと選択があります!\n"
 
-#: cups/adminutil.c:417
 #, c-format
 msgid "Unable to copy Windows 2000 printer driver files (%d)!\n"
 msgstr "Windows 2000 プリンタドライバファイルをコピーできません (%d)!\n"
 
-#: cups/adminutil.c:445
 #, c-format
 msgid "Unable to copy CUPS printer driver files (%d)!\n"
 msgstr "CUPS プリンタドライバファイルをコピーできません (%d)!\n"
 
-#: cups/adminutil.c:480
 #, c-format
 msgid "Unable to install Windows 2000 printer driver files (%d)!\n"
 msgstr "Windows 2000 プリンタドライバファイルをインストールできません (%)!\n"
 
-#: cups/adminutil.c:514
 #, c-format
 msgid "Unable to copy Windows 9x printer driver files (%d)!\n"
 msgstr "Windows 9x プリンタドライバファイルをコピーできません (%d)!\n"
 
-#: cups/adminutil.c:536
 #, c-format
 msgid "Unable to install Windows 9x printer driver files (%d)!\n"
 msgstr "Windows 9x プリンタドライバファイルをインストールできません (%d)!\n"
 
-#: cups/adminutil.c:547
 msgid "No Windows printer drivers are installed!\n"
 msgstr "Windows プリンタドライバがインストールされていません!\n"
 
-#: cups/adminutil.c:550
 msgid "Warning, no Windows 2000 printer drivers are installed!\n"
 msgstr "警告: Windows 2000 プリンタドライバがインストールされていません!\n"
 
-#: cups/adminutil.c:568 cups/adminutil.c:658
 #, c-format
 msgid "Unable to set Windows printer driver (%d)!\n"
 msgstr "Windows プリンタドライバを設定できません (%d)!\n"
 
-#: systemv/cupsaddsmb.c:278
 msgid ""
 "Usage: cupsaddsmb [options] printer1 ... printerN\n"
 "       cupsaddsmb [options] -a\n"
@@ -3818,65 +2744,158 @@ msgstr ""
 "  -h cupsサーバ    指定の CUPS サーバを使う\n"
 "  -v               冗長にする (コマンドを表示する)\n"
 
-#: cups/adminutil.c:464
 #, c-format
 msgid "Unable to copy Windows 2000 printer driver files (%d)!"
 msgstr "Windows 2000 プリンタドライバファイルをコピーできません (%d)!"
 
-#: cups/adminutil.c:499
 #, c-format
 msgid "Unable to copy CUPS printer driver files (%d)!"
 msgstr "CUPS プリンタドライバファイルをコピーできません (%d)!"
 
-#: cups/adminutil.c:542
 #, c-format
 msgid "Unable to install Windows 2000 printer driver files (%d)!"
 msgstr "Windows 2000 プリンタドライバファイルをインストールできません (%d)!"
 
-#: cups/adminutil.c:583
 #, c-format
 msgid "Unable to copy Windows 9x printer driver files (%d)!"
 msgstr "Windows 9x プリンタドライバファイルをコピーできません (%d)!"
 
-#: cups/adminutil.c:612
 #, c-format
 msgid "Unable to install Windows 9x printer driver files (%d)!"
 msgstr "Windows 9x プリンタドライバファイルをインストールできません (%d)!"
 
-#: cups/adminutil.c:631
 msgid "No Windows printer drivers are installed!"
 msgstr "Windows プリンタドライバがインストールされていません!"
 
-#: cups/adminutil.c:636
 msgid "Warning, no Windows 2000 printer drivers are installed!"
 msgstr "警告: Windows 2000 プリンタドライバがインストールされていません!"
 
-#: cups/adminutil.c:736
 #, c-format
 msgid "open of %s failed: %s"
 msgstr "%s のオープンに失敗しました: %s"
 
-#: cups/adminutil.c:1653
 #, c-format
 msgid "Running command: %s %s -N -A %s -c '%s'\n"
 msgstr "コマンドを実行中: %s %s -N -A %s -c '%s'\n"
 
-#: cups/adminutil.c:1750
 #, c-format
 msgid "stat of %s failed: %s"
 msgstr "%s の状態取得に失敗しました: %s"
 
-#: scheduler/ipp.c:3021
 #, c-format
 msgid "Job #%d is already cancelled - can't cancel."
 msgstr "ジョブ #%d はすでにキャンセルされています - キャンセルできません。"
 
-#: scheduler/ipp.c:3027
 #, c-format
 msgid "Job #%d is already aborted - can't cancel."
 msgstr "ジョブ #%d はすでに停止されています - キャンセルできません。"
 
-#: scheduler/ipp.c:3033
 #, c-format
 msgid "Job #%d is already completed - can't cancel."
 msgstr "ジョブ #%d はすでに完了しています - キャンセルできません。"
+
+#, c-format
+msgid ""
+"You must access this page using the URL <A HREF=\"https://%s:%d%s\">https://%"
+"s:%d%s</A>."
+msgstr ""
+
+#, fuzzy, c-format
+msgid "Unsupported format '%s'!"
+msgstr "'%s/%s' はサポートされていない形式です!"
+
+#, fuzzy
+msgid "FAIL\n"
+msgstr " 失敗\n"
+
+#, c-format
+msgid ""
+"    Line %d is longer than 255 characters (%d)!\n"
+"        REF: Page 25, Line Length\n"
+msgstr ""
+
+msgid ""
+"    Missing %!PS-Adobe-3.0 on first line!\n"
+"        REF: Page 17, 3.1 Conforming Documents\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"    Bad %%%%Pages: on line %d!\n"
+"        REF: Page 43, %%%%Pages:\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"    Bad %%%%BoundingBox: on line %d!\n"
+"        REF: Page 39, %%%%BoundingBox:\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"    Bad %%%%Page: on line %d!\n"
+"        REF: Page 53, %%%%Page:\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"    Missing or bad %%BoundingBox: comment!\n"
+"        REF: Page 39, %%BoundingBox:\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"    Missing or bad %%Pages: comment!\n"
+"        REF: Page 43, %%Pages:\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"    Missing %%EndComments comment!\n"
+"        REF: Page 41, %%EndComments\n"
+msgstr ""
+
+#, c-format
+msgid ""
+"    Missing or bad %%Page: comments!\n"
+"        REF: Page 53, %%Page:\n"
+msgstr ""
+
+#, c-format
+msgid "    Too many %%EndDocument comments!\n"
+msgstr ""
+
+#, c-format
+msgid "    Too many %%BeginDocument comments!\n"
+msgstr ""
+
+#, c-format
+msgid "    Saw %d lines that exceeded 255 characters!\n"
+msgstr ""
+
+#, fuzzy
+msgid "PASS\n"
+msgstr " 合格\n"
+
+msgid "    Warning: file contains binary data!\n"
+msgstr ""
+
+#, c-format
+msgid "    Warning: obsolete DSC version %.1f in file!\n"
+msgstr ""
+
+#, c-format
+msgid "    Warning: no %%EndComments comment in file!\n"
+msgstr ""
+
+msgid ""
+"Usage: cupstestdsc [options] filename.ps [... filename.ps]\n"
+"       cupstestdsc [options] -\n"
+"\n"
+"Options:\n"
+"\n"
+"    -h       Show program usage\n"
+"\n"
+"    Note: this program only validates the DSC comments, not the PostScript "
+"itself.\n"
+msgstr ""
index 7599458d80cbaf5a9afafad1611b035bc5095b60..7976f952ca12a8e69360d34b5fcfb509190663a1 100644 (file)
@@ -1,5 +1,5 @@
 #
-# "$Id: Makefile 5229 2006-03-05 16:48:12Z mike $"
+# "$Id: Makefile 5317 2006-03-21 02:35:37Z mike $"
 #
 #   Man page makefile for the Common UNIX Printing System (CUPS).
 #
@@ -31,6 +31,7 @@ include ../Makedefs
 
 MAN1   =       cancel.$(MAN1EXT) \
                cups-config.$(MAN1EXT) \
+               cupstestdsc.$(MAN1EXT) \
                cupstestppd.$(MAN1EXT) \
                lp.$(MAN1EXT) \
                lpoptions.$(MAN1EXT) \
@@ -180,5 +181,5 @@ mantohtml:  mantohtml.o
 
 
 #
-# End of "$Id: Makefile 5229 2006-03-05 16:48:12Z mike $".
+# End of "$Id: Makefile 5317 2006-03-21 02:35:37Z mike $".
 #
index b6cc165b65eb2c0d9e186bb054eec10790333d38..6ae23fa6d67145505398c8927332aa96420a6d20 100644 (file)
@@ -1,5 +1,5 @@
 .\"
-.\" "$Id: cupsaddsmb.man.in 5099 2006-02-13 02:46:10Z mike $"
+.\" "$Id: cupsaddsmb.man.in 5327 2006-03-23 19:53:24Z mike $"
 .\"
 .\"   cupsaddsmb man page for the Common UNIX Printing System (CUPS).
 .\"
@@ -21,7 +21,7 @@
 .\"       EMail: cups-info@cups.org
 .\"         WWW: http://www.cups.org
 .\"
-.TH cupsaddsmb 8 "Common UNIX Printing System" "12 February 2006" "Easy Software Products"
+.TH cupsaddsmb 8 "Common UNIX Printing System" "23 March 2006" "Easy Software Products"
 .SH NAME
 cupsaddsmb \- export printers to samba for windows clients
 .SH SYNOPSIS
@@ -68,9 +68,11 @@ Exports all known printers. Otherwise only the named printers are
 exported.
 .TP 5
 -h cups-server[:port]
+.br
 Specifies a different CUPS server to use.
 .TP 5
 -v
+.br
 Specifies that verbose information should be shown. This is
 useful for debugging SAMBA configuration problems.
 .SH SAMBA CONFIGURATION
@@ -188,5 +190,5 @@ http://www.cups.org/windows/
 .SH COPYRIGHT
 Copyright 1997-2006 by Easy Software Products, All Rights Reserved.
 .\"
-.\" End of "$Id: cupsaddsmb.man.in 5099 2006-02-13 02:46:10Z mike $".
+.\" End of "$Id: cupsaddsmb.man.in 5327 2006-03-23 19:53:24Z mike $".
 .\"
index 199f148ff5435d49653c246653308113d7d04c56..31dad10415999681bf1486b960d27bdd16c17872 100644 (file)
@@ -1,5 +1,5 @@
 .\"
-.\" "$Id: cupsd.conf.man.in 5099 2006-02-13 02:46:10Z mike $"
+.\" "$Id: cupsd.conf.man.in 5327 2006-03-23 19:53:24Z mike $"
 .\"
 .\"   cupsd.conf man page for the Common UNIX Printing System (CUPS).
 .\"
@@ -21,7 +21,7 @@
 .\"       EMail: cups-info@cups.org
 .\"         WWW: http://www.cups.org
 .\"
-.TH cupsd.conf 5 "Common UNIX Printing System" "12 February 2006" "Easy Software Products"
+.TH cupsd.conf 5 "Common UNIX Printing System" "23 March 2006" "Easy Software Products"
 .SH NAME
 cupsd.conf \- server configuration file for cups
 .SH DESCRIPTION
@@ -332,16 +332,6 @@ Include filename
 .br
 Includes the named file.
 .TP 5
-KeepAlive Yes
-.TP 5
-KeepAlive No
-.br
-Specifies whether to support HTTP keep-alive connections.
-.TP 5
-KeepAliveTimeout seconds
-.br
-Specifies the amount of time that connections are kept alive.
-.TP 5
 JobRetryInterval seconds
 .br
 Specifies the interval between retries of jobs in seconds.
@@ -350,13 +340,15 @@ JobRetryLimit count
 .br
 Specifies the number of retries that are done for jobs.
 .TP 5
-KeepAlive
+KeepAlive Yes
+.TP 5
+KeepAlive No
 .br
-Specifies whether or not to support HTTP Keep-Alive.
+Specifies whether to support HTTP keep-alive connections.
 .TP 5
-KeepAliveTimeout
+KeepAliveTimeout seconds
 .br
-Specifies the connection timeout for HTTP Keep-Alive.
+Specifies the amount of time that connections are kept alive.
 .TP 5
 <Limit operations> ... </Limit>
 .br
@@ -615,5 +607,5 @@ http://localhost:631/help
 .SH COPYRIGHT
 Copyright 1997-2006 by Easy Software Products, All Rights Reserved.
 .\"
-.\" End of "$Id: cupsd.conf.man.in 5099 2006-02-13 02:46:10Z mike $".
+.\" End of "$Id: cupsd.conf.man.in 5327 2006-03-23 19:53:24Z mike $".
 .\"
diff --git a/man/cupstestdsc.man b/man/cupstestdsc.man
new file mode 100644 (file)
index 0000000..62db95e
--- /dev/null
@@ -0,0 +1,59 @@
+.\"
+.\" "$Id: cupstestdsc.man 5099 2006-02-13 02:46:10Z mike $"
+.\"
+.\"   cupstestdsc man page for the Common UNIX Printing System (CUPS).
+.\"
+.\"   Copyright 2006 by Easy Software Products.
+.\"
+.\"   These coded instructions, statements, and computer programs are the
+.\"   property of Easy Software Products and are protected by Federal
+.\"   copyright law.  Distribution and use rights are outlined in the file
+.\"   "LICENSE.txt" which should have been included with this file.  If this
+.\"   file is missing or damaged please contact Easy Software Products
+.\"   at:
+.\"
+.\"       Attn: CUPS Licensing Information
+.\"       Easy Software Products
+.\"       44141 Airport View Drive, Suite 204
+.\"       Hollywood, Maryland 20636 USA
+.\"
+.\"       Voice: (301) 373-9600
+.\"       EMail: cups-info@cups.org
+.\"         WWW: http://www.cups.org
+.\"
+.TH cupstestdsc 1 "Common UNIX Printing System" "20 March 2006" "Easy Software Products"
+.SH NAME
+cupstestdsc \- test conformance of postscript files
+.SH SYNOPSIS
+.B cupstestdsc
+[ -h ] filename.ps [ ...
+.I filenameN.ps
+]
+.br
+.B cupstestdsc
+[ -h ] -
+.SH DESCRIPTION
+\fIcupstestdsc\fR tests the conformance of PostScript files to
+the Adobe PostScript Language Document Structuring Conventions
+Specification version 3.0. The results of testing and any other
+output are sent to the standard output. The second form of the
+command reads PostScript from the standard input.
+.SH LIMITATIONS
+\fIcupstestdsc\fR only validates the DSC comments in a PostScript
+file and does not attempt to validate the PostScript code itself.
+Developers must ensure that the PostScript they generate follows
+the rules defined by Adobe. Specifically, all pages must be
+independent of each other, code outside page descriptions may not
+affect the graphics state (current font, color, transform matrix,
+etc.), and device-specific commands such as setpagedevice should
+not be used.
+.SH SEE ALSO
+http://localhost:631/help
+.br
+Adobe PostScript Language Document Structuring Conventions
+Specification, Version 3.0.
+.SH COPYRIGHT
+Copyright 2006 by Easy Software Products, All Rights Reserved.
+.\"
+.\" End of "$Id$".
+.\"
index 6243bcd6c56fde2abc14385b5b43bebeebbb5bc5..d3537d40a8ca26038641234def271fd4e53067f0 100644 (file)
@@ -1,5 +1,5 @@
 .\"
-.\" "$Id: filter.man 5099 2006-02-13 02:46:10Z mike $"
+.\" "$Id: filter.man 5327 2006-03-23 19:53:24Z mike $"
 .\"
 .\"   filter man page for the Common UNIX Printing System (CUPS).
 .\"
@@ -21,7 +21,7 @@
 .\"       EMail: cups-info@cups.org
 .\"         WWW: http://www.cups.org
 .\"
-.TH filter 7 "Common UNIX Printing System" "12 February 2006" "Easy Software Products"
+.TH filter 7 "Common UNIX Printing System" "23 March 2006" "Easy Software Products"
 .SH NAME
 filter \- cups file conversion filter interface
 .SH SYNOPSIS
@@ -129,7 +129,7 @@ message to the current \fIErrorLog\fR using the "warning" log level.
 
 .SH ENVIRONMENT VARIABLES
 The following environment variables are defined by the CUPS
-server when executing the backend:
+server when executing the filter:
 
 .TP 5
 CHARSET
@@ -162,10 +162,7 @@ The root directory of the server.
 .TP 5
 DEVICE_URI
 .br
-The device-uri associated with the printer; this is provided for
-shell scripts which may not be able to get the passed argv[0]
-string and for backends that require any authentication
-information which is not included in argv[0].
+The device-uri associated with the printer.
 
 .TP 5
 FINAL_CONTENT_TYPE
@@ -182,7 +179,7 @@ The default language locale (typically C or en).
 PATH
 .br
 The standard execution path for external programs that may be run by
-the backend.
+the filter.
 
 .TP 5
 PPD
@@ -214,7 +211,7 @@ The timezone of the server.
 .TP 5
 USER
 .br
-The user executing the backend, typically root; consult the
+The user executing the filter, typically "lp" or "root"; consult the
 \fIcupsd.conf(5)\fR file for the current setting.
 
 .SH COMPATIBILITY
@@ -229,5 +226,5 @@ http://localhost:631/help
 .SH COPYRIGHT
 Copyright 1997-2006 by Easy Software Products, All Rights Reserved.
 .\"
-.\" End of "$Id: filter.man 5099 2006-02-13 02:46:10Z mike $".
+.\" End of "$Id: filter.man 5327 2006-03-23 19:53:24Z mike $".
 .\"
index 41662a1dd5503a1cff9b49b4572bb6dec66f09de..87ff04e673564e1c44d23e3c554b231a3ebde8f7 100644 (file)
@@ -1,5 +1,5 @@
 .\"
-.\" "$Id: lp.man 5099 2006-02-13 02:46:10Z mike $"
+.\" "$Id: lp.man 5327 2006-03-23 19:53:24Z mike $"
 .\"
 .\"   lp man page for the Common UNIX Printing System (CUPS).
 .\"
@@ -21,7 +21,7 @@
 .\"       EMail: cups-info@cups.org
 .\"         WWW: http://www.cups.org
 .\"
-.TH lp 1 "Common UNIX Printing System" "12 February 2006" "Easy Software Products"
+.TH lp 1 "Common UNIX Printing System" "23 March 2006" "Easy Software Products"
 .SH NAME
 lp - print files
 .SH SYNOPSIS
@@ -34,7 +34,7 @@ lp - print files
 .I hostname[:port]
 ] [ -m ] [ -n
 .I num-copies
-[ -o
+[ -o
 .I option[=value]
 ] [ -q
 .I priority
@@ -57,7 +57,7 @@ lp - print files
 .I job-id
 ] [ -n
 .I num-copies
-[ -o
+[ -o
 .I option[=value]
 ] [ -q
 .I priority
@@ -248,5 +248,5 @@ http://localhost:631/help
 .SH COPYRIGHT
 Copyright 1997-2006 by Easy Software Products, All Rights Reserved.
 .\"
-.\" End of "$Id: lp.man 5099 2006-02-13 02:46:10Z mike $".
+.\" End of "$Id: lp.man 5327 2006-03-23 19:53:24Z mike $".
 .\"
index a446277367411c00422cade42158268b84b189a2..28d747053c288a31b3dc8eede72d3a3357fe3cc1 100644 (file)
@@ -1,5 +1,5 @@
 .\"
-.\" "$Id: lpadmin.man 5099 2006-02-13 02:46:10Z mike $"
+.\" "$Id: lpadmin.man 5327 2006-03-23 19:53:24Z mike $"
 .\"
 .\"   lpadmin man page for the Common UNIX Printing System (CUPS).
 .\"
@@ -21,7 +21,7 @@
 .\"       EMail: cups-info@cups.org
 .\"         WWW: http://www.cups.org
 .\"
-.TH lpadmin 8 "Common UNIX Printing System" "12 February 2006" "Easy Software Products"
+.TH lpadmin 8 "Common UNIX Printing System" "23 March 2006" "Easy Software Products"
 .SH NAME
 lpadmin \- configure cups printers and classes
 .SH SYNOPSIS
@@ -129,8 +129,11 @@ Removes the named \fIprinter\fR from \fIclass\fR.  If the
 resulting class becomes empty it is removed.
 .TP 5
 -u allow:user,user,@group
+.TP 5
 -u deny:user,user,@group
+.TP 5
 -u allow:all
+.TP 5
 -u deny:none
 .br
 Sets user-level access control on a printer. Names starting with
@@ -179,5 +182,5 @@ http://localhost:631/help
 .SH COPYRIGHT
 Copyright 1997-2006 by Easy Software Products, All Rights Reserved.
 .\"
-.\" End of "$Id: lpadmin.man 5099 2006-02-13 02:46:10Z mike $".
+.\" End of "$Id: lpadmin.man 5327 2006-03-23 19:53:24Z mike $".
 .\"
index d1981c3b937ff755f7b2f5849d322f15f0fd4be8..239b8d5cd6d088f0bec02683ad859c83b181da2a 100644 (file)
@@ -1,5 +1,5 @@
 .\"
-.\" "$Id: lpstat.man 5099 2006-02-13 02:46:10Z mike $"
+.\" "$Id: lpstat.man 5327 2006-03-23 19:53:24Z mike $"
 .\"
 .\"   lpstat man page for the Common UNIX Printing System (CUPS).
 .\"
@@ -21,7 +21,7 @@
 .\"       EMail: cups-info@cups.org
 .\"         WWW: http://www.cups.org
 .\"
-.TH lpstat 1 "Common UNIX Printing System" "12 February 2006" "Easy Software Products"
+.TH lpstat 1 "Common UNIX Printing System" "23 March 2006" "Easy Software Products"
 .SH NAME
 lpstat \- print cups status information
 .SH SYNOPSIS
@@ -36,7 +36,7 @@ lpstat \- print cups status information
 .I destination(s)
 ] ] [ -c [
 .I class(es)
-] [ -d ] [ -o [
+] [ -d ] [ -o [
 .I destination(s)
 ] ] [ -p [
 .I printer(s)
@@ -144,5 +144,5 @@ http://localhost:631/help
 .SH COPYRIGHT
 Copyright 1997-2006 by Easy Software Products, All Rights Reserved.
 .\"
-.\" End of "$Id: lpstat.man 5099 2006-02-13 02:46:10Z mike $".
+.\" End of "$Id: lpstat.man 5327 2006-03-23 19:53:24Z mike $".
 .\"
index 042df0bbc4a3702a99c539e77cbeae7254d0b4db..5fad905f9a9f9e1604c8bae2257bf29d5ad33a45 100644 (file)
@@ -1,5 +1,5 @@
 #
-# "$Id: cups.list.in 5311 2006-03-19 13:21:42Z mike $"
+# "$Id: cups.list.in 5328 2006-03-23 20:23:19Z mike $"
 #
 #   ESP Package Manager (EPM) file list for the Common UNIX Printing
 #   System (CUPS).
@@ -257,6 +257,7 @@ l 0755 root sys /usr/etc/lpc $SBINDIR/lpc
 # User commands
 d 0755 root sys $BINDIR -
 f 0755 root sys $BINDIR/cancel systemv/cancel
+f 0755 root sys $BINDIR/cupstestdsc systemv/cupstestdsc
 f 0755 root sys $BINDIR/cupstestppd systemv/cupstestppd
 f 0755 root sys $BINDIR/lp systemv/lp
 f 0755 root sys $BINDIR/lpoptions systemv/lpoptions
@@ -448,6 +449,7 @@ f 0644 root sys $DOCDIR/help doc/help/man-*.html
 f 0644 root sys $DOCDIR/help doc/help/ref-*.html
 d 0755 root sys $DOCDIR/images -
 f 0644 root sys $DOCDIR/images doc/images/*.gif
+f 0644 root sys $DOCDIR/images doc/images/*.jpg
 f 0644 root sys $DOCDIR/images doc/images/*.png
 f 0644 root sys $DOCDIR/robots.txt doc/robots.txt
 
@@ -473,6 +475,7 @@ d 0755 root sys $MANDIR/man5 -
 d 0755 root sys $MANDIR/man7 -
 
 f 0644 root sys $MANDIR/man1/cancel.$MAN1EXT man/cancel.$MAN1EXT
+f 0644 root sys $MANDIR/man1/cupstestdsc.$MAN1EXT man/cupstestdsc.$MAN1EXT
 f 0644 root sys $MANDIR/man1/cupstestppd.$MAN1EXT man/cupstestppd.$MAN1EXT
 f 0644 root sys $MANDIR/man1/lpoptions.$MAN1EXT man/lpoptions.$MAN1EXT
 f 0644 root sys $MANDIR/man1/lppasswd.$MAN1EXT man/lppasswd.$MAN1EXT
@@ -516,5 +519,5 @@ f 0644 root sys $AMANDIR/man$MAN8DIR/cups-lpd.$MAN8EXT man/cups-lpd.$MAN8EXT
 i 0755 root sys cups init/cups.sh
 
 #
-# End of "$Id: cups.list.in 5311 2006-03-19 13:21:42Z mike $".
+# End of "$Id: cups.list.in 5328 2006-03-23 20:23:19Z mike $".
 #
index aaa63561ea9294eb98aa1cb9872b4fe14d2f237b..b056c6e71e4430ba48b2b688f1a19f82cc657679 100644 (file)
@@ -1,5 +1,5 @@
 #
-# "$Id: cups.spec.in 5310 2006-03-19 03:23:34Z mike $"
+# "$Id: cups.spec.in 5317 2006-03-21 02:35:37Z mike $"
 #
 #   RPM "spec" file for the Common UNIX Printing System (CUPS).
 #
@@ -215,6 +215,7 @@ rm -rf $RPM_BUILD_ROOT
 #/sbin/rc.d/rc5.d/*
 
 /usr/bin/cancel
+/usr/bin/cupstestdsc
 /usr/bin/cupstestppd
 /usr/bin/lp*
 %dir /usr/lib/cups
@@ -264,6 +265,7 @@ rm -rf $RPM_BUILD_ROOT
 
 %dir /usr/share/man/man1
 /usr/share/man/man1/cancel.1.gz
+/usr/share/man/man1/cupstestdsc.1.gz
 /usr/share/man/man1/cupstestppd.1.gz
 /usr/share/man/man1/lp.1.gz
 /usr/share/man/man1/lpoptions.1.gz
@@ -358,5 +360,5 @@ rm -rf $RPM_BUILD_ROOT
 
 
 #
-# End of "$Id: cups.spec.in 5310 2006-03-19 03:23:34Z mike $".
+# End of "$Id: cups.spec.in 5317 2006-03-21 02:35:37Z mike $".
 #
index 6af0d3c46ccfff3f2f23d01d4e9bb2f9f90d202e..6958f4045fb02a17a4ed1c4b88129d1fbad606a2 100644 (file)
@@ -62,7 +62,6 @@
 *PageSize w288h216/Label - 4 x 3": "<</PageSize[288 216]/ImagingBBox null>>setpagedevice"
 *PageSize w288h288/Label - 4 x 4": "<</PageSize[288 288]/ImagingBBox null>>setpagedevice"
 *PageSize w288h360/Label - 4 x 5": "<</PageSize[288 360]/ImagingBBox null>>setpagedevice"
-*PageSize w288h360/Label - 4 x 5": "<</PageSize[288 360]/ImagingBBox null>>setpagedevice"
 *PageSize w288h432/Label - 4 x 6": "<</PageSize[288 432]/ImagingBBox null>>setpagedevice"
 *CloseUI: *PageSize
 
@@ -78,7 +77,6 @@
 *PageRegion w288h216/Label - 4 x 3": "<</PageSize[288 216]/ImagingBBox null>>setpagedevice"
 *PageRegion w288h288/Label - 4 x 4": "<</PageSize[288 288]/ImagingBBox null>>setpagedevice"
 *PageRegion w288h360/Label - 4 x 5": "<</PageSize[288 360]/ImagingBBox null>>setpagedevice"
-*PageRegion w288h360/Label - 4 x 5": "<</PageSize[288 360]/ImagingBBox null>>setpagedevice"
 *PageRegion w288h432/Label - 4 x 6": "<</PageSize[288 432]/ImagingBBox null>>setpagedevice"
 *CloseUI: *PageRegion
 
 *ImageableArea w144h144/Label - 2 x 2": "0 0 144 144"
 *ImageableArea w144h216/Label - 2 x 3": "0 0 144 216"
 *ImageableArea w209h72/Label - 2.9 x 1": "0 0 209 72"
-*ImageableArea w288h144/Label - 4 x 2": "0 0 280.8 144"
-*ImageableArea w288h216/Label - 4 x 3": "0 0 280.8 216"
-*ImageableArea w288h288/Label - 4 x 4": "0 0 280.8 288"
-*ImageableArea w288h360/Label - 4 x 5": "0 0 280.8 360"
-*ImageableArea w288h360/Label - 4 x 5": "0 0 280.8 360"
-*ImageableArea w288h432/Label - 4 x 6": "0 0 280.8 432"
+*ImageableArea w288h144/Label - 4 x 2": "0 0 287 144"
+*ImageableArea w288h216/Label - 4 x 3": "0 0 287 216"
+*ImageableArea w288h288/Label - 4 x 4": "0 0 287 288"
+*ImageableArea w288h360/Label - 4 x 5": "0 0 287 360"
+*ImageableArea w288h432/Label - 4 x 6": "0 0 287 432"
 
 *DefaultPaperDimension: w288h360
 *PaperDimension w144h72/Label - 2 x 1": "144 72"
 *PaperDimension w288h216/Label - 4 x 3": "288 216"
 *PaperDimension w288h288/Label - 4 x 4": "288 288"
 *PaperDimension w288h360/Label - 4 x 5": "288 360"
-*PaperDimension w288h360/Label - 4 x 5": "288 360"
 *PaperDimension w288h432/Label - 4 x 6": "288 432"
 
 *MaxMediaWidth: "288"
 *MaxMediaHeight: "3600"
-*HWMargins: 0 0 0 0
+*HWMargins: 0 0 1 0
 *CustomPageSize True: "pop pop pop <</PageSize[5 -2 roll]/ImagingBBox null>>setpagedevice"
 *ParamCustomPageSize Width: 1 points 36 288
 *ParamCustomPageSize Height: 2 points 36 3600
index e8f24e15c34e164c815b4dcf72c769e70ad4843b..6ece0cd51c5560cd0a7553389c40308b8cb352ac 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: auth.c 5305 2006-03-18 03:05:12Z mike $"
+ * "$Id: auth.c 5336 2006-03-24 16:37:29Z mike $"
  *
  *   Authorization routines for the Common UNIX Printing System (CUPS).
  *
@@ -390,7 +390,7 @@ cupsdAuthorize(cupsd_client_t *con) /* I - Client connection */
     */
 
     authorization += 5;
-    while (isspace(*authorization))
+    while (isspace(*authorization & 255))
       authorization ++;
 
     if ((localuser = cupsdFindCert(authorization)) != NULL)
@@ -414,7 +414,7 @@ cupsdAuthorize(cupsd_client_t *con) /* I - Client connection */
 
 
     authorization += 5;
-    while (isspace(*authorization))
+    while (isspace(*authorization & 255))
       authorization ++;
 
     userlen = sizeof(username);
@@ -580,7 +580,7 @@ cupsdAuthorize(cupsd_client_t *con) /* I - Client connection */
              cupsdLogMessage(CUPSD_LOG_ERROR,
                              "cupsdAuthorize: Unknown username \"%s\"!",
                              username);
-             return (HTTP_UNAUTHORIZED);
+             return;
            }
 
 #  ifdef HAVE_SHADOW_H
@@ -2164,5 +2164,5 @@ to64(char          *s,                    /* O - Output string */
 
 
 /*
- * End of "$Id: auth.c 5305 2006-03-18 03:05:12Z mike $".
+ * End of "$Id: auth.c 5336 2006-03-24 16:37:29Z mike $".
  */
index b439dac2d01a0d0a19b15870d5408b7208abf915..5f533780fab7d98ce11b269df05cfbd62658544c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: client.c 5305 2006-03-18 03:05:12Z mike $"
+ * "$Id: client.c 5335 2006-03-24 02:56:20Z mike $"
  *
  *   Client routines for the Common UNIX Printing System (CUPS) scheduler.
  *
@@ -66,7 +66,9 @@
 
 static int             check_if_modified(cupsd_client_t *con,
                                          struct stat *filestats);
+#ifdef HAVE_SSL
 static int             encrypt_client(cupsd_client_t *con);
+#endif /* HAVE_SSL */
 #ifdef HAVE_CDSASSL
 static CFArrayRef      get_cdsa_server_certs(void);
 #endif /* HAVE_CDSASSL */
@@ -1986,18 +1988,35 @@ cupsdSendError(cupsd_client_t *con,     /* I - Connection */
     * Send a human-readable error message.
     */
 
-    char       message[1024];          /* Message for user */
+    char       message[4096],          /* Message for user */
+               urltext[1024],          /* URL redirection text */
+               redirect[1024];         /* Redirection link */
     const char *text;                  /* Status-specific text */
 
+
+    redirect[0] = '\0';
+
     if (code == HTTP_UNAUTHORIZED)
       text = _cupsLangString(con->language,
                              _("Enter your username and password or the "
                               "root username and password to access this "
                               "page."));
     else if (code == HTTP_UPGRADE_REQUIRED)
-      text = _cupsLangString(con->language,
-                             _("You must use a https: URL to access this "
-                              "page."));
+    {
+      text = urltext;
+
+      snprintf(urltext, sizeof(urltext),
+               _cupsLangString(con->language,
+                               _("You must access this page using the URL "
+                                "<A HREF=\"https://%s:%d%s\">"
+                                "https://%s:%d%s</A>.")),
+               con->servername, con->serverport, con->uri,
+              con->servername, con->serverport, con->uri);
+
+      snprintf(redirect, sizeof(redirect),
+               "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"3;https://%s:%d%s\">\n",
+              con->servername, con->serverport, con->uri);
+    }
     else
       text = "";
 
@@ -2011,13 +2030,14 @@ cupsdSendError(cupsd_client_t *con,     /* I - Connection */
             "\t<TITLE>%d %s</TITLE>\n"
             "\t<LINK REL=\"STYLESHEET\" TYPE=\"text/css\" "
             "HREF=\"/cups.css\">\n"
+            "%s"
             "</HEAD>\n"
              "<BODY>\n"
             "<H1>%d %s</H1>\n"
             "<P>%s</P>\n"
             "</BODY>\n"
             "</HTML>\n",
-            code, httpStatus(code), code, httpStatus(code), text);
+            code, httpStatus(code), redirect, code, httpStatus(code), text);
 
     if (httpPrintf(HTTP(con), "Content-Type: text/html; charset=utf-8\r\n") < 0)
       return (0);
@@ -2465,6 +2485,7 @@ check_if_modified(
 }
 
 
+#ifdef HAVE_SSL
 /*
  * 'encrypt_client()' - Enable encryption for the client...
  */
@@ -2472,7 +2493,7 @@ check_if_modified(
 static int                             /* O - 1 on success, 0 on error */
 encrypt_client(cupsd_client_t *con)    /* I - Client to encrypt */
 {
-#ifdef HAVE_LIBSSL
+#  ifdef HAVE_LIBSSL
   SSL_CTX      *context;               /* Context for encryption */
   SSL          *conn;                  /* Connection for encryption */
   unsigned long        error;                  /* Error code */
@@ -2513,7 +2534,7 @@ encrypt_client(cupsd_client_t *con)       /* I - Client to encrypt */
   con->http.tls = conn;
   return (1);
   
-#elif defined(HAVE_GNUTLS)
+#  elif defined(HAVE_GNUTLS)
   http_tls_t   *conn;                  /* TLS session object */
   int          error;                  /* Error code */
   gnutls_certificate_server_credentials *credentials;
@@ -2590,7 +2611,7 @@ encrypt_client(cupsd_client_t *con)       /* I - Client to encrypt */
   con->http.tls = conn;
   return (1);
 
-#elif defined(HAVE_CDSASSL)
+#  elif defined(HAVE_CDSASSL)
   OSStatus     error;                  /* Error info */
   SSLContextRef        conn;                   /* New connection */
   CFArrayRef   certificatesArray;      /* Array containing certificates */
@@ -2676,10 +2697,9 @@ encrypt_client(cupsd_client_t *con)      /* I - Client to encrypt */
   con->http.tls = conn;
   return (1);
 
-#else
-  return (0);
-#endif /* HAVE_LIBSSL */
+#  endif /* HAVE_LIBSSL */
 }
+#endif /* HAVE_SSL */
 
 
 #ifdef HAVE_CDSASSL
@@ -3767,5 +3787,5 @@ send_file(cupsd_client_t *con,            /* I - Client connection */
 
 
 /*
- * End of "$Id: client.c 5305 2006-03-18 03:05:12Z mike $".
+ * End of "$Id: client.c 5335 2006-03-24 02:56:20Z mike $".
  */
index e44c6d1469262a0a88a52bc039e6b25bf4a8fd7c..fd662551d36b6ca2f515d92577b4812d053a5932 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: cups-driverd.c 5130 2006-02-17 20:25:33Z mike $"
+ * "$Id: cups-driverd.c 5333 2006-03-24 00:52:21Z mike $"
  *
  *   PPD/driver support for the Common UNIX Printing System (CUPS).
  *
 
 #include "util.h"
 #include <cups/dir.h>
+#include <cups/transcode.h>
+
+
+/*
+ * Private PPD functions...
+ */
+
+extern cups_encoding_t _ppdGetEncoding(const char *name);
 
 
 /*
@@ -641,7 +649,8 @@ load_ppds(const char *d,            /* I - Actual directory */
                line[256],              /* Line from backend */
                *ptr,                   /* Pointer into name */
                name[128],              /* Name of PPD file */
-               language[64],           /* PPD language version */
+               lang_version[64],       /* PPD LanguageVersion */
+               lang_encoding[64],      /* PPD LanguageEncoding */
                country[64],            /* Country code */
                manufacturer[256],      /* Manufacturer */
                make_model[256],        /* Make and Model */
@@ -771,11 +780,12 @@ load_ppds(const char *d,          /* I - Actual directory */
     * Now read until we get the NickName field...
     */
 
-    model_name[0]   = '\0';
-    nick_name[0]    = '\0';
-    manufacturer[0] = '\0';
-    device_id[0]    = '\0';
-    strcpy(language, "en");
+    model_name[0]    = '\0';
+    nick_name[0]     = '\0';
+    manufacturer[0]  = '\0';
+    device_id[0]     = '\0';
+    lang_encoding[0] = '\0';
+    strcpy(lang_version, "en");
 
     while (cupsFileGets(fp, line, sizeof(line)) != NULL)
     {
@@ -783,8 +793,10 @@ load_ppds(const char *d,           /* I - Actual directory */
        sscanf(line, "%*[^\"]\"%255[^\"]", manufacturer);
       else if (!strncmp(line, "*ModelName:", 11))
        sscanf(line, "%*[^\"]\"%127[^\"]", model_name);
+      else if (!strncmp(line, "*LanguageEncoding:", 18))
+       sscanf(line, "%*[^:]:%63s", lang_encoding);
       else if (!strncmp(line, "*LanguageVersion:", 17))
-       sscanf(line, "%*[^:]:%63s", language);
+       sscanf(line, "%*[^:]:%63s", lang_version);
       else if (!strncmp(line, "*NickName:", 10))
        sscanf(line, "%*[^\"]\"%255[^\"]", nick_name);
       else if (!strncmp(line, "*1284DeviceId:", 14))
@@ -812,7 +824,8 @@ load_ppds(const char *d,            /* I - Actual directory */
     */
 
     if (nick_name[0])
-      strcpy(make_model, nick_name);
+      cupsCharsetToUTF8((cups_utf8_t *)make_model, nick_name,
+                        sizeof(make_model), _ppdGetEncoding(lang_encoding));
     else
       strcpy(make_model, model_name);
 
@@ -883,12 +896,12 @@ load_ppds(const char *d,          /* I - Actual directory */
       strcpy(manufacturer, "LHAG");
 
    /*
-    * Fix the language as needed...
+    * Fix the lang_version as needed...
     */
 
-    if ((ptr = strchr(language, '-')) != NULL)
+    if ((ptr = strchr(lang_version, '-')) != NULL)
       *ptr++ = '\0';
-    else if ((ptr = strchr(language, '_')) != NULL)
+    else if ((ptr = strchr(lang_version, '_')) != NULL)
       *ptr++ = '\0';
 
     if (ptr)
@@ -910,7 +923,7 @@ load_ppds(const char *d,            /* I - Actual directory */
     }
 
     for (i = 0; i < (int)(sizeof(languages) / sizeof(languages[0])); i ++)
-      if (!strcasecmp(languages[i].version, language))
+      if (!strcasecmp(languages[i].version, lang_version))
         break;
 
     if (i < (int)(sizeof(languages) / sizeof(languages[0])))
@@ -919,8 +932,8 @@ load_ppds(const char *d,            /* I - Actual directory */
       * Found a known language...
       */
 
-      snprintf(language, sizeof(language), "%s%s", languages[i].language, 
-               country);
+      snprintf(lang_version, sizeof(lang_version), "%s%s",
+               languages[i].language, country);
     }
     else
     {
@@ -928,7 +941,7 @@ load_ppds(const char *d,            /* I - Actual directory */
       * Unknown language; use "xx"...
       */
 
-      strcpy(language, "xx");
+      strcpy(lang_version, "xx");
     }
 
    /*
@@ -945,7 +958,7 @@ load_ppds(const char *d,            /* I - Actual directory */
 
       fprintf(stderr, "DEBUG: [cups-driverd] Adding ppd \"%s\"...\n", name);
 
-      if (!add_ppd(name, language, manufacturer, make_model, device_id,
+      if (!add_ppd(name, lang_version, manufacturer, make_model, device_id,
                    dent->fileinfo.st_mtime, dent->fileinfo.st_size))
       {
         cupsDirClose(dir);
@@ -970,7 +983,7 @@ load_ppds(const char *d,            /* I - Actual directory */
       strlcpy(ppd->record.make, manufacturer, sizeof(ppd->record.make));
       strlcpy(ppd->record.make_and_model, make_model,
               sizeof(ppd->record.make_and_model));
-      strlcpy(ppd->record.natural_language, language,
+      strlcpy(ppd->record.natural_language, lang_version,
               sizeof(ppd->record.natural_language));
       strlcpy(ppd->record.device_id, device_id, sizeof(ppd->record.device_id));
     }
@@ -1100,5 +1113,5 @@ load_drivers(void)
 
 
 /*
- * End of "$Id: cups-driverd.c 5130 2006-02-17 20:25:33Z mike $".
+ * End of "$Id: cups-driverd.c 5333 2006-03-24 00:52:21Z mike $".
  */
index 1c0be6a3b13ce5f1d85263a8120728cc2bf945e7..02461f447fe48b4ebad1aab6f9168f80f9777ec5 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: dirsvc.c 5305 2006-03-18 03:05:12Z mike $"
+ * "$Id: dirsvc.c 5330 2006-03-23 21:07:20Z mike $"
  *
  *   Directory services routines for the Common UNIX Printing System (CUPS).
  *
@@ -77,8 +77,9 @@ static void   send_cups_browse(cupsd_printer_t *p);
 #ifdef HAVE_LDAP
 static void    send_ldap_browse(cupsd_printer_t *p);
 #endif /* HAVE_LDAP */
+#ifdef HAVE_LIBSLP
 static void    send_slp_browse(cupsd_printer_t *p);
-
+#endif /* HAVE_LIBSLP */
 
 #ifdef HAVE_OPENLDAP
 static const char * const ldap_attrs[] =/* CUPS LDAP attributes */
@@ -3115,5 +3116,5 @@ slp_url_callback(
 
 
 /*
- * End of "$Id: dirsvc.c 5305 2006-03-18 03:05:12Z mike $".
+ * End of "$Id: dirsvc.c 5330 2006-03-23 21:07:20Z mike $".
  */
index 9f39ab2b31dad5f6221354117dce5f62f505d803..48b2349a98722c96671785edaecab721244046a3 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: ipp.c 5284 2006-03-13 13:34:24Z mike $"
+ * "$Id: ipp.c 5334 2006-03-24 01:20:03Z mike $"
  *
  *   IPP routines for the Common UNIX Printing System (CUPS) scheduler.
  *
@@ -126,7 +126,8 @@ static void add_class(cupsd_client_t *con, ipp_attribute_t *uri);
 static int     add_file(cupsd_client_t *con, cupsd_job_t *job,
                         mime_type_t *filetype, int compression);
 static cupsd_job_t *add_job(cupsd_client_t *con, ipp_attribute_t *uri,
-                           cupsd_printer_t **dprinter);
+                           cupsd_printer_t **dprinter,
+                           mime_type_t *filetype);
 static void    add_job_state_reasons(cupsd_client_t *con, cupsd_job_t *job);
 static void    add_job_subscriptions(cupsd_client_t *con, cupsd_job_t *job);
 static void    add_job_uuid(cupsd_client_t *con, cupsd_job_t *job);
@@ -1131,7 +1132,8 @@ add_file(cupsd_client_t *con,             /* I - Connection to client */
 static cupsd_job_t *                   /* O - Job object */
 add_job(cupsd_client_t  *con,          /* I - Client connection */
         ipp_attribute_t *uri,          /* I - printer-uri */
-       cupsd_printer_t **dprinter)     /* I - Destination printer */
+       cupsd_printer_t **dprinter,     /* I - Destination printer */
+       mime_type_t     *filetype)      /* I - First print file type, if any */
 {
   http_status_t        status;                 /* Policy status */
   ipp_attribute_t *attr;               /* Current attribute */
@@ -1219,9 +1221,29 @@ add_job(cupsd_client_t  *con,            /* I - Client connection */
   }
 
  /*
-  * Validate job template attributes; for now just copies and page-ranges...
+  * Validate job template attributes; for now just document-format,
+  * copies, and page-ranges...
   */
 
+  if (filetype && printer->filetypes &&
+      !cupsArrayFind(printer->filetypes, filetype))
+  {
+    char       mimetype[MIME_MAX_SUPER + MIME_MAX_TYPE + 2];
+                                       /* MIME media type string */
+
+
+    snprintf(mimetype, sizeof(mimetype), "%s/%s", filetype->super,
+             filetype->type);
+
+    send_ipp_status(con, IPP_DOCUMENT_FORMAT,
+                    _("Unsupported format \'%s\'!"), mimetype);
+
+    ippAddString(con->response, IPP_TAG_UNSUPPORTED_GROUP, IPP_TAG_MIMETYPE,
+                 "document-format", NULL, mimetype);
+
+    return (NULL);
+  }
+
   if ((attr = ippFindAttribute(con->request, "copies",
                                IPP_TAG_INTEGER)) != NULL)
   {
@@ -1693,10 +1715,7 @@ add_job_state_reasons(
   switch (job ? job->state_value : IPP_JOB_CANCELLED)
   {
     case IPP_JOB_PENDING :
-        if (job->dtype & CUPS_PRINTER_CLASS)
-         dest = cupsdFindClass(job->dest);
-       else
-         dest = cupsdFindPrinter(job->dest);
+       dest = cupsdFindDest(job->dest);
 
         if (dest && dest->state == IPP_PRINTER_STOPPED)
           ippAddString(con->response, IPP_TAG_JOB, IPP_TAG_KEYWORD,
@@ -3495,7 +3514,7 @@ copy_banner(cupsd_client_t *con,  /* I - Client connection */
   * Try the localized banner file under the subdirectory...
   */
 
-  strlcpy(attrname, con->request->attrs->next->values[0].string.text,
+  strlcpy(attrname, job->attrs->attrs->next->values[0].string.text,
           sizeof(attrname));
   if (strlen(attrname) > 2 && attrname[2] == '-')
   {
@@ -4434,7 +4453,7 @@ create_job(cupsd_client_t  *con,  /* I - Client connection */
   * Create the job object...
   */
 
-  if ((job = add_job(con, uri, NULL)) == NULL)
+  if ((job = add_job(con, uri, NULL, NULL)) == NULL)
     return;
 
  /*
@@ -6824,7 +6843,7 @@ print_job(cupsd_client_t  *con,           /* I - Client connection */
   }
 
   cupsdLogMessage(CUPSD_LOG_DEBUG, "print_job: request file type is %s/%s.",
-            filetype->super, filetype->type);
+                 filetype->super, filetype->type);
 
  /*
   * Read any embedded job ticket info from PS files...
@@ -6838,7 +6857,7 @@ print_job(cupsd_client_t  *con,           /* I - Client connection */
   * Create the job object...
   */
 
-  if ((job = add_job(con, uri, &printer)) == NULL)
+  if ((job = add_job(con, uri, &printer, filetype)) == NULL)
     return;
 
  /*
@@ -7846,6 +7865,22 @@ send_document(cupsd_client_t  *con,      /* I - Client connection */
     return;
   }
 
+  printer = cupsdFindDest(job->dest);
+
+  if (printer->filetypes && !cupsArrayFind(printer->filetypes, filetype))
+  {
+    snprintf(mimetype, sizeof(mimetype), "%s/%s", filetype->super,
+             filetype->type);
+
+    send_ipp_status(con, IPP_DOCUMENT_FORMAT,
+                    _("Unsupported format \'%s\'!"), mimetype);
+
+    ippAddString(con->response, IPP_TAG_UNSUPPORTED_GROUP, IPP_TAG_MIMETYPE,
+                 "document-format", NULL, mimetype);
+
+    return;
+  }
+
   cupsdLogMessage(CUPSD_LOG_DEBUG,
                   "send_document: request file type is %s/%s.",
                  filetype->super, filetype->type);
@@ -7859,11 +7894,6 @@ send_document(cupsd_client_t  *con,      /* I - Client connection */
   if (add_file(con, job, filetype, compression))
     return;
 
-  if (job->dtype & CUPS_PRINTER_CLASS)
-    printer = cupsdFindClass(job->dest);
-  else
-    printer = cupsdFindPrinter(job->dest);
-
   if (stat(con->filename, &fileinfo))
     kbytes = 0;
   else
@@ -9099,10 +9129,7 @@ validate_user(cupsd_job_t    *job,       /* I - Job */
   * Check the username against the owner...
   */
 
-  if (job->dtype & CUPS_PRINTER_CLASS)
-    printer = cupsdFindClass(job->dest);
-  else
-    printer = cupsdFindPrinter(job->dest);
+  printer = cupsdFindDest(job->dest);
 
   return (cupsdCheckPolicy(printer ? printer->op_policy_ptr : DefaultPolicyPtr,
                            con, owner) == HTTP_OK);
@@ -9110,5 +9137,5 @@ validate_user(cupsd_job_t    *job,        /* I - Job */
 
 
 /*
- * End of "$Id: ipp.c 5284 2006-03-13 13:34:24Z mike $".
+ * End of "$Id: ipp.c 5334 2006-03-24 01:20:03Z mike $".
  */
index 2ec838a3ee7d57c6ff7dd31269ff1b7ec796111d..456fc358d2a67803848238a6219dc71dda27ff22 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: printers.c 5305 2006-03-18 03:05:12Z mike $"
+ * "$Id: printers.c 5330 2006-03-23 21:07:20Z mike $"
  *
  *   Printer routines for the Common UNIX Printing System (CUPS).
  *
@@ -721,6 +721,8 @@ cupsdDeletePrinter(
   cupsdClearString(&p->op_policy);
   cupsdClearString(&p->error_policy);
 
+  cupsArrayDelete(p->filetypes);
+
   if (p->browse_attrs)
     free(p->browse_attrs);
 
@@ -2882,8 +2884,7 @@ add_printer_formats(cupsd_printer_t *p)   /* I - Printer */
   int          i;                      /* Looping var */
   mime_type_t  *type;                  /* Current MIME type */
   cups_array_t *filters;               /* Filters */
-  int          num_types;              /* Number of supported types */
-  const char   **types;                /* Array of supported type names */
+  ipp_attribute_t *attr;               /* document-format-supported attribute */
   char         mimetype[MIME_MAX_SUPER + MIME_MAX_TYPE + 2];
                                        /* MIME type name */
 
@@ -2893,6 +2894,9 @@ add_printer_formats(cupsd_printer_t *p)   /* I - Printer */
   * types...
   */
 
+  cupsArrayDelete(p->filetypes);
+  p->filetypes = NULL;
+
   if (p->raw)
   {
     ippAddStrings(p->attrs, IPP_TAG_PRINTER,
@@ -2906,20 +2910,12 @@ add_printer_formats(cupsd_printer_t *p) /* I - Printer */
   * are filters for them...
   */
 
-  if ((types = calloc(NumMimeTypes, sizeof(char *))) == NULL)
-  {
-    cupsdLogMessage(CUPSD_LOG_EMERG,
-                    "Unable to allocate memory for \"%s\" MIME type list!",
-                   p->name);
-    return;
-  }
-
   cupsdLogMessage(CUPSD_LOG_DEBUG2, "add_printer_formats: %d types, %d filters",
                   mimeNumTypes(MimeDatabase), mimeNumFilters(MimeDatabase));
 
-  types[0] = _cupsStrAlloc("application/octet-stream");
+  p->filetypes = cupsArrayNew(NULL, NULL);
 
-  for (num_types = 1, type = mimeFirstType(MimeDatabase);
+  for (type = mimeFirstType(MimeDatabase);
        type;
        type = mimeNextType(MimeDatabase))
   {
@@ -2936,8 +2932,7 @@ add_printer_formats(cupsd_printer_t *p)   /* I - Printer */
                       p->name, mimetype, cupsArrayCount(filters));
 
       cupsArrayDelete(filters);
-      types[num_types] = _cupsStrAlloc(mimetype);
-      num_types ++;
+      cupsArrayAdd(p->filetypes, type);
     }
     else
       cupsdLogMessage(CUPSD_LOG_DEBUG2,
@@ -2947,23 +2942,27 @@ add_printer_formats(cupsd_printer_t *p) /* I - Printer */
 
   cupsdLogMessage(CUPSD_LOG_DEBUG2,
                   "add_printer_formats: %s: %d supported types",
-                 p->name, num_types);
+                 p->name, cupsArrayCount(p->filetypes) + 1);
 
  /*
   * Add the file formats that can be filtered...
   */
 
-  ippAddStrings(p->attrs, IPP_TAG_PRINTER, IPP_TAG_MIMETYPE,
-                "document-format-supported", num_types, NULL, types);
 
- /*
-  * Free the temporary data...
-  */
+  attr = ippAddStrings(p->attrs, IPP_TAG_PRINTER, IPP_TAG_MIMETYPE,
+                       "document-format-supported",
+                      cupsArrayCount(p->filetypes) + 1, NULL, NULL);
+
+  attr->values[0].string.text = _cupsStrAlloc("application/octet-stream");
 
-  for (i = 0; i < num_types; i ++)
-    _cupsStrFree(types[i]);
+  for (i = 1, type = (mime_type_t *)cupsArrayFirst(p->filetypes);
+       type;
+       i ++, type = (mime_type_t *)cupsArrayNext(p->filetypes))
+  {
+    snprintf(mimetype, sizeof(mimetype), "%s/%s", type->super, type->type);
 
-  free(types);
+    attr->values[i].string.text = _cupsStrAlloc(mimetype);
+  }
 }
 
 
@@ -3274,5 +3273,5 @@ write_irix_state(cupsd_printer_t *p)      /* I - Printer to update */
 
 
 /*
- * End of "$Id: printers.c 5305 2006-03-18 03:05:12Z mike $".
+ * End of "$Id: printers.c 5330 2006-03-23 21:07:20Z mike $".
  */
index 2fb47407cf7958e4b9cf33b42b053ecb74a230e8..ef8b3470909ef672748f076245de2e754c02b845 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: printers.h 5305 2006-03-18 03:05:12Z mike $"
+ * "$Id: printers.h 5330 2006-03-23 21:07:20Z mike $"
  *
  *   Printer definitions for the Common UNIX Printing System (CUPS) scheduler.
  *
@@ -67,6 +67,7 @@ typedef struct cupsd_printer_s
   char         *port_monitor;          /* Port monitor */
   int          raw;                    /* Raw queue? */
   mime_type_t  *filetype;              /* Pseudo-filetype for printer */
+  cups_array_t *filetypes;             /* Supported file types */
   void         *job;                   /* Current job in queue */
   ipp_t                *attrs;                 /* Attributes supported by this printer */
   int          num_printers,           /* Number of printers in class */
@@ -145,5 +146,5 @@ extern char         *cupsdSanitizeURI(const char *uri, char *buffer,
 
 
 /*
- * End of "$Id: printers.h 5305 2006-03-18 03:05:12Z mike $".
+ * End of "$Id: printers.h 5330 2006-03-23 21:07:20Z mike $".
  */
index 8dff0f79b31401a4c73e0430c220dfc9a3da4b53..3960571b3381029f9dbfc71e5a9553b1e3e133e1 100644 (file)
@@ -100,8 +100,8 @@ phpcups.so: $(OBJS) ../../Makedefs
        else \
                DSOFLAGS="$(DSOFLAGS)"; \
        fi; \
-       echo $(DSO) $$DSOFLAGS -o $@ $(OBJS) -L../../cups $(LIBS); \
-       $(DSO) $$DSOFLAGS -o $@ $(OBJS) -L../../cups $(LIBS)
+       echo $(DSO) $$DSOFLAGS $(ARCHFLAGS) -o $@ $(OBJS) -L../../cups $(LIBS); \
+       $(DSO) $$DSOFLAGS $(ARCHFLAGS) -o $@ $(OBJS) -L../../cups $(LIBS)
 
 
 #
index 1879b63b39993132551dfe293cd58f550dac18c5..c8eac0a08c7cb9d0958a43c5dabea238bddb38cc 100644 (file)
@@ -3,34 +3,47 @@
 accept.o: ../cups/string.h ../config.h ../cups/cups.h ../cups/ipp.h
 accept.o: ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
 accept.o: ../cups/file.h ../cups/language.h ../cups/i18n.h
+accept.o: ../cups/transcode.h
 cancel.o: ../cups/string.h ../config.h ../cups/cups.h ../cups/ipp.h
 cancel.o: ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
 cancel.o: ../cups/file.h ../cups/language.h ../cups/i18n.h
+cancel.o: ../cups/transcode.h
 cupsaddsmb.o: ../cups/string.h ../config.h ../cups/adminutil.h ../cups/cups.h
 cupsaddsmb.o: ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h
 cupsaddsmb.o: ../cups/array.h ../cups/file.h ../cups/language.h
-cupsaddsmb.o: ../cups/i18n.h ../cups/debug.h
+cupsaddsmb.o: ../cups/i18n.h ../cups/transcode.h ../cups/debug.h
+cupstestdsc.o: ../cups/string.h ../config.h ../cups/cups.h ../cups/ipp.h
+cupstestdsc.o: ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
+cupstestdsc.o: ../cups/file.h ../cups/language.h ../cups/file.h
+cupstestdsc.o: ../cups/i18n.h ../cups/transcode.h
 cupstestppd.o: ../cups/string.h ../config.h ../cups/cups.h ../cups/ipp.h
 cupstestppd.o: ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
 cupstestppd.o: ../cups/file.h ../cups/language.h ../cups/i18n.h
+cupstestppd.o: ../cups/transcode.h
 lp.o: ../cups/string.h ../config.h ../cups/cups.h ../cups/ipp.h
 lp.o: ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-lp.o: ../cups/file.h ../cups/language.h ../cups/i18n.h
+lp.o: ../cups/file.h ../cups/language.h ../cups/i18n.h ../cups/transcode.h
 lpadmin.o: ../cups/string.h ../config.h ../cups/cups.h ../cups/ipp.h
 lpadmin.o: ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-lpadmin.o: ../cups/file.h ../cups/language.h ../cups/i18n.h ../cups/debug.h
+lpadmin.o: ../cups/file.h ../cups/language.h ../cups/i18n.h
+lpadmin.o: ../cups/transcode.h ../cups/debug.h
 lpinfo.o: ../cups/string.h ../config.h ../cups/cups.h ../cups/ipp.h
 lpinfo.o: ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-lpinfo.o: ../cups/file.h ../cups/language.h ../cups/i18n.h ../cups/debug.h
+lpinfo.o: ../cups/file.h ../cups/language.h ../cups/i18n.h
+lpinfo.o: ../cups/transcode.h ../cups/debug.h
 lpmove.o: ../cups/string.h ../config.h ../cups/cups.h ../cups/ipp.h
 lpmove.o: ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-lpmove.o: ../cups/file.h ../cups/language.h ../cups/i18n.h ../cups/debug.h
+lpmove.o: ../cups/file.h ../cups/language.h ../cups/i18n.h
+lpmove.o: ../cups/transcode.h ../cups/debug.h
 lpoptions.o: ../cups/string.h ../config.h ../cups/cups.h ../cups/ipp.h
 lpoptions.o: ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
 lpoptions.o: ../cups/file.h ../cups/language.h ../cups/i18n.h
+lpoptions.o: ../cups/transcode.h
 lppasswd.o: ../cups/string.h ../config.h ../cups/cups.h ../cups/ipp.h
 lppasswd.o: ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-lppasswd.o: ../cups/file.h ../cups/language.h ../cups/i18n.h ../cups/md5.h
+lppasswd.o: ../cups/file.h ../cups/language.h ../cups/i18n.h
+lppasswd.o: ../cups/transcode.h ../cups/md5.h
 lpstat.o: ../cups/string.h ../config.h ../cups/cups.h ../cups/ipp.h
 lpstat.o: ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-lpstat.o: ../cups/file.h ../cups/language.h ../cups/i18n.h ../cups/debug.h
+lpstat.o: ../cups/file.h ../cups/language.h ../cups/i18n.h
+lpstat.o: ../cups/transcode.h ../cups/debug.h
index 268518c84085a88f79cd59d5c552e67311185026..14326f53411d02668247223d4c159555614bd746 100644 (file)
@@ -1,5 +1,5 @@
 #
-# "$Id: Makefile 5229 2006-03-05 16:48:12Z mike $"
+# "$Id: Makefile 5317 2006-03-21 02:35:37Z mike $"
 #
 #   System V commands makefile for the Common UNIX Printing System (CUPS).
 #
 
 include ../Makedefs
 
-TARGETS        =       accept cancel cupsaddsmb cupstestppd lp lpadmin lpinfo \
-               lpmove lpoptions lppasswd lpstat
-OBJS   =       accept.o cancel.o cupsaddsmb.o cupstestppd.o lp.o \
-               lpadmin.o lpinfo.o lpmove.o lpoptions.o lppasswd.o \
+TARGETS        =       accept cancel cupsaddsmb cupstestdsc cupstestppd \
+               lp lpadmin lpinfo lpmove lpoptions lppasswd lpstat
+OBJS   =       accept.o cancel.o cupsaddsmb.o cupstestdsc.o cupstestppd.o \
+               lp.o lpadmin.o lpinfo.o lpmove.o lpoptions.o lppasswd.o \
                lpstat.o
 
 
@@ -69,6 +69,7 @@ install:      all
        $(INSTALL_BIN) lpmove $(SBINDIR)
        $(INSTALL_DIR) -m 755 $(BINDIR)
        $(INSTALL_BIN) cancel $(BINDIR)
+       $(INSTALL_BIN) cupstestdsc $(BINDIR)
        $(INSTALL_BIN) cupstestppd $(BINDIR)
        $(RM) $(SBINDIR)/cupsdisable
        $(LN) accept $(SBINDIR)/cupsdisable
@@ -86,6 +87,7 @@ install:      all
 
 uninstall:
        $(RM) $(BINDIR)/cancel
+       $(RM) $(BINDIR)/cupstestdsc
        $(RM) $(BINDIR)/cupstestppd
        $(RM) $(BINDIR)/lp
        $(RM) $(BINDIR)/lpoptions
@@ -134,6 +136,15 @@ cupsaddsmb:        cupsaddsmb.o ../cups/$(LIBCUPS)
        $(CC) $(LDFLAGS) -o cupsaddsmb cupsaddsmb.o $(LIBS)
 
 
+#
+# cupstestdsc
+#
+
+cupstestdsc:   cupstestdsc.o ../cups/$(LIBCUPS)
+       echo Linking $@...
+       $(CC) $(LDFLAGS) -o $@ cupstestdsc.o $(LIBS)
+
+
 #
 # cupstestppd
 #
@@ -214,5 +225,5 @@ include Dependencies
 
 
 #
-# End of "$Id: Makefile 5229 2006-03-05 16:48:12Z mike $".
+# End of "$Id: Makefile 5317 2006-03-21 02:35:37Z mike $".
 #
diff --git a/systemv/cupstestdsc.c b/systemv/cupstestdsc.c
new file mode 100644 (file)
index 0000000..9e38aa4
--- /dev/null
@@ -0,0 +1,447 @@
+/*
+ * "$Id: cupstestdsc.c 5320 2006-03-21 19:03:25Z mike $"
+ *
+ *   DSC test program for the Common UNIX Printing System (CUPS).
+ *
+ *   Copyright 2006 by Easy Software Products, all rights reserved.
+ *
+ *   These coded instructions, statements, and computer programs are the
+ *   property of Easy Software Products and are protected by Federal
+ *   copyright law.  Distribution and use rights are outlined in the file
+ *   "LICENSE.txt" which should have been included with this file.  If this
+ *   file is missing or damaged please contact Easy Software Products
+ *   at:
+ *
+ *       Attn: CUPS Licensing Information
+ *       Easy Software Products
+ *       44141 Airport View Drive, Suite 204
+ *       Hollywood, Maryland 20636 USA
+ *
+ *       Voice: (301) 373-9600
+ *       EMail: cups-info@cups.org
+ *         WWW: http://www.cups.org
+ *
+ *   PostScript is a trademark of Adobe Systems, Inc.
+ *
+ *   This file is subject to the Apple OS-Developed Software exception.
+ *
+ * Contents:
+ *
+ */
+
+/*
+ * Include necessary headers...
+ */
+
+#include <cups/string.h>
+#include <cups/cups.h>
+#include <cups/file.h>
+#include <cups/i18n.h>
+#include <errno.h>
+#include <stdlib.h>
+
+
+/*
+ * Local functions...
+ */
+
+static int     check_file(const char *filename);
+static void    usage(void);
+
+
+/*
+ * 'main()' - Main entry for test program.
+ */
+
+int                                    /* O - Exit status */
+main(int  argc,                                /* I - Number of command-line args */
+     char *argv[])                     /* I - Command-line arguments */
+{
+  int          i;                      /* Looping var */
+  int          status;                 /* Status of tests */
+  int          num_files;              /* Number of files tested */
+
+
+ /*
+  * Collect command-line arguments...
+  */
+
+  for (i = 1, num_files = 0, status = 0; i < argc; i ++)
+    if (argv[i][0] == '-')
+    {
+      if (argv[i][1])
+      {
+       /*
+        * Currently the only supported option is "-h" (help)...
+       */
+
+        usage();
+      }
+      else
+      {
+        num_files ++;
+       status += check_file("(stdin)");
+      }
+    }
+    else
+    {
+      num_files ++;
+      status += check_file(argv[i]);
+    }
+
+  if (!num_files)
+    usage();
+
+  return (status);
+}
+
+
+/*
+ * 'check()' - Main entry for test program.
+ */
+
+static int                             /* O - 0 on success, 1 on failure */
+check_file(const char *filename)       /* I - File to read from */
+{
+  int          i;                      /* Looping var */
+  cups_file_t  *fp;                    /* File */
+  char         line[1024];             /* Line from file */
+  int          ch;                     /* Current character */
+  size_t       bytes;                  /* Length of line */
+  int          status;                 /* Status of test */
+  int          linenum;                /* Line number */
+  int          binary;                 /* File contains binary data? */
+  float                version;                /* DSC version */
+  int          lbrt[4];                /* Bounding box */
+  char         page_label[256];        /* Page label string */
+  int          page_number;            /* Page number */
+  int          level;                  /* Embedded document level */
+  int          saw_bounding_box,       /* %%BoundingBox seen? */
+               saw_pages,              /* %%Pages seen? */
+               saw_end_comments,       /* %%EndComments seen? */
+               saw_begin_prolog,       /* %%BeginProlog seen? */
+               saw_end_prolog,         /* %%EndProlog seen? */
+               saw_begin_setup,        /* %%BeginSetup seen? */
+               saw_end_setup,          /* %%EndSetup seen? */
+               saw_page,               /* %%Page seen? */
+               saw_trailer,            /* %%Trailer seen? */
+               saw_eof,                /* %%EOF seen? */
+               saw_long_line;          /* Saw long lines? */
+
+
+ /*
+  * Open the file...
+  */
+
+  if (!strcmp(filename, "(stdin)"))
+    fp = cupsFileStdin();
+  else
+    fp = cupsFileOpen(filename, "r");
+
+  if (!fp)
+  {
+    perror(filename);
+    return (1);
+  }
+
+ /*
+  * Scan the file...
+  */
+
+  binary           = 0;
+  level            = 0;
+  linenum          = 0;
+  saw_begin_prolog = 0;
+  saw_begin_setup  = 0;
+  saw_bounding_box = 0;
+  saw_end_comments = 0;
+  saw_end_prolog   = 0;
+  saw_end_setup    = 0;
+  saw_eof          = 0;
+  saw_long_line    = 0;
+  saw_page         = 0;
+  saw_pages        = 0;
+  saw_trailer      = 0;
+  status           = 0;
+  version          = 0.0f;
+
+  _cupsLangPrintf(stdout, "%s: ", filename);
+  fflush(stdout);
+
+  while ((bytes = cupsFileGetLine(fp, line, sizeof(line))) > 0)
+  {
+    linenum ++;
+
+    if (bytes > 255)
+    {
+      if (!saw_long_line)
+      {
+       if (!status)
+          _cupsLangPuts(stdout, _("FAIL\n"));
+
+       status ++;
+       _cupsLangPrintf(stdout,
+                       _("    Line %d is longer than 255 characters (%d)!\n"
+                         "        REF: Page 25, Line Length\n"),
+                       linenum, (int)bytes);
+      }
+
+      saw_long_line ++;
+    }
+
+    if (linenum == 1)
+    {
+      if (strncmp(line, "%!PS-Adobe-", 11))
+      {
+       if (!status)
+          _cupsLangPuts(stdout, _("FAIL\n"));
+
+       status ++;
+       _cupsLangPuts(stdout,
+                     _("    Missing %!PS-Adobe-3.0 on first line!\n"
+                       "        REF: Page 17, 3.1 Conforming Documents\n"));
+       cupsFileClose(fp);
+       return (1);
+      }
+      else
+        version = atof(line + 11);
+    }
+    else if (level > 0)
+    {
+      if (!strncmp(line, "%%BeginDocument:", 16))
+        level ++;
+      else if (!strncmp(line, "%%EndDocument", 13))
+        level --;
+    }
+    else if (saw_trailer)
+    {
+      if (!strncmp(line, "%%Pages:", 8))
+      {
+        if (atoi(line + 8) <= 0)
+       {
+         if (!status)
+            _cupsLangPuts(stdout, _("FAIL\n"));
+
+         status ++;
+         _cupsLangPrintf(stdout,
+                         _("    Bad %%%%Pages: on line %d!\n"
+                           "        REF: Page 43, %%%%Pages:\n"),
+                         linenum);
+       }
+       else
+          saw_pages = 1;
+      }
+      else if (!strncmp(line, "%%BoundingBox:", 14))
+      {
+       if (sscanf(line + 14, "%d%d%d%d", lbrt + 0, lbrt + 1, lbrt + 2,
+                  lbrt + 3) != 4)
+        {
+         if (!status)
+            _cupsLangPuts(stdout, _("FAIL\n"));
+
+         status ++;
+         _cupsLangPrintf(stdout, _("    Bad %%%%BoundingBox: on line %d!\n"
+                                   "        REF: Page 39, %%%%BoundingBox:\n"),
+                         linenum);
+       }
+       else
+          saw_bounding_box = 1;
+      }
+    }
+    else if (!saw_end_comments)
+    {
+      if (!strncmp(line, "%%EndComments", 13))
+        saw_end_comments = 1;
+      else if (line[0] != '%')
+        saw_end_comments = -1;
+      else if (!strncmp(line, "%%Pages:", 8))
+      {
+        if (strstr(line + 8, "(atend)"))
+         saw_pages = -1;
+       else if (atoi(line + 8) <= 0)
+       {
+         if (!status)
+            _cupsLangPuts(stdout, _("FAIL\n"));
+
+         status ++;
+         _cupsLangPrintf(stdout, _("    Bad %%%%Pages: on line %d!\n"
+                                   "        REF: Page 43, %%%%Pages:\n"),
+                         linenum);
+       }
+       else
+          saw_pages = 1;
+      }
+      else if (!strncmp(line, "%%BoundingBox:", 14))
+      {
+        if (strstr(line, "(atend)"))
+         saw_bounding_box = -1;
+       else if (sscanf(line + 14, "%d%d%d%d", lbrt + 0, lbrt + 1, lbrt + 2,
+                       lbrt + 3) != 4)
+        {
+         if (!status)
+            _cupsLangPuts(stdout, _("FAIL\n"));
+
+         status ++;
+         _cupsLangPrintf(stdout, _("    Bad %%%%BoundingBox: on line %d!\n"
+                                   "        REF: Page 39, %%%%BoundingBox:\n"),
+                         linenum);
+       }
+       else
+          saw_bounding_box = 1;
+      }
+    }
+    else if (saw_begin_prolog && !saw_end_prolog)
+    {
+      if (!strncmp(line, "%%EndProlog", 11))
+        saw_end_prolog = 1;
+    }
+    else if (saw_begin_setup && !saw_end_setup)
+    {
+      if (!strncmp(line, "%%EndSetup", 10))
+        saw_end_setup = 1;
+    }
+    else if (saw_end_comments)
+    {
+      if (!strncmp(line, "%%Page:", 7))
+      {
+        if (sscanf(line + 7, "%255s%d", page_label, &page_number) != 2)
+       {
+         if (!status)
+            _cupsLangPuts(stdout, _("FAIL\n"));
+
+         status ++;
+         _cupsLangPrintf(stdout, _("    Bad %%%%Page: on line %d!\n"
+                                   "        REF: Page 53, %%%%Page:\n"),
+                         linenum);
+       }
+       else
+         saw_page = 1;
+      }
+      else if (!strncmp(line, "%%BeginProlog", 13))
+        saw_begin_prolog = 1;
+      else if (!strncmp(line, "%%BeginSetup", 12))
+        saw_begin_setup = 1;
+      else if (!strncmp(line, "%%BeginDocument:", 16))
+        level ++;
+      else if (!strncmp(line, "%%EndDocument", 13))
+        level --;
+      else if (!strncmp(line, "%%Trailer", 9))
+        saw_trailer = 1;
+    }
+
+    for (i = 0; !binary && i < bytes; i ++)
+    {
+      ch = line[i];
+
+      if ((ch < ' ' || (ch & 0x80)) && ch != '\n' && ch != '\r' && ch != '\t')
+        binary = 1;
+    }
+  }
+
+  if (saw_bounding_box <= 0)
+  {
+    if (!status)
+      _cupsLangPuts(stdout, _("FAIL\n"));
+
+    status ++;
+    _cupsLangPuts(stdout, _("    Missing or bad %%BoundingBox: comment!\n"
+                           "        REF: Page 39, %%BoundingBox:\n"));
+  }
+
+  if (saw_pages <= 0)
+  {
+    if (!status)
+      _cupsLangPuts(stdout, _("FAIL\n"));
+
+    status ++;
+    _cupsLangPuts(stdout, _("    Missing or bad %%Pages: comment!\n"
+                           "        REF: Page 43, %%Pages:\n"));
+  }
+
+  if (!saw_end_comments)
+  {
+    if (!status)
+      _cupsLangPuts(stdout, _("FAIL\n"));
+
+    status ++;
+    _cupsLangPuts(stdout, _("    Missing %%EndComments comment!\n"
+                           "        REF: Page 41, %%EndComments\n"));
+  }
+
+  if (!saw_page)
+  {
+    if (!status)
+      _cupsLangPuts(stdout, _("FAIL\n"));
+
+    status ++;
+    _cupsLangPuts(stdout, _("    Missing or bad %%Page: comments!\n"
+                           "        REF: Page 53, %%Page:\n"));
+  }
+
+  if (level < 0)
+  {
+    if (!status)
+      _cupsLangPuts(stdout, _("FAIL\n"));
+
+    status ++;
+    _cupsLangPuts(stdout, _("    Too many %%EndDocument comments!\n"));
+  }
+  else if (level > 0)
+  {
+    if (!status)
+      _cupsLangPuts(stdout, _("FAIL\n"));
+
+    status ++;
+    _cupsLangPuts(stdout, _("    Too many %%BeginDocument comments!\n"));
+  }
+
+  if (saw_long_line > 1)
+    _cupsLangPrintf(stderr,
+                    _("    Saw %d lines that exceeded 255 characters!\n"),
+                    saw_long_line);
+
+  if (!status)
+    _cupsLangPuts(stdout, _("PASS\n"));
+
+  if (binary)
+    _cupsLangPuts(stdout, _("    Warning: file contains binary data!\n"));
+
+  if (version < 3.0f)
+    _cupsLangPrintf(stdout,
+                    _("    Warning: obsolete DSC version %.1f in file!\n"),
+                   version);
+
+  if (saw_end_comments < 0)
+    _cupsLangPuts(stdout, _("    Warning: no %%EndComments comment in file!\n"));
+
+  cupsFileClose(fp);
+
+  return (status);
+}
+
+
+/*
+ * 'usage()' - Show program usage.
+ */
+
+static void
+usage(void)
+{
+  _cupsLangPuts(stdout,
+                _("Usage: cupstestdsc [options] filename.ps [... filename.ps]\n"
+                  "       cupstestdsc [options] -\n"
+                 "\n"
+                 "Options:\n"
+                 "\n"
+                 "    -h       Show program usage\n"
+                 "\n"
+                 "    Note: this program only validates the DSC comments, "
+                 "not the PostScript itself.\n"));
+  
+  exit(1);
+}
+
+
+/*
+ * End of "$Id: cupstestdsc.c 5320 2006-03-21 19:03:25Z mike $".
+ */
index fd58f2774bebfdb0b7031d030be73e0b47b6d71f..bce318bc1d7fbf41ee5146012ec3642af4909395 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: lpstat.c 5199 2006-02-27 22:01:02Z mike $"
+ * "$Id: lpstat.c 5331 2006-03-23 21:21:19Z mike $"
  *
  *   "lpstat" command for the Common UNIX Printing System (CUPS).
  *
@@ -84,9 +84,11 @@ main(int  argc,                      /* I - Number of command-line arguments */
   char         op;             /* Last operation on command-line */
 
 
-#ifdef LC_TIME
-  setlocale(LC_TIME, "");
-#endif /* LC_TIME */
+ /*
+  * Set the locale so that times, etc. are displayed properly.
+  */
+
+  setlocale(LC_ALL, "");
 
   http        = NULL;
   num_dests   = 0;
@@ -2246,5 +2248,5 @@ show_scheduler(http_t *http)      /* I - HTTP connection to server */
 
 
 /*
- * End of "$Id: lpstat.c 5199 2006-02-27 22:01:02Z mike $".
+ * End of "$Id: lpstat.c 5331 2006-03-23 21:21:19Z mike $".
  */