-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
-CREDITS.txt - 2006-04-17
+CREDITS.txt - 2006-10-02
------------------------
Few projects are completed by one person, and CUPS is no exception. We'd
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.
-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
-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"
/*
- * "$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).
*
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"
*/
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 */
/*
/*
- * 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 $".
*/
/*
- * "$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).
*
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)))
{
/*
- * 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...
*/
/*
- * 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 $".
*/
/*
- * "$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).
*
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)
{
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 ++)
{
- 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)
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 */
/*
- * 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 ++)
{
- 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),
/*
- * 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 $".
*/
#
-# "$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).
#
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")))
########################################################################
#
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 $".
#
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
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'`"
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)
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_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
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
-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
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
;;
esac
else
+ # Add vendor-specific compiler options...
case $uname in
AIX*)
if test -z "$OPTIM"; then
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
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 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
-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).
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_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
-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
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(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))
+# 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_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
-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
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
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
/*
- * "$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).
*
#undef HAVE_CRYPT_H
+/*
+ * Do we have <scsi/sg.h>?
+ */
+
+#undef HAVE_SCSI_SG_H
+
+
/*
* Use <string.h>, <strings.h>, and/or <bstring.h>?
*/
*/
#undef HAVE_DBUS
+#undef HAVE_DBUS_MESSAGE_ITER_INIT_APPEND
/*
#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 $".
*/
/*
- * "$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).
*
* Constants...
*/
-# define CUPS_VERSION 1.0204
+# define CUPS_VERSION 1.0205
# 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
#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 $".
*/
/*
- * "$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).
/*
* '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 */
-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 */
+ 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)
*dests = dest;
+ /*
+ * Find where to insert the destination...
+ */
+
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) &&
- 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));
+ /*
+ * Initialize the destination...
+ */
+
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
+ {
+ /*
+ * Copy options from the primary 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);
}
*/
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 */
- if (num_dests == 0 || dests == NULL)
+ if (num_dests <= 0 || !dests)
return (NULL);
- if (name == NULL)
+ if (!name)
{
/*
* NULL name for default printer.
return (NULL);
else if (comp == 0)
{
- if ((instance == NULL && dests->instance == NULL) ||
+ if ((!instance && !dests->instance) ||
(instance != NULL && dests->instance != NULL &&
- strcasecmp(instance, dests->instance) == 0))
+ !strcasecmp(instance, dests->instance)))
return (dests);
}
* 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 */
* 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@
*/
/*
- * 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 $".
*/
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 */
+# ifdef HAVE_PTHREAD_H
+ char buffer[sizeof(struct dirent) + 1024];
+ /* Directory entry buffer */
+# endif /* HAVE_PTHREAD_H */
DEBUG_printf(("cupsDirRead(dp=%p)\n", dp));
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)));
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;
/*
- * "$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).
*
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));
...) /* 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 */
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 */
/*
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,
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));
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,
/*
- * 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 $".
*/
/*
- * "$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).
*
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 */
- ppd_group_t *g, *sg; /* Groups */
ppd_option_t *o1, *o2; /* Options */
ppd_choice_t *c1, *c2; /* Choices */
- if (ppd == NULL)
+ if (!ppd)
return (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
o1 = ppdFindOption(ppd, c->option1);
- if (o1 == NULL)
+ if (!o1)
continue;
- else if (c->choice1[0] != '\0')
+ else if (c->choice1[0])
{
/*
* This constraint maps to a specific choice.
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;
}
o2 = ppdFindOption(ppd, c->option2);
- if (o2 == NULL)
+ if (!o2)
continue;
- else if (c->choice2[0] != '\0')
+ else if (c->choice2[0])
{
/*
* This constraint maps to a specific choice.
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;
}
* 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,
/*
- * 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 $".
*/
/*
- * "$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).
*
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...)
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);
- 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... */
+ /*
+ * 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...)
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 (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';
{
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... */
+ /*
+ * 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);
+ 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);
+ 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;
}
+ /*
+ * 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;
}
/*
- * 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 $".
*/
/*
- * "$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).
*
- * 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
*
* 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 */
{
/*
- * '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@
*/
-char * /* O - Filename */
+char * /* O - Filename or NULL on error */
cupsTempFile(char *filename, /* I - Pointer to buffer */
int len) /* I - Size of 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@
*/
/*
- * 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 $".
*/
/*
- * "$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", "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",
/*
- * 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 $".
*/
/*
- * "$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).
*
*/
*dest++ = ch;
+ continue;
}
else if ((ch & 0xe0) == 0xc0)
{
* Check for UTF-16 surrogate (illegal UTF-8)...
*/
- if (*dest >= 0xd800 && *dest <= 0xdfff)
+ if (ch32 >= 0xd800 && ch32 <= 0xdfff)
return (-1);
}
/*
- * 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 $"
*/
X-KDE-SubstituteUID=false
X-KDE-Username=
Name=Manage Printing
-Name[en_US]=Manage Printing
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
+Name[et]=Trükkimise haldur
+Comment[et]=CUPS-i veebiliides
Name[pl]=Zarządzanie drukowaniem
Comment[pl]=Interfejs WWW CUPS
--- /dev/null
+<!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=""> Kodu <IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+ <A CLASS="unsel" HREF="/admin/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
+HEIGHT="4" ALIGN="TOP" BORDER="0"
+ALT=""> Haldus <IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+ <A CLASS="unsel" HREF="/classes/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
+HEIGHT="4" ALIGN="TOP" BORDER="0"
+ALT=""> Klassid <IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+ <A CLASS="unsel" HREF="/help/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
+HEIGHT="4" ALIGN="TOP" BORDER="0"
+ALT=""> Dokumentatsioon/Abi <IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+ <A CLASS="unsel" HREF="/jobs/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
+HEIGHT="4" ALIGN="TOP" BORDER="0"
+ALT=""> Tööd <IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+ <A CLASS="unsel" HREF="/printers/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
+HEIGHT="4" ALIGN="TOP" BORDER="0"
+ALT=""> Printerid <IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+</TD></TR>
+<TR CLASS="page">
+<TD WIDTH="15"> </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>®</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>®</SUP> X ja
+suurem osa Linux<SUP>®</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"> </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>
<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
<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>
<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>
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
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>
<!-- 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
<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'> DEPRECATED </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.
<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'> CUPS 1.2 </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>
<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>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>
<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>@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>
<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>
<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
</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).
<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>
*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>
/*
- * "$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).
*
- * 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
* 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.
* 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.
*/
-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
void
UpdatePageVars(void)
{
- float temp; /* Swapping variable */
+ float temp; /* Swapping variable */
switch (Orientation & 3)
/*
- * 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 $".
*/
/*
- * "$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).
*
- * 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
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);
/*
/*
- * 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 $".
*/
/*
- * "$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).
*
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");
/*
- * 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 $".
*/
/*
- * "$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).
*
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
/*
- * 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 $".
*/
/*
- * "$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).
*
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 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 */
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 (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))
{
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)
- printf("%%%%Title: %s\n", doc->title);
+ WriteTextComment("Title", doc->title);
if (doc->copies != 1 && (!doc->collate || !doc->slow_collate))
{
*/
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...
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);
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))
{
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)
* 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
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;
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)
/*
- * 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 $".
*/
/*
- * "$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).
*
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)");
/*
/*
- * 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 $".
*/
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."
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"
msgstr "Kann Drucker nicht hinzufügen:"
msgid "Set Printer Options"
-msgstr "Druckereinstellugen setzen"
+msgstr "Druckereinstellungen setzen"
msgid "Missing form variable!"
msgstr "Vermisse Formularvariable!"
--- /dev/null
+#
+# "$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"
+
+
.\"
-.\" "$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).
.\"
.\" 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
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
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 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 $".
.\"
#
-# "$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).
%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
+%requires cups-libs
%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
+%requires cups.sw.libs
+
+%format portable
+%requires cups-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 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
-%description Common UNIX Printing System - LPD support
-%format rpm
-%provides cups-lpd 1:@CUPS_VERSION@
-%format all
+%description LPD support
%subpackage de
-%description Common UNIX Printing System - German support
+%description German support
%subpackage es
-%description Common UNIX Printing System - Spanish support
+%description Spanish support
+
+%subpackage et
+%description Estonian support
%subpackage ja
-%description Common UNIX Printing System - Japanese support
+%description Japanese support
%subpackage pl
-%description Common UNIX Printing System - Polish support
+%description Polish support
%subpackage sv
-%description Common UNIX Printing System - Swedish support
+%description Swedish support
%subpackage
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 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
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
#
-# 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 $".
#
#
-# "$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).
#
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
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.
/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
#
-# 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 $".
#
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) {
/*
- * "$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.
*
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;
"CHUNKED" : "LENGTH",
CUPS_LLCAST con->http.data_remaining, con->file);
- if (con->request != NULL)
+ if (con->request)
{
/*
* Grab any request data from the connection...
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;
cupsdClearString(&con->filename);
}
- if (con->request != NULL)
+ if (con->request)
{
ippDelete(con->request);
con->request = NULL;
}
- if (con->response != NULL)
+ if (con->response)
{
ippDelete(con->response);
con->response = NULL;
/*
- * 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 $".
*/
/*
- * "$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).
*
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] == '-')
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.
/*
- * 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 $".
*/
/*
- * "$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).
*
* Don't do anything if we aren't polling...
*/
- if (NumPolled == 0)
+ if (NumPolled == 0 || BrowseSocket < 0)
{
PollPipe = -1;
PollStatusBuffer = NULL;
/*
- * 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 $".
*/
/*
- * "$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.
*
* 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...
#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...
*/
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);
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);
* 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))
*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 */
- 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 */
- 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 */
* 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);
}
- 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...
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);
+ }
}
else if (!strncmp(buffer, "*cupsProtocol:", 14))
strlcpy(cups_protocol, buffer, sizeof(cups_protocol));
!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))
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)
* 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)
{
- if (num_defaults > 0)
- free(defaults);
-
+ cupsFreeOptions(num_defaults, defaults);
cupsFileClose(src);
unlink(tempfile);
return (-1);
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);
+ }
}
}
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...
}
-/*
- * '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.
*/
/*
- * 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 $".
*/
/*
- * "$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).
*
* Add gziptoany filter to the front of the list...
*/
+ if (!filters)
+ filters = cupsArrayNew(NULL, NULL);
+
if (!cupsArrayInsert(filters, &gziptoany_filter))
{
cupsdLogMessage(CUPSD_LOG_ERROR,
* 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",
/*
- * 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 $".
*/
/*
- * "$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).
*
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,
- 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);
}
/*
- * 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 $".
*/
/*
- * "$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.
*
#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 */
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)
- dbus_message_iter_append_basic(&iter, DBUS_TYPE_STRING, &(dest->name));
+ dbus_message_iter_append_string(&iter, &(dest->name));
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);
/*
- * 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 $".
*/
--- /dev/null
+<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>
--- /dev/null
+<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>
--- /dev/null
+<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&{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> </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>
--- /dev/null
+<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>
--- /dev/null
+<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> </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>
--- /dev/null
+<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>
--- /dev/null
+<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>
--- /dev/null
+<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>
--- /dev/null
+<P>Klass <A HREF="/classes/{printer_name}">{printer_name}</A> edukalt
+lisatud.
--- /dev/null
+<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>
--- /dev/null
+<P>Klass {printer_name} edukalt kustutatud.
--- /dev/null
+<H3 CLASS="title">Tööd</H3>
--- /dev/null
+<P>Klass <A HREF="/classes/{printer_name}">{printer_name}</A> edukalt
+muudetud.
--- /dev/null
+<P ALIGN="CENTER">{total=0?Klassid puuduvad:Näidatakse {#printer_name} klassi {total} klassist{total=1?:}}.</P>
--- /dev/null
+{#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&printer_name={%printer_name}&is_class=Y">
+<IMG SRC="/images/button-start-class.gif" ALT="Käivita klass" CLASS="button"></A>
+:
+<A HREF="{admin_uri}?op=stop-class&printer_name={%printer_name}&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&printer_name={%printer_name}&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&printer_name={%printer_name}&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&printer_name={%printer_name}&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&printer_name={%printer_name}&shared=1&is_class=Y">
+<IMG SRC="/images/button-publish-printer.gif" ALT="Avalda printer" CLASS="button"></A>
+:
+<A HREF="{admin_uri}?op=set-sharing&printer_name={%printer_name}&shared=0&is_class=Y">
+<IMG SRC="/images/button-unpublish-printer.gif" ALT="Ära avalda printerit" CLASS="button"></A>
+}
+<A HREF="{admin_uri}?op=modify-class&printer_name={%printer_name}">
+<IMG SRC="/images/button-modify-class.gif" ALT="Muuda klassi" CLASS="button"></A>
+<A HREF="{admin_uri}?op=delete-class&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&printer_name={%printer_name}&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&printer_name={%printer_name}&is_class=Y">
+<IMG SRC="/images/button-set-allowed-users.gif" ALT="Määra lubatud kasutajad" CLASS="button"></A>
+</P>
+</TD>
+</TR>
+</TABLE>
+}}
--- /dev/null
+<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>
--- /dev/null
+<P>Viga:</P>
+
+<BLOCKQUOTE>Tundmatu operatsioon "{op}"!</BLOCKQUOTE>
--- /dev/null
+<P>{?message?{message}:Viga:}</P>
+
+<BLOCKQUOTE>{error}</BLOCKQUOTE>
--- /dev/null
+<!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=""> Kodu <IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+ <A CLASS="{SECTION=admin?:un}sel" HREF="/admin"><IMG
+SRC="/images/tab-left.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""> Haldus <IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+ <A CLASS="{SECTION=classes?:un}sel" HREF="/classes/"><IMG
+SRC="/images/tab-left.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""> Klassid <IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+ <A CLASS="{SECTION=help?:un}sel" HREF="/help/"><IMG
+SRC="/images/tab-left.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""> Dokumentatsioon/abi <IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+ <A CLASS="{SECTION=jobs?:un}sel" HREF="/jobs/"><IMG
+SRC="/images/tab-left.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""> Tööd <IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+ <A CLASS="{SECTION=printers?:un}sel" HREF="/printers/"><IMG
+SRC="/images/tab-left.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""> Printerid <IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+</TD></TR>
+<TR CLASS="page">
+<TD WIDTH="15"> </TD>
+<TD COLSPAN="2" WIDTH="100%" STYLE="height: 100%;" VALIGN="TOP" CLASS="page">
--- /dev/null
+<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>}
--- /dev/null
+<!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>
--- /dev/null
+<P><A HREF="{job_printer_uri}">Töö {job_id}</A> katkestatud.
--- /dev/null
+<P><A HREF="{job_printer_uri}">Tööd {job_id}</A> hoitakse trükkimast.
--- /dev/null
+<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>
--- /dev/null
+<P><A HREF="{job_printer_uri}">Töö {job_id}</A> trükkimiseks vabastatud.
--- /dev/null
+<P><A HREF="{job_printer_uri}">Töö {job_id}</A> uuesti käivitatud.
--- /dev/null
+<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>
--- /dev/null
+{#job_id=0?:
+<TABLE CELLPADDING="0" CELLSPACING="0" CLASS="button" WIDTH="100%" SUMMARY="Job List">
+<TR CLASS="data">
+<TH>ID </TH>
+<TH>Nimi </TH>
+<TH>Kasutaja </TH>
+<TH>Suurus </TH>
+<TH>Lehekülgi </TH>
+<TH>Olek </TH>
+<TH>Kontroll </TH>
+</TR>
+
+{[job_id]
+<TR CLASS="data" VALIGN="TOP">
+<TD><A HREF="{job_printer_uri}">{job_printer_name}</A>-{job_id} </TD>
+<TD>{?job_name=?Teadmata:{job_name}} </TD>
+<TD>{job_originating_user_name} </TD>
+<TD>{job_k_octets}k </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}}}}}}} </TD>
+<TD>
+{job_preserved>0?
+<A HREF="/jobs/?op=restart-job&job_id={job_id}&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&job_id={job_id}&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&job_id={job_id}&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&job_id={job_id}&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&job_id={job_id}"><IMG
+SRC="/images/button-move-job.gif" ALT="Liiguta töö" CLASS="button"></A>:}
+ </TD>
+</TR>
+}
+</TABLE>
+}
--- /dev/null
+<P>Hooldamiskäsud saadetud; töö ID on <A HREF="/printers/{printer_name}">
+{printer_name}-{job_id}</A>.</P>
--- /dev/null
+<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>
--- /dev/null
+<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>
--- /dev/null
+<p>Serverit ei käivitatud uuesti, sest seadistusse ei tehtud mingeid muudatusi...</p>
--- /dev/null
+<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>
--- /dev/null
+<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>
--- /dev/null
+<H2 CLASS="title">{printer_name}: {group}</H2>
+
+<TABLE>
--- /dev/null
+<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>
--- /dev/null
+<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>
--- /dev/null
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-set-printer-options.gif" ALT="Määra printeri valikud"></TD>
+</TR>
+</TABLE>
--- /dev/null
+<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>: }</TD>
+ <TD WIDTH="34%" ALIGN="CENTER">{ORDER=dec?<A HREF="{THISURL}&ORDER=asc"><IMG SRC="/images/button-sort-ascending.gif" ALT="Sorteeri alanevalt" CLASS="button"></A>:<A HREF="{THISURL}&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>: }</TD>
+</TR>
+</TABLE>
--- /dev/null
+<P>{is_class?Class:Printer} <A
+HREF="/{is_class?classes:printers}/{printer_name}">{printer_name}</A>
+võtab nüüd töid vastu.</P>
--- /dev/null
+<P>Printer <A HREF="/printers/{printer_name}">{printer_name}</A> edukalt
+lisatud.
--- /dev/null
+<P>Printer <A HREF="/printers/{printer_name}">{printer_name}</A> edukalt
+seadistatud.
--- /dev/null
+<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>
--- /dev/null
+<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>
--- /dev/null
+<P>Printer {printer_name} edukalt kustutatud.
--- /dev/null
+<H3 CLASS="title">Tööd</H3>
--- /dev/null
+<P>Printer <A HREF="/printers/{printer_name}">{printer_name}</A> edukalt
+muudetud.
--- /dev/null
+<P>{is_class?Class:Printer} <A
+HREF="/{is_class?classes:printers}/{printer_name}">{printer_name}</A>
+kõigist töödest puhastatud.</P>
--- /dev/null
+<P>{is_class?Class:Printer} <A
+HREF="/{is_class?classes:printers}/{printer_name}">{printer_name}</A>
+ei võta enam töid vastu.</P>
--- /dev/null
+<P>{is_class?Class:Printer} <A
+HREF="/{is_class?classes:printers}/{printer_name}">{printer_name}</A>
+käivitatud.</P>
--- /dev/null
+<P>{is_class?Class:Printer} <A
+HREF="/{is_class?classes:printers}/{printer_name}">{printer_name}</A>
+peatatud.</P>
--- /dev/null
+<P ALIGN="CENTER">{total=0?Printereid pole:Näidatakse {#printer_name} printerit {total} printerist{total=1?:}}.</P>
--- /dev/null
+{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&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&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&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&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&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&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&printer_name={%printer_name}&shared=1">
+<IMG SRC="/images/button-publish-printer.gif" ALT="Avalda printer" CLASS="button"></A>
+:
+<A HREF="{admin_uri}?op=set-sharing&printer_name={%printer_name}&shared=0">
+<IMG SRC="/images/button-unpublish-printer.gif" ALT="Ära avalda printerit" CLASS="button"></A>
+}
+<A HREF="{admin_uri}?op=modify-printer&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&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&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&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&printer_name={%printer_name}">
+<IMG SRC="/images/button-set-allowed-users.gif" ALT="Määra lubatud kasutajad" CLASS="button"></A>
+</P>
+</TD>
+</TR>
+</TABLE>
+}}
--- /dev/null
+<p>Palun oodake, kuni server taaskäivitub...</p>
--- /dev/null
+<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>
--- /dev/null
+<P>Printerid edukalt Sambasse eksporditud.</P>
--- /dev/null
+<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?&ORDER={ORDER}:}:{ORDER??ORDER={ORDER}:}}"><IMG
+SRC="/images/button-clear.gif" ALT="Puhasta" CLASS="button"></A></P>
+
+</FORM>
--- /dev/null
+<FORM METHOD="POST" ACTION="/admin">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
--- /dev/null
+<P>Testlehekülg saadetud; töö ID on <A HREF="/{SECTION}/{printer_name}">
+{printer_name}-{job_id}</A>.</P>
--- /dev/null
+</TD>
+<TD WIDTH="15"> </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>
--- /dev/null
+<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>