From: jlovell
Date: Fri, 20 Oct 2006 18:36:23 +0000 (+0000)
Subject: Load cups into easysw/current.
X-Git-Tag: release-1.6.3~225
X-Git-Url: http://git.ipfire.org/?p=thirdparty%2Fcups.git;a=commitdiff_plain;h=2abf387cae0cce4bf3a0a259ded28ef0269aec47
Load cups into easysw/current.
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@224 a1ca3aef-8c08-0410-bb20-df032aa958be
---
diff --git a/CHANGES.txt b/CHANGES.txt
index de49e923b..9762462f4 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,6 +1,68 @@
-CHANGES.txt - 2006-09-21
+CHANGES.txt - 2006-10-20
------------------------
+CHANGES IN CUPS V1.2.5
+
+ - Documentation updates (STR #2038)
+ - The SNMP backend no longer uses IPP for Epson printers
+ (STR #2028)
+ - Updated the configure script for Tru64 UNIX 5.1 (STR
+ #2033)
+ - Tru64 5.1B's getaddrinfo() and getnameinfo() functions
+ leak file descriptors (STR #2034)
+ - cupsAddDest() didn't add the parent destination's
+ options and attributes.
+ - ppdConflicts() did not handle custom option
+ constraints.
+ - Raw printing of gzip'd files did not work (STR #2009)
+ - The scheduler no longer preserves default option
+ choices when the new PPD no longer provides the old
+ default choice (STR #1929)
+ - The Linux SCSI backend is now only built if the SCSI
+ development headers are installed.
+ - USB printing to Minolta printers did not work (STR
+ #2019)
+ - Windows clients could not monitor the queue status (STR
+ #2006)
+ - The scheduler didn't log the operation name in the
+ access_log file for Create-Job and Print-Job requests.
+ - The PostScript filter now separates collated copies
+ with any required JCL commands so that JCL-based
+ finishing options act on the individual copies and not
+ all of the copies as a single document.
+ - The PostScript filter now disables duplex printing when
+ printing a 1-page document.
+ - cups-lpd didn't pass the correct
+ job-originating-host-name value (STR #2023)
+ - Fixed some speling errors in the German message catalog
+ (STR #2012)
+ - cupstestppd did not catch PPD files with bad
+ UIConstraints values (STR #2016)
+ - The USB backend did not work with the current udev-
+ created printers if the first printer was disconnected
+ (STR #2017)
+ - Mirrored and rotated printing did not work with some
+ documents (STR #2004)
+ - 2-sided printing with banners did not work properly on
+ some printers (STR #2018)
+ - Updated the raw type rule to handle PJL within the
+ first 4k of a print job (STR #1969)
+ - Added an Estonian translation (STR #1957)
+ - Clarified the documentation for the cupsd.conf @LOCAL
+ and @IF(name) allow/deny functionality (STR #1992)
+ - The PostScript filters did not escape the Title and For
+ comments in the print job header (STR #1988)
+ - The scheduler would use 100% CPU if browsing was
+ disabled and the cupsd.conf file contained BrowsePoll
+ lines (STR #1994)
+ - The cupsDirRead() function did not work properly on
+ non-POSIX-compliant systems (STR #2001)
+ - The cupsFile functions didn't handle read/write errors
+ properly (STR #1996)
+ - The DBUS support now works with older versions of the
+ DBUS library.
+
+
CHANGES IN CUPS V1.2.4
- The --with-printcap configure option did not work (STR
diff --git a/CREDITS.txt b/CREDITS.txt
index 27722e232..09db1ccb7 100644
--- a/CREDITS.txt
+++ b/CREDITS.txt
@@ -1,4 +1,4 @@
-CREDITS.txt - 2006-04-17
+CREDITS.txt - 2006-10-02
------------------------
Few projects are completed by one person, and CUPS is no exception. We'd
@@ -20,6 +20,7 @@ like to thank the following individuals for their contributions:
testing.
Kiko - Bug fixes.
Sergey V. Kovalyov - ESP Print Pro and CUPS beta tester.
+ Marek Laane - Estonian translation.
Mark Lawrence - Microsoft interoperability testing.
Jeff Licquia - Bug fixes, beta testing, evangelism.
Jason McMullan - Original CUPS RPM distributions.
diff --git a/INSTALL.txt b/INSTALL.txt
index df6022b46..e7c8e40c8 100644
--- a/INSTALL.txt
+++ b/INSTALL.txt
@@ -1,4 +1,4 @@
-INSTALL - CUPS v1.2.0 - 2006-05-08
+INSTALL - CUPS v1.2.5 - 2006-10-20
----------------------------------
This file describes how to compile and install CUPS from source
diff --git a/README.txt b/README.txt
index 34983cd94..b4d96744d 100644
--- a/README.txt
+++ b/README.txt
@@ -1,4 +1,4 @@
-README - CUPS v1.2.3 - 2006-08-28
+README - CUPS v1.2.5 - 2006-10-20
---------------------------------
Looking for compile instructions? Read the file "INSTALL.txt"
diff --git a/backend/scsi.c b/backend/scsi.c
index 06a088899..fd06127d7 100644
--- a/backend/scsi.c
+++ b/backend/scsi.c
@@ -1,5 +1,5 @@
/*
- * "$Id: scsi.c 5023 2006-01-29 14:39:44Z mike $"
+ * "$Id: scsi.c 6032 2006-10-12 19:19:47Z mike $"
*
* SCSI printer backend for the Common UNIX Printing System (CUPS).
*
@@ -80,7 +80,7 @@ void list_devices(void);
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"
@@ -90,7 +90,7 @@ int print_device(const char *resource, int fd, int copies);
*/
void list_devices(void) {}
int print_device(const char *resource, int fd, int copies) { return (CUPS_BACKEND_FAILED); }
-#endif /* __linux */
+#endif /* __linux && HAVE_SCSI_SG_H */
/*
@@ -220,5 +220,5 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */
/*
- * End of "$Id: scsi.c 5023 2006-01-29 14:39:44Z mike $".
+ * End of "$Id: scsi.c 6032 2006-10-12 19:19:47Z mike $".
*/
diff --git a/backend/snmp.c b/backend/snmp.c
index c1af7cefc..f2a2b893f 100644
--- a/backend/snmp.c
+++ b/backend/snmp.c
@@ -1,5 +1,5 @@
/*
- * "$Id: snmp.c 5976 2006-09-20 22:46:15Z mike $"
+ * "$Id: snmp.c 6049 2006-10-20 15:07:21Z mike $"
*
* SNMP discovery backend for the Common UNIX Printing System (CUPS).
*
@@ -1728,13 +1728,14 @@ probe_device(snmp_cache_t *device) /* I - Device */
debug_printf("DEBUG: %.3f Probing %s...\n", run_time(), device->addrname);
if (device->make_and_model &&
- (!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...
*/
@@ -2454,5 +2455,5 @@ update_cache(snmp_cache_t *device, /* I - Device */
/*
- * End of "$Id: snmp.c 5976 2006-09-20 22:46:15Z mike $".
+ * End of "$Id: snmp.c 6049 2006-10-20 15:07:21Z mike $".
*/
diff --git a/backend/usb-unix.c b/backend/usb-unix.c
index 94544df5e..47b2cf1f0 100644
--- a/backend/usb-unix.c
+++ b/backend/usb-unix.c
@@ -1,5 +1,5 @@
/*
- * "$Id: usb-unix.c 5726 2006-07-12 20:00:11Z mike $"
+ * "$Id: usb-unix.c 6032 2006-10-12 19:19:47Z mike $"
*
* USB port backend for the Common UNIX Printing System (CUPS).
*
@@ -79,12 +79,13 @@ print_device(const char *uri, /* I - Device URI */
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)
{
@@ -185,44 +186,52 @@ void
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)
@@ -309,35 +318,41 @@ open_device(const char *uri, /* I - Device URI */
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),
@@ -510,5 +525,5 @@ open_device(const char *uri, /* I - Device URI */
/*
- * End of "$Id: usb-unix.c 5726 2006-07-12 20:00:11Z mike $".
+ * End of "$Id: usb-unix.c 6032 2006-10-12 19:19:47Z mike $".
*/
diff --git a/conf/mime.types b/conf/mime.types
index 6f3d0467a..e5a522df5 100644
--- a/conf/mime.types
+++ b/conf/mime.types
@@ -1,5 +1,5 @@
#
-# "$Id: mime.types 5402 2006-04-14 19:21:03Z mike $"
+# "$Id: mime.types 6003 2006-10-02 16:26:04Z mike $"
#
# MIME types file for the Common UNIX Printing System (CUPS).
#
@@ -154,8 +154,8 @@ application/vnd.cups-raster string(0,"RaSt") string(0,"tSaR")
application/vnd.cups-raw (string(0,<1B>E) + !string(2,<1B>%0B)) \
string(0,<1B>@) \
(contains(0,128,<1B>%-12345X) + \
- (contains(0,1024,"LANGUAGE=PCL") \
- contains(0,1024,"LANGUAGE = PCL")))
+ (contains(0,4096,"LANGUAGE=PCL") \
+ contains(0,4096,"LANGUAGE = PCL")))
########################################################################
#
@@ -167,5 +167,5 @@ application/vnd.cups-raw (string(0,<1B>E) + !string(2,<1B>%0B)) \
application/octet-stream
#
-# 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 $".
#
diff --git a/config-scripts/cups-common.m4 b/config-scripts/cups-common.m4
index 5674a8d3a..8e1e29a28 100644
--- a/config-scripts/cups-common.m4
+++ b/config-scripts/cups-common.m4
@@ -1,5 +1,5 @@
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
@@ -29,7 +29,7 @@ dnl Set the name of the config header file...
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'`"
@@ -132,6 +132,7 @@ AC_CHECK_HEADER(strings.h,AC_DEFINE(HAVE_STRINGS_H))
AC_CHECK_HEADER(bstring.h,AC_DEFINE(HAVE_BSTRING_H))
AC_CHECK_HEADER(usersec.h,AC_DEFINE(HAVE_USERSEC_H))
AC_CHECK_HEADER(sys/ioctl.h,AC_DEFINE(HAVE_SYS_IOCTL_H))
+AC_CHECK_HEADER(scsi/sg.h,AC_DEFINE(HAVE_SCSI_SG_H))
dnl Checks for string functions.
AC_CHECK_FUNCS(strdup strcasecmp strncasecmp strlcat strlcpy)
@@ -231,12 +232,13 @@ case $uname in
AC_MSG_CHECKING(for DBUS)
if $PKGCONFIG --exists dbus-1; then
AC_MSG_RESULT(yes)
+ AC_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
@@ -265,5 +267,5 @@ AC_SUBST(DEFAULT_IPP_PORT)
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
diff --git a/config-scripts/cups-compiler.m4 b/config-scripts/cups-compiler.m4
index 7dc7b7052..f265d2ca0 100644
--- a/config-scripts/cups-compiler.m4
+++ b/config-scripts/cups-compiler.m4
@@ -1,5 +1,5 @@
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
@@ -93,6 +93,7 @@ PIEFLAGS=""
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
@@ -273,6 +274,7 @@ if test -n "$GCC"; then
;;
esac
else
+ # Add vendor-specific compiler options...
case $uname in
AIX*)
if test -z "$OPTIM"; then
@@ -358,6 +360,16 @@ else
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
@@ -449,16 +461,25 @@ else
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
diff --git a/config-scripts/cups-defaults.m4 b/config-scripts/cups-defaults.m4
index 15d75de1e..786411680 100644
--- a/config-scripts/cups-defaults.m4
+++ b/config-scripts/cups-defaults.m4
@@ -1,5 +1,5 @@
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).
@@ -28,7 +28,7 @@ AC_ARG_WITH(languages, [ --with-languages set installed languages, defau
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
@@ -252,5 +252,5 @@ fi
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
diff --git a/config-scripts/cups-network.m4 b/config-scripts/cups-network.m4
index d30f4b90b..abe2ebcf0 100644
--- a/config-scripts/cups-network.m4
+++ b/config-scripts/cups-network.m4
@@ -1,5 +1,5 @@
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
@@ -24,12 +24,17 @@ 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 ])
AC_CHECK_HEADER(sys/sockio.h, AC_DEFINE(HAVE_SYS_SOCKIO_H))
@@ -85,5 +90,5 @@ AC_SUBST(CUPS_DEFAULT_DOMAINSOCKET)
AC_SUBST(CUPS_LISTEN_DOMAINSOCKET)
dnl
-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
diff --git a/config-scripts/cups-threads.m4 b/config-scripts/cups-threads.m4
index 47f76e2ae..55bb944b8 100644
--- a/config-scripts/cups-threads.m4
+++ b/config-scripts/cups-threads.m4
@@ -1,5 +1,5 @@
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
@@ -44,6 +44,12 @@ if test "x$enable_threads" != xno; then
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
@@ -53,5 +59,5 @@ fi
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
diff --git a/config.h.in b/config.h.in
index b4cd1b551..98dac2c62 100644
--- a/config.h.in
+++ b/config.h.in
@@ -1,5 +1,5 @@
/*
- * "$Id: config.h.in 5630 2006-06-05 18:42:53Z mike $"
+ * "$Id: config.h.in 6032 2006-10-12 19:19:47Z mike $"
*
* Configuration file for the Common UNIX Printing System (CUPS).
*
@@ -147,6 +147,13 @@
#undef HAVE_CRYPT_H
+/*
+ * Do we have ?
+ */
+
+#undef HAVE_SCSI_SG_H
+
+
/*
* Use , , and/or ?
*/
@@ -434,6 +441,7 @@
*/
#undef HAVE_DBUS
+#undef HAVE_DBUS_MESSAGE_ITER_INIT_APPEND
/*
@@ -446,5 +454,5 @@
#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 $".
*/
diff --git a/cups/cups.h b/cups/cups.h
index ec4f21b96..c561dc19c 100644
--- a/cups/cups.h
+++ b/cups/cups.h
@@ -1,5 +1,5 @@
/*
- * "$Id: cups.h 5930 2006-09-07 19:49:34Z mike $"
+ * "$Id: cups.h 5993 2006-09-29 12:57:31Z mike $"
*
* API definitions for the Common UNIX Printing System (CUPS).
*
@@ -61,10 +61,10 @@ extern "C" {
* 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
@@ -244,5 +244,5 @@ extern cups_file_t *cupsTempFile2(char *filename, int len);
#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 $".
*/
diff --git a/cups/dest.c b/cups/dest.c
index faf8241b8..289456370 100644
--- a/cups/dest.c
+++ b/cups/dest.c
@@ -1,5 +1,5 @@
/*
- * "$Id: dest.c 5753 2006-07-18 19:53:24Z mike $"
+ * "$Id: dest.c 6044 2006-10-17 20:32:59Z mike $"
*
* User-defined destination (and option) support for the Common UNIX
* Printing System (CUPS).
@@ -64,21 +64,31 @@ static int cups_get_sdests(http_t *http, ipp_op_t op, int num_dests,
/*
* 'cupsAddDest()' - Add a destination to the list of destinations.
*
- * 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)
@@ -98,27 +108,53 @@ cupsAddDest(const char *name, /* I - Name of destination */
*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);
}
@@ -160,18 +196,18 @@ cupsFreeDests(int num_dests, /* I - Number of destinations */
*/
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.
@@ -198,9 +234,9 @@ cupsGetDest(const char *name, /* I - Name of destination */
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);
}
@@ -220,6 +256,9 @@ cupsGetDest(const char *name, /* I - Name of destination */
* printer-info, printer-is-accepting-jobs, printer-is-shared,
* printer-make-and-model, printer-state, printer-state-change-time,
* printer-state-reasons, and printer-type attributes as options.
+ *
+ * Use the cupsFreeDests() function to free the destination list and
+ * the cupsGetDest() function to find a particular destination.
*/
int /* O - Number of destinations */
@@ -252,6 +291,9 @@ cupsGetDests(cups_dest_t **dests) /* O - Destinations */
* printer-make-and-model, printer-state, printer-state-change-time,
* printer-state-reasons, and printer-type attributes as options.
*
+ * Use the cupsFreeDests() function to free the destination list and
+ * the cupsGetDest() function to find a particular destination.
+ *
* @since CUPS 1.1.21@
*/
@@ -1041,5 +1083,5 @@ cups_get_sdests(http_t *http, /* I - HTTP connection */
/*
- * End of "$Id: dest.c 5753 2006-07-18 19:53:24Z mike $".
+ * End of "$Id: dest.c 6044 2006-10-17 20:32:59Z mike $".
*/
diff --git a/cups/dir.c b/cups/dir.c
index 1b6bc4369..c130bd865 100644
--- a/cups/dir.c
+++ b/cups/dir.c
@@ -347,10 +347,12 @@ cupsDirOpen(const char *directory) /* I - Directory name */
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));
@@ -368,6 +370,11 @@ cupsDirRead(cups_dir_t *dp) /* I - Directory */
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)));
@@ -382,6 +389,25 @@ cupsDirRead(cups_dir_t *dp) /* I - Directory */
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;
diff --git a/cups/file.c b/cups/file.c
index 246972d76..f4bbf34e0 100644
--- a/cups/file.c
+++ b/cups/file.c
@@ -1,5 +1,5 @@
/*
- * "$Id: file.c 5812 2006-08-09 22:42:51Z mike $"
+ * "$Id: file.c 5993 2006-09-29 12:57:31Z mike $"
*
* File functions for the Common UNIX Printing System (CUPS).
*
@@ -377,7 +377,7 @@ cupsFileFind(const char *filename, /* I - File to find */
int /* O - 0 on success, -1 on error */
cupsFileFlush(cups_file_t *fp) /* I - CUPS file */
{
- size_t bytes; /* Bytes to write */
+ ssize_t bytes; /* Bytes to write */
DEBUG_printf(("cupsFileFlush(fp=%p)\n", fp));
@@ -991,7 +991,7 @@ cupsFilePrintf(cups_file_t *fp, /* I - CUPS file */
...) /* I - Additional args as necessary */
{
va_list ap; /* Argument list */
- size_t bytes; /* Formatted size */
+ ssize_t bytes; /* Formatted size */
char buf[8192]; /* Formatted text */
@@ -1090,7 +1090,7 @@ int /* O - Number of bytes written or -1 */
cupsFilePuts(cups_file_t *fp, /* I - CUPS file */
const char *s) /* I - String to write */
{
- size_t bytes; /* Bytes to write */
+ ssize_t bytes; /* Bytes to write */
/*
@@ -1149,8 +1149,8 @@ cupsFileRead(cups_file_t *fp, /* I - CUPS file */
char *buf, /* O - Buffer */
size_t bytes) /* I - Number of bytes to read */
{
- 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,
@@ -1274,7 +1274,7 @@ off_t /* O - New file position or -1 */
cupsFileSeek(cups_file_t *fp, /* I - CUPS file */
off_t pos) /* I - Position in file */
{
- 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));
@@ -2030,8 +2030,8 @@ cups_write(cups_file_t *fp, /* I - CUPS file */
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,
@@ -2081,5 +2081,5 @@ cups_write(cups_file_t *fp, /* I - CUPS file */
/*
- * End of "$Id: file.c 5812 2006-08-09 22:42:51Z mike $".
+ * End of "$Id: file.c 5993 2006-09-29 12:57:31Z mike $".
*/
diff --git a/cups/mark.c b/cups/mark.c
index 6577c0bfc..2e9cbee55 100644
--- a/cups/mark.c
+++ b/cups/mark.c
@@ -1,5 +1,5 @@
/*
- * "$Id: mark.c 5700 2006-06-26 19:20:39Z mike $"
+ * "$Id: mark.c 6036 2006-10-13 22:06:43Z mike $"
*
* Option marking routines for the Common UNIX Printing System (CUPS).
*
@@ -62,15 +62,14 @@ static void ppd_defaults(ppd_file_t *ppd, ppd_group_t *g);
int /* O - Number of conflicts found */
ppdConflicts(ppd_file_t *ppd) /* I - PPD to check */
{
- int 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);
/*
@@ -79,15 +78,8 @@ ppdConflicts(ppd_file_t *ppd) /* I - PPD to check */
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
@@ -102,9 +94,9 @@ ppdConflicts(ppd_file_t *ppd) /* I - PPD to check */
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.
@@ -122,10 +114,10 @@ ppdConflicts(ppd_file_t *ppd) /* I - PPD to check */
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;
}
@@ -135,9 +127,9 @@ ppdConflicts(ppd_file_t *ppd) /* I - PPD to check */
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.
@@ -155,10 +147,10 @@ ppdConflicts(ppd_file_t *ppd) /* I - PPD to check */
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;
}
@@ -166,8 +158,7 @@ ppdConflicts(ppd_file_t *ppd) /* I - PPD to check */
* 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,
@@ -686,5 +677,5 @@ ppd_defaults(ppd_file_t *ppd, /* I - PPD file */
/*
- * End of "$Id: mark.c 5700 2006-06-26 19:20:39Z mike $".
+ * End of "$Id: mark.c 6036 2006-10-13 22:06:43Z mike $".
*/
diff --git a/cups/ppd.c b/cups/ppd.c
index 15abaa807..9facfe6b9 100644
--- a/cups/ppd.c
+++ b/cups/ppd.c
@@ -1,5 +1,5 @@
/*
- * "$Id: ppd.c 5826 2006-08-15 19:04:11Z mike $"
+ * "$Id: ppd.c 6036 2006-10-13 22:06:43Z mike $"
*
* PPD file routines for the Common UNIX Printing System (CUPS).
*
@@ -1549,6 +1549,18 @@ ppdOpen2(cups_file_t *fp) /* I - File to read from */
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...)
@@ -1556,17 +1568,38 @@ ppdOpen2(cups_file_t *fp) /* I - File to read from */
if (constraint->option1[0] == '*')
_cups_strcpy(constraint->option1, constraint->option1 + 1);
+ 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...)
@@ -1574,9 +1607,21 @@ ppdOpen2(cups_file_t *fp) /* I - File to read from */
if (constraint->option1[0] == '*')
_cups_strcpy(constraint->option1, constraint->option1 + 1);
+ 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';
@@ -1585,20 +1630,85 @@ ppdOpen2(cups_file_t *fp) /* I - File to read from */
{
if (constraint->option2[0] == '*')
_cups_strcpy(constraint->option2, constraint->option2 + 1);
+ 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;
}
@@ -2936,5 +3046,5 @@ ppd_read(cups_file_t *fp, /* I - File to read from */
/*
- * End of "$Id: ppd.c 5826 2006-08-15 19:04:11Z mike $".
+ * End of "$Id: ppd.c 6036 2006-10-13 22:06:43Z mike $".
*/
diff --git a/cups/tempfile.c b/cups/tempfile.c
index 0e64565b0..60dfc81ff 100644
--- a/cups/tempfile.c
+++ b/cups/tempfile.c
@@ -1,9 +1,9 @@
/*
- * "$Id: tempfile.c 4918 2006-01-12 05:14:40Z mike $"
+ * "$Id: tempfile.c 6040 2006-10-17 02:24:49Z mike $"
*
* Temp file utilities for the Common UNIX Printing System (CUPS).
*
- * 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
@@ -25,9 +25,9 @@
*
* 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.
*/
/*
@@ -48,12 +48,13 @@
/*
- * '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 */
{
@@ -158,16 +159,16 @@ cupsTempFd(char *filename, /* I - Pointer to buffer */
/*
- * 'cupsTempFile()' - Generate a temporary filename.
+ * 'cupsTempFile()' - Generates a temporary filename.
*
- * The temporary filename is stored in the filename buffer.
+ * The temporary filename is returned in the filename buffer.
* This function is deprecated - use cupsTempFd() or cupsTempFile2()
* instead.
*
* @deprecated@
*/
-char * /* O - Filename */
+char * /* O - Filename or NULL on error */
cupsTempFile(char *filename, /* I - Pointer to buffer */
int len) /* I - Size of buffer */
{
@@ -207,9 +208,10 @@ cupsTempFile(char *filename, /* I - Pointer to buffer */
/*
- * 'cupsTempFile2()' - Create a temporary CUPS file.
+ * 'cupsTempFile2()' - Creates a temporary CUPS file.
*
- * The temporary filename is stored in the filename buffer.
+ * The temporary filename is returned in the filename buffer.
+ * The temporary file is opened for writing.
*
* @since CUPS 1.2@
*/
@@ -236,5 +238,5 @@ cupsTempFile2(char *filename, /* I - Pointer to buffer */
/*
- * End of "$Id: tempfile.c 4918 2006-01-12 05:14:40Z mike $".
+ * End of "$Id: tempfile.c 6040 2006-10-17 02:24:49Z mike $".
*/
diff --git a/cups/testhttp.c b/cups/testhttp.c
index 1ef498e33..2d0af275e 100644
--- a/cups/testhttp.c
+++ b/cups/testhttp.c
@@ -1,5 +1,5 @@
/*
- * "$Id: testhttp.c 5679 2006-06-20 14:45:15Z mike $"
+ * "$Id: testhttp.c 6003 2006-10-02 16:26:04Z mike $"
*
* HTTP test program for the Common UNIX Printing System (CUPS).
*
@@ -84,6 +84,8 @@ static uri_test_t uri_tests[] = /* URI test data */
"http", "username:password", "server", "/", 8080, 8080 },
{ HTTP_URI_OK, "http://username:passwor%64@server:8080/directory/filename",
"http", "username:password", "server", "/directory/filename", 8080, 8080 },
+ { HTTP_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",
@@ -531,5 +533,5 @@ main(int argc, /* I - Number of command-line arguments */
/*
- * End of "$Id: testhttp.c 5679 2006-06-20 14:45:15Z mike $".
+ * End of "$Id: testhttp.c 6003 2006-10-02 16:26:04Z mike $".
*/
diff --git a/cups/transcode.c b/cups/transcode.c
index 40bf2f054..b0b5166fc 100644
--- a/cups/transcode.c
+++ b/cups/transcode.c
@@ -1,5 +1,5 @@
/*
- * "$Id: transcode.c 5838 2006-08-17 14:41:42Z mike $"
+ * "$Id: transcode.c 6038 2006-10-14 15:53:10Z mike $"
*
* Transcoding support for the Common UNIX Printing System (CUPS).
*
@@ -445,6 +445,7 @@ cupsUTF8ToUTF32(
*/
*dest++ = ch;
+ continue;
}
else if ((ch & 0xe0) == 0xc0)
{
@@ -540,7 +541,7 @@ cupsUTF8ToUTF32(
* Check for UTF-16 surrogate (illegal UTF-8)...
*/
- if (*dest >= 0xd800 && *dest <= 0xdfff)
+ if (ch32 >= 0xd800 && ch32 <= 0xdfff)
return (-1);
}
@@ -1583,5 +1584,5 @@ get_vbcs_charmap(
/*
- * End of "$Id: transcode.c 5838 2006-08-17 14:41:42Z mike $"
+ * End of "$Id: transcode.c 6038 2006-10-14 15:53:10Z mike $"
*/
diff --git a/desktop/cups.desktop b/desktop/cups.desktop
index a632eb793..48ac645bb 100644
--- a/desktop/cups.desktop
+++ b/desktop/cups.desktop
@@ -14,10 +14,12 @@ X-DCOP-ServiceType=
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
diff --git a/doc/et/images/button-accept-jobs.gif b/doc/et/images/button-accept-jobs.gif
new file mode 100644
index 000000000..38521be7d
Binary files /dev/null and b/doc/et/images/button-accept-jobs.gif differ
diff --git a/doc/et/images/button-add-class.gif b/doc/et/images/button-add-class.gif
new file mode 100644
index 000000000..fc6a4ad21
Binary files /dev/null and b/doc/et/images/button-add-class.gif differ
diff --git a/doc/et/images/button-add-printer.gif b/doc/et/images/button-add-printer.gif
new file mode 100644
index 000000000..6c8d04a3d
Binary files /dev/null and b/doc/et/images/button-add-printer.gif differ
diff --git a/doc/et/images/button-add-this-printer.gif b/doc/et/images/button-add-this-printer.gif
new file mode 100644
index 000000000..54f19ff1d
Binary files /dev/null and b/doc/et/images/button-add-this-printer.gif differ
diff --git a/doc/et/images/button-cancel-all-jobs.gif b/doc/et/images/button-cancel-all-jobs.gif
new file mode 100644
index 000000000..50d31fa43
Binary files /dev/null and b/doc/et/images/button-cancel-all-jobs.gif differ
diff --git a/doc/et/images/button-cancel-job.gif b/doc/et/images/button-cancel-job.gif
new file mode 100644
index 000000000..d731ed709
Binary files /dev/null and b/doc/et/images/button-cancel-job.gif differ
diff --git a/doc/et/images/button-change-settings.gif b/doc/et/images/button-change-settings.gif
new file mode 100644
index 000000000..8bcc0a20a
Binary files /dev/null and b/doc/et/images/button-change-settings.gif differ
diff --git a/doc/et/images/button-clean-print-heads.gif b/doc/et/images/button-clean-print-heads.gif
new file mode 100644
index 000000000..3b5472c35
Binary files /dev/null and b/doc/et/images/button-clean-print-heads.gif differ
diff --git a/doc/et/images/button-clear.gif b/doc/et/images/button-clear.gif
new file mode 100644
index 000000000..bff0e60e3
Binary files /dev/null and b/doc/et/images/button-clear.gif differ
diff --git a/doc/et/images/button-continue.gif b/doc/et/images/button-continue.gif
new file mode 100644
index 000000000..fbc1f95f3
Binary files /dev/null and b/doc/et/images/button-continue.gif differ
diff --git a/doc/et/images/button-delete-class.gif b/doc/et/images/button-delete-class.gif
new file mode 100644
index 000000000..ae0d7ca5a
Binary files /dev/null and b/doc/et/images/button-delete-class.gif differ
diff --git a/doc/et/images/button-delete-printer.gif b/doc/et/images/button-delete-printer.gif
new file mode 100644
index 000000000..00ed5a504
Binary files /dev/null and b/doc/et/images/button-delete-printer.gif differ
diff --git a/doc/et/images/button-edit-configuration-file.gif b/doc/et/images/button-edit-configuration-file.gif
new file mode 100644
index 000000000..a846b9680
Binary files /dev/null and b/doc/et/images/button-edit-configuration-file.gif differ
diff --git a/doc/et/images/button-export-samba.gif b/doc/et/images/button-export-samba.gif
new file mode 100644
index 000000000..f595ebb22
Binary files /dev/null and b/doc/et/images/button-export-samba.gif differ
diff --git a/doc/et/images/button-help.gif b/doc/et/images/button-help.gif
new file mode 100644
index 000000000..64e5b24b8
Binary files /dev/null and b/doc/et/images/button-help.gif differ
diff --git a/doc/et/images/button-hold-job.gif b/doc/et/images/button-hold-job.gif
new file mode 100644
index 000000000..c36419313
Binary files /dev/null and b/doc/et/images/button-hold-job.gif differ
diff --git a/doc/et/images/button-manage-classes.gif b/doc/et/images/button-manage-classes.gif
new file mode 100644
index 000000000..e26ed6529
Binary files /dev/null and b/doc/et/images/button-manage-classes.gif differ
diff --git a/doc/et/images/button-manage-jobs.gif b/doc/et/images/button-manage-jobs.gif
new file mode 100644
index 000000000..79841b79b
Binary files /dev/null and b/doc/et/images/button-manage-jobs.gif differ
diff --git a/doc/et/images/button-manage-printers.gif b/doc/et/images/button-manage-printers.gif
new file mode 100644
index 000000000..680db58e5
Binary files /dev/null and b/doc/et/images/button-manage-printers.gif differ
diff --git a/doc/et/images/button-manage-server.gif b/doc/et/images/button-manage-server.gif
new file mode 100644
index 000000000..1909ee7e0
Binary files /dev/null and b/doc/et/images/button-manage-server.gif differ
diff --git a/doc/et/images/button-modify-class.gif b/doc/et/images/button-modify-class.gif
new file mode 100644
index 000000000..b88c3faa1
Binary files /dev/null and b/doc/et/images/button-modify-class.gif differ
diff --git a/doc/et/images/button-modify-printer.gif b/doc/et/images/button-modify-printer.gif
new file mode 100644
index 000000000..93483dd39
Binary files /dev/null and b/doc/et/images/button-modify-printer.gif differ
diff --git a/doc/et/images/button-move-job.gif b/doc/et/images/button-move-job.gif
new file mode 100644
index 000000000..3d55566e9
Binary files /dev/null and b/doc/et/images/button-move-job.gif differ
diff --git a/doc/et/images/button-move-jobs.gif b/doc/et/images/button-move-jobs.gif
new file mode 100644
index 000000000..49585e351
Binary files /dev/null and b/doc/et/images/button-move-jobs.gif differ
diff --git a/doc/et/images/button-print-self-test-page.gif b/doc/et/images/button-print-self-test-page.gif
new file mode 100644
index 000000000..17d5b0c2f
Binary files /dev/null and b/doc/et/images/button-print-self-test-page.gif differ
diff --git a/doc/et/images/button-print-test-page.gif b/doc/et/images/button-print-test-page.gif
new file mode 100644
index 000000000..bbe06edd7
Binary files /dev/null and b/doc/et/images/button-print-test-page.gif differ
diff --git a/doc/et/images/button-publish-printer.gif b/doc/et/images/button-publish-printer.gif
new file mode 100644
index 000000000..8ecd81203
Binary files /dev/null and b/doc/et/images/button-publish-printer.gif differ
diff --git a/doc/et/images/button-reject-jobs.gif b/doc/et/images/button-reject-jobs.gif
new file mode 100644
index 000000000..aaccb43f5
Binary files /dev/null and b/doc/et/images/button-reject-jobs.gif differ
diff --git a/doc/et/images/button-release-job.gif b/doc/et/images/button-release-job.gif
new file mode 100644
index 000000000..e369f03c9
Binary files /dev/null and b/doc/et/images/button-release-job.gif differ
diff --git a/doc/et/images/button-restart-job.gif b/doc/et/images/button-restart-job.gif
new file mode 100644
index 000000000..beac40a72
Binary files /dev/null and b/doc/et/images/button-restart-job.gif differ
diff --git a/doc/et/images/button-save-changes.gif b/doc/et/images/button-save-changes.gif
new file mode 100644
index 000000000..870f8d52d
Binary files /dev/null and b/doc/et/images/button-save-changes.gif differ
diff --git a/doc/et/images/button-search.gif b/doc/et/images/button-search.gif
new file mode 100644
index 000000000..43824d516
Binary files /dev/null and b/doc/et/images/button-search.gif differ
diff --git a/doc/et/images/button-set-allowed-users.gif b/doc/et/images/button-set-allowed-users.gif
new file mode 100644
index 000000000..261c13c46
Binary files /dev/null and b/doc/et/images/button-set-allowed-users.gif differ
diff --git a/doc/et/images/button-set-as-default.gif b/doc/et/images/button-set-as-default.gif
new file mode 100644
index 000000000..fdc7066f5
Binary files /dev/null and b/doc/et/images/button-set-as-default.gif differ
diff --git a/doc/et/images/button-set-printer-options.gif b/doc/et/images/button-set-printer-options.gif
new file mode 100644
index 000000000..2a0441ad3
Binary files /dev/null and b/doc/et/images/button-set-printer-options.gif differ
diff --git a/doc/et/images/button-show-active.gif b/doc/et/images/button-show-active.gif
new file mode 100644
index 000000000..34cc73989
Binary files /dev/null and b/doc/et/images/button-show-active.gif differ
diff --git a/doc/et/images/button-show-all.gif b/doc/et/images/button-show-all.gif
new file mode 100644
index 000000000..61280064b
Binary files /dev/null and b/doc/et/images/button-show-all.gif differ
diff --git a/doc/et/images/button-show-completed.gif b/doc/et/images/button-show-completed.gif
new file mode 100644
index 000000000..165dbe0fa
Binary files /dev/null and b/doc/et/images/button-show-completed.gif differ
diff --git a/doc/et/images/button-show-next.gif b/doc/et/images/button-show-next.gif
new file mode 100644
index 000000000..57031e9eb
Binary files /dev/null and b/doc/et/images/button-show-next.gif differ
diff --git a/doc/et/images/button-show-previous.gif b/doc/et/images/button-show-previous.gif
new file mode 100644
index 000000000..d32f7a81b
Binary files /dev/null and b/doc/et/images/button-show-previous.gif differ
diff --git a/doc/et/images/button-sort-ascending.gif b/doc/et/images/button-sort-ascending.gif
new file mode 100644
index 000000000..0d9254632
Binary files /dev/null and b/doc/et/images/button-sort-ascending.gif differ
diff --git a/doc/et/images/button-sort-descending.gif b/doc/et/images/button-sort-descending.gif
new file mode 100644
index 000000000..0ac534dad
Binary files /dev/null and b/doc/et/images/button-sort-descending.gif differ
diff --git a/doc/et/images/button-start-class.gif b/doc/et/images/button-start-class.gif
new file mode 100644
index 000000000..e13a45152
Binary files /dev/null and b/doc/et/images/button-start-class.gif differ
diff --git a/doc/et/images/button-start-printer.gif b/doc/et/images/button-start-printer.gif
new file mode 100644
index 000000000..e4a462c4c
Binary files /dev/null and b/doc/et/images/button-start-printer.gif differ
diff --git a/doc/et/images/button-stop-class.gif b/doc/et/images/button-stop-class.gif
new file mode 100644
index 000000000..b39526213
Binary files /dev/null and b/doc/et/images/button-stop-class.gif differ
diff --git a/doc/et/images/button-stop-printer.gif b/doc/et/images/button-stop-printer.gif
new file mode 100644
index 000000000..65e69ae1d
Binary files /dev/null and b/doc/et/images/button-stop-printer.gif differ
diff --git a/doc/et/images/button-unpublish-printer.gif b/doc/et/images/button-unpublish-printer.gif
new file mode 100644
index 000000000..e1883234b
Binary files /dev/null and b/doc/et/images/button-unpublish-printer.gif differ
diff --git a/doc/et/images/button-use-default-config.gif b/doc/et/images/button-use-default-config.gif
new file mode 100644
index 000000000..00318d594
Binary files /dev/null and b/doc/et/images/button-use-default-config.gif differ
diff --git a/doc/et/images/button-view-access-log.gif b/doc/et/images/button-view-access-log.gif
new file mode 100644
index 000000000..36dac0599
Binary files /dev/null and b/doc/et/images/button-view-access-log.gif differ
diff --git a/doc/et/images/button-view-error-log.gif b/doc/et/images/button-view-error-log.gif
new file mode 100644
index 000000000..8c871ce95
Binary files /dev/null and b/doc/et/images/button-view-error-log.gif differ
diff --git a/doc/et/images/button-view-page-log.gif b/doc/et/images/button-view-page-log.gif
new file mode 100644
index 000000000..13f2ca706
Binary files /dev/null and b/doc/et/images/button-view-page-log.gif differ
diff --git a/doc/et/images/button-view-printable-version.gif b/doc/et/images/button-view-printable-version.gif
new file mode 100644
index 000000000..4b8e0c652
Binary files /dev/null and b/doc/et/images/button-view-printable-version.gif differ
diff --git a/doc/et/index.html.in b/doc/et/index.html.in
new file mode 100644
index 000000000..8399134d0
--- /dev/null
+++ b/doc/et/index.html.in
@@ -0,0 +1,141 @@
+
+
+
+
+ Kodu - CUPS @CUPS_VERSION@@CUPS_REVISION@
+
+
+
+
+
+
+
+
+
+
+
+Tere tulemast!
+
+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.
+
+
+
+
+
+
+
+
+
+
+
+Kui Teie käest päritakse kasutajanime ja parooli, sisestage enda
+või administraatori (root) kasutajanimi ja parool.
+
+CUPS-i info
+
+
+
+
+
+
+CUPS pakub porditavat trükkimiskihti
+UNIX® põhistele operatsioonisüsteemidele. CUPS-i töötas
+välja ja hooldab Easy Software
+Products , selle siht on edendada standardseid trükkimislahendusi. CUPS on
+standardne trükkimissüsteem, mida kasutavad MacOS® X ja
+suurem osa Linux® distributsioone.
+
+CUPS kasutab Interneti trükkimisprotokolli ("IPP")
+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.
+
+Printeridraiveritest ja abist
+
+Printeridraiverite ja muu abi leidmiseks külastage CUPS-i
+ametlikku veebilehekülge:
+
+
+ www.cups.org
+
+
+Kommertstoetus ja CUPS-i täiustatud versioon nimetusega ESP Print Pro on
+saadaval aadressil:
+
+
+ www.easysw.com
+
+
+
+
+
+
+
+
+
diff --git a/doc/help/api-cups.html b/doc/help/api-cups.html
index 42ffa2d1c..7466fa322 100644
--- a/doc/help/api-cups.html
+++ b/doc/help/api-cups.html
@@ -176,8 +176,16 @@ CUPS 1.1 or higher.
Description
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.
Syntax
int
@@ -191,8 +199,8 @@ cupsAddDest(
Name Description
-name Name of destination
-instance Instance of destination or NULL for none/primary
+name Destination name
+instance Instance name or NULL for none/primary
num_dests Number of destinations
dests Destinations
@@ -412,8 +420,8 @@ cupsGetDest(
Name Description
-name Name of destination
-instance Instance of destination
+name Destination name or NULL for the default destination
+instance Instance name or NULL
num_dests Number of destinations
dests Destinations
@@ -427,7 +435,10 @@ cupsGetDest(
Starting with CUPS 1.2, the returned list of destinations include the
printer-info, printer-is-accepting-jobs, printer-is-shared,
printer-make-and-model, printer-state, printer-state-change-time,
-printer-state-reasons, and printer-type attributes as options.
+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.
Syntax
int
@@ -452,6 +463,9 @@ printer-info, printer-is-accepting-jobs, printer-is-shared,
printer-make-and-model, printer-state, printer-state-change-time,
printer-state-reasons, and printer-type attributes as options.
+Use the cupsFreeDests() function to free the destination list and
+the cupsGetDest() function to find a particular destination.
+
Syntax
@@ -1192,9 +1206,10 @@ cupsSetUser(
Description
-Create a temporary file.
+
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.
Syntax
int
@@ -1210,13 +1225,13 @@ cupsTempFd(
len Size of buffer
Returns
-New file descriptor
+New file descriptor or -1 on error
Description
-Generate a temporary filename.
+
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.
@@ -1236,13 +1251,14 @@ cupsTempFile(
len Size of buffer
Returns
-Filename
+Filename or NULL on error
Description
-Create a temporary CUPS file.
+
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.
Syntax
diff --git a/doc/help/api-httpipp.html b/doc/help/api-httpipp.html
index 7a08b3352..43c538560 100644
--- a/doc/help/api-httpipp.html
+++ b/doc/help/api-httpipp.html
@@ -112,6 +112,7 @@ require CUPS 1.1 or higher.
Name Description
HTTP_ENCODE_CHUNKED Data is chunked
+HTTP_ENCODE_FIELDS Sending HTTP fields
HTTP_ENCODE_LENGTH Data is sent with Content-Length
@@ -256,7 +257,7 @@ require CUPS 1.1 or higher.
IPP_DOCUMENT_ACCESS_ERROR client-error-document-access-error
IPP_DOCUMENT_FORMAT client-error-document-format-not-supported
IPP_DOCUMENT_FORMAT_ERROR client-error-document-format-error
-IPP_ERROR_JOB_CANCELLED server-error-job-canceled
+IPP_ERROR_JOB_CANCELED server-error-job-canceled
IPP_FORBIDDEN client-error-forbidden
IPP_GONE client-error-gone
IPP_IGNORED_ALL_NOTIFICATIONS client-error-ignored-all-notifications
diff --git a/doc/help/ref-cupsd-conf.html b/doc/help/ref-cupsd-conf.html
index c8ac57cf8..03cc62f62 100644
--- a/doc/help/ref-cupsd-conf.html
+++ b/doc/help/ref-cupsd-conf.html
@@ -139,7 +139,10 @@ specifies a CIDR netmask, as shown in Table 1.
The @LOCAL
name will allow access from all local
interfaces. The @IF(name)
name will allow access
-from the named interface.
+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
+not be accepted.
The Allow
directive must appear inside a Location
or
The @LOCAL
name will allow browse data from all
local interfaces. The @IF(name)
name will allow
-browse data from the named interface.
+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
+not be allowed.
@@ -388,7 +394,10 @@ or bit count.
The @LOCAL
name will block browse data from all
local interfaces. The @IF(name)
name will block
-browse data from the named interface.
+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
+not be blocked.
@@ -981,7 +990,10 @@ specifies a CIDR netmask, a shown in Table
The @LOCAL
name will deny access from all local
interfaces. The @IF(name)
name will deny access from
-the named interface.
+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
+not be denied.
The Deny
directive must appear inside a Location
or
+
+
+ {refresh_page? :}
+
+
+
+
+
+
+
+
+
+
diff --git a/templates/et/help-header.tmpl b/templates/et/help-header.tmpl
new file mode 100644
index 000000000..05c5cb8b8
--- /dev/null
+++ b/templates/et/help-header.tmpl
@@ -0,0 +1,46 @@
+
+
+
+
+
+{QUERY?Otsingutulemused - {HELPFILE?{HELPTITLE}:{TOPIC?{TOPIC}:kõigis dokumentides}}\:
+{QTEXT?:}
+:Midagi ei leitud.
}
+ :}
+{HELPTITLE?{HELPTITLE}
+ :CUPS-i abi
+
+See on CUPS-i abiliides. Sisestage otsingusõnad ülalolevasse kasti
+või klõpsake mõnele dokumentatsioonilingile abiinfo kuvamiseks.
+
+Kui Te pole veel CUPS-iga tuttav, lugege osa "Overview of CUPS ". Kogenud kasutajad
+peaksid aga tutvuma osaga "What's New in CUPS
+1.2 ".
+
+CUPS-i kodulehekülg pakub
+samuti palju materjali, kaasa arvatud kasutajate arutlusfoorumid, vastused
+levinumatele küsimustele ning vorm, mis võimaldab esitada veateateid
+ja soove.
}
diff --git a/templates/et/help-printable.tmpl b/templates/et/help-printable.tmpl
new file mode 100644
index 000000000..305112a33
--- /dev/null
+++ b/templates/et/help-printable.tmpl
@@ -0,0 +1,11 @@
+
+
+
+
+ {HELPTITLE}
+
+
+
+
+
+{HELPTITLE}
diff --git a/templates/et/job-cancel.tmpl b/templates/et/job-cancel.tmpl
new file mode 100644
index 000000000..da0bafcc3
--- /dev/null
+++ b/templates/et/job-cancel.tmpl
@@ -0,0 +1 @@
+Töö {job_id} katkestatud.
diff --git a/templates/et/job-hold.tmpl b/templates/et/job-hold.tmpl
new file mode 100644
index 000000000..ef4dca044
--- /dev/null
+++ b/templates/et/job-hold.tmpl
@@ -0,0 +1 @@
+
Tööd {job_id} hoitakse trükkimast.
diff --git a/templates/et/job-moved.tmpl b/templates/et/job-moved.tmpl
new file mode 100644
index 000000000..ca007aac1
--- /dev/null
+++ b/templates/et/job-moved.tmpl
@@ -0,0 +1,2 @@
+
{job_id?Töö {job_id} :Kõik tööd} on liigutatud printerisse
+{job_printer_name} .
diff --git a/templates/et/job-release.tmpl b/templates/et/job-release.tmpl
new file mode 100644
index 000000000..055c519e2
--- /dev/null
+++ b/templates/et/job-release.tmpl
@@ -0,0 +1 @@
+Töö {job_id} trükkimiseks vabastatud.
diff --git a/templates/et/job-restart.tmpl b/templates/et/job-restart.tmpl
new file mode 100644
index 000000000..f2dee0fc3
--- /dev/null
+++ b/templates/et/job-restart.tmpl
@@ -0,0 +1 @@
+
Töö {job_id} uuesti käivitatud.
diff --git a/templates/et/jobs-header.tmpl b/templates/et/jobs-header.tmpl
new file mode 100644
index 000000000..4c710a030
--- /dev/null
+++ b/templates/et/jobs-header.tmpl
@@ -0,0 +1,15 @@
+
{?which_jobs=?
+ :{which_jobs=all?
+ :
+ }}
+
+{total=0?Töid pole:Näidatakse {#job_id} tööd {total} {?which_jobs=?aktiivsest:{which_jobs=all?:lõpetatud}} tööst{total=1?:}}.
diff --git a/templates/et/jobs.tmpl b/templates/et/jobs.tmpl
new file mode 100644
index 000000000..4f1fba728
--- /dev/null
+++ b/templates/et/jobs.tmpl
@@ -0,0 +1,42 @@
+{#job_id=0?:
+
+}
diff --git a/templates/et/maintenance.tmpl b/templates/et/maintenance.tmpl
new file mode 100644
index 000000000..c9662419f
--- /dev/null
+++ b/templates/et/maintenance.tmpl
@@ -0,0 +1,2 @@
+Hooldamiskäsud saadetud; töö ID on
+{printer_name}-{job_id} .
diff --git a/templates/et/modify-class.tmpl b/templates/et/modify-class.tmpl
new file mode 100644
index 000000000..fd6b1a454
--- /dev/null
+++ b/templates/et/modify-class.tmpl
@@ -0,0 +1,34 @@
+
diff --git a/templates/et/modify-printer.tmpl b/templates/et/modify-printer.tmpl
new file mode 100644
index 000000000..9f697c93b
--- /dev/null
+++ b/templates/et/modify-printer.tmpl
@@ -0,0 +1,29 @@
+
diff --git a/templates/et/norestart.tmpl b/templates/et/norestart.tmpl
new file mode 100644
index 000000000..84cfc5a6f
--- /dev/null
+++ b/templates/et/norestart.tmpl
@@ -0,0 +1 @@
+Serverit ei käivitatud uuesti, sest seadistusse ei tehtud mingeid muudatusi...
diff --git a/templates/et/option-boolean.tmpl b/templates/et/option-boolean.tmpl
new file mode 100644
index 000000000..72c85189a
--- /dev/null
+++ b/templates/et/option-boolean.tmpl
@@ -0,0 +1,6 @@
+
+{keytext} :
+
+{[choices] {text}}
+
+
diff --git a/templates/et/option-conflict.tmpl b/templates/et/option-conflict.tmpl
new file mode 100644
index 000000000..16415baa1
--- /dev/null
+++ b/templates/et/option-conflict.tmpl
@@ -0,0 +1,7 @@
+Viga: järgmised valikud on konfliktis:
+
+
+
+Palun muutke konfliktide lahendamiseks vähemalt üht valikut.
diff --git a/templates/et/option-header.tmpl b/templates/et/option-header.tmpl
new file mode 100644
index 000000000..cafc9f9fe
--- /dev/null
+++ b/templates/et/option-header.tmpl
@@ -0,0 +1,3 @@
+{printer_name}: {group}
+
+
diff --git a/templates/et/pager.tmpl b/templates/et/pager.tmpl
new file mode 100644
index 000000000..0c9cdc6ea
--- /dev/null
+++ b/templates/et/pager.tmpl
@@ -0,0 +1,7 @@
+
diff --git a/templates/et/printer-accept.tmpl b/templates/et/printer-accept.tmpl
new file mode 100644
index 000000000..8acec73f9
--- /dev/null
+++ b/templates/et/printer-accept.tmpl
@@ -0,0 +1,3 @@
+{is_class?Class:Printer} {printer_name}
+võtab nüüd töid vastu.
diff --git a/templates/et/printer-added.tmpl b/templates/et/printer-added.tmpl
new file mode 100644
index 000000000..455c418ef
--- /dev/null
+++ b/templates/et/printer-added.tmpl
@@ -0,0 +1,2 @@
+Printer {printer_name} edukalt
+lisatud.
diff --git a/templates/et/printer-configured.tmpl b/templates/et/printer-configured.tmpl
new file mode 100644
index 000000000..5dbf70ba9
--- /dev/null
+++ b/templates/et/printer-configured.tmpl
@@ -0,0 +1,2 @@
+
Printer {printer_name} edukalt
+seadistatud.
diff --git a/templates/et/printer-confirm.tmpl b/templates/et/printer-confirm.tmpl
new file mode 100644
index 000000000..fec4bf06d
--- /dev/null
+++ b/templates/et/printer-confirm.tmpl
@@ -0,0 +1,7 @@
+
Hoiatus: kas soovite tõesti kustutada printeri
+{printer_name}?
+
+
diff --git a/templates/et/printer-default.tmpl b/templates/et/printer-default.tmpl
new file mode 100644
index 000000000..9adae5b92
--- /dev/null
+++ b/templates/et/printer-default.tmpl
@@ -0,0 +1,6 @@
+{is_class?Class:Printer} {printer_name}
+on määratud serveri vaikimisi printeriks.
+
+Märkus: kõik kasutajate vaikeväärtused, mis on
+määratud käsuga lpoptions , tühistavad selle vaikeseadistuse.
diff --git a/templates/et/printer-deleted.tmpl b/templates/et/printer-deleted.tmpl
new file mode 100644
index 000000000..aec0ced53
--- /dev/null
+++ b/templates/et/printer-deleted.tmpl
@@ -0,0 +1 @@
+Printer {printer_name} edukalt kustutatud.
diff --git a/templates/et/printer-jobs-header.tmpl b/templates/et/printer-jobs-header.tmpl
new file mode 100644
index 000000000..b3d29dee4
--- /dev/null
+++ b/templates/et/printer-jobs-header.tmpl
@@ -0,0 +1 @@
+
Tööd
diff --git a/templates/et/printer-modified.tmpl b/templates/et/printer-modified.tmpl
new file mode 100644
index 000000000..0e5789a09
--- /dev/null
+++ b/templates/et/printer-modified.tmpl
@@ -0,0 +1,2 @@
+Printer {printer_name} edukalt
+muudetud.
diff --git a/templates/et/printer-purge.tmpl b/templates/et/printer-purge.tmpl
new file mode 100644
index 000000000..3225c10fc
--- /dev/null
+++ b/templates/et/printer-purge.tmpl
@@ -0,0 +1,3 @@
+
{is_class?Class:Printer} {printer_name}
+kõigist töödest puhastatud.
diff --git a/templates/et/printer-reject.tmpl b/templates/et/printer-reject.tmpl
new file mode 100644
index 000000000..e93de18de
--- /dev/null
+++ b/templates/et/printer-reject.tmpl
@@ -0,0 +1,3 @@
+{is_class?Class:Printer} {printer_name}
+ei võta enam töid vastu.
diff --git a/templates/et/printer-start.tmpl b/templates/et/printer-start.tmpl
new file mode 100644
index 000000000..533ac9bb2
--- /dev/null
+++ b/templates/et/printer-start.tmpl
@@ -0,0 +1,3 @@
+{is_class?Class:Printer} {printer_name}
+käivitatud.
diff --git a/templates/et/printer-stop.tmpl b/templates/et/printer-stop.tmpl
new file mode 100644
index 000000000..601c50ae9
--- /dev/null
+++ b/templates/et/printer-stop.tmpl
@@ -0,0 +1,3 @@
+{is_class?Class:Printer} {printer_name}
+peatatud.
diff --git a/templates/et/printers-header.tmpl b/templates/et/printers-header.tmpl
new file mode 100644
index 000000000..5c37b37d9
--- /dev/null
+++ b/templates/et/printers-header.tmpl
@@ -0,0 +1 @@
+{total=0?Printereid pole:Näidatakse {#printer_name} printerit {total} printerist{total=1?:}}.
diff --git a/templates/et/printers.tmpl b/templates/et/printers.tmpl
new file mode 100644
index 000000000..a9d14194c
--- /dev/null
+++ b/templates/et/printers.tmpl
@@ -0,0 +1,64 @@
+{printer_type?:}{#printer_name=0?:
+{[printer_name]
+{printer_name} {default_name={printer_name}? (vaikimisi printer):}
+{?printer_state_message=?:"{printer_state_message}" }
+
+
+}}
diff --git a/templates/et/restart.tmpl b/templates/et/restart.tmpl
new file mode 100644
index 000000000..7ec91b078
--- /dev/null
+++ b/templates/et/restart.tmpl
@@ -0,0 +1 @@
+Palun oodake, kuni server taaskäivitub...
diff --git a/templates/et/samba-export.tmpl b/templates/et/samba-export.tmpl
new file mode 100644
index 000000000..610d8caf9
--- /dev/null
+++ b/templates/et/samba-export.tmpl
@@ -0,0 +1,55 @@
+
+
+
diff --git a/templates/et/samba-exported.tmpl b/templates/et/samba-exported.tmpl
new file mode 100644
index 000000000..b72a6b5bd
--- /dev/null
+++ b/templates/et/samba-exported.tmpl
@@ -0,0 +1 @@
+Printerid edukalt Sambasse eksporditud.
diff --git a/templates/et/search.tmpl b/templates/et/search.tmpl
new file mode 100644
index 000000000..c5e06ee21
--- /dev/null
+++ b/templates/et/search.tmpl
@@ -0,0 +1,13 @@
+
diff --git a/templates/et/set-printer-options-header.tmpl b/templates/et/set-printer-options-header.tmpl
new file mode 100644
index 000000000..864f9f0ce
--- /dev/null
+++ b/templates/et/set-printer-options-header.tmpl
@@ -0,0 +1,3 @@
+
diff --git a/templates/et/test-page.tmpl b/templates/et/test-page.tmpl
new file mode 100644
index 000000000..4d5d88dd6
--- /dev/null
+++ b/templates/et/test-page.tmpl
@@ -0,0 +1,2 @@
+Testlehekülg saadetud; töö ID on
+{printer_name}-{job_id} .
diff --git a/templates/et/trailer.tmpl b/templates/et/trailer.tmpl
new file mode 100644
index 000000000..72871fb28
--- /dev/null
+++ b/templates/et/trailer.tmpl
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+Common UNIX Printing System, CUPS ja CUPS-i logo on
+firma Easy Software
+Products kaubamärgid. CUPS-i autoriõigus 1997-2006: Easy Software Products,
+kõik õigused kaitstud.
+
+
+
+
+
+
+
+
diff --git a/templates/et/users.tmpl b/templates/et/users.tmpl
new file mode 100644
index 000000000..2eaffed5f
--- /dev/null
+++ b/templates/et/users.tmpl
@@ -0,0 +1,26 @@
+