]> git.ipfire.org Git - thirdparty/cups.git/commitdiff
Load cups into easysw/current.
authorjlovell <jlovell@a1ca3aef-8c08-0410-bb20-df032aa958be>
Fri, 20 Oct 2006 18:36:23 +0000 (18:36 +0000)
committerjlovell <jlovell@a1ca3aef-8c08-0410-bb20-df032aa958be>
Fri, 20 Oct 2006 18:36:23 +0000 (18:36 +0000)
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@224 a1ca3aef-8c08-0410-bb20-df032aa958be

162 files changed:
CHANGES.txt
CREDITS.txt
INSTALL.txt
README.txt
backend/scsi.c
backend/snmp.c
backend/usb-unix.c
conf/mime.types
config-scripts/cups-common.m4
config-scripts/cups-compiler.m4
config-scripts/cups-defaults.m4
config-scripts/cups-network.m4
config-scripts/cups-threads.m4
config.h.in
cups/cups.h
cups/dest.c
cups/dir.c
cups/file.c
cups/mark.c
cups/ppd.c
cups/tempfile.c
cups/testhttp.c
cups/transcode.c
desktop/cups.desktop
doc/et/images/button-accept-jobs.gif [new file with mode: 0644]
doc/et/images/button-add-class.gif [new file with mode: 0644]
doc/et/images/button-add-printer.gif [new file with mode: 0644]
doc/et/images/button-add-this-printer.gif [new file with mode: 0644]
doc/et/images/button-cancel-all-jobs.gif [new file with mode: 0644]
doc/et/images/button-cancel-job.gif [new file with mode: 0644]
doc/et/images/button-change-settings.gif [new file with mode: 0644]
doc/et/images/button-clean-print-heads.gif [new file with mode: 0644]
doc/et/images/button-clear.gif [new file with mode: 0644]
doc/et/images/button-continue.gif [new file with mode: 0644]
doc/et/images/button-delete-class.gif [new file with mode: 0644]
doc/et/images/button-delete-printer.gif [new file with mode: 0644]
doc/et/images/button-edit-configuration-file.gif [new file with mode: 0644]
doc/et/images/button-export-samba.gif [new file with mode: 0644]
doc/et/images/button-help.gif [new file with mode: 0644]
doc/et/images/button-hold-job.gif [new file with mode: 0644]
doc/et/images/button-manage-classes.gif [new file with mode: 0644]
doc/et/images/button-manage-jobs.gif [new file with mode: 0644]
doc/et/images/button-manage-printers.gif [new file with mode: 0644]
doc/et/images/button-manage-server.gif [new file with mode: 0644]
doc/et/images/button-modify-class.gif [new file with mode: 0644]
doc/et/images/button-modify-printer.gif [new file with mode: 0644]
doc/et/images/button-move-job.gif [new file with mode: 0644]
doc/et/images/button-move-jobs.gif [new file with mode: 0644]
doc/et/images/button-print-self-test-page.gif [new file with mode: 0644]
doc/et/images/button-print-test-page.gif [new file with mode: 0644]
doc/et/images/button-publish-printer.gif [new file with mode: 0644]
doc/et/images/button-reject-jobs.gif [new file with mode: 0644]
doc/et/images/button-release-job.gif [new file with mode: 0644]
doc/et/images/button-restart-job.gif [new file with mode: 0644]
doc/et/images/button-save-changes.gif [new file with mode: 0644]
doc/et/images/button-search.gif [new file with mode: 0644]
doc/et/images/button-set-allowed-users.gif [new file with mode: 0644]
doc/et/images/button-set-as-default.gif [new file with mode: 0644]
doc/et/images/button-set-printer-options.gif [new file with mode: 0644]
doc/et/images/button-show-active.gif [new file with mode: 0644]
doc/et/images/button-show-all.gif [new file with mode: 0644]
doc/et/images/button-show-completed.gif [new file with mode: 0644]
doc/et/images/button-show-next.gif [new file with mode: 0644]
doc/et/images/button-show-previous.gif [new file with mode: 0644]
doc/et/images/button-sort-ascending.gif [new file with mode: 0644]
doc/et/images/button-sort-descending.gif [new file with mode: 0644]
doc/et/images/button-start-class.gif [new file with mode: 0644]
doc/et/images/button-start-printer.gif [new file with mode: 0644]
doc/et/images/button-stop-class.gif [new file with mode: 0644]
doc/et/images/button-stop-printer.gif [new file with mode: 0644]
doc/et/images/button-unpublish-printer.gif [new file with mode: 0644]
doc/et/images/button-use-default-config.gif [new file with mode: 0644]
doc/et/images/button-view-access-log.gif [new file with mode: 0644]
doc/et/images/button-view-error-log.gif [new file with mode: 0644]
doc/et/images/button-view-page-log.gif [new file with mode: 0644]
doc/et/images/button-view-printable-version.gif [new file with mode: 0644]
doc/et/index.html.in [new file with mode: 0644]
doc/help/api-cups.html
doc/help/api-httpipp.html
doc/help/ref-cupsd-conf.html
doc/help/spec-ppd.html
filter/common.c
filter/common.h
filter/hpgl-prolog.c
filter/imagetops.c
filter/pstops.c
filter/texttops.c
locale/cups_de.po
locale/cups_et.po [new file with mode: 0644]
man/cupsaddsmb.man.in
packaging/cups.list.in
packaging/cups.spec.in
pdftops/PSOutputDev.cxx
scheduler/client.c
scheduler/cups-lpd.c
scheduler/dirsvc.c
scheduler/ipp.c
scheduler/job.c
scheduler/log.c
scheduler/subscriptions.c
templates/et/add-class.tmpl [new file with mode: 0644]
templates/et/add-printer.tmpl [new file with mode: 0644]
templates/et/admin.tmpl [new file with mode: 0644]
templates/et/choose-device.tmpl [new file with mode: 0644]
templates/et/choose-make.tmpl [new file with mode: 0644]
templates/et/choose-model.tmpl [new file with mode: 0644]
templates/et/choose-serial.tmpl [new file with mode: 0644]
templates/et/choose-uri.tmpl [new file with mode: 0644]
templates/et/class-added.tmpl [new file with mode: 0644]
templates/et/class-confirm.tmpl [new file with mode: 0644]
templates/et/class-deleted.tmpl [new file with mode: 0644]
templates/et/class-jobs-header.tmpl [new file with mode: 0644]
templates/et/class-modified.tmpl [new file with mode: 0644]
templates/et/classes-header.tmpl [new file with mode: 0644]
templates/et/classes.tmpl [new file with mode: 0644]
templates/et/edit-config.tmpl.in [new file with mode: 0644]
templates/et/error-op.tmpl [new file with mode: 0644]
templates/et/error.tmpl [new file with mode: 0644]
templates/et/header.tmpl.in [new file with mode: 0644]
templates/et/help-header.tmpl [new file with mode: 0644]
templates/et/help-printable.tmpl [new file with mode: 0644]
templates/et/job-cancel.tmpl [new file with mode: 0644]
templates/et/job-hold.tmpl [new file with mode: 0644]
templates/et/job-moved.tmpl [new file with mode: 0644]
templates/et/job-release.tmpl [new file with mode: 0644]
templates/et/job-restart.tmpl [new file with mode: 0644]
templates/et/jobs-header.tmpl [new file with mode: 0644]
templates/et/jobs.tmpl [new file with mode: 0644]
templates/et/maintenance.tmpl [new file with mode: 0644]
templates/et/modify-class.tmpl [new file with mode: 0644]
templates/et/modify-printer.tmpl [new file with mode: 0644]
templates/et/norestart.tmpl [new file with mode: 0644]
templates/et/option-boolean.tmpl [new file with mode: 0644]
templates/et/option-conflict.tmpl [new file with mode: 0644]
templates/et/option-header.tmpl [new file with mode: 0644]
templates/et/option-pickmany.tmpl [new file with mode: 0644]
templates/et/option-pickone.tmpl [new file with mode: 0644]
templates/et/option-trailer.tmpl [new file with mode: 0644]
templates/et/pager.tmpl [new file with mode: 0644]
templates/et/printer-accept.tmpl [new file with mode: 0644]
templates/et/printer-added.tmpl [new file with mode: 0644]
templates/et/printer-configured.tmpl [new file with mode: 0644]
templates/et/printer-confirm.tmpl [new file with mode: 0644]
templates/et/printer-default.tmpl [new file with mode: 0644]
templates/et/printer-deleted.tmpl [new file with mode: 0644]
templates/et/printer-jobs-header.tmpl [new file with mode: 0644]
templates/et/printer-modified.tmpl [new file with mode: 0644]
templates/et/printer-purge.tmpl [new file with mode: 0644]
templates/et/printer-reject.tmpl [new file with mode: 0644]
templates/et/printer-start.tmpl [new file with mode: 0644]
templates/et/printer-stop.tmpl [new file with mode: 0644]
templates/et/printers-header.tmpl [new file with mode: 0644]
templates/et/printers.tmpl [new file with mode: 0644]
templates/et/restart.tmpl [new file with mode: 0644]
templates/et/samba-export.tmpl [new file with mode: 0644]
templates/et/samba-exported.tmpl [new file with mode: 0644]
templates/et/search.tmpl [new file with mode: 0644]
templates/et/set-printer-options-header.tmpl [new file with mode: 0644]
templates/et/set-printer-options-trailer.tmpl [new file with mode: 0644]
templates/et/test-page.tmpl [new file with mode: 0644]
templates/et/trailer.tmpl [new file with mode: 0644]
templates/et/users.tmpl [new file with mode: 0644]

index de49e923b12862fb98514dbe44fd867182b5af52..9762462f4f0adb904feec3efc38274a7f149b825 100644 (file)
@@ -1,6 +1,68 @@
-CHANGES.txt - 2006-09-21
+CHANGES.txt - 2006-10-20
 ------------------------
 
 ------------------------
 
+CHANGES IN CUPS V1.2.5
+
+       - Documentation updates (STR #2038)
+       - The SNMP backend no longer uses IPP for Epson printers
+         (STR #2028)
+       - Updated the configure script for Tru64 UNIX 5.1 (STR
+         #2033)
+       - Tru64 5.1B's getaddrinfo() and getnameinfo() functions
+         leak file descriptors (STR #2034)
+       - cupsAddDest() didn't add the parent destination's
+         options and attributes.
+       - ppdConflicts() did not handle custom option
+         constraints.
+       - Raw printing of gzip'd files did not work (STR #2009)
+       - The scheduler no longer preserves default option
+         choices when the new PPD no longer provides the old
+         default choice (STR #1929)
+       - The Linux SCSI backend is now only built if the SCSI
+         development headers are installed.
+       - USB printing to Minolta printers did not work (STR
+         #2019)
+       - Windows clients could not monitor the queue status (STR
+         #2006)
+       - The scheduler didn't log the operation name in the
+         access_log file for Create-Job and Print-Job requests.
+       - The PostScript filter now separates collated copies
+         with any required JCL commands so that JCL-based
+         finishing options act on the individual copies and not
+         all of the copies as a single document.
+       - The PostScript filter now disables duplex printing when
+         printing a 1-page document.
+       - cups-lpd didn't pass the correct
+         job-originating-host-name value (STR #2023)
+       - Fixed some speling errors in the German message catalog
+         (STR #2012)
+       - cupstestppd did not catch PPD files with bad
+         UIConstraints values (STR #2016)
+       - The USB backend did not work with the current udev-
+         created printers if the first printer was disconnected
+         (STR #2017)
+       - Mirrored and rotated printing did not work with some
+         documents (STR #2004)
+       - 2-sided printing with banners did not work properly on
+         some printers (STR #2018)
+       - Updated the raw type rule to handle PJL within the
+         first 4k of a print job (STR #1969)
+       - Added an Estonian translation (STR #1957)
+       - Clarified the documentation for the cupsd.conf @LOCAL
+         and @IF(name) allow/deny functionality (STR #1992)
+       - The PostScript filters did not escape the Title and For
+         comments in the print job header (STR #1988)
+       - The scheduler would use 100% CPU if browsing was
+         disabled and the cupsd.conf file contained BrowsePoll
+         lines (STR #1994)
+       - The cupsDirRead() function did not work properly on
+         non-POSIX-compliant systems (STR #2001)
+       - The cupsFile functions didn't handle read/write errors
+         properly (STR #1996)
+       - The DBUS support now works with older versions of the
+         DBUS library.
+
+
 CHANGES IN CUPS V1.2.4
 
        - The --with-printcap configure option did not work (STR
 CHANGES IN CUPS V1.2.4
 
        - The --with-printcap configure option did not work (STR
index 27722e2327ee712a456ff9b12a8f71851d8d23be..09db1ccb759906576f8308606245262624677d68 100644 (file)
@@ -1,4 +1,4 @@
-CREDITS.txt - 2006-04-17
+CREDITS.txt - 2006-10-02
 ------------------------
 
 Few projects are completed by one person, and CUPS is no exception.  We'd
 ------------------------
 
 Few projects are completed by one person, and CUPS is no exception.  We'd
@@ -20,6 +20,7 @@ like to thank the following individuals for their contributions:
                                      testing.
     Kiko                           - Bug fixes.
     Sergey V. Kovalyov             - ESP Print Pro and CUPS beta tester.
                                      testing.
     Kiko                           - Bug fixes.
     Sergey V. Kovalyov             - ESP Print Pro and CUPS beta tester.
+    Marek Laane                    - Estonian translation.
     Mark Lawrence                  - Microsoft interoperability testing.
     Jeff Licquia                   - Bug fixes, beta testing, evangelism.
     Jason McMullan                 - Original CUPS RPM distributions.
     Mark Lawrence                  - Microsoft interoperability testing.
     Jeff Licquia                   - Bug fixes, beta testing, evangelism.
     Jason McMullan                 - Original CUPS RPM distributions.
index df6022b46d195ad7c83cf0c127c15bfa4ec08f16..e7c8e40c8351d59f9641c4ed43dd343f69e6fac2 100644 (file)
@@ -1,4 +1,4 @@
-INSTALL - CUPS v1.2.0 - 2006-05-08
+INSTALL - CUPS v1.2.5 - 2006-10-20
 ----------------------------------
 
 This file describes how to compile and install CUPS from source
 ----------------------------------
 
 This file describes how to compile and install CUPS from source
index 34983cd94da683d2875f10b5d4f030d377d59529..b4d96744d81e0ce7dce9642954a9b35f2a25a249 100644 (file)
@@ -1,4 +1,4 @@
-README - CUPS v1.2.3 - 2006-08-28
+README - CUPS v1.2.5 - 2006-10-20
 ---------------------------------
 
 Looking for compile instructions?  Read the file "INSTALL.txt"
 ---------------------------------
 
 Looking for compile instructions?  Read the file "INSTALL.txt"
index 06a088899f0520f3a2983f7e7ccd1f23fe042284..fd06127d74833440e71a26af78c4ed305e4853de 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: scsi.c 5023 2006-01-29 14:39:44Z mike $"
+ * "$Id: scsi.c 6032 2006-10-12 19:19:47Z mike $"
  *
  *   SCSI printer backend for the Common UNIX Printing System (CUPS).
  *
  *
  *   SCSI printer backend for the Common UNIX Printing System (CUPS).
  *
@@ -80,7 +80,7 @@ void  list_devices(void);
 int    print_device(const char *resource, int fd, int copies);
 
 
 int    print_device(const char *resource, int fd, int copies);
 
 
-#ifdef __linux__
+#if defined(__linux__) && defined(HAVE_SCSI_SG_H)
 #  include "scsi-linux.c"
 #elif defined(__sgi)
 #  include "scsi-irix.c"
 #  include "scsi-linux.c"
 #elif defined(__sgi)
 #  include "scsi-irix.c"
@@ -90,7 +90,7 @@ int   print_device(const char *resource, int fd, int copies);
  */
 void   list_devices(void) {}
 int    print_device(const char *resource, int fd, int copies) { return (CUPS_BACKEND_FAILED); }
  */
 void   list_devices(void) {}
 int    print_device(const char *resource, int fd, int copies) { return (CUPS_BACKEND_FAILED); }
-#endif /* __linux */
+#endif /* __linux && HAVE_SCSI_SG_H */
 
 
 /*
 
 
 /*
@@ -220,5 +220,5 @@ main(int  argc,             /* I - Number of command-line arguments (6 or 7) */
 
 
 /*
 
 
 /*
- * End of "$Id: scsi.c 5023 2006-01-29 14:39:44Z mike $".
+ * End of "$Id: scsi.c 6032 2006-10-12 19:19:47Z mike $".
  */
  */
index c1af7cefcc4a5cdef700dc4d3c5a0e6580ca60f5..f2a2b893f378ff6cb84178abfe124980a1eb3a2b 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: snmp.c 5976 2006-09-20 22:46:15Z mike $"
+ * "$Id: snmp.c 6049 2006-10-20 15:07:21Z mike $"
  *
  *   SNMP discovery backend for the Common UNIX Printing System (CUPS).
  *
  *
  *   SNMP discovery backend for the Common UNIX Printing System (CUPS).
  *
@@ -1728,13 +1728,14 @@ probe_device(snmp_cache_t *device)      /* I - Device */
   debug_printf("DEBUG: %.3f Probing %s...\n", run_time(), device->addrname);
 
   if (device->make_and_model &&
   debug_printf("DEBUG: %.3f Probing %s...\n", run_time(), device->addrname);
 
   if (device->make_and_model &&
-      (!strncasecmp(device->make_and_model, "Kyocera", 7) ||
+      (!strncasecmp(device->make_and_model, "Epson", 5) ||
+       !strncasecmp(device->make_and_model, "Kyocera", 7) ||
        !strncasecmp(device->make_and_model, "Lexmark", 7) ||
        !strncasecmp(device->make_and_model, "Tektronix", 9) ||
        !strncasecmp(device->make_and_model, "Xerox", 5)))
   {
    /*
        !strncasecmp(device->make_and_model, "Lexmark", 7) ||
        !strncasecmp(device->make_and_model, "Tektronix", 9) ||
        !strncasecmp(device->make_and_model, "Xerox", 5)))
   {
    /*
-    * Kyocera, Lexmark, Tektronix, and Xerox printers often lock up on
+    * Epson, Kyocera, Lexmark, Tektronix, and Xerox printers often lock up on
     * IPP probes, so exclude them from the IPP connection test...
     */
 
     * IPP probes, so exclude them from the IPP connection test...
     */
 
@@ -2454,5 +2455,5 @@ update_cache(snmp_cache_t *device,        /* I - Device */
 
 
 /*
 
 
 /*
- * End of "$Id: snmp.c 5976 2006-09-20 22:46:15Z mike $".
+ * End of "$Id: snmp.c 6049 2006-10-20 15:07:21Z mike $".
  */
  */
index 94544df5eff9134751180f126932e67f1d1ca883..47b2cf1f08e737ec67577a97f583fb5211f93608 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: usb-unix.c 5726 2006-07-12 20:00:11Z mike $"
+ * "$Id: usb-unix.c 6032 2006-10-12 19:19:47Z mike $"
  *
  *   USB port backend for the Common UNIX Printing System (CUPS).
  *
  *
  *   USB port backend for the Common UNIX Printing System (CUPS).
  *
@@ -79,12 +79,13 @@ print_device(const char *uri,               /* I - Device URI */
   do
   {
    /*
   do
   {
    /*
-    * Disable backchannel data when printing to Canon USB printers - apparently
-    * Canon printers will return the IEEE-1284 device ID over and over and over
-    * when they get a read request...
+    * Disable backchannel data when printing to Canon or Minolta USB
+    * printers - apparently these printers will return the IEEE-1284
+    * device ID over and over and over when they get a read request...
     */
 
     */
 
-    use_bc = strcasecmp(hostname, "Canon") != 0;
+    use_bc = strcasecmp(hostname, "Canon") != 0 ||
+             strstr(hostname, "Minolta") != NULL;
 
     if ((device_fd = open_device(uri, &use_bc)) == -1)
     {
 
     if ((device_fd = open_device(uri, &use_bc)) == -1)
     {
@@ -185,44 +186,52 @@ void
 list_devices(void)
 {
 #ifdef __linux
 list_devices(void)
 {
 #ifdef __linux
-  int  i;                      /* Looping var */
-  int  fd;                     /* File descriptor */
-  char format[255],            /* Format for device filename */
-       device[255],            /* Device filename */
-       device_id[1024],        /* Device ID string */
-       device_uri[1024],       /* Device URI string */
-       make_model[1024];       /* Make and model */
-
-
- /*
-  * First figure out which USB printer filename to use...
-  */
-
-  if (!access("/dev/usblp0", 0))
-    strcpy(format, "/dev/usblp%d");
-  else if (!access("/dev/usb/usblp0", 0))
-    strcpy(format, "/dev/usb/usblp%d");
-  else
-    strcpy(format, "/dev/usb/lp%d");
+  int  i;                              /* Looping var */
+  int  fd;                             /* File descriptor */
+  char device[255],                    /* Device filename */
+       device_id[1024],                /* Device ID string */
+       device_uri[1024],               /* Device URI string */
+       make_model[1024];               /* Make and model */
 
  /*
 
  /*
-  * Then open each USB device...
+  * Try to open each USB device...
   */
 
   for (i = 0; i < 16; i ++)
   {
   */
 
   for (i = 0; i < 16; i ++)
   {
-    sprintf(device, format, i);
+   /*
+    * Linux has a long history of changing the standard filenames used
+    * for USB printer devices.  We get the honor of trying them all...
+    */
 
 
-    if ((fd = open(device, O_RDWR | O_EXCL)) >= 0)
+    sprintf(device, "/dev/usblp%d", i);
+
+    if ((fd = open(device, O_RDWR | O_EXCL)) < 0)
     {
     {
-      if (!backendGetDeviceID(fd, device_id, sizeof(device_id),
-                              make_model, sizeof(make_model),
-                             "usb", device_uri, sizeof(device_uri)))
-       printf("direct %s \"%s\" \"%s USB #%d\" \"%s\"\n", device_uri,
-              make_model, make_model, i + 1, device_id);
+      if (errno != ENOENT)
+       continue;
 
 
-      close(fd);
+      sprintf(device, "/dev/usb/lp%d", i);
+
+      if ((fd = open(device, O_RDWR | O_EXCL)) < 0)
+      {
+       if (errno != ENOENT)
+         continue;
+
+       sprintf(device, "/dev/usb/usblp%d", i);
+
+       if ((fd = open(device, O_RDWR | O_EXCL)) < 0)
+         continue;
+      }
     }
     }
+
+    if (!backendGetDeviceID(fd, device_id, sizeof(device_id),
+                            make_model, sizeof(make_model),
+                           "usb", device_uri, sizeof(device_uri)))
+      printf("direct %s \"%s\" \"%s USB #%d\" \"%s\"\n", device_uri,
+            make_model, make_model, i + 1, device_id);
+
+    close(fd);
   }
 #elif defined(__sgi)
 #elif defined(__sun) && defined(ECPPIOC_GETDEVID)
   }
 #elif defined(__sgi)
 #elif defined(__sun) && defined(ECPPIOC_GETDEVID)
@@ -309,35 +318,41 @@ open_device(const char *uri,              /* I - Device URI */
 
     int                i;                      /* Looping var */
     int                busy;                   /* Are any ports busy? */
 
     int                i;                      /* Looping var */
     int                busy;                   /* Are any ports busy? */
-    char       format[255],            /* Format for device filename */
-               device[255],            /* Device filename */
+    char       device[255],            /* Device filename */
                device_id[1024],        /* Device ID string */
                make_model[1024],       /* Make and model */
                device_uri[1024];       /* Device URI string */
 
 
    /*
                device_id[1024],        /* Device ID string */
                make_model[1024],       /* Make and model */
                device_uri[1024];       /* Device URI string */
 
 
    /*
-    * First figure out which USB printer filename to use...
-    */
-
-    if (!access("/dev/usblp0", 0))
-      strcpy(format, "/dev/usblp%d");
-    else if (!access("/dev/usb/usblp0", 0))
-      strcpy(format, "/dev/usb/usblp%d");
-    else
-      strcpy(format, "/dev/usb/lp%d");
-
-   /*
-    * Then find the correct USB device...
+    * Find the correct USB device...
     */
 
     do
     {
       for (busy = 0, i = 0; i < 16; i ++)
       {
     */
 
     do
     {
       for (busy = 0, i = 0; i < 16; i ++)
       {
-       sprintf(device, format, i);
+       /*
+       * Linux has a long history of changing the standard filenames used
+       * for USB printer devices.  We get the honor of trying them all...
+       */
+
+       sprintf(device, "/dev/usblp%d", i);
+
+       if ((fd = open(device, O_RDWR | O_EXCL)) < 0 && errno == ENOENT)
+       {
+         sprintf(device, "/dev/usb/lp%d", i);
+
+         if ((fd = open(device, O_RDWR | O_EXCL)) < 0 && errno == ENOENT)
+         {
+           sprintf(device, "/dev/usb/usblp%d", i);
+
+           if ((fd = open(device, O_RDWR | O_EXCL)) < 0 && errno == ENOENT)
+             continue;
+         }
+       }
 
 
-       if ((fd = open(device, O_RDWR | O_EXCL)) >= 0)
+       if (fd >= 0)
        {
          backendGetDeviceID(fd, device_id, sizeof(device_id),
                              make_model, sizeof(make_model),
        {
          backendGetDeviceID(fd, device_id, sizeof(device_id),
                              make_model, sizeof(make_model),
@@ -510,5 +525,5 @@ open_device(const char *uri,                /* I - Device URI */
 
 
 /*
 
 
 /*
- * End of "$Id: usb-unix.c 5726 2006-07-12 20:00:11Z mike $".
+ * End of "$Id: usb-unix.c 6032 2006-10-12 19:19:47Z mike $".
  */
  */
index 6f3d0467a7c16a63482391e1a55c6eb53fcd7a36..e5a522df516515f53b518212846113a4dd6a411d 100644 (file)
@@ -1,5 +1,5 @@
 #
 #
-# "$Id: mime.types 5402 2006-04-14 19:21:03Z mike $"
+# "$Id: mime.types 6003 2006-10-02 16:26:04Z mike $"
 #
 #   MIME types file for the Common UNIX Printing System (CUPS).
 #
 #
 #   MIME types file for the Common UNIX Printing System (CUPS).
 #
@@ -154,8 +154,8 @@ application/vnd.cups-raster string(0,"RaSt") string(0,"tSaR")
 application/vnd.cups-raw       (string(0,<1B>E) + !string(2,<1B>%0B)) \
                                string(0,<1B>@) \
                                (contains(0,128,<1B>%-12345X) + \
 application/vnd.cups-raw       (string(0,<1B>E) + !string(2,<1B>%0B)) \
                                string(0,<1B>@) \
                                (contains(0,128,<1B>%-12345X) + \
-                                (contains(0,1024,"LANGUAGE=PCL") \
-                                 contains(0,1024,"LANGUAGE = PCL")))
+                                (contains(0,4096,"LANGUAGE=PCL") \
+                                 contains(0,4096,"LANGUAGE = PCL")))
 
 ########################################################################
 #
 
 ########################################################################
 #
@@ -167,5 +167,5 @@ application/vnd.cups-raw    (string(0,<1B>E) + !string(2,<1B>%0B)) \
 application/octet-stream
 
 #
 application/octet-stream
 
 #
-# End of "$Id: mime.types 5402 2006-04-14 19:21:03Z mike $".
+# End of "$Id: mime.types 6003 2006-10-02 16:26:04Z mike $".
 #
 #
index 5674a8d3aa03f30b18c8a2146bcf08d83def2912..8e1e29a284ade0910c86ad2ff97add1b4877e0a5 100644 (file)
@@ -1,5 +1,5 @@
 dnl
 dnl
-dnl "$Id: cups-common.m4 5930 2006-09-07 19:49:34Z mike $"
+dnl "$Id: cups-common.m4 6032 2006-10-12 19:19:47Z mike $"
 dnl
 dnl   Common configuration stuff for the Common UNIX Printing System (CUPS).
 dnl
 dnl
 dnl   Common configuration stuff for the Common UNIX Printing System (CUPS).
 dnl
@@ -29,7 +29,7 @@ dnl Set the name of the config header file...
 AC_CONFIG_HEADER(config.h)
 
 dnl Versio number information...
 AC_CONFIG_HEADER(config.h)
 
 dnl Versio number information...
-CUPS_VERSION="1.2.4"
+CUPS_VERSION="1.2.5"
 CUPS_REVISION=""
 if test -z "$CUPS_REVISION" -a -d .svn; then
        CUPS_REVISION="-r`svnversion . | awk -F: '{print $NF}' | sed -e '1,$s/[[a-zA-Z]]*//g'`"
 CUPS_REVISION=""
 if test -z "$CUPS_REVISION" -a -d .svn; then
        CUPS_REVISION="-r`svnversion . | awk -F: '{print $NF}' | sed -e '1,$s/[[a-zA-Z]]*//g'`"
@@ -132,6 +132,7 @@ AC_CHECK_HEADER(strings.h,AC_DEFINE(HAVE_STRINGS_H))
 AC_CHECK_HEADER(bstring.h,AC_DEFINE(HAVE_BSTRING_H))
 AC_CHECK_HEADER(usersec.h,AC_DEFINE(HAVE_USERSEC_H))
 AC_CHECK_HEADER(sys/ioctl.h,AC_DEFINE(HAVE_SYS_IOCTL_H))
 AC_CHECK_HEADER(bstring.h,AC_DEFINE(HAVE_BSTRING_H))
 AC_CHECK_HEADER(usersec.h,AC_DEFINE(HAVE_USERSEC_H))
 AC_CHECK_HEADER(sys/ioctl.h,AC_DEFINE(HAVE_SYS_IOCTL_H))
+AC_CHECK_HEADER(scsi/sg.h,AC_DEFINE(HAVE_SCSI_SG_H))
 
 dnl Checks for string functions.
 AC_CHECK_FUNCS(strdup strcasecmp strncasecmp strlcat strlcpy)
 
 dnl Checks for string functions.
 AC_CHECK_FUNCS(strdup strcasecmp strncasecmp strlcat strlcpy)
@@ -231,12 +232,13 @@ case $uname in
                                AC_MSG_CHECKING(for DBUS)
                                if $PKGCONFIG --exists dbus-1; then
                                        AC_MSG_RESULT(yes)
                                AC_MSG_CHECKING(for DBUS)
                                if $PKGCONFIG --exists dbus-1; then
                                        AC_MSG_RESULT(yes)
+                                       AC_DEFINE(HAVE_DBUS)
+                                       CFLAGS="$CFLAGS `$PKGCONFIG --cflags dbus-1` -DDBUS_API_SUBJECT_TO_CHANGE"
+                                       CUPSDLIBS="`$PKGCONFIG --libs dbus-1`"
+                                       DBUSDIR="/etc/dbus-1/system.d"
                                        AC_CHECK_LIB(dbus-1,
                                            dbus_message_iter_init_append,
                                        AC_CHECK_LIB(dbus-1,
                                            dbus_message_iter_init_append,
-                                           AC_DEFINE(HAVE_DBUS)
-                                           CFLAGS="$CFLAGS `$PKGCONFIG --cflags dbus-1` -DDBUS_API_SUBJECT_TO_CHANGE"
-                                           CUPSDLIBS="`$PKGCONFIG --libs dbus-1`"
-                                           DBUSDIR="/etc/dbus-1/system.d")
+                                           AC_DEFINE(HAVE_DBUS_MESSAGE_ITER_INIT_APPEND))
                                else
                                        AC_MSG_RESULT(no)
                                fi
                                else
                                        AC_MSG_RESULT(no)
                                fi
@@ -265,5 +267,5 @@ AC_SUBST(DEFAULT_IPP_PORT)
 AC_DEFINE_UNQUOTED(CUPS_DEFAULT_IPP_PORT,$DEFAULT_IPP_PORT)
 
 dnl
 AC_DEFINE_UNQUOTED(CUPS_DEFAULT_IPP_PORT,$DEFAULT_IPP_PORT)
 
 dnl
-dnl End of "$Id: cups-common.m4 5930 2006-09-07 19:49:34Z mike $".
+dnl End of "$Id: cups-common.m4 6032 2006-10-12 19:19:47Z mike $".
 dnl
 dnl
index 7dc7b7052424624ec525df076c86225c6c31001e..f265d2ca005fee8113ec257de79c9b5a3b3e9349 100644 (file)
@@ -1,5 +1,5 @@
 dnl
 dnl
-dnl "$Id: cups-compiler.m4 5705 2006-06-30 01:07:29Z mike $"
+dnl "$Id: cups-compiler.m4 6049 2006-10-20 15:07:21Z mike $"
 dnl
 dnl   Compiler stuff for the Common UNIX Printing System (CUPS).
 dnl
 dnl
 dnl   Compiler stuff for the Common UNIX Printing System (CUPS).
 dnl
@@ -93,6 +93,7 @@ PIEFLAGS=""
 AC_SUBST(PIEFLAGS)
 
 if test -n "$GCC"; then
 AC_SUBST(PIEFLAGS)
 
 if test -n "$GCC"; then
+       # Add GCC-specific compiler options...
        if test -z "$OPTIM"; then
                if test "x$with_optim" = x; then
                        # Default to optimize-for-size and debug
        if test -z "$OPTIM"; then
                if test "x$with_optim" = x; then
                        # Default to optimize-for-size and debug
@@ -273,6 +274,7 @@ if test -n "$GCC"; then
                        ;;
        esac
 else
                        ;;
        esac
 else
+       # Add vendor-specific compiler options...
        case $uname in
                AIX*)
                        if test -z "$OPTIM"; then
        case $uname in
                AIX*)
                        if test -z "$OPTIM"; then
@@ -358,6 +360,16 @@ else
                                fi
                        fi
                        ;;
                                fi
                        fi
                        ;;
+               OSF*)
+                       # Tru64 UNIX aka Digital UNIX aka OSF/1
+                       if test -z "$OPTIM"; then
+                               if test "x$with_optim" = x; then
+                                       OPTIM="-O"
+                               else
+                                       OPTIM="$with_optim"
+                               fi
+                       fi
+                       ;;
                SunOS*)
                        # Solaris
                        if test -z "$OPTIM"; then
                SunOS*)
                        # Solaris
                        if test -z "$OPTIM"; then
@@ -449,16 +461,25 @@ else
        esac
 fi
 
        esac
 fi
 
-if test $uname = HP-UX; then
-       # HP-UX 10.20 (at least) needs this definition to get the
-       # h_errno global...
-       OPTIM="$OPTIM -D_XOPEN_SOURCE_EXTENDED"
-
-       # HP-UX 11.00 (at least) needs this definition to get the
-       # u_short type used by the IP headers...
-       OPTIM="$OPTIM -D_INCLUDE_HPUX_SOURCE"
-fi
+# Add general compiler options per platform...
+case $uname in
+       HP-UX*)
+               # HP-UX 10.20 (at least) needs this definition to get the
+               # h_errno global...
+               OPTIM="$OPTIM -D_XOPEN_SOURCE_EXTENDED"
+
+               # HP-UX 11.00 (at least) needs this definition to get the
+               # u_short type used by the IP headers...
+               OPTIM="$OPTIM -D_INCLUDE_HPUX_SOURCE"
+               ;;
+
+       OSF*)
+               # Tru64 UNIX aka Digital UNIX aka OSF/1 need to be told
+               # to be POSIX-compliant...
+               OPTIM="$OPTIM -D_XOPEN_SOURCE=500 -D_XOPEN_SOURCE_EXTENDED -D_OSF_SOURCE"
+               ;;
+esac
 
 dnl
 
 dnl
-dnl End of "$Id: cups-compiler.m4 5705 2006-06-30 01:07:29Z mike $".
+dnl End of "$Id: cups-compiler.m4 6049 2006-10-20 15:07:21Z mike $".
 dnl
 dnl
index 15d75de1e03026c8523a23b7d712212cf066dd60..78641168098be19b46f91acc49f8a7f8785d4f77 100644 (file)
@@ -1,5 +1,5 @@
 dnl
 dnl
-dnl "$Id: cups-defaults.m4 5980 2006-09-21 19:01:55Z mike $"
+dnl "$Id: cups-defaults.m4 6003 2006-10-02 16:26:04Z mike $"
 dnl
 dnl   Default cupsd configuration settings for the Common UNIX Printing System
 dnl   (CUPS).
 dnl
 dnl   Default cupsd configuration settings for the Common UNIX Printing System
 dnl   (CUPS).
@@ -28,7 +28,7 @@ AC_ARG_WITH(languages, [  --with-languages        set installed languages, defau
        if test "x$withval" != xno; then
                LANGUAGES="$withval"
        fi,
        if test "x$withval" != xno; then
                LANGUAGES="$withval"
        fi,
-       LANGUAGES="de es ja pl sv")
+       LANGUAGES="de es et ja pl sv")
 AC_SUBST(LANGUAGES)
 
 dnl Default ConfigFilePerm
 AC_SUBST(LANGUAGES)
 
 dnl Default ConfigFilePerm
@@ -252,5 +252,5 @@ fi
 AC_DEFINE_UNQUOTED(CUPS_DEFAULT_PRINTCAP, "$CUPS_DEFAULT_PRINTCAP")
 
 dnl
 AC_DEFINE_UNQUOTED(CUPS_DEFAULT_PRINTCAP, "$CUPS_DEFAULT_PRINTCAP")
 
 dnl
-dnl End of "$Id: cups-defaults.m4 5980 2006-09-21 19:01:55Z mike $".
+dnl End of "$Id: cups-defaults.m4 6003 2006-10-02 16:26:04Z mike $".
 dnl
 dnl
index d30f4b90b93745ce67d495edaffc36b24aae45b0..abe2ebcf0b1e304e7bfdf9993d64b2a5d837fb13 100644 (file)
@@ -1,5 +1,5 @@
 dnl
 dnl
-dnl "$Id: cups-network.m4 5634 2006-06-06 17:48:27Z mike $"
+dnl "$Id: cups-network.m4 6049 2006-10-20 15:07:21Z mike $"
 dnl
 dnl   Networking stuff for the Common UNIX Printing System (CUPS).
 dnl
 dnl
 dnl   Networking stuff for the Common UNIX Printing System (CUPS).
 dnl
@@ -24,12 +24,17 @@ dnl
 
 AC_SEARCH_LIBS(socket, socket)
 AC_SEARCH_LIBS(gethostbyaddr, nsl)
 
 AC_SEARCH_LIBS(socket, socket)
 AC_SEARCH_LIBS(gethostbyaddr, nsl)
-AC_SEARCH_LIBS(getaddrinfo, nsl, AC_DEFINE(HAVE_GETADDRINFO))
 AC_SEARCH_LIBS(getifaddrs, nsl, AC_DEFINE(HAVE_GETIFADDRS))
 AC_SEARCH_LIBS(getifaddrs, nsl, AC_DEFINE(HAVE_GETIFADDRS))
-AC_SEARCH_LIBS(getnameinfo, nsl, AC_DEFINE(HAVE_GETNAMEINFO))
 AC_SEARCH_LIBS(hstrerror, nsl socket resolv, AC_DEFINE(HAVE_HSTRERROR))
 AC_SEARCH_LIBS(rresvport_af, nsl, AC_DEFINE(HAVE_RRESVPORT_AF))
 
 AC_SEARCH_LIBS(hstrerror, nsl socket resolv, AC_DEFINE(HAVE_HSTRERROR))
 AC_SEARCH_LIBS(rresvport_af, nsl, AC_DEFINE(HAVE_RRESVPORT_AF))
 
+# Tru64 5.1b leaks file descriptors with these functions; disable until
+# we can come up with a test for this...
+if test "$uname" != "OSF1"; then
+       AC_SEARCH_LIBS(getaddrinfo, nsl, AC_DEFINE(HAVE_GETADDRINFO))
+       AC_SEARCH_LIBS(getnameinfo, nsl, AC_DEFINE(HAVE_GETNAMEINFO))
+fi
+
 AC_CHECK_MEMBER(struct sockaddr.sa_len,,, [#include <sys/socket.h>])
 AC_CHECK_HEADER(sys/sockio.h, AC_DEFINE(HAVE_SYS_SOCKIO_H))
 
 AC_CHECK_MEMBER(struct sockaddr.sa_len,,, [#include <sys/socket.h>])
 AC_CHECK_HEADER(sys/sockio.h, AC_DEFINE(HAVE_SYS_SOCKIO_H))
 
@@ -85,5 +90,5 @@ AC_SUBST(CUPS_DEFAULT_DOMAINSOCKET)
 AC_SUBST(CUPS_LISTEN_DOMAINSOCKET)
 
 dnl
 AC_SUBST(CUPS_LISTEN_DOMAINSOCKET)
 
 dnl
-dnl End of "$Id: cups-network.m4 5634 2006-06-06 17:48:27Z mike $".
+dnl End of "$Id: cups-network.m4 6049 2006-10-20 15:07:21Z mike $".
 dnl
 dnl
index 47f76e2aedcb316c8a73ecf612962d14b56c48c8..55bb944b8e505bf2549b117b28506b580489494a 100644 (file)
@@ -1,5 +1,5 @@
 dnl
 dnl
-dnl "$Id: cups-threads.m4 5466 2006-04-26 19:52:27Z mike $"
+dnl "$Id: cups-threads.m4 6012 2006-10-03 22:35:12Z mike $"
 dnl
 dnl   Threading stuff for the Common UNIX Printing System (CUPS).
 dnl
 dnl
 dnl   Threading stuff for the Common UNIX Printing System (CUPS).
 dnl
@@ -44,6 +44,12 @@ if test "x$enable_threads" != xno; then
 
                        if test $have_pthread = yes; then
                                PTHREAD_FLAGS="-D_THREAD_SAFE -D_REENTRANT"
 
                        if test $have_pthread = yes; then
                                PTHREAD_FLAGS="-D_THREAD_SAFE -D_REENTRANT"
+
+                               # Solaris requires _POSIX_PTHREAD_SEMANTICS to
+                               # be POSIX-compliant... :(
+                               if test $uname = SunOS; then
+                                       PTHREAD_FLAGS="$PTHREAD_FLAGS _POSIX_PTHREAD_SEMANTICS"
+                               fi
                                break
                        fi
                done
                                break
                        fi
                done
@@ -53,5 +59,5 @@ fi
 AC_SUBST(PTHREAD_FLAGS)
 
 dnl
 AC_SUBST(PTHREAD_FLAGS)
 
 dnl
-dnl End of "$Id: cups-threads.m4 5466 2006-04-26 19:52:27Z mike $".
+dnl End of "$Id: cups-threads.m4 6012 2006-10-03 22:35:12Z mike $".
 dnl
 dnl
index b4cd1b5512cabb91381a5d03531e0bc001a5299e..98dac2c6244b6faa0c31982c69e038594c0ab052 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: config.h.in 5630 2006-06-05 18:42:53Z mike $"
+ * "$Id: config.h.in 6032 2006-10-12 19:19:47Z mike $"
  *
  *   Configuration file for the Common UNIX Printing System (CUPS).
  *
  *
  *   Configuration file for the Common UNIX Printing System (CUPS).
  *
 #undef HAVE_CRYPT_H
 
 
 #undef HAVE_CRYPT_H
 
 
+/*
+ * Do we have <scsi/sg.h>?
+ */
+
+#undef HAVE_SCSI_SG_H
+
+
 /*
  * Use <string.h>, <strings.h>, and/or <bstring.h>?
  */
 /*
  * Use <string.h>, <strings.h>, and/or <bstring.h>?
  */
  */
 
 #undef HAVE_DBUS
  */
 
 #undef HAVE_DBUS
+#undef HAVE_DBUS_MESSAGE_ITER_INIT_APPEND
 
 
 /*
 
 
 /*
 #endif /* !_CUPS_CONFIG_H_ */
 
 /*
 #endif /* !_CUPS_CONFIG_H_ */
 
 /*
- * End of "$Id: config.h.in 5630 2006-06-05 18:42:53Z mike $".
+ * End of "$Id: config.h.in 6032 2006-10-12 19:19:47Z mike $".
  */
  */
index ec4f21b96c5d40f9f9c2fad146ea1c948362a8f3..c561dc19c44a4659cb1ee7c7ca561531ddae4690 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: cups.h 5930 2006-09-07 19:49:34Z mike $"
+ * "$Id: cups.h 5993 2006-09-29 12:57:31Z mike $"
  *
  *   API definitions for the Common UNIX Printing System (CUPS).
  *
  *
  *   API definitions for the Common UNIX Printing System (CUPS).
  *
@@ -61,10 +61,10 @@ extern "C" {
  * Constants...
  */
 
  * Constants...
  */
 
-#  define CUPS_VERSION         1.0204
+#  define CUPS_VERSION         1.0205
 #  define CUPS_VERSION_MAJOR   1
 #  define CUPS_VERSION_MINOR   2
 #  define CUPS_VERSION_MAJOR   1
 #  define CUPS_VERSION_MINOR   2
-#  define CUPS_VERSION_PATCH   4
+#  define CUPS_VERSION_PATCH   5
 #  define CUPS_DATE_ANY                -1
 
 
 #  define CUPS_DATE_ANY                -1
 
 
@@ -244,5 +244,5 @@ extern cups_file_t  *cupsTempFile2(char *filename, int len);
 #endif /* !_CUPS_CUPS_H_ */
 
 /*
 #endif /* !_CUPS_CUPS_H_ */
 
 /*
- * End of "$Id: cups.h 5930 2006-09-07 19:49:34Z mike $".
+ * End of "$Id: cups.h 5993 2006-09-29 12:57:31Z mike $".
  */
  */
index faf8241b887f1e402d5da12c00cb969133382828..289456370b0c2587ce42a82d7106ddf2cdff2c21 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: dest.c 5753 2006-07-18 19:53:24Z mike $"
+ * "$Id: dest.c 6044 2006-10-17 20:32:59Z mike $"
  *
  *   User-defined destination (and option) support for the Common UNIX
  *   Printing System (CUPS).
  *
  *   User-defined destination (and option) support for the Common UNIX
  *   Printing System (CUPS).
@@ -64,21 +64,31 @@ static int  cups_get_sdests(http_t *http, ipp_op_t op, int num_dests,
 /*
  * 'cupsAddDest()' - Add a destination to the list of destinations.
  *
 /*
  * 'cupsAddDest()' - Add a destination to the list of destinations.
  *
- * Use the cupsSaveDests() function to save the updated list of destinations
- * to the user's lpoptions file.
+ * This function cannot be used to add a new class or printer queue,
+ * it only adds a new container of saved options for the named
+ * destination or instance.
+ *
+ * If the named destination already exists, the destination list is
+ * returned unchanged.  Adding a new instance of a destination creates
+ * a copy of that destination's options.
+ *
+ * Use the cupsSaveDests() function to save the updated list of
+ * destinations to the user's lpoptions file.
  */
 
 int                                    /* O  - New number of destinations */
  */
 
 int                                    /* O  - New number of destinations */
-cupsAddDest(const char  *name,         /* I  - Name of destination */
-            const char *instance,      /* I  - Instance of destination or NULL for none/primary */
+cupsAddDest(const char  *name,         /* I  - Destination name */
+            const char *instance,      /* I  - Instance name or NULL for none/primary */
             int         num_dests,     /* I  - Number of destinations */
             cups_dest_t **dests)       /* IO - Destinations */
 {
   int          i;                      /* Looping var */
   cups_dest_t  *dest;                  /* Destination pointer */
             int         num_dests,     /* I  - Number of destinations */
             cups_dest_t **dests)       /* IO - Destinations */
 {
   int          i;                      /* Looping var */
   cups_dest_t  *dest;                  /* Destination pointer */
+  cups_dest_t  *parent;                /* Parent destination */
+  cups_option_t        *option;                /* Current option */
 
 
 
 
-  if (name == NULL || dests == NULL)
+  if (!name || !dests)
     return (0);
 
   if ((dest = cupsGetDest(name, instance, num_dests, *dests)) != NULL)
     return (0);
 
   if ((dest = cupsGetDest(name, instance, num_dests, *dests)) != NULL)
@@ -98,27 +108,53 @@ cupsAddDest(const char  *name,             /* I  - Name of destination */
 
   *dests = dest;
 
 
   *dests = dest;
 
+ /*
+  * Find where to insert the destination...
+  */
+
   for (i = num_dests; i > 0; i --, dest ++)
     if (strcasecmp(name, dest->name) < 0)
       break;
   for (i = num_dests; i > 0; i --, dest ++)
     if (strcasecmp(name, dest->name) < 0)
       break;
+    else if (!instance && dest->instance)
+      break;
     else if (!strcasecmp(name, dest->name) &&
     else if (!strcasecmp(name, dest->name) &&
-             instance != NULL && dest->instance != NULL &&
+             instance  && dest->instance &&
              strcasecmp(instance, dest->instance) < 0)
       break;
 
   if (i > 0)
     memmove(dest + 1, dest, i * sizeof(cups_dest_t));
 
              strcasecmp(instance, dest->instance) < 0)
       break;
 
   if (i > 0)
     memmove(dest + 1, dest, i * sizeof(cups_dest_t));
 
+ /*
+  * Initialize the destination...
+  */
+
   dest->name        = strdup(name);
   dest->is_default  = 0;
   dest->num_options = 0;
   dest->options     = (cups_option_t *)0;
 
   dest->name        = strdup(name);
   dest->is_default  = 0;
   dest->num_options = 0;
   dest->options     = (cups_option_t *)0;
 
-  if (instance == NULL)
+  if (!instance)
     dest->instance = NULL;
   else
     dest->instance = NULL;
   else
+  {
+   /*
+    * Copy options from the primary instance...
+    */
+
     dest->instance = strdup(instance);
 
     dest->instance = strdup(instance);
 
+    if ((parent = cupsGetDest(name, NULL, num_dests + 1, *dests)) != NULL)
+    {
+      for (i = parent->num_options, option = parent->options;
+           i > 0;
+          i --, option ++)
+       dest->num_options = cupsAddOption(option->name, option->value,
+                                         dest->num_options,
+                                         &(dest->options));
+    }
+  }
+
   return (num_dests + 1);
 }
 
   return (num_dests + 1);
 }
 
@@ -160,18 +196,18 @@ cupsFreeDests(int         num_dests,      /* I - Number of destinations */
  */
 
 cups_dest_t *                          /* O - Destination pointer or NULL */
  */
 
 cups_dest_t *                          /* O - Destination pointer or NULL */
-cupsGetDest(const char  *name,         /* I - Name of destination */
-            const char *instance,      /* I - Instance of destination */
+cupsGetDest(const char  *name,         /* I - Destination name or NULL for the default destination */
+            const char *instance,      /* I - Instance name or NULL */
             int         num_dests,     /* I - Number of destinations */
             cups_dest_t *dests)                /* I - Destinations */
 {
   int  comp;                           /* Result of comparison */
 
 
             int         num_dests,     /* I - Number of destinations */
             cups_dest_t *dests)                /* I - Destinations */
 {
   int  comp;                           /* Result of comparison */
 
 
-  if (num_dests == 0 || dests == NULL)
+  if (num_dests <= 0 || !dests)
     return (NULL);
 
     return (NULL);
 
-  if (name == NULL)
+  if (!name)
   {
    /*
     * NULL name for default printer.
   {
    /*
     * NULL name for default printer.
@@ -198,9 +234,9 @@ cupsGetDest(const char  *name,              /* I - Name of destination */
        return (NULL);
       else if (comp == 0)
       {
        return (NULL);
       else if (comp == 0)
       {
-       if ((instance == NULL && dests->instance == NULL) ||
+       if ((!instance && !dests->instance) ||
             (instance != NULL && dests->instance != NULL &&
             (instance != NULL && dests->instance != NULL &&
-            strcasecmp(instance, dests->instance) == 0))
+            !strcasecmp(instance, dests->instance)))
          return (dests);
       }
 
          return (dests);
       }
 
@@ -220,6 +256,9 @@ cupsGetDest(const char  *name,              /* I - Name of destination */
  * printer-info, printer-is-accepting-jobs, printer-is-shared,
  * printer-make-and-model, printer-state, printer-state-change-time,
  * printer-state-reasons, and printer-type attributes as options.
  * printer-info, printer-is-accepting-jobs, printer-is-shared,
  * printer-make-and-model, printer-state, printer-state-change-time,
  * printer-state-reasons, and printer-type attributes as options.
+ *
+ * Use the cupsFreeDests() function to free the destination list and
+ * the cupsGetDest() function to find a particular destination.
  */
 
 int                                    /* O - Number of destinations */
  */
 
 int                                    /* O - Number of destinations */
@@ -252,6 +291,9 @@ cupsGetDests(cups_dest_t **dests)   /* O - Destinations */
  * printer-make-and-model, printer-state, printer-state-change-time,
  * printer-state-reasons, and printer-type attributes as options.
  *
  * printer-make-and-model, printer-state, printer-state-change-time,
  * printer-state-reasons, and printer-type attributes as options.
  *
+ * Use the cupsFreeDests() function to free the destination list and
+ * the cupsGetDest() function to find a particular destination.
+ *
  * @since CUPS 1.1.21@
  */
 
  * @since CUPS 1.1.21@
  */
 
@@ -1041,5 +1083,5 @@ cups_get_sdests(http_t      *http,        /* I - HTTP connection */
 
 
 /*
 
 
 /*
- * End of "$Id: dest.c 5753 2006-07-18 19:53:24Z mike $".
+ * End of "$Id: dest.c 6044 2006-10-17 20:32:59Z mike $".
  */
  */
index 1b6bc4369fb70e349c76ea6710f3ad95f59ed71d..c130bd8653d1002ab05c49be8406a2212c4f31b1 100644 (file)
@@ -347,10 +347,12 @@ cupsDirOpen(const char *directory)        /* I - Directory name */
 cups_dentry_t *                                /* O - Directory entry */
 cupsDirRead(cups_dir_t *dp)            /* I - Directory */
 {
 cups_dentry_t *                                /* O - Directory entry */
 cupsDirRead(cups_dir_t *dp)            /* I - Directory */
 {
-  char         buffer[sizeof(struct dirent) + 1024];
-                                       /* Directory entry buffer */
   struct dirent        *entry;                 /* Pointer to entry */
   char         filename[1024];         /* Full filename */
   struct dirent        *entry;                 /* Pointer to entry */
   char         filename[1024];         /* Full filename */
+#  ifdef HAVE_PTHREAD_H
+  char         buffer[sizeof(struct dirent) + 1024];
+                                       /* Directory entry buffer */
+#  endif /* HAVE_PTHREAD_H */
 
 
   DEBUG_printf(("cupsDirRead(dp=%p)\n", dp));
 
 
   DEBUG_printf(("cupsDirRead(dp=%p)\n", dp));
@@ -368,6 +370,11 @@ cupsDirRead(cups_dir_t *dp)                /* I - Directory */
 
   for (;;)
   {
 
   for (;;)
   {
+#  ifdef HAVE_PTHREAD_H
+   /*
+    * Read the next entry using the reentrant version of readdir...
+    */
+
     if (readdir_r(dp->dir, (struct dirent *)buffer, &entry))
     {
       DEBUG_printf(("    readdir_r() failed - %s\n", strerror(errno)));
     if (readdir_r(dp->dir, (struct dirent *)buffer, &entry))
     {
       DEBUG_printf(("    readdir_r() failed - %s\n", strerror(errno)));
@@ -382,6 +389,25 @@ cupsDirRead(cups_dir_t *dp)                /* I - Directory */
 
     DEBUG_printf(("    readdir_r() returned \"%s\"...\n", entry->d_name));
 
 
     DEBUG_printf(("    readdir_r() returned \"%s\"...\n", entry->d_name));
 
+#  else
+   /*
+    * Read the next entry using the original version of readdir...
+    */
+
+    if ((entry = readdir(dp->dir)) == NULL)
+    {
+      DEBUG_puts("    readdir() returned a NULL pointer!");
+      return (NULL);
+    }
+
+    DEBUG_printf(("    readdir() returned \"%s\"...\n", entry->d_name));
+
+#  endif /* HAVE_PTHREAD_H */
+
+   /*
+    * Skip "." and ".."...
+    */
+
     if (!strcmp(entry->d_name, ".") || !strcmp(entry->d_name, ".."))
       continue;
 
     if (!strcmp(entry->d_name, ".") || !strcmp(entry->d_name, ".."))
       continue;
 
index 246972d76dc71cc7645aa1676214e69b1ef031a1..f4bbf34e03fece84b86c17540efba2cbf6094035 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: file.c 5812 2006-08-09 22:42:51Z mike $"
+ * "$Id: file.c 5993 2006-09-29 12:57:31Z mike $"
  *
  *   File functions for the Common UNIX Printing System (CUPS).
  *
  *
  *   File functions for the Common UNIX Printing System (CUPS).
  *
@@ -377,7 +377,7 @@ cupsFileFind(const char *filename,  /* I - File to find */
 int                                    /* O - 0 on success, -1 on error */
 cupsFileFlush(cups_file_t *fp)         /* I - CUPS file */
 {
 int                                    /* O - 0 on success, -1 on error */
 cupsFileFlush(cups_file_t *fp)         /* I - CUPS file */
 {
-  size_t       bytes;                  /* Bytes to write */
+  ssize_t      bytes;                  /* Bytes to write */
 
 
   DEBUG_printf(("cupsFileFlush(fp=%p)\n", fp));
 
 
   DEBUG_printf(("cupsFileFlush(fp=%p)\n", fp));
@@ -991,7 +991,7 @@ cupsFilePrintf(cups_file_t *fp,             /* I - CUPS file */
               ...)                     /* I - Additional args as necessary */
 {
   va_list      ap;                     /* Argument list */
               ...)                     /* I - Additional args as necessary */
 {
   va_list      ap;                     /* Argument list */
-  size_t       bytes;                  /* Formatted size */
+  ssize_t      bytes;                  /* Formatted size */
   char         buf[8192];              /* Formatted text */
 
 
   char         buf[8192];              /* Formatted text */
 
 
@@ -1090,7 +1090,7 @@ int                                       /* O - Number of bytes written or -1 */
 cupsFilePuts(cups_file_t *fp,          /* I - CUPS file */
              const char  *s)           /* I - String to write */
 {
 cupsFilePuts(cups_file_t *fp,          /* I - CUPS file */
              const char  *s)           /* I - String to write */
 {
-  size_t       bytes;                  /* Bytes to write */
+  ssize_t      bytes;                  /* Bytes to write */
 
 
  /*
 
 
  /*
@@ -1149,8 +1149,8 @@ cupsFileRead(cups_file_t *fp,             /* I - CUPS file */
              char        *buf,         /* O - Buffer */
             size_t      bytes)         /* I - Number of bytes to read */
 {
              char        *buf,         /* O - Buffer */
             size_t      bytes)         /* I - Number of bytes to read */
 {
-  size_t       total,                  /* Total bytes read */
-               count;                  /* Bytes read */
+  size_t       total;                  /* Total bytes read */
+  ssize_t      count;                  /* Bytes read */
 
 
   DEBUG_printf(("cupsFileRead(fp=%p, buf=%p, bytes=%ld)\n", fp, buf,
 
 
   DEBUG_printf(("cupsFileRead(fp=%p, buf=%p, bytes=%ld)\n", fp, buf,
@@ -1274,7 +1274,7 @@ off_t                                     /* O - New file position or -1 */
 cupsFileSeek(cups_file_t *fp,          /* I - CUPS file */
              off_t       pos)          /* I - Position in file */
 {
 cupsFileSeek(cups_file_t *fp,          /* I - CUPS file */
              off_t       pos)          /* I - Position in file */
 {
-  size_t       bytes;                  /* Number bytes in buffer */
+  ssize_t      bytes;                  /* Number bytes in buffer */
 
 
   DEBUG_printf(("cupsFileSeek(fp=%p, pos=" CUPS_LLFMT ")\n", fp, pos));
 
 
   DEBUG_printf(("cupsFileSeek(fp=%p, pos=" CUPS_LLFMT ")\n", fp, pos));
@@ -2030,8 +2030,8 @@ cups_write(cups_file_t *fp,               /* I - CUPS file */
            const char  *buf,           /* I - Buffer */
           size_t      bytes)           /* I - Number bytes */
 {
            const char  *buf,           /* I - Buffer */
           size_t      bytes)           /* I - Number bytes */
 {
-  size_t       total,                  /* Total bytes written */
-               count;                  /* Count this time */
+  size_t       total;                  /* Total bytes written */
+  ssize_t      count;                  /* Count this time */
 
 
   DEBUG_printf(("cups_write(fp=%p, buf=%p, bytes=%ld)\n", fp, buf,
 
 
   DEBUG_printf(("cups_write(fp=%p, buf=%p, bytes=%ld)\n", fp, buf,
@@ -2081,5 +2081,5 @@ cups_write(cups_file_t *fp,               /* I - CUPS file */
 
 
 /*
 
 
 /*
- * End of "$Id: file.c 5812 2006-08-09 22:42:51Z mike $".
+ * End of "$Id: file.c 5993 2006-09-29 12:57:31Z mike $".
  */
  */
index 6577c0bfcba8d1d5769894a535d00f1edc9b4cf1..2e9cbee55935f21e817d35c897d494c05d59fa1e 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: mark.c 5700 2006-06-26 19:20:39Z mike $"
+ * "$Id: mark.c 6036 2006-10-13 22:06:43Z mike $"
  *
  *   Option marking routines for the Common UNIX Printing System (CUPS).
  *
  *
  *   Option marking routines for the Common UNIX Printing System (CUPS).
  *
@@ -62,15 +62,14 @@ static void ppd_defaults(ppd_file_t *ppd, ppd_group_t *g);
 int                            /* O - Number of conflicts found */
 ppdConflicts(ppd_file_t *ppd)  /* I - PPD to check */
 {
 int                            /* O - Number of conflicts found */
 ppdConflicts(ppd_file_t *ppd)  /* I - PPD to check */
 {
-  int          i, j, k,        /* Looping variables */
+  int          i, j,           /* Looping variables */
                conflicts;      /* Number of conflicts */
   ppd_const_t  *c;             /* Current constraint */
                conflicts;      /* Number of conflicts */
   ppd_const_t  *c;             /* Current constraint */
-  ppd_group_t  *g, *sg;        /* Groups */
   ppd_option_t *o1, *o2;       /* Options */
   ppd_choice_t *c1, *c2;       /* Choices */
 
 
   ppd_option_t *o1, *o2;       /* Options */
   ppd_choice_t *c1, *c2;       /* Choices */
 
 
-  if (ppd == NULL)
+  if (!ppd)
     return (0);
 
  /*
     return (0);
 
  /*
@@ -79,15 +78,8 @@ ppdConflicts(ppd_file_t *ppd)        /* I - PPD to check */
 
   conflicts = 0;
 
 
   conflicts = 0;
 
-  for (i = ppd->num_groups, g = ppd->groups; i > 0; i --, g ++)
-  {
-    for (j = g->num_options, o1 = g->options; j > 0; j --, o1 ++)
-      o1->conflicted = 0;
-
-    for (j = g->num_subgroups, sg = g->subgroups; j > 0; j --, sg ++)
-      for (k = sg->num_options, o1 = sg->options; k > 0; k --, o1 ++)
-        o1->conflicted = 0;
-  }
+  for (o1 = ppdFirstOption(ppd); o1; o1 = ppdNextOption(ppd))
+    o1->conflicted = 0;
 
  /*
   * Loop through all of the UI constraints and flag any options
 
  /*
   * Loop through all of the UI constraints and flag any options
@@ -102,9 +94,9 @@ ppdConflicts(ppd_file_t *ppd)        /* I - PPD to check */
 
     o1 = ppdFindOption(ppd, c->option1);
 
 
     o1 = ppdFindOption(ppd, c->option1);
 
-    if (o1 == NULL)
+    if (!o1)
       continue;
       continue;
-    else if (c->choice1[0] != '\0')
+    else if (c->choice1[0])
     {
      /*
       * This constraint maps to a specific choice.
     {
      /*
       * This constraint maps to a specific choice.
@@ -122,10 +114,10 @@ ppdConflicts(ppd_file_t *ppd)     /* I - PPD to check */
         if (c1->marked)
          break;
 
         if (c1->marked)
          break;
 
-      if (j == 0 ||
-          strcasecmp(c1->choice, "None") == 0 ||
-          strcasecmp(c1->choice, "Off") == 0 ||
-          strcasecmp(c1->choice, "False") == 0)
+      if (!j ||
+          !strcasecmp(c1->choice, "None") ||
+          !strcasecmp(c1->choice, "Off") ||
+          !strcasecmp(c1->choice, "False"))
         c1 = NULL;
     }
 
         c1 = NULL;
     }
 
@@ -135,9 +127,9 @@ ppdConflicts(ppd_file_t *ppd)       /* I - PPD to check */
 
     o2 = ppdFindOption(ppd, c->option2);
 
 
     o2 = ppdFindOption(ppd, c->option2);
 
-    if (o2 == NULL)
+    if (!o2)
       continue;
       continue;
-    else if (c->choice2[0] != '\0')
+    else if (c->choice2[0])
     {
      /*
       * This constraint maps to a specific choice.
     {
      /*
       * This constraint maps to a specific choice.
@@ -155,10 +147,10 @@ ppdConflicts(ppd_file_t *ppd)     /* I - PPD to check */
         if (c2->marked)
          break;
 
         if (c2->marked)
          break;
 
-      if (j == 0 ||
-          strcasecmp(c2->choice, "None") == 0 ||
-          strcasecmp(c2->choice, "Off") == 0 ||
-          strcasecmp(c2->choice, "False") == 0)
+      if (!j ||
+          !strcasecmp(c2->choice, "None") ||
+          !strcasecmp(c2->choice, "Off") ||
+          !strcasecmp(c2->choice, "False"))
         c2 = NULL;
     }
 
         c2 = NULL;
     }
 
@@ -166,8 +158,7 @@ ppdConflicts(ppd_file_t *ppd)       /* I - PPD to check */
     * If both options are marked then there is a conflict...
     */
 
     * If both options are marked then there is a conflict...
     */
 
-    if (c1 != NULL && c1->marked &&
-        c2 != NULL && c2->marked)
+    if (c1 && c1->marked && c2 && c2->marked)
     {
       DEBUG_printf(("%s->%s conflicts with %s->%s (%s %s %s %s)\n",
                     o1->keyword, c1->choice, o2->keyword, c2->choice,
     {
       DEBUG_printf(("%s->%s conflicts with %s->%s (%s %s %s %s)\n",
                     o1->keyword, c1->choice, o2->keyword, c2->choice,
@@ -686,5 +677,5 @@ ppd_defaults(ppd_file_t  *ppd,      /* I - PPD file */
 
 
 /*
 
 
 /*
- * End of "$Id: mark.c 5700 2006-06-26 19:20:39Z mike $".
+ * End of "$Id: mark.c 6036 2006-10-13 22:06:43Z mike $".
  */
  */
index 15abaa8078e782400aeafc4af9235333dad52fec..9facfe6b954b82c646f9064f2b2ef5855203f54e 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: ppd.c 5826 2006-08-15 19:04:11Z mike $"
+ * "$Id: ppd.c 6036 2006-10-13 22:06:43Z mike $"
  *
  *   PPD file routines for the Common UNIX Printing System (CUPS).
  *
  *
  *   PPD file routines for the Common UNIX Printing System (CUPS).
  *
@@ -1549,6 +1549,18 @@ ppdOpen2(cups_file_t *fp)                /* I - File to read from */
            goto error;
 
        case 2 : /* Two options... */
            goto error;
 
        case 2 : /* Two options... */
+          /*
+           * Check for broken constraints like "* Option"...
+           */
+
+           if (cg->ppd_conform == PPD_CONFORM_STRICT &&
+               (!strcmp(constraint->option1, "*") ||
+                !strcmp(constraint->choice1, "*")))
+           {
+             cg->ppd_status = PPD_BAD_UI_CONSTRAINTS;
+             goto error;
+           }
+
           /*
            * The following strcpy's are safe, as optionN and
            * choiceN are all the same size (size defined by PPD spec...)
           /*
            * The following strcpy's are safe, as optionN and
            * choiceN are all the same size (size defined by PPD spec...)
@@ -1556,17 +1568,38 @@ ppdOpen2(cups_file_t *fp)               /* I - File to read from */
 
            if (constraint->option1[0] == '*')
              _cups_strcpy(constraint->option1, constraint->option1 + 1);
 
            if (constraint->option1[0] == '*')
              _cups_strcpy(constraint->option1, constraint->option1 + 1);
+           else if (cg->ppd_conform == PPD_CONFORM_STRICT)
+           {
+             cg->ppd_status = PPD_BAD_UI_CONSTRAINTS;
+             goto error;
+           }
 
            if (constraint->choice1[0] == '*')
              _cups_strcpy(constraint->option2, constraint->choice1 + 1);
 
            if (constraint->choice1[0] == '*')
              _cups_strcpy(constraint->option2, constraint->choice1 + 1);
-           else
-             _cups_strcpy(constraint->option2, constraint->choice1);
+           else if (cg->ppd_conform == PPD_CONFORM_STRICT)
+           {
+             cg->ppd_status = PPD_BAD_UI_CONSTRAINTS;
+             goto error;
+           }
 
             constraint->choice1[0] = '\0';
             constraint->choice2[0] = '\0';
            break;
            
        case 3 : /* Two options, one choice... */
 
             constraint->choice1[0] = '\0';
             constraint->choice2[0] = '\0';
            break;
            
        case 3 : /* Two options, one choice... */
+          /*
+           * Check for broken constraints like "* Option"...
+           */
+
+           if (cg->ppd_conform == PPD_CONFORM_STRICT &&
+               (!strcmp(constraint->option1, "*") ||
+                !strcmp(constraint->choice1, "*") ||
+                !strcmp(constraint->option2, "*")))
+           {
+             cg->ppd_status = PPD_BAD_UI_CONSTRAINTS;
+             goto error;
+           }
+
           /*
            * The following _cups_strcpy's are safe, as optionN and
            * choiceN are all the same size (size defined by PPD spec...)
           /*
            * The following _cups_strcpy's are safe, as optionN and
            * choiceN are all the same size (size defined by PPD spec...)
@@ -1574,9 +1607,21 @@ ppdOpen2(cups_file_t *fp)                /* I - File to read from */
 
            if (constraint->option1[0] == '*')
              _cups_strcpy(constraint->option1, constraint->option1 + 1);
 
            if (constraint->option1[0] == '*')
              _cups_strcpy(constraint->option1, constraint->option1 + 1);
+           else if (cg->ppd_conform == PPD_CONFORM_STRICT)
+           {
+             cg->ppd_status = PPD_BAD_UI_CONSTRAINTS;
+             goto error;
+           }
 
            if (constraint->choice1[0] == '*')
            {
 
            if (constraint->choice1[0] == '*')
            {
+             if (cg->ppd_conform == PPD_CONFORM_STRICT &&
+                 constraint->option2[0] == '*')
+             {
+               cg->ppd_status = PPD_BAD_UI_CONSTRAINTS;
+               goto error;
+             }
+
              _cups_strcpy(constraint->choice2, constraint->option2);
              _cups_strcpy(constraint->option2, constraint->choice1 + 1);
               constraint->choice1[0] = '\0';
              _cups_strcpy(constraint->choice2, constraint->option2);
              _cups_strcpy(constraint->option2, constraint->choice1 + 1);
               constraint->choice1[0] = '\0';
@@ -1585,20 +1630,85 @@ ppdOpen2(cups_file_t *fp)               /* I - File to read from */
            {
              if (constraint->option2[0] == '*')
                _cups_strcpy(constraint->option2, constraint->option2 + 1);
            {
              if (constraint->option2[0] == '*')
                _cups_strcpy(constraint->option2, constraint->option2 + 1);
+             else if (cg->ppd_conform == PPD_CONFORM_STRICT)
+             {
+               cg->ppd_status = PPD_BAD_UI_CONSTRAINTS;
+               goto error;
+             }
 
               constraint->choice2[0] = '\0';
            }
            break;
            
        case 4 : /* Two options, two choices... */
 
               constraint->choice2[0] = '\0';
            }
            break;
            
        case 4 : /* Two options, two choices... */
+          /*
+           * Check for broken constraints like "* Option"...
+           */
+
+           if (cg->ppd_conform == PPD_CONFORM_STRICT &&
+               (!strcmp(constraint->option1, "*") ||
+                !strcmp(constraint->choice1, "*") ||
+                !strcmp(constraint->option2, "*") ||
+                !strcmp(constraint->choice2, "*")))
+           {
+             cg->ppd_status = PPD_BAD_UI_CONSTRAINTS;
+             goto error;
+           }
+
            if (constraint->option1[0] == '*')
              _cups_strcpy(constraint->option1, constraint->option1 + 1);
            if (constraint->option1[0] == '*')
              _cups_strcpy(constraint->option1, constraint->option1 + 1);
+           else if (cg->ppd_conform == PPD_CONFORM_STRICT)
+           {
+             cg->ppd_status = PPD_BAD_UI_CONSTRAINTS;
+             goto error;
+           }
+
+            if (cg->ppd_conform == PPD_CONFORM_STRICT &&
+               constraint->choice1[0] == '*')
+           {
+             cg->ppd_status = PPD_BAD_UI_CONSTRAINTS;
+             goto error;
+           }
 
            if (constraint->option2[0] == '*')
              _cups_strcpy(constraint->option2, constraint->option2 + 1);
 
            if (constraint->option2[0] == '*')
              _cups_strcpy(constraint->option2, constraint->option2 + 1);
+           else if (cg->ppd_conform == PPD_CONFORM_STRICT)
+           {
+             cg->ppd_status = PPD_BAD_UI_CONSTRAINTS;
+             goto error;
+           }
+
+            if (cg->ppd_conform == PPD_CONFORM_STRICT &&
+               constraint->choice2[0] == '*')
+           {
+             cg->ppd_status = PPD_BAD_UI_CONSTRAINTS;
+             goto error;
+           }
            break;
       }
 
            break;
       }
 
+     /*
+      * Handle CustomFoo option constraints...
+      */
+
+      if (!strncasecmp(constraint->option1, "Custom", 6) &&
+          !strcasecmp(constraint->choice1, "True"))
+      {
+        _cups_strcpy(constraint->option1, constraint->option1 + 6);
+       strcpy(constraint->choice1, "Custom");
+      }
+
+      if (!strncasecmp(constraint->option2, "Custom", 6) &&
+          !strcasecmp(constraint->choice2, "True"))
+      {
+        _cups_strcpy(constraint->option2, constraint->option2 + 6);
+       strcpy(constraint->choice2, "Custom");
+      }
+
+     /*
+      * Don't add this one as an attribute...
+      */
+
       ppd_free(string);
       string = NULL;
     }
       ppd_free(string);
       string = NULL;
     }
@@ -2936,5 +3046,5 @@ ppd_read(cups_file_t    *fp,              /* I - File to read from */
 
 
 /*
 
 
 /*
- * End of "$Id: ppd.c 5826 2006-08-15 19:04:11Z mike $".
+ * End of "$Id: ppd.c 6036 2006-10-13 22:06:43Z mike $".
  */
  */
index 0e64565b09d11d6b73f6ea7364541d94ccf039a6..60dfc81ff9c776bfa7d000fad3673c57418b5a85 100644 (file)
@@ -1,9 +1,9 @@
 /*
 /*
- * "$Id: tempfile.c 4918 2006-01-12 05:14:40Z mike $"
+ * "$Id: tempfile.c 6040 2006-10-17 02:24:49Z mike $"
  *
  *   Temp file utilities for the Common UNIX Printing System (CUPS).
  *
  *
  *   Temp file utilities for the Common UNIX Printing System (CUPS).
  *
- *   Copyright 1997-2005 by Easy Software Products.
+ *   Copyright 1997-2006 by Easy Software Products.
  *
  *   These coded instructions, statements, and computer programs are the
  *   property of Easy Software Products and are protected by Federal
  *
  *   These coded instructions, statements, and computer programs are the
  *   property of Easy Software Products and are protected by Federal
@@ -25,9 +25,9 @@
  *
  * Contents:
  *
  *
  * Contents:
  *
- *   cupsTempFd()    - Create a temporary file.
- *   cupsTempFile()  - Generate a temporary filename.
- *   cupsTempFile2() - Create a temporary CUPS file.
+ *   cupsTempFd()    - Creates a temporary file.
+ *   cupsTempFile()  - Generates a temporary filename.
+ *   cupsTempFile2() - Creates a temporary CUPS file.
  */
 
 /*
  */
 
 /*
 
 
 /*
 
 
 /*
- * 'cupsTempFd()' - Create a temporary file.
+ * 'cupsTempFd()' - Creates a temporary file.
  *
  *
- * The temporary filename is stored in the filename buffer.
+ * The temporary filename is returned in the filename buffer.
+ * The temporary file is opened for reading and writing.
  */
 
  */
 
-int                                    /* O - New file descriptor */
+int                                    /* O - New file descriptor or -1 on error */
 cupsTempFd(char *filename,             /* I - Pointer to buffer */
            int  len)                   /* I - Size of buffer */
 {
 cupsTempFd(char *filename,             /* I - Pointer to buffer */
            int  len)                   /* I - Size of buffer */
 {
@@ -158,16 +159,16 @@ cupsTempFd(char *filename,                /* I - Pointer to buffer */
 
 
 /*
 
 
 /*
- * 'cupsTempFile()' - Generate a temporary filename.
+ * 'cupsTempFile()' - Generates a temporary filename.
  *
  *
- * The temporary filename is stored in the filename buffer.
+ * The temporary filename is returned in the filename buffer.
  * This function is deprecated - use cupsTempFd() or cupsTempFile2()
  * instead.
  *
  * @deprecated@
  */
 
  * This function is deprecated - use cupsTempFd() or cupsTempFile2()
  * instead.
  *
  * @deprecated@
  */
 
-char *                                 /* O - Filename */
+char *                                 /* O - Filename or NULL on error */
 cupsTempFile(char *filename,           /* I - Pointer to buffer */
              int  len)                 /* I - Size of buffer */
 {
 cupsTempFile(char *filename,           /* I - Pointer to buffer */
              int  len)                 /* I - Size of buffer */
 {
@@ -207,9 +208,10 @@ cupsTempFile(char *filename,               /* I - Pointer to buffer */
 
 
 /*
 
 
 /*
- * 'cupsTempFile2()' - Create a temporary CUPS file.
+ * 'cupsTempFile2()' - Creates a temporary CUPS file.
  *
  *
- * The temporary filename is stored in the filename buffer.
+ * The temporary filename is returned in the filename buffer.
+ * The temporary file is opened for writing.
  *
  * @since CUPS 1.2@
  */
  *
  * @since CUPS 1.2@
  */
@@ -236,5 +238,5 @@ cupsTempFile2(char *filename,               /* I - Pointer to buffer */
 
 
 /*
 
 
 /*
- * End of "$Id: tempfile.c 4918 2006-01-12 05:14:40Z mike $".
+ * End of "$Id: tempfile.c 6040 2006-10-17 02:24:49Z mike $".
  */
  */
index 1ef498e338443a9cc88111947091a90d73427944..2d0af275ef5b364ae2fdda29caf0983ab2799223 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: testhttp.c 5679 2006-06-20 14:45:15Z mike $"
+ * "$Id: testhttp.c 6003 2006-10-02 16:26:04Z mike $"
  *
  *   HTTP test program for the Common UNIX Printing System (CUPS).
  *
  *
  *   HTTP test program for the Common UNIX Printing System (CUPS).
  *
@@ -84,6 +84,8 @@ static uri_test_t     uri_tests[] =   /* URI test data */
                            "http", "username:password", "server", "/", 8080, 8080 },
                          { HTTP_URI_OK, "http://username:passwor%64@server:8080/directory/filename",
                            "http", "username:password", "server", "/directory/filename", 8080, 8080 },
                            "http", "username:password", "server", "/", 8080, 8080 },
                          { HTTP_URI_OK, "http://username:passwor%64@server:8080/directory/filename",
                            "http", "username:password", "server", "/directory/filename", 8080, 8080 },
+                         { HTTP_URI_OK, "http://[2000::10:100]:631/ipp",
+                           "http", "", "2000::10:100", "/ipp", 631, 631 },
                          { HTTP_URI_OK, "https://username:passwor%64@server/directory/filename",
                            "https", "username:password", "server", "/directory/filename", 443, 0 },
                          { HTTP_URI_OK, "ipp://username:passwor%64@[::1]/ipp",
                          { HTTP_URI_OK, "https://username:passwor%64@server/directory/filename",
                            "https", "username:password", "server", "/directory/filename", 443, 0 },
                          { HTTP_URI_OK, "ipp://username:passwor%64@[::1]/ipp",
@@ -531,5 +533,5 @@ main(int  argc,                             /* I - Number of command-line arguments */
 
 
 /*
 
 
 /*
- * End of "$Id: testhttp.c 5679 2006-06-20 14:45:15Z mike $".
+ * End of "$Id: testhttp.c 6003 2006-10-02 16:26:04Z mike $".
  */
  */
index 40bf2f05469733fec0ea0f1d1715175ce14512a5..b0b5166fcce7d05c3e347d5d3a3659acf12a37f8 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: transcode.c 5838 2006-08-17 14:41:42Z mike $"
+ * "$Id: transcode.c 6038 2006-10-14 15:53:10Z mike $"
  *
  *   Transcoding support for the Common UNIX Printing System (CUPS).
  *
  *
  *   Transcoding support for the Common UNIX Printing System (CUPS).
  *
@@ -445,6 +445,7 @@ cupsUTF8ToUTF32(
       */
 
       *dest++ = ch;
       */
 
       *dest++ = ch;
+      continue;
     }
     else if ((ch & 0xe0) == 0xc0)
     {
     }
     else if ((ch & 0xe0) == 0xc0)
     {
@@ -540,7 +541,7 @@ cupsUTF8ToUTF32(
     * Check for UTF-16 surrogate (illegal UTF-8)...
     */
 
     * Check for UTF-16 surrogate (illegal UTF-8)...
     */
 
-    if (*dest >= 0xd800 && *dest <= 0xdfff)
+    if (ch32 >= 0xd800 && ch32 <= 0xdfff)
       return (-1);
   }
 
       return (-1);
   }
 
@@ -1583,5 +1584,5 @@ get_vbcs_charmap(
 
 
 /*
 
 
 /*
- * End of "$Id: transcode.c 5838 2006-08-17 14:41:42Z mike $"
+ * End of "$Id: transcode.c 6038 2006-10-14 15:53:10Z mike $"
  */
  */
index a632eb79391b228978db69db1e9948ca8314825f..48ac645bbaf2b4df658ef82c65abbd150feb348f 100644 (file)
@@ -14,10 +14,12 @@ X-DCOP-ServiceType=
 X-KDE-SubstituteUID=false
 X-KDE-Username=
 Name=Manage Printing
 X-KDE-SubstituteUID=false
 X-KDE-Username=
 Name=Manage Printing
-Name[en_US]=Manage Printing
 Comment=CUPS Web Interface
 Comment=CUPS Web Interface
+Name[en_US]=Manage Printing
 Comment[en_US]=CUPS Web Interface
 Name[es]=Administrar impresión
 Comment[es]=Interfaz Web de CUPS
 Comment[en_US]=CUPS Web Interface
 Name[es]=Administrar impresión
 Comment[es]=Interfaz Web de CUPS
+Name[et]=Trükkimise haldur
+Comment[et]=CUPS-i veebiliides
 Name[pl]=Zarządzanie drukowaniem
 Comment[pl]=Interfejs WWW CUPS
 Name[pl]=Zarządzanie drukowaniem
 Comment[pl]=Interfejs WWW CUPS
diff --git a/doc/et/images/button-accept-jobs.gif b/doc/et/images/button-accept-jobs.gif
new file mode 100644 (file)
index 0000000..38521be
Binary files /dev/null and b/doc/et/images/button-accept-jobs.gif differ
diff --git a/doc/et/images/button-add-class.gif b/doc/et/images/button-add-class.gif
new file mode 100644 (file)
index 0000000..fc6a4ad
Binary files /dev/null and b/doc/et/images/button-add-class.gif differ
diff --git a/doc/et/images/button-add-printer.gif b/doc/et/images/button-add-printer.gif
new file mode 100644 (file)
index 0000000..6c8d04a
Binary files /dev/null and b/doc/et/images/button-add-printer.gif differ
diff --git a/doc/et/images/button-add-this-printer.gif b/doc/et/images/button-add-this-printer.gif
new file mode 100644 (file)
index 0000000..54f19ff
Binary files /dev/null and b/doc/et/images/button-add-this-printer.gif differ
diff --git a/doc/et/images/button-cancel-all-jobs.gif b/doc/et/images/button-cancel-all-jobs.gif
new file mode 100644 (file)
index 0000000..50d31fa
Binary files /dev/null and b/doc/et/images/button-cancel-all-jobs.gif differ
diff --git a/doc/et/images/button-cancel-job.gif b/doc/et/images/button-cancel-job.gif
new file mode 100644 (file)
index 0000000..d731ed7
Binary files /dev/null and b/doc/et/images/button-cancel-job.gif differ
diff --git a/doc/et/images/button-change-settings.gif b/doc/et/images/button-change-settings.gif
new file mode 100644 (file)
index 0000000..8bcc0a2
Binary files /dev/null and b/doc/et/images/button-change-settings.gif differ
diff --git a/doc/et/images/button-clean-print-heads.gif b/doc/et/images/button-clean-print-heads.gif
new file mode 100644 (file)
index 0000000..3b5472c
Binary files /dev/null and b/doc/et/images/button-clean-print-heads.gif differ
diff --git a/doc/et/images/button-clear.gif b/doc/et/images/button-clear.gif
new file mode 100644 (file)
index 0000000..bff0e60
Binary files /dev/null and b/doc/et/images/button-clear.gif differ
diff --git a/doc/et/images/button-continue.gif b/doc/et/images/button-continue.gif
new file mode 100644 (file)
index 0000000..fbc1f95
Binary files /dev/null and b/doc/et/images/button-continue.gif differ
diff --git a/doc/et/images/button-delete-class.gif b/doc/et/images/button-delete-class.gif
new file mode 100644 (file)
index 0000000..ae0d7ca
Binary files /dev/null and b/doc/et/images/button-delete-class.gif differ
diff --git a/doc/et/images/button-delete-printer.gif b/doc/et/images/button-delete-printer.gif
new file mode 100644 (file)
index 0000000..00ed5a5
Binary files /dev/null and b/doc/et/images/button-delete-printer.gif differ
diff --git a/doc/et/images/button-edit-configuration-file.gif b/doc/et/images/button-edit-configuration-file.gif
new file mode 100644 (file)
index 0000000..a846b96
Binary files /dev/null and b/doc/et/images/button-edit-configuration-file.gif differ
diff --git a/doc/et/images/button-export-samba.gif b/doc/et/images/button-export-samba.gif
new file mode 100644 (file)
index 0000000..f595ebb
Binary files /dev/null and b/doc/et/images/button-export-samba.gif differ
diff --git a/doc/et/images/button-help.gif b/doc/et/images/button-help.gif
new file mode 100644 (file)
index 0000000..64e5b24
Binary files /dev/null and b/doc/et/images/button-help.gif differ
diff --git a/doc/et/images/button-hold-job.gif b/doc/et/images/button-hold-job.gif
new file mode 100644 (file)
index 0000000..c364193
Binary files /dev/null and b/doc/et/images/button-hold-job.gif differ
diff --git a/doc/et/images/button-manage-classes.gif b/doc/et/images/button-manage-classes.gif
new file mode 100644 (file)
index 0000000..e26ed65
Binary files /dev/null and b/doc/et/images/button-manage-classes.gif differ
diff --git a/doc/et/images/button-manage-jobs.gif b/doc/et/images/button-manage-jobs.gif
new file mode 100644 (file)
index 0000000..79841b7
Binary files /dev/null and b/doc/et/images/button-manage-jobs.gif differ
diff --git a/doc/et/images/button-manage-printers.gif b/doc/et/images/button-manage-printers.gif
new file mode 100644 (file)
index 0000000..680db58
Binary files /dev/null and b/doc/et/images/button-manage-printers.gif differ
diff --git a/doc/et/images/button-manage-server.gif b/doc/et/images/button-manage-server.gif
new file mode 100644 (file)
index 0000000..1909ee7
Binary files /dev/null and b/doc/et/images/button-manage-server.gif differ
diff --git a/doc/et/images/button-modify-class.gif b/doc/et/images/button-modify-class.gif
new file mode 100644 (file)
index 0000000..b88c3fa
Binary files /dev/null and b/doc/et/images/button-modify-class.gif differ
diff --git a/doc/et/images/button-modify-printer.gif b/doc/et/images/button-modify-printer.gif
new file mode 100644 (file)
index 0000000..93483dd
Binary files /dev/null and b/doc/et/images/button-modify-printer.gif differ
diff --git a/doc/et/images/button-move-job.gif b/doc/et/images/button-move-job.gif
new file mode 100644 (file)
index 0000000..3d55566
Binary files /dev/null and b/doc/et/images/button-move-job.gif differ
diff --git a/doc/et/images/button-move-jobs.gif b/doc/et/images/button-move-jobs.gif
new file mode 100644 (file)
index 0000000..49585e3
Binary files /dev/null and b/doc/et/images/button-move-jobs.gif differ
diff --git a/doc/et/images/button-print-self-test-page.gif b/doc/et/images/button-print-self-test-page.gif
new file mode 100644 (file)
index 0000000..17d5b0c
Binary files /dev/null and b/doc/et/images/button-print-self-test-page.gif differ
diff --git a/doc/et/images/button-print-test-page.gif b/doc/et/images/button-print-test-page.gif
new file mode 100644 (file)
index 0000000..bbe06ed
Binary files /dev/null and b/doc/et/images/button-print-test-page.gif differ
diff --git a/doc/et/images/button-publish-printer.gif b/doc/et/images/button-publish-printer.gif
new file mode 100644 (file)
index 0000000..8ecd812
Binary files /dev/null and b/doc/et/images/button-publish-printer.gif differ
diff --git a/doc/et/images/button-reject-jobs.gif b/doc/et/images/button-reject-jobs.gif
new file mode 100644 (file)
index 0000000..aaccb43
Binary files /dev/null and b/doc/et/images/button-reject-jobs.gif differ
diff --git a/doc/et/images/button-release-job.gif b/doc/et/images/button-release-job.gif
new file mode 100644 (file)
index 0000000..e369f03
Binary files /dev/null and b/doc/et/images/button-release-job.gif differ
diff --git a/doc/et/images/button-restart-job.gif b/doc/et/images/button-restart-job.gif
new file mode 100644 (file)
index 0000000..beac40a
Binary files /dev/null and b/doc/et/images/button-restart-job.gif differ
diff --git a/doc/et/images/button-save-changes.gif b/doc/et/images/button-save-changes.gif
new file mode 100644 (file)
index 0000000..870f8d5
Binary files /dev/null and b/doc/et/images/button-save-changes.gif differ
diff --git a/doc/et/images/button-search.gif b/doc/et/images/button-search.gif
new file mode 100644 (file)
index 0000000..43824d5
Binary files /dev/null and b/doc/et/images/button-search.gif differ
diff --git a/doc/et/images/button-set-allowed-users.gif b/doc/et/images/button-set-allowed-users.gif
new file mode 100644 (file)
index 0000000..261c13c
Binary files /dev/null and b/doc/et/images/button-set-allowed-users.gif differ
diff --git a/doc/et/images/button-set-as-default.gif b/doc/et/images/button-set-as-default.gif
new file mode 100644 (file)
index 0000000..fdc7066
Binary files /dev/null and b/doc/et/images/button-set-as-default.gif differ
diff --git a/doc/et/images/button-set-printer-options.gif b/doc/et/images/button-set-printer-options.gif
new file mode 100644 (file)
index 0000000..2a0441a
Binary files /dev/null and b/doc/et/images/button-set-printer-options.gif differ
diff --git a/doc/et/images/button-show-active.gif b/doc/et/images/button-show-active.gif
new file mode 100644 (file)
index 0000000..34cc739
Binary files /dev/null and b/doc/et/images/button-show-active.gif differ
diff --git a/doc/et/images/button-show-all.gif b/doc/et/images/button-show-all.gif
new file mode 100644 (file)
index 0000000..6128006
Binary files /dev/null and b/doc/et/images/button-show-all.gif differ
diff --git a/doc/et/images/button-show-completed.gif b/doc/et/images/button-show-completed.gif
new file mode 100644 (file)
index 0000000..165dbe0
Binary files /dev/null and b/doc/et/images/button-show-completed.gif differ
diff --git a/doc/et/images/button-show-next.gif b/doc/et/images/button-show-next.gif
new file mode 100644 (file)
index 0000000..57031e9
Binary files /dev/null and b/doc/et/images/button-show-next.gif differ
diff --git a/doc/et/images/button-show-previous.gif b/doc/et/images/button-show-previous.gif
new file mode 100644 (file)
index 0000000..d32f7a8
Binary files /dev/null and b/doc/et/images/button-show-previous.gif differ
diff --git a/doc/et/images/button-sort-ascending.gif b/doc/et/images/button-sort-ascending.gif
new file mode 100644 (file)
index 0000000..0d92546
Binary files /dev/null and b/doc/et/images/button-sort-ascending.gif differ
diff --git a/doc/et/images/button-sort-descending.gif b/doc/et/images/button-sort-descending.gif
new file mode 100644 (file)
index 0000000..0ac534d
Binary files /dev/null and b/doc/et/images/button-sort-descending.gif differ
diff --git a/doc/et/images/button-start-class.gif b/doc/et/images/button-start-class.gif
new file mode 100644 (file)
index 0000000..e13a451
Binary files /dev/null and b/doc/et/images/button-start-class.gif differ
diff --git a/doc/et/images/button-start-printer.gif b/doc/et/images/button-start-printer.gif
new file mode 100644 (file)
index 0000000..e4a462c
Binary files /dev/null and b/doc/et/images/button-start-printer.gif differ
diff --git a/doc/et/images/button-stop-class.gif b/doc/et/images/button-stop-class.gif
new file mode 100644 (file)
index 0000000..b395262
Binary files /dev/null and b/doc/et/images/button-stop-class.gif differ
diff --git a/doc/et/images/button-stop-printer.gif b/doc/et/images/button-stop-printer.gif
new file mode 100644 (file)
index 0000000..65e69ae
Binary files /dev/null and b/doc/et/images/button-stop-printer.gif differ
diff --git a/doc/et/images/button-unpublish-printer.gif b/doc/et/images/button-unpublish-printer.gif
new file mode 100644 (file)
index 0000000..e188323
Binary files /dev/null and b/doc/et/images/button-unpublish-printer.gif differ
diff --git a/doc/et/images/button-use-default-config.gif b/doc/et/images/button-use-default-config.gif
new file mode 100644 (file)
index 0000000..00318d5
Binary files /dev/null and b/doc/et/images/button-use-default-config.gif differ
diff --git a/doc/et/images/button-view-access-log.gif b/doc/et/images/button-view-access-log.gif
new file mode 100644 (file)
index 0000000..36dac05
Binary files /dev/null and b/doc/et/images/button-view-access-log.gif differ
diff --git a/doc/et/images/button-view-error-log.gif b/doc/et/images/button-view-error-log.gif
new file mode 100644 (file)
index 0000000..8c871ce
Binary files /dev/null and b/doc/et/images/button-view-error-log.gif differ
diff --git a/doc/et/images/button-view-page-log.gif b/doc/et/images/button-view-page-log.gif
new file mode 100644 (file)
index 0000000..13f2ca7
Binary files /dev/null and b/doc/et/images/button-view-page-log.gif differ
diff --git a/doc/et/images/button-view-printable-version.gif b/doc/et/images/button-view-printable-version.gif
new file mode 100644 (file)
index 0000000..4b8e0c6
Binary files /dev/null and b/doc/et/images/button-view-printable-version.gif differ
diff --git a/doc/et/index.html.in b/doc/et/index.html.in
new file mode 100644 (file)
index 0000000..8399134
--- /dev/null
@@ -0,0 +1,141 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+<HTML>
+<HEAD>
+       <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+       <TITLE>Kodu - CUPS @CUPS_VERSION@@CUPS_REVISION@</TITLE>
+       <LINK REL="STYLESHEET" TYPE="text/css" HREF="/cups.css">
+       <LINK REL="SHORTCUT ICON" HREF="/favicon.ico" TYPE="image/x-icon">
+</HEAD>
+<BODY>
+<TABLE WIDTH="100%" STYLE="height: 100%;" BORDER="0" CELLSPACING="0" CELLPADDING="0" SUMMARY="Common UNIX Printing System @CUPS_VERSION@">
+<TR CLASS="header">
+<TD VALIGN="TOP" WIDTH="15" ROWSPAN="2"><IMG SRC="/images/top-left.gif" WIDTH="15" HEIGHT="80" ALT=""></TD>
+<TD VALIGN="TOP" WIDTH="55" ROWSPAN="2"><IMG SRC="/images/top-middle.gif" WIDTH="55" HEIGHT="80" ALT=""></TD>
+<TD WIDTH="100%" HEIGHT="60"><H1>Common UNIX Printing System @CUPS_VERSION@@CUPS_REVISION@</H1></TD>
+<TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="15" ROWSPAN="2"><IMG
+SRC="/images/top-right.gif" WIDTH="15" HEIGHT="15" ALT=""></TD>
+</TR>
+<TR CLASS="header"><TD WIDTH="100%" VALIGN="BOTTOM" NOWRAP>
+
+<A CLASS="sel" HREF="/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
+HEIGHT="4" ALIGN="TOP" BORDER="0"
+ALT="">&nbsp;&nbsp;Kodu&nbsp;&nbsp;<IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+&nbsp;<A CLASS="unsel" HREF="/admin/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
+HEIGHT="4" ALIGN="TOP" BORDER="0"
+ALT="">&nbsp;&nbsp;Haldus&nbsp;&nbsp;<IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+&nbsp;<A CLASS="unsel" HREF="/classes/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
+HEIGHT="4" ALIGN="TOP" BORDER="0"
+ALT="">&nbsp;&nbsp;Klassid&nbsp;&nbsp;<IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+&nbsp;<A CLASS="unsel" HREF="/help/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
+HEIGHT="4" ALIGN="TOP" BORDER="0"
+ALT="">&nbsp;&nbsp;Dokumentatsioon/Abi&nbsp;&nbsp;<IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+&nbsp;<A CLASS="unsel" HREF="/jobs/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
+HEIGHT="4" ALIGN="TOP" BORDER="0"
+ALT="">&nbsp;&nbsp;Tööd&nbsp;&nbsp;<IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+&nbsp;<A CLASS="unsel" HREF="/printers/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
+HEIGHT="4" ALIGN="TOP" BORDER="0"
+ALT="">&nbsp;&nbsp;Printerid&nbsp;&nbsp;<IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+</TD></TR>
+<TR CLASS="page">
+<TD WIDTH="15">&nbsp;</TD>
+<TD COLSPAN="2" WIDTH="100%" VALIGN="TOP" CLASS="page">
+
+<H2 CLASS="title">Tere tulemast!</H2>
+
+<P>Käesolevad veebileheküljed võimaldavad Teil jälgida oma printereid ja töid
+ning süsteemi hallata. Klõpsake vajalike ülesannete sooritamiseks mõnele
+ülal paiknevale sakile või all asuvale nupule.</P>
+
+<P>
+<A HREF="/help/"><IMG SRC="/images/button-help.gif" CLASS="button" ALT="Abi"></A>
+<A HREF="/admin?OP=add-class"><IMG SRC="/images/button-add-class.gif" CLASS="button" ALT="Lisa klass"></A>
+<A HREF="/admin?OP=add-printer"><IMG SRC="/images/button-add-printer.gif" CLASS="button" ALT="Lisa printer"></A>
+<A HREF="/classes"><IMG SRC="/images/button-manage-classes.gif" CLASS="button" ALT="Halda klasse"></A>
+<A HREF="/jobs"><IMG SRC="/images/button-manage-jobs.gif" CLASS="button" ALT="Halda töid"></A>
+<A HREF="/printers"><IMG SRC="/images/button-manage-printers.gif" CLASS="button" ALT="Halda printereid"></A>
+<A HREF="/admin"><IMG SRC="/images/button-manage-server.gif" CLASS="button" ALT="Halda serverit"></A>
+</P>
+
+<P><I>Kui Teie käest päritakse kasutajanime ja parooli, sisestage enda
+või administraatori (root) kasutajanimi ja parool.</I></P>
+
+<H2 CLASS="title">CUPS-i info</H2>
+
+<P>
+<IMG SRC="/images/happy.gif" ALIGN="LEFT" WIDTH="196" HEIGHT="144"
+STYLE="padding-right: 10px;" ALT="Happy Computer and Printer">
+
+<A HREF="http://www.easysw.com/"><IMG SRC="/images/esp-logo.gif"
+ALIGN="RIGHT" WIDTH="110" HEIGHT="68" BORDER="0"
+STYLE="padding-left: 10px; padding-bottom: 10px;"
+ALT="Easy Software Products"></A>
+
+CUPS pakub porditavat trükkimiskihti
+UNIX<SUP>&reg;</SUP> põhistele operatsioonisüsteemidele. CUPS-i töötas
+välja ja hooldab <A HREF="http://www.easysw.com">Easy Software
+Products</a>, selle siht on edendada standardseid trükkimislahendusi. CUPS on
+standardne trükkimissüsteem, mida kasutavad MacOS<SUP>&reg;</SUP> X ja
+suurem osa Linux<SUP>&reg;</SUP> distributsioone.</P>
+
+<P>CUPS kasutab <A HREF="http://www.pwg.org/ipp/"
+TARGET="_blank"> Interneti trükkimisprotokolli ("IPP")</A>
+trükitööde ja järjekordade haldamiseks, lisades sellele
+võrguprinterite kasutamise ning PostScript-printerikirjelduste ("PPD")
+põhise trükkimise võimalused trükkimise maksimaalseks hõlbustamiseks.<BR CLEAR="ALL"></P>
+
+<H2 CLASS="title">Printeridraiveritest ja abist</H2>
+
+<P>Printeridraiverite ja muu abi leidmiseks külastage CUPS-i
+ametlikku veebilehekülge:</P>
+
+<PRE>
+    <A HREF="http://www.cups.org/" TARGET="_blank">www.cups.org</A>
+</PRE>
+
+<P>Kommertstoetus ja CUPS-i täiustatud versioon nimetusega <A
+HREF="http://www.easysw.com/printpro/">ESP Print Pro</A> on
+saadaval aadressil:</P>
+
+<PRE>
+    <A HREF="http://www.easysw.com/" TARGET="_blank">www.easysw.com</A>
+</PRE>
+
+</TD>
+<TD WIDTH="15">&nbsp;</TD>
+</TR>
+<TR CLASS="header">
+<TD VALIGN="BOTTOM" WIDTH="15"><IMG SRC="/images/bottom-left.gif"
+WIDTH="15" HEIGHT="15" ALT=""></TD>
+<TD COLSPAN="2" WIDTH="100%" STYLE="padding: 5;">
+
+<P><SMALL>Common UNIX Printing System, CUPS ja CUPS-i logo on
+firma <A HREF="http://www.easysw.com">Easy Software
+Products</A> kaubamärgid. CUPS-i autoriõigus 1997-2006: Easy Software Products,
+kõik õigused kaitstud.</SMALL></P>
+
+</TD>
+
+<TD ALIGN="RIGHT" VALIGN="BOTTOM" WIDTH="15"><IMG SRC="/images/bottom-right.gif"
+WIDTH="15" HEIGHT="15" ALT=""></TD>
+</TR>
+</TABLE>
+</BODY>
+</HTML>
index 42ffa2d1cb9eb2fd8ec4ab8c493bc5a7308e5d75..7466fa32221a0473e16579066e5a1025ab1e690c 100644 (file)
@@ -176,8 +176,16 @@ CUPS 1.1 or higher.</p>
 <h4>Description</h4>
 <p>Add a destination to the list of destinations.
 
 <h4>Description</h4>
 <p>Add a destination to the list of destinations.
 
-Use the cupsSaveDests() function to save the updated list of destinations
-to the user's lpoptions file.</p>
+This function cannot be used to add a new class or printer queue,
+it only adds a new container of saved options for the named
+destination or instance.
+
+If the named destination already exists, the destination list is
+returned unchanged.  Adding a new instance of a destination creates
+a copy of that destination's options.
+
+Use the cupsSaveDests() function to save the updated list of
+destinations to the user's lpoptions file.</p>
 <h4>Syntax</h4>
 <pre>
 int
 <h4>Syntax</h4>
 <pre>
 int
@@ -191,8 +199,8 @@ cupsAddDest(
 <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>
 <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>Name of destination</td></tr>
-<tr><td><tt>instance</tt></td><td>Instance of destination or NULL for none/primary</td></tr>
+<tr><td><tt>name</tt></td><td>Destination name</td></tr>
+<tr><td><tt>instance</tt></td><td>Instance name or NULL for none/primary</td></tr>
 <tr><td><tt>num_dests</tt></td><td>Number of destinations</td></tr>
 <tr><td><tt>dests</tt></td><td>Destinations</td></tr>
 </tbody></table></div>
 <tr><td><tt>num_dests</tt></td><td>Number of destinations</td></tr>
 <tr><td><tt>dests</tt></td><td>Destinations</td></tr>
 </tbody></table></div>
@@ -412,8 +420,8 @@ cupsGetDest(
 <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>
 <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>Name of destination</td></tr>
-<tr><td><tt>instance</tt></td><td>Instance of destination</td></tr>
+<tr><td><tt>name</tt></td><td>Destination name or NULL for the default destination</td></tr>
+<tr><td><tt>instance</tt></td><td>Instance name or NULL</td></tr>
 <tr><td><tt>num_dests</tt></td><td>Number of destinations</td></tr>
 <tr><td><tt>dests</tt></td><td>Destinations</td></tr>
 </tbody></table></div>
 <tr><td><tt>num_dests</tt></td><td>Number of destinations</td></tr>
 <tr><td><tt>dests</tt></td><td>Destinations</td></tr>
 </tbody></table></div>
@@ -427,7 +435,10 @@ cupsGetDest(
 Starting with CUPS 1.2, the returned list of destinations include the
 printer-info, printer-is-accepting-jobs, printer-is-shared,
 printer-make-and-model, printer-state, printer-state-change-time,
 Starting with CUPS 1.2, the returned list of destinations include the
 printer-info, printer-is-accepting-jobs, printer-is-shared,
 printer-make-and-model, printer-state, printer-state-change-time,
-printer-state-reasons, and printer-type attributes as options.</p>
+printer-state-reasons, and printer-type attributes as options.
+
+Use the cupsFreeDests() function to free the destination list and
+the cupsGetDest() function to find a particular destination.</p>
 <h4>Syntax</h4>
 <pre>
 int
 <h4>Syntax</h4>
 <pre>
 int
@@ -452,6 +463,9 @@ printer-info, printer-is-accepting-jobs, printer-is-shared,
 printer-make-and-model, printer-state, printer-state-change-time,
 printer-state-reasons, and printer-type attributes as options.
 
 printer-make-and-model, printer-state, printer-state-change-time,
 printer-state-reasons, and printer-type attributes as options.
 
+Use the cupsFreeDests() function to free the destination list and
+the cupsGetDest() function to find a particular destination.
+
 </p>
 <h4>Syntax</h4>
 <pre>
 </p>
 <h4>Syntax</h4>
 <pre>
@@ -1192,9 +1206,10 @@ cupsSetUser(
 <!-- NEW PAGE -->
 <h3 class='title'><a name='cupsTempFd'>cupsTempFd()</a></h3>
 <h4>Description</h4>
 <!-- NEW PAGE -->
 <h3 class='title'><a name='cupsTempFd'>cupsTempFd()</a></h3>
 <h4>Description</h4>
-<p>Create a temporary file.
+<p>Creates a temporary file.
 
 
-The temporary filename is stored in the filename buffer.</p>
+The temporary filename is returned in the filename buffer.
+The temporary file is opened for reading and writing.</p>
 <h4>Syntax</h4>
 <pre>
 int
 <h4>Syntax</h4>
 <pre>
 int
@@ -1210,13 +1225,13 @@ cupsTempFd(
 <tr><td><tt>len</tt></td><td>Size of buffer</td></tr>
 </tbody></table></div>
 <h4>Returns</h4>
 <tr><td><tt>len</tt></td><td>Size of buffer</td></tr>
 </tbody></table></div>
 <h4>Returns</h4>
-<p>New file descriptor</p>
+<p>New file descriptor or -1 on error</p>
 <!-- NEW PAGE -->
 <h3 class='title'><span class='info'>&nbsp;DEPRECATED&nbsp;</span><a name='cupsTempFile'>cupsTempFile()</a></h3>
 <h4>Description</h4>
 <!-- NEW PAGE -->
 <h3 class='title'><span class='info'>&nbsp;DEPRECATED&nbsp;</span><a name='cupsTempFile'>cupsTempFile()</a></h3>
 <h4>Description</h4>
-<p>Generate a temporary filename.
+<p>Generates a temporary filename.
 
 
-The temporary filename is stored in the filename buffer.
+The temporary filename is returned in the filename buffer.
 This function is deprecated - use cupsTempFd() or cupsTempFile2()
 instead.
 
 This function is deprecated - use cupsTempFd() or cupsTempFile2()
 instead.
 
@@ -1236,13 +1251,14 @@ cupsTempFile(
 <tr><td><tt>len</tt></td><td>Size of buffer</td></tr>
 </tbody></table></div>
 <h4>Returns</h4>
 <tr><td><tt>len</tt></td><td>Size of buffer</td></tr>
 </tbody></table></div>
 <h4>Returns</h4>
-<p>Filename</p>
+<p>Filename or NULL on error</p>
 <!-- NEW PAGE -->
 <h3 class='title'><span class='info'>&nbsp;CUPS 1.2&nbsp;</span><a name='cupsTempFile2'>cupsTempFile2()</a></h3>
 <h4>Description</h4>
 <!-- NEW PAGE -->
 <h3 class='title'><span class='info'>&nbsp;CUPS 1.2&nbsp;</span><a name='cupsTempFile2'>cupsTempFile2()</a></h3>
 <h4>Description</h4>
-<p>Create a temporary CUPS file.
+<p>Creates a temporary CUPS file.
 
 
-The temporary filename is stored in the filename buffer.
+The temporary filename is returned in the filename buffer.
+The temporary file is opened for writing.
 
 </p>
 <h4>Syntax</h4>
 
 </p>
 <h4>Syntax</h4>
index 7a08b335262a478e04f171bf8f175068e6ecf570..43c538560c1a8a1b99912fdc1cf9ee872bc86d3b 100644 (file)
@@ -112,6 +112,7 @@ require CUPS 1.1 or higher.</p>
 <thead><tr><th>Name</th><th>Description</th></tr></thead>
 <tbody>
 <tr><td><tt>HTTP_ENCODE_CHUNKED</tt> </td><td>Data is chunked</td></tr>
 <thead><tr><th>Name</th><th>Description</th></tr></thead>
 <tbody>
 <tr><td><tt>HTTP_ENCODE_CHUNKED</tt> </td><td>Data is chunked</td></tr>
+<tr><td><tt>HTTP_ENCODE_FIELDS</tt> </td><td>Sending HTTP fields</td></tr>
 <tr><td><tt>HTTP_ENCODE_LENGTH</tt> </td><td>Data is sent with Content-Length</td></tr>
 </tbody></table></div>
 <!-- NEW PAGE -->
 <tr><td><tt>HTTP_ENCODE_LENGTH</tt> </td><td>Data is sent with Content-Length</td></tr>
 </tbody></table></div>
 <!-- NEW PAGE -->
@@ -256,7 +257,7 @@ require CUPS 1.1 or higher.</p>
 <tr><td><tt>IPP_DOCUMENT_ACCESS_ERROR</tt> </td><td>client-error-document-access-error</td></tr>
 <tr><td><tt>IPP_DOCUMENT_FORMAT</tt> </td><td>client-error-document-format-not-supported</td></tr>
 <tr><td><tt>IPP_DOCUMENT_FORMAT_ERROR</tt> </td><td>client-error-document-format-error</td></tr>
 <tr><td><tt>IPP_DOCUMENT_ACCESS_ERROR</tt> </td><td>client-error-document-access-error</td></tr>
 <tr><td><tt>IPP_DOCUMENT_FORMAT</tt> </td><td>client-error-document-format-not-supported</td></tr>
 <tr><td><tt>IPP_DOCUMENT_FORMAT_ERROR</tt> </td><td>client-error-document-format-error</td></tr>
-<tr><td><tt>IPP_ERROR_JOB_CANCELLED</tt> </td><td>server-error-job-canceled</td></tr>
+<tr><td><tt>IPP_ERROR_JOB_CANCELED</tt> </td><td>server-error-job-canceled</td></tr>
 <tr><td><tt>IPP_FORBIDDEN</tt> </td><td>client-error-forbidden</td></tr>
 <tr><td><tt>IPP_GONE</tt> </td><td>client-error-gone</td></tr>
 <tr><td><tt>IPP_IGNORED_ALL_NOTIFICATIONS</tt> </td><td>client-error-ignored-all-notifications</td></tr>
 <tr><td><tt>IPP_FORBIDDEN</tt> </td><td>client-error-forbidden</td></tr>
 <tr><td><tt>IPP_GONE</tt> </td><td>client-error-gone</td></tr>
 <tr><td><tt>IPP_IGNORED_ALL_NOTIFICATIONS</tt> </td><td>client-error-ignored-all-notifications</td></tr>
index c8ac57cf81fd05e03017f7a1df8581fb1719bbda..03cc62f62b7af3fb65d2f13821560f89ae2d89d8 100644 (file)
@@ -139,7 +139,10 @@ specifies a CIDR netmask, as shown in Table 1.</P>
 
 <P>The <CODE>@LOCAL</CODE> name will allow access from all local
 interfaces. The <CODE>@IF(name)</CODE> name will allow access
 
 <P>The <CODE>@LOCAL</CODE> name will allow access from all local
 interfaces. The <CODE>@IF(name)</CODE> name will allow access
-from the named interface.</P>
+from the named interface. In both cases, CUPS only allows access
+from the network that the interface(s) are configured for -
+requests  arriving on the interface from a foreign network will
+<em>not</em> be accepted.</P>
 
 <P>The <CODE>Allow</CODE> directive must appear inside a <A
 HREF="#Location"><CODE>Location</CODE></A> or <A
 
 <P>The <CODE>Allow</CODE> directive must appear inside a <A
 HREF="#Location"><CODE>Location</CODE></A> or <A
@@ -353,7 +356,10 @@ or bit count.</P>
 
 <P>The <CODE>@LOCAL</CODE> name will allow browse data from all
 local interfaces. The <CODE>@IF(name)</CODE> name will allow
 
 <P>The <CODE>@LOCAL</CODE> name will allow browse data from all
 local interfaces. The <CODE>@IF(name)</CODE> name will allow
-browse data from the named interface.</P>
+browse data from the named interface. In both cases, CUPS only
+allows data from the network that the interface(s) are configured
+for - data arriving on the interface from a foreign network will
+<em>not</em> be allowed.</P>
 
 
 <H2 CLASS="title"><A NAME="BrowseDeny">BrowseDeny</A></H2>
 
 
 <H2 CLASS="title"><A NAME="BrowseDeny">BrowseDeny</A></H2>
@@ -388,7 +394,10 @@ or bit count.</P>
 
 <P>The <CODE>@LOCAL</CODE> name will block browse data from all
 local interfaces. The <CODE>@IF(name)</CODE> name will block
 
 <P>The <CODE>@LOCAL</CODE> name will block browse data from all
 local interfaces. The <CODE>@IF(name)</CODE> name will block
-browse data from the named interface.</P>
+browse data from the named interface. In both cases, CUPS only
+blocks data from the network that the interface(s) are configured
+for - data arriving on the interface from a foreign network will
+<em>not</em> be blocked.</P>
 
 
 <H2 CLASS="title"><A NAME="BrowseInterval">BrowseInterval</A></H2>
 
 
 <H2 CLASS="title"><A NAME="BrowseInterval">BrowseInterval</A></H2>
@@ -981,7 +990,10 @@ specifies a CIDR netmask, a shown in <A HREF="TABLE1">Table
 
 <P>The <CODE>@LOCAL</CODE> name will deny access from all local
 interfaces. The <CODE>@IF(name)</CODE> name will deny access from
 
 <P>The <CODE>@LOCAL</CODE> name will deny access from all local
 interfaces. The <CODE>@IF(name)</CODE> name will deny access from
-the named interface.</P>
+the named interface. In both cases, CUPS only denies access from
+the network that the interface(s) are configured for - requests
+arriving on the interface from a foreign network will
+<em>not</em> be denied.</P>
 
 <P>The <CODE>Deny</CODE> directive must appear inside a <A
 HREF="#Location"><CODE>Location</CODE></A> or <A
 
 <P>The <CODE>Deny</CODE> directive must appear inside a <A
 HREF="#Location"><CODE>Location</CODE></A> or <A
index d6f8f0879e70bb9a4cb3fe5a3b2bae3bf8aaa4c2..621fbcc1a93750f6b752aeab1c0ff49bd5a1be72 100644 (file)
@@ -8,7 +8,7 @@
 </head>
 <body>
 <!--
 </head>
 <body>
 <!--
-  "$Id: spec-ppd.html 5496 2006-05-05 19:26:23Z mike $"
+  "$Id: spec-ppd.html 6025 2006-10-11 14:59:20Z mike $"
 
   CUPS PPD extensions specification for the Common UNIX Printing System (CUPS).
 
 
   CUPS PPD extensions specification for the Common UNIX Printing System (CUPS).
 
@@ -106,6 +106,21 @@ default value is <code>true</code>.</p>
 
 <p>Also see the related <tt>cupsFlipDuplex</tt> attribute.</p>
 
 
 <p>Also see the related <tt>cupsFlipDuplex</tt> attribute.</p>
 
+<h3>cupsEvenDuplex</h3>
+
+<p class='summary'>*cupsEvenDuplex: boolean</p>
+
+<p>This boolean attribute notifies the RIP filters that the
+destination printer requires an even number of pages when 2-sided
+printing is selected. The default value is <code>false</code>.</p>
+
+<p>Example:</p>
+
+<pre class='command'>
+<em>*% Always send an even number of pages when duplexing</em> 
+*cupsEvenDuplex: true
+</pre>
+
 <h3>cupsFilter</h3>
 
 <p class='summary'>*cupsFilter: "source/type cost program"</p>
 <h3>cupsFilter</h3>
 
 <p class='summary'>*cupsFilter: "source/type cost program"</p>
@@ -143,7 +158,8 @@ page. The default value is <code>false</code>.</p>
 *cupsFlipDuplex: true
 </pre>
 
 *cupsFlipDuplex: true
 </pre>
 
-<p>Also see the related <tt>APDuplexRequiresFlippedMargins</tt> attribute.</p>
+<p>Also see the related <tt>APDuplexRequiresFlippedMargins</tt>
+attribute.</p>
 
 <h3>cupsIPPReason</h3>
 
 
 <h3>cupsIPPReason</h3>
 
index 9e3c391e00d7d906ac207501bc0b6a5800de5968..c60e0a5175148632b092c3fb43a97dea803d1894 100644 (file)
@@ -1,9 +1,9 @@
 /*
 /*
- * "$Id: common.c 4494 2005-02-18 02:18:11Z mike $"
+ * "$Id: common.c 6003 2006-10-02 16:26:04Z mike $"
  *
  *   Common filter routines for the Common UNIX Printing System (CUPS).
  *
  *
  *   Common filter routines for the Common UNIX Printing System (CUPS).
  *
- *   Copyright 1997-2005 by Easy Software Products.
+ *   Copyright 1997-2006 by Easy Software Products.
  *
  *   These coded instructions, statements, and computer programs are the
  *   property of Easy Software Products and are protected by Federal
  *
  *   These coded instructions, statements, and computer programs are the
  *   property of Easy Software Products and are protected by Federal
@@ -28,6 +28,7 @@
  *   SetCommonOptions() - Set common filter options for media size,
  *                        etc.
  *   UpdatePageVars()   - Update the page variables for the orientation.
  *   SetCommonOptions() - Set common filter options for media size,
  *                        etc.
  *   UpdatePageVars()   - Update the page variables for the orientation.
+ *   WriteComment()     - Write a DSC comment.
  *   WriteCommon()      - Write common procedures...
  *   WriteLabelProlog() - Write the prolog with the classification
  *                        and page label.
  *   WriteCommon()      - Write common procedures...
  *   WriteLabelProlog() - Write the prolog with the classification
  *                        and page label.
  * Globals...
  */
 
  * Globals...
  */
 
-int    Orientation = 0,        /* 0 = portrait, 1 = landscape, etc. */
-       Duplex = 0,             /* Duplexed? */
-       LanguageLevel = 1,      /* Language level of printer */
-       ColorDevice = 1;        /* Do color text? */
-float  PageLeft = 18.0f,       /* Left margin */
-       PageRight = 594.0f,     /* Right margin */
-       PageBottom = 36.0f,     /* Bottom margin */
-       PageTop = 756.0f,       /* Top margin */
-       PageWidth = 612.0f,     /* Total page width */
-       PageLength = 792.0f;    /* Total page length */
+int    Orientation = 0,                /* 0 = portrait, 1 = landscape, etc. */
+       Duplex = 0,                     /* Duplexed? */
+       LanguageLevel = 1,              /* Language level of printer */
+       ColorDevice = 1;                /* Do color text? */
+float  PageLeft = 18.0f,               /* Left margin */
+       PageRight = 594.0f,             /* Right margin */
+       PageBottom = 36.0f,             /* Bottom margin */
+       PageTop = 756.0f,               /* Top margin */
+       PageWidth = 612.0f,             /* Total page width */
+       PageLength = 792.0f;            /* Total page length */
 
 
 /*
  * 'SetCommonOptions()' - Set common filter options for media size, etc.
  */
 
 
 
 /*
  * 'SetCommonOptions()' - Set common filter options for media size, etc.
  */
 
-ppd_file_t *                                   /* O - PPD file */
-SetCommonOptions(int           num_options,    /* I - Number of options */
-                 cups_option_t *options,       /* I - Options */
-                int           change_size)     /* I - Change page size? */
+ppd_file_t *                           /* O - PPD file */
+SetCommonOptions(
+    int           num_options,         /* I - Number of options */
+    cups_option_t *options,            /* I - Options */
+    int           change_size)         /* I - Change page size? */
 {
 {
-  ppd_file_t   *ppd;           /* PPD file */
-  ppd_size_t   *pagesize;      /* Current page size */
-  const char   *val;           /* Option value */
+  ppd_file_t   *ppd;                   /* PPD file */
+  ppd_size_t   *pagesize;              /* Current page size */
+  const char   *val;                   /* Option value */
 
 
 #ifdef LC_TIME
 
 
 #ifdef LC_TIME
@@ -227,7 +229,7 @@ SetCommonOptions(int           num_options, /* I - Number of options */
 void
 UpdatePageVars(void)
 {
 void
 UpdatePageVars(void)
 {
-  float                temp;           /* Swapping variable */
+  float                temp;                   /* Swapping variable */
 
 
   switch (Orientation & 3)
 
 
   switch (Orientation & 3)
@@ -467,5 +469,76 @@ WriteLabels(int orient)    /* I - Orientation of the page */
 
 
 /*
 
 
 /*
- * End of "$Id: common.c 4494 2005-02-18 02:18:11Z mike $".
+ * 'WriteTextComment()' - Write a DSC text comment.
+ */
+
+void
+WriteTextComment(const char *name,     /* I - Comment name ("Title", etc.) */
+                 const char *value)    /* I - Comment value */
+{
+  int  len;                            /* Current line length */
+
+
+ /*
+  * DSC comments are of the form:
+  *
+  *   %%name: value
+  *
+  * The name and value must be limited to 7-bit ASCII for most printers,
+  * so we escape all non-ASCII and ASCII control characters as described
+  * in the Adobe Document Structuring Conventions specification.
+  */
+
+  printf("%%%%%s: (", name);
+  len = 5 + strlen(name);
+
+  while (*value)
+  {
+    if (*value < ' ' || *value >= 127)
+    {
+     /*
+      * Escape this character value...
+      */
+
+      if (len >= 251)                  /* Keep line < 254 chars */
+        break;
+
+      printf("\\%03o", *value & 255);
+      len += 4;
+    }
+    else if (*value == '\\')
+    {
+     /*
+      * Escape the backslash...
+      */
+
+      if (len >= 253)                  /* Keep line < 254 chars */
+        break;
+
+      putchar('\\');
+      putchar('\\');
+      len += 2;
+    }
+    else
+    {
+     /*
+      * Put this character literally...
+      */
+
+      if (len >= 254)                  /* Keep line < 254 chars */
+        break;
+
+      putchar(*value);
+      len ++;
+    }
+
+    value ++;
+  }
+
+  puts(")");
+}
+
+
+/*
+ * End of "$Id: common.c 6003 2006-10-02 16:26:04Z mike $".
  */
  */
index 1c40b4765cfbd30c2520f798ca33a98463040493..4ccf6b3a47bf6ddc30c7845a107876e633b155d4 100644 (file)
@@ -1,9 +1,9 @@
 /*
 /*
- * "$Id: common.h 4493 2005-02-18 02:09:53Z mike $"
+ * "$Id: common.h 6003 2006-10-02 16:26:04Z mike $"
  *
  *   Common filter definitions for the Common UNIX Printing System (CUPS).
  *
  *
  *   Common filter definitions for the Common UNIX Printing System (CUPS).
  *
- *   Copyright 1997-2005 by Easy Software Products.
+ *   Copyright 1997-2006 by Easy Software Products.
  *
  *   These coded instructions, statements, and computer programs are the
  *   property of Easy Software Products and are protected by Federal
  *
  *   These coded instructions, statements, and computer programs are the
  *   property of Easy Software Products and are protected by Federal
@@ -76,6 +76,7 @@ extern void   WriteCommon(void);
 extern void    WriteLabelProlog(const char *label, float bottom,
                                 float top, float width);
 extern void    WriteLabels(int orient);
 extern void    WriteLabelProlog(const char *label, float bottom,
                                 float top, float width);
 extern void    WriteLabels(int orient);
+extern void    WriteTextComment(const char *name, const char *value);
 
 
 /*
 
 
 /*
@@ -88,5 +89,5 @@ extern void   WriteLabels(int orient);
 
 
 /*
 
 
 /*
- * End of "$Id: common.h 4493 2005-02-18 02:09:53Z mike $".
+ * End of "$Id: common.h 6003 2006-10-02 16:26:04Z mike $".
  */
  */
index 5cf0ad3151fa66c29049178f07a98162044545dd..bfd079f87e09f2b7ead6eeba9b7adf4cb38f9ee1 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: hpgl-prolog.c 4680 2005-09-21 09:28:39Z mike $"
+ * "$Id: hpgl-prolog.c 6003 2006-10-02 16:26:04Z mike $"
  *
  *   HP-GL/2 prolog routines for for the Common UNIX Printing System (CUPS).
  *
  *
  *   HP-GL/2 prolog routines for for the Common UNIX Printing System (CUPS).
  *
@@ -70,8 +70,8 @@ OutputProlog(char  *title,    /* I - Job title */
   puts("%%Creator: hpgltops/" CUPS_SVERSION);
   strftime(line, sizeof(line), "%c", curtm);
   printf("%%%%CreationDate: %s\n", line);
   puts("%%Creator: hpgltops/" CUPS_SVERSION);
   strftime(line, sizeof(line), "%c", curtm);
   printf("%%%%CreationDate: %s\n", line);
-  printf("%%%%Title: %s\n", title);
-  printf("%%%%For: %s\n", user);
+  WriteTextComment("Title", title);
+  WriteTextComment("For", user);
   printf("%%cupsRotation: %d\n", (Orientation & 3) * 90);
   puts("%%EndComments");
   puts("%%BeginProlog");
   printf("%%cupsRotation: %d\n", (Orientation & 3) * 90);
   puts("%%EndComments");
   puts("%%BeginProlog");
@@ -373,5 +373,5 @@ Outputf(const char *format, /* I - Printf-style string */
 
 
 /*
 
 
 /*
- * End of "$Id: hpgl-prolog.c 4680 2005-09-21 09:28:39Z mike $".
+ * End of "$Id: hpgl-prolog.c 6003 2006-10-02 16:26:04Z mike $".
  */
  */
index 4f512fc0dc90afb5684d6409e3e51159a3efcc12..666a91453d088ca8caddd4c93d7def0639e2fbf9 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: imagetops.c 5379 2006-04-07 13:48:37Z mike $"
+ * "$Id: imagetops.c 6003 2006-10-02 16:26:04Z mike $"
  *
  *   Image file to PostScript filter for the Common UNIX Printing System (CUPS).
  *
  *
  *   Image file to PostScript filter for the Common UNIX Printing System (CUPS).
  *
@@ -609,8 +609,8 @@ main(int  argc,                             /* I - Number of command-line arguments */
   puts("%%Creator: imagetops/" CUPS_SVERSION);
   strftime(curdate, sizeof(curdate), "%c", curtm);
   printf("%%%%CreationDate: %s\n", curdate);
   puts("%%Creator: imagetops/" CUPS_SVERSION);
   strftime(curdate, sizeof(curdate), "%c", curtm);
   printf("%%%%CreationDate: %s\n", curdate);
-  printf("%%%%Title: %s\n", argv[3]);
-  printf("%%%%For: %s\n", argv[2]);
+  WriteTextComment("Title", argv[3]);
+  WriteTextComment("For", argv[2]);
   if (Orientation & 1)
     puts("%%Orientation: Landscape");
   else
   if (Orientation & 1)
     puts("%%Orientation: Landscape");
   else
@@ -1063,5 +1063,5 @@ ps_ascii85(cups_ib_t *data,               /* I - Data to print */
 
 
 /*
 
 
 /*
- * End of "$Id: imagetops.c 5379 2006-04-07 13:48:37Z mike $".
+ * End of "$Id: imagetops.c 6003 2006-10-02 16:26:04Z mike $".
  */
  */
index 6cfca815d50f55eb7ced661bd44646948183be79..7126c5e0eee195e3dcdf03d31e7dbd407fbc86df 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: pstops.c 5886 2006-08-24 19:53:17Z mike $"
+ * "$Id: pstops.c 6025 2006-10-11 14:59:20Z mike $"
  *
  *   PostScript filter for the Common UNIX Printing System (CUPS).
  *
  *
  *   PostScript filter for the Common UNIX Printing System (CUPS).
  *
@@ -163,8 +163,8 @@ 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 size_t          copy_comments(cups_file_t *fp, pstops_doc_t *doc,
 static void            copy_bytes(cups_file_t *fp, off_t offset,
                                   size_t length);
 static size_t          copy_comments(cups_file_t *fp, pstops_doc_t *doc,
-                                     char *line, size_t linelen,
-                                     size_t linesize);
+                                     ppd_file_t *ppd, 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_dsc(cups_file_t *fp, pstops_doc_t *doc,
                                 ppd_file_t *ppd, char *line, size_t linelen,
                                 size_t linesize);
@@ -542,6 +542,7 @@ copy_bytes(cups_file_t *fp,         /* I - File to read from */
 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 */
 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 */
+             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 */
               char         *line,      /* I - Line buffer */
              size_t       linelen,     /* I - Length of initial line */
              size_t       linesize)    /* I - Size of line buffer */
@@ -589,10 +590,53 @@ copy_comments(cups_file_t  *fp,           /* I - File to read from */
 
     if (!strncmp(line, "%%Pages:", 8))
     {
 
     if (!strncmp(line, "%%Pages:", 8))
     {
+      int      pages;                  /* Number of pages */
+
+
       if (saw_pages)
         fputs("ERROR: Duplicate %%Pages: comment seen!\n", stderr);
 
       saw_pages = 1;
       if (saw_pages)
         fputs("ERROR: Duplicate %%Pages: comment seen!\n", stderr);
 
       saw_pages = 1;
+
+      if (Duplex && (pages = atoi(line + 8)) > 0 && pages <= doc->number_up)
+      {
+       /*
+        * Since we will only be printing on a single page, disable duplexing.
+       */
+
+       Duplex           = 0;
+       doc->slow_duplex = 0;
+
+       if (cupsGetOption("sides", doc->num_options, doc->options))
+         doc->num_options = cupsAddOption("sides", "one-sided",
+                                          doc->num_options, &(doc->options));
+
+       if (cupsGetOption("Duplex", doc->num_options, doc->options))
+         doc->num_options = cupsAddOption("Duplex", "None",
+                                          doc->num_options, &(doc->options));
+
+       if (cupsGetOption("EFDuplex", doc->num_options, doc->options))
+         doc->num_options = cupsAddOption("EFDuplex", "None",
+                                          doc->num_options, &(doc->options));
+
+       if (cupsGetOption("EFDuplexing", doc->num_options, doc->options))
+         doc->num_options = cupsAddOption("EFDuplexing", "False",
+                                          doc->num_options, &(doc->options));
+
+       if (cupsGetOption("KD03Duplex", doc->num_options, doc->options))
+         doc->num_options = cupsAddOption("KD03Duplex", "None",
+                                          doc->num_options, &(doc->options));
+
+       if (cupsGetOption("JCLDuplex", doc->num_options, doc->options))
+         doc->num_options = cupsAddOption("JCLDuplex", "None",
+                                          doc->num_options, &(doc->options));
+
+       ppdMarkOption(ppd, "Duplex", "None");
+       ppdMarkOption(ppd, "EFDuplex", "None");
+       ppdMarkOption(ppd, "EFDuplexing", "False");
+       ppdMarkOption(ppd, "KD03Duplex", "None");
+       ppdMarkOption(ppd, "JCLDuplex", "None");
+      }
     }
     else if (!strncmp(line, "%%BoundingBox:", 14))
     {
     }
     else if (!strncmp(line, "%%BoundingBox:", 14))
     {
@@ -666,10 +710,10 @@ copy_comments(cups_file_t  *fp,           /* I - File to read from */
     fputs("ERROR: No %%Pages: comment in header!\n", stderr);
 
   if (!saw_for)
     fputs("ERROR: No %%Pages: comment in header!\n", stderr);
 
   if (!saw_for)
-    printf("%%%%For: %s\n", doc->user);
+    WriteTextComment("For", doc->user);
 
   if (!saw_title)
 
   if (!saw_title)
-    printf("%%%%Title: %s\n", doc->title);
+    WriteTextComment("Title", doc->title);
 
   if (doc->copies != 1 && (!doc->collate || !doc->slow_collate))
   {
 
   if (doc->copies != 1 && (!doc->collate || !doc->slow_collate))
   {
@@ -745,7 +789,7 @@ copy_dsc(cups_file_t  *fp,          /* I - File to read from */
   */
 
   fprintf(stderr, "DEBUG: Before copy_comments - %s", line);
   */
 
   fprintf(stderr, "DEBUG: Before copy_comments - %s", line);
-  linelen = copy_comments(fp, doc, line, linelen, linesize);
+  linelen = copy_comments(fp, doc, ppd, line, linelen, linesize);
 
  /*
   * Now find the prolog section, if any...
 
  /*
   * Now find the prolog section, if any...
@@ -860,6 +904,33 @@ copy_dsc(cups_file_t  *fp,         /* I - File to read from */
 
     for (copy = !doc->slow_order; copy < doc->copies; copy ++)
     {
 
     for (copy = !doc->slow_order; copy < doc->copies; copy ++)
     {
+     /*
+      * Send end-of-job stuff followed by any start-of-job stuff required
+      * for the JCL options...
+      */
+
+      if (!doc->saw_eof)
+       puts("%%EOF");
+
+      if (doc->emit_jcl)
+      {
+       if (ppd && ppd->jcl_end)
+         ppdEmitJCLEnd(ppd, stdout);
+       else
+         putchar(0x04);
+
+        ppdEmitJCL(ppd, stdout, doc->job_id, doc->user, doc->title);
+      }
+
+      puts("%!PS-Adobe-3.0");
+      puts("%%Pages: (atend)");
+      puts("%%BoundingBox: (atend)");
+      puts("%%EndComments");
+
+     /*
+      * Then copy all of the pages...
+      */
+
       pageinfo = doc->slow_order ? (pstops_page_t *)cupsArrayLast(doc->pages) :
                                    (pstops_page_t *)cupsArrayFirst(doc->pages);
 
       pageinfo = doc->slow_order ? (pstops_page_t *)cupsArrayLast(doc->pages) :
                                    (pstops_page_t *)cupsArrayFirst(doc->pages);
 
@@ -946,8 +1017,8 @@ copy_non_dsc(cups_file_t  *fp,             /* I - File to read from */
   else
     puts("%%Pages: 1");
 
   else
     puts("%%Pages: 1");
 
-  printf("%%%%For: %s\n", doc->user);
-  printf("%%%%Title: %s\n", doc->title);
+  WriteTextComment("For", doc->user);
+  WriteTextComment("Title", doc->title);
 
   if (doc->copies != 1 && (!doc->collate || !doc->slow_collate))
   {
 
   if (doc->copies != 1 && (!doc->collate || !doc->slow_collate))
   {
@@ -1868,7 +1939,7 @@ static void
 end_nup(pstops_doc_t *doc,             /* I - Document information */
         int          number)           /* I - Page number */
 {
 end_nup(pstops_doc_t *doc,             /* I - Document information */
         int          number)           /* I - Page number */
 {
-  if (doc->mirror || Orientation || doc->number_up > 1)
+  if (doc->number_up > 1)
     doc_puts(doc, "userdict/ESPsave get restore\n");
 
   switch (doc->number_up)
     doc_puts(doc, "userdict/ESPsave get restore\n");
 
   switch (doc->number_up)
@@ -2407,7 +2478,7 @@ set_pstops_options(
       * turn the hardware collate option off...
       */
 
       * turn the hardware collate option off...
       */
 
-      if ((option = ppdFindOption(ppd, "Option")) != NULL &&
+      if ((option = ppdFindOption(ppd, "Collate")) != NULL &&
           !option->conflicted)
        doc->slow_collate = 0;
       else
           !option->conflicted)
        doc->slow_collate = 0;
       else
@@ -2422,7 +2493,10 @@ set_pstops_options(
   else
     doc->slow_order = 0;
 
   else
     doc->slow_order = 0;
 
-  if ((doc->slow_collate || doc->slow_order) && Duplex)
+  if (Duplex &&
+       (doc->slow_collate || doc->slow_order ||
+        ((attr = ppdFindAttr(ppd, "cupsEvenDuplex", NULL)) != NULL &&
+        attr->value && !strcasecmp(attr->value, "true"))))
     doc->slow_duplex = 1;
   else
     doc->slow_duplex = 0;
     doc->slow_duplex = 1;
   else
     doc->slow_duplex = 0;
@@ -2543,7 +2617,7 @@ start_nup(pstops_doc_t *doc,              /* I - Document information */
                bboxl;                  /* BoundingBox height */
 
 
                bboxl;                  /* BoundingBox height */
 
 
-  if (doc->mirror || Orientation || doc->number_up > 1)
+  if (doc->number_up > 1)
     doc_puts(doc, "userdict/ESPsave save put\n");
 
   if (doc->mirror)
     doc_puts(doc, "userdict/ESPsave save put\n");
 
   if (doc->mirror)
@@ -2994,5 +3068,5 @@ write_labels(pstops_doc_t *doc,           /* I - Document information */
 
 
 /*
 
 
 /*
- * End of "$Id: pstops.c 5886 2006-08-24 19:53:17Z mike $".
+ * End of "$Id: pstops.c 6025 2006-10-11 14:59:20Z mike $".
  */
  */
index 879672c9557c7543e5b16c1106b2656898252905..80c58014d83684b4720a3f511ed7de8c08a08e84 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: texttops.c 4680 2005-09-21 09:28:39Z mike $"
+ * "$Id: texttops.c 6003 2006-10-02 16:26:04Z mike $"
  *
  *   Text to PostScript filter for the Common UNIX Printing System (CUPS).
  *
  *
  *   Text to PostScript filter for the Common UNIX Printing System (CUPS).
  *
@@ -208,8 +208,8 @@ WriteProlog(const char *title,              /* I - Title of job */
   printf("%%cupsRotation: %d\n", (Orientation & 3) * 90);
   puts("%%Creator: texttops/" CUPS_SVERSION);
   printf("%%%%CreationDate: %s\n", curdate);
   printf("%%cupsRotation: %d\n", (Orientation & 3) * 90);
   puts("%%Creator: texttops/" CUPS_SVERSION);
   printf("%%%%CreationDate: %s\n", curdate);
-  printf("%%%%Title: %s\n", title);
-  printf("%%%%For: %s\n", user);
+  WriteTextComment("Title", title);
+  WriteTextComment("For", user);
   puts("%%Pages: (atend)");
 
  /*
   puts("%%Pages: (atend)");
 
  /*
@@ -1307,5 +1307,5 @@ write_text(const char *s) /* I - String to write */
 
 
 /*
 
 
 /*
- * End of "$Id: texttops.c 4680 2005-09-21 09:28:39Z mike $".
+ * End of "$Id: texttops.c 6003 2006-10-02 16:26:04Z mike $".
  */
  */
index 6b1cefcb58385d0b4e1e18d41c67eb27f7ca60ef..d2bff379332b24eb5689c16f204ea34fc19101a0 100644 (file)
@@ -76,7 +76,7 @@ msgid "Auto"
 msgstr "Automatisch"
 
 msgid "Enter your username and password or the root username and password to access this page."
 msgstr "Automatisch"
 
 msgid "Enter your username and password or the root username and password to access this page."
-msgstr "Für Zugang Benutzername und Passwort (oder Benutzername und Password für root) eingeben."
+msgstr "Für Zugang Benutzername und Passwort (oder Benutzername und Passwort für root) eingeben."
 
 msgid "You must use a https: URL to access this page."
 msgstr "Eine https:-URL ist für den Zugriff erforderlich."
 
 msgid "You must use a https: URL to access this page."
 msgstr "Eine https:-URL ist für den Zugriff erforderlich."
@@ -401,7 +401,7 @@ msgid "status\t\tshow status of daemon and queue\n"
 msgstr "status\t\tzeigt den Status von Diensten und Warteschlangen\n"
 
 msgid "?Invalid help command unknown\n"
 msgstr "status\t\tzeigt den Status von Diensten und Warteschlangen\n"
 
 msgid "?Invalid help command unknown\n"
-msgstr "?Ungültig Hilfebefehl nicht bekannt\n"
+msgstr "?Ungültiger Hilfebefehl nicht bekannt\n"
 
 #, c-format
 msgid "\tprinter is on device '%s' speed -1\n"
 
 #, c-format
 msgid "\tprinter is on device '%s' speed -1\n"
@@ -1884,7 +1884,7 @@ msgid "Unable to add printer:"
 msgstr "Kann Drucker nicht hinzufügen:"
 
 msgid "Set Printer Options"
 msgstr "Kann Drucker nicht hinzufügen:"
 
 msgid "Set Printer Options"
-msgstr "Druckereinstellugen setzen"
+msgstr "Druckereinstellungen setzen"
 
 msgid "Missing form variable!"
 msgstr "Vermisse Formularvariable!"
 
 msgid "Missing form variable!"
 msgstr "Vermisse Formularvariable!"
diff --git a/locale/cups_et.po b/locale/cups_et.po
new file mode 100644 (file)
index 0000000..1a847e6
--- /dev/null
@@ -0,0 +1,2826 @@
+#
+# "$Id$"
+#
+#   Message catalog template for the Common UNIX Printing System (CUPS).
+#
+#   Copyright 2005-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
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: CUPS 1.2\n"
+"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
+"POT-Creation-Date: 2006-05-21 10:07-0400\n"
+"PO-Revision-Date: 2006-09-93 01:41+0200\n"
+"Last-Translator: Marek Laane <bald@starman.ee>\n"
+"Language-Team: Estonian <et@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Options Installed"
+msgstr "Paigaldatud valikud"
+
+msgid "Class"
+msgstr "Klass"
+
+msgid "Printer"
+msgstr "Printer"
+
+msgid "Extra"
+msgstr "Ekstra"
+
+msgid "General"
+msgstr "Üldine"
+
+msgid "Media Size"
+msgstr "Türkimaterjali suurus"
+
+msgid "Media Type"
+msgstr "Trükimaterjali tüüp"
+
+msgid "Media Source"
+msgstr "Trükimaterjali allikas"
+
+msgid "Output Mode"
+msgstr "Väljundirežiim"
+
+msgid "Resolution"
+msgstr "Lahutus"
+
+msgid "Variable"
+msgstr "Muutuv"
+
+msgid "Yes"
+msgstr "Jah"
+
+msgid "No"
+msgstr "i"
+
+msgid "Auto"
+msgstr "Automaatne"
+
+msgid "Enter your username and password or the root username and password to access this page."
+msgstr "Selle lehekülje avamiseks andke enda või administraatori (root) kasutajanimi ja parool."
+
+msgid "You must use a https: URL to access this page."
+msgstr "Selle lehekülje avamiseks tuleb kasutada https: URL-i."
+
+#, c-format
+msgid "Bad request version number %d.%d!"
+msgstr "Vigane soovi versiooninumber %d.%d!"
+
+msgid "No attributes in request!"
+msgstr "Soovis puuduvad atribuudid!"
+
+#, c-format
+msgid "Attribute groups are out of order (%x < %x)!"
+msgstr "Atribuudigrupid pole õiges järjekorras (%x < %x)!"
+
+msgid "Missing required attributes!"
+msgstr "Nõutud atribuudid puuduvad!"
+
+#, c-format
+msgid "%s not supported!"
+msgstr "%s pole toetatud!"
+
+msgid "The printer or class was not found."
+msgstr "Printerit või klassi ei leitud."
+
+msgid "The printer-uri must be of the form \"ipp://HOSTNAME/classes/CLASSNAME\"."
+msgstr "printer-uri peab olema kujul \"ipp://MASINANIMI/classes/KLASSINIMI\"."
+
+#, c-format
+msgid "The printer-uri \"%s\" contains invalid characters."
+msgstr "printer-uri \"%s\" sisaldab vigaseid märke."
+
+#, c-format
+msgid "A printer named \"%s\" already exists!"
+msgstr "Printer nimega \"%s\" on juba olemas!"
+
+#, c-format
+msgid "Attempt to set %s printer-state to bad value %d!"
+msgstr "Katse määrata %s printer-state vigase väärtusega %d!"
+
+#, c-format
+msgid "add_class: Unknown printer-op-policy \"%s\"."
+msgstr "add_class: tundmatu printer-op-policy \"%s\"."
+
+#, c-format
+msgid "add_class: Unknown printer-error-policy \"%s\"."
+msgstr "add_class: tundmatu printer-error-policy \"%s\"."
+
+msgid "Unable to allocate memory for file types!"
+msgstr "Failitüüpidele ei õnnestu mälu eraldada!"
+
+#, c-format
+msgid "Character set \"%s\" not supported!"
+msgstr "Märgistik \"%s\" pole toetatud!"
+
+#, c-format
+msgid "Language \"%s\" not supported!"
+msgstr "Keel \"%s\" pole toetatud!"
+
+#, c-format
+msgid "The notify-user-data value is too large (%d > 63 octets)!"
+msgstr "notify-user-data väärtus on liiga suur (%d > 63 oktetti)!"
+
+msgid "The notify-lease-duration attribute cannot be used with job subscriptions."
+msgstr "notify-lease-duration atribuuti ei saa kasutada töötellimuste korral."
+
+msgid "The printer-uri must be of the form \"ipp://HOSTNAME/printers/PRINTERNAME\"."
+msgstr "printer-uri peab olema kujul \"ipp://MASINANIMI/printers/PRINTERINIMI\"."
+
+#, c-format
+msgid "A class named \"%s\" already exists!"
+msgstr "Klass nimega \"%s\" on juba olemas!"
+
+#, c-format
+msgid "File device URIs have been disabled! To enable, see the FileDevice directive in \"%s/cupsd.conf\"."
+msgstr ""
+"Failiseadme URI-d on keelatud! Nende lubamiseks vaadake FileDevice direktiivi failis "
+"\"%s/cupsd.conf\"."
+
+#, c-format
+msgid "Bad device-uri \"%s\"!"
+msgstr "Vigane device-uri \"%s\"!"
+
+#, c-format
+msgid "Bad port-monitor \"%s\"!"
+msgstr "Vigane port-monitor \"%s\"!"
+
+#, c-format
+msgid "Bad printer-state value %d!"
+msgstr "Vigane printer-state väärtus %d!"
+
+#, c-format
+msgid "Unknown printer-op-policy \"%s\"."
+msgstr "Tundmatu printer-op-policy \"%s\"."
+
+#, c-format
+msgid "Unknown printer-error-policy \"%s\"."
+msgstr "Tundmatu printer-error-policy  \"%s\"."
+
+#, c-format
+msgid "Unable to copy interface script - %s!"
+msgstr "Liideseskripti kopeerimine ebaõnnestus - %s!"
+
+#, c-format
+msgid "Unable to copy PPD file - %s!"
+msgstr "PPD-faili kopeerimine ebaõnnestus - %s!"
+
+msgid "Unable to copy PPD file!"
+msgstr "PPD-faili kopeerimine ebaõnnestus!"
+
+msgid "Got a printer-uri attribute but no job-id!"
+msgstr "Saadi printer-uri atribuut, aga mitte job-id!"
+
+#, c-format
+msgid "Bad job-uri attribute \"%s\"!"
+msgstr "Vigane job-uri atribuut \"%s\"!"
+
+#, c-format
+msgid "Job #%d doesn't exist!"
+msgstr "Tööd nr %d ei ole olemas!"
+
+#, c-format
+msgid "Job #%d is not held for authentication!"
+msgstr "Tööd nr %d ei hoita autentimiseks!"
+
+#, c-format
+msgid "You are not authorized to authenticate job #%d owned by \"%s\"!"
+msgstr "Teil pole õigust autentida tööd nr %d, mille omanik on \"%s\"!"
+
+msgid "The printer-uri attribute is required!"
+msgstr "Vajalik on printer-uri atribuut!"
+
+msgid "Missing requesting-user-name attribute!"
+msgstr "Puudub requesting-user-name atribuut!"
+
+#, c-format
+msgid "The printer-uri \"%s\" is not valid."
+msgstr "printer-uri \"%s\" ei ole korrektne."
+
+#, c-format
+msgid "No active jobs on %s!"
+msgstr "%s: pole ühtegi aktiivset tööd!"
+
+#, c-format
+msgid "You are not authorized to delete job #%d owned by \"%s\"!"
+msgstr "Teil pole õigust kustutada tööd nr %d, mille omanik on \"%s\"!"
+
+#, c-format
+msgid "Job #%d is already %s - can't cancel."
+msgstr "Töö nr %d on juba %s - ei saa katkestada."
+
+msgid "The printer or class is not shared!"
+msgstr "Printer või klass pole ühiskasutuses!"
+
+#, c-format
+msgid "Destination \"%s\" is not accepting jobs."
+msgstr "Sihtkoht \"%s\" ei võta töid vastu."
+
+#, c-format
+msgid "Bad copies value %d."
+msgstr "Vigane koopiate väärtus %d."
+
+#, c-format
+msgid "Bad page-ranges values %d-%d."
+msgstr "Vigased lehevahemike väärtused %d-%d."
+
+msgid "Too many active jobs."
+msgstr "Liiga palju aktiivseid täid."
+
+msgid "Quota limit reached."
+msgstr "Kvoot on täis."
+
+#, c-format
+msgid "Unable to add job for destination \"%s\"!"
+msgstr "Töö lisamine sihtkohale \"%s\" ebaõnnestus!"
+
+msgid "No subscription attributes in request!"
+msgstr "Soovis puuduvad tellimisatribuudid!"
+
+msgid "notify-events not specified!"
+msgstr "notify-events pole määratud!"
+
+#, c-format
+msgid "Job %d not found!"
+msgstr "Tööd %d ei leitud!"
+
+msgid "No default printer"
+msgstr "Vaikimisi printer puudub"
+
+msgid "cups-deviced failed to execute."
+msgstr "cups-deviced käivitamine ebaõnnestus."
+
+msgid "cups-driverd failed to execute."
+msgstr "cups-driverd käivitamine ebaõnnestus."
+
+msgid "No destinations added."
+msgstr "Sihtkohti pole lisatud."
+
+#, c-format
+msgid "notify-subscription-id %d no good!"
+msgstr "notify-subscription-id %d on vigane!"
+
+#, c-format
+msgid "Job #%s does not exist!"
+msgstr "Tööd nr %s ei ole olemas!"
+
+#, c-format
+msgid "Job #%d does not exist!"
+msgstr "Tööd nr %d ei ole olemas!"
+
+msgid "No subscriptions found."
+msgstr "Tellimusi ei leitud."
+
+#, c-format
+msgid "Not authorized to hold job #%d owned by \"%s\"!"
+msgstr "Pole õigust hoida tööd %d, mille omanik on \"%s\"!"
+
+#, c-format
+msgid "Job #%d is finished and cannot be altered!"
+msgstr "Töö nr %d on lõpetatud ja seda ei saa muuta!"
+
+#, c-format
+msgid "You are not authorized to move job #%d owned by \"%s\"!"
+msgstr "Teil pole õigust liigutada tööd nr %d, mille omanik on \"%s\"!"
+
+msgid "job-printer-uri attribute missing!"
+msgstr "job-printer-uri atribuut puudub!"
+
+#, c-format
+msgid "Unsupported compression \"%s\"!"
+msgstr "Toetamata tihendus \"%s\"!"
+
+msgid "No file!?!"
+msgstr "Faili polegi!?!"
+
+#, c-format
+msgid "Could not scan type \"%s\"!"
+msgstr "Tüübi \"%s\" uurimine ebaõnnestus!"
+
+#, c-format
+msgid "Unsupported format '%s/%s'!"
+msgstr "Toetamata vorming '%s/%s'!"
+
+msgid "Printer not shared!"
+msgstr "Printer ei ole ühiskasutuses!"
+
+#, c-format
+msgid "Too many jobs - %d jobs, max jobs is %d."
+msgstr "Liiga palju töid - %d tööd, maksimaalselt võib olla %d."
+
+#, c-format
+msgid "Job #%d is not held!"
+msgstr "Tööd nr %d ei hoita!"
+
+#, c-format
+msgid "You are not authorized to release job id %d owned by \"%s\"!"
+msgstr "Teil pole õigust vabastada tööd ID-ga %d, mille omanik on \"%s\"!"
+
+#, c-format
+msgid "Job #%d is not complete!"
+msgstr "Töö nr %d ei ole lõpetatud!"
+
+#, c-format
+msgid "Job #%d cannot be restarted - no files!"
+msgstr "Tööd nr %d ei saa taaskäivitada - faile pole!"
+
+#, c-format
+msgid "You are not authorized to restart job id %d owned by \"%s\"!"
+msgstr "Teil pole õigust taaskäivitada tööd ID-ga %d, mille omanik on \"%s\"!"
+
+#, c-format
+msgid "You are not authorized to send document for job #%d owned by \"%s\"!"
+msgstr "Teil pole õigust saata dokumenti tööle nr %d, mille omanik on \"%s\"!"
+
+#, c-format
+msgid "Bad document-format \"%s\"!"
+msgstr "Vigane document-format \"%s\"!"
+
+#, c-format
+msgid "You are not authorized to alter job id %d owned by \"%s\"!"
+msgstr "Teil pole õigust muuta töö ID-d %d, mille omanik on \"%s\"!"
+
+#, c-format
+msgid "%s cannot be changed."
+msgstr "%s ei ole muudetav."
+
+msgid "Bad job-priority value!"
+msgstr "Vigane töö prioriteedi väärtus!"
+
+msgid "Job is completed and cannot be changed."
+msgstr "Töö on lõpetatud ja seda ei saa muuta."
+
+msgid "Bad job-state value!"
+msgstr "Vigane job-state väärtus!"
+
+msgid "Job state cannot be changed."
+msgstr "Töö olekut ei saa muuta."
+
+#, c-format
+msgid "Unsupported compression attribute %s!"
+msgstr "Toetamata tihenduse atribuut %s!"
+
+#, c-format
+msgid "Unsupported format \"%s\"!"
+msgstr "Toetamata vorming \"%s\"!"
+
+#, c-format
+msgid "%s is not implemented by the CUPS version of lpc.\n"
+msgstr "%s on CUPS-i lpc versioonis toetamata.\n"
+
+msgid ""
+"Commands may be abbreviated.  Commands are:\n"
+"\n"
+"exit    help    quit    status  ?\n"
+msgstr ""
+"Käske võib lühendada. Käsud on järgmised:\n"
+"\n"
+"exit    help    quit    status  ?\n"
+
+msgid "help\t\tget help on commands\n"
+msgstr "help\t\tabi käskude kohta\n"
+
+msgid "status\t\tshow status of daemon and queue\n"
+msgstr "status\t\tdeemoni ja järjekorra staatuse kuvamine\n"
+
+msgid "?Invalid help command unknown\n"
+msgstr "?Vigane abikäsk tundmatu"
+
+#, c-format
+msgid "\tprinter is on device '%s' speed -1\n"
+msgstr "\tprinter seadmes '%s' kiirus -1\n"
+
+msgid "\tqueuing is enabled\n"
+msgstr "\tjärjekord on lubatud\n"
+
+msgid "\tqueuing is disabled\n"
+msgstr "\tjärjekord on keelatud\n"
+
+msgid "\tprinting is enabled\n"
+msgstr "\ttrükkimine on lubatud\n"
+
+msgid "\tprinting is disabled\n"
+msgstr "\ttrükkimine on keelatud\n"
+
+msgid "\tno entries\n"
+msgstr "\tkirjeid pole\n"
+
+#, c-format
+msgid "\t%d entries\n"
+msgstr "\t%d kirjet\n"
+
+msgid "\tdaemon present\n"
+msgstr "\tdeemon töötab\n"
+
+msgid "lpq: Unable to contact server!\n"
+msgstr "lpq: serveriga ei õnnestu ühendust luua!\n"
+
+#, c-format
+msgid "%s: Sorry, no encryption support compiled in!\n"
+msgstr "%s: vabandust, krüptotoetus pole kompileeritud!\n"
+
+#, c-format
+msgid "lpq: Unknown destination \"%s/%s\"!\n"
+msgstr "lpq: tundmatu sihtkoht \"%s/%s\"!\n"
+
+#, c-format
+msgid "lpq: Unknown destination \"%s\"!\n"
+msgstr "lpq: tundmatu sihtkoht \"%s\"!\n"
+
+#, c-format
+msgid "lp: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr "lp: viga - %s keskkonnamuutuja nimetab olematu sihtkoha \"%s\"!\n"
+
+msgid "lpq: error - no default destination available.\n"
+msgstr "lpq: viga - vaikimisi sihtkoht pole saadaval.\n"
+
+#, c-format
+msgid "lpq: get-jobs failed: %s\n"
+msgstr "lpq: get-jobs ebaõnnestus: %s\n"
+
+msgid "Rank   Owner      Pri  Job        Files                       Total Size\n"
+msgstr "Järk   Omanik      Prio  Töö        Failid                       Kogusuurus\n"
+
+msgid "Rank    Owner   Job     File(s)                         Total Size\n"
+msgstr "Järk    Omanik   Töö     Failid                         Kogusuurus\n"
+
+#, c-format
+msgid "%s: %-33.33s [job %d localhost]\n"
+msgstr "%s: %-33.33s [töö %d localhost]\n"
+
+#, c-format
+msgid "        %-39.39s %.0f bytes\n"
+msgstr "        %-39.39s %.0f baiti\n"
+
+#, c-format
+msgid "%-6s %-10.10s %-4d %-10d %-27.27s %.0f bytes\n"
+msgstr "%-6s %-10.10s %-4d %-10d %-27.27s %.0f baiti\n"
+
+#, c-format
+msgid "%-7s %-7.7s %-7d %-31.31s %.0f bytes\n"
+msgstr "%-7s %-7.7s %-7d %-31.31s %.0f baiti\n"
+
+msgid "no entries\n"
+msgstr "kirjeid pole\n"
+
+#, c-format
+msgid "lpq: get-printer-attributes failed: %s\n"
+msgstr "lpq: get-printer-attributes ebaõnnestus: %s\n"
+
+#, c-format
+msgid "%s is ready\n"
+msgstr "%s on valmis\n"
+
+#, c-format
+msgid "%s is ready and printing\n"
+msgstr "%s on valmis ja trükib"
+
+#, c-format
+msgid "%s is not ready\n"
+msgstr "%s ei ole valmis\n"
+
+msgid "Usage: lpq [-P dest] [-l] [+interval]\n"
+msgstr "Kasutamine: lpq [-P sihtkoht] [-l] [+intervall]\n"
+
+#, c-format
+msgid "lpr: error - expected value after -%c option!\n"
+msgstr "lpr: viga - oodati väärust pärast võtit -%c!\n"
+
+#, c-format
+msgid "lpr: warning - '%c' format modifier not supported - output may not be correct!\n"
+msgstr "lpr: hoiatus - '%c' vormingus modifikaator pole toetatud - väljund võib olla vigane!\n"
+
+msgid "lpr: error - expected option=value after -o option!\n"
+msgstr "lpr: viga - oodati võti=väärtus pärast võtit -o!\n"
+
+msgid "lpr: warning - email notification is not currently supported!\n"
+msgstr "lpr: hoiatus - märguanne e-postiga pole veel toetatud!\n"
+
+msgid "lpr: error - expected destination after -P option!\n"
+msgstr "lpr: viga - oodati sihtkohta pärast võtit -P!\n"
+
+msgid "lpr: error - expected copy count after -# option!\n"
+msgstr "lpr: viga - oodati koopiate arvu pärast võtit -#!\n"
+
+#, c-format
+msgid "lpr: error - expected name after -%c option!\n"
+msgstr "lpr: viga - oodati nime pärast võtit -%c!\n"
+
+msgid "lpr: error - expected username after -U option!\n"
+msgstr "lpr: viga - oodati kasutajanime pärast võtit -U!\n"
+
+#, c-format
+msgid "lpr: error - unknown option '%c'!\n"
+msgstr "lpr: viga - tundmatu võti '%c'!\n"
+
+#, c-format
+msgid "lpr: error - unable to access \"%s\" - %s\n"
+msgstr "lpr: viga - ligipääs asukohale \"%s\" ebaõnnestus - %s\n"
+
+#, c-format
+msgid "lpr: error - too many files - \"%s\"\n"
+msgstr "lpr: viga - liiga palju faile - \"%s\"\n"
+
+#, c-format
+msgid "lpr: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr "lpr: viga - %s keskkonnamuutuja nimetab olematu sihtkoha \"%s\"!\n"
+
+msgid "lpr: error - no default destination available.\n"
+msgstr "lpr: viga - vaikimisi sihtkoht pole saadaval.\n"
+
+msgid "lpr: error - scheduler not responding!\n"
+msgstr "lpr: viga - ajastaja ei vasta!\n"
+
+#, c-format
+msgid "lpr: error - unable to create temporary file \"%s\" - %s\n"
+msgstr "lpr: viga - ei õnnestu luua ajutist faili \"%s\" - %s\n"
+
+#, c-format
+msgid "lpr: error - unable to write to temporary file \"%s\" - %s\n"
+msgstr "lpr: viga - ei õnnestu kirjutada ajutist faili \"%s\" - %s\n"
+
+msgid "lpr: error - stdin is empty, so no job has been sent.\n"
+msgstr "lpr: viga - standardsisend on tühi, ühtegi tööd ei ole saadetud.\n"
+
+#, c-format
+msgid "lpr: error - unable to print file: %s\n"
+msgstr "lpr: viga - ei õnnestu trükkida faili: %s\n"
+
+msgid "lprm: Unable to contact server!\n"
+msgstr "lprm: ei õnnestu saada ühendust serveriga!\n"
+
+#, c-format
+msgid "lprm: Unknown destination \"%s\"!\n"
+msgstr "lprm: tundmatu sihtkoht \"%s\"!\n"
+
+#, c-format
+msgid "lprm: Unknown option '%c'!\n"
+msgstr "lprm: tundmatu võti '%c'!\n"
+
+msgid "lprm: Job or printer not found!\n"
+msgstr "lprm: tööd või printerit ei leitud!\n"
+
+msgid "lprm: Not authorized to lprm job(s)!\n"
+msgstr "lprm: pole õigust lprm töid!\n"
+
+#, c-format
+msgid "lprm: You don't own job ID %d!\n"
+msgstr "lprm: töö ID %d ei kuulu Teile!\n"
+
+msgid "lprm: Unable to lprm job(s)!\n"
+msgstr "lprm: tööde lprm ei ole võimalik!\n"
+
+msgid "lprm: Unable to cancel job(s)!\n"
+msgstr "lprm: tööde katkestamine ei ole võimalik!\n"
+
+#, c-format
+msgid "%s: Don't know what to do!\n"
+msgstr "%s: ei tea, mida ette võtta!\n"
+
+#, c-format
+msgid "%s: Expected server name after -h!\n"
+msgstr "%s: oodati serveri nime pärast -h!\n"
+
+#, c-format
+msgid "%s: Expected reason text after -r!\n"
+msgstr "%s: oodati teksti pärast -r!\n"
+
+#, c-format
+msgid "%s: Unknown option '%c'!\n"
+msgstr "%s: tundmatu võti '%c'!\n"
+
+#, c-format
+msgid "%s: Unable to connect to server: %s\n"
+msgstr "%s: ei õnnestu saada ühendust serveriga: %s\n"
+
+#, c-format
+msgid "%s: Operation failed: %s\n"
+msgstr "%s: toiming ebaõnnestus: %s\n"
+
+msgid "cancel: Error - expected hostname after '-h' option!\n"
+msgstr "cancel: viga - oodati masinanime pärast võtit '.h'!\n"
+
+msgid "cancel: Error - expected username after '-u' option!\n"
+msgstr "cancel: viga - oodati kasutajanime pärast võtit '-u'!\n"
+
+#, c-format
+msgid "cancel: Unknown option '%c'!\n"
+msgstr "cancel: tundmatu võti '%c'!\n"
+
+#, c-format
+msgid "cancel: Unknown destination \"%s\"!\n"
+msgstr "cancel: tundmatu sihtkoht \"%s\"!\n"
+
+msgid "cancel: Unable to contact server!\n"
+msgstr "cancel: ei õnnestu saada ühendust serveriga!\n"
+
+#, c-format
+msgid "cancel: %s failed: %s\n"
+msgstr "cancel: %s ebaõnnestus: %s\n"
+
+#, c-format
+msgid "cupsaddsmb: Missing value on line %d!\n"
+msgstr "cupsaddsmb: puudub väärtus real %d!\n"
+
+#, c-format
+msgid "cupsaddsmb: Missing double quote on line %d!\n"
+msgstr "cupsaddsmb: puuduvad kahekordsed jutumärgid real %d!\n"
+
+#, c-format
+msgid "cupsaddsmb: Bad option + choice on line %d!\n"
+msgstr "cupsaddsmb: vigane võti + valik real %d!\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to connect to server \"%s\" for %s - %s\n"
+msgstr "cupsaddsmb: ei õnnestu saada ühendust serveriga \"%s\" %s jaoks - %s\n"
+
+#, c-format
+msgid "cupsaddsmb: No PPD file for printer \"%s\" - skipping!\n"
+msgstr "cupsaddsmb: puudub PPD printerile \"%s\" - jäetakse vahele!\n"
+
+#, c-format
+msgid "cupsaddsmb: get-printer-attributes failed for \"%s\": %s\n"
+msgstr "cupsaddsmb: get-printer-attributes ebaõnnestus \"%s\" jaoks: %s\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to convert PPD file for %s - %s\n"
+msgstr "cupsaddsmb: ei õnnestunud teisendada PPD-faili %s jaoks - %s\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to copy Windows 2000 printer driver files (%d)!\n"
+msgstr "cupsaddsmb: ei õnnestunud kopeerida Windows 2000 printeridraiverifaile (%d)!\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to copy CUPS printer driver files (%d)!\n"
+msgstr "cupsaddsmb: ei õnnestunud kopeerida CUPS-i printeridraiverifaile (%d)!\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to install Windows 2000 printer driver files (%d)!\n"
+msgstr "cupsaddsmb: ei õnnestunud paigaldada Windows 2000 printeridraiverifaile (%d)!\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to copy Windows 9x printer driver files (%d)!\n"
+msgstr "cupsaddsmb: ei õnnestunud kopeerida Windows 9x printeridraiverifaile (%d)!\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to install Windows 9x printer driver files (%d)!\n"
+msgstr "cupsaddsmb: ei õnnestunud paigaldada Windows 9x printeridraiverifaile (%d)!\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to set Windows printer driver (%d)!\n"
+msgstr "cupsaddsmb: ei õnnestunud määrata Windowsi printeridraiverit (%d)!\n"
+
+msgid ""
+"Usage: cupsaddsmb [options] printer1 ... printerN\n"
+"       cupsaddsmb [options] -a\n"
+"\n"
+"Options:\n"
+"  -H samba-server  Use the named SAMBA server\n"
+"  -U samba-user    Authenticate using the named SAMBA user\n"
+"  -a               Export all printers\n"
+"  -h cups-server   Use the named CUPS server\n"
+"  -v               Be verbose (show commands)\n"
+msgstr ""
+"Kasutamine: cupsaddsmb [võtmed] printer1 ... printerN\n"
+"            cupsaddsmb [võtmed] -a\n"
+"\n"
+"Võtmed:\n"
+"  -H samba-server    määratud SAMBA-serveri kasutamine\n"
+"  -U samba-kasutaja  määratud SAMBA kasutajaga autentimine\n"
+"  -a                 Kõigi printerite eksport\n"
+"  -h cups-server     määratud CUPS-serveri kasutamine\n"
+"  -v                 Häälekus (käskude näitamine)\n"
+
+msgid "cupstestppd: The -q option is incompatible with the -v option.\n"
+msgstr "cupstestppd: võti -q ei sobi kokku võtmega -v.\n"
+
+msgid "cupstestppd: The -v option is incompatible with the -q option.\n"
+msgstr "cupstestppd: võti -v ei sobi kokku võtmega -q.\n"
+
+#, c-format
+msgid ""
+" FAIL\n"
+"      **FAIL**  Unable to open PPD file - %s\n"
+msgstr ""
+" EBAÕNN\n"
+"      **EBAÕNN**  PPD-faili avamine ebaõnnestus - %s\n"
+
+#, c-format
+msgid ""
+" FAIL\n"
+"      **FAIL**  Unable to open PPD file - %s on line %d.\n"
+msgstr ""
+" EBAÕNN\n"
+"      **EBAÕNN**  PPD-faili avamine ebaõnnestus - %s real %d.\n"
+
+msgid "                REF: Page 42, section 5.2.\n"
+msgstr "                Viide: lk 42, sektsioon 5.2.\n"
+
+msgid "                REF: Page 20, section 3.4.\n"
+msgstr "                Viide: lk 20, sektsioon 3.4.\n"
+
+msgid "                REF: Pages 45-46, section 5.2.\n"
+msgstr "                Viide: lk 45-46, sektsioon 5.2.\n"
+
+msgid "                REF: Pages 42-45, section 5.2.\n"
+msgstr "                Viide: lk 42-45, sektsioon 5.2.\n"
+
+msgid "                REF: Pages 48-49, section 5.2.\n"
+msgstr "                Viide: lk 48-49, sektsioon 5.2.\n"
+
+msgid "                REF: Pages 52-54, section 5.2.\n"
+msgstr "                Viide: lk 52-54, sektsioon 5.2.\n"
+
+msgid "                REF: Page 15, section 3.2.\n"
+msgstr "                Viide: lk 15, sektsioon 3.2.\n"
+
+msgid "                REF: Page 15, section 3.1.\n"
+msgstr "                Viide: lk 15, sektsioon 3.1.\n"
+
+msgid "                REF: Pages 16-17, section 3.2.\n"
+msgstr "                Viide: lk 16-17, sektsioon 3.2.\n"
+
+msgid "                REF: Page 19, section 3.3.\n"
+msgstr "                Viide: lk 19, sektsioon 3.3.\n"
+
+msgid "                REF: Page 27, section 3.5.\n"
+msgstr "                Viide: lk 27, sektsioon 3.5.\n"
+
+msgid ""
+"\n"
+"    DETAILED CONFORMANCE TEST RESULTS\n"
+msgstr ""
+"\n"
+"    ÜKSIKASJALIKUD SOBIVUSTESTI TULEMUSED\n"
+
+#, c-format
+msgid "        WARN    %s has no corresponding options!\n"
+msgstr "        HOIATUS    %s on ilma vastavate võtmeteta!\n"
+
+msgid " FAIL\n"
+msgstr " EBAÕNN\n"
+
+msgid ""
+"      **FAIL**  REQUIRED DefaultImageableArea\n"
+"                REF: Page 102, section 5.15.\n"
+msgstr ""
+"      **EBAÕNN**  VAJALIK DefaultImageableArea\n"
+"                  Viide: lk 102, sektsioon 5.15.\n"
+
+#, c-format
+msgid ""
+"      **FAIL**  BAD DefaultImageableArea %s!\n"
+"                REF: Page 102, section 5.15.\n"
+msgstr ""
+"      **EBAÕNN**  VIGANE DefaultImageableArea %s!\n"
+"                  Viide: lk 102, sektsioon 5.15.\n"
+
+msgid "        PASS    DefaultImageableArea\n"
+msgstr "        SOORITATUD    DefaultImageableArea\n"
+
+msgid ""
+"      **FAIL**  REQUIRED DefaultPaperDimension\n"
+"                REF: Page 103, section 5.15.\n"
+msgstr ""
+"      **EBAÕNN**  VAJALIK DefaultPaperDimension\n"
+"                  Viide: lk 103, sektsioon 5.15.\n"
+
+#, c-format
+msgid ""
+"      **FAIL**  BAD DefaultPaperDimension %s!\n"
+"                REF: Page 103, section 5.15.\n"
+msgstr ""
+"      **EBAÕNN**  VIGANE DefaultPaperDimension %s!\n"
+"                  Viide: lk 103, sektsioon 5.15.\n"
+
+msgid "        PASS    DefaultPaperDimension\n"
+msgstr "        SOORITATUD    DefaultPaperDimension\n"
+
+#, c-format
+msgid ""
+"      **FAIL**  BAD Default%s %s\n"
+"                Viide: Page 40, section 4.5.\n"
+msgstr ""
+"      **EBAÕNN**  VIGANE Default%s %s\n"
+"                  Viide: lk 40, sektsioon 4.5.\n"
+
+#, c-format
+msgid "        PASS    Default%s\n"
+msgstr "        SOORITATUD    Default%s\n"
+
+#, c-format
+msgid ""
+"      **FAIL**  REQUIRED Default%s\n"
+"                REF: Page 40, section 4.5.\n"
+msgstr ""
+"      **EBAÕNN**  VAJALIK Default%s\n"
+"                  Viide: lk 40, sektsioon 4.5.\n"
+
+msgid "        PASS    FileVersion\n"
+msgstr "        SOORITATUD    FileVersion\n"
+
+msgid ""
+"      **FAIL**  REQUIRED FileVersion\n"
+"                REF: Page 56, section 5.3.\n"
+msgstr ""
+"      **EBAÕNN**  VAJALIK FileVersion\n"
+"                  Viide: lk 56, sektsioon 5.3.\n"
+
+msgid "        PASS    FormatVersion\n"
+msgstr "        SOORITATUD    FormatVersion\n"
+
+msgid ""
+"      **FAIL**  REQUIRED FormatVersion\n"
+"                REF: Page 56, section 5.3.\n"
+msgstr ""
+"      **EBAÕNN**  VAJALIK FormatVersion\n"
+"                  Viide: lk 56, sektsioon 5.3.\n"
+
+msgid "        PASS    LanguageEncoding\n"
+msgstr "        SOORITATUD    LanguageEncoding\n"
+
+msgid ""
+"      **FAIL**  REQUIRED LanguageEncoding\n"
+"                REF: Pages 56-57, section 5.3.\n"
+msgstr ""
+"      **EBAÕNN**  VAJALIK LanguageEncoding\n"
+"                  Viide: lk 56-57, sektsioon 5.3.\n"
+
+msgid "        PASS    LanguageVersion\n"
+msgstr "        SOORITATUD    LanguageVersion\n"
+
+msgid ""
+"      **FAIL**  REQUIRED LanguageVersion\n"
+"                REF: Pages 57-58, section 5.3.\n"
+msgstr ""
+"      **EBAÕNN**  VAJALIK LanguageVersion\n"
+"                  Viide: lk 57-58, sektsioon 5.3.\n"
+
+msgid ""
+"      **FAIL**  BAD Manufacturer (should be \"HP\")\n"
+"                REF: Page 211, table D.1.\n"
+msgstr ""
+"      **EBAÕNN**  VIGANE Manufacturer (peab olema \"HP\")\n"
+"                  Viide: lk 211, tabel D.1.\n"
+
+msgid "        PASS    Manufacturer\n"
+msgstr "        SOORITATUD    Manufacturer\n"
+
+msgid ""
+"      **FAIL**  REQUIRED Manufacturer\n"
+"                REF: Pages 58-59, section 5.3.\n"
+msgstr ""
+"      **EBAÕNN**  VAJALIK Manufacturer\n"
+"                  Viide: lk 58-59, sektsioon 5.3.\n"
+
+#, c-format
+msgid ""
+"      **FAIL**  BAD ModelName - \"%c\" not allowed in string.\n"
+"                REF: Pages 59-60, section 5.3.\n"
+msgstr ""
+"      **EBAÕNN**  VIGANE ModelName - \"%c\" ei ole stringis lubatud.\n"
+"                  Viide: lk 59-60, sektsioon 5.3.\n"
+
+msgid "        PASS    ModelName\n"
+msgstr "        SOORITATUD    ModelName\n"
+
+msgid ""
+"      **FAIL**  REQUIRED ModelName\n"
+"                REF: Pages 59-60, section 5.3.\n"
+msgstr ""
+"      **EBAÕNN**  VAJALIK ModelName\n"
+"                  Viide: lk 59-60, sektsioon 5.3.\n"
+
+msgid "        PASS    NickName\n"
+msgstr "        SOORITATUD    NickName\n"
+
+msgid ""
+"      **FAIL**  REQUIRED NickName\n"
+"                REF: Page 60, section 5.3.\n"
+msgstr ""
+"      **EBAÕNN**  VAJALIK NickName\n"
+"                  Viide: lk 60, sektsioon 5.3.\n"
+
+msgid "        PASS    PageSize\n"
+msgstr "        SOORITATUD    PageSize\n"
+
+msgid ""
+"      **FAIL**  REQUIRED PageSize\n"
+"                REF: Pages 99-100, section 5.14.\n"
+msgstr ""
+"      **EBAÕNN**  VAJALIK PageSize\n"
+"                  Viide: lk 99-100, sektsioon 5.14.\n"
+
+msgid "        PASS    PageRegion\n"
+msgstr "        SOORITATUD    PageRegion\n"
+
+msgid ""
+"      **FAIL**  REQUIRED PageRegion\n"
+"                REF: Page 100, section 5.14.\n"
+msgstr ""
+"      **EBAÕNN**  VAJALIK PageRegion\n"
+"                  Viide: lk 100, sektsioon 5.14.\n"
+
+msgid "        PASS    PCFileName\n"
+msgstr "        SOORITATUD    PCFileName\n"
+
+msgid ""
+"      **FAIL**  REQUIRED PCFileName\n"
+"                REF: Pages 61-62, section 5.3.\n"
+msgstr ""
+"      **EBAÕNN**  VAJALIK PCFileName\n"
+"                  Viide: lk 61-62, sektsioon 5.3.\n"
+
+msgid ""
+"      **FAIL**  BAD Product - not \"(string)\".\n"
+"                REF: Page 62, section 5.3.\n"
+msgstr ""
+"      **EBAÕNN**  VIGANE Product - pole \"(string)\".\n"
+"                  Viide: lk 62, sektsioon 5.3.\n"
+
+msgid "        PASS    Product\n"
+msgstr "        SOORITATUD    Product\n"
+
+msgid ""
+"      **FAIL**  REQUIRED Product\n"
+"                REF: Page 62, section 5.3.\n"
+msgstr ""
+"      **EBAÕNN**  VAJALIK Product\n"
+"                  Viide: lk 62, sektsioon 5.3.\n"
+
+msgid ""
+"      **FAIL**  BAD PSVersion - not \"(string) int\".\n"
+"                REF: Pages 62-64, section 5.3.\n"
+msgstr ""
+"      **EBAÕNN**  VIGANE PSVersion - pole \"(string) int\".\n"
+"                  Viide: lk 62-64, sektsioon 5.3.\n"
+
+msgid "        PASS    PSVersion\n"
+msgstr "        SOORITATUD    PSVersion\n"
+
+msgid ""
+"      **FAIL**  REQUIRED PSVersion\n"
+"                REF: Pages 62-64, section 5.3.\n"
+msgstr ""
+"      **EBAÕNN**  VAJALIK PSVersion\n"
+"                  Viide: lk 62-64, sektsioon 5.3.\n"
+
+msgid ""
+"      **FAIL**  BAD ShortNickName - longer than 31 chars.\n"
+"                REF: Pages 64-65, section 5.3.\n"
+msgstr ""
+"      **EBAÕNN**  VIGANE ShortNickName - pikem kui 31 märki.\n"
+"                  Viide: lk 64-65, sektsioon 5.3.\n"
+
+msgid "        PASS    ShortNickName\n"
+msgstr "        SOORITATUD    ShortNickName\n"
+
+msgid ""
+"      **FAIL**  REQUIRED ShortNickName\n"
+"                REF: Page 64-65, section 5.3.\n"
+msgstr ""
+"      **EBAÕNN**  VAJALIK ShortNickName\n"
+"                  Viide: lk 64-65, sektsioon 5.3.\n"
+
+msgid ""
+"      **FAIL**  BAD JobPatchFile attribute in file\n"
+"                REF: Page 24, section 3.4.\n"
+msgstr ""
+"      **EBAÕNN**  VIGANE JobPatchFile atribuut failis\n"
+"                  Viide: lk 24, sektsioon 3.4.\n"
+
+msgid ""
+"      **FAIL**  REQUIRED PageSize\n"
+"                REF: Page 41, section 5.\n"
+"                REF: Page 99, section 5.14.\n"
+msgstr ""
+"      **EBAÕNN**  VAJALIK PageSize\n"
+"                  Viide: lk 41, sektsioon 5.\n"
+"                  Viide: lk 99, sektsioon 5.14.\n"
+
+#, c-format
+msgid ""
+"      **FAIL**  REQUIRED ImageableArea for PageSize %s\n"
+"                REF: Page 41, section 5.\n"
+"                REF: Page 102, section 5.15.\n"
+msgstr ""
+"      **EBAÕNN**  VAJALIK ImageableArea PageSize %s jaoks\n"
+"                  Viide: lk 41, sektsioon 5.\n"
+"                  Viide: lk 102, sektsioon 5.15.\n"
+
+#, c-format
+msgid ""
+"      **FAIL**  REQUIRED PaperDimension for PageSize %s\n"
+"                REF: Page 41, section 5.\n"
+"                REF: Page 103, section 5.15.\n"
+msgstr ""
+"      **EBAÕNN**  VAJALIK PaperDimension PageSize %s jaoks\n"
+"                  Viide: lk 41, sektsioon 5.\n"
+"                  Viide: lk 103, sektsioon 5.15.\n"
+
+#, c-format
+msgid ""
+"      **FAIL**  Bad %s choice %s!\n"
+"                REF: Page 84, section 5.9\n"
+msgstr ""
+"      **EBAÕNN**  Vigane %s valik %s!\n"
+"                  Viide: lk 84, sektsioon 5.9\n"
+
+#, c-format
+msgid ""
+"      **FAIL**  REQUIRED %s does not define choice None!\n"
+"                REF: Page 122, section 5.17\n"
+msgstr ""
+"      **EBAÕNN**  VAJALIK %s ei defineeri valikut None!\n"
+"                  Viide: lk 122, sektsioon 5.17\n"
+
+#, c-format
+msgid ""
+"      **FAIL**  Bad %s choice %s!\n"
+"                REF: Page 122, section 5.17\n"
+msgstr ""
+"      **EBAÕNN**  Vigane %s valik %s!\n"
+"                  Viide: lk 122, sektsioon 5.17\n"
+
+msgid " PASS\n"
+msgstr " SOORITATUD\n"
+
+#, c-format
+msgid ""
+"        WARN    Duplex option keyword %s should be named Duplex or JCLDuplex!\n"
+"                REF: Page 122, section 5.17\n"
+msgstr ""
+"        HOIATUS    Dupleksi võtme võtmesõna %s peab olema nimega Duplex või JCLDuplex!\n"
+"                   Viide: lk 122, sektsioon 5.17\n"
+
+msgid "        WARN    Default choices conflicting!\n"
+msgstr "        HOIATUS    Vaikevalikud on konfliktis!\n"
+
+#, c-format
+msgid ""
+"        WARN    Obsolete PPD version %.1f!\n"
+"                REF: Page 42, section 5.2.\n"
+msgstr ""
+"        HOIATUS    Iganenud PPD versioon %.1f!\n"
+"                   Viide: lk 42, sektsioon 5.2.\n"
+
+msgid ""
+"        WARN    LanguageEncoding required by PPD 4.3 spec.\n"
+"                REF: Pages 56-57, section 5.3.\n"
+msgstr ""
+"        HOIATUS    LanguageEncoding on PPD 4.3 spetsifikatsiooni järgi nõutav.\n"
+"                   Viide: lk 56-57, sektsioon 5.3.\n"
+
+msgid ""
+"        WARN    Manufacturer required by PPD 4.3 spec.\n"
+"                REF: Pages 58-59, section 5.3.\n"
+msgstr ""
+"        HOIATUS    Manufacturer on PPD 4.3 spetsifikatsiooni järgi nõutav.\n"
+"                   Viide: lk 58-59, sektsioon 5.3.\n"
+
+msgid ""
+"        WARN    PCFileName longer than 8.3 in violation of PPD spec.\n"
+"                REF: Pages 61-62, section 5.3.\n"
+msgstr ""
+"        HOIATUS    PCFileName pikem kui 8.3 läheb vastuollu PPD spetsifikatsiooniga.\n"
+"                   Viide: lk 61-62, sektsioon 5.3.\n"
+
+msgid ""
+"        WARN    ShortNickName required by PPD 4.3 spec.\n"
+"                REF: Pages 64-65, section 5.3.\n"
+msgstr ""
+"        HOIATUS    ShortNickName on PPD 4.3 spetsifikatsiooni järgi nõutav.\n"
+"                   Viide: lk 64-65, sektsioon 5.3.\n"
+
+msgid ""
+"        WARN    Protocols contains both PJL and BCP; expected TBCP.\n"
+"                REF: Pages 78-79, section 5.7.\n"
+msgstr ""
+"        HOIATUS    Protocols sisaldab nii PJL kui ka BCP; oodati TBCP.\n"
+"                   Viide: lk 78-79, sektsioon 5.7.\n"
+
+msgid ""
+"        WARN    Protocols contains PJL but JCL attributes are not set.\n"
+"                REF: Pages 78-79, section 5.7.\n"
+msgstr ""
+"        HOIATUS    Protocols sisaldab PJL, kuid JCL atribuudid pole määratud.\n"
+"                   Viide: lk 78-79, sektsioon 5.7.\n"
+
+#, c-format
+msgid ""
+"        WARN    %s shares a common prefix with %s\n"
+"                REF: Page 15, section 3.2.\n"
+msgstr ""
+"        HOIATUS    %s on sama prefiksiga, mis %s\n"
+"                   Viide: lk 15, sektsioon 3.2.\n"
+
+#, c-format
+msgid "    %d ERROR%s FOUND\n"
+msgstr "    %d VIGA%s LEITUD\n"
+
+msgid "    NO ERRORS FOUND\n"
+msgstr "    VIGU EI LEITUD\n"
+
+#, c-format
+msgid ""
+"        WARN    \"%s %s\" conflicts with \"%s %s\"\n"
+"                (constraint=\"%s %s %s %s\")\n"
+msgstr ""
+"        HOIATUS    \"%s %s\" on konfliktis \"%s %s\"\n"
+"                   (constraint=\"%s %s %s %s\")\n"
+
+msgid ""
+"Usage: cupstestppd [-q] [-r] [-v[v]] filename1.ppd[.gz] [... filenameN.ppd[.gz]]\n"
+"       program | cupstestppd [-q] [-r] [-v[v]] -\n"
+msgstr ""
+"Kasutamine: cupstestppd [-q] [-r] [-v[v]] failinimi1.ppd[.gz] [... failinimiN.ppd[.gz]]\n"
+"            program | cupstestppd [-q] [-r] [-v[v]] -\n"
+
+msgid "lpstat: Need \"completed\" or \"not-completed\" after -W!\n"
+msgstr "lpstat: pärast -W on vajalik \"completed\" või \"not-completed\"!\n"
+
+msgid "lpstat: The -b option requires a destination argument.\n"
+msgstr "lpstat: võti -b nõuab sihtkoha argumenti.\n"
+
+msgid "Error: need hostname after '-h' option!\n"
+msgstr "Viga: pärast võtit '-h' on vajalik masinanimi!\n"
+
+#, c-format
+msgid "lpstat: Unknown option '%c'!\n"
+msgstr "lpstat: tundmatu võti '%c'!\n"
+
+#, c-format
+msgid "lpstat: Invalid destination name in list \"%s\"!\n"
+msgstr "lpstat: vigane sihtkoha nimi loendis \"%s\"!\n"
+
+#, c-format
+msgid "lpstat: Unknown destination \"%s\"!\n"
+msgstr "lpstat: tundmatu sihtkoht \"%s\"!\n"
+
+#, c-format
+msgid "lpstat: Unable to connect to server %s on port %d: %s\n"
+msgstr "lpstat: ei õnnestu saada ühendust serveriga %s pordis %d: %s\n"
+
+#, c-format
+msgid "lpstat: get-printers failed: %s\n"
+msgstr "lpstat: get-printers ebaõnnestus: %s\n"
+
+#, c-format
+msgid "%s accepting requests since Jan 01 00:00\n"
+msgstr "%s võtab soove vastu alates 01. jaan 00:00\n"
+
+#, c-format
+msgid ""
+"%s not accepting requests since Jan 01 00:00 -\n"
+"\t%s\n"
+msgstr ""
+"%s ei võta soove vastu alates 01. jaan 00:00 -\n"
+"\t%s\n"
+
+#, c-format
+msgid "%s/%s accepting requests since Jan 01 00:00\n"
+msgstr "%s/%s võtab soove vastu alates 01. jaan 00:00\n"
+
+#, c-format
+msgid ""
+"%s/%s not accepting requests since Jan 01 00:00 -\n"
+"\t%s\n"
+msgstr ""
+"%s/%s ei võta soove vastu alates 01. jaan 00:00 -\n"
+"\t%s\n"
+
+#, c-format
+msgid "lpstat: get-classes failed: %s\n"
+msgstr "lpstat: get-classes ebaõnnestus: %s\n"
+
+#, c-format
+msgid "members of class %s:\n"
+msgstr "klassi %s liikmed:\n"
+
+#, c-format
+msgid "system default destination: %s/%s\n"
+msgstr "süsteemi vaikimisi sihtkoht: %s/%s\n"
+
+#, c-format
+msgid "system default destination: %s\n"
+msgstr "süsteemi vaikimisi sihtkoht: %s\n"
+
+#, c-format
+msgid "lpstat: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr "lpstat: viga - %s keskkonnamuutuja nimetab olematu sihtkoha \"%s\"!\n"
+
+msgid "no system default destination\n"
+msgstr "süsteemi vaikimisi sihtkoht puudub\n"
+
+#, c-format
+msgid "Output for printer %s is sent to remote printer %s on %s\n"
+msgstr "Printeri %s väljund saadetakse võrguprinterisse %s masinas %s\n"
+
+#, c-format
+msgid "Output for printer %s is sent to %s\n"
+msgstr "Printeri %s väljund saadetakse %s\n"
+
+#, c-format
+msgid "Output for printer %s/%s is sent to remote printer %s on %s\n"
+msgstr "Printeri %s/%s väljund saadetakse võrguprinterisse %s masinas %s\n"
+
+#, c-format
+msgid "Output for printer %s/%s is sent to %s\n"
+msgstr "Printeri %s/%s väljund saadetakse %s\n"
+
+#, c-format
+msgid "device for %s: %s\n"
+msgstr "seade %s jaoks: %s\n"
+
+#, c-format
+msgid "device for %s/%s: %s\n"
+msgstr "seade %s/%s jaoks: %s\n"
+
+#, c-format
+msgid "lpstat: get-jobs failed: %s\n"
+msgstr "lpstat: get-jobs ebaõnnestus: %s\n"
+
+#, c-format
+msgid "\tqueued for %s\n"
+msgstr "\tjärjekorras %s jaoks\n"
+
+#, c-format
+msgid "printer %s is idle.  enabled since %s\n"
+msgstr "printer %s on jõude.  sisse lülitatud alates %s\n"
+
+#, c-format
+msgid "printer %s now printing %s-%d.  enabled since %s\n"
+msgstr "printer %s trükib praegu %s-%d.  sisse lülitatud alates %s\n"
+
+#, c-format
+msgid "printer %s disabled since %s -\n"
+msgstr "printer %s välja lülitatud alates %s -\n"
+
+msgid "\treason unknown\n"
+msgstr "\tpõhjus teadmata\n"
+
+msgid ""
+"\tForm mounted:\n"
+"\tContent types: any\n"
+"\tPrinter types: unknown\n"
+msgstr ""
+"\tVorm ühendatud:\n"
+"\tSisu tüübid: suvaline\n"
+"\tPrinteri tüübid: teadmata\n"
+
+#, c-format
+msgid "\tDescription: %s\n"
+msgstr "\tKirjeldus: %s\n"
+
+msgid "\tAlerts:"
+msgstr "\tHoiatused:"
+
+#, c-format
+msgid "\tLocation: %s\n"
+msgstr "\tAsukoht: %s\n"
+
+msgid "\tConnection: remote\n"
+msgstr "\tÜhendus: võrgus\n"
+
+#, c-format
+msgid "\tInterface: %s.ppd\n"
+msgstr "\tLiides: %s.ppd\n"
+
+msgid "\tConnection: direct\n"
+msgstr "\tÜhendus: otsene\n"
+
+#, c-format
+msgid "\tInterface: %s/interfaces/%s\n"
+msgstr "\tLiides: %s/interfaces/%s\n"
+
+#, c-format
+msgid "\tInterface: %s/ppd/%s.ppd\n"
+msgstr "\tLiides: %s/ppd/%s.ppd\n"
+
+msgid "\tOn fault: no alert\n"
+msgstr "\tVea korral: hoiatus puudub\n"
+
+msgid "\tAfter fault: continue\n"
+msgstr "\tVea järel: jätkatakse\n"
+
+msgid "\tUsers allowed:\n"
+msgstr "\tLubatud kasutajad:\n"
+
+msgid "\tUsers denied:\n"
+msgstr "\tKeelatud kasutajad:\n"
+
+msgid "\t\t(all)\n"
+msgstr "\t\t(kõik)\n"
+
+msgid "\tForms allowed:\n"
+msgstr "\tLubatud vormid:\n"
+
+msgid "\t\t(none)\n"
+msgstr "\t\t(puudub)\n"
+
+msgid "\tBanner required\n"
+msgstr "\tBanner nõutav\n"
+
+msgid "\tCharset sets:\n"
+msgstr "\tMärgistikud:\n"
+
+msgid "\tDefault pitch:\n"
+msgstr "\tVaikimisi tihedus:\n"
+
+msgid "\tDefault page size:\n"
+msgstr "\tVaikimisi lehe suurus:\n"
+
+msgid "\tDefault port settings:\n"
+msgstr "\tVaikimisi pordi seadistused:\n"
+
+#, c-format
+msgid "printer %s/%s is idle.  enabled since %s\n"
+msgstr "printer %s/%s on jõude.  sisse lülitatud alates %s\n"
+
+#, c-format
+msgid "printer %s/%s now printing %s-%d.  enabled since %s\n"
+msgstr "printer %s/%s trükib praegu %s-%d.  sisse lülitatud alates %s\n"
+
+#, c-format
+msgid "printer %s/%s disabled since %s -\n"
+msgstr "printer %s/%s välja lülitatud alates %s -\n"
+
+msgid "scheduler is running\n"
+msgstr "ajastaja töötab\n"
+
+msgid "scheduler is not running\n"
+msgstr "ajastaja ei tööta\n"
+
+#, c-format
+msgid "lpadmin: Unable to connect to server: %s\n"
+msgstr "lpadmin: ei õnnestu saada ühendust serveriga: %s\n"
+
+msgid ""
+"lpadmin: Unable to add a printer to the class:\n"
+"         You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: ei õnnestu lisada printerit klassi:\n"
+"         Kõigepealt tuleb määrata printeri nimi!\n"
+
+msgid "lpadmin: Expected class name after '-c' option!\n"
+msgstr "lpadmin: võtme '-c' järel oodati klassi nime!\n"
+
+msgid "lpadmin: Class name can only contain printable characters!\n"
+msgstr "lpadmin: klassi nimi tohib sisaldada ainult trükitavaid märke!\n"
+
+msgid "lpadmin: Expected printer name after '-d' option!\n"
+msgstr "lpadmin: võtme '-d' järel oodati printeri nime!\n"
+
+msgid "lpadmin: Printer name can only contain printable characters!\n"
+msgstr "lpadmin: printeri nimi tohib sisaldada ainult trükitavaid märke!\n"
+
+msgid "lpadmin: Expected hostname after '-h' option!\n"
+msgstr "lpadmin: võtme '-h' järel oodati masinanime!\n"
+
+msgid ""
+"lpadmin: Unable to set the interface script:\n"
+"         You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: ei õnnestu määrata liideseskripti:\n"
+"         Kõigepealt tuleb määrata printeri nimi!\n"
+
+msgid "lpadmin: Expected interface after '-i' option!\n"
+msgstr "lpadmin: võtme '-i' järel oodati liidest!\n"
+
+msgid ""
+"lpadmin: Unable to set the interface script or PPD file:\n"
+"         You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: ei õnnestu määrata liideseskripti või PPD-faili:\n"
+"         Kõigepealt tuleb määrata printeri nimi!\n"
+
+msgid "lpadmin: Expected model after '-m' option!\n"
+msgstr "lpadmin: võtme '-m' järel oodati mudelit!\n"
+
+msgid "lpadmin: Expected name=value after '-o' option!\n"
+msgstr "lpadmin: võtme '-o' järel oodati nimi=väärtus!\n"
+
+msgid "lpadmin: Expected printer after '-p' option!\n"
+msgstr "lpadmin: võtme '-p' järel oodati printerit!\n"
+
+msgid ""
+"lpadmin: Unable to remove a printer from the class:\n"
+"         You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: ei õnnestu eemaldada printerit klassist:\n"
+"         Kõigepealt tuleb määrata printeri nimi!\n"
+
+msgid "lpadmin: Expected class after '-r' option!\n"
+msgstr "lpadmin: võtme '-r' järel oodati klassi!\n"
+
+msgid "lpadmin: Expected allow/deny:userlist after '-u' option!\n"
+msgstr "lpadmin: võtme '-u' järel oodati allow/deny:kasutajateloend"
+
+#, c-format
+msgid "lpadmin: Unknown allow/deny option \"%s\"!\n"
+msgstr "lpadmin: tundmatu allow/deny võti \"%s\"!\n"
+
+msgid ""
+"lpadmin: Unable to set the device URI:\n"
+"         You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: ei õnnestu määrata seadme URI:\n"
+"         Kõigepealt tuleb määrata printeri nimi!\n"
+
+msgid "lpadmin: Expected device URI after '-v' option!\n"
+msgstr "lpadmin: võtme '-v' järel oodati seadme URI!\n"
+
+msgid "lpadmin: Expected printer or class after '-x' option!\n"
+msgstr "lpadmin: võtme '-x' järel oodati printerit või klassi!\n"
+
+msgid ""
+"lpadmin: Unable to set the printer description:\n"
+"         You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: ei õnnestu määrata printeri kirjeldust:\n"
+"         Kõigepealt tuleb määrata printeri nimi!\n"
+
+msgid "lpadmin: Expected description after '-D' option!\n"
+msgstr "lpadmin: võtme '-D' järel oodati kirjeldust!\n"
+
+msgid "lpadmin: Expected file type(s) after '-I' option!\n"
+msgstr "lpadmin: võtme '-I' järel oodati faili tüüpi/tüüpe!\n"
+
+msgid "lpadmin: Warning - content type list ignored!\n"
+msgstr "lpadmin: hoiatus - sisu tüüpide loendit ignoreeritakse!\n"
+
+msgid ""
+"lpadmin: Unable to set the printer location:\n"
+"         You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: ei õnnestu määrata printeri asukohta:\n"
+"         Kõigepealt tuleb määrata printeri nimi!\n"
+
+msgid "lpadmin: Expected location after '-L' option!\n"
+msgstr "lpadmin: võtme '-L' järel oodati asukohta!\n"
+
+msgid ""
+"lpadmin: Unable to set the PPD file:\n"
+"         You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: ei õnnestu määrata PPD-faili:\n"
+"         Kõigepealt tuleb määrata printeri nimi!\n"
+
+msgid "lpadmin: Expected PPD after '-P' option!\n"
+msgstr "lpadmin: võtme '-P' järel oodati PPD-d!\n"
+
+#, c-format
+msgid "lpadmin: Unknown option '%c'!\n"
+msgstr "lpadmin: tundmatu võti '%c'!\n"
+
+#, c-format
+msgid "lpadmin: Unknown argument '%s'!\n"
+msgstr "lpadmin: tundmatu argument '%s'!\n"
+
+msgid ""
+"lpadmin: Unable to set the printer options:\n"
+"         You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: ei õnnestu määrata printeri võtmeid:\n"
+"         Kõigepealt tuleb määrata printeri nimi!\n"
+
+msgid ""
+"Usage:\n"
+"\n"
+"    lpadmin [-h server] -d destination\n"
+"    lpadmin [-h server] -x destination\n"
+"    lpadmin [-h server] -p printer [-c add-class] [-i interface] [-m model]\n"
+"                       [-r remove-class] [-v device] [-D description]\n"
+"                       [-P ppd-file] [-o name=value]\n"
+"                       [-u allow:user,user] [-u deny:user,user]\n"
+"\n"
+msgstr ""
+"Kasutamine:\n"
+"\n"
+"    lpadmin [-h server] -d sihtkoht\n"
+"    lpadmin [-h server] -x sihtkoht\n"
+"    lpadmin [-h server] -p printer [-c add-class] [-i liides] [-m mudel]\n"
+"                       [-r remove-class] [-v seade] [-D kirjeldus]\n"
+"                       [-P ppd-fail] [-o nimi=väärtus]\n"
+"                       [-u allow:kasutaja,kasutaja] [-u deny:kasutaja,kasutaja]\n"
+
+#, c-format
+msgid "lpadmin: Unable to create temporary file: %s\n"
+msgstr "lpadmin: ei õnnestu luua ajutist faili: %s\n"
+
+#, c-format
+msgid "lpadmin: Unable to open file \"%s\": %s\n"
+msgstr "lpadmin: ei õnnestu avada faili \"%s\": %s\n"
+
+#, c-format
+msgid "lpadmin: add-printer (set model) failed: %s\n"
+msgstr "lpadmin: add-printer (mudeli määramine) ebaõnnestus: %s\n"
+
+#, c-format
+msgid "lpadmin: add-printer (set description) failed: %s\n"
+msgstr "lpadmin: add-printer (kirjelduse määramine) ebaõnnestus: %s\n"
+
+#, c-format
+msgid "lpadmin: add-printer (set location) failed: %s\n"
+msgstr "lpadmin: add-printer (asukoha määramine) ebaõnnestus: %s\n"
+
+#, c-format
+msgid "lpadmin: Unable to create temporary file - %s\n"
+msgstr "lpadmin: ei õnnestu luua ajutist faili - %s\n"
+
+#, c-format
+msgid "lpadmin: Unable to open PPD file \"%s\" - %s\n"
+msgstr "lpadmin: ei õnnestu avada PPD-faili \"%s\" - %s\n"
+
+#, c-format
+msgid "lpadmin: %s failed: %s\n"
+msgstr "lpadmin: %s ebaõnnestus: %s\n"
+
+msgid "lp: Expected destination after -d option!\n"
+msgstr "lp: võtme -d järel oodati sihtkohta!\n"
+
+msgid "lp: Expected form after -f option!\n"
+msgstr "lp: võtme -f järel oodati vormi!\n"
+
+msgid "lp: Expected hostname after -h option!\n"
+msgstr "lp: võtme -h järel oodati masinanime!\n"
+
+msgid "lp: Expected job ID after -i option!\n"
+msgstr "lp: võtme -i järel oodati töö ID-d!\n"
+
+msgid "lp: Error - cannot print files and alter jobs simultaneously!\n"
+msgstr "lp: viga - faile ei saa trükkida ja töid muuta ühel ajal!\n"
+
+msgid "lp: Error - bad job ID!\n"
+msgstr "lp: viga - vigane töö ID!\n"
+
+msgid "lp: Expected copies after -n option!\n"
+msgstr "lp: võtme -n järel oodati koopiaid!\n"
+
+msgid "lp: Expected option string after -o option!\n"
+msgstr "lp. võtme -o järel oodati võtme stringi!\n"
+
+#, c-format
+msgid "lp: Expected priority after -%c option!\n"
+msgstr "lp: võtme -%c järel oodati prioriteeti!\n"
+
+msgid "lp: Priority must be between 1 and 100.\n"
+msgstr "lp: prioriteet peab olema vahemikus 1 kuni 100.\n"
+
+msgid "lp: Expected title after -t option!\n"
+msgstr "lp: võtme -t järel oodati tiitlit!\n"
+
+msgid "lp: Expected mode list after -y option!\n"
+msgstr "lp: võtme -y järel oodati režiimiloendit!\n"
+
+msgid "lp: Warning - mode option ignored!\n"
+msgstr "lp: hoiatus - režiimivõtit ignoreeritakse!\n"
+
+msgid "lp: Expected hold name after -H option!\n"
+msgstr "lp: vätme -H järel oodati hoitava nime!\n"
+
+msgid "lp: Need job ID (-i) before \"-H restart\"!\n"
+msgstr "lp: enne \"-H restart\" on vajalik töö ID (-i)!\n"
+
+msgid "lp: Expected page list after -P option!\n"
+msgstr "lp: võtme -P järel oodati leheloendit!\n"
+
+msgid "lp: Expected character set after -S option!\n"
+msgstr "lp: võtme -S järel oodati märgistikku!\n"
+
+msgid "lp: Warning - character set option ignored!\n"
+msgstr "lp: hoiatus - märgistikuvõtit ignoreeritakse!\n"
+
+msgid "lp: Expected content type after -T option!\n"
+msgstr "lp: võtme -T järel oodati sisu tüüpi!\n"
+
+msgid "lp: Warning - content type option ignored!\n"
+msgstr "lp: hoiatus - sisu tüübi võtit ignoreeritakse!\n"
+
+#, c-format
+msgid "lp: Unknown option '%c'!\n"
+msgstr "lp: tundmatu võti '%c'!\n"
+
+msgid "lp: Error - cannot print from stdin if files or a job ID are provided!\n"
+msgstr "lp: viga - standardsisendist ei saa trükkida, kui on antud failid või töö ID!\n"
+
+#, c-format
+msgid "lp: Unable to access \"%s\" - %s\n"
+msgstr "lp: ei õnnestu ligipääs \"%s\" - %s\n"
+
+#, c-format
+msgid "lp: Too many files - \"%s\"\n"
+msgstr "lp: liiga palju faile - \"%s\"\n"
+
+msgid "lp: error - no default destination available.\n"
+msgstr "lp: viga - vaikimisi sihtkoht pole saadaval.\n"
+
+msgid "lp: error - scheduler not responding!\n"
+msgstr "lp: viga - ajastaja ei vasta!\n"
+
+#, c-format
+msgid "lp: unable to create temporary file \"%s\" - %s\n"
+msgstr "lp: ei õnnestu luua ajutist faili  \"%s\" - %s\n"
+
+#, c-format
+msgid "lp: error - unable to write to temporary file \"%s\" - %s\n"
+msgstr "lp: viga - ei õnnestu kirjutada ajutisse faili \"%s\" - %s\n"
+
+msgid "lp: stdin is empty, so no job has been sent.\n"
+msgstr "lp: standardsisend on tühi, ühtegi tööd ei saadetud.\n"
+
+#, c-format
+msgid "lp: unable to print file: %s\n"
+msgstr "lp: ei õnnestu trükkida faili: %s\n"
+
+#, c-format
+msgid "request id is %s-%d (%d file(s))\n"
+msgstr "soovi ID on %s-%d (%d fail(i))\n"
+
+#, c-format
+msgid "lp: restart-job failed: %s\n"
+msgstr "lp: restart-job ebaõnnestus: %s\n"
+
+#, c-format
+msgid "lp: set-job-attributes failed: %s\n"
+msgstr "lp: set-job-attributes ebaõnnestus: %s\n"
+
+#, c-format
+msgid "lpinfo: Unable to connect to server: %s\n"
+msgstr "lpinfo: ei õnnestu saada ühendust serveriga: %s\n"
+
+#, c-format
+msgid "lpinfo: Unknown option '%c'!\n"
+msgstr "lpinfo: tundmatu võti '%c'!\n"
+
+#, c-format
+msgid "lpinfo: Unknown argument '%s'!\n"
+msgstr "lpinfo: tundmatu argument '%s'!\n"
+
+#, c-format
+msgid "lpinfo: cups-get-devices failed: %s\n"
+msgstr "lpinfo: cups-get-devices ebaõnnestus: %s\n"
+
+#, c-format
+msgid ""
+"Device: uri = %s\n"
+"        class = %s\n"
+"        info = %s\n"
+"        make-and-model = %s\n"
+msgstr ""
+"Seade: uri = %s\n"
+"       klass = %s\n"
+"       info = %s\n"
+"       valmistaja-ja-mudel = %s\n"
+
+#, c-format
+msgid "lpinfo: cups-get-ppds failed: %s\n"
+msgstr "lpinfo: cups-get-ppds ebaõnnestus: %s\n"
+
+#, c-format
+msgid ""
+"Model:  name = %s\n"
+"        natural_language = %s\n"
+"        make-and-model = %s\n"
+msgstr ""
+"Mudel:  nimi = %s\n"
+"        loomulik_keel = %s\n"
+"        valmistaja-ja-mudel = %s\n"
+
+#, c-format
+msgid "lpmove: Unknown option '%c'!\n"
+msgstr "lpmove: tundmatu võti '%c'!\n"
+
+#, c-format
+msgid "lpmove: Unknown argument '%s'!\n"
+msgstr "lpmove: tundmatu argument '%s'!\n"
+
+msgid "Usage: lpmove job dest\n"
+msgstr "Kasutamine: lpmove töö sihtkoht\n"
+
+#, c-format
+msgid "lpmove: Unable to connect to server: %s\n"
+msgstr "lpmove: ei õnnestu saada ühendust serveriga: %s\n"
+
+#, c-format
+msgid "lpmove: move-job failed: %s\n"
+msgstr "lpmove: move-job ebaõnnestus: %s\n"
+
+msgid "lpoptions: Unknown printer or class!\n"
+msgstr "lpoptions: tundmatu printer või klass!\n"
+
+msgid "lpoptions: No printers!?!\n"
+msgstr "lpoptions: printerit polegi!?!\n"
+
+#, c-format
+msgid "lpoptions: Unable to add printer or instance: %s\n"
+msgstr "lpoptions: ei õnnestu lisada printerit või isendit: %s\n"
+
+#, c-format
+msgid "lpoptions: Destination %s has no PPD file!\n"
+msgstr "lpoptions: sihtkohal %s pole PPD-faili!\n"
+
+#, c-format
+msgid "lpoptions: Unable to open PPD file for %s!\n"
+msgstr "lpoptions: ei õnnestu avada PPD-faili %s jaoks!\n"
+
+msgid ""
+"Usage: lpoptions [-h server] [-E] -d printer\n"
+"       lpoptions [-h server] [-E] [-p printer] -l\n"
+"       lpoptions [-h server] [-E] -p printer -o option[=value] ...\n"
+"       lpoptions [-h server] [-E] -x printer\n"
+msgstr ""
+"Kasutamine: lpoptions [-h server] [-E] -d printer\n"
+"            lpoptions [-h server] [-E] [-p printer] -l\n"
+"            lpoptions [-h server] [-E] -p printer -o võti[=väärtus] ...\n"
+"            lpoptions [-h server] [-E] -x printer\n"
+
+msgid "lppasswd: Only root can add or delete passwords!\n"
+msgstr "lppasswd: ainult administraator (root) võib paroole lisada või kustutada!\n"
+
+msgid "Enter old password:"
+msgstr "Vana parool:"
+
+#, c-format
+msgid "lppasswd: Unable to copy password string: %s\n"
+msgstr "lppasswd: ei õnnestu kopeerida paroolistringi: %s\n"
+
+msgid "Enter password:"
+msgstr "Parool:"
+
+msgid "Enter password again:"
+msgstr "Parool teist korda:"
+
+msgid "lppasswd: Sorry, passwords don't match!\n"
+msgstr "lppasswd: vabandust, paroolid ei kattu!+n"
+
+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 ""
+"lppasswd: vabandust, parool lükati tagasi.\n"
+"Parool peab koosnema vähemalt 6 märgist, ei tohi sisaldada Teie\n"
+"kasutajanime ning peab sisaldama vähemalt üht tähte ja üht numbrit.\n"
+
+msgid "lppasswd: Password file busy!\n"
+msgstr "lppasswd: paroolifail on hõivatud!\n"
+
+#, c-format
+msgid "lppasswd: Unable to open password file: %s\n"
+msgstr "lppasswd: ei õnnestu avada paroolifaili: %s\n"
+
+#, c-format
+msgid "lppasswd: Unable to write to password file: %s\n"
+msgstr "lppasswd: ei õnnestu kirjutada paroolifaili: %s\n"
+
+#, c-format
+msgid "lppasswd: user \"%s\" and group \"%s\" do not exist.\n"
+msgstr "lppasswd: kasutajat \"%s\" ja gruppi \"%s\" ei ole olemas.\n"
+
+msgid "lppasswd: Sorry, password doesn't match!\n"
+msgstr "lppasswd: vabandust , parool ei kattu!\n"
+
+msgid "lppasswd: Password file not updated!\n"
+msgstr "lppasswd: paroolifaili ei uuendatud!\n"
+
+#, c-format
+msgid "lppasswd: failed to backup old password file: %s\n"
+msgstr "lppasswd. vana paroolifaili varundamine ebaõnnestus: %s\n"
+
+#, c-format
+msgid "lppasswd: failed to rename password file: %s\n"
+msgstr "lppasswd: paroolifaili ümbernimetamine ebaõnnestus: %s\n"
+
+msgid "Usage: lppasswd [-g groupname]\n"
+msgstr "Kasutamine: lppasswd [-g grupinimi]\n"
+
+msgid ""
+"Usage: lppasswd [-g groupname] [username]\n"
+"       lppasswd [-g groupname] -a [username]\n"
+"       lppasswd [-g groupname] -x [username]\n"
+msgstr ""
+"Kasutamine: lppasswd [-g grupinimi] [kasutajanimi]\n"
+"            lppasswd [-g grupinimi] -a [kasutajanimi]\n"
+"            lppasswd [-g grupinimi] -x [kasutajanimi]\n"
+
+msgid "Start Printer"
+msgstr "Käivita printer"
+
+msgid "Stop Printer"
+msgstr "Peata printer"
+
+msgid "Start Class"
+msgstr "Käivita klass"
+
+msgid "Stop Class"
+msgstr "Peata klass"
+
+msgid "Accept Jobs"
+msgstr "Nõustu töödega"
+
+msgid "Reject Jobs"
+msgstr "Lükka tööd tagasi"
+
+msgid "Purge Jobs"
+msgstr "Puhasta tööd"
+
+msgid "Set As Default"
+msgstr "Määra vaikeväärtuseks"
+
+msgid "Administration"
+msgstr "Haldus"
+
+msgid "Modify Class"
+msgstr "Klassi muutmine"
+
+msgid "Add Class"
+msgstr "Klassi lisamine"
+
+msgid "The class name may only contain up to 127 printable characters and may not contain spaces, slashes (/), or the pound sign (#)."
+msgstr ""
+"Klassi nimes tohib olla ainult kuni 127 trükitavat märki ning selles ei tohi sisalduda tühikuid, "
+"kaldkriipse (/) ega trelle (#)."
+
+msgid "Unable to modify class:"
+msgstr "Klassi muutmine ebaõnnestus:"
+
+msgid "Unable to add class:"
+msgstr "Klassi lisamine ebaõnnestus:"
+
+msgid "Modify Printer"
+msgstr "Printeri muutmine"
+
+msgid "Add Printer"
+msgstr "Printeri lisamine"
+
+msgid "The printer name may only contain up to 127 printable characters and may not contain spaces, slashes (/), or the pound sign (#)."
+msgstr ""
+"Printeri nimes tohib olla ainult kuni 127 trükitavat märki ning selles ei tohi sisalduda tühikuid, "
+"kaldkriipse (/) ega trelle (#)."
+
+msgid "Unable to get list of printer drivers:"
+msgstr "Printeridraiverite loendi hankimine ebaõnnestus:"
+
+msgid "Unable to modify printer:"
+msgstr "Printeri muutmine ebaõnnestus:"
+
+msgid "Unable to add printer:"
+msgstr "Printeri lisamine ebaõnnestus:"
+
+msgid "Set Printer Options"
+msgstr "Printeri valikute määramine"
+
+msgid "Missing form variable!"
+msgstr "Puudub vormi muutuja!"
+
+msgid "Unable to get PPD file!"
+msgstr "PPD-faili hankimine ebaõnnestus!"
+
+msgid "Unable to open PPD file:"
+msgstr "PPD-faili avamine ebaõnnestus:"
+
+msgid "Banners"
+msgstr "Bännerid"
+
+msgid "Starting Banner"
+msgstr "Alustav bänner"
+
+msgid "Ending Banner"
+msgstr "Lõpetav bänner"
+
+msgid "Policies"
+msgstr "Reeglid"
+
+msgid "Error Policy"
+msgstr "Veareegel"
+
+msgid "Operation Policy"
+msgstr "Toimimisreegel"
+
+msgid "PS Binary Protocol"
+msgstr "PS binaarprotokoll"
+
+msgid "None"
+msgstr "Puudub"
+
+msgid "Unable to set options:"
+msgstr "Valikute määramine ebaõnnestus:"
+
+msgid "Change Settings"
+msgstr "Seadistuste muutmine"
+
+msgid "Unable to change server settings:"
+msgstr "Serveri seadistuste muutmine ebaõnnestus:"
+
+msgid "Unable to upload cupsd.conf file:"
+msgstr "Faili cupsd.conf üleslaadimine ebaõnnestus:"
+
+msgid "Edit Configuration File"
+msgstr "Seadistustefaili muutmine"
+
+msgid "Unable to create temporary file:"
+msgstr "Ajutise faili loomine ebaõnnestus:"
+
+msgid "Unable to access cupsd.conf file:"
+msgstr "Ligipääs failile cupsd.conf ebaõnnestus:"
+
+msgid "Unable to edit cupsd.conf files larger than 1MB!"
+msgstr "Suurema cupsd.conf faili kui 1 MB muutmine ei ole võimalik!"
+
+msgid "Delete Class"
+msgstr "Klassi kustutamine"
+
+msgid "Unable to delete class:"
+msgstr "Klassi kustutamine ebaõnnestus:"
+
+msgid "Delete Printer"
+msgstr "Printeri kustutamine"
+
+msgid "Unable to delete printer:"
+msgstr "Printeri kustutamine ebaõnnestus:"
+
+msgid "Export Printers to Samba"
+msgstr "Printerite eksport Sambasse"
+
+msgid "Unable to fork process!"
+msgstr "Protsessi harutamine ebaõnnestus!"
+
+msgid "Unable to connect to server!"
+msgstr "Ühendumine serveriga ebaõnnestus!"
+
+msgid "Unable to get printer attributes!"
+msgstr "Printeri atribuutide hankimine ebaõnnestus!"
+
+msgid "Unable to convert PPD file!"
+msgstr "PPD-faili teisendamine ebaõnnestus!"
+
+msgid "Unable to copy Windows 2000 printer driver files!"
+msgstr "Windows 2000 printeridraiverifailide kopeerimine ebaõnnestus!"
+
+msgid "Unable to install Windows 2000 printer driver files!"
+msgstr "Windows 2000 printeridraiverifailide paigaldamine ebaõnnestus!"
+
+msgid "Unable to copy Windows 9x printer driver files!"
+msgstr "Windows 9x printeridraiverifailide kopeerimine ebaõnnestus!"
+
+msgid "Unable to install Windows 9x printer driver files!"
+msgstr "Windows 9x printeridraiverifailide paigaldamine ebaõnnestus!"
+
+msgid "Unable to set Windows printer driver!"
+msgstr "Windowsi printeridraiveri määramine ebaõnnestus!"
+
+msgid "No printer drivers found!"
+msgstr "Printeridraivereid ei leitud!"
+
+msgid "Unable to execute cupsaddsmb command!"
+msgstr "Käsu cupsaddsmb täitmine ebaõnnestus!"
+
+#, c-format
+msgid "cupsaddsmb failed with status %d"
+msgstr "cupsaddsmb ebaõnnestus olekuga %d"
+
+#, c-format
+msgid "cupsaddsmb crashed on signal %d"
+msgstr "cupsaddsmb elas üle krahhi signaaliga %d"
+
+msgid "A Samba username is required to export printer drivers!"
+msgstr "Printeridraiverite ekspordiks on nõutav Samba kasutajanimi!"
+
+msgid "A Samba password is required to export printer drivers!"
+msgstr "Printeridraiverite ekspordiks on nõutav Samba parool!"
+
+msgid "Unable to open cupsd.conf file:"
+msgstr "Faili cupsd.conf avaline ebaõnnestus:"
+
+msgid "Unable to change printer:"
+msgstr "Printeri muutmine ebaõnnestus:"
+
+msgid "Set Allowed Users"
+msgstr "Lubatud kasutajate määramine"
+
+msgid "Unable to get printer attributes:"
+msgstr "Printeri atribuutide hankimine ebaõnnestus:"
+
+msgid "Set Publishing"
+msgstr "Avaldamise määramine"
+
+msgid "Unable to change printer-is-shared attribute:"
+msgstr "Atribuudi printer-is-shared muutmine ebaõnnestus:"
+
+msgid "Classes"
+msgstr "Klassid"
+
+msgid "Unable to get class list:"
+msgstr "Klassiloendi hankimine ebaõnnestus:"
+
+msgid "Unable to get class status:"
+msgstr "Klassi oleku hankimine ebaõnnestus:"
+
+msgid "Move Job"
+msgstr "Töö liigutamine"
+
+msgid "Unable to find destination for job!"
+msgstr "Tööle ei leitud sihtkohta!"
+
+msgid "Move All Jobs"
+msgstr "Kõigi tööde liigutamine"
+
+msgid "Unable to move job"
+msgstr "Töö liigutamine ebaõnnestus"
+
+msgid "Unable to move jobs"
+msgstr "Tööde liigutamine ebaõnnestus"
+
+msgid "Print Test Page"
+msgstr "Testlehekülje trükkimine"
+
+msgid "Unable to print test page:"
+msgstr "Testlehekülje trükkimine ebaõnnestus:"
+
+msgid "Jobs"
+msgstr "Tööd"
+
+msgid "Job operation failed:"
+msgstr "Töötoiming ebaõnnestus:"
+
+msgid "Printers"
+msgstr "Printerid"
+
+msgid "Unable to get printer list:"
+msgstr "Printeriloendi hankimine ebaõnnestus:"
+
+msgid "Unable to get printer status:"
+msgstr "Printeri oleku hankimine ebaõnnestus:"
+
+msgid "OK"
+msgstr "OK"
+
+msgid "Unable to open PPD file"
+msgstr "PPD-faili avamine ebaõnnestus"
+
+msgid "NULL PPD file pointer"
+msgstr "NULL PPD-faili viit"
+
+msgid "Memory allocation error"
+msgstr "Mälueralduse viga"
+
+msgid "Missing PPD-Adobe-4.x header"
+msgstr "Puudub PPD-Adobe-4.x päis"
+
+msgid "Missing value string"
+msgstr "Puudub väärtusestring"
+
+msgid "Internal error"
+msgstr "Sisemine viga"
+
+msgid "Bad OpenGroup"
+msgstr "Vigane OpenGroup"
+
+msgid "OpenGroup without a CloseGroup first"
+msgstr "OpenGroup ilma eelneva CloseGroup"
+
+msgid "Bad OpenUI/JCLOpenUI"
+msgstr "Vigane OpenUI/JCLOpenUI"
+
+msgid "OpenUI/JCLOpenUI without a CloseUI/JCLCloseUI first"
+msgstr "OpenUI/JCLOpenUI ilma eelneva CloseUI/JCLCloseUI"
+
+msgid "Bad OrderDependency"
+msgstr "Vigane OrderDependency"
+
+msgid "Bad UIConstraints"
+msgstr "Vigane UIConstraints"
+
+msgid "Missing asterisk in column 1"
+msgstr "Puudub tärn veerus 1"
+
+msgid "Line longer than the maximum allowed (255 characters)"
+msgstr "Rida lubatust pikem (255 märki)"
+
+msgid "Illegal control character"
+msgstr "Lubamatu juhtmärk"
+
+msgid "Illegal main keyword string"
+msgstr "Lubamatu peamine võtmesõnastring"
+
+msgid "Illegal option keyword string"
+msgstr "Lubamatu võtme võtmesõnastring"
+
+msgid "Illegal translation string"
+msgstr "Lubamatu tõlkestring"
+
+msgid "Illegal whitespace character"
+msgstr "Lubamatu tühimärk"
+
+msgid "Bad custom parameter"
+msgstr "Vigane kohandatud parameeter"
+
+msgid "Unknown"
+msgstr "Teadmata"
+
+msgid "Custom"
+msgstr "Kohandatud"
+
+msgid "JCL"
+msgstr "JCL"
+
+msgid "No authentication information provided!"
+msgstr "Autentimisinfot pole antud!"
+
+#, c-format
+msgid "Password for %s required to access %s via SAMBA: "
+msgstr "%s vajab parooli pääsemaks ligi %s SAMBA kaudu: "
+
+#, c-format
+msgid "Running command: %s %s -N -U '%s%%%s' -c '%s'\n"
+msgstr "Käivitatakse käsk: %s %s -N -U '%s%%%s' -c '%s'\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to run \"%s\": %s\n"
+msgstr "cupsaddsmb: \"%s\" käivitamine ebaõnnestus: %s\n"
+
+msgid "cupsaddsmb: No Windows printer drivers are installed!\n"
+msgstr "cupsaddsmb: ühtegi Windowsi printeridraiverit pole paigaldatud!\n"
+
+msgid "cupsaddsmb: Warning, no Windows 2000 printer drivers are installed!\n"
+msgstr "cupsaddsmb: hoiatus - ühtegi Windows 2000 printeridraiverit pole paigaldatud!\n"
+
+#, c-format
+msgid "lpadmin: Printer %s is already a member of class %s.\n"
+msgstr "lpadmin: printer %s on juba klassi %s liige.\n"
+
+msgid "lpadmin: No member names were seen!\n"
+msgstr "lpadmin: ei nähtud ühtegi liikme nime!\n"
+
+#, c-format
+msgid "lpadmin: Printer %s is not a member of class %s.\n"
+msgstr "lpadmin: printer %s ei ole klassi %s liige.\n"
+
+#, c-format
+msgid ""
+"Device: uri = %s\n"
+"        class = %s\n"
+"        info = %s\n"
+"        make-and-model = %s\n"
+"        device-id = %s\n"
+msgstr ""
+"Seade: uri = %s\n"
+"       klass = %s\n"
+"       info = %s\n"
+"       valmistaja-ja-mudel = %s\n"
+"       seadme-id = %s\n"
+
+#, c-format
+msgid ""
+"Model:  name = %s\n"
+"        natural_language = %s\n"
+"        make-and-model = %s\n"
+"        device-id = %s\n"
+msgstr ""
+"Mudel:  nimi = %s\n"
+"        loomulik_keel = %s\n"
+"        valmistaja-ja-mudel = %s\n"
+"        seadme-id = %s\n"
+
+msgid "Usage: lpmove job/src dest\n"
+msgstr "Kasutamine: lpmove töö/lähtekoht sihtkoht\n"
+
+msgid "lpstat: Need \"completed\", \"not-completed\", or \"all\" after -W!\n"
+msgstr "lpstat: pärast -W on vajalik \"completed\", \"not-completed\" või \"all\"!\n"
+
+#, c-format
+msgid "%s accepting requests since %s\n"
+msgstr "%s võtab soove vastu alates %s\n"
+
+#, c-format
+msgid ""
+"%s not accepting requests since %s -\n"
+"\t%s\n"
+msgstr ""
+"%s ei võta soove vastu alates %s -\n"
+"\t%s\n"
+
+#, c-format
+msgid "%s/%s accepting requests since %s\n"
+msgstr "%s/%s võtab soove vastu alates %s\n"
+
+#, c-format
+msgid ""
+"%s/%s not accepting requests since %s -\n"
+"\t%s\n"
+msgstr ""
+"%s/%s ei võta soove vastu alates %s -\n"
+"\t%s\n"
+
+msgid "lpc> "
+msgstr "lpc> "
+
+#, c-format
+msgid "%s: Unable to contact server!\n"
+msgstr "%s: ei õnnestu saada ühendust serveriga!\n"
+
+#, c-format
+msgid "%s: Error - expected username after '-U' option!\n"
+msgstr "%s: viga - võtme '-U' järel oodati kasutajanime!\n"
+
+#, c-format
+msgid "%s: Error - unknown destination \"%s/%s\"!\n"
+msgstr "%s: viga - tundmatu sihtkoht \"%s/%s\"!\n"
+
+#, c-format
+msgid "%s: Unknown destination \"%s\"!\n"
+msgstr "%s: tundmatu sihtkoht \"%s\"!\n"
+
+#, c-format
+msgid "%s: Error - expected hostname after '-h' option!\n"
+msgstr "%s: viga - võtme '-h' järel oodati masinanime!\n"
+
+#, c-format
+msgid "%s: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr "%s: viga - %s keskkonnamuutuja nimetab olematu sihtkoha \"%s\"!\n"
+
+#, c-format
+msgid "%s: error - no default destination available.\n"
+msgstr "%s: viga - vaikimisi sihtkoht pole saadaval.\n"
+
+msgid "Usage: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]\n"
+msgstr "Kasutamine: lpq [-P sihtkoht] [-U kasutajanimi] [-h masinanimi[:port]] [-l] [+intervall]\n"
+
+#, c-format
+msgid "%s: Error - expected hostname after '-H' option!\n"
+msgstr "%s: viga - võtme '-H' järel oodati masinanime!\n"
+
+#, c-format
+msgid "%s: Error - expected value after '-%c' option!\n"
+msgstr "%s: viga - võtme '-%c' järel oodati väärtust!\n"
+
+#, c-format
+msgid "%s: Warning - '%c' format modifier not supported - output may not be correct!\n"
+msgstr "%s: hoiatus - '%c' vormingus modifikaator pole toetatud - väljund võib olla vigane!\n"
+
+#, c-format
+msgid "%s: error - expected option=value after '-o' option!\n"
+msgstr "%s: viga - võtme '-o' järel oodati võti=väärtus!\n"
+
+#, c-format
+msgid "%s: Error - expected destination after '-P' option!\n"
+msgstr "%s: viga - võtme '-P' järel oodati sihtkohta!\n"
+
+#, c-format
+msgid "%s: Error - expected copy count after '-#' option!\n"
+msgstr "%s: viga - võtme '-#' järel oodati koopiate arvu!\n"
+
+#, c-format
+msgid "%s: Error - expected name after '-%c' option!\n"
+msgstr "%s: viga - võtme '-%c' järel oodati nime!\n"
+
+#, c-format
+msgid "%s: Error - unknown option '%c'!\n"
+msgstr "%s: viga - tundmatu võti '%c'!\n"
+
+#, c-format
+msgid "%s: Error - unable to access \"%s\" - %s\n"
+msgstr "%s: viga - ei õnnestu ligipääs \"%s\" - %s\n"
+
+#, c-format
+msgid "%s: Error - too many files - \"%s\"\n"
+msgstr "%s: viga - liiga palju faile - \"%s\"\n"
+
+#, c-format
+msgid "%s: Error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr "%s: viga - %s keskkonnamuutuja nimetab olematu sihtkoha \"%s\"!\n"
+
+#, c-format
+msgid "%s: Error - no default destination available.\n"
+msgstr "%s: viga - vaikimisi sihtkoht pole saadaval.\n"
+
+#, c-format
+msgid "%s: Error - scheduler not responding!\n"
+msgstr "%s: viga - ajastaja ei vasta!\n"
+
+#, c-format
+msgid "%s: Error - unable to create temporary file \"%s\" - %s\n"
+msgstr "%s: viga - ei õnnestu luua ajutist faili \"%s\" - %s\n"
+
+#, c-format
+msgid "%s: Error - unable to write to temporary file \"%s\" - %s\n"
+msgstr "%s: viga - ei õnnestu kirjutada ajutisse faili \"%s\" - %s\n"
+
+#, c-format
+msgid "%s: Error - stdin is empty, so no job has been sent.\n"
+msgstr "%s: viga - standardsisend on tühi, ühtegi tööd ei saadetud.\n"
+
+#, c-format
+msgid "%s: Error - unknown destination \"%s\"!\n"
+msgstr "%s: viga - tundmatu sihtkoht \"%s\"!\n"
+
+#, c-format
+msgid "%s: Error - expected reason text after '-r' option!\n"
+msgstr "%s: viga - võtme '-r' järel oodati teksti!\n"
+
+#, c-format
+msgid "%s: Error - expected username after '-u' option!\n"
+msgstr "%s: viga - võtme '-u' järel oodati kasutajanime!\n"
+
+#, c-format
+msgid "%s: %s failed: %s\n"
+msgstr "%s: %s ebaõnnestus: %s\n"
+
+#, c-format
+msgid "%s: Error - expected destination after '-d' option!\n"
+msgstr "%s: viga - võtme '-d' järel oodati sihtkohta!\n"
+
+#, c-format
+msgid "%s: Error - expected form after '-f' option!\n"
+msgstr "%s: viga - võtme '-f' järel oodati vormi!\n"
+
+#, c-format
+msgid "%s: Warning - form option ignored!\n"
+msgstr "%s: hoiatus - vormivõtit ignoreeritakse!\n"
+
+#, c-format
+msgid "%s: Expected job ID after '-i' option!\n"
+msgstr "%s: võtme '-i' järel oodati töö ID-d!\n"
+
+#, c-format
+msgid "%s: Error - cannot print files and alter jobs simultaneously!\n"
+msgstr "%s: viga - faile trükkida ja töid muuta ei saa ühel ajal!\n"
+
+#, c-format
+msgid "%s: Error - bad job ID!\n"
+msgstr "%s: viga - vigane töö ID!\n"
+
+#, c-format
+msgid "%s: Error - expected copies after '-n' option!\n"
+msgstr "%s: viga - võtme '-n' järel oodati koopiaid!\n"
+
+#, c-format
+msgid "%s: Error - expected option string after '-o' option!\n"
+msgstr "%s: viga - võtme '-o' järel oodati võtmestringi!\n"
+
+#, c-format
+msgid "%s: Error - expected priority after '-%c' option!\n"
+msgstr "%s: viga - võtme '-%c' järel oodati prioriteeti!\n"
+
+#, c-format
+msgid "%s: Error - priority must be between 1 and 100.\n"
+msgstr "%s: viga - prioriteet peab olema vahemikus 1 kuni 100.\n"
+
+#, c-format
+msgid "%s: Error - expected title after '-t' option!\n"
+msgstr "%s: viga - võtme '-t' järel oodati tiitlit!\n"
+
+#, c-format
+msgid "%s: Error - expected mode list after '-y' option!\n"
+msgstr "%s: viga - võtme '-y' järel oodati režiimiloendit!\n"
+
+#, c-format
+msgid "%s: Warning - mode option ignored!\n"
+msgstr "%s: hoiatus - režiimivõtit ignoreeritakse!\n"
+
+#, c-format
+msgid "%s: Error - expected hold name after '-H' option!\n"
+msgstr "%s: viga - võtme '-H' järel oodati hoitava nime!\n"
+
+#, c-format
+msgid "%s: Need job ID ('-i jobid') before '-H restart'!\n"
+msgstr "%s: enne '-H restart' on vajalik töö ID ('-i tööid')!\n"
+
+#, c-format
+msgid "%s: Error - expected page list after '-P' option!\n"
+msgstr "%s: viga - võtme '-P' järel oodati leheloendit!\n"
+
+#, c-format
+msgid "%s: Error - expected character set after '-S' option!\n"
+msgstr "%s: viga - võtme '-S' järel oodati märgistikku!\n"
+
+#, c-format
+msgid "%s: Warning - character set option ignored!\n"
+msgstr "%s: hoiatus - märgistikuvõtit ignoreeritakse!\n"
+
+#, c-format
+msgid "%s: Error - expected content type after '-T' option!\n"
+msgstr "%s: viga - võtme '-T' järel oodati sisu tüüpi!\n"
+
+#, c-format
+msgid "%s: Warning - content type option ignored!\n"
+msgstr "%s: hoiatus - sisu tüübi võtit ignoreeritakse!\n"
+
+#, c-format
+msgid "%s: Error - cannot print from stdin if files or a job ID are provided!\n"
+msgstr "%s: viga - standardsisendist ei saa trükkida, kui antud on failid või töö ID!\n"
+
+#, c-format
+msgid "%s: Error - need \"completed\", \"not-completed\", or \"all\" after '-W' option!\n"
+msgstr "%s: viga - võtme '-W' järel on vajalik \"completed\", \"not-completed\" või \"all\"!\n"
+
+#, c-format
+msgid "%s: Error - expected destination after '-b' option!\n"
+msgstr "%s: viga - võtme '-b' järel oodati sihtkohta!\n"
+
+#, c-format
+msgid "%s: Invalid destination name in list \"%s\"!\n"
+msgstr "%s: vigane sihtkoha nimi loendis \"%s\"!\n"
+
+#, c-format
+msgid "%s: Unable to connect to server\n"
+msgstr "%s: ei õnnestu saada ühendust serveriga\n"
+
+msgid "Print Job:"
+msgstr "Trükitöö:"
+
+msgid "pending"
+msgstr "ootel"
+
+msgid "held"
+msgstr "hoitud"
+
+msgid "processing"
+msgstr "töötlemisel"
+
+msgid "stopped"
+msgstr "peatatud"
+
+msgid "canceled"
+msgstr "katkestatud"
+
+msgid "aborted"
+msgstr "loobutud"
+
+msgid "completed"
+msgstr "lõpetatud"
+
+msgid "unknown"
+msgstr "teadmata"
+
+msgid "untitled"
+msgstr "nimeta"
+
+msgid "Printer:"
+msgstr "Printer:"
+
+msgid "idle"
+msgstr "jõude"
+
+msgid "Missing notify-subscription-ids attribute!"
+msgstr "Puudub notify-subscription-ids atribuut!"
+
+msgid "Job subscriptions cannot be renewed!"
+msgstr "Töötellimusi ei saa uuendada!"
+
+msgid "cupsd: Expected config filename after \"-c\" option!\n"
+msgstr "cupsd: võtme \"-c\" järel oodati seadistustefaili nime!\n"
+
+msgid "cupsd: launchd(8) support not compiled in, running in normal mode.\n"
+msgstr "cupsd: launchd(8) toetus pole kompileeritud, käivitatakse tavarežiimis.\n"
+
+#, c-format
+msgid "cupsd: Unknown option \"%c\" - aborting!\n"
+msgstr "cupsd: tundmatu võti \"%c\" - loobutakse!\n"
+
+#, c-format
+msgid "cupsd: Unknown argument \"%s\" - aborting!\n"
+msgstr "cupsd: tundmatu argument \"%s\" - loobutakse!\n"
+
+msgid ""
+"Usage: cupsd [-c config-file] [-f] [-F] [-h] [-l]\n"
+"\n"
+"-c config-file      Load alternate configuration file\n"
+"-f                  Run in the foreground\n"
+"-F                  Run in the foreground but detach\n"
+"-h                  Show this usage message\n"
+"-l                  Run cupsd from launchd(8)\n"
+msgstr ""
+"Kasutamine: cupsd [-c seadistustefail] [-f] [-F] [-h] [-l]\n"
+"\n"
+"-c seadistustefail      Alternatiivse seadistustefaili laadimine\n"
+"-f                      Käivitamine esiplaanil\n"
+"-F                      Käivitamine esiplaanil, aga lahtihaagituna\n"
+"-h                      Kasutamisteate näitamine\n"
+"-l                      cupsd käivitamine launchd(8) pealt\n"
+
+#, c-format
+msgid "        WARN    Line %d only contains whitespace!\n"
+msgstr "        HOIATUS    Rida %d sisaldab ainult tühikut!\n"
+
+msgid "        WARN    File contains a mix of CR, LF, and CR LF line endings!\n"
+msgstr "        HOIATUS    Fail sisaldab CR. LF ja CR LF reavahetuste segu!\n"
+
+msgid "        WARN    Non-Windows PPD files should use lines ending with only LF, not CR LF!\n"
+msgstr "        HOIATUS    Mitte-Windowsi PPD-failid peavad kasutama ainult LF, mitte CR LF reavahetusi!\n"
+
+msgid "Printer Maintenance"
+msgstr "Printeri hooldus"
+
+msgid "Unable to send maintenance job:"
+msgstr "Hooldustöö saatmine ebaõnnestus:"
+
+#, c-format
+msgid "cupsaddsmb: No PPD file for printer \"%s\" - %s\n"
+msgstr "cupsaddsmb: puudub PPD-fail printerile \"%s\" - %s\n"
+
+#, c-format
+msgid "      **FAIL**  %s %s does not exist!\n"
+msgstr "      **EBAÕNN**  %s %s ei ole olemas!\n"
+
+#, c-format
+msgid "      **FAIL**  Bad language \"%s\"!\n"
+msgstr "      **EBAÕNN**  Vigane keel \"%s\"!\n"
+
+#, c-format
+msgid "      **FAIL**  Missing \"%s\" translation string for option %s!\n"
+msgstr "      **EBAÕNN**  Puudub \"%s\" tõlkestring võtmele %s!\n"
+
+#, c-format
+msgid "      **FAIL**  Default translation string for option %s contains 8-bit characters!\n"
+msgstr "      **EBAÕNN**  Vaikimisi tõlkestring võtmele %s sisaldab 8-bitiseid märke!\n"
+
+#, c-format
+msgid "      **FAIL**  Missing \"%s\" translation string for option %s, choice %s!\n"
+msgstr "      **EBAÕNN**  Puudub \"%s\" tõlkestring võtmele %s, valikule %s!\n"
+
+#, c-format
+msgid "      **FAIL**  Default translation string for option %s choice %s contains 8-bit characters!\n"
+msgstr "      **EBAÕNN**  Vaikimisi tõlkestring võtmele %s, valikule %s sisaldab 8-bitiseid märke!\n"
+
+#, c-format
+msgid "      **FAIL**  Bad cupsFilter value \"%s\"!\n"
+msgstr "      **EBAÕNN**  Vigane cupsFilter väärtus \"%s\"!\n"
+
+msgid "Help"
+msgstr "Abi"
+
+#, c-format
+msgid "Missing value on line %d!\n"
+msgstr "Puudub väärtus real %d!\n"
+
+#, c-format
+msgid "Missing double quote on line %d!\n"
+msgstr "Puuduvad topeltjutumärgid real %d!\n"
+
+#, c-format
+msgid "Bad option + choice on line %d!\n"
+msgstr "Vigane võti + valik real %d!\n"
+
+#, c-format
+msgid "Unable to copy Windows 2000 printer driver files (%d)!\n"
+msgstr "Ei õnnestu kopeerida Windows 2000 printeridraiverifaile (%d)!\n"
+
+#, c-format
+msgid "Unable to copy CUPS printer driver files (%d)!\n"
+msgstr "Ei õnnestu kopeerida CUPS-i printeridraiverifaile (%d)!\n"
+
+#, c-format
+msgid "Unable to install Windows 2000 printer driver files (%d)!\n"
+msgstr "Ei õnnestu paigaldada Windows 2000 printeridraiverifaile (%d)!\n"
+
+#, c-format
+msgid "Unable to copy Windows 9x printer driver files (%d)!\n"
+msgstr "Ei õnnestu kopeerida Windows 9x printeridraiverifaile (%d)!\n"
+
+#, c-format
+msgid "Unable to install Windows 9x printer driver files (%d)!\n"
+msgstr "Ei õnnestu paigaldada Winodws 9x printeridraiverifaile (%d)!\n"
+
+msgid "No Windows printer drivers are installed!\n"
+msgstr "Ühtegi Windowsi printeridraiverit pole paigaldatud!+n"
+
+msgid "Warning, no Windows 2000 printer drivers are installed!\n"
+msgstr "Hoiatus - ühtegi Windows 2000 printeridraiverit pole paigaldatud!\n"
+
+#, c-format
+msgid "Unable to set Windows printer driver (%d)!\n"
+msgstr "Ei õnnestu määrata Windowsi printeridraiverit (%d)!\n"
+
+msgid ""
+"Usage: cupsaddsmb [options] printer1 ... printerN\n"
+"       cupsaddsmb [options] -a\n"
+"\n"
+"Options:\n"
+"  -E               Encrypt the connection to the server\n"
+"  -H samba-server  Use the named SAMBA server\n"
+"  -U samba-user    Authenticate using the named SAMBA user\n"
+"  -a               Export all printers\n"
+"  -h cups-server   Use the named CUPS server\n"
+"  -v               Be verbose (show commands)\n"
+msgstr ""
+"Kasutamine: cupsaddsmb [võtmed] printer1 ... printerN\n"
+"            cupsaddsmb [võtmed] -a\n"
+"\n"
+"Options:\n"
+"  -E                   Ühenduse krüptimine serveriga\n"
+"  -H samba-server      Määratud SAMBA-serveri kasutamine\n"
+"  -U samba-kasutaja    Määratud SAMBA kasutajaga autentimine\n"
+"  -a                   Kõigi printerite eksportimine\n"
+"  -h cups-server       Määratud CUPS-serveri kasutamine\n"
+"  -v                   Häälekus (käskude näitamine)\n"
+
+#, c-format
+msgid "Unable to copy Windows 2000 printer driver files (%d)!"
+msgstr "Ei õnnestu kopeerida Windows 2000 printeridraiverifaile (%d)!"
+
+#, c-format
+msgid "Unable to copy CUPS printer driver files (%d)!"
+msgstr "Ei õnnestu kopeerida CUPS-i printeridraiverifaile (%d)!"
+
+#, c-format
+msgid "Unable to install Windows 2000 printer driver files (%d)!"
+msgstr "Ei õnnestu paigaldada Windows 2000 printeridraiverifaile (%d)!"
+
+#, c-format
+msgid "Unable to copy Windows 9x printer driver files (%d)!"
+msgstr "Ei õnnestu kopeerida Windows 9x printeridraiverifaile (%d)!"
+
+#, c-format
+msgid "Unable to install Windows 9x printer driver files (%d)!"
+msgstr "Ei õnnestu paigaldada Windows 9x printeridraiverifaile (%d)!"
+
+msgid "No Windows printer drivers are installed!"
+msgstr "Ühtegi Windowsi printeridraiverit pole paigaldatud!"
+
+msgid "Warning, no Windows 2000 printer drivers are installed!"
+msgstr "Hoiatus - ühtegi Windows 2000 printeridraiverit pole paigaldatud!"
+
+#, c-format
+msgid "open of %s failed: %s"
+msgstr "%s avamine ebaõnnestus: %s"
+
+#, c-format
+msgid "Running command: %s %s -N -A %s -c '%s'\n"
+msgstr "Käivitatakse käsk: %s %s -N -A %s -c '%s'\n"
+
+#, c-format
+msgid "stat of %s failed: %s"
+msgstr "%s stat ebaõnnestus: %s"
+
+#, c-format
+msgid "Job #%d is already cancelled - can't cancel."
+msgstr "Töö nr %d on juba katkestatud - enam ei saa katkestada."
+
+#, c-format
+msgid "Job #%d is already aborted - can't cancel."
+msgstr "Tööst nr %d on juba loobutud - enam ei saa katkestada."
+
+#, c-format
+msgid "Job #%d is already completed - can't cancel."
+msgstr "Töö nr %d on juba lõpetatud - enam ei saa katkestada."
+
+#, c-format
+msgid "You must access this page using the URL <A HREF=\"https://%s:%d%s\">https://%s:%d%s</A>."
+msgstr "Sellele leheküljele pääseb URL-iga <A HREF=\"https://%s:%d%s\">https://%s:%d%s</A>."
+
+#, c-format
+msgid "Unsupported format '%s'!"
+msgstr "Toetamata vorming '%s'!"
+
+msgid "FAIL\n"
+msgstr "EBAÕNN\n"
+
+#, c-format
+msgid ""
+"    Line %d is longer than 255 characters (%d)!\n"
+"        REF: Page 25, Line Length\n"
+msgstr ""
+"    Rida %d on pikem kui 255 märki (%d)!\n"
+"        Viide: lk 25, Line Length\n"
+
+msgid ""
+"    Missing %!PS-Adobe-3.0 on first line!\n"
+"        REF: Page 17, 3.1 Conforming Documents\n"
+msgstr ""
+"    Puudub %!PS-Adobe-3.0 esimesel real!\n"
+"        Viide: lk 17, 3.1 Conforming Documents\n"
+
+#, c-format
+msgid ""
+"    Bad %%%%Pages: on line %d!\n"
+"        REF: Page 43, %%%%Pages:\n"
+msgstr ""
+"    Vigane %%%%Pages: real %d!\n"
+"        Viide: lk 43, %%%%Pages:\n"
+
+#, c-format
+msgid ""
+"    Bad %%%%BoundingBox: on line %d!\n"
+"        REF: Page 39, %%%%BoundingBox:\n"
+msgstr ""
+"    Vigane %%%%BoundingBox: real %d!\n"
+"        Viide: lk 39, %%%%BoundingBox:\n"
+
+#, c-format
+msgid ""
+"    Bad %%%%Page: on line %d!\n"
+"        REF: Page 53, %%%%Page:\n"
+msgstr ""
+"    Vigane %%%%Page: real %d!\n"
+"        Viide: lk 53, %%%%Page:\n"
+
+#, c-format
+msgid ""
+"    Missing or bad %%BoundingBox: comment!\n"
+"        REF: Page 39, %%BoundingBox:\n"
+msgstr ""
+"    Puuduv või vigane %%BoundingBox: kommentaar!\n"
+"        Viide: lk 39, %%BoundingBox:\n"
+
+#, c-format
+msgid ""
+"    Missing or bad %%Pages: comment!\n"
+"        REF: Page 43, %%Pages:\n"
+msgstr ""
+"    Puuduv või vigane %%Pages: kommentaar!\n"
+"        Viide: lk 43, %%Pages:\n"
+
+#, c-format
+msgid ""
+"    Missing %%EndComments comment!\n"
+"        REF: Page 41, %%EndComments\n"
+msgstr ""
+"    Puudub %%EndComments kommentaar!\n"
+"        Viide: lk 41, %%EndComments\n"
+
+#, c-format
+msgid ""
+"    Missing or bad %%Page: comments!\n"
+"        REF: Page 53, %%Page:\n"
+msgstr ""
+"    Puuduvad või vigased %%Page: kommentaarid!\n"
+"        Viide: lk 53, %%Page:\n"
+
+#, c-format
+msgid "    Too many %%EndDocument comments!\n"
+msgstr "    Liiga palju %%EndDocument kommentaare!\n"
+
+#, c-format
+msgid "    Too many %%BeginDocument comments!\n"
+msgstr "    Liiga palju %%BeginDocument kommentaare!\n"
+
+#, c-format
+msgid "    Saw %d lines that exceeded 255 characters!\n"
+msgstr "    Nähti %d rida, mis ületas 255 märgi piiri!+n"
+
+msgid "PASS\n"
+msgstr "SOORITATUD\n"
+
+msgid "    Warning: file contains binary data!\n"
+msgstr "    Hoiatus: fail sisaldab binaarandmeid!\n"
+
+#, c-format
+msgid "    Warning: obsolete DSC version %.1f in file!\n"
+msgstr "    Hoiatus: iganenud DSC versioon %.1f failis!\n"
+
+#, c-format
+msgid "    Warning: no %%EndComments comment in file!\n"
+msgstr "    Hoiatus: failis puudub %%EndComments kommentaar!\n"
+
+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 ""
+"Kasutamine: cupstestdsc [võtmed] failinimi.ps [... failinimi.ps]\n"
+"            cupstestdsc [võtmed] -\n"
+"\n"
+"Võtmed:\n"
+"\n"
+"    -h       Programmi kasutamise näitamine\n"
+"\n"
+"    Märkus: see programm kontrollib ainult DSC kommentaare, mitte PostScripti ennast.\n"
+
+#, c-format
+msgid "Password for %s on %s? "
+msgstr "Parool %s jaoks masinas %s? "
+
+msgid ""
+"      **FAIL**  1284DeviceId must be 1284DeviceID!\n"
+"                REF: Page 72, section 5.5\n"
+msgstr ""
+"      **EBAÕNN**  1284DeviceId peab olema 1284DeviceID!\n"
+"                  Viide: lk 72, sektsioon 5.5\n"
+
+
index 55cc91c859f8528c9a2c500f8b5d119548bb24b2..9fd43137dd543949c14fb78970949b39f237af0a 100644 (file)
@@ -1,5 +1,5 @@
 .\"
 .\"
-.\" "$Id: cupsaddsmb.man.in 5645 2006-06-13 19:20:58Z mike $"
+.\" "$Id: cupsaddsmb.man.in 6049 2006-10-20 15:07:21Z mike $"
 .\"
 .\"   cupsaddsmb man page for the Common UNIX Printing System (CUPS).
 .\"
 .\"
 .\"   cupsaddsmb man page for the Common UNIX Printing System (CUPS).
 .\"
@@ -21,7 +21,7 @@
 .\"       EMail: cups-info@cups.org
 .\"         WWW: http://www.cups.org
 .\"
 .\"       EMail: cups-info@cups.org
 .\"         WWW: http://www.cups.org
 .\"
-.TH cupsaddsmb 8 "Common UNIX Printing System" "13 June 2006" "Easy Software Products"
+.TH cupsaddsmb 8 "Common UNIX Printing System" "20 October 2006" "Easy Software Products"
 .SH NAME
 cupsaddsmb \- export printers to samba for windows clients
 
 .SH NAME
 cupsaddsmb \- export printers to samba for windows clients
 
@@ -120,7 +120,7 @@ accordingly on your system as needed.
 The base driver for Windows 2000 and higher is the Microsoft
 PostScript driver, which is available on any system running
 Windows 2000 or higher in the
 The base driver for Windows 2000 and higher is the Microsoft
 PostScript driver, which is available on any system running
 Windows 2000 or higher in the
-%WINDOWS%\\SYSTEM32\\SPOOL\\DRIVERS\\W32X86\\3 folder.
+%WINDIR%\\SYSTEM32\\SPOOL\\DRIVERS\\W32X86\\3 folder.
 .LP
 The CUPS printer driver is preferred over the Microsoft driver
 since it supports the page-label, job-billing, and
 .LP
 The CUPS printer driver is preferred over the Microsoft driver
 since it supports the page-label, job-billing, and
@@ -201,6 +201,11 @@ exactly as named below:
 you use the UPPERCASE filenames shown above, otherwise
 \fIcupsaddsmb\fR will fail to export the drivers.
 
 you use the UPPERCASE filenames shown above, otherwise
 \fIcupsaddsmb\fR will fail to export the drivers.
 
+.SH KNOWN ISSUES
+\fIcupsaddsmb\fR currently only supports 32-bit x86 drivers on
+Windows 2000 and higher. Support for 64-bit x86 drivers will be
+added in a future release.
+
 .SH SEE ALSO
 \fIsmbd(8)\fR, \fIsmb.conf(5)\fR,
 http://localhost:631/help
 .SH SEE ALSO
 \fIsmbd(8)\fR, \fIsmb.conf(5)\fR,
 http://localhost:631/help
@@ -210,5 +215,5 @@ http://www.cups.org/windows/
 .SH COPYRIGHT
 Copyright 1997-2006 by Easy Software Products, All Rights Reserved.
 .\"
 .SH COPYRIGHT
 Copyright 1997-2006 by Easy Software Products, All Rights Reserved.
 .\"
-.\" End of "$Id: cupsaddsmb.man.in 5645 2006-06-13 19:20:58Z mike $".
+.\" End of "$Id: cupsaddsmb.man.in 6049 2006-10-20 15:07:21Z mike $".
 .\"
 .\"
index b40ec0f22e99ed497e1753114cfea61533a6d058..a57f56484d1d7935a3893c225654def599db72b2 100644 (file)
@@ -1,5 +1,5 @@
 #
 #
-# "$Id: cups.list.in 5964 2006-09-19 16:27:29Z mike $"
+# "$Id: cups.list.in 6003 2006-10-02 16:26:04Z mike $"
 #
 #   ESP Package Manager (EPM) file list for the Common UNIX Printing
 #   System (CUPS).
 #
 #   ESP Package Manager (EPM) file list for the Common UNIX Printing
 #   System (CUPS).
 %description Berkeley command-line interfaces. 
 
 %format rpm
 %description Berkeley command-line interfaces. 
 
 %format rpm
-%provides cups 1:@CUPS_VERSION@
-%provides lpd, lpr, LPRng
-%replaces lpd, lpr, LPRng
+%provides lpd
+%provides lpr
+%provides LPRng
+%replaces lpd
+%replaces lpr
+%replaces LPRng
+%requires cups-libs 1:@CUPS_VERSION@
 
 %format deb
 %provides cupsys
 %provides cupsys-client
 %provides cupsys-bsd
 
 %format deb
 %provides cupsys
 %provides cupsys-client
 %provides cupsys-bsd
+%requires cups-libs
 
 %format pkg
 %replaces SUNWlpmsg LP Alerts
 
 %format pkg
 %replaces SUNWlpmsg LP Alerts
 %incompat maint*.print_*.* 0 0 1289999999 1289999999
 %incompat print 0 0 1289999999 1289999999
 %incompat fw_cups 0 0 1289999999 1289999999
 %incompat maint*.print_*.* 0 0 1289999999 1289999999
 %incompat print 0 0 1289999999 1289999999
 %incompat fw_cups 0 0 1289999999 1289999999
+%requires cups.sw.libs
+
+%format portable
+%requires cups-libs
 
 %format all
 
 %subpackage libs
 
 %format all
 
 %subpackage libs
-%description Common UNIX Printing System - shared libraries
-%format rpm
-%provides cups-libs 1:@CUPS_VERSION@
+%description Shared libraries
 %format deb
 %provides libcups1
 %provides libcupsys2
 %format deb
 %provides libcups1
 %provides libcupsys2
 %format all
 
 %subpackage devel
 %format all
 
 %subpackage devel
-%description Common UNIX Printing System - development environment
-%format rpm
-%provides cups-devel 1:@CUPS_VERSION@
+%description Development environment
 %format deb
 %provides libcupsys2-dev
 %provides libcupsimage2-dev
 %format all
 
 %subpackage lpd
 %format deb
 %provides libcupsys2-dev
 %provides libcupsimage2-dev
 %format all
 
 %subpackage lpd
-%description Common UNIX Printing System - LPD support
-%format rpm
-%provides cups-lpd 1:@CUPS_VERSION@
-%format all
+%description LPD support
 
 %subpackage de
 
 %subpackage de
-%description Common UNIX Printing System - German support
+%description German support
 
 %subpackage es
 
 %subpackage es
-%description Common UNIX Printing System - Spanish support
+%description Spanish support
+
+%subpackage et
+%description Estonian support
 
 %subpackage ja
 
 %subpackage ja
-%description Common UNIX Printing System - Japanese support
+%description Japanese support
 
 %subpackage pl
 
 %subpackage pl
-%description Common UNIX Printing System - Polish support
+%description Polish support
 
 %subpackage sv
 
 %subpackage sv
-%description Common UNIX Printing System - Swedish support
+%description Swedish support
 
 %subpackage
 
 
 %subpackage
 
@@ -351,6 +356,8 @@ d 0511 root $CUPS_PRIMARY_SYSTEM_GROUP $STATEDIR/certs -
 f 0644 root sys $LOCALEDIR/de/cups_de.po locale/cups_de.po
 %subpackage es
 f 0644 root sys $LOCALEDIR/es/cups_es.po locale/cups_es.po
 f 0644 root sys $LOCALEDIR/de/cups_de.po locale/cups_de.po
 %subpackage es
 f 0644 root sys $LOCALEDIR/es/cups_es.po locale/cups_es.po
+%subpackage et
+f 0644 root sys $LOCALEDIR/et/cups_et.po locale/cups_et.po
 %subpackage ja
 f 0644 root sys $LOCALEDIR/ja/cups_ja.po locale/cups_ja.po
 %subpackage pl
 %subpackage ja
 f 0644 root sys $LOCALEDIR/ja/cups_ja.po locale/cups_ja.po
 %subpackage pl
@@ -420,6 +427,9 @@ f 0644 root sys $DATADIR/templates/de templates/de/*.tmpl
 %subpackage es
 d 0755 root sys $DATADIR/templates/es
 f 0644 root sys $DATADIR/templates/es templates/es/*.tmpl
 %subpackage es
 d 0755 root sys $DATADIR/templates/es
 f 0644 root sys $DATADIR/templates/es templates/es/*.tmpl
+%subpackage et
+d 0755 root sys $DATADIR/templates/et
+f 0644 root sys $DATADIR/templates/et templates/et/*.tmpl
 %subpackage ja
 d 0755 root sys $DATADIR/templates/ja
 f 0644 root sys $DATADIR/templates/ja templates/ja/*.tmpl
 %subpackage ja
 d 0755 root sys $DATADIR/templates/ja
 f 0644 root sys $DATADIR/templates/ja templates/ja/*.tmpl
@@ -510,6 +520,11 @@ d 0755 root sys $DOCDIR/es
 f 0644 root sys $DOCDIR/es doc/es/*.html
 d 0755 root sys $DOCDIR/es/images -
 f 0644 root sys $DOCDIR/es/images doc/es/images/*.gif
 f 0644 root sys $DOCDIR/es doc/es/*.html
 d 0755 root sys $DOCDIR/es/images -
 f 0644 root sys $DOCDIR/es/images doc/es/images/*.gif
+%subpackage et
+d 0755 root sys $DOCDIR/et
+f 0644 root sys $DOCDIR/et doc/et/*.html
+d 0755 root sys $DOCDIR/et/images -
+f 0644 root sys $DOCDIR/et/images doc/et/images/*.gif
 %subpackage ja
 d 0755 root sys $DOCDIR/ja
 f 0644 root sys $DOCDIR/ja doc/ja/*.html
 %subpackage ja
 d 0755 root sys $DOCDIR/ja
 f 0644 root sys $DOCDIR/ja doc/ja/*.html
@@ -602,5 +617,5 @@ f 0644 root sys $XINETD/cups-lpd init/cups-lpd
 %subpackage
 
 #
 %subpackage
 
 #
-# End of "$Id: cups.list.in 5964 2006-09-19 16:27:29Z mike $".
+# End of "$Id: cups.list.in 6003 2006-10-02 16:26:04Z mike $".
 #
 #
index e171fad51b4ac40adcf16823c96335b7b177c562..35efdd458c9f47367c3eb4c4bdaf9fdfdeba6466 100644 (file)
@@ -1,5 +1,5 @@
 #
 #
-# "$Id: cups.spec.in 5758 2006-07-19 13:31:27Z mike $"
+# "$Id: cups.spec.in 6006 2006-10-02 17:56:40Z mike $"
 #
 #   RPM "spec" file for the Common UNIX Printing System (CUPS).
 #
 #
 #   RPM "spec" file for the Common UNIX Printing System (CUPS).
 #
@@ -86,6 +86,11 @@ Summary: Common UNIX Printing System - Spanish support
 Group: System Environment/Daemons
 Requires: %{name} = %{epoch}:%{version}
 
 Group: System Environment/Daemons
 Requires: %{name} = %{epoch}:%{version}
 
+%package et
+Summary: Common UNIX Printing System - Estonian support
+Group: System Environment/Daemons
+Requires: %{name} = %{epoch}:%{version}
+
 %package ja
 Summary: Common UNIX Printing System - Japanese support
 Group: System Environment/Daemons
 %package ja
 Summary: Common UNIX Printing System - Japanese support
 Group: System Environment/Daemons
@@ -135,6 +140,10 @@ UNIX
 The Common UNIX Printing System provides a portable printing layer for 
 UNIX® operating systems. This package provides Spanish support.
 
 The Common UNIX Printing System provides a portable printing layer for 
 UNIX® operating systems. This package provides Spanish support.
 
+%description et
+The Common UNIX Printing System provides a portable printing layer for 
+UNIX® operating systems. This package provides Estonian support.
+
 %description ja
 The Common UNIX Printing System provides a portable printing layer for 
 UNIX® operating systems. This package provides Japanese support.
 %description ja
 The Common UNIX Printing System provides a portable printing layer for 
 UNIX® operating systems. This package provides Japanese support.
@@ -402,6 +411,16 @@ rm -rf $RPM_BUILD_ROOT
 /usr/share/cups/templates/es/*
 /usr/share/locale/es/cups_es.po
 
 /usr/share/cups/templates/es/*
 /usr/share/locale/es/cups_es.po
 
+%files et
+%defattr(-,root,root)
+%dir /usr/share/doc/cups/et
+/usr/share/doc/cups/et/index.html
+%dir /usr/share/doc/cups/et/images
+/usr/share/doc/cups/et/images/*
+%dir /usr/share/cups/templates/et
+/usr/share/cups/templates/et/*
+/usr/share/locale/et/cups_et.po
+
 %files ja
 %defattr(-,root,root)
 %dir /usr/share/doc/cups/ja
 %files ja
 %defattr(-,root,root)
 %dir /usr/share/doc/cups/ja
@@ -440,5 +459,5 @@ rm -rf $RPM_BUILD_ROOT
 
 
 #
 
 
 #
-# End of "$Id: cups.spec.in 5758 2006-07-19 13:31:27Z mike $".
+# End of "$Id: cups.spec.in 6006 2006-10-02 17:56:40Z mike $".
 #
 #
index 4c98d207c6f39acb8b7e049204e69446a5b0dd25..23d6fde4bf8f59756f76bb7ebe2f489a3156b470 100644 (file)
@@ -1231,9 +1231,58 @@ void PSOutputDev::writeHeader(int firstPage, int lastPage,
     s = obj1.getString();
     if ((s->getChar(0) & 0xff) == 0xfe &&
        (s->getChar(1) & 0xff) == 0xff) {
     s = obj1.getString();
     if ((s->getChar(0) & 0xff) == 0xfe &&
        (s->getChar(1) & 0xff) == 0xff) {
-      // cheap Unicode-to-ASCII conversion
-      for (i = 3; i < s->getLength() && i < 400; i += 2) {
-       writePSChar(s->getChar(i));
+      // Convert UTF-16 to UTF-8...
+      for (i = 2; i < s->getLength() && i < 400; i += 2) {
+       int ch = ((s->getChar(i) & 255) << 8) | (s->getChar(i + 1) & 255);
+
+        if (ch >= 0xd800 && ch <= 0xdbff) {
+         // Multi-word UTF-16 char...
+         i += 2;
+         int lch = ((s->getChar(i) & 255) << 8) | (s->getChar(i + 1) & 255);
+
+          if (lch < 0xdc00 || lch >= 0xdfff) continue;
+
+          ch = (((ch & 0x3ff) << 10) | (lch & 0x3ff)) + 0x10000;
+       }
+
+       if (ch < 0x80)
+       {
+        /*
+         * Single byte ASCII...
+         */
+
+         writePSChar(ch);
+       }
+       else if (ch < 0x800)
+       {
+        /*
+         * Two-byte UTF-8...
+         */
+
+         writePSChar(0xc0 | (ch >> 6));
+         writePSChar(0x80 | (ch & 0x3f));
+       }
+       else if (ch < 0x10000)
+       {
+        /*
+         * Three-byte UTF-8...
+         */
+
+         writePSChar(0xe0 | (ch >> 12));
+         writePSChar(0x80 | ((ch >> 6) & 0x3f));
+         writePSChar(0x80 | (ch & 0x3f));
+       }
+       else
+       {
+        /*
+         * Four-byte UTF-8...
+         */
+
+         writePSChar(0xf0 | (ch >> 18));
+         writePSChar(0x80 | ((ch >> 12) & 0x3f));
+         writePSChar(0x80 | ((ch >> 6) & 0x3f));
+         writePSChar(0x80 | (ch & 0x3f));
+       }
       }
     } else {
       for (i = 0; i < s->getLength() && i < 200; ++i) {
       }
     } else {
       for (i = 0; i < s->getLength() && i < 200; ++i) {
index 762421f2d0fa0566938fc2302addd29099ad77cb..85e2ac2057347dce104636e40b0c08f5134aa499 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: client.c 5972 2006-09-19 20:44:07Z mike $"
+ * "$Id: client.c 6027 2006-10-11 21:04:58Z mike $"
  *
  *   Client routines for the Common UNIX Printing System (CUPS) scheduler.
  *
  *
  *   Client routines for the Common UNIX Printing System (CUPS) scheduler.
  *
@@ -796,7 +796,19 @@ cupsdReadClient(cupsd_client_t *con)       /* I - Client to read from */
        cupsdClearString(&con->command);
        cupsdClearString(&con->options);
 
        cupsdClearString(&con->command);
        cupsdClearString(&con->options);
 
-       if (con->language != NULL)
+       if (con->request)
+       {
+         ippDelete(con->request);
+         con->request = NULL;
+       }
+
+       if (con->response)
+       {
+         ippDelete(con->response);
+         con->response = NULL;
+       }
+
+       if (con->language)
        {
          cupsLangFree(con->language);
          con->language = NULL;
        {
          cupsLangFree(con->language);
          con->language = NULL;
@@ -1747,7 +1759,7 @@ cupsdReadClient(cupsd_client_t *con)      /* I - Client to read from */
                            "CHUNKED" : "LENGTH",
                        CUPS_LLCAST con->http.data_remaining, con->file);
 
                            "CHUNKED" : "LENGTH",
                        CUPS_LLCAST con->http.data_remaining, con->file);
 
-        if (con->request != NULL)
+        if (con->request)
        {
         /*
          * Grab any request data from the connection...
        {
         /*
          * Grab any request data from the connection...
@@ -2267,7 +2279,7 @@ cupsdWriteClient(cupsd_client_t *con)     /* I - Client connection */
       con->http.state != HTTP_POST_SEND)
     return (1);
 
       con->http.state != HTTP_POST_SEND)
     return (1);
 
-  if (con->response != NULL)
+  if (con->response)
   {
     ipp_state = ippWrite(HTTP(con), con->response);
     bytes     = ipp_state != IPP_ERROR && ipp_state != IPP_DATA;
   {
     ipp_state = ippWrite(HTTP(con), con->response);
     bytes     = ipp_state != IPP_ERROR && ipp_state != IPP_DATA;
@@ -2463,13 +2475,13 @@ cupsdWriteClient(cupsd_client_t *con)   /* I - Client connection */
       cupsdClearString(&con->filename);
     }
 
       cupsdClearString(&con->filename);
     }
 
-    if (con->request != NULL)
+    if (con->request)
     {
       ippDelete(con->request);
       con->request = NULL;
     }
 
     {
       ippDelete(con->request);
       con->request = NULL;
     }
 
-    if (con->response != NULL)
+    if (con->response)
     {
       ippDelete(con->response);
       con->response = NULL;
     {
       ippDelete(con->response);
       con->response = NULL;
@@ -4188,5 +4200,5 @@ write_file(cupsd_client_t *con,           /* I - Client connection */
 
 
 /*
 
 
 /*
- * End of "$Id: client.c 5972 2006-09-19 20:44:07Z mike $".
+ * End of "$Id: client.c 6027 2006-10-11 21:04:58Z mike $".
  */
  */
index caa6bef9abaef966ef42ccb3bad72059218a8280..e771c9eff882e495941ad851291771419fbf523d 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: cups-lpd.c 5878 2006-08-24 15:55:42Z mike $"
+ * "$Id: cups-lpd.c 6022 2006-10-10 19:47:03Z mike $"
  *
  *   Line Printer Daemon interface for the Common UNIX Printing System (CUPS).
  *
  *
  *   Line Printer Daemon interface for the Common UNIX Printing System (CUPS).
  *
@@ -150,8 +150,6 @@ main(int  argc,                             /* I - Number of command-line arguments */
   num_defaults = 0;
   defaults     = NULL;
   hostlookups  = 1;
   num_defaults = 0;
   defaults     = NULL;
   hostlookups  = 1;
-  num_defaults = cupsAddOption("job-originating-host-name", hostname,
-                               num_defaults, &defaults);
 
   for (i = 1; i < argc; i ++)
     if (argv[i][0] == '-')
 
   for (i = 1; i < argc; i ++)
     if (argv[i][0] == '-')
@@ -217,6 +215,9 @@ main(int  argc,                             /* I - Number of command-line arguments */
            hostip);
   }
 
            hostip);
   }
 
+  num_defaults = cupsAddOption("job-originating-host-name", hostname,
+                               num_defaults, &defaults);
+
  /*
   * RFC1179 specifies that only 1 daemon command can be received for
   * every connection.
  /*
   * RFC1179 specifies that only 1 daemon command can be received for
   * every connection.
@@ -1716,5 +1717,5 @@ smart_gets(char *s,                       /* I - Pointer to line buffer */
 
 
 /*
 
 
 /*
- * End of "$Id: cups-lpd.c 5878 2006-08-24 15:55:42Z mike $".
+ * End of "$Id: cups-lpd.c 6022 2006-10-10 19:47:03Z mike $".
  */
  */
index eb4f790f5b7eb97180f52037f44cfe0803532f31..75b44a7eb8a1a845023b59d92e2d12328d50dd7c 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: dirsvc.c 5940 2006-09-11 18:30:09Z mike $"
+ * "$Id: dirsvc.c 6003 2006-10-02 16:26:04Z mike $"
  *
  *   Directory services routines for the Common UNIX Printing System (CUPS).
  *
  *
  *   Directory services routines for the Common UNIX Printing System (CUPS).
  *
@@ -1062,7 +1062,7 @@ cupsdStartPolling(void)
   * Don't do anything if we aren't polling...
   */
 
   * Don't do anything if we aren't polling...
   */
 
-  if (NumPolled == 0)
+  if (NumPolled == 0 || BrowseSocket < 0)
   {
     PollPipe         = -1;
     PollStatusBuffer = NULL;
   {
     PollPipe         = -1;
     PollStatusBuffer = NULL;
@@ -3181,5 +3181,5 @@ slp_url_callback(
 
 
 /*
 
 
 /*
- * End of "$Id: dirsvc.c 5940 2006-09-11 18:30:09Z mike $".
+ * End of "$Id: dirsvc.c 6003 2006-10-02 16:26:04Z mike $".
  */
  */
index 22a21f496a50d3489fe514fa2f31d8f318823b20..7b0e43247768e342bf29233a7ea87360adcb0be3 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: ipp.c 5970 2006-09-19 20:11:08Z mike $"
+ * "$Id: ipp.c 6032 2006-10-12 19:19:47Z mike $"
  *
  *   IPP routines for the Common UNIX Printing System (CUPS) scheduler.
  *
  *
  *   IPP routines for the Common UNIX Printing System (CUPS) scheduler.
  *
@@ -71,7 +71,6 @@
  *   get_username()              - Get the username associated with a request.
  *   hold_job()                  - Hold a print job.
  *   move_job()                  - Move a job to a new destination.
  *   get_username()              - Get the username associated with a request.
  *   hold_job()                  - Hold a print job.
  *   move_job()                  - Move a job to a new destination.
- *   ppd_add_default()           - Add a PPD default choice.
  *   ppd_parse_line()            - Parse a PPD default line.
  *   print_job()                 - Print a file to a printer or class.
  *   read_ps_line()              - Read a line from a PS file...
  *   ppd_parse_line()            - Parse a PPD default line.
  *   print_job()                 - Print a file to a printer or class.
  *   read_ps_line()              - Read a line from a PS file...
 #endif /* HAVE_LIBPAPER */
 
 
 #endif /* HAVE_LIBPAPER */
 
 
-/*
- * PPD default choice structure...
- */
-
-typedef struct
-{
-  char option[PPD_MAX_NAME];           /* Main keyword (option name) */
-  char choice[PPD_MAX_NAME];           /* Option keyword (choice name) */
-} ppd_default_t;
-
-
 /*
  * Local functions...
  */
 /*
  * Local functions...
  */
@@ -178,8 +166,6 @@ static void get_subscriptions(cupsd_client_t *con, ipp_attribute_t *uri);
 static const char *get_username(cupsd_client_t *con);
 static void    hold_job(cupsd_client_t *con, ipp_attribute_t *uri);
 static void    move_job(cupsd_client_t *con, ipp_attribute_t *uri);
 static const char *get_username(cupsd_client_t *con);
 static void    hold_job(cupsd_client_t *con, ipp_attribute_t *uri);
 static void    move_job(cupsd_client_t *con, ipp_attribute_t *uri);
-static int     ppd_add_default(const char *option, const char *choice,
-                               int num_defaults, ppd_default_t **defaults);
 static int     ppd_parse_line(const char *line, char *option, int olen,
                               char *choice, int clen);
 static void    print_job(cupsd_client_t *con, ipp_attribute_t *uri);
 static int     ppd_parse_line(const char *line, char *option, int olen,
                               char *choice, int clen);
 static void    print_job(cupsd_client_t *con, ipp_attribute_t *uri);
@@ -1351,7 +1337,7 @@ add_job(cupsd_client_t  *con,             /* I - Client connection */
 
   job->dtype   = dtype;
   job->attrs   = con->request;
 
   job->dtype   = dtype;
   job->attrs   = con->request;
-  con->request = NULL;
+  con->request = ippNewRequest(job->attrs->request.op.operation_id);
 
   add_job_uuid(con, job);
   apply_printer_defaults(printer, job);
 
   add_job_uuid(con, job);
   apply_printer_defaults(printer, job);
@@ -3465,8 +3451,8 @@ copy_attrs(ipp_t        *to,              /* I - Destination request */
     * Filter attributes as needed...
     */
 
     * Filter attributes as needed...
     */
 
-    if (group != IPP_TAG_ZERO && fromattr->group_tag != group &&
-        fromattr->group_tag != IPP_TAG_ZERO && !fromattr->name)
+    if ((group != IPP_TAG_ZERO && fromattr->group_tag != group &&
+         fromattr->group_tag != IPP_TAG_ZERO) || !fromattr->name)
       continue;
 
     if (!ra || cupsArrayFind(ra, fromattr->name))
       continue;
 
     if (!ra || cupsArrayFind(ra, fromattr->name))
@@ -3819,15 +3805,15 @@ copy_model(cupsd_client_t *con,         /* I - Client connection */
                *envp[MAX_ENV];         /* Environment */
   cups_file_t  *src,                   /* Source file */
                *dst;                   /* Destination file */
                *envp[MAX_ENV];         /* Environment */
   cups_file_t  *src,                   /* Source file */
                *dst;                   /* Destination file */
+  ppd_file_t   *ppd;                   /* PPD file */
   int          bytes,                  /* Bytes from pipe */
                total;                  /* Total bytes from pipe */
   int          bytes,                  /* Bytes from pipe */
                total;                  /* Total bytes from pipe */
-  char         buffer[2048],           /* Copy buffer */
-               *ptr;                   /* Pointer into buffer */
+  char         buffer[2048];           /* Copy buffer */
   int          i;                      /* Looping var */
   char         option[PPD_MAX_NAME],   /* Option name */
                choice[PPD_MAX_NAME];   /* Choice name */
   int          num_defaults;           /* Number of default options */
   int          i;                      /* Looping var */
   char         option[PPD_MAX_NAME],   /* Option name */
                choice[PPD_MAX_NAME];   /* Choice name */
   int          num_defaults;           /* Number of default options */
-  ppd_default_t        *defaults;              /* Default options */
+  cups_option_t        *defaults;              /* Default options */
   char         cups_protocol[PPD_MAX_LINE];
                                        /* cupsProtocol attribute */
   int          have_letter,            /* Have Letter size */
   char         cups_protocol[PPD_MAX_LINE];
                                        /* cupsProtocol attribute */
   int          have_letter,            /* Have Letter size */
@@ -3968,41 +3954,14 @@ copy_model(cupsd_client_t *con,         /* I - Client connection */
   * Read the source file and see what page sizes are supported...
   */
 
   * Read the source file and see what page sizes are supported...
   */
 
-  if ((src = cupsFileOpen(tempfile, "rb")) == NULL)
+  if ((ppd = ppdOpenFile(tempfile)) == NULL)
   {
     unlink(tempfile);
     return (-1);
   }
 
   {
     unlink(tempfile);
     return (-1);
   }
 
-  have_letter = 0;
-  have_a4     = 0;
-
-  while (cupsFileGets(src, buffer, sizeof(buffer)))
-    if (!strncmp(buffer, "*PageSize ", 10))
-    {
-     /*
-      * Strip UI text and command data from the end of the line...
-      */
-
-      if ((ptr = strchr(buffer + 10, '/')) != NULL)
-        *ptr = '\0';
-      if ((ptr = strchr(buffer + 10, ':')) != NULL)
-        *ptr = '\0';
-
-      for (ptr = buffer + 10; isspace(*ptr); ptr ++);
-
-     /*
-      * Look for Letter and A4 page sizes...
-      */
-
-      if (!strcmp(ptr, "Letter"))
-       have_letter = 1;
-
-      if (!strcmp(ptr, "A4"))
-       have_a4 = 1;
-    }
-
-  cupsFileRewind(src);
+  have_letter = ppdPageSize(ppd, "Letter") != NULL;
+  have_a4     = ppdPageSize(ppd, "A4") != NULL;
 
  /*
   * Open the destination (if possible) and set the default options...
 
  /*
   * Open the destination (if possible) and set the default options...
@@ -4027,8 +3986,21 @@ copy_model(cupsd_client_t *con,          /* I - Client connection */
 
         if (!ppd_parse_line(buffer, option, sizeof(option),
                            choice, sizeof(choice)))
 
         if (!ppd_parse_line(buffer, option, sizeof(option),
                            choice, sizeof(choice)))
-          num_defaults = ppd_add_default(option, choice, num_defaults,
+        {
+         ppd_option_t  *ppdo;          /* PPD option */
+
+
+         /*
+         * Only add the default if the default hasn't already been
+         * set and the choice exists in the new PPD...
+         */
+
+         if (!cupsGetOption(option, num_defaults, defaults) &&
+             (ppdo = ppdFindOption(ppd, option)) != NULL &&
+             ppdFindChoice(ppdo, choice))
+            num_defaults = cupsAddOption(option, choice, num_defaults,
                                         &defaults);
                                         &defaults);
+        }
       }
       else if (!strncmp(buffer, "*cupsProtocol:", 14))
         strlcpy(cups_protocol, buffer, sizeof(cups_protocol));
       }
       else if (!strncmp(buffer, "*cupsProtocol:", 14))
         strlcpy(cups_protocol, buffer, sizeof(cups_protocol));
@@ -4074,6 +4046,7 @@ copy_model(cupsd_client_t *con,           /* I - Client connection */
         !strcasecmp(DefaultLanguage, "C") ||
         !strcasecmp(DefaultLanguage, "POSIX") ||
        !strcasecmp(DefaultLanguage, "en") ||
         !strcasecmp(DefaultLanguage, "C") ||
         !strcasecmp(DefaultLanguage, "POSIX") ||
        !strcasecmp(DefaultLanguage, "en") ||
+       !strncasecmp(DefaultLanguage, "en.", 3) ||
        !strncasecmp(DefaultLanguage, "en_US", 5) ||
        !strncasecmp(DefaultLanguage, "en_CA", 5) ||
        !strncasecmp(DefaultLanguage, "fr_CA", 5))
        !strncasecmp(DefaultLanguage, "en_US", 5) ||
        !strncasecmp(DefaultLanguage, "en_CA", 5) ||
        !strncasecmp(DefaultLanguage, "fr_CA", 5))
@@ -4084,14 +4057,14 @@ copy_model(cupsd_client_t *con,         /* I - Client connection */
 
       if (have_letter)
       {
 
       if (have_letter)
       {
-       num_defaults = ppd_add_default("PageSize", "Letter", num_defaults,
-                                       &defaults);
-       num_defaults = ppd_add_default("PageRegion", "Letter", num_defaults,
-                                       &defaults);
-       num_defaults = ppd_add_default("PaperDimension", "Letter", num_defaults,
-                                       &defaults);
-       num_defaults = ppd_add_default("ImageableArea", "Letter", num_defaults,
-                                       &defaults);
+       num_defaults = cupsAddOption("PageSize", "Letter", num_defaults,
+                                     &defaults);
+       num_defaults = cupsAddOption("PageRegion", "Letter", num_defaults,
+                                     &defaults);
+       num_defaults = cupsAddOption("PaperDimension", "Letter", num_defaults,
+                                     &defaults);
+       num_defaults = cupsAddOption("ImageableArea", "Letter", num_defaults,
+                                     &defaults);
       }
     }
     else if (have_a4)
       }
     }
     else if (have_a4)
@@ -4100,26 +4073,37 @@ copy_model(cupsd_client_t *con,         /* I - Client connection */
       * The rest default to "a4" size...
       */
 
       * The rest default to "a4" size...
       */
 
-      num_defaults = ppd_add_default("PageSize", "A4", num_defaults,
-                                     &defaults);
-      num_defaults = ppd_add_default("PageRegion", "A4", num_defaults,
-                                     &defaults);
-      num_defaults = ppd_add_default("PaperDimension", "A4", num_defaults,
-                                     &defaults);
-      num_defaults = ppd_add_default("ImageableArea", "A4", num_defaults,
-                                     &defaults);
+      num_defaults = cupsAddOption("PageSize", "A4", num_defaults,
+                                   &defaults);
+      num_defaults = cupsAddOption("PageRegion", "A4", num_defaults,
+                                   &defaults);
+      num_defaults = cupsAddOption("PaperDimension", "A4", num_defaults,
+                                   &defaults);
+      num_defaults = cupsAddOption("ImageableArea", "A4", num_defaults,
+                                   &defaults);
     }
   }
 
     }
   }
 
+  ppdClose(ppd);
+
+ /*
+  * Open the source file for a copy...
+  */
+
+  if ((src = cupsFileOpen(tempfile, "rb")) == NULL)
+  {
+    cupsFreeOptions(num_defaults, defaults);
+    unlink(tempfile);
+    return (-1);
+  }
+
  /*
   * Open the destination file for a copy...
   */
 
   if ((dst = cupsFileOpen(to, "wb")) == NULL)
   {
  /*
   * Open the destination file for a copy...
   */
 
   if ((dst = cupsFileOpen(to, "wb")) == NULL)
   {
-    if (num_defaults > 0)
-      free(defaults);
-
+    cupsFreeOptions(num_defaults, defaults);
     cupsFileClose(src);
     unlink(tempfile);
     return (-1);
     cupsFileClose(src);
     unlink(tempfile);
     return (-1);
@@ -4140,17 +4124,17 @@ copy_model(cupsd_client_t *con,         /* I - Client connection */
       if (!ppd_parse_line(buffer, option, sizeof(option),
                          choice, sizeof(choice)))
       {
       if (!ppd_parse_line(buffer, option, sizeof(option),
                          choice, sizeof(choice)))
       {
-        for (i = 0; i < num_defaults; i ++)
-         if (!strcmp(option, defaults[i].option))
-         {
-          /*
-           * Substitute the previous choice...
-           */
+        const char     *val;           /* Default option value */
 
 
-           snprintf(buffer, sizeof(buffer), "*Default%s: %s", option,
-                    defaults[i].choice);
-           break;
-         }
+
+        if ((val = cupsGetOption(option, num_defaults, defaults)) != NULL)
+       {
+        /*
+         * Substitute the previous choice...
+         */
+
+         snprintf(buffer, sizeof(buffer), "*Default%s: %s", option, val);
+       }
       }
     }
 
       }
     }
 
@@ -4160,8 +4144,7 @@ copy_model(cupsd_client_t *con,           /* I - Client connection */
   if (cups_protocol[0])
     cupsFilePrintf(dst, "%s\n", cups_protocol);
 
   if (cups_protocol[0])
     cupsFilePrintf(dst, "%s\n", cups_protocol);
 
-  if (num_defaults > 0)
-    free(defaults);
+  cupsFreeOptions(num_defaults, defaults);
 
  /*
   * Close both files and return...
 
  /*
   * Close both files and return...
@@ -6575,56 +6558,6 @@ move_job(cupsd_client_t  *con,           /* I - Client connection */
 }
 
 
 }
 
 
-/*
- * 'ppd_add_default()' - Add a PPD default choice.
- */
-
-static int                             /* O  - Number of defaults */
-ppd_add_default(
-    const char    *option,             /* I  - Option name */
-    const char    *choice,             /* I  - Choice name */
-    int           num_defaults,                /* I  - Number of defaults */
-    ppd_default_t **defaults)          /* IO - Defaults */
-{
-  int          i;                      /* Looping var */
-  ppd_default_t        *temp;                  /* Temporary defaults array */
-
-
- /*
-  * First check if the option already has a default value; the PPD spec
-  * says that the first one is used...
-  */
-
-  for (i = 0, temp = *defaults; i < num_defaults; i ++)
-    if (!strcmp(option, temp[i].option))
-      return (num_defaults);
-
- /*
-  * Now add the option...
-  */
-
-  if (num_defaults == 0)
-    temp = malloc(sizeof(ppd_default_t));
-  else
-    temp = realloc(*defaults, (num_defaults + 1) * sizeof(ppd_default_t));
-
-  if (!temp)
-  {
-    cupsdLogMessage(CUPSD_LOG_ERROR, "ppd_add_default: Unable to add default value for \"%s\" - %s",
-               option, strerror(errno));
-    return (num_defaults);
-  }
-
-  *defaults = temp;
-  temp      += num_defaults;
-
-  strlcpy(temp->option, option, sizeof(temp->option));
-  strlcpy(temp->choice, choice, sizeof(temp->choice));
-
-  return (num_defaults + 1);
-}
-
-
 /*
  * 'ppd_parse_line()' - Parse a PPD default line.
  */
 /*
  * 'ppd_parse_line()' - Parse a PPD default line.
  */
@@ -9225,5 +9158,5 @@ validate_user(cupsd_job_t    *job,        /* I - Job */
 
 
 /*
 
 
 /*
- * End of "$Id: ipp.c 5970 2006-09-19 20:11:08Z mike $".
+ * End of "$Id: ipp.c 6032 2006-10-12 19:19:47Z mike $".
  */
  */
index f8edfdf46d9fbb343f69db61be5c2ccd9308e9eb..4fd52b0b55f8ddec165248a154f542dbb0b830c0 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: job.c 5974 2006-09-20 18:42:37Z mike $"
+ * "$Id: job.c 6032 2006-10-12 19:19:47Z mike $"
  *
  *   Job management routines for the Common UNIX Printing System (CUPS).
  *
  *
  *   Job management routines for the Common UNIX Printing System (CUPS).
  *
@@ -2626,6 +2626,9 @@ start_job(cupsd_job_t     *job,           /* I - Job ID */
     * Add gziptoany filter to the front of the list...
     */
 
     * Add gziptoany filter to the front of the list...
     */
 
+    if (!filters)
+      filters = cupsArrayNew(NULL, NULL);
+
     if (!cupsArrayInsert(filters, &gziptoany_filter))
     {
       cupsdLogMessage(CUPSD_LOG_ERROR,
     if (!cupsArrayInsert(filters, &gziptoany_filter))
     {
       cupsdLogMessage(CUPSD_LOG_ERROR,
@@ -2653,6 +2656,9 @@ start_job(cupsd_job_t     *job,           /* I - Job ID */
     * Add port monitor to the end of the list...
     */
 
     * Add port monitor to the end of the list...
     */
 
+    if (!filters)
+      filters = cupsArrayNew(NULL, NULL);
+
     if (!cupsArrayAdd(filters, &port_monitor))
     {
       cupsdLogMessage(CUPSD_LOG_ERROR, "Unable to add port monitor - %s",
     if (!cupsArrayAdd(filters, &port_monitor))
     {
       cupsdLogMessage(CUPSD_LOG_ERROR, "Unable to add port monitor - %s",
@@ -3462,5 +3468,5 @@ unload_job(cupsd_job_t *job)              /* I - Job */
 
 
 /*
 
 
 /*
- * End of "$Id: job.c 5974 2006-09-20 18:42:37Z mike $".
+ * End of "$Id: job.c 6032 2006-10-12 19:19:47Z mike $".
  */
  */
index a53029f551f39d9c5a4da4e9302bdaf9c32f710b..3839dc87883cd0e9174387dd963c77f972f1646e 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: log.c 5493 2006-05-05 16:33:57Z mike $"
+ * "$Id: log.c 6027 2006-10-11 21:04:58Z mike $"
  *
  *   Log file routines for the Common UNIX Printing System (CUPS).
  *
  *
  *   Log file routines for the Common UNIX Printing System (CUPS).
  *
@@ -362,11 +362,16 @@ cupsdLogRequest(cupsd_client_t *con,      /* I - Request to log */
 
   if (!strcmp(AccessLog, "syslog"))
   {
 
   if (!strcmp(AccessLog, "syslog"))
   {
-    syslog(LOG_INFO, "REQUEST %s - %s \"%s %s HTTP/%d.%d\" %d " CUPS_LLFMT "\n",
+    syslog(LOG_INFO,
+           "REQUEST %s - %s \"%s %s HTTP/%d.%d\" %d " CUPS_LLFMT " %s %s\n",
            con->http.hostname, con->username[0] != '\0' ? con->username : "-",
           states[con->operation], con->uri,
           con->http.version / 100, con->http.version % 100,
            con->http.hostname, con->username[0] != '\0' ? con->username : "-",
           states[con->operation], con->uri,
           con->http.version / 100, con->http.version % 100,
-          code, CUPS_LLCAST con->bytes);
+          code, CUPS_LLCAST con->bytes,
+          con->request ?
+              ippOpString(con->request->request.op.operation_id) : "-",
+          con->response ?
+              ippErrorString(con->response->request.status.status_code) : "-");
 
     return (1);
   }
 
     return (1);
   }
@@ -546,5 +551,5 @@ check_log_file(cups_file_t **lf,    /* IO - Log file */
 
 
 /*
 
 
 /*
- * End of "$Id: log.c 5493 2006-05-05 16:33:57Z mike $".
+ * End of "$Id: log.c 6027 2006-10-11 21:04:58Z mike $".
  */
  */
index f3a320594776364db53d70ad64be4dba41193300..d0e05d9bec08e5c4b2324f40a967dd0114fa55a6 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * "$Id: subscriptions.c 5878 2006-08-24 15:55:42Z mike $"
+ * "$Id: subscriptions.c 5991 2006-09-29 02:26:29Z mike $"
  *
  *   Subscription routines for the Common UNIX Printing System (CUPS) scheduler.
  *
  *
  *   Subscription routines for the Common UNIX Printing System (CUPS) scheduler.
  *
 #include "cupsd.h"
 #ifdef HAVE_DBUS
 #  include <dbus/dbus.h>
 #include "cupsd.h"
 #ifdef HAVE_DBUS
 #  include <dbus/dbus.h>
+#  ifdef HAVE_DBUS_MESSAGE_ITER_INIT_APPEND
+#    define dbus_message_append_iter_init dbus_message_iter_init_append
+#    define dbus_message_iter_append_string(i,v) dbus_message_iter_append_basic(i, DBUS_TYPE_STRING, v)
+#    define dbus_message_iter_append_uint32(i,v) dbus_message_iter_append_basic(i, DBUS_TYPE_UINT32, v)
+#  endif /* HAVE_DBUS_MESSAGE_ITER_INIT_APPEND */
 #endif /* HAVE_DBUS */
 
 
 #endif /* HAVE_DBUS */
 
 
@@ -1355,13 +1360,13 @@ cupsd_send_dbus(cupsd_eventmask_t event,/* I - Event to send */
   message = dbus_message_new_signal("/com/redhat/PrinterSpooler",
                                    "com.redhat.PrinterSpooler", what);
 
   message = dbus_message_new_signal("/com/redhat/PrinterSpooler",
                                    "com.redhat.PrinterSpooler", what);
 
-  dbus_message_iter_init_append(message, &iter);
+  dbus_message_append_iter_init(message, &iter);
   if (dest)
   if (dest)
-    dbus_message_iter_append_basic(&iter, DBUS_TYPE_STRING, &(dest->name));
+    dbus_message_iter_append_string(&iter, &(dest->name));
   if (job)
   {
   if (job)
   {
-    dbus_message_iter_append_basic(&iter, DBUS_TYPE_UINT32, &(job->id));
-    dbus_message_iter_append_basic(&iter, DBUS_TYPE_STRING, &(job->username));
+    dbus_message_iter_append_uint32(&iter, &(job->id));
+    dbus_message_iter_append_string(&iter, &(job->username));
   }
 
   dbus_connection_send(con, message, NULL);
   }
 
   dbus_connection_send(con, message, NULL);
@@ -1622,5 +1627,5 @@ cupsd_start_notifier(
 
 
 /*
 
 
 /*
- * End of "$Id: subscriptions.c 5878 2006-08-24 15:55:42Z mike $".
+ * End of "$Id: subscriptions.c 5991 2006-09-29 02:26:29Z mike $".
  */
  */
diff --git a/templates/et/add-class.tmpl b/templates/et/add-class.tmpl
new file mode 100644 (file)
index 0000000..50e655d
--- /dev/null
@@ -0,0 +1,33 @@
+<FORM METHOD="POST" ACTION="/admin">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+
+<H2 CLASS="title">Klassi lisamine</H2>
+
+<TABLE>
+<TR>
+<TH CLASS="label">Nimi:</TH>
+<TD><INPUT TYPE="TEXT" NAME="PRINTER_NAME" SIZE="40" MAXLENGTH="127"></TD>
+</TR>
+<TR>
+<TH CLASS="label">Asukoht:</TH>
+<TD><INPUT TYPE="TEXT" NAME="PRINTER_LOCATION" SIZE="40" MAXLENGTH="127"></TD>
+</TR>
+<TR>
+<TH CLASS="label">Kirjeldus:</TH>
+<TD><INPUT TYPE="TEXT" NAME="PRINTER_INFO" SIZE="40" MAXLENGTH="127"></TD>
+</TR>
+<TR>
+<TH CLASS="label">Liikmed:</TH>
+<TD>
+<SELECT NAME="MEMBER_URIS" SIZE="10" MULTIPLE>
+{[member_uris]<OPTION VALUE="{member_uris}" {?member_selected}>{member_names}}
+</SELECT>
+</TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-add-class.gif" ALT="Lisa klass"></TD>
+</TR>
+</TABLE>
+
+</FORM>
diff --git a/templates/et/add-printer.tmpl b/templates/et/add-printer.tmpl
new file mode 100644 (file)
index 0000000..21fd997
--- /dev/null
@@ -0,0 +1,28 @@
+<FORM METHOD="POST" ACTION="/admin">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+
+<H2 CLASS="title">Uue printeri lisamine</H2>
+
+<TABLE>
+<TR>
+<TH CLASS="label">Nimi:</TH>
+<TD><INPUT TYPE="TEXT" NAME="PRINTER_NAME" SIZE="40" MAXLENGTH="127"><BR>
+<SMALL>(Võib sisaldada kõiki trükitavaid märke, välja arvatud "/", "#" ja tühik)</SMALL></TD>
+</TR>
+<TR>
+<TH CLASS="label">Asukoht:</TH>
+<TD><INPUT TYPE="TEXT" NAME="PRINTER_LOCATION" SIZE="40" MAXLENGTH="127"><BR>
+<SMALL>(Arusaadava sisuga asukoht, näiteks "Laud 1")</SMALL></TD>
+</TR>
+<TR>
+<TH CLASS="label">Kirjeldus:</TH>
+<TD><INPUT TYPE="TEXT" NAME="PRINTER_INFO" SIZE="40" MAXLENGTH="127"><BR>
+<SMALL>(Arusaadava sisuga kirjeldus, näiteks "HP LaserJet duplekseriga")</SMALL></TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-continue.gif" ALT="Edasi"></TD>
+</TR>
+</TABLE>
+
+</FORM>
diff --git a/templates/et/admin.tmpl b/templates/et/admin.tmpl
new file mode 100644 (file)
index 0000000..e04ec96
--- /dev/null
@@ -0,0 +1,77 @@
+<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" SUMMARY="Administration Tasks">
+<TR><TD VALIGN="TOP" NOWRAP>
+
+<H2 CLASS="title">Printerid</H2>
+
+<P>
+<A HREF="/admin?op=add-printer"><IMG
+SRC="/images/button-add-printer.gif" ALT="Lisa printer" CLASS="button"></A>
+<A HREF="/printers/"><IMG SRC="/images/button-manage-printers.gif"
+ALT="Halda printereid" CLASS="button"></A>
+{have_samba?<A HREF="/admin/?op=export-samba"><IMG
+SRC="/images/button-export-samba.gif" ALT="Ekspordi printerid Sambasse"
+CLASS="button"></A>:}
+</P>
+
+{#device_uri=0?:<P><B>Leitud uued printerid:</B></P><UL>{[device_uri]
+<LI><A HREF="/admin?op=add-printer&amp;{device_options}"><IMG
+SRC="/images/button-add-this-printer.gif" ALT="Lisa see printer" CLASS="button"
+ALIGN="MIDDLE"></A>
+{device_make_and_model} ({device_info})</LI>
+}</UL>}
+
+<H2 CLASS="title">Klassid</H2>
+
+<P>
+<A HREF="/admin?op=add-class"><IMG SRC="/images/button-add-class.gif"
+ALT="Lisa klass" CLASS="button"></A>
+<A HREF="/classes/"><IMG SRC="/images/button-manage-classes.gif"
+ALT="Halda klasse" CLASS="button"></A>
+</P>
+
+<H2 CLASS="title">Tööd</H2>
+
+<P>
+<A HREF="/jobs/"><IMG SRC="/images/button-manage-jobs.gif" ALT="Halda
+töid" CLASS="button"></A>
+</P>
+
+</TD><TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD><TD VALIGN="TOP">
+
+<H2 CLASS="title">Server</H2>
+
+<P>
+<A HREF="/admin?op=config-server"><IMG
+SRC="/images/button-edit-configuration-file.gif" ALT="Muuda
+seadistustefaili" CLASS="button"></A>
+<A HREF="/admin/log/access_log" TARGET="_blank"><IMG
+SRC="/images/button-view-access-log.gif" ALT="Vaata kasutamislogi"
+CLASS="button"></A>
+<A HREF="/admin/log/error_log" TARGET="_blank"><IMG
+SRC="/images/button-view-error-log.gif" ALT="Vaata vealogi"
+CLASS="button"></A>
+<A HREF="/admin/log/page_log" TARGET="_blank"><IMG
+SRC="/images/button-view-page-log.gif" ALT="Vaata lehelogi"
+CLASS="button"></A>
+</P>
+
+{SETTINGS_ERROR?<P>{SETTINGS_MESSAGE}</P>
+<BLOCKQUOTE>{SETTINGS_ERROR}</BLOCKQUOTE>:
+
+<FORM METHOD="POST" ACTION="/admin">
+
+<P><B>Serveri põhiseadistused:</B></P>
+
+<P><INPUT TYPE="HIDDEN" NAME="OP" VALUE="config-server">
+<INPUT TYPE="CHECKBOX" NAME="REMOTE_PRINTERS" {?remote_printers}> Teiste süsteemide jagatud printerite näitamine<BR>
+<INPUT TYPE="CHECKBOX" NAME="SHARE_PRINTERS" {?share_printers}> Aktiivse süsteemiga ühendatud avaldatud printerite jagamine<BR>
+<INPUT TYPE="CHECKBOX" NAME="REMOTE_ADMIN" {?remote_admin}> Võrguhalduse lubamine<BR>
+<INPUT TYPE="CHECKBOX" NAME="USER_CANCEL_ANY" {?user_cancel_any}> Kasutajatel lubatakse katkestada kõiki töid (mitte ainult enda omi)<BR>
+<INPUT TYPE="CHECKBOX" NAME="DEBUG_LOGGING" {?debug_logging}> Silumisinfo salvestamine probleemide tuvastamiseks</P>
+
+<P><INPUT TYPE="IMAGE" SRC="/images/button-change-settings.gif" ALT="Muuda seadistusi"></P>
+
+</FORM>}
+
+</TD></TR>
+</TABLE>
diff --git a/templates/et/choose-device.tmpl b/templates/et/choose-device.tmpl
new file mode 100644 (file)
index 0000000..cac4ca2
--- /dev/null
@@ -0,0 +1,26 @@
+<FORM METHOD="POST" ACTION="/admin">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_LOCATION" VALUE="{?printer_location}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_INFO" VALUE="{?printer_info}">
+<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE_AND_MODEL" VALUE="{?current_make_and_model}">
+
+<H2 CLASS="title">Printeri {printer_name} seade</H2>
+
+<TABLE>
+<TR>
+<TH CLASS="label">Seade:</TH>
+<TD>
+<SELECT NAME="DEVICE_URI">
+{[device_uri]<OPTION VALUE="{device_uri}{?device_make_and_model!Unknown?|{device_make_and_model}:}" {?current_device_uri={device_uri}?SELECTED:{current_device_scheme={device_uri}?SELECTED:}}>
+{device_info} {?device_make_and_model!Unknown?({device_make_and_model}):}</OPTION>
+}</SELECT>
+</TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-continue.gif" ALT="Edasi"></TD>
+</TR>
+</TABLE>
+
+</FORM>
diff --git a/templates/et/choose-make.tmpl b/templates/et/choose-make.tmpl
new file mode 100644 (file)
index 0000000..4aede75
--- /dev/null
@@ -0,0 +1,42 @@
+<FORM METHOD="POST" ACTION="/admin" ENCTYPE="multipart/form-data">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_LOCATION" VALUE="{?printer_location}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_INFO" VALUE="{?printer_info}">
+<INPUT TYPE="HIDDEN" NAME="DEVICE_URI" VALUE="{device_uri}">
+<INPUT TYPE="HIDDEN" NAME="BAUDRATE" VALUE="{?baudrate}">
+<INPUT TYPE="HIDDEN" NAME="BITS" VALUE="{?bits}">
+<INPUT TYPE="HIDDEN" NAME="PARITY" VALUE="{?parity}">
+<INPUT TYPE="HIDDEN" NAME="FLOW" VALUE="{?flow}">
+
+<H2 CLASS="title">Printeri {printer_name} valmistaja/tootja</H2>
+
+<TABLE>
+<TR>
+<TH CLASS="label">Valmistaja:</TH>
+<TD>
+<SELECT NAME="PPD_MAKE" SIZE="10">
+{[ppd_make]<OPTION VALUE="{ppd_make}" {?current_make={ppd_make}?SELECTED:}>{ppd_make}}
+</SELECT>
+</TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-continue.gif" ALT="Edasi"></TD>
+</TR>
+<TR>
+<TD></TD>
+<TD>&nbsp;</TD>
+</TR>
+<TR>
+<TH CLASS="label">või andke PPD-fail:</TH>
+<TD><INPUT TYPE="HIDDEN" NAME="MAX_FILE_SIZE" VALUE="262144"><INPUT
+TYPE="FILE" NAME="PPD_FILE"></TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-{op}.gif" ALT="{op=add-printer?Lisa printer:Muuda printerit}"></TD>
+</TR>
+</TABLE>
+
+</FORM>
diff --git a/templates/et/choose-model.tmpl b/templates/et/choose-model.tmpl
new file mode 100644 (file)
index 0000000..ee93197
--- /dev/null
@@ -0,0 +1,34 @@
+<FORM METHOD="POST" ACTION="/admin" ENCTYPE="multipart/form-data">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_LOCATION" VALUE="{?printer_location}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_INFO" VALUE="{?printer_info}">
+<INPUT TYPE="HIDDEN" NAME="DEVICE_URI" VALUE="{device_uri}">
+<INPUT TYPE="HIDDEN" NAME="BAUDRATE" VALUE="{?baudrate}">
+<INPUT TYPE="HIDDEN" NAME="BITS" VALUE="{?bits}">
+<INPUT TYPE="HIDDEN" NAME="PARITY" VALUE="{?parity}">
+<INPUT TYPE="HIDDEN" NAME="FLOW" VALUE="{?flow}">
+
+<H2 CLASS="title">Printeri {printer_name} mudel/draiver</H2>
+
+<TABLE>
+<TR>
+<TH CLASS="label">Mudel:</TH>
+<TD>
+<SELECT NAME="PPD_NAME" SIZE="10">
+{[ppd_name]<OPTION VALUE="{ppd_name}" {?current_make_and_model={ppd_make_and_model}?SELECTED:}>{ppd_make_and_model} ({ppd_natural_language})
+}</SELECT>
+</TD>
+</TR>
+<TR>
+<TH CLASS="label">või andke PPD-fail:</TH>
+<TD><INPUT TYPE="HIDDEN" NAME="MAX_FILE_SIZE" VALUE="262144"><INPUT
+TYPE="FILE" NAME="PPD_FILE"></TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-{op}.gif" ALT="{op=add-printer?Lisa printer:Muuda printerit}"></TD>
+</TR>
+</TABLE>
+
+</FORM>
diff --git a/templates/et/choose-serial.tmpl b/templates/et/choose-serial.tmpl
new file mode 100644 (file)
index 0000000..640c748
--- /dev/null
@@ -0,0 +1,47 @@
+<FORM METHOD="POST" ACTION="/admin">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_LOCATION" VALUE="{?printer_location}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_INFO" VALUE="{?printer_info}">
+<INPUT TYPE="HIDDEN" NAME="DEVICE_URI" VALUE="{device_uri}">
+
+<H2 CLASS="title">Printeri {printer_name} jadapordi seadistused</H2>
+
+<TABLE>
+<TR>
+<TH CLASS="label">Andmevahetuse kiirus:</TH>
+<TD><SELECT NAME="BAUDRATE">
+{[baudrates]<OPTION {?baudrate={baudrates}?SELECTED:}>{baudrates}}
+</SELECT></TD>
+</TR>
+<TR>
+<TH CLASS="label">Paarsus:</TH>
+<TD><SELECT NAME="PARITY">
+<OPTION VALUE="none" {?parity=none?SELECTED:}>Puudub
+<OPTION VALUE="even" {?parity=even?SELECTED:}>Paaris
+<OPTION VALUE="odd" {?parity=odd?SELECTED:}>Paaritu
+</SELECT></TD>
+</TR>
+<TR>
+<TH CLASS="label">Andmebitid:</TH>
+<TD><SELECT NAME="BITS">
+<OPTION {?bits=8?SELECTED:}>8
+<OPTION {?bits=7?SELECTED:}>7
+</SELECT></TD>
+</TR>
+<TR>
+<TH CLASS="label">Voo reguleerimine:</TH>
+<TD><SELECT NAME="FLOW">
+<OPTION VALUE="none" {?flow=none?SELECTED:}>Puudub
+<OPTION VALUE="soft" {?flow=soft?SELECTED:}>XON/XOFF (tarkvaraline)
+<OPTION VALUE="hard" {?flow=hard?SELECTED:}>RTS/CTS (riistvaraline)
+<OPTION VALUE="dtrdsr" {?flow=dtrdsr?SELECTED:}>DTR/DSR (riistvaraline)
+</SELECT></TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-continue.gif" ALT="Edasi"></TD>
+</TR>
+</TABLE>
+
+</FORM>
diff --git a/templates/et/choose-uri.tmpl b/templates/et/choose-uri.tmpl
new file mode 100644 (file)
index 0000000..fea2ae7
--- /dev/null
@@ -0,0 +1,42 @@
+<FORM METHOD="POST" ACTION="/admin">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_LOCATION" VALUE="{?printer_location}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_INFO" VALUE="{?printer_info}">
+<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE_AND_MODEL" VALUE="{?current_make_and_model}">
+
+<H2 CLASS="title">Printeri {printer_name} seadme URI</H2>
+
+<TABLE>
+<TR>
+<TH CLASS="label">Seadme URI:</TH>
+<TD><INPUT TYPE="TEXT" SIZE="60" MAXLENGTH="1024" NAME="DEVICE_URI" VALUE="{device_uri}"></TD>
+</TR>
+<TR>
+<TD></TD>
+<TD>Näited:
+<PRE>
+    http://masinanimi:631/ipp/
+    http://masinanimi:631/ipp/port1
+
+    ipp://masinanimi/ipp/
+    ipp://masinanimi/ipp/port1
+
+    lpd://masinanimi/järjekord
+
+    socket://masinanimi
+    socket://masinanimi:9100
+</PRE>
+
+<P>Vaadake osa <A HREF="/help/network.html" TARGET="_blank">"Võrguprinterid"</A> 
+oma printeri korrektse URI tuvastamiseks.</P>
+
+</TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-continue.gif" ALT="Edasi"></TD>
+</TR>
+</TABLE>
+
+</FORM>
diff --git a/templates/et/class-added.tmpl b/templates/et/class-added.tmpl
new file mode 100644 (file)
index 0000000..e758ef8
--- /dev/null
@@ -0,0 +1,2 @@
+<P>Klass <A HREF="/classes/{printer_name}">{printer_name}</A> edukalt
+lisatud.
diff --git a/templates/et/class-confirm.tmpl b/templates/et/class-confirm.tmpl
new file mode 100644 (file)
index 0000000..ede566e
--- /dev/null
@@ -0,0 +1,7 @@
+<P><B>Hoiatus:</B> kas soovite tõesti kustutada klassi
+{printer_name}?</P>
+
+<P ALIGN="CENTER"><A
+HREF="/admin?op=delete-class&printer_name={printer_name}&confirm=yes"><IMG
+SRC="/images/button-delete-class.gif" ALT="Kustuta klass"
+CLASS="button"></A></P>
diff --git a/templates/et/class-deleted.tmpl b/templates/et/class-deleted.tmpl
new file mode 100644 (file)
index 0000000..f2bc3ee
--- /dev/null
@@ -0,0 +1 @@
+<P>Klass {printer_name} edukalt kustutatud.
diff --git a/templates/et/class-jobs-header.tmpl b/templates/et/class-jobs-header.tmpl
new file mode 100644 (file)
index 0000000..b3d29de
--- /dev/null
@@ -0,0 +1 @@
+<H3 CLASS="title">Tööd</H3>
diff --git a/templates/et/class-modified.tmpl b/templates/et/class-modified.tmpl
new file mode 100644 (file)
index 0000000..a8c65fd
--- /dev/null
@@ -0,0 +1,2 @@
+<P>Klass <A HREF="/classes/{printer_name}">{printer_name}</A> edukalt
+muudetud.
diff --git a/templates/et/classes-header.tmpl b/templates/et/classes-header.tmpl
new file mode 100644 (file)
index 0000000..29e4fca
--- /dev/null
@@ -0,0 +1 @@
+<P ALIGN="CENTER">{total=0?Klassid puuduvad:Näidatakse {#printer_name} klassi {total} klassist{total=1?:}}.</P>
diff --git a/templates/et/classes.tmpl b/templates/et/classes.tmpl
new file mode 100644 (file)
index 0000000..9f740d4
--- /dev/null
@@ -0,0 +1,54 @@
+{#printer_name=0?:
+{[printer_name]
+<H2 CLASS="title"><A HREF="{printer_uri_supported}">{printer_name}</A>{default_name={printer_name}? (vaikimisi printer):}
+{?printer_state_message=?:<SPAN CLASS="message">"{printer_state_message}"</SPAN>}</H2>
+
+<TABLE WIDTH="100%" CLASS="button" CELLSPACING="0" CELLPADDING="0" SUMMARY="{printer_name}">
+<TR>
+<TD VALIGN=TOP><A HREF="{printer_uri_supported}">
+<IMG SRC="/images/classes.gif" CLASS="button" ALT=""></A></TD>
+<TD VALIGN=TOP><B>Kirjeldus:</B> {printer_info}<BR>
+<B>Asukoht:</B> {printer_location}<BR>
+<B>Klassi olek:</B> {printer_state=3?jõude:{printer_state=4?töötleb:peatatud}},
+{printer_is_accepting_jobs=0?ei võta töid vastu:võtab töid vastu}, {printer_is_shared=0?pole:} avaldatud.
+{?member_uris=?:<BR>Liikmed: {member_uris}}
+
+<P>
+<A HREF="{printer_uri_supported}?op=print-test-page">
+<IMG SRC="/images/button-print-test-page.gif" ALT="Trüki testlehekülg" CLASS="button"></A>
+{printer_state=5?
+<A HREF="{admin_uri}?op=start-class&amp;printer_name={%printer_name}&amp;is_class=Y">
+<IMG SRC="/images/button-start-class.gif" ALT="Käivita klass" CLASS="button"></A>
+:
+<A HREF="{admin_uri}?op=stop-class&amp;printer_name={%printer_name}&amp;is_class=Y">
+<IMG SRC="/images/button-stop-class.gif" ALT="Peata klass" CLASS="button"></A>
+}
+{printer_is_accepting_jobs=0?
+<A HREF="{admin_uri}?op=accept-jobs&amp;printer_name={%printer_name}&amp;is_class=Y">
+<IMG SRC="/images/button-accept-jobs.gif" ALT="Võta töid vastu" CLASS="button"></A>
+:
+<A HREF="{admin_uri}?op=reject-jobs&amp;printer_name={%printer_name}&amp;is_class=Y">
+<IMG SRC="/images/button-reject-jobs.gif" ALT="Ära võta töid vastu" CLASS="button"></A>
+}
+<A HREF="{admin_uri}?op=purge-jobs&amp;printer_name={%printer_name}&amp;is_class=Y">
+<IMG SRC="/images/button-cancel-all-jobs.gif" ALT="Katkesta kõik tööd" CLASS="button"></A>
+{printer_is_shared=0?
+<A HREF="{admin_uri}?op=set-sharing&amp;printer_name={%printer_name}&amp;shared=1&amp;is_class=Y">
+<IMG SRC="/images/button-publish-printer.gif" ALT="Avalda printer" CLASS="button"></A>
+:
+<A HREF="{admin_uri}?op=set-sharing&amp;printer_name={%printer_name}&amp;shared=0&amp;is_class=Y">
+<IMG SRC="/images/button-unpublish-printer.gif" ALT="Ära avalda printerit" CLASS="button"></A>
+}
+<A HREF="{admin_uri}?op=modify-class&amp;printer_name={%printer_name}">
+<IMG SRC="/images/button-modify-class.gif" ALT="Muuda klassi" CLASS="button"></A>
+<A HREF="{admin_uri}?op=delete-class&amp;printer_name={%printer_name}">
+<IMG SRC="/images/button-delete-class.gif" ALT="Kustuta klass" CLASS="button"></A>
+<A HREF="{admin_uri}?op=set-as-default&amp;printer_name={%printer_name}&amp;is_class=Y">
+<IMG SRC="/images/button-set-as-default.gif" ALT="Määra vaikeväärtuseks" CLASS="button"></A>
+<A HREF="{admin_uri}?op=set-allowed-users&amp;printer_name={%printer_name}&amp;is_class=Y">
+<IMG SRC="/images/button-set-allowed-users.gif" ALT="Määra lubatud kasutajad" CLASS="button"></A>
+</P>
+</TD>
+</TR>
+</TABLE>
+}}
diff --git a/templates/et/edit-config.tmpl.in b/templates/et/edit-config.tmpl.in
new file mode 100644 (file)
index 0000000..1345129
--- /dev/null
@@ -0,0 +1,91 @@
+<SCRIPT TYPE="text/javascript">
+function reset_config()
+{
+  document.cups.CUPSDCONF.value =
+"# Log general information in error_log - change \\"info\\" to \\"debug\\" for\\n" +
+"# troubleshooting...\\n" +
+"LogLevel info\\n" +
+"\\n" +
+"\\n" +
+"# Administrator user group...\\n" +
+"SystemGroup @CUPS_SYSTEM_GROUPS@\\n" +
+"\\n" +
+"\\n" +
+"# Only listen for connections from the local machine.\\n" +
+"Listen 127.0.0.1:@DEFAULT_IPP_PORT@\\n" +
+"@CUPS_LISTEN_DOMAINSOCKET@\\n" +
+"\\n" +
+"\\n" +
+"# Show shared printers on the local network.\\n" +
+"Browsing On\\n" +
+"BrowseOrder allow,deny\\n" +
+"BrowseAllow @LOCAL\\n" +
+"\\n" +
+"\\n" +
+"# Authenticate against system accounts by default...\\n" +
+"DefaultAuthType Basic\\n" +
+"\\n" +
+"# Restrict access to the server...\\n" +
+"<Location />\\n" +
+"  Order allow,deny\\n" +
+"  Allow localhost\\n" +
+"</Location>\\n" +
+"\\n" +
+"# Restrict access to the admin pages...\\n" +
+"<Location /admin>\\n" +
+"@ENCRYPTION_REQUIRED@\\n" +
+"  Order allow,deny\\n" +
+"  Allow localhost\\n" +
+"</Location>\\n" +
+"\\n" +
+"# Restrict access to configuration files...\\n" +
+"<Location /admin/conf>\\n" +
+"  AuthType Basic\\n" +
+"  Require user @SYSTEM\\n" +
+"  Order allow,deny\\n" +
+"  Allow localhost\\n" +
+"</Location>\\n" +
+"\\n" +
+"# Set the default printer/job policies...\\n" +
+"<Policy default>\\n" +
+"  # Job-related operations must be done by the owner or an adminstrator...\\n" +
+"  <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job CUPS-Move-Job>\\n" +
+"    Require user @OWNER @SYSTEM\\n" +
+"    Order deny,allow\\n" +
+"  </Limit>\\n" +
+"\\n" +
+"  # All administration operations require an adminstrator to authenticate...\\n" +
+"  <Limit Pause-Printer Resume-Printer Set-Printer-Attributes Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After CUPS-Add-Printer CUPS-Delete-Printer CUPS-Add-Class CUPS-Delete-Class CUPS-Accept-Jobs CUPS-Reject-Jobs CUPS-Set-Default>\\n" +
+"    AuthType Basic\\n" +
+"    Require user @SYSTEM\\n" +
+"    Order deny,allow\\n" +
+"  </Limit>\\n" +
+"\\n" +
+"  # Only the owner or an administrator can cancel or authenticate a job...\\n" +
+"  <Limit Cancel-Job CUPS-Authenticate-Job>\\n" +
+"    Require user @OWNER @SYSTEM\\n" +
+"    Order deny,allow\\n" +
+"  </Limit>\\n" +
+"\\n" +
+"  <Limit All>\\n" +
+"    Order deny,allow\\n" +
+"  </Limit>\\n" +
+"</Policy>\\n";
+}
+</SCRIPT>
+
+<H2 CLASS="title">Serveri seadistustefail</H2>
+
+<FORM NAME="cups" METHOD="POST" ACTION="/admin/">
+
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="config-server">
+
+<TEXTAREA NAME="CUPSDCONF" COLS="80" ROWS="25">{CUPSDCONF}</TEXTAREA>
+
+<P><INPUT TYPE="IMAGE" SRC="/images/button-save-changes.gif"
+ALT="Salvesta muudatused"> <A
+HREF="javascript:reset_config();"><IMG
+SRC="/images/button-use-default-config.gif" CLASS="button"
+ALT="Kasuta vaikimisi seadistustefaili"></A></P>
+
+</FORM>
diff --git a/templates/et/error-op.tmpl b/templates/et/error-op.tmpl
new file mode 100644 (file)
index 0000000..097cddd
--- /dev/null
@@ -0,0 +1,3 @@
+<P>Viga:</P>
+
+<BLOCKQUOTE>Tundmatu operatsioon "{op}"!</BLOCKQUOTE>
diff --git a/templates/et/error.tmpl b/templates/et/error.tmpl
new file mode 100644 (file)
index 0000000..09a02e2
--- /dev/null
@@ -0,0 +1,3 @@
+<P>{?message?{message}:Viga:}</P>
+
+<BLOCKQUOTE>{error}</BLOCKQUOTE>
diff --git a/templates/et/header.tmpl.in b/templates/et/header.tmpl.in
new file mode 100644 (file)
index 0000000..33e0b96
--- /dev/null
@@ -0,0 +1,63 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+<HTML>
+<HEAD>
+       <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+       <TITLE>{title} - CUPS @CUPS_VERSION@@CUPS_REVISION@</TITLE>
+       <!-- Prevent caching of CGI content -->
+       <META HTTP-EQUIV="Expires" CONTENT="now">
+       <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> 
+       {refresh_page?<META HTTP-EQUIV="Refresh" CONTENT="{refresh_page}">:}
+       <LINK REL="STYLESHEET" TYPE="text/css" HREF="/cups.css">
+       <LINK REL="SHORTCUT ICON" HREF="/favicon.ico" TYPE="image/x-icon">
+</HEAD>
+<BODY>
+<TABLE WIDTH="100%" STYLE="height: 100%;" BORDER="0" CELLSPACING="0" CELLPADDING="0" SUMMARY="{title}">
+<TR CLASS="HEADER">
+<TD VALIGN="TOP" WIDTH="15" ROWSPAN="2"><IMG SRC="/images/top-left.gif" WIDTH="15" HEIGHT="80" ALT=""></TD>
+<TD VALIGN="TOP" WIDTH="55" ROWSPAN="2"><IMG SRC="/images/top-middle.gif" WIDTH="55" HEIGHT="80" ALT=""></TD>
+<TD WIDTH="100%" HEIGHT="60"><H1>{title}</H1></TD>
+<TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="15" ROWSPAN="2"><IMG
+SRC="/images/top-right.gif" WIDTH="15" HEIGHT="15" ALT=""></TD>
+</TR>
+<TR CLASS="HEADER"><TD WIDTH="100%" VALIGN="BOTTOM" NOWRAP>
+
+<A CLASS="unsel" HREF="/"><IMG SRC="/images/tab-left.gif"
+WIDTH="4" HEIGHT="4" ALIGN="TOP" BORDER="0"
+ALT="">&nbsp;&nbsp;Kodu&nbsp;&nbsp;<IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+&nbsp;<A CLASS="{SECTION=admin?:un}sel" HREF="/admin"><IMG
+SRC="/images/tab-left.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT="">&nbsp;&nbsp;Haldus&nbsp;&nbsp;<IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+&nbsp;<A CLASS="{SECTION=classes?:un}sel" HREF="/classes/"><IMG
+SRC="/images/tab-left.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT="">&nbsp;&nbsp;Klassid&nbsp;&nbsp;<IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+&nbsp;<A CLASS="{SECTION=help?:un}sel" HREF="/help/"><IMG
+SRC="/images/tab-left.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT="">&nbsp;&nbsp;Dokumentatsioon/abi&nbsp;&nbsp;<IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+&nbsp;<A CLASS="{SECTION=jobs?:un}sel" HREF="/jobs/"><IMG
+SRC="/images/tab-left.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT="">&nbsp;&nbsp;Tööd&nbsp;&nbsp;<IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+&nbsp;<A CLASS="{SECTION=printers?:un}sel" HREF="/printers/"><IMG
+SRC="/images/tab-left.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT="">&nbsp;&nbsp;Printerid&nbsp;&nbsp;<IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+</TD></TR>
+<TR CLASS="page">
+<TD WIDTH="15">&nbsp;</TD>
+<TD COLSPAN="2" WIDTH="100%" STYLE="height: 100%;" VALIGN="TOP" CLASS="page">
diff --git a/templates/et/help-header.tmpl b/templates/et/help-header.tmpl
new file mode 100644 (file)
index 0000000..05c5cb8
--- /dev/null
@@ -0,0 +1,46 @@
+<FORM ACTION="/help/{?HELPFILE}" METHOD="GET">
+{TOPIC?<INPUT TYPE="HIDDEN" NAME="TOPIC" VALUE="{TOPIC}">:}
+
+<P ALIGN="CENTER"><B>Otsing - 
+{HELPTITLE?{HELPTITLE}:{TOPIC?{TOPIC}:kõigis dokumentides}}:</B> <INPUT
+TYPE="TEXT" NAME="QUERY" VALUE="{?QUERY}" SIZE="60"> <INPUT
+TYPE="IMAGE" SRC="/images/button-search.gif" ALT="Otsi">
+<A HREF="/help/{?HELPFILE}{QUERY?{TOPIC??TOPIC={TOPIC}:}:}"><IMG
+SRC="/images/button-clear.gif" ALT="Puhasta" CLASS="button"></A></P>
+
+</FORM>
+
+<!-- Bookmarks -->
+<DIV CLASS="sidebar">
+<H3 CLASS="title">Abidokumendid</H3>
+
+<P CLASS="l0"><A HREF="/help{QUERY??QUERY={QUERY}:}">Kõik dokumendid</A></P>
+<HR>
+
+{[BMTEXT]<P CLASS="l{BMINDENT}"><A HREF="{BMLINK}">{BMTEXT}</A></P>
+}
+</DIV>
+
+{QUERY?<P>Otsingutulemused - {HELPFILE?{HELPTITLE}:{TOPIC?{TOPIC}:kõigis dokumentides}}\:</P>
+{QTEXT?<UL>
+{[QTEXT]<LI><A HREF="{QLINK}">{QTEXT}</A>{QPTEXT? (in <I><A HREF="{QPLINK}">{QPTEXT}</A></I>):}</LI>}
+{QTEXT?</UL>:}
+:<P>Midagi ei leitud.</P>}
+<HR NOSHADE>:}
+{HELPTITLE?<H1>{HELPTITLE}
+<A HREF="/help/{HELPFILE}?PRINTABLE=YES" TARGET="_blank"><IMG
+SRC="/images/button-view-printable-version.gif" ALT="Näita trükitavat versiooni"
+CLASS="button"></A></H1>:<H1>CUPS-i abi</H1>
+
+<P>See on CUPS-i abiliides. Sisestage otsingusõnad ülalolevasse kasti
+või klõpsake mõnele dokumentatsioonilingile abiinfo kuvamiseks.</P>
+
+<P>Kui Te pole veel CUPS-iga tuttav, lugege osa "<a
+href="overview.html">Overview of CUPS</a>". Kogenud kasutajad
+peaksid aga tutvuma osaga "<a href="whatsnew.html">What's New in CUPS
+1.2</a>".</P>
+
+<P><A HREF="http://www.cups.org/">CUPS-i kodulehekülg</A> pakub
+samuti palju materjali, kaasa arvatud kasutajate arutlusfoorumid, vastused
+levinumatele küsimustele ning vorm, mis võimaldab esitada veateateid
+ja soove.</P>}
diff --git a/templates/et/help-printable.tmpl b/templates/et/help-printable.tmpl
new file mode 100644 (file)
index 0000000..305112a
--- /dev/null
@@ -0,0 +1,11 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+<HTML>
+<HEAD>
+       <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+       <TITLE>{HELPTITLE}</TITLE>
+       <LINK REL="STYLESHEET" TYPE="text/css" HREF="/cups-printable.css">
+       <LINK REL="SHORTCUT ICON" HREF="/favicon.ico" TYPE="image/x-icon">
+</HEAD>
+<BODY>
+
+<H1>{HELPTITLE}</H1>
diff --git a/templates/et/job-cancel.tmpl b/templates/et/job-cancel.tmpl
new file mode 100644 (file)
index 0000000..da0bafc
--- /dev/null
@@ -0,0 +1 @@
+<P><A HREF="{job_printer_uri}">Töö {job_id}</A> katkestatud.
diff --git a/templates/et/job-hold.tmpl b/templates/et/job-hold.tmpl
new file mode 100644 (file)
index 0000000..ef4dca0
--- /dev/null
@@ -0,0 +1 @@
+<P><A HREF="{job_printer_uri}">Tööd {job_id}</A> hoitakse trükkimast.
diff --git a/templates/et/job-moved.tmpl b/templates/et/job-moved.tmpl
new file mode 100644 (file)
index 0000000..ca007aa
--- /dev/null
@@ -0,0 +1,2 @@
+<P>{job_id?<A HREF="/jobs/{job_id}">Töö {job_id}</A>:Kõik tööd} on liigutatud printerisse
+<A HREF="{job_printer_uri}">{job_printer_name}</A>.</P>
diff --git a/templates/et/job-release.tmpl b/templates/et/job-release.tmpl
new file mode 100644 (file)
index 0000000..055c519
--- /dev/null
@@ -0,0 +1 @@
+<P><A HREF="{job_printer_uri}">Töö {job_id}</A> trükkimiseks vabastatud.
diff --git a/templates/et/job-restart.tmpl b/templates/et/job-restart.tmpl
new file mode 100644 (file)
index 0000000..f2dee0f
--- /dev/null
@@ -0,0 +1 @@
+<P><A HREF="{job_printer_uri}">Töö {job_id}</A> uuesti käivitatud.
diff --git a/templates/et/jobs-header.tmpl b/templates/et/jobs-header.tmpl
new file mode 100644 (file)
index 0000000..4c710a0
--- /dev/null
@@ -0,0 +1,15 @@
+<P>{?which_jobs=?<A
+HREF="{?printer_name=?/jobs:{printer_uri_supported}}?which_jobs=completed"><IMG
+SRC="/images/button-show-completed.gif" CLASS="button" ALT="Näita lõpetatud töid"></A>
+<A HREF="{?printer_name=?/jobs:{printer_uri_supported}}?which_jobs=all"><IMG
+SRC="/images/button-show-all.gif" CLASS="button" ALT="Näita kõiki töid">:{which_jobs=all?<A
+HREF="{?printer_name=?/jobs:{printer_uri_supported}}?which_jobs=completed"><IMG
+SRC="/images/button-show-completed.gif" CLASS="button" ALT="Näita lõpetatud töid"></A>
+<A HREF="{?printer_name=?/jobs:{printer_uri_supported}}"><IMG
+SRC="/images/button-show-active.gif" CLASS="button" ALT="Näita aktiivseid töid">:<A
+HREF="{?printer_name=?/jobs:{printer_uri_supported}}"><IMG
+SRC="/images/button-show-active.gif" CLASS="button" ALT="Näita aktiivseid töid"></A>
+<A HREF="{?printer_name=?/jobs:{printer_uri_supported}}?which_jobs=all"><IMG
+SRC="/images/button-show-all.gif" CLASS="button" ALT="Näita kõiki töid">}}</A></P>
+
+<P ALIGN="CENTER">{total=0?Töid pole:Näidatakse {#job_id} tööd {total} {?which_jobs=?aktiivsest:{which_jobs=all?:lõpetatud}} tööst{total=1?:}}.</P>
diff --git a/templates/et/jobs.tmpl b/templates/et/jobs.tmpl
new file mode 100644 (file)
index 0000000..4f1fba7
--- /dev/null
@@ -0,0 +1,42 @@
+{#job_id=0?:
+<TABLE CELLPADDING="0" CELLSPACING="0" CLASS="button" WIDTH="100%" SUMMARY="Job List">
+<TR CLASS="data">
+<TH>ID&nbsp;</TH>
+<TH>Nimi&nbsp;</TH>
+<TH>Kasutaja&nbsp;</TH>
+<TH>Suurus&nbsp;</TH>
+<TH>Lehekülgi&nbsp;</TH>
+<TH>Olek&nbsp;</TH>
+<TH>Kontroll&nbsp;</TH>
+</TR>
+
+{[job_id]
+<TR CLASS="data" VALIGN="TOP">
+<TD><A HREF="{job_printer_uri}">{job_printer_name}</A>-{job_id}&nbsp;</TD>
+<TD>{?job_name=?Teadmata:{job_name}}&nbsp;</TD>
+<TD>{job_originating_user_name}&nbsp;</TD>
+<TD>{job_k_octets}k&nbsp;</TD>
+<TD>{job_media_sheets_completed=0?Teadmata:{?job_media_sheets_completed}}</TD>
+<TD>{job_state=3?ootel alates<BR>{time_at_creation}:{job_state=4?hoitakse alates<BR>{time_at_creation}:
+{job_state=5?töötluses alates<BR>{time_at_processing}:{job_state=6?peatatud:
+{job_state=7?katkestatud<BR>{time_at_completed}:{job_state=8?loobutud:lõpetatud<BR>{time_at_completed}}}}}}}&nbsp;</TD>
+<TD>
+{job_preserved>0?
+<A HREF="/jobs/?op=restart-job&amp;job_id={job_id}&amp;job_printer_uri={job_printer_uri}">
+<IMG SRC="/images/button-restart-job.gif" ALT="Trüki töö uuesti" CLASS="button"></A>:}
+{job_state=4?
+<A HREF="/jobs/?op=release-job&amp;job_id={job_id}&amp;job_printer_uri={job_printer_uri}">
+<IMG SRC="/images/button-release-job.gif" ALT="Vabasta töö" CLASS="button"></A>:}
+{job_state=3?
+<A HREF="/jobs/?op=hold-job&amp;job_id={job_id}&amp;job_printer_uri={job_printer_uri}">
+<IMG SRC="/images/button-hold-job.gif" ALT="Hoia tööd" CLASS="button"></A>:}
+{job_state<7?
+<A HREF="/jobs/?op=cancel-job&amp;job_id={job_id}&amp;job_printer_uri={job_printer_uri}">
+<IMG SRC="/images/button-cancel-job.gif" ALT="Katkesta töö" CLASS="button"></A>
+<A HREF="/jobs/?op=move-job&amp;job_id={job_id}"><IMG
+SRC="/images/button-move-job.gif" ALT="Liiguta töö" CLASS="button"></A>:}
+&nbsp;</TD>
+</TR>
+}
+</TABLE>
+}
diff --git a/templates/et/maintenance.tmpl b/templates/et/maintenance.tmpl
new file mode 100644 (file)
index 0000000..c966241
--- /dev/null
@@ -0,0 +1,2 @@
+<P>Hooldamiskäsud saadetud; töö ID on <A HREF="/printers/{printer_name}">
+{printer_name}-{job_id}</A>.</P>
diff --git a/templates/et/modify-class.tmpl b/templates/et/modify-class.tmpl
new file mode 100644 (file)
index 0000000..fd6b1a4
--- /dev/null
@@ -0,0 +1,34 @@
+<FORM METHOD="POST" ACTION="/admin">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+
+<H2 CLASS="title">Klassi {printer_name} muutmine</H2>
+
+<TABLE>
+<TR>
+<TH CLASS="label">Nimi:</TH>
+<TD><INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
+{printer_name}</TD>
+</TR>
+<TR>
+<TH CLASS="label">Asukoht:</TH>
+<TD><INPUT TYPE="TEXT" NAME="PRINTER_LOCATION" VALUE="{?printer_location}" SIZE="40" MAXLENGTH="127"></TD>
+</TR>
+<TR>
+<TH CLASS="label">Kirjeldus:</TH>
+<TD><INPUT TYPE="TEXT" NAME="PRINTER_INFO" VALUE="{?printer_info}" SIZE="40" MAXLENGTH="127"></TD>
+</TR>
+<TR>
+<TH CLASS="label">Liikmed:</TH>
+<TD>
+<SELECT NAME="MEMBER_URIS" SIZE="10" MULTIPLE>
+{[member_uris]<OPTION VALUE="{member_uris}" {?member_selected}>{member_names}}
+</SELECT>
+</TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-modify-class.gif" ALT="Muuda klassi"></TD>
+</TR>
+</TABLE>
+
+</FORM>
diff --git a/templates/et/modify-printer.tmpl b/templates/et/modify-printer.tmpl
new file mode 100644 (file)
index 0000000..9f697c9
--- /dev/null
@@ -0,0 +1,29 @@
+<FORM METHOD="POST" ACTION="/admin">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+{?device_uri=?:<INPUT TYPE="HIDDEN" NAME="CURRENT_DEVICE_URI" VALUE="{device_uri}">}
+{?printer_make_and_model=?:<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE_AND_MODEL" VALUE="{printer_make_and_model}">}
+
+<H2 CLASS="title">Printeri {printer_name} muutmine</H2>
+
+<TABLE>
+<TR>
+<TH CLASS="label">Nimi:</TH>
+<TD><INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">{printer_name}</TD>
+</TR>
+<TR>
+<TH CLASS="label">Asukoht:</TH>
+<TD><INPUT TYPE="TEXT" NAME="PRINTER_LOCATION" VALUE="{?printer_location}" SIZE="40" MAXLENGTH="127"><BR>
+<SMALL>(Arusaadava sisuga asukoht, näiteks "Laud 1")</SMALL></TD>
+</TR>
+<TR>
+<TH CLASS="label">Kirjeldus:</TH>
+<TD><INPUT TYPE="TEXT" NAME="PRINTER_INFO" VALUE="{?printer_info}" SIZE="40" MAXLENGTH="127"><BR>
+<SMALL>(Arusaadava sisuga kirjeldus, näiteks "HP LaserJet duplekseriga")</SMALL></TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-continue.gif" ALT="Edasi"></TD>
+</TR>
+</TABLE>
+
+</FORM>
diff --git a/templates/et/norestart.tmpl b/templates/et/norestart.tmpl
new file mode 100644 (file)
index 0000000..84cfc5a
--- /dev/null
@@ -0,0 +1 @@
+<p>Serverit ei käivitatud uuesti, sest seadistusse ei tehtud mingeid muudatusi...</p>
diff --git a/templates/et/option-boolean.tmpl b/templates/et/option-boolean.tmpl
new file mode 100644 (file)
index 0000000..72c8518
--- /dev/null
@@ -0,0 +1,6 @@
+<TR>
+<TH CLASS="label"{conflicted=1? CLASS="conflict":}><A NAME="{keyword}">{keytext}</A>:</TH>
+<TD>
+{[choices]<INPUT TYPE="RADIO" NAME="{keyword}" {choices={defchoice}?CHECKED:} VALUE="{choices}">{text}}
+</TD>
+</TR>
diff --git a/templates/et/option-conflict.tmpl b/templates/et/option-conflict.tmpl
new file mode 100644 (file)
index 0000000..16415ba
--- /dev/null
@@ -0,0 +1,7 @@
+<P><B>Viga:</B> järgmised valikud on konfliktis:</P>
+
+<UL>
+{[ckeyword]<LI><A HREF="#{ckeyword}">{ckeytext}</A></LI>
+}</UL>
+
+<P>Palun muutke konfliktide lahendamiseks vähemalt üht valikut.</P>
diff --git a/templates/et/option-header.tmpl b/templates/et/option-header.tmpl
new file mode 100644 (file)
index 0000000..cafc9f9
--- /dev/null
@@ -0,0 +1,3 @@
+<H2 CLASS="title">{printer_name}: {group}</H2>
+
+<TABLE>
diff --git a/templates/et/option-pickmany.tmpl b/templates/et/option-pickmany.tmpl
new file mode 100644 (file)
index 0000000..d2534af
--- /dev/null
@@ -0,0 +1,6 @@
+<TR>
+<TH CLASS="label"{conflicted=1? CLASS="conflict":}><A NAME="{keyword}">{keytext}</A>:</TH>
+<TD><SELECT NAME="{keyword}" MULTIPLE SIZE="10">
+{[choices]<OPTION {choices={defchoice}?SELECTED:} VALUE="{choices}">{text}}
+</SELECT></TD>
+</TR>
diff --git a/templates/et/option-pickone.tmpl b/templates/et/option-pickone.tmpl
new file mode 100644 (file)
index 0000000..08342d0
--- /dev/null
@@ -0,0 +1,6 @@
+<TR>
+<TH CLASS="label"{conflicted=1? CLASS="conflict":}><A NAME="{keyword}">{keytext}</A>:</TH>
+<TD><SELECT NAME="{keyword}">
+{[choices]<OPTION {choices={defchoice}?SELECTED:} VALUE="{choices}">{text}}
+</SELECT></TD>
+</TR>
diff --git a/templates/et/option-trailer.tmpl b/templates/et/option-trailer.tmpl
new file mode 100644 (file)
index 0000000..188073f
--- /dev/null
@@ -0,0 +1,5 @@
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-set-printer-options.gif" ALT="Määra printeri valikud"></TD>
+</TR>
+</TABLE>
diff --git a/templates/et/pager.tmpl b/templates/et/pager.tmpl
new file mode 100644 (file)
index 0000000..0c9cdc6
--- /dev/null
@@ -0,0 +1,7 @@
+<TABLE WIDTH="100%" CLASS="pager" SUMMARY="Paging Bar">
+<TR>
+       <TD WIDTH="33%">{PREVURL?<A HREF="{PREVURL}"><IMG SRC="/images/button-show-previous.gif" ALT="Näita eelmist" CLASS="button"></A>:&nbsp;}</TD>
+       <TD WIDTH="34%" ALIGN="CENTER">{ORDER=dec?<A HREF="{THISURL}&amp;ORDER=asc"><IMG SRC="/images/button-sort-ascending.gif" ALT="Sorteeri alanevalt" CLASS="button"></A>:<A HREF="{THISURL}&amp;ORDER=dec"><IMG SRC="/images/button-sort-descending.gif" ALT="Sorteeri tõusvalt" CLASS="button"></A>}</TD>
+       <TD WIDTH="33%" ALIGN="RIGHT">{NEXTURL?<A HREF="{NEXTURL}"><IMG SRC="/images/button-show-next.gif" ALT="Näita järgmist" CLASS="button"></A>:&nbsp;}</TD>
+</TR>
+</TABLE>
diff --git a/templates/et/printer-accept.tmpl b/templates/et/printer-accept.tmpl
new file mode 100644 (file)
index 0000000..8acec73
--- /dev/null
@@ -0,0 +1,3 @@
+<P>{is_class?Class:Printer} <A
+HREF="/{is_class?classes:printers}/{printer_name}">{printer_name}</A>
+võtab nüüd töid vastu.</P>
diff --git a/templates/et/printer-added.tmpl b/templates/et/printer-added.tmpl
new file mode 100644 (file)
index 0000000..455c418
--- /dev/null
@@ -0,0 +1,2 @@
+<P>Printer <A HREF="/printers/{printer_name}">{printer_name}</A> edukalt
+lisatud.
diff --git a/templates/et/printer-configured.tmpl b/templates/et/printer-configured.tmpl
new file mode 100644 (file)
index 0000000..5dbf70b
--- /dev/null
@@ -0,0 +1,2 @@
+<P>Printer <A HREF="/printers/{printer_name}">{printer_name}</A> edukalt
+seadistatud.
diff --git a/templates/et/printer-confirm.tmpl b/templates/et/printer-confirm.tmpl
new file mode 100644 (file)
index 0000000..fec4bf0
--- /dev/null
@@ -0,0 +1,7 @@
+<P><B>Hoiatus:</B> kas soovite tõesti kustutada printeri
+{printer_name}?</P>
+
+<P ALIGN="CENTER"><A
+HREF="/admin?op=delete-printer&printer_name={printer_name}&confirm=yes"><IMG
+SRC="/images/button-delete-printer.gif" ALT="Kustuta printer"
+CLASS="button"></A></P>
diff --git a/templates/et/printer-default.tmpl b/templates/et/printer-default.tmpl
new file mode 100644 (file)
index 0000000..9adae5b
--- /dev/null
@@ -0,0 +1,6 @@
+<P>{is_class?Class:Printer} <A
+HREF="/{is_class?classes:printers}/{printer_name}">{printer_name}</A>
+on määratud serveri vaikimisi printeriks.</P>
+
+<BLOCKQUOTE><B>Märkus:</B> kõik kasutajate vaikeväärtused, mis on
+määratud käsuga <TT>lpoptions</TT>, tühistavad selle vaikeseadistuse.</BLOCKQUOTE>
diff --git a/templates/et/printer-deleted.tmpl b/templates/et/printer-deleted.tmpl
new file mode 100644 (file)
index 0000000..aec0ced
--- /dev/null
@@ -0,0 +1 @@
+<P>Printer {printer_name} edukalt kustutatud.
diff --git a/templates/et/printer-jobs-header.tmpl b/templates/et/printer-jobs-header.tmpl
new file mode 100644 (file)
index 0000000..b3d29de
--- /dev/null
@@ -0,0 +1 @@
+<H3 CLASS="title">Tööd</H3>
diff --git a/templates/et/printer-modified.tmpl b/templates/et/printer-modified.tmpl
new file mode 100644 (file)
index 0000000..0e5789a
--- /dev/null
@@ -0,0 +1,2 @@
+<P>Printer <A HREF="/printers/{printer_name}">{printer_name}</A> edukalt
+muudetud.
diff --git a/templates/et/printer-purge.tmpl b/templates/et/printer-purge.tmpl
new file mode 100644 (file)
index 0000000..3225c10
--- /dev/null
@@ -0,0 +1,3 @@
+<P>{is_class?Class:Printer} <A
+HREF="/{is_class?classes:printers}/{printer_name}">{printer_name}</A>
+kõigist töödest puhastatud.</P>
diff --git a/templates/et/printer-reject.tmpl b/templates/et/printer-reject.tmpl
new file mode 100644 (file)
index 0000000..e93de18
--- /dev/null
@@ -0,0 +1,3 @@
+<P>{is_class?Class:Printer} <A
+HREF="/{is_class?classes:printers}/{printer_name}">{printer_name}</A>
+ei võta enam töid vastu.</P>
diff --git a/templates/et/printer-start.tmpl b/templates/et/printer-start.tmpl
new file mode 100644 (file)
index 0000000..533ac9b
--- /dev/null
@@ -0,0 +1,3 @@
+<P>{is_class?Class:Printer} <A
+HREF="/{is_class?classes:printers}/{printer_name}">{printer_name}</A>
+käivitatud.</P>
diff --git a/templates/et/printer-stop.tmpl b/templates/et/printer-stop.tmpl
new file mode 100644 (file)
index 0000000..601c50a
--- /dev/null
@@ -0,0 +1,3 @@
+<P>{is_class?Class:Printer} <A
+HREF="/{is_class?classes:printers}/{printer_name}">{printer_name}</A>
+peatatud.</P>
diff --git a/templates/et/printers-header.tmpl b/templates/et/printers-header.tmpl
new file mode 100644 (file)
index 0000000..5c37b37
--- /dev/null
@@ -0,0 +1 @@
+<P ALIGN="CENTER">{total=0?Printereid pole:Näidatakse {#printer_name} printerit {total} printerist{total=1?:}}.</P>
diff --git a/templates/et/printers.tmpl b/templates/et/printers.tmpl
new file mode 100644 (file)
index 0000000..a9d1419
--- /dev/null
@@ -0,0 +1,64 @@
+{printer_type?:}{#printer_name=0?:
+{[printer_name]
+<H2 CLASS="title"><A HREF="{printer_uri_supported}">{printer_name}</A>{default_name={printer_name}? (vaikimisi printer):}
+{?printer_state_message=?:<SPAN CLASS="message">"{printer_state_message}"</SPAN>}</H2>
+
+<TABLE WIDTH="100%" CLASS="button" CELLSPACING="0" CELLPADDING="0" SUMMARY="{printer_name}">
+<TR>
+<TD VALIGN="TOP"><A HREF="{printer_uri_supported}">
+<IMG SRC="/images/printer-{printer_state=3?idle:{printer_state=4?processing:stopped}}.gif" CLASS="button" ALT=""></A>
+</TD>
+<TD VALIGN="TOP"><B>Kirjeldus:</B> {printer_info}<BR>
+<B>Asukoht:</B> {printer_location}<BR>
+<B>Valmistaja ja mudel:</B> {printer_make_and_model}<BR>
+<B>Printeri olek:</B> {printer_state=3?jõude:{printer_state=4?töötleb:peatatud}},
+{printer_is_accepting_jobs=0?ei võta töid vastu:võtab töid vastu}, {printer_is_shared=0?pole:} avaldatud.
+{?device_uri=?:<BR><B>Seadme URI:</B> {device_uri}}
+
+<P>
+<A HREF="{printer_uri_supported}?op=print-test-page">
+<IMG SRC="/images/button-print-test-page.gif" ALT="Trüki testlehekülg" CLASS="button"></A>
+{?cupscommand=1?<A HREF="{printer_uri_supported}?op=clean-print-heads">
+<IMG SRC="/images/button-clean-print-heads.gif" ALT="Puhasta prindipead" CLASS="button"></A>
+<A HREF="{printer_uri_supported}?op=print-self-test-page">
+<IMG SRC="/images/button-print-self-test-page.gif" ALT="Trüki enesetesti lehekülg" CLASS="button"></A>:}
+{printer_state=5?
+<A HREF="{admin_uri}?op=start-printer&amp;printer_name={%printer_name}">
+<IMG SRC="/images/button-start-printer.gif" ALT="Käivita printer" CLASS="button"></A>
+:
+<A HREF="{admin_uri}?op=stop-printer&amp;printer_name={%printer_name}">
+<IMG SRC="/images/button-stop-printer.gif" ALT="Peata printer" CLASS="button"></A>
+}
+{printer_is_accepting_jobs=0?
+<A HREF="{admin_uri}?op=accept-jobs&amp;printer_name={%printer_name}">
+<IMG SRC="/images/button-accept-jobs.gif" ALT="Võta töid vastu" CLASS="button"></A>
+:
+<A HREF="{admin_uri}?op=reject-jobs&amp;printer_name={%printer_name}">
+<IMG SRC="/images/button-reject-jobs.gif" ALT="Ära võta töid vastu" CLASS="button"></A>
+}
+<A HREF="{printer_uri_supported}?op=move-jobs&amp;printer_name={%printer_name}">
+<IMG SRC="/images/button-move-jobs.gif" ALT="Liiguta kõik tööd" CLASS="button"></A>
+<A HREF="{admin_uri}?op=purge-jobs&amp;printer_name={%printer_name}">
+<IMG SRC="/images/button-cancel-all-jobs.gif" ALT="Katkesta kõik tööd" CLASS="button"></A>
+{printer_is_shared=0?
+<A HREF="{admin_uri}?op=set-sharing&amp;printer_name={%printer_name}&amp;shared=1">
+<IMG SRC="/images/button-publish-printer.gif" ALT="Avalda printer" CLASS="button"></A>
+:
+<A HREF="{admin_uri}?op=set-sharing&amp;printer_name={%printer_name}&amp;shared=0">
+<IMG SRC="/images/button-unpublish-printer.gif" ALT="Ära avalda printerit" CLASS="button"></A>
+}
+<A HREF="{admin_uri}?op=modify-printer&amp;printer_name={%printer_name}">
+<IMG SRC="/images/button-modify-printer.gif" ALT="Muuda printerit" CLASS="button"></A>
+<A HREF="{admin_uri}?op=set-printer-options&amp;printer_name={%printer_name}">
+<IMG SRC="/images/button-set-printer-options.gif" ALT="Määra printeri valikud" CLASS="button"></A>
+<A HREF="{admin_uri}?op=delete-printer&amp;printer_name={%printer_name}">
+<IMG SRC="/images/button-delete-printer.gif" ALT="Kustuta printer" CLASS="button"></A>
+<A HREF="{admin_uri}?op=set-as-default&amp;printer_name={%printer_name}">
+<IMG SRC="/images/button-set-as-default.gif" ALT="Määra vaikeväärtuseks" CLASS="button"></A>
+<A HREF="{admin_uri}?op=set-allowed-users&amp;printer_name={%printer_name}">
+<IMG SRC="/images/button-set-allowed-users.gif" ALT="Määra lubatud kasutajad" CLASS="button"></A>
+</P>
+</TD>
+</TR>
+</TABLE>
+}}
diff --git a/templates/et/restart.tmpl b/templates/et/restart.tmpl
new file mode 100644 (file)
index 0000000..7ec91b0
--- /dev/null
@@ -0,0 +1 @@
+<p>Palun oodake, kuni server taaskäivitub...</p>
diff --git a/templates/et/samba-export.tmpl b/templates/et/samba-export.tmpl
new file mode 100644 (file)
index 0000000..610d8ca
--- /dev/null
@@ -0,0 +1,55 @@
+<SCRIPT TYPE="text/javascript"><!--
+function select_printers() {
+  var list = document.export_samba.EXPORT_NAME;
+  var sel = document.export_samba.EXPORT_ALL.checked;
+
+  for (i = 0; i < list.length; i ++) {
+    list.options[i].selected = sel;
+  }
+}
+--></SCRIPT>
+
+<FORM METHOD="POST" ACTION="/admin/" NAME="export_samba">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="export-samba">
+
+<H2 CLASS="title">Printerite eksport Sambasse</H2>
+
+{error?<P>Printerite eksport Sambasse ebaõnnestus:</P>
+<BLOCKQUOTE>{error}</BLOCKQUOTE>
+<P>Täpsemat infot annab <A HREF="/admin/log/error_log"
+TARGET="_blank">error_log</A>.</P>:
+<P>Käesolev lehekülg võimaldab eksportida printereid Sambasse, et
+Windowsi kliendid saaksid neid kasutada ikoonide <VAR>Network
+Neighborhood</VAR> või <VAR>Network Places</VAR> abil oma töölaual.
+Teil peavad eelnevalt olema paigaldatud Windowsi PostScript
+printeridraiverid, nagu seda kirjeldab <A
+HREF="/help/man-cupsaddsmb.html"
+TARGET="_blank">cupsaddsmb(8)</A> manuaal.</P>}
+
+<TABLE>
+<TR>
+<TH CLASS="label">Printerid:</TH>
+<TD>
+<SELECT NAME="EXPORT_NAME" SIZE="10" MULTIPLE>
+{[printer_name]<OPTION VALUE="{printer_name}"{export_all? SELECTED:{printer_export? SELECTED:}}>{printer_name}}
+</SELECT><BR>
+<INPUT TYPE="CHECKBOX" NAME="EXPORT_ALL"{export_all? CHECKED:}
+onChange="select_printers()"> Kõigi printerite eksport
+</TD>
+</TR>
+<TR>
+<TH CLASS="label">Samba kasutajanimi:</TH>
+<TD><INPUT TYPE="TEXT" NAME="USERNAME" VALUE="{?USERNAME}"> (nõutav)</TD>
+</TR>
+<TR>
+<TH CLASS="label">Samba parool:</TH>
+<TD><INPUT TYPE="PASSWORD" NAME="PASSWORD" VALUE=""> (nõutav)</TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-export-samba.gif"
+ALT="Ekspordi printerid Sambasse"></TD>
+</TR>
+</TABLE>
+
+</FORM>
diff --git a/templates/et/samba-exported.tmpl b/templates/et/samba-exported.tmpl
new file mode 100644 (file)
index 0000000..b72a6b5
--- /dev/null
@@ -0,0 +1 @@
+<P>Printerid edukalt Sambasse eksporditud.</P>
diff --git a/templates/et/search.tmpl b/templates/et/search.tmpl
new file mode 100644 (file)
index 0000000..c5e06ee
--- /dev/null
@@ -0,0 +1,13 @@
+<FORM ACTION="/{SECTION}/{?SEARCH_DEST}" METHOD="GET">
+{WHICH_JOBS?<INPUT TYPE="HIDDEN" NAME="WHICH_JOBS" VALUE="{WHICH_JOBS}">:}
+{ORDER?<INPUT TYPE="HIDDEN" NAME="ORDER" VALUE="{ORDER}">:}
+
+<P ALIGN="CENTER"><B>Otsing - 
+{SEARCH_DEST?{SEARCH_DEST}:{SECTION=classes?klassides:{SECTION=jobs?töödes:printerites}}}:</B>
+<INPUT TYPE="TEXT" NAME="QUERY" VALUE="{?QUERY}" SIZE="60"> <INPUT
+TYPE="IMAGE" SRC="/images/button-search.gif" ALT="Otsi">
+<A
+HREF="/{SECTION}/{?SEARCH_DEST}{WHICH_JOBS??WHICH_JOBS={WHICH_JOBS}{ORDER?&amp;ORDER={ORDER}:}:{ORDER??ORDER={ORDER}:}}"><IMG
+SRC="/images/button-clear.gif" ALT="Puhasta" CLASS="button"></A></P>
+
+</FORM>
diff --git a/templates/et/set-printer-options-header.tmpl b/templates/et/set-printer-options-header.tmpl
new file mode 100644 (file)
index 0000000..864f9f0
--- /dev/null
@@ -0,0 +1,3 @@
+<FORM METHOD="POST" ACTION="/admin">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
diff --git a/templates/et/set-printer-options-trailer.tmpl b/templates/et/set-printer-options-trailer.tmpl
new file mode 100644 (file)
index 0000000..a3d1e1f
--- /dev/null
@@ -0,0 +1 @@
+</FORM>
diff --git a/templates/et/test-page.tmpl b/templates/et/test-page.tmpl
new file mode 100644 (file)
index 0000000..4d5d88d
--- /dev/null
@@ -0,0 +1,2 @@
+<P>Testlehekülg saadetud; töö ID on <A HREF="/{SECTION}/{printer_name}">
+{printer_name}-{job_id}</A>.</P>
diff --git a/templates/et/trailer.tmpl b/templates/et/trailer.tmpl
new file mode 100644 (file)
index 0000000..72871fb
--- /dev/null
@@ -0,0 +1,21 @@
+</TD>
+<TD WIDTH="15">&nbsp;</TD>
+</TR>
+<TR CLASS="trailer">
+<TD VALIGN="BOTTOM" WIDTH="15"><IMG SRC="/images/bottom-left.gif"
+WIDTH="15" HEIGHT="15" ALT=""></TD>
+<TD COLSPAN="2" WIDTH="100%" STYLE="padding: 5;">
+
+<P><SMALL>Common UNIX Printing System, CUPS ja CUPS-i logo on
+firma <A HREF="http://www.easysw.com">Easy Software
+Products</A> kaubamärgid. CUPS-i autoriõigus 1997-2006: Easy Software Products,
+kõik õigused kaitstud.</SMALL></P>
+
+</TD>
+
+<TD ALIGN="RIGHT" VALIGN="BOTTOM" WIDTH="15"><IMG SRC="/images/bottom-right.gif"
+WIDTH="15" HEIGHT="15" ALT=""></TD>
+</TR>
+</TABLE>
+</BODY>
+</HTML>
diff --git a/templates/et/users.tmpl b/templates/et/users.tmpl
new file mode 100644 (file)
index 0000000..2eaffed
--- /dev/null
@@ -0,0 +1,26 @@
+<FORM METHOD="POST" ACTION="/admin">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{OP}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
+{IS_CLASS?<INPUT TYPE="HIDDEN" NAME="IS_CLASS" VALUE="{IS_CLASS}">:}
+
+<H2 CLASS="title">{printer_name} lubatud kasutajad</H2>
+
+<TABLE>
+<TR>
+<TH CLASS="label">Kasutajad:</TH>
+<TD>
+<INPUT TYPE='TEXT' NAME='users' SIZE='60' VALUE='{?requesting_user_name_allowed}{?requesting_user_name_denied}'>
+<BR>
+<INPUT TYPE='RADIO' NAME='type' VALUE='requesting-user-name-allowed' {requesting_user_name_allowed?checked:}>Neil kasutajatel lubatakse trükkida
+<INPUT TYPE='RADIO' NAME='type' VALUE='requesting-user-name-denied' {requesting_user_name_denied?checked:}>Neil kasutajatel keelatakse trükkida
+</TD>
+</TR>
+<TR>
+<TD></TD>
+<TD>
+<INPUT TYPE="IMAGE" SRC="/images/button-set-allowed-users.gif" ALT="Määra lubatud kasutajad">
+</TD>
+</TR>
+</TABLE>
+
+</FORM>