-CHANGES - 2.2.11 - 2019-03-22
+CHANGES - 2.2.12 - 2019-08-15
=============================
+Changes in CUPS v2.2.12
+-----------------------
+
+- CVE-2019-8696 and CVE-2019-8675: Fixed SNMP buffer overflows (rdar://51685251)
+- The `cupsctl` command now prevents setting "cups-files.conf" directives
+ (Issue #5530)
+- Updated the systemd service file for cupsd (Issue #5551)
+- The `cupsCheckDestSupported` function did not check octetString values
+ correctly (Issue #5557)
+- The scheduler did not encode octetString values like "job-password" correctly
+ for the print filters (Issue #5558)
+- Restored minimal support for the `Emulators` keyword in PPD files to allow
+ old Samsung printer drivers to continue to work (Issue #5562)
+- Timed out job submission now yields an error (Issue #5570)
+- The footer in the web interface covered some content on small displays
+ (Issue #5574)
+- The libusb-based USB backend now enforces read limits, improving print speed
+ in many cases (Issue #5583)
+- Fixed some compatibility issues with old releases of CUPS (Issue #5587)
+- Fixed a bug in the scheduler job cleanup code (Issue #5588)
+- "make" failed with GZIP options (Issue #5595)
+- Added FIPS-140 workarounds for GNU TLS (Issue #5601, Issue #5622)
+- The scheduler no longer provides a default value for the description
+ (Issue #5603)
+- The `lpadmin` command did not always update the PPD file for changes to the
+ `cupsIPPSupplies` and `cupsSNMPSupplies` keywords (Issue #5610)
+- The scheduler now uses both the group's membership list as well as the
+ various OS-specific membership functions to determine whether a user belongs
+ to a named group (Issue #5613)
+- Added USB quirks rule for HP LaserJet 1015 (Issue #5617)
+- Fixed some PPD parser issues (Issue #5623, Issue #5624)
+- The IPP parser no longer allows invalid member attributes in collections
+ (Issue #5630)
+- Fixed IPP buffer overflow (rdar://50035411)
+- Fixed memory disclosure issue in the scheduler (rdar://51373853)
+- Fixed DoS issues in the scheduler (rdar://51373929)
+- The scheduler would restart continuously when idle and printers were not
+ shared (rdar://52561199)
+- Fixed a command ordering issue in the Zebra ZPL driver.
+- Fixed a memory leak in `ppdOpen`.
+
+
Changes in CUPS v2.2.11
-----------------------
Changes in CUPS v2.2.10
-----------------------
-- CVE-2018-4700: Linux session cookies used a predictable random number seed.
+- CVE-2018-4300: Linux session cookies used a predictable random number seed.
- The `lpoptions` command now works with IPP Everywhere printers that have not
yet been added as local queues (Issue #5045)
- Added USB quirk rules (Issue #5395, Issue #5443)
-INSTALL - CUPS v2.2.11 - 2019-03-22
+INSTALL - CUPS v2.2.12 - 2019-08-15
===================================
This file describes how to compile and install CUPS from source code. For more
#
# Common makefile definitions for CUPS.
#
-# Copyright 2007-2018 by Apple Inc.
+# Copyright 2007-2019 by Apple Inc.
# Copyright 1997-2007 by Easy Software Products, all rights reserved.
#
# These coded instructions, statements, and computer programs are the
CXX = @LIBTOOL_CXX@ @CXX@
DSO = @DSO@
DSOXX = @DSOXX@
-GZIP = @GZIP@
+GZIPPROG = @GZIPPROG@
INSTALL = @INSTALL@
LD = @LD@
LD_CC = @LD_CC@
-README - CUPS v2.2.11 - 2019-03-22
+README - CUPS v2.2.12 - 2019-08-15
==================================
Looking for compile instructions? Read the file `INSTALL.md` instead...
Zebra printers. Many more drivers are available online and (in some cases) on
the driver CD-ROM that came with your printer.
-CUPS is licensed under the GNU General Public License and GNU Library General
-Public License versions 2. See the file "LICENSE.txt" for more information.
+CUPS 2.2.x is licensed under the GNU General Public License and GNU Library
+General Public License versions 2. See the file "LICENSE.txt" for more
+information.
READING THE DOCUMENTATION
# All Intermec devices (Issue #4553)
0x067e no-reattach
+# HP LaserJet 1015 (Issue #5617)
+0x03f0 0x0e17 delay-close
+
# HP LaserJet 1150 (Issue #4549)
0x03f0 0x0f17 delay-close
/*
* LIBUSB interface code for CUPS.
*
- * Copyright 2007-2015 by Apple Inc.
+ * Copyright 2007-2019 by Apple Inc.
*
* These coded instructions, statements, and computer programs are the
* property of Apple Inc. and are protected by Federal copyright
* Make sure this loop executes no more than once every 250 miliseconds...
*/
- if ((readstatus != LIBUSB_SUCCESS || rbytes == 0) &&
- (g.wait_eof || !g.read_thread_stop))
+ if ((g.wait_eof || !g.read_thread_stop))
{
gettimeofday(&now, NULL);
if (timercmp(&now, &end, <))
switch (cparam->type)
{
+ case PPD_CUSTOM_UNKNOWN :
+ break;
+
case PPD_CUSTOM_POINTS :
if (!_cups_strncasecmp(option->defchoice, "Custom.", 7))
{
switch (cparam->type)
{
+ case PPD_CUSTOM_UNKNOWN :
+ break;
+
case PPD_CUSTOM_CURVE :
case PPD_CUSTOM_INVCURVE :
case PPD_CUSTOM_REAL :
switch (cparam->type)
{
+ case PPD_CUSTOM_UNKNOWN :
+ break;
+
case PPD_CUSTOM_CURVE :
case PPD_CUSTOM_INVCURVE :
case PPD_CUSTOM_REAL :
dnl
dnl Common configuration stuff for CUPS.
dnl
-dnl Copyright 2007-2017 by Apple Inc.
+dnl Copyright 2007-2019 by Apple Inc.
dnl Copyright 1997-2007 by Easy Software Products, all rights reserved.
dnl
dnl These coded instructions, statements, and computer programs are the
AC_PROG_RANLIB
AC_PATH_PROG(AR,ar)
AC_PATH_PROG(CHMOD,chmod)
-AC_PATH_PROG(GZIP,gzip)
+AC_PATH_PROG(GZIPPROG,gzip)
+AC_MSG_CHECKING(for install-sh script)
+INSTALL="`pwd`/install-sh"
+AC_SUBST(INSTALL)
+AC_MSG_RESULT(using $INSTALL)
AC_PATH_PROG(LD,ld)
AC_PATH_PROG(LN,ln)
AC_PATH_PROG(MKDIR,mkdir)
AC_PATH_PROG(RMDIR,rmdir)
AC_PATH_PROG(SED,sed)
AC_PATH_PROG(XDGOPEN,xdg-open)
+
if test "x$XDGOPEN" = x; then
CUPS_HTMLVIEW="htmlview"
else
fi
AC_SUBST(CUPS_HTMLVIEW)
-AC_MSG_CHECKING(for install-sh script)
-INSTALL="`pwd`/install-sh"
-AC_SUBST(INSTALL)
-AC_MSG_RESULT(using $INSTALL)
-
if test "x$AR" = x; then
AC_MSG_ERROR([Unable to find required library archive command.])
fi
INSTALL_GZIP=""
LIBZ=""
AC_CHECK_HEADER(zlib.h,
- AC_CHECK_LIB(z, gzgets,
+ AC_CHECK_LIB(z, gzgets,[
AC_DEFINE(HAVE_LIBZ)
LIBZ="-lz"
LIBS="$LIBS -lz"
AC_CHECK_LIB(z, inflateCopy, AC_DEFINE(HAVE_INFLATECOPY))
- if test "x$GZIP" != z; then
+ if test "x$GZIPPROG" != x; then
INSTALL_GZIP="-z"
- fi))
+ fi]))
AC_SUBST(INSTALL_GZIP)
AC_SUBST(LIBZ)
SAVELIBS="$LIBS"
LIBS="$LIBS $SSLLIBS"
+ AC_CHECK_FUNC(gnutls_fips140_set_mode, AC_DEFINE(HAVE_GNUTLS_FIPS140_SET_MODE))
AC_CHECK_FUNC(gnutls_transport_set_pull_timeout_function, AC_DEFINE(HAVE_GNUTLS_TRANSPORT_SET_PULL_TIMEOUT_FUNCTION))
AC_CHECK_FUNC(gnutls_priority_set_direct, AC_DEFINE(HAVE_GNUTLS_PRIORITY_SET_DIRECT))
LIBS="$SAVELIBS"
/*
+ * Do we have the gnutls_fips140_set_mode function?
+ */
+
+#undef HAVE_GNUTLS_FIPS140_SET_MODE
+
+
+/*
* Do we have the gnutls_transport_set_pull_timeout_function function?
*/
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for CUPS 2.2.11.
+# Generated by GNU Autoconf 2.69 for CUPS 2.2.12.
#
# Report bugs to <https://github.com/apple/cups/issues>.
#
# Identity of this package.
PACKAGE_NAME='CUPS'
PACKAGE_TARNAME='cups'
-PACKAGE_VERSION='2.2.11'
-PACKAGE_STRING='CUPS 2.2.11'
+PACKAGE_VERSION='2.2.12'
+PACKAGE_STRING='CUPS 2.2.12'
PACKAGE_BUGREPORT='https://github.com/apple/cups/issues'
PACKAGE_URL='https://www.cups.org/'
LIBMALLOC
PKGCONFIG
INSTALLSTATIC
-INSTALL
CUPS_HTMLVIEW
XDGOPEN
SED
MKDIR
LN
LD
-GZIP
+INSTALL
+GZIPPROG
CHMOD
AR
RANLIB
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures CUPS 2.2.11 to adapt to many kinds of systems.
+\`configure' configures CUPS 2.2.12 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of CUPS 2.2.11:";;
+ short | recursive ) echo "Configuration of CUPS 2.2.12:";;
esac
cat <<\_ACEOF
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-CUPS configure 2.2.11
+CUPS configure 2.2.12
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by CUPS $as_me 2.2.11, which was
+It was created by CUPS $as_me 2.2.12, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
ac_config_headers="$ac_config_headers config.h"
-CUPS_VERSION="2.2.11"
+CUPS_VERSION="2.2.12"
CUPS_REVISION=""
CUPS_BUILD="cups-$CUPS_VERSION"
set dummy gzip; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_GZIP+:} false; then :
+if ${ac_cv_path_GZIPPROG+:} false; then :
$as_echo_n "(cached) " >&6
else
- case $GZIP in
+ case $GZIPPROG in
[\\/]* | ?:[\\/]*)
- ac_cv_path_GZIP="$GZIP" # Let the user override the test with a path.
+ ac_cv_path_GZIPPROG="$GZIPPROG" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_GZIP="$as_dir/$ac_word$ac_exec_ext"
+ ac_cv_path_GZIPPROG="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
;;
esac
fi
-GZIP=$ac_cv_path_GZIP
-if test -n "$GZIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GZIP" >&5
-$as_echo "$GZIP" >&6; }
+GZIPPROG=$ac_cv_path_GZIPPROG
+if test -n "$GZIPPROG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GZIPPROG" >&5
+$as_echo "$GZIPPROG" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for install-sh script" >&5
+$as_echo_n "checking for install-sh script... " >&6; }
+INSTALL="`pwd`/install-sh"
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: using $INSTALL" >&5
+$as_echo "using $INSTALL" >&6; }
# Extract the first word of "ld", so it can be a program name with args.
set dummy ld; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
fi
+
if test "x$XDGOPEN" = x; then
CUPS_HTMLVIEW="htmlview"
else
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for install-sh script" >&5
-$as_echo_n "checking for install-sh script... " >&6; }
-INSTALL="`pwd`/install-sh"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: using $INSTALL" >&5
-$as_echo "using $INSTALL" >&6; }
-
if test "x$AR" = x; then
as_fn_error $? "Unable to find required library archive command." "$LINENO" 5
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_gzgets" >&5
$as_echo "$ac_cv_lib_z_gzgets" >&6; }
if test "x$ac_cv_lib_z_gzgets" = xyes; then :
- $as_echo "#define HAVE_LIBZ 1" >>confdefs.h
+
+ $as_echo "#define HAVE_LIBZ 1" >>confdefs.h
LIBZ="-lz"
LIBS="$LIBS -lz"
fi
- if test "x$GZIP" != z; then
+ if test "x$GZIPPROG" != x; then
INSTALL_GZIP="-z"
fi
fi
SAVELIBS="$LIBS"
LIBS="$LIBS $SSLLIBS"
+ ac_fn_c_check_func "$LINENO" "gnutls_fips140_set_mode" "ac_cv_func_gnutls_fips140_set_mode"
+if test "x$ac_cv_func_gnutls_fips140_set_mode" = xyes; then :
+ $as_echo "#define HAVE_GNUTLS_FIPS140_SET_MODE 1" >>confdefs.h
+
+fi
+
ac_fn_c_check_func "$LINENO" "gnutls_transport_set_pull_timeout_function" "ac_cv_func_gnutls_transport_set_pull_timeout_function"
if test "x$ac_cv_func_gnutls_transport_set_pull_timeout_function" = xyes; then :
$as_echo "#define HAVE_GNUTLS_TRANSPORT_SET_PULL_TIMEOUT_FUNCTION 1" >>confdefs.h
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by CUPS $as_me 2.2.11, which was
+This file was extended by CUPS $as_me 2.2.12, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-CUPS config.status 2.2.11
+CUPS config.status 2.2.12
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
dnl
dnl Configuration script for CUPS.
dnl
-dnl Copyright 2007-2018 by Apple Inc.
+dnl Copyright 2007-2019 by Apple Inc.
dnl Copyright 1997-2007 by Easy Software Products, all rights reserved.
dnl
dnl These coded instructions, statements, and computer programs are the
AC_PREREQ(2.60)
dnl Package name and version...
-AC_INIT([CUPS], [2.2.11], [https://github.com/apple/cups/issues], [cups], [https://www.cups.org/])
+AC_INIT([CUPS], [2.2.12], [https://github.com/apple/cups/issues], [cups], [https://www.cups.org/])
sinclude(config-scripts/cups-opsys.m4)
sinclude(config-scripts/cups-common.m4)
extern char *_cupsCreateDest(const char *name, const char *info, const char *device_id, const char *device_uri, char *uri, size_t urisize);
extern int _cupsGet1284Values(const char *device_id,
cups_option_t **values);
-extern const char *_cupsGetDestResource(cups_dest_t *dest, char *resource,
- size_t resourcesize);
+extern const char *_cupsGetDestResource(cups_dest_t *dest, unsigned flags, char *resource, size_t resourcesize);
extern int _cupsGetDests(http_t *http, ipp_op_t op,
const char *name, cups_dest_t **dests,
cups_ptype_t type, cups_ptype_t mask);
* Constants...
*/
-# define CUPS_VERSION 2.0211
+# define CUPS_VERSION 2.0212
# define CUPS_VERSION_MAJOR 2
# define CUPS_VERSION_MINOR 2
-# define CUPS_VERSION_PATCH 11
+# define CUPS_VERSION_PATCH 12
# define CUPS_BC_FD 3
/* Back-channel file descriptor for
/*
* Destination option/media support for CUPS.
*
- * Copyright 2012-2017 by Apple Inc.
+ * Copyright 2012-2019 by Apple Inc.
*
* These coded instructions, statements, and computer programs are the
* property of Apple Inc. and are protected by Federal copyright
ipp_res_t units_value; /* Resolution units */
ipp_attribute_t *attr; /* Attribute */
_ipp_value_t *attrval; /* Current attribute value */
+ _ipp_option_t *map; /* Option mapping information */
/*
*/
pwg_media_t *pwg; /* Current PWG media size info */
- int min_width, /* Minimum width */
- min_length, /* Minimum length */
- max_width, /* Maximum width */
- max_length; /* Maximum length */
+ int min_width, /* Minimum width */
+ min_length, /* Minimum length */
+ max_width, /* Maximum width */
+ max_length; /* Maximum length */
/*
* Get the minimum and maximum size...
* Check literal values...
*/
+ map = _ippFindOption(option);
+
switch (attr->value_tag)
{
case IPP_TAG_INTEGER :
+ if (map && map->value_tag == IPP_TAG_STRING)
+ return (strlen(value) <= (size_t)attr->values[0].integer);
+
case IPP_TAG_ENUM :
int_value = atoi(value);
return (attr->values[0].boolean);
case IPP_TAG_RANGE :
- int_value = atoi(value);
+ if (map && map->value_tag == IPP_TAG_STRING)
+ int_value = (int)strlen(value);
+ else
+ int_value = atoi(value);
for (i = 0; i < attr->num_values; i ++)
if (int_value >= attr->values[i].range.lower &&
cups_dest_t *dest) /* I - Destination */
{
cups_dinfo_t *dinfo; /* Destination information */
+ unsigned dflags; /* Destination flags */
ipp_t *request, /* Get-Printer-Attributes request */
*response; /* Supported attributes */
int tries, /* Number of tries so far */
char resource[1024]; /* Resource path */
int version; /* IPP version */
ipp_status_t status; /* Status of request */
+ _cups_globals_t *cg = _cupsGlobals(); /* Pointer to library globals */
static const char * const requested_attrs[] =
{ /* Requested attributes */
"job-template",
};
- DEBUG_printf(("cupsCopyDestSupported(http=%p, dest=%p(%s))", (void *)http, (void *)dest, dest ? dest->name : ""));
+ DEBUG_printf(("cupsCopyDestInfo(http=%p, dest=%p(%s))", (void *)http, (void *)dest, dest ? dest->name : ""));
/*
* Get the default connection as needed...
*/
if (!http)
- http = _cupsConnect();
+ {
+ DEBUG_puts("1cupsCopyDestInfo: Default server connection.");
+ http = _cupsConnect();
+ dflags = CUPS_DEST_FLAGS_NONE;
+ }
+#ifdef AF_LOCAL
+ else if (httpAddrFamily(http->hostaddr) == AF_LOCAL)
+ {
+ DEBUG_puts("1cupsCopyDestInfo: Connection to server (domain socket).");
+ dflags = CUPS_DEST_FLAGS_NONE;
+ }
+#endif /* AF_LOCAL */
+ else if ((strcmp(http->hostname, cg->server) && cg->server[0] != '/') || cg->ipp_port != httpAddrPort(http->hostaddr))
+ {
+ DEBUG_printf(("1cupsCopyDestInfo: Connection to device (%s).", http->hostname));
+ dflags = CUPS_DEST_FLAGS_DEVICE;
+ }
+ else
+ {
+ DEBUG_printf(("1cupsCopyDestInfo: Connection to server (%s).", http->hostname));
+ dflags = CUPS_DEST_FLAGS_NONE;
+ }
/*
* Range check input...
* Get the printer URI and resource path...
*/
- if ((uri = _cupsGetDestResource(dest, resource, sizeof(resource))) == NULL)
+ if ((uri = _cupsGetDestResource(dest, dflags, resource, sizeof(resource))) == NULL)
+ {
+ DEBUG_puts("1cupsCopyDestInfo: Unable to get resource.");
return (NULL);
+ }
/*
* Get the supported attributes...
*/
request = ippNewRequest(IPP_OP_GET_PRINTER_ATTRIBUTES);
- ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri", NULL,
- uri);
- ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME,
- "requesting-user-name", NULL, cupsUser());
- ippAddStrings(request, IPP_TAG_OPERATION, IPP_TAG_KEYWORD,
- "requested-attributes",
- (int)(sizeof(requested_attrs) / sizeof(requested_attrs[0])),
- NULL, requested_attrs);
+
+ ippSetVersion(request, version / 10, version % 10);
+ ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri", NULL, uri);
+ ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME, "requesting-user-name", NULL, cupsUser());
+ ippAddStrings(request, IPP_TAG_OPERATION, IPP_TAG_KEYWORD, "requested-attributes", (int)(sizeof(requested_attrs) / sizeof(requested_attrs[0])), NULL, requested_attrs);
response = cupsDoRequest(http, request, resource);
status = cupsLastError();
if (status > IPP_STATUS_OK_IGNORED_OR_SUBSTITUTED)
{
- DEBUG_printf(("cupsCopyDestSupported: Get-Printer-Attributes for '%s' "
- "returned %s (%s)", dest->name, ippErrorString(status),
- cupsLastErrorString()));
+ DEBUG_printf(("1cupsCopyDestInfo: Get-Printer-Attributes for '%s' returned %s (%s)", dest->name, ippErrorString(status), cupsLastErrorString()));
ippDelete(response);
response = NULL;
- if (status == IPP_STATUS_ERROR_VERSION_NOT_SUPPORTED && version > 11)
+ if ((status == IPP_STATUS_ERROR_BAD_REQUEST || status == IPP_STATUS_ERROR_VERSION_NOT_SUPPORTED) && version > 11)
+ {
version = 11;
+ }
else if (status == IPP_STATUS_ERROR_BUSY)
{
sleep((unsigned)delay);
while (!response && tries < 10);
if (!response)
+ {
+ DEBUG_puts("1cupsCopyDestInfo: Unable to get printer attributes.");
return (NULL);
+ }
/*
* Allocate a cups_dinfo_t structure and return it...
return (NULL);
}
+ DEBUG_printf(("1cupsCopyDestInfo: version=%d, uri=\"%s\", resource=\"%s\".", version, uri, resource));
+
dinfo->version = version;
dinfo->uri = uri;
dinfo->resource = _cupsStrAlloc(resource);
return (0);
}
- if (nsize->size_name)
- strlcpy(size->media, nsize->size_name, sizeof(size->media));
- else if (nsize->key)
+ if (nsize->key)
strlcpy(size->media, nsize->key, sizeof(size->media));
+ else if (nsize->size_name)
+ strlcpy(size->media, nsize->size_name, sizeof(size->media));
else if ((pwg = pwgMediaForSize(nsize->width, nsize->length)) != NULL)
strlcpy(size->media, pwg->pwg, sizeof(size->media));
else
* Get the default media size, if any...
*/
- if ((media = cupsGetOption("media", dest->num_options,
- dest->options)) == NULL)
+ if ((media = cupsGetOption("media", dest->num_options, dest->options)) == NULL)
media = "na_letter_8.5x11in";
if (cupsGetDestMediaByName(http, dest, dinfo, media, flags, size))
return (1);
- if (strcmp(media, "na_letter_8.5x11in") &&
- cupsGetDestMediaByName(http, dest, dinfo, "iso_a4_210x297mm", flags,
- size))
+ if (strcmp(media, "na_letter_8.5x11in") && cupsGetDestMediaByName(http, dest, dinfo, "iso_a4_210x297mm", flags, size))
return (1);
- if (strcmp(media, "iso_a4_210x297mm") &&
- cupsGetDestMediaByName(http, dest, dinfo, "na_letter_8.5x11in", flags,
- size))
+ if (strcmp(media, "iso_a4_210x297mm") && cupsGetDestMediaByName(http, dest, dinfo, "na_letter_8.5x11in", flags, size))
return (1);
- if ((flags & CUPS_MEDIA_FLAGS_BORDERLESS) &&
- cupsGetDestMediaByName(http, dest, dinfo, "na_index_4x6in", flags, size))
+ if ((flags & CUPS_MEDIA_FLAGS_BORDERLESS) && cupsGetDestMediaByName(http, dest, dinfo, "na_index_4x6in", flags, size))
return (1);
/*
pwg_media_t *pwg; /* PWG media info */
cups_array_t *db; /* New media database array */
_cups_media_db_t mdb; /* Media entry */
+ char media_key[256]; /* Synthesized media-key value */
db = cupsArrayNew3((cups_array_func_t)cups_compare_media_db,
}
}
- if ((media_attr = ippFindAttribute(val->collection, "media-color",
- IPP_TAG_ZERO)) != NULL &&
- (media_attr->value_tag == IPP_TAG_NAME ||
- media_attr->value_tag == IPP_TAG_NAMELANG ||
- media_attr->value_tag == IPP_TAG_KEYWORD))
+ if ((media_attr = ippFindAttribute(val->collection, "media-color", IPP_TAG_ZERO)) != NULL && (media_attr->value_tag == IPP_TAG_NAME || media_attr->value_tag == IPP_TAG_NAMELANG || media_attr->value_tag == IPP_TAG_KEYWORD))
mdb.color = media_attr->values[0].string.text;
- if ((media_attr = ippFindAttribute(val->collection, "media-info",
- IPP_TAG_TEXT)) != NULL)
+ if ((media_attr = ippFindAttribute(val->collection, "media-info", IPP_TAG_TEXT)) != NULL)
mdb.info = media_attr->values[0].string.text;
- if ((media_attr = ippFindAttribute(val->collection, "media-key",
- IPP_TAG_ZERO)) != NULL &&
- (media_attr->value_tag == IPP_TAG_NAME ||
- media_attr->value_tag == IPP_TAG_NAMELANG ||
- media_attr->value_tag == IPP_TAG_KEYWORD))
+ if ((media_attr = ippFindAttribute(val->collection, "media-key", IPP_TAG_ZERO)) != NULL && (media_attr->value_tag == IPP_TAG_NAME || media_attr->value_tag == IPP_TAG_NAMELANG || media_attr->value_tag == IPP_TAG_KEYWORD))
mdb.key = media_attr->values[0].string.text;
- if ((media_attr = ippFindAttribute(val->collection, "media-size-name",
- IPP_TAG_ZERO)) != NULL &&
- (media_attr->value_tag == IPP_TAG_NAME ||
- media_attr->value_tag == IPP_TAG_NAMELANG ||
- media_attr->value_tag == IPP_TAG_KEYWORD))
+ if ((media_attr = ippFindAttribute(val->collection, "media-size-name", IPP_TAG_ZERO)) != NULL && (media_attr->value_tag == IPP_TAG_NAME || media_attr->value_tag == IPP_TAG_NAMELANG || media_attr->value_tag == IPP_TAG_KEYWORD))
mdb.size_name = media_attr->values[0].string.text;
- if ((media_attr = ippFindAttribute(val->collection, "media-source",
- IPP_TAG_ZERO)) != NULL &&
- (media_attr->value_tag == IPP_TAG_NAME ||
- media_attr->value_tag == IPP_TAG_NAMELANG ||
- media_attr->value_tag == IPP_TAG_KEYWORD))
+ if ((media_attr = ippFindAttribute(val->collection, "media-source", IPP_TAG_ZERO)) != NULL && (media_attr->value_tag == IPP_TAG_NAME || media_attr->value_tag == IPP_TAG_NAMELANG || media_attr->value_tag == IPP_TAG_KEYWORD))
mdb.source = media_attr->values[0].string.text;
- if ((media_attr = ippFindAttribute(val->collection, "media-type",
- IPP_TAG_ZERO)) != NULL &&
- (media_attr->value_tag == IPP_TAG_NAME ||
- media_attr->value_tag == IPP_TAG_NAMELANG ||
- media_attr->value_tag == IPP_TAG_KEYWORD))
+ if ((media_attr = ippFindAttribute(val->collection, "media-type", IPP_TAG_ZERO)) != NULL && (media_attr->value_tag == IPP_TAG_NAME || media_attr->value_tag == IPP_TAG_NAMELANG || media_attr->value_tag == IPP_TAG_KEYWORD))
mdb.type = media_attr->values[0].string.text;
- if ((media_attr = ippFindAttribute(val->collection, "media-bottom-margin",
- IPP_TAG_INTEGER)) != NULL)
+ if ((media_attr = ippFindAttribute(val->collection, "media-bottom-margin", IPP_TAG_INTEGER)) != NULL)
mdb.bottom = media_attr->values[0].integer;
- if ((media_attr = ippFindAttribute(val->collection, "media-left-margin",
- IPP_TAG_INTEGER)) != NULL)
+ if ((media_attr = ippFindAttribute(val->collection, "media-left-margin", IPP_TAG_INTEGER)) != NULL)
mdb.left = media_attr->values[0].integer;
- if ((media_attr = ippFindAttribute(val->collection, "media-right-margin",
- IPP_TAG_INTEGER)) != NULL)
+ if ((media_attr = ippFindAttribute(val->collection, "media-right-margin", IPP_TAG_INTEGER)) != NULL)
mdb.right = media_attr->values[0].integer;
- if ((media_attr = ippFindAttribute(val->collection, "media-top-margin",
- IPP_TAG_INTEGER)) != NULL)
+ if ((media_attr = ippFindAttribute(val->collection, "media-top-margin", IPP_TAG_INTEGER)) != NULL)
mdb.top = media_attr->values[0].integer;
+ if (!mdb.key)
+ {
+ if (!mdb.size_name && (pwg = pwgMediaForSize(mdb.width, mdb.length)) != NULL)
+ mdb.size_name = (char *)pwg->pwg;
+
+ if (!mdb.size_name)
+ {
+ /*
+ * Use a CUPS-specific identifier if we don't have a size name...
+ */
+
+ if (flags & CUPS_MEDIA_FLAGS_READY)
+ snprintf(media_key, sizeof(media_key), "cups-media-ready-%d", i + 1);
+ else
+ snprintf(media_key, sizeof(media_key), "cups-media-%d", i + 1);
+ }
+ else if (mdb.source)
+ {
+ /*
+ * Generate key using size name, source, and type (if set)...
+ */
+
+ if (mdb.type)
+ snprintf(media_key, sizeof(media_key), "%s_%s_%s", mdb.size_name, mdb.source, mdb.type);
+ else
+ snprintf(media_key, sizeof(media_key), "%s_%s", mdb.size_name, mdb.source);
+ }
+ else if (mdb.type)
+ {
+ /*
+ * Generate key using size name and type...
+ */
+
+ snprintf(media_key, sizeof(media_key), "%s_%s", mdb.size_name, mdb.type);
+ }
+ else
+ {
+ /*
+ * Key is just the size name...
+ */
+
+ strlcpy(media_key, mdb.size_name, sizeof(media_key));
+ }
+
+ /*
+ * Append "_borderless" for borderless media...
+ */
+
+ if (!mdb.bottom && !mdb.left && !mdb.right && !mdb.top)
+ strlcat(media_key, "_borderless", sizeof(media_key));
+
+ mdb.key = media_key;
+ }
+
+ DEBUG_printf(("1cups_create_media_db: Adding media: key=\"%s\", width=%d, length=%d, source=\"%s\", type=\"%s\".", mdb.key, mdb.width, mdb.length, mdb.source, mdb.type));
+
cupsArrayAdd(db, &mdb);
}
* Return the matching size...
*/
- if (best->size_name)
- strlcpy(size->media, best->size_name, sizeof(size->media));
- else if (best->key)
+ if (best->key)
strlcpy(size->media, best->key, sizeof(size->media));
- else
+ else if (best->size_name)
+ strlcpy(size->media, best->size_name, sizeof(size->media));
+ else if (pwg && pwg->pwg)
strlcpy(size->media, pwg->pwg, sizeof(size->media));
+ else
+ strlcpy(size->media, "unknown", sizeof(size->media));
size->width = best->width;
size->length = best->length;
_CUPS_DNSSD_QUERY,
_CUPS_DNSSD_PENDING,
_CUPS_DNSSD_ACTIVE,
- _CUPS_DNSSD_LOCAL,
_CUPS_DNSSD_INCOMPATIBLE,
_CUPS_DNSSD_ERROR
} _cups_dnssd_state_t;
cups_ptype_t type, /* Printer type filter */
mask; /* Printer type mask */
cups_array_t *devices; /* Devices found so far */
+ int num_dests; /* Number of lpoptions destinations */
+ cups_dest_t *dests; /* lpoptions destinations */
+ char def_name[1024], /* Default printer name, if any */
+ *def_instance; /* Default printer instance, if any */
} _cups_dnssd_data_t;
typedef struct _cups_dnssd_device_s /* Enumerated device */
typedef struct _cups_getdata_s
{
- int num_dests; /* Number of destinations */
- cups_dest_t *dests; /* Destinations */
+ int num_dests; /* Number of destinations */
+ cups_dest_t *dests; /* Destinations */
+ char def_name[1024], /* Default printer name, if any */
+ *def_instance; /* Default printer instance, if any */
} _cups_getdata_t;
typedef struct _cups_namedata_s
const char *regtype,
const char *replyDomain);
# ifdef HAVE_DNSSD
-static void cups_dnssd_local_cb(DNSServiceRef sdRef,
- DNSServiceFlags flags,
- uint32_t interfaceIndex,
- DNSServiceErrorType errorCode,
- const char *serviceName,
- const char *regtype,
- const char *replyDomain,
- void *context);
static void cups_dnssd_query_cb(DNSServiceRef sdRef,
DNSServiceFlags flags,
uint32_t interfaceIndex,
static int cups_get_cb(_cups_getdata_t *data, unsigned flags, cups_dest_t *dest);
static char *cups_get_default(const char *filename, char *namebuf,
size_t namesize, const char **instance);
-static int cups_get_dests(const char *filename, const char *match_name,
- const char *match_inst, int user_default_set,
- int num_dests, cups_dest_t **dests);
+static int cups_get_dests(const char *filename, const char *match_name, const char *match_inst, int load_all, int user_default_set, int num_dests, cups_dest_t **dests);
static char *cups_make_string(ipp_attribute_t *attr, char *buffer,
size_t bufsize);
static int cups_name_cb(_cups_namedata_t *data, unsigned flags, cups_dest_t *dest);
/*
- * 'cupsConnectDest()' - Open a conection to the destination.
+ * 'cupsConnectDest()' - Open a connection to the destination.
*
* Connect to the destination, returning a new @code http_t@ connection object
* and optionally the resource path to use for the destination. These calls
* returns 0. The caller is responsible for calling @link httpClose@ on the
* returned connection.
*
- * Starting with CUPS 2.2.4, the caller can pass @code CUPS_DEST_FLAGS_DEVICE@
+ * Starting with CUPS 2.2.4, the caller can pass @code CUPS_DEST_FLAGS_DEVICE@
* for the "flags" argument to connect directly to the device associated with
* the destination. Otherwise, the connection is made to the CUPS scheduler
* associated with the destination.
if (new_dest)
{
+ new_dest->is_default = dest->is_default;
+
if ((new_dest->options = calloc(sizeof(cups_option_t), (size_t)dest->num_options)) == NULL)
return (cupsRemoveDest(dest->name, dest->instance, num_dests, dests));
* '_cupsGetDestResource()' - Get the resource path and URI for a destination.
*/
-const char * /* O - Printer URI */
+const char * /* O - URI */
_cupsGetDestResource(
cups_dest_t *dest, /* I - Destination */
+ unsigned flags, /* I - Destination flags */
char *resource, /* I - Resource buffer */
size_t resourcesize) /* I - Size of resource buffer */
{
- const char *uri; /* Printer URI */
+ const char *uri, /* URI */
+ *device_uri, /* Device URI */
+ *printer_uri; /* Printer URI */
char scheme[32], /* URI scheme */
userpass[256], /* Username and password (unused) */
hostname[256]; /* Hostname */
int port; /* Port number */
- DEBUG_printf(("_cupsGetDestResource(dest=%p(%s), resource=%p, resourcesize=%d)", (void *)dest, dest->name, (void *)resource, (int)resourcesize));
+ DEBUG_printf(("_cupsGetDestResource(dest=%p(%s), flags=%u, resource=%p, resourcesize=%d)", (void *)dest, dest->name, flags, (void *)resource, (int)resourcesize));
/*
* Range check input...
}
/*
- * Grab the printer URI...
+ * Grab the printer and device URIs...
*/
- if ((uri = cupsGetOption("printer-uri-supported", dest->num_options, dest->options)) == NULL)
+ device_uri = cupsGetOption("device-uri", dest->num_options, dest->options);
+ printer_uri = cupsGetOption("printer-uri-supported", dest->num_options, dest->options);
+
+ DEBUG_printf(("1_cupsGetDestResource: device-uri=\"%s\", printer-uri-supported=\"%s\".", device_uri, printer_uri));
+
+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ if (((flags & CUPS_DEST_FLAGS_DEVICE) || !printer_uri) && strstr(device_uri, "._tcp"))
{
- if ((uri = cupsGetOption("device-uri", dest->num_options, dest->options)) != NULL)
+ if ((device_uri = cups_dnssd_resolve(dest, device_uri, 5000, NULL, NULL, NULL)) != NULL)
{
-#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
- if (strstr(uri, "._tcp"))
- uri = cups_dnssd_resolve(dest, uri, 5000, NULL, NULL, NULL);
-#endif /* HAVE_DNSSD || HAVE_AVAHI */
+ DEBUG_printf(("1_cupsGetDestResource: Resolved device-uri=\"%s\".", device_uri));
}
-
- if (uri)
+ else
{
- DEBUG_printf(("1_cupsGetDestResource: Resolved printer-uri-supported=\"%s\"", uri));
+ DEBUG_puts("1_cupsGetDestResource: Unable to resolve device.");
- uri = _cupsCreateDest(dest->name, cupsGetOption("printer-info", dest->num_options, dest->options), NULL, uri, resource, resourcesize);
+ if (resource)
+ *resource = '\0';
+
+ _cupsSetError(IPP_STATUS_ERROR_INTERNAL, strerror(ENOENT), 0);
+
+ return (NULL);
}
+ }
+#endif /* HAVE_DNSSD || HAVE_AVAHI */
+
+ if (flags & CUPS_DEST_FLAGS_DEVICE)
+ {
+ uri = device_uri;
+ }
+ else if (printer_uri)
+ {
+ uri = printer_uri;
+ }
+ else
+ {
+ uri = _cupsCreateDest(dest->name, cupsGetOption("printer-info", dest->num_options, dest->options), NULL, device_uri, resource, resourcesize);
if (uri)
{
uri = cupsGetOption("printer-uri-supported", dest->num_options, dest->options);
}
- else
- {
- DEBUG_puts("1_cupsGetDestResource: No printer-uri-supported found.");
+ }
- if (resource)
- *resource = '\0';
+ if (!uri)
+ {
+ DEBUG_puts("1_cupsGetDestResource: No printer-uri-supported or device-uri found.");
- _cupsSetError(IPP_STATUS_ERROR_INTERNAL, strerror(ENOENT), 0);
+ if (resource)
+ *resource = '\0';
- return (NULL);
- }
+ _cupsSetError(IPP_STATUS_ERROR_INTERNAL, strerror(ENOENT), 0);
+
+ return (NULL);
}
- else
+ else if (httpSeparateURI(HTTP_URI_CODING_ALL, uri, scheme, sizeof(scheme), userpass, sizeof(userpass), hostname, sizeof(hostname), &port, resource, (int)resourcesize) < HTTP_URI_STATUS_OK)
{
- DEBUG_printf(("1_cupsGetDestResource: printer-uri-supported=\"%s\"", uri));
-
- if (httpSeparateURI(HTTP_URI_CODING_ALL, uri, scheme, sizeof(scheme),
- userpass, sizeof(userpass), hostname, sizeof(hostname),
- &port, resource, (int)resourcesize) < HTTP_URI_STATUS_OK)
- {
- _cupsSetError(IPP_STATUS_ERROR_INTERNAL, _("Bad printer-uri."), 1);
+ _cupsSetError(IPP_STATUS_ERROR_INTERNAL, _("Bad URI."), 1);
- return (NULL);
- }
+ return (NULL);
}
DEBUG_printf(("1_cupsGetDestResource: resource=\"%s\"", resource));
name = resource + 10;
info = temp;
}
+ else if (!strncmp(resource, "/ipp/print/", 11))
+ {
+ snprintf(temp, sizeof(temp), "%s @ %s", resource + 11, hostname);
+ name = resource + 11;
+ info = temp;
+ }
else
{
name = hostname;
cups_dest_t **dests) /* O - Destinations */
{
_cups_getdata_t data; /* Enumeration data */
- cups_dest_t *dest; /* Current destination */
- const char *home; /* HOME environment variable */
- char filename[1024]; /* Local ~/.cups/lpoptions file */
- const char *defprinter; /* Default printer */
- char name[1024], /* Copy of printer name */
- *instance, /* Pointer to instance name */
- *user_default; /* User default printer */
- int num_reals; /* Number of real queues */
- cups_dest_t *reals; /* Real queues */
- _cups_globals_t *cg = _cupsGlobals(); /* Pointer to library globals */
DEBUG_printf(("cupsGetDests2(http=%p, dests=%p)", (void *)http, (void *)dests));
}
/*
- * Make a copy of the "real" queues for a later sanity check...
- */
-
- if (data.num_dests > 0)
- {
- num_reals = data.num_dests;
- reals = calloc((size_t)num_reals, sizeof(cups_dest_t));
-
- if (reals)
- memcpy(reals, data.dests, (size_t)num_reals * sizeof(cups_dest_t));
- else
- num_reals = 0;
- }
- else
- {
- num_reals = 0;
- reals = NULL;
- }
-
- /*
- * Grab the default destination...
- */
-
- if ((user_default = _cupsUserDefault(name, sizeof(name))) != NULL)
- defprinter = name;
- else if ((defprinter = cupsGetDefault2(http)) != NULL)
- {
- strlcpy(name, defprinter, sizeof(name));
- defprinter = name;
- }
-
- if (defprinter)
- {
- /*
- * Separate printer and instance name...
- */
-
- if ((instance = strchr(name, '/')) != NULL)
- *instance++ = '\0';
-
- /*
- * Lookup the printer and instance and make it the default...
- */
-
- if ((dest = cupsGetDest(name, instance, data.num_dests, data.dests)) != NULL)
- dest->is_default = 1;
- }
- else
- instance = NULL;
-
- /*
- * Load the /etc/cups/lpoptions and ~/.cups/lpoptions files...
- */
-
- snprintf(filename, sizeof(filename), "%s/lpoptions", cg->cups_serverroot);
- data.num_dests = cups_get_dests(filename, NULL, NULL, user_default != NULL, data.num_dests, &data.dests);
-
- if ((home = getenv("HOME")) != NULL)
- {
- snprintf(filename, sizeof(filename), "%s/.cups/lpoptions", home);
-
- data.num_dests = cups_get_dests(filename, NULL, NULL, user_default != NULL, data.num_dests, &data.dests);
- }
-
- /*
- * Validate the current default destination - this prevents old
- * Default lines in /etc/cups/lpoptions and ~/.cups/lpoptions from
- * pointing to a non-existent printer or class...
- */
-
- if (num_reals)
- {
- /*
- * See if we have a default printer...
- */
-
- if ((dest = cupsGetDest(NULL, NULL, data.num_dests, data.dests)) != NULL)
- {
- /*
- * Have a default; see if it is real...
- */
-
- if (!cupsGetDest(dest->name, NULL, num_reals, reals))
- {
- /*
- * Remove the non-real printer from the list, since we don't want jobs
- * going to an unexpected printer... (<rdar://problem/14216472>)
- */
-
- data.num_dests = cupsRemoveDest(dest->name, dest->instance, data.num_dests, &data.dests);
- }
- }
-
- /*
- * Free memory...
- */
-
- free(reals);
- }
-
- /*
* Return the number of destinations...
*/
snprintf(filename, sizeof(filename), "%s/.cups/lpoptions", home);
dest_name = cups_get_default(filename, defname, sizeof(defname), &instance);
+
+ if (dest_name)
+ set_as_default = 2;
}
if (!dest_name)
snprintf(filename, sizeof(filename), "%s/lpoptions", cg->cups_serverroot);
dest_name = cups_get_default(filename, defname, sizeof(defname), &instance);
+
+ if (dest_name)
+ set_as_default = 3;
}
if (!dest_name)
* No locally-set default destination, ask the server...
*/
- op = IPP_OP_CUPS_GET_DEFAULT;
+ op = IPP_OP_CUPS_GET_DEFAULT;
+ set_as_default = 4;
DEBUG_puts("1cupsGetNamedDest: Asking server for default printer...");
}
dest = data.dest;
}
else
+ {
+ switch (set_as_default)
+ {
+ default :
+ break;
+
+ case 1 : /* Set from env vars */
+ if (getenv("LPDEST"))
+ _cupsSetError(IPP_STATUS_ERROR_NOT_FOUND, _("LPDEST environment variable names default destination that does not exist."), 1);
+ else if (getenv("PRINTER"))
+ _cupsSetError(IPP_STATUS_ERROR_NOT_FOUND, _("PRINTER environment variable names default destination that does not exist."), 1);
+ else
+ _cupsSetError(IPP_STATUS_ERROR_NOT_FOUND, _("No default destination."), 1);
+ break;
+
+ case 2 : /* Set from ~/.cups/lpoptions */
+ _cupsSetError(IPP_STATUS_ERROR_NOT_FOUND, _("~/.cups/lpoptions file names default destination that does not exist."), 1);
+ break;
+
+ case 3 : /* Set from /etc/cups/lpoptions */
+ _cupsSetError(IPP_STATUS_ERROR_NOT_FOUND, _("/etc/cups/lpoptions file names default destination that does not exist."), 1);
+ break;
+
+ case 4 : /* Set from server */
+ _cupsSetError(IPP_STATUS_ERROR_NOT_FOUND, _("No default destination."), 1);
+ break;
+ }
+
return (NULL);
+ }
}
DEBUG_printf(("1cupsGetNamedDest: Got dest=%p", (void *)dest));
*/
snprintf(filename, sizeof(filename), "%s/lpoptions", cg->cups_serverroot);
- cups_get_dests(filename, dest_name, instance, 1, 1, &dest);
+ cups_get_dests(filename, dest_name, instance, 0, 1, 1, &dest);
if (home)
{
snprintf(filename, sizeof(filename), "%s/.cups/lpoptions", home);
- cups_get_dests(filename, dest_name, instance, 1, 1, &dest);
+ cups_get_dests(filename, dest_name, instance, 0, 1, 1, &dest);
}
/*
if (getuid())
{
/*
- * Merge in server defaults...
- */
-
- num_temps = cups_get_dests(filename, NULL, NULL, 0, num_temps, &temps);
-
- /*
* Point to user defaults...
*/
else
wrote = 0;
- if ((temp = cupsGetDest(dest->name, dest->instance, num_temps, temps)) == NULL)
- temp = cupsGetDest(dest->name, NULL, num_temps, temps);
+ temp = cupsGetDest(dest->name, NULL, num_temps, temps);
for (j = dest->num_options, option = dest->options; j > 0; j --, option ++)
{
* See if this option is a printer attribute; if so, skip it...
*/
- if ((match = _ippFindOption(option->name)) != NULL &&
- match->group_tag == IPP_TAG_PRINTER)
+ if ((match = _ippFindOption(option->name)) != NULL && match->group_tag == IPP_TAG_PRINTER)
continue;
/*
- * See if the server/global options match these; if so, don't
- * write 'em.
+ * See if the server options match these; if so, don't write 'em.
*/
- if (temp &&
- (val = cupsGetOption(option->name, temp->num_options,
- temp->options)) != NULL &&
- !_cups_strcasecmp(val, option->value))
+ if (temp && (val = cupsGetOption(option->name, temp->num_options, temp->options)) != NULL && !_cups_strcasecmp(val, option->value))
continue;
/*
if (option->value[0])
{
- if (strchr(option->value, ' ') ||
- strchr(option->value, '\\') ||
- strchr(option->value, '\"') ||
- strchr(option->value, '\''))
+ if (strchr(option->value, ' ') || strchr(option->value, '\\') || strchr(option->value, '\"') || strchr(option->value, '\''))
{
/*
* Quote the value...
if ((dest = cupsGetDest(NULL, NULL, num_dests, dests)) != NULL)
{
- CFStringRef name = CFStringCreateWithCString(kCFAllocatorDefault,
- dest->name,
- kCFStringEncodingUTF8);
+ CFStringRef name = CFStringCreateWithCString(kCFAllocatorDefault, dest->name, kCFStringEncodingUTF8);
/* Default printer name */
if (name)
* This object is new on the network.
*/
- if (flags & AVAHI_LOOKUP_RESULT_LOCAL)
- {
- /*
- * This comes from the local machine so ignore it.
- */
-
- DEBUG_printf(("cups_dnssd_browse_cb: Ignoring local service \"%s\".", name));
- }
- else
- {
- /*
- * Create a device entry for it if it doesn't yet exist.
- */
-
- cups_dnssd_get_device(data, name, type, domain);
- }
+ cups_dnssd_get_device(data, name, type, domain);
break;
case AVAHI_BROWSER_REMOVE :
}
-# ifdef HAVE_DNSSD
-/*
- * 'cups_dnssd_local_cb()' - Browse for local printers.
- */
-
-static void
-cups_dnssd_local_cb(
- DNSServiceRef sdRef, /* I - Service reference */
- DNSServiceFlags flags, /* I - Option flags */
- uint32_t interfaceIndex, /* I - Interface number */
- DNSServiceErrorType errorCode, /* I - Error, if any */
- const char *serviceName, /* I - Name of service/device */
- const char *regtype, /* I - Type of service */
- const char *replyDomain, /* I - Service domain */
- void *context) /* I - Devices array */
-{
- _cups_dnssd_data_t *data = (_cups_dnssd_data_t *)context;
- /* Enumeration data */
- _cups_dnssd_device_t *device; /* Device */
-
-
- DEBUG_printf(("5cups_dnssd_local_cb(sdRef=%p, flags=%x, interfaceIndex=%d, errorCode=%d, serviceName=\"%s\", regtype=\"%s\", replyDomain=\"%s\", context=%p)", (void *)sdRef, flags, interfaceIndex, errorCode, serviceName, regtype, replyDomain, context));
-
- /*
- * Only process "add" data...
- */
-
- if (errorCode != kDNSServiceErr_NoError || !(flags & kDNSServiceFlagsAdd))
- return;
-
- /*
- * Get the device...
- */
-
- device = cups_dnssd_get_device(data, serviceName, regtype, replyDomain);
-
- /*
- * Hide locally-registered devices...
- */
-
- DEBUG_printf(("6cups_dnssd_local_cb: Hiding local printer '%s'.",
- serviceName));
-
- if (device->ref)
- {
- DNSServiceRefDeallocate(device->ref);
- device->ref = 0;
- }
-
- if (device->state == _CUPS_DNSSD_ACTIVE)
- {
- DEBUG_printf(("6cups_dnssd_local_cb: Remove callback for \"%s\".", device->dest.name));
- (*data->cb)(data->user_data, CUPS_DEST_FLAGS_REMOVED, &device->dest);
- }
-
- device->state = _CUPS_DNSSD_LOCAL;
-}
-# endif /* HAVE_DNSSD */
-
-
# ifdef HAVE_AVAHI
/*
* 'cups_dnssd_poll_cb()' - Wait for input on the specified file descriptors.
* 'cups_dnssd_query_cb()' - Process query data.
*/
-# ifdef HAVE_DNSSD
static void
cups_dnssd_query_cb(
+# ifdef HAVE_DNSSD
DNSServiceRef sdRef, /* I - Service reference */
DNSServiceFlags flags, /* I - Data flags */
uint32_t interfaceIndex, /* I - Interface */
uint16_t rdlen, /* I - Length of record data */
const void *rdata, /* I - Record data */
uint32_t ttl, /* I - Time-to-live */
- void *context) /* I - Enumeration data */
-{
# else /* HAVE_AVAHI */
-static void
-cups_dnssd_query_cb(
AvahiRecordBrowser *browser, /* I - Record browser */
AvahiIfIndex interfaceIndex,
/* I - Interface index (unused) */
const void *rdata, /* I - TXT record */
size_t rdlen, /* I - Length of TXT record */
AvahiLookupResultFlags flags, /* I - Flags */
- void *context) /* I - Enumeration data */
+# endif /* HAVE_DNSSD */
+ void *context) /* I - Enumeration data */
{
-# ifdef DEBUG
+# if defined(DEBUG) && defined(HAVE_AVAHI)
AvahiClient *client = avahi_record_browser_get_client(browser);
/* Client information */
-# endif /* DEBUG */
-# endif /* HAVE_DNSSD */
+# endif /* DEBUG && HAVE_AVAHI */
_cups_dnssd_data_t *data = (_cups_dnssd_data_t *)context;
/* Enumeration data */
char serviceName[256],/* Service name */
cups_dest_cb_t cb, /* I - Callback function */
void *user_data) /* I - User data */
{
- int i, /* Looping var */
+ int i, j, /* Looping vars */
num_dests; /* Number of destinations */
cups_dest_t *dests = NULL, /* Destinations */
- *dest; /* Current destination */
- const char *defprinter; /* Default printer */
- char name[1024], /* Copy of printer name */
- *instance, /* Pointer to instance name */
- *user_default; /* User default printer */
+ *dest, /* Current destination */
+ *user_dest; /* User destination */
+ cups_option_t *option; /* Current option */
+ char *user_default; /* User default printer */
#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
int count, /* Number of queries started */
completed, /* Number of completed queries */
remaining; /* Remainder of timeout */
struct timeval curtime; /* Current time */
- _cups_dnssd_data_t data; /* Data for callback */
+ _cups_dnssd_data_t data; /* Data for callback */
_cups_dnssd_device_t *device; /* Current device */
# ifdef HAVE_DNSSD
int nfds, /* Number of files responded */
main_fd; /* File descriptor for lookups */
- DNSServiceRef ipp_ref = NULL, /* IPP browser */
- local_ipp_ref = NULL; /* Local IPP browser */
+ DNSServiceRef ipp_ref = NULL; /* IPP browser */
# ifdef HAVE_SSL
- DNSServiceRef ipps_ref = NULL, /* IPPS browser */
- local_ipps_ref = NULL; /* Local IPPS browser */
+ DNSServiceRef ipps_ref = NULL; /* IPPS browser */
# endif /* HAVE_SSL */
# ifdef HAVE_POLL
struct pollfd pfd; /* Polling data */
AvahiServiceBrowser *ipps_ref = NULL; /* IPPS browser */
# endif /* HAVE_SSL */
# endif /* HAVE_DNSSD */
+#else
+ _cups_getdata_t data; /* Data for callback */
#endif /* HAVE_DNSSD || HAVE_AVAHI */
+ const char *home; /* HOME environment variable */
+ char filename[1024]; /* Local lpoptions file */
+ _cups_globals_t *cg = _cupsGlobals(); /* Pointer to library globals */
DEBUG_printf(("cups_enum_dests(flags=%x, msec=%d, cancel=%p, type=%x, mask=%x, cb=%p, user_data=%p)", flags, msec, (void *)cancel, type, mask, (void *)cb, (void *)user_data));
}
/*
- * Get ready to enumerate...
+ * Load the /etc/cups/lpoptions and ~/.cups/lpoptions files...
*/
-#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
memset(&data, 0, sizeof(data));
+ if ((user_default = _cupsUserDefault(data.def_name, sizeof(data.def_name))) == NULL)
+ {
+ const char *defprinter = cupsGetDefault2(http);
+ /* Server default, if any */
+
+ if (defprinter)
+ strlcpy(data.def_name, defprinter, sizeof(data.def_name));
+ }
+
+ if (data.def_name[0])
+ {
+ /*
+ * Separate printer and instance name...
+ */
+
+ if ((data.def_instance = strchr(data.def_name, '/')) != NULL)
+ *data.def_instance++ = '\0';
+ }
+
+ DEBUG_printf(("1cups_enum_dests: def_name=\"%s\", def_instance=\"%s\"", data.def_name, data.def_instance));
+
+ snprintf(filename, sizeof(filename), "%s/lpoptions", cg->cups_serverroot);
+ data.num_dests = cups_get_dests(filename, NULL, NULL, 1, user_default != NULL, data.num_dests, &data.dests);
+
+ if ((home = getenv("HOME")) != NULL)
+ {
+ snprintf(filename, sizeof(filename), "%s/.cups/lpoptions", home);
+
+ data.num_dests = cups_get_dests(filename, NULL, NULL, 1, user_default != NULL, data.num_dests, &data.dests);
+ }
+
+ /*
+ * Get ready to enumerate...
+ */
+
+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
data.type = type;
data.mask = mask;
data.cb = cb;
num_dests = _cupsGetDests(http, IPP_OP_CUPS_GET_PRINTERS, NULL, &dests, type, mask);
- if ((user_default = _cupsUserDefault(name, sizeof(name))) != NULL)
- defprinter = name;
- else if ((defprinter = cupsGetDefault2(http)) != NULL)
- {
- strlcpy(name, defprinter, sizeof(name));
- defprinter = name;
- }
-
- if (defprinter)
+ if (data.def_name[0])
{
/*
- * Separate printer and instance name...
+ * Lookup the named default printer and instance and make it the default...
*/
- if ((instance = strchr(name, '/')) != NULL)
- *instance++ = '\0';
-
- /*
- * Lookup the printer and instance and make it the default...
- */
-
- if ((dest = cupsGetDest(name, instance, num_dests, dests)) != NULL)
+ if ((dest = cupsGetDest(data.def_name, data.def_instance, num_dests, dests)) != NULL)
+ {
+ DEBUG_printf(("1cups_enum_dests: Setting is_default on \"%s/%s\".", dest->name, dest->instance));
dest->is_default = 1;
+ }
}
for (i = num_dests, dest = dests;
const char *device_uri; /* Device URI */
#endif /* HAVE_DNSSD || HAVE_AVAHI */
+ if ((user_dest = cupsGetDest(dest->name, dest->instance, data.num_dests, data.dests)) != NULL)
+ {
+ /*
+ * Apply user defaults to this destination...
+ */
+
+ for (j = user_dest->num_options, option = user_dest->options; j > 0; j --, option ++)
+ dest->num_options = cupsAddOption(option->name, option->value, dest->num_options, &dest->options);
+ }
+
if (!(*cb)(user_data, i > 1 ? CUPS_DEST_FLAGS_MORE : CUPS_DEST_FLAGS_NONE, dest))
break;
if (DNSServiceCreateConnection(&data.main_ref) != kDNSServiceErr_NoError)
{
DEBUG_puts("1cups_enum_dests: Unable to create service browser, returning 0.");
+
+ cupsFreeDests(data.num_dests, data.dests);
+
return (0);
}
{
DEBUG_puts("1cups_enum_dests: Unable to create IPP browser, returning 0.");
DNSServiceRefDeallocate(data.main_ref);
- return (0);
- }
- local_ipp_ref = data.main_ref;
- if (DNSServiceBrowse(&local_ipp_ref, kDNSServiceFlagsShareConnection, kDNSServiceInterfaceIndexLocalOnly, "_ipp._tcp", NULL, (DNSServiceBrowseReply)cups_dnssd_local_cb, &data) != kDNSServiceErr_NoError)
- {
- DEBUG_puts("1cups_enum_dests: Unable to create local IPP browser, returning 0.");
- DNSServiceRefDeallocate(data.main_ref);
+ cupsFreeDests(data.num_dests, data.dests);
+
return (0);
}
{
DEBUG_puts("1cups_enum_dests: Unable to create IPPS browser, returning 0.");
DNSServiceRefDeallocate(data.main_ref);
- return (0);
- }
- local_ipps_ref = data.main_ref;
- if (DNSServiceBrowse(&local_ipps_ref, kDNSServiceFlagsShareConnection, kDNSServiceInterfaceIndexLocalOnly, "_ipps._tcp", NULL, (DNSServiceBrowseReply)cups_dnssd_local_cb, &data) != kDNSServiceErr_NoError)
- {
- DEBUG_puts("1cups_enum_dests: Unable to create local IPPS browser, returning 0.");
- DNSServiceRefDeallocate(data.main_ref);
+ cupsFreeDests(data.num_dests, data.dests);
+
return (0);
}
# endif /* HAVE_SSL */
if ((data.simple_poll = avahi_simple_poll_new()) == NULL)
{
DEBUG_puts("1cups_enum_dests: Unable to create Avahi poll, returning 0.");
+
+ cupsFreeDests(data.num_dests, data.dests);
+
return (0);
}
{
DEBUG_puts("1cups_enum_dests: Unable to create Avahi client, returning 0.");
avahi_simple_poll_free(data.simple_poll);
+
+ cupsFreeDests(data.num_dests, data.dests);
+
return (0);
}
avahi_client_free(data.client);
avahi_simple_poll_free(data.simple_poll);
+
+ cupsFreeDests(data.num_dests, data.dests);
+
return (0);
}
avahi_service_browser_free(ipp_ref);
avahi_client_free(data.client);
avahi_simple_poll_free(data.simple_poll);
+
+ cupsFreeDests(data.num_dests, data.dests);
+
return (0);
}
# endif /* HAVE_SSL */
if ((device->type & mask) == type)
{
+ dest = &device->dest;
+
+ if ((user_dest = cupsGetDest(dest->name, dest->instance, data.num_dests, data.dests)) != NULL)
+ {
+ /*
+ * Apply user defaults to this destination...
+ */
+
+ for (j = user_dest->num_options, option = user_dest->options; j > 0; j --, option ++)
+ dest->num_options = cupsAddOption(option->name, option->value, dest->num_options, &dest->options);
+ }
+
+ if (!strcasecmp(dest->name, data.def_name) && !data.def_instance)
+ {
+ DEBUG_printf(("1cups_enum_dests: Setting is_default on discovered \"%s\".", dest->name));
+ dest->is_default = 1;
+ }
+
DEBUG_printf(("1cups_enum_dests: Add callback for \"%s\".", device->dest.name));
- if (!(*cb)(user_data, CUPS_DEST_FLAGS_NONE, &device->dest))
+ if (!(*cb)(user_data, CUPS_DEST_FLAGS_NONE, dest))
{
remaining = -1;
break;
enum_finished:
+ cupsFreeDests(data.num_dests, data.dests);
+
#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
cupsArrayDelete(data.devices);
# ifdef HAVE_DNSSD
if (ipp_ref)
DNSServiceRefDeallocate(ipp_ref);
- if (local_ipp_ref)
- DNSServiceRefDeallocate(local_ipp_ref);
# ifdef HAVE_SSL
if (ipps_ref)
DNSServiceRefDeallocate(ipps_ref);
- if (local_ipps_ref)
- DNSServiceRefDeallocate(local_ipps_ref);
# endif /* HAVE_SSL */
if (data.main_ref)
const char *filename, /* I - File to read from */
const char *match_name, /* I - Destination name we want */
const char *match_inst, /* I - Instance name we want */
+ int load_all, /* I - Load all saved destinations? */
int user_default_set, /* I - User default printer set? */
int num_dests, /* I - Number of destinations */
cups_dest_t **dests) /* IO - Destinations */
int linenum; /* Current line number */
- DEBUG_printf(("7cups_get_dests(filename=\"%s\", match_name=\"%s\", match_inst=\"%s\", user_default_set=%d, num_dests=%d, dests=%p)", filename, match_name, match_inst, user_default_set, num_dests, (void *)dests));
+ DEBUG_printf(("7cups_get_dests(filename=\"%s\", match_name=\"%s\", match_inst=\"%s\", load_all=%d, user_default_set=%d, num_dests=%d, dests=%p)", filename, match_name, match_inst, load_all, user_default_set, num_dests, (void *)dests));
/*
* Try to open the file...
instance));
/*
- * See if the primary instance of the destination exists; if not,
- * ignore this entry and move on...
+ * Match and/or ignore missing destinations...
*/
if (match_name)
dest = *dests;
}
- else if (cupsGetDest(name, NULL, num_dests, *dests) == NULL)
+ else if (!load_all && cupsGetDest(name, NULL, num_dests, *dests) == NULL)
{
DEBUG_puts("9cups_get_dests: Not found!");
continue;
* Add options until we hit the end of the line...
*/
- dest->num_options = cupsParseOptions(lineptr, dest->num_options,
- &(dest->options));
+ dest->num_options = cupsParseOptions(lineptr, dest->num_options, &(dest->options));
/*
* If we found what we were looking for, stop now...
unsigned char temp[64]; /* Temporary hash buffer */
size_t tempsize = 0; /* Truncate to this size? */
+
+# ifdef HAVE_GNUTLS_FIPS140_SET_MODE
+ unsigned oldmode = gnutls_fips140_mode_enabled();
+
+ gnutls_fips140_set_mode(GNUTLS_FIPS140_LAX, GNUTLS_FIPS140_SET_MODE_THREAD);
+# endif /* HAVE_GNUTLS_FIPS140_SET_MODE */
+
if (!strcmp(algorithm, "md5"))
alg = GNUTLS_DIG_MD5;
else if (!strcmp(algorithm, "sha"))
gnutls_hash_fast(alg, data, datalen, temp);
memcpy(hash, temp, tempsize);
+# ifdef HAVE_GNUTLS_FIPS140_SET_MODE
+ gnutls_fips140_set_mode(oldmode, GNUTLS_FIPS140_SET_MODE_THREAD);
+# endif /* HAVE_GNUTLS_FIPS140_SET_MODE */
+
return ((ssize_t)tempsize);
}
gnutls_hash_fast(alg, data, datalen, hash);
+# ifdef HAVE_GNUTLS_FIPS140_SET_MODE
+ gnutls_fips140_set_mode(oldmode, GNUTLS_FIPS140_SET_MODE_THREAD);
+# endif /* HAVE_GNUTLS_FIPS140_SET_MODE */
+
return ((ssize_t)gnutls_hash_get_len(alg));
}
+# ifdef HAVE_GNUTLS_FIPS140_SET_MODE
+ gnutls_fips140_set_mode(oldmode, GNUTLS_FIPS140_SET_MODE_THREAD);
+# endif /* HAVE_GNUTLS_FIPS140_SET_MODE */
+
#else
/*
* No hash support beyond MD5 without CommonCrypto or GNU TLS...
too_small:
+#ifdef HAVE_GNUTLS_FIPS140_SET_MODE
+ gnutls_fips140_set_mode(oldmode, GNUTLS_FIPS140_SET_MODE_THREAD);
+#endif /* HAVE_GNUTLS_FIPS140_SET_MODE */
+
_cupsSetError(IPP_STATUS_ERROR_INTERNAL, _("Hash buffer too small."), 1);
return (-1);
}
...) /* I - Additional args as needed */
{
ssize_t bytes; /* Number of bytes to write */
- char buf[16384]; /* Buffer for formatted string */
+ char buf[65536]; /* Buffer for formatted string */
va_list ap; /* Variable argument pointer */
DEBUG_printf(("3httpPrintf: (" CUPS_LLFMT " bytes) %s", CUPS_LLCAST bytes, buf));
- if (http->data_encoding == HTTP_ENCODING_FIELDS)
+ if (bytes > (ssize_t)(sizeof(buf) - 1))
+ {
+ http->error = ENOMEM;
+ return (-1);
+ }
+ else if (http->data_encoding == HTTP_ENCODING_FIELDS)
return ((int)httpWrite2(http, buf, (size_t)bytes));
else
{
DEBUG_printf(("2ippReadIO: name length=%d", n));
- if (n == 0 && tag != IPP_TAG_MEMBERNAME &&
- tag != IPP_TAG_END_COLLECTION)
+ if (n && parent)
+ {
+ _cupsSetError(IPP_STATUS_ERROR_INTERNAL, _("Invalid named IPP attribute in collection."), 1);
+ DEBUG_puts("1ippReadIO: bad attribute name in collection.");
+ return (IPP_STATE_ERROR);
+ }
+ else if (n == 0 && tag != IPP_TAG_MEMBERNAME && tag != IPP_TAG_END_COLLECTION)
{
/*
* More values for current attribute...
break;
case IPP_TAG_NAME :
- if (temp_tag != IPP_TAG_KEYWORD && temp_tag != IPP_TAG_URI &&
- temp_tag != IPP_TAG_URISCHEME && temp_tag != IPP_TAG_LANGUAGE &&
- temp_tag != IPP_TAG_MIMETYPE)
+ if (temp_tag != IPP_TAG_KEYWORD)
return (0);
(*attr)->value_tag = (ipp_tag_t)(IPP_TAG_NAME | ((*attr)->value_tag & IPP_TAG_CUPS_CONST));
case IPP_TAG_NAMELANG :
case IPP_TAG_TEXTLANG :
- if (value_tag == IPP_TAG_NAMELANG &&
- (temp_tag != IPP_TAG_NAME && temp_tag != IPP_TAG_KEYWORD &&
- temp_tag != IPP_TAG_URI && temp_tag != IPP_TAG_URISCHEME &&
- temp_tag != IPP_TAG_LANGUAGE && temp_tag != IPP_TAG_MIMETYPE))
+ if (value_tag == IPP_TAG_NAMELANG && (temp_tag != IPP_TAG_NAME && temp_tag != IPP_TAG_KEYWORD))
return (0);
if (value_tag == IPP_TAG_TEXTLANG && temp_tag != IPP_TAG_TEXT)
{
switch (cparam->type)
{
+ case PPD_CUSTOM_UNKNOWN :
+ break;
+
case PPD_CUSTOM_CURVE :
case PPD_CUSTOM_INVCURVE :
case PPD_CUSTOM_POINTS :
{
switch (cparam->type)
{
+ case PPD_CUSTOM_UNKNOWN :
+ break;
+
case PPD_CUSTOM_CURVE :
case PPD_CUSTOM_INVCURVE :
case PPD_CUSTOM_POINTS :
{
switch (cparam->type)
{
+ case PPD_CUSTOM_UNKNOWN :
+ break;
+
case PPD_CUSTOM_CURVE :
case PPD_CUSTOM_INVCURVE :
case PPD_CUSTOM_POINTS :
{
switch (cparam->type)
{
+ case PPD_CUSTOM_UNKNOWN :
+ break;
+
case PPD_CUSTOM_CURVE :
case PPD_CUSTOM_INVCURVE :
case PPD_CUSTOM_POINTS :
switch (cparam->type)
{
+ case PPD_CUSTOM_UNKNOWN :
+ break;
+
case PPD_CUSTOM_CURVE :
case PPD_CUSTOM_INVCURVE :
case PPD_CUSTOM_REAL :
switch (cparam->type)
{
+ case PPD_CUSTOM_UNKNOWN :
+ break;
+
case PPD_CUSTOM_CURVE :
case PPD_CUSTOM_INVCURVE :
case PPD_CUSTOM_REAL :
strncmp(ll, keyword, ll_len)))
{
DEBUG_printf(("2_ppdOpen: Ignoring localization: \"%s\"\n", keyword));
+ free(string);
+ string = NULL;
continue;
}
else if (localization == _PPD_LOCALIZATION_ICC_PROFILES)
if (i >= (int)(sizeof(color_keywords) / sizeof(color_keywords[0])))
{
DEBUG_printf(("2_ppdOpen: Ignoring localization: \"%s\"\n", keyword));
+ free(string);
+ string = NULL;
continue;
}
}
goto error;
}
+ if (cparam->type != PPD_CUSTOM_UNKNOWN)
+ {
+ pg->ppd_status = PPD_BAD_CUSTOM_PARAM;
+
+ goto error;
+ }
+
/*
* Get the parameter data...
*/
else if (!strcmp(string, "Plus90"))
ppd->landscape = 90;
}
+ else if (!strcmp(keyword, "Emulators") && string && ppd->num_emulations == 0)
+ {
+ /*
+ * Issue #5562: Samsung printer drivers incorrectly use Emulators keyword
+ * to configure themselves
+ *
+ * The Emulators keyword was loaded but never used by anything in CUPS,
+ * and has no valid purpose in CUPS. The old code was removed due to a
+ * memory leak (Issue #5475), so the following (new) code supports a single
+ * name for the Emulators keyword, allowing these drivers to work until we
+ * remove PPD and driver support entirely in a future version of CUPS.
+ */
+
+ ppd->num_emulations = 1;
+ ppd->emulations = calloc(1, sizeof(ppd_emul_t));
+
+ strlcpy(ppd->emulations[0].name, string, sizeof(ppd->emulations[0].name));
+ }
else if (!strcmp(keyword, "JobPatchFile"))
{
/*
}
else if (!strcmp(keyword, "PaperDimension"))
{
+ if (!_cups_strcasecmp(name, "custom") || !_cups_strncasecmp(name, "custom.", 7))
+ {
+ pg->ppd_status = PPD_ILLEGAL_OPTION_KEYWORD;
+
+ goto error;
+ }
+
if ((size = ppdPageSize(ppd, name)) == NULL)
size = ppd_add_size(ppd, name);
}
else if (!strcmp(keyword, "ImageableArea"))
{
+ if (!_cups_strcasecmp(name, "custom") || !_cups_strncasecmp(name, "custom.", 7))
+ {
+ pg->ppd_status = PPD_ILLEGAL_OPTION_KEYWORD;
+
+ goto error;
+ }
+
if ((size = ppdPageSize(ppd, name)) == NULL)
size = ppd_add_size(ppd, name);
{
DEBUG_printf(("2_ppdOpen: group=%p, subgroup=%p", group, subgroup));
+ if (!_cups_strcasecmp(name, "custom") || !_cups_strncasecmp(name, "custom.", 7))
+ {
+ pg->ppd_status = PPD_ILLEGAL_OPTION_KEYWORD;
+
+ goto error;
+ }
+
if (!strcmp(keyword, "PageSize"))
{
/*
if ((cparam = calloc(1, sizeof(ppd_cparam_t))) == NULL)
return (NULL);
+ cparam->type = PPD_CUSTOM_UNKNOWN;
strlcpy(cparam->name, param, sizeof(cparam->name));
strlcpy(cparam->text, text[0] ? text : param, sizeof(cparam->text));
/**** New in CUPS 1.2/macOS 10.5 ****/
typedef enum ppd_cptype_e /**** Custom Parameter Type @since CUPS 1.2/macOS 10.5@ ****/
{
+ PPD_CUSTOM_UNKNOWN = -1, /* Unknown type (error) */
PPD_CUSTOM_CURVE, /* Curve value for f(x) = x^value */
PPD_CUSTOM_INT, /* Integer number value */
PPD_CUSTOM_INVCURVE, /* Curve value for f(x) = x^(1/value) */
int value; /* Integer value */
+ if (*buffer >= bufend)
+ return (0);
+
if (length > sizeof(int))
{
(*buffer) += length;
unsigned length; /* Length */
+ if (*buffer >= bufend)
+ return (0);
+
length = **buffer;
(*buffer) ++;
int number; /* OID number */
+ if (*buffer >= bufend)
+ return (0);
+
valend = *buffer + length;
oidptr = oid;
oidend = oid + oidsize - 1;
int value; /* Value */
+ if (*buffer >= bufend)
+ return (0);
+
value = 0;
- while ((**buffer & 128) && *buffer < bufend)
+ while (*buffer < bufend && (**buffer & 128))
{
value = (value << 7) | (**buffer & 127);
(*buffer) ++;
char *string, /* I - String buffer */
size_t strsize) /* I - String buffer size */
{
+ if (*buffer >= bufend)
+ return (NULL);
+
if (length > (unsigned)(bufend - *buffer))
length = (unsigned)(bufend - *buffer);
int type; /* Type */
+ if (*buffer >= bufend)
+ return (0);
+
type = **buffer;
(*buffer) ++;
/*
* snprintf functions for CUPS.
*
- * Copyright 2007-2013 by Apple Inc.
- * Copyright 1997-2007 by Easy Software Products.
+ * Copyright © 2007-2019 by Apple Inc.
+ * Copyright © 1997-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Apple Inc. and are protected by Federal copyright
break;
sprintf(temp, tformat, va_arg(ap, double));
- templen = strlen(temp):
+ templen = strlen(temp);
bytes += (int)templen;
break;
sprintf(temp, tformat, va_arg(ap, int));
- templen = strlen(temp):
+ templen = strlen(temp);
bytes += (int)templen;
break;
sprintf(temp, tformat, va_arg(ap, void *));
- templen = strlen(temp):
+ templen = strlen(temp);
bytes += (int)templen;
/*
* CUPS destination API test program for CUPS.
*
- * Copyright 2012-2018 by Apple Inc.
+ * Copyright © 2012-2018 by Apple Inc.
*
- * These coded instructions, statements, and computer programs are the
- * property of Apple Inc. 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, see the license at "http://www.cups.org/".
- *
- * This file is subject to the Apple OS-Developed Software exception.
+ * Licensed under Apache License v2.0. See the file "LICENSE" for more information.
*/
/*
main(int argc, /* I - Number of command-line arguments */
char *argv[]) /* I - Command-line arguments */
{
+ int i; /* Looping var */
http_t *http; /* Connection to destination */
cups_dest_t *dest = NULL; /* Destination */
cups_dinfo_t *dinfo; /* Destination info */
+ unsigned dflags = CUPS_DEST_FLAGS_NONE;
+ /* Destination flags */
if (argc < 2)
- usage(NULL);
+ return (0);
- if (!strcmp(argv[1], "--enum"))
+ if (!strcmp(argv[1], "--get"))
+ {
+ cups_dest_t *dests; /* Destinations */
+ int num_dests = cupsGetDests2(CUPS_HTTP_DEFAULT, &dests);
+ /* Number of destinations */
+
+ for (i = 0; i < num_dests; i ++)
+ enum_cb(NULL, 0, dests + i);
+
+ cupsFreeDests(num_dests, dests);
+ return (0);
+ }
+ else if (!strcmp(argv[1], "--enum"))
{
- int i; /* Looping var */
cups_ptype_t type = 0, /* Printer type filter */
mask = 0; /* Printer type mask */
return (0);
}
- else if (!strncmp(argv[1], "ipp://", 6) || !strncmp(argv[1], "ipps://", 7))
- dest = cupsGetDestWithURI(NULL, argv[1]);
- else if (!strcmp(argv[1], "default"))
+
+ i = 1;
+ if (!strcmp(argv[i], "--device"))
+ {
+ dflags = CUPS_DEST_FLAGS_DEVICE;
+ i ++;
+ }
+
+ if (!strncmp(argv[i], "ipp://", 6) || !strncmp(argv[i], "ipps://", 7))
+ dest = cupsGetDestWithURI(NULL, argv[i]);
+ else if (!strcmp(argv[i], "default"))
{
dest = cupsGetNamedDest(CUPS_HTTP_DEFAULT, NULL, NULL);
if (dest && dest->instance)
printf("default is \"%s/%s\".\n", dest->name, dest->instance);
- else
+ else if (dest)
printf("default is \"%s\".\n", dest->name);
+ else
+ puts("no default destination.");
}
else
- dest = cupsGetNamedDest(CUPS_HTTP_DEFAULT, argv[1], NULL);
+ dest = cupsGetNamedDest(CUPS_HTTP_DEFAULT, argv[i], NULL);
if (!dest)
{
- printf("testdest: Unable to get destination \"%s\": %s\n", argv[1], cupsLastErrorString());
+ printf("testdest: Unable to get destination \"%s\": %s\n", argv[i], cupsLastErrorString());
return (1);
}
- if ((http = cupsConnectDest(dest, CUPS_DEST_FLAGS_NONE, 30000, NULL, NULL, 0, NULL, NULL)) == NULL)
+ i ++;
+
+ if ((http = cupsConnectDest(dest, dflags, 30000, NULL, NULL, 0, NULL, NULL)) == NULL)
{
- printf("testdest: Unable to connect to destination \"%s\": %s\n", argv[1], cupsLastErrorString());
+ printf("testdest: Unable to connect to destination \"%s\": %s\n", dest->name, cupsLastErrorString());
return (1);
}
if ((dinfo = cupsCopyDestInfo(http, dest)) == NULL)
{
- printf("testdest: Unable to get information for destination \"%s\": %s\n", argv[1], cupsLastErrorString());
+ printf("testdest: Unable to get information for destination \"%s\": %s\n", dest->name, cupsLastErrorString());
return (1);
}
- if (argc == 2 || (!strcmp(argv[2], "supported") && argc < 6))
+ if (i == argc || !strcmp(argv[i], "supported"))
{
- if (argc > 3)
- show_supported(http, dest, dinfo, argv[3], argv[4]);
+ i ++;
+
+ if ((i + 1) < argc)
+ show_supported(http, dest, dinfo, argv[i], argv[i + 1]);
else if (argc > 2)
- show_supported(http, dest, dinfo, argv[3], NULL);
+ show_supported(http, dest, dinfo, argv[i], NULL);
else
show_supported(http, dest, dinfo, NULL, NULL);
}
- else if (!strcmp(argv[2], "conflicts") && argc > 3)
+ else if (!strcmp(argv[i], "conflicts") && (i + 1) < argc)
{
- int i, /* Looping var */
- num_options = 0;/* Number of options */
+ int num_options = 0;/* Number of options */
cups_option_t *options = NULL;/* Options */
- for (i = 3; i < argc; i ++)
+ for (i ++; i < argc; i ++)
num_options = cupsParseOptions(argv[i], num_options, &options);
show_conflicts(http, dest, dinfo, num_options, options);
}
- else if (!strcmp(argv[2], "default") && argc == 4)
+ else if (!strcmp(argv[i], "default") && (i + 1) < argc)
{
- show_default(http, dest, dinfo, argv[3]);
+ show_default(http, dest, dinfo, argv[i + 1]);
}
- else if (!strcmp(argv[2], "localize") && argc < 6)
+ else if (!strcmp(argv[i], "localize"))
{
- if (argc > 3)
- localize(http, dest, dinfo, argv[3], argv[4]);
+ i ++;
+ if ((i + 1) < argc)
+ localize(http, dest, dinfo, argv[i], argv[i + 1]);
else if (argc > 2)
- localize(http, dest, dinfo, argv[3], NULL);
+ localize(http, dest, dinfo, argv[i], NULL);
else
localize(http, dest, dinfo, NULL, NULL);
}
- else if (!strcmp(argv[2], "media"))
+ else if (!strcmp(argv[i], "media"))
{
- int i; /* Looping var */
const char *name = NULL; /* Media name, if any */
unsigned flags = CUPS_MEDIA_FLAGS_DEFAULT;
/* Media selection flags */
- for (i = 3; i < argc; i ++)
+ for (i ++; i < argc; i ++)
{
if (!strcmp(argv[i], "borderless"))
flags = CUPS_MEDIA_FLAGS_BORDERLESS;
show_media(http, dest, dinfo, flags, name);
}
- else if (!strcmp(argv[2], "print") && argc > 3)
+ else if (!strcmp(argv[i], "print") && (i + 1) < argc)
{
- int i, /* Looping var */
- num_options = 0;/* Number of options */
+ int num_options = 0;/* Number of options */
cups_option_t *options = NULL;/* Options */
+ const char *filename = argv[i + 1];
- for (i = 4; i < argc; i ++)
+ for (i += 2; i < argc; i ++)
num_options = cupsParseOptions(argv[i], num_options, &options);
- print_file(http, dest, dinfo, argv[3], num_options, options);
+ print_file(http, dest, dinfo, filename, num_options, options);
}
else
- usage(argv[2]);
+ usage(argv[i]);
return (0);
}
(void)flags;
if (dest->instance)
- printf("%s%s/%s:\n", (flags & CUPS_DEST_FLAGS_REMOVED) ? "REMOVE " : "", dest->name, dest->instance);
+ printf("%s%s/%s%s:\n", (flags & CUPS_DEST_FLAGS_REMOVED) ? "REMOVE " : "", dest->name, dest->instance, dest->is_default ? " (Default)" : "");
else
- printf("%s%s:\n", (flags & CUPS_DEST_FLAGS_REMOVED) ? "REMOVE " : "", dest->name);
+ printf("%s%s%s:\n", (flags & CUPS_DEST_FLAGS_REMOVED) ? "REMOVE " : "", dest->name, dest->is_default ? " (Default)" : "");
for (i = 0; i < dest->num_options; i ++)
printf(" %s=\"%s\"\n", dest->options[i].name, dest->options[i].value);
+ puts("");
+
return (1);
}
printf("testdest: Unknown option \"%s\".\n", arg);
puts("Usage:");
- puts(" ./testdest name [operation ...]");
- puts(" ./testdest ipp://... [operation ...]");
- puts(" ./testdest ipps://... [operation ...]");
+ puts(" ./testdest [--device] name [operation ...]");
+ puts(" ./testdest [--device] ipp://... [operation ...]");
+ puts(" ./testdest [--device] ipps://... [operation ...]");
+ puts(" ./testdest --get");
puts(" ./testdest --enum [grayscale] [color] [duplex] [staple] [small]\n"
" [medium] [large]");
puts("");
/*
* IPP test program for CUPS.
*
- * Copyright 2007-2017 by Apple Inc.
+ * Copyright 2007-2019 by Apple Inc.
* Copyright 1997-2005 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
0x01, 0x01, /* IPP version */
0x00, 0x02, /* Print-Job operation */
0x00, 0x00, 0x00, 0x01,
- /* Request ID */
+ /* Request ID */
IPP_TAG_OPERATION,
IPP_TAG_JOB, /* job group tag */
IPP_TAG_BEGIN_COLLECTION,
- /* begCollection tag */
+ /* begCollection tag */
0x00, 0x09, /* Name length + name */
'm', 'e', 'd', 'i', 'a', '-', 'c', 'o', 'l',
0x00, 0x00, /* No value */
0x00, 0x0a, /* Value length + value */
'm', 'e', 'd', 'i', 'a', '-', 's', 'i', 'z', 'e',
IPP_TAG_BEGIN_COLLECTION,
- /* begCollection tag */
+ /* begCollection tag */
0x00, 0x00, /* Name length + name */
0x00, 0x00, /* No value */
IPP_TAG_MEMBERNAME,
- /* memberAttrName tag */
+ /* memberAttrName tag */
0x00, 0x00, /* No name */
0x00, 0x0b, /* Value length + value */
'x', '-', 'd', 'i', 'm', 'e', 'n', 's', 'i', 'o', 'n',
0x00, 0x04, /* Value length + value */
0x00, 0x00, 0x54, 0x56,
IPP_TAG_MEMBERNAME,
- /* memberAttrName tag */
+ /* memberAttrName tag */
0x00, 0x00, /* No name */
0x00, 0x0b, /* Value length + value */
'y', '-', 'd', 'i', 'm', 'e', 'n', 's', 'i', 'o', 'n',
0x00, 0x04, /* Value length + value */
0x00, 0x00, 0x6d, 0x24,
IPP_TAG_END_COLLECTION,
- /* endCollection tag */
+ /* endCollection tag */
0x00, 0x00, /* No name */
0x00, 0x00, /* No value */
IPP_TAG_MEMBERNAME, /* memberAttrName tag */
0x00, 0x05, /* Value length + value */
'p', 'l', 'a', 'i', 'n',
IPP_TAG_END_COLLECTION,
- /* endCollection tag */
+ /* endCollection tag */
0x00, 0x00, /* No name */
0x00, 0x00, /* No value */
IPP_TAG_BEGIN_COLLECTION,
- /* begCollection tag */
+ /* begCollection tag */
0x00, 0x00, /* No name */
0x00, 0x00, /* No value */
IPP_TAG_MEMBERNAME, /* memberAttrName tag */
0x00, 0x0a, /* Value length + value */
'm', 'e', 'd', 'i', 'a', '-', 's', 'i', 'z', 'e',
IPP_TAG_BEGIN_COLLECTION,
- /* begCollection tag */
+ /* begCollection tag */
0x00, 0x00, /* Name length + name */
0x00, 0x00, /* No value */
IPP_TAG_MEMBERNAME,
- /* memberAttrName tag */
+ /* memberAttrName tag */
0x00, 0x00, /* No name */
0x00, 0x0b, /* Value length + value */
'x', '-', 'd', 'i', 'm', 'e', 'n', 's', 'i', 'o', 'n',
0x00, 0x04, /* Value length + value */
0x00, 0x00, 0x52, 0x08,
IPP_TAG_MEMBERNAME,
- /* memberAttrName tag */
+ /* memberAttrName tag */
0x00, 0x00, /* No name */
0x00, 0x0b, /* Value length + value */
'y', '-', 'd', 'i', 'm', 'e', 'n', 's', 'i', 'o', 'n',
0x00, 0x04, /* Value length + value */
0x00, 0x00, 0x74, 0x04,
IPP_TAG_END_COLLECTION,
- /* endCollection tag */
+ /* endCollection tag */
0x00, 0x00, /* No name */
0x00, 0x00, /* No value */
IPP_TAG_MEMBERNAME, /* memberAttrName tag */
0x00, 0x06, /* Value length + value */
'g', 'l', 'o', 's', 's', 'y',
IPP_TAG_END_COLLECTION,
- /* endCollection tag */
+ /* endCollection tag */
+ 0x00, 0x00, /* No name */
+ 0x00, 0x00, /* No value */
+
+ IPP_TAG_END /* end tag */
+ };
+static ipp_uchar_t bad_collection[] = /* Collection buffer (bad encoding) */
+ {
+ 0x01, 0x01, /* IPP version */
+ 0x00, 0x02, /* Print-Job operation */
+ 0x00, 0x00, 0x00, 0x01,
+ /* Request ID */
+
+ IPP_TAG_OPERATION,
+
+ IPP_TAG_CHARSET,
+ 0x00, 0x12, /* Name length + name */
+ 'a','t','t','r','i','b','u','t','e','s','-',
+ 'c','h','a','r','s','e','t',
+ 0x00, 0x05, /* Value length + value */
+ 'u','t','f','-','8',
+
+ IPP_TAG_LANGUAGE,
+ 0x00, 0x1b, /* Name length + name */
+ 'a','t','t','r','i','b','u','t','e','s','-',
+ 'n','a','t','u','r','a','l','-','l','a','n',
+ 'g','u','a','g','e',
+ 0x00, 0x02, /* Value length + value */
+ 'e','n',
+
+ IPP_TAG_URI,
+ 0x00, 0x0b, /* Name length + name */
+ 'p','r','i','n','t','e','r','-','u','r','i',
+ 0x00, 0x1c, /* Value length + value */
+ 'i','p','p',':','/','/','l','o','c','a','l',
+ 'h','o','s','t','/','p','r','i','n','t','e',
+ 'r','s','/','f','o','o',
+
+ IPP_TAG_JOB, /* job group tag */
+
+ IPP_TAG_BEGIN_COLLECTION,
+ /* begCollection tag */
+ 0x00, 0x09, /* Name length + name */
+ 'm', 'e', 'd', 'i', 'a', '-', 'c', 'o', 'l',
+ 0x00, 0x00, /* No value */
+ IPP_TAG_BEGIN_COLLECTION,
+ /* begCollection tag */
+ 0x00, 0x0a, /* Name length + name */
+ 'm', 'e', 'd', 'i', 'a', '-', 's', 'i', 'z', 'e',
+ 0x00, 0x00, /* No value */
+ IPP_TAG_INTEGER, /* integer tag */
+ 0x00, 0x0b, /* Name length + name */
+ 'x', '-', 'd', 'i', 'm', 'e', 'n', 's', 'i', 'o', 'n',
+ 0x00, 0x04, /* Value length + value */
+ 0x00, 0x00, 0x54, 0x56,
+ IPP_TAG_INTEGER, /* integer tag */
+ 0x00, 0x0b, /* Name length + name */
+ 'y', '-', 'd', 'i', 'm', 'e', 'n', 's', 'i', 'o', 'n',
+ 0x00, 0x04, /* Value length + value */
+ 0x00, 0x00, 0x6d, 0x24,
+ IPP_TAG_END_COLLECTION,
+ /* endCollection tag */
+ 0x00, 0x00, /* No name */
+ 0x00, 0x00, /* No value */
+ IPP_TAG_END_COLLECTION,
+ /* endCollection tag */
0x00, 0x00, /* No name */
0x00, 0x00, /* No value */
0x01, 0x01, /* IPP version */
0x00, 0x02, /* Print-Job operation */
0x00, 0x00, 0x00, 0x01,
- /* Request ID */
+ /* Request ID */
IPP_TAG_OPERATION,
ippDelete(request);
/*
+ * Read the bad collection data and confirm we get an error...
+ */
+
+ fputs("Read Bad Collection from Memory: ", stdout);
+
+ request = ippNew();
+ data.rpos = 0;
+ data.wused = sizeof(bad_collection);
+ data.wsize = sizeof(bad_collection);
+ data.wbuffer = bad_collection;
+
+ while ((state = ippReadIO(&data, (ipp_iocb_t)read_cb, 1, NULL, request)) != IPP_STATE_DATA)
+ if (state == IPP_STATE_ERROR)
+ break;
+
+ if (state != IPP_STATE_ERROR)
+ puts("FAIL (read successful)");
+ else
+ puts("PASS");
+
+ /*
* Read the mixed data and confirm we converted everything to rangeOfInteger
* values...
*/
- printf("Read Mixed integer/rangeOfInteger from Memory: ");
+ fputs("Read Mixed integer/rangeOfInteger from Memory: ", stdout);
request = ippNew();
data.rpos = 0;
{
switch (cparam->type)
{
+ case PPD_CUSTOM_UNKNOWN :
+ printf(" %s(%s): PPD_CUSTOM_UNKNOWN (error)\n", cparam->name, cparam->text);
+ break;
+
case PPD_CUSTOM_CURVE :
printf(" %s(%s): PPD_CUSTOM_CURVE (%g to %g)\n",
cparam->name, cparam->text,
float: left;
margin-left: 0.5%;
margin-right: 0;
+ padding-bottom: 40px;
width: 33%;
}
.row .thirds:first-child {
float: left;
margin-left: 0.5%;
margin-right: 0;
+ padding-bottom: 40px;
width: 49.75%;
}
.row .halves:first-child {
</div>
</div>
</div>
- <div class="footer">CUPS und das CUPS Logo sind Warenzeichen der <a href="http://www.apple.com">Apple Inc.</a> Copyright © 2007-2018 Apple Inc. Alle Rechte vorbehalten.</div>
+ <div class="footer">CUPS und das CUPS Logo sind Warenzeichen der <a href="http://www.apple.com">Apple Inc.</a> Copyright © 2007-2019 Apple Inc. Alle Rechte vorbehalten.</div>
</body>
</html>
</div>
</div>
</div>
- <div class="footer">CUPS y el logo de CUPS son marcas registradas de <a href="http://www.apple.com">Apple Inc.</a> Derechos de autor © 2007-2018 Apple Inc. Todos los derechos reservados.</div>
+ <div class="footer">CUPS y el logo de CUPS son marcas registradas de <a href="http://www.apple.com">Apple Inc.</a> Derechos de autor © 2007-2019 Apple Inc. Todos los derechos reservados.</div>
</body>
</html>
The default is "1048576" (1MB).
<dt><a name="MultipleOperationTimeout"></a><b>MultipleOperationTimeout </b><i>seconds</i>
<dd style="margin-left: 5.0em">Specifies the maximum amount of time to allow between files in a multiple file print job.
-The default is "300" (5 minutes).
+The default is "900" (15 minutes).
<dt><a name="Policy"></a><b><Policy </b><i>name</i><b>> </b>... <b></Policy></b>
<dd style="margin-left: 5.0em">Specifies access control for the named policy.
<dt><a name="Port"></a><b>Port </b><i>number</i>
The default is "No".
<dt><a name="Timeout"></a><b>Timeout </b><i>seconds</i>
<dd style="margin-left: 5.0em">Specifies the HTTP request timeout.
-The default is "300" (5 minutes).
+The default is "900" (15 minutes).
<dt><a name="WebInterface"></a><b>WebInterface yes</b>
<dd style="margin-left: 5.0em"><dt><b>WebInterface no</b>
<dd style="margin-left: 5.0em">Specifies whether the web interface is enabled.
<a href="man-subscriptions.conf.html?TOPIC=Man+Pages"><b>subscriptions.conf</b>(5),</a>
CUPS Online Help (<a href="http://localhost:631/help">http://localhost:631/help</a>)
<h2 class="title"><a name="COPYRIGHT">Copyright</a></h2>
-Copyright © 2007-2018 by Apple Inc.
+Copyright © 2007-2019 by Apple Inc.
</body>
</html>
<dd style="margin-left: 5.0em">Makes the <b>EXPECT</b> conditions apply only if the specified variable is not defined.
<dt><b>IN-GROUP </b><i>tag</i>
<dd style="margin-left: 5.0em">Requires the <b>EXPECT</b> attribute to be in the specified group tag.
-<dt><b>OF-TYPE </b><i>tag[,tag,...]</i>
+<dt><b>OF-TYPE </b><i>tag[|tag,...]</i>
<dd style="margin-left: 5.0em">Requires the <b>EXPECT</b> attribute to use one of the specified value tag(s).
<dt><b>REPEAT-LIMIT </b><i>number</i>
<dd style="margin-left: 5.0em"><br>
PWG Internet Printing Protocol Workgroup (<a href="http://www.pwg.org/ipp)">http://www.pwg.org/ipp)</a>,
RFC 8011 (<a href="http://tools.ietf.org/html/rfc8011">http://tools.ietf.org/html/rfc8011</a>)
<h2 class="title"><a name="COPYRIGHT">Copyright</a></h2>
-Copyright © 2007-2017 by Apple Inc.
+Copyright © 2007-2019 by Apple Inc.
</body>
</html>
</div>
</div>
</div>
- <div class="footer">CUPS and the CUPS logo are trademarks of <a href="http://www.apple.com">Apple Inc.</a> Copyright © 2007-2018 Apple Inc. All rights reserved.</div>
+ <div class="footer">CUPS and the CUPS logo are trademarks of <a href="http://www.apple.com">Apple Inc.</a> Copyright © 2007-2019 Apple Inc. All rights reserved.</div>
</body>
</html>
</div>
</div>
</div>
- <div class="footer">CUPS and the CUPS logo are trademarks of <a href="http://www.apple.com">Apple Inc.</a> Copyright © 2007-2018 Apple Inc. All rights reserved.</div>
+ <div class="footer">CUPS and the CUPS logo are trademarks of <a href="http://www.apple.com">Apple Inc.</a> Copyright © 2007-2019 Apple Inc. All rights reserved.</div>
</body>
</html>
</div>
</div>
</div>
- <div class="footer">CUPS e o logo do CUPS são marcas registradas da <a href="http://www.apple.com">Apple Inc.</a> Copyright © 2007-2018 Apple Inc. Todos os direitos reservados.</div>
+ <div class="footer">CUPS e o logo do CUPS são marcas registradas da <a href="http://www.apple.com">Apple Inc.</a> Copyright © 2007-2019 Apple Inc. Todos os direitos reservados.</div>
</body>
</html>
</div>
</div>
</div>
- <div class="footer">CUPS а также логотип CUPS являются зарегистрированными торговыми марками <A HREF="http://www.apple.com">Apple Inc.</A> Авторские права на CUPS принадлежат (2007-2018) компании Apple Inc. Все права защищены.</div>
+ <div class="footer">CUPS а также логотип CUPS являются зарегистрированными торговыми марками <A HREF="http://www.apple.com">Apple Inc.</A> Авторские права на CUPS принадлежат (2007-2019) компании Apple Inc. Все права защищены.</div>
</body>
</html>
/*
* Label printer filter for CUPS.
*
- * Copyright 2007-2016 by Apple Inc.
+ * Copyright 2007-2019 by Apple Inc.
* Copyright 2001-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
*/
puts("^XZ");
+
+ /*
+ * Delete the label image...
+ */
+
+ puts("^XA");
puts("^IDR:CUPS.GRF^FS");
+ puts("^XZ");
/*
* Cut the label as needed...
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: CUPS 2.2.9\n"
+"Project-Id-Version: CUPS 2.2.11\n"
"Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n"
-"POT-Creation-Date: 2018-09-28 11:22-0400\n"
+"POT-Creation-Date: 2019-05-15 10:31-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgid " ( expressions ) Group expressions."
msgstr ""
-#: systemv/cupsctl.c:203
+#: systemv/cupsctl.c:244
msgid " --[no-]debug-logging Turn debug logging on/off."
msgstr ""
-#: systemv/cupsctl.c:205
+#: systemv/cupsctl.c:246
msgid " --[no-]remote-admin Turn remote administration on/off."
msgstr ""
-#: systemv/cupsctl.c:207
+#: systemv/cupsctl.c:248
msgid " --[no-]remote-any Allow/prevent access from the Internet."
msgstr ""
-#: systemv/cupsctl.c:209
+#: systemv/cupsctl.c:250
msgid " --[no-]share-printers Turn printer sharing on/off."
msgstr ""
-#: systemv/cupsctl.c:211
+#: systemv/cupsctl.c:252
msgid " --[no-]user-cancel-any Allow/prevent users to cancel any job."
msgstr ""
msgid " -D name=value Set named variable to value."
msgstr ""
-#: systemv/cupsaddsmb.c:277 systemv/cupsctl.c:198
+#: systemv/cupsaddsmb.c:277 systemv/cupsctl.c:239
msgid " -E Encrypt the connection."
msgstr ""
msgid " -E Test with encryption using HTTP Upgrade to TLS."
msgstr ""
-#: scheduler/main.c:2106
+#: scheduler/main.c:2100
msgid " -F Run in the foreground but detach from console."
msgstr ""
msgid " -T seconds Set the receive/send timeout in seconds."
msgstr ""
-#: scheduler/cupsfilter.c:1484 systemv/cupsaddsmb.c:280 systemv/cupsctl.c:199
+#: scheduler/cupsfilter.c:1484 systemv/cupsaddsmb.c:280 systemv/cupsctl.c:240
msgid " -U username Specify username."
msgstr ""
msgid " -c cups-files.conf Set cups-files.conf file to use."
msgstr ""
-#: scheduler/main.c:2104
+#: scheduler/main.c:2098
msgid " -c cupsd.conf Set cupsd.conf file to use."
msgstr ""
msgid " -e Use every filter from the PPD file."
msgstr ""
-#: scheduler/main.c:2105
+#: scheduler/main.c:2099
msgid " -f Run in the foreground."
msgstr ""
msgid " -f filename Set default request filename."
msgstr ""
-#: scheduler/main.c:2107
+#: scheduler/main.c:2101
msgid " -h Show this usage message."
msgstr ""
msgid " -h regex Match hostname to regular expression."
msgstr ""
-#: systemv/cupsaddsmb.c:282 systemv/cupsctl.c:200
+#: systemv/cupsaddsmb.c:282 systemv/cupsctl.c:241
msgid " -h server[:port] Specify server address."
msgstr ""
msgid " -l Produce plain text output."
msgstr ""
-#: scheduler/main.c:2109
+#: scheduler/main.c:2103
msgid " -l Run cupsd on demand."
msgstr ""
msgid " -o filename.drv Set driver information file (otherwise ppdi.drv)."
msgstr ""
-#: ppdc/ppdmerge.cxx:362
+#: ppdc/ppdmerge.cxx:360
msgid " -o filename.ppd[.gz] Set output file (otherwise stdout)."
msgstr ""
msgid " -s Print service name if true."
msgstr ""
-#: scheduler/main.c:2111
+#: scheduler/main.c:2105
msgid " -s cups-files.conf Set cups-files.conf file to use."
msgstr ""
msgid " -t Test PPDs instead of generating them."
msgstr ""
-#: scheduler/main.c:2112
+#: scheduler/main.c:2106
msgid " -t Test the configuration file."
msgstr ""
msgid " PASS"
msgstr ""
-#: cups/ipp.c:5145
+#: cups/ipp.c:5129
#, c-format
msgid "\"%s\": Bad URI value \"%s\" - %s (RFC 8011 section 5.1.6)."
msgstr ""
-#: cups/ipp.c:5152
+#: cups/ipp.c:5136
#, c-format
msgid "\"%s\": Bad URI value \"%s\" - bad length %d (RFC 8011 section 5.1.6)."
msgstr ""
-#: cups/ipp.c:4763
+#: cups/ipp.c:4759
#, c-format
msgid "\"%s\": Bad attribute name - bad length %d (RFC 8011 section 5.1.4)."
msgstr ""
-#: cups/ipp.c:4755
+#: cups/ipp.c:4751
#, c-format
msgid "\"%s\": Bad attribute name - invalid character (RFC 8011 section 5.1.4)."
msgstr ""
-#: cups/ipp.c:4781
+#: cups/ipp.c:4777
#, c-format
msgid "\"%s\": Bad boolen value %d (RFC 8011 section 5.1.21)."
msgstr ""
-#: cups/ipp.c:5204
+#: cups/ipp.c:5188
#, c-format
msgid "\"%s\": Bad charset value \"%s\" - bad characters (RFC 8011 section 5.1.8)."
msgstr ""
-#: cups/ipp.c:5213
+#: cups/ipp.c:5197
#, c-format
msgid "\"%s\": Bad charset value \"%s\" - bad length %d (RFC 8011 section 5.1.8)."
msgstr ""
-#: cups/ipp.c:4881
+#: cups/ipp.c:4877
#, c-format
msgid "\"%s\": Bad dateTime UTC hours %u (RFC 8011 section 5.1.15)."
msgstr ""
-#: cups/ipp.c:4889
+#: cups/ipp.c:4885
#, c-format
msgid "\"%s\": Bad dateTime UTC minutes %u (RFC 8011 section 5.1.15)."
msgstr ""
-#: cups/ipp.c:4873
+#: cups/ipp.c:4869
#, c-format
msgid "\"%s\": Bad dateTime UTC sign '%c' (RFC 8011 section 5.1.15)."
msgstr ""
-#: cups/ipp.c:4833
+#: cups/ipp.c:4829
#, c-format
msgid "\"%s\": Bad dateTime day %u (RFC 8011 section 5.1.15)."
msgstr ""
-#: cups/ipp.c:4865
+#: cups/ipp.c:4861
#, c-format
msgid "\"%s\": Bad dateTime deciseconds %u (RFC 8011 section 5.1.15)."
msgstr ""
-#: cups/ipp.c:4841
+#: cups/ipp.c:4837
#, c-format
msgid "\"%s\": Bad dateTime hours %u (RFC 8011 section 5.1.15)."
msgstr ""
-#: cups/ipp.c:4849
+#: cups/ipp.c:4845
#, c-format
msgid "\"%s\": Bad dateTime minutes %u (RFC 8011 section 5.1.15)."
msgstr ""
-#: cups/ipp.c:4825
+#: cups/ipp.c:4821
#, c-format
msgid "\"%s\": Bad dateTime month %u (RFC 8011 section 5.1.15)."
msgstr ""
-#: cups/ipp.c:4857
+#: cups/ipp.c:4853
#, c-format
msgid "\"%s\": Bad dateTime seconds %u (RFC 8011 section 5.1.15)."
msgstr ""
-#: cups/ipp.c:4795
+#: cups/ipp.c:4791
#, c-format
msgid "\"%s\": Bad enum value %d - out of range (RFC 8011 section 5.1.5)."
msgstr ""
-#: cups/ipp.c:5124
+#: cups/ipp.c:5108
#, c-format
msgid "\"%s\": Bad keyword value \"%s\" - bad length %d (RFC 8011 section 5.1.4)."
msgstr ""
-#: cups/ipp.c:5115
+#: cups/ipp.c:5099
#, c-format
msgid "\"%s\": Bad keyword value \"%s\" - invalid character (RFC 8011 section 5.1.4)."
msgstr ""
-#: cups/ipp.c:5313
+#: cups/ipp.c:5297
#, c-format
msgid "\"%s\": Bad mimeMediaType value \"%s\" - bad characters (RFC 8011 section 5.1.10)."
msgstr ""
-#: cups/ipp.c:5323
+#: cups/ipp.c:5307
#, c-format
msgid "\"%s\": Bad mimeMediaType value \"%s\" - bad length %d (RFC 8011 section 5.1.10)."
msgstr ""
-#: cups/ipp.c:5087
+#: cups/ipp.c:5071
#, c-format
msgid "\"%s\": Bad name value \"%s\" - bad UTF-8 sequence (RFC 8011 section 5.1.3)."
msgstr ""
-#: cups/ipp.c:5082
+#: cups/ipp.c:5066
#, c-format
msgid "\"%s\": Bad name value \"%s\" - bad control character (PWG 5100.14 section 8.1)."
msgstr ""
-#: cups/ipp.c:5095
+#: cups/ipp.c:5079
#, c-format
msgid "\"%s\": Bad name value \"%s\" - bad length %d (RFC 8011 section 5.1.3)."
msgstr ""
-#: cups/ipp.c:5259
+#: cups/ipp.c:5243
#, c-format
msgid "\"%s\": Bad naturalLanguage value \"%s\" - bad characters (RFC 8011 section 5.1.9)."
msgstr ""
-#: cups/ipp.c:5269
+#: cups/ipp.c:5253
#, c-format
msgid "\"%s\": Bad naturalLanguage value \"%s\" - bad length %d (RFC 8011 section 5.1.9)."
msgstr ""
-#: cups/ipp.c:4809
+#: cups/ipp.c:4805
#, c-format
msgid "\"%s\": Bad octetString value - bad length %d (RFC 8011 section 5.1.20)."
msgstr ""
-#: cups/ipp.c:4952
+#: cups/ipp.c:4948
#, c-format
msgid "\"%s\": Bad rangeOfInteger value %d-%d - lower greater than upper (RFC 8011 section 5.1.14)."
msgstr ""
-#: cups/ipp.c:4933
+#: cups/ipp.c:4929
#, c-format
msgid "\"%s\": Bad resolution value %dx%d%s - bad units value (RFC 8011 section 5.1.16)."
msgstr ""
-#: cups/ipp.c:4902
+#: cups/ipp.c:4898
#, c-format
msgid "\"%s\": Bad resolution value %dx%d%s - cross feed resolution must be positive (RFC 8011 section 5.1.16)."
msgstr ""
-#: cups/ipp.c:4917
+#: cups/ipp.c:4913
#, c-format
msgid "\"%s\": Bad resolution value %dx%d%s - feed resolution must be positive (RFC 8011 section 5.1.16)."
msgstr ""
-#: cups/ipp.c:5022
+#: cups/ipp.c:5012
#, c-format
msgid "\"%s\": Bad text value \"%s\" - bad UTF-8 sequence (RFC 8011 section 5.1.2)."
msgstr ""
-#: cups/ipp.c:5017
+#: cups/ipp.c:5007
#, c-format
msgid "\"%s\": Bad text value \"%s\" - bad control character (PWG 5100.14 section 8.3)."
msgstr ""
-#: cups/ipp.c:5030
+#: cups/ipp.c:5020
#, c-format
msgid "\"%s\": Bad text value \"%s\" - bad length %d (RFC 8011 section 5.1.2)."
msgstr ""
-#: cups/ipp.c:5175
+#: cups/ipp.c:5159
#, c-format
msgid "\"%s\": Bad uriScheme value \"%s\" - bad characters (RFC 8011 section 5.1.7)."
msgstr ""
-#: cups/ipp.c:5184
+#: cups/ipp.c:5168
#, c-format
msgid "\"%s\": Bad uriScheme value \"%s\" - bad length %d (RFC 8011 section 5.1.7)."
msgstr ""
-#: scheduler/ipp.c:377
+#: scheduler/ipp.c:375
msgid "\"requesting-user-name\" attribute in wrong group."
msgstr ""
-#: scheduler/ipp.c:383 scheduler/ipp.c:398
+#: scheduler/ipp.c:381 scheduler/ipp.c:396
msgid "\"requesting-user-name\" attribute with wrong syntax."
msgstr ""
msgid "%s accepting requests since %s"
msgstr ""
-#: scheduler/ipp.c:10349
+#: scheduler/ipp.c:10352
#, c-format
msgid "%s cannot be changed."
msgstr ""
msgid "%s not accepting requests since %s -"
msgstr ""
-#: scheduler/ipp.c:620
+#: scheduler/ipp.c:618
#, c-format
msgid "%s not supported."
msgstr ""
#. TRANSLATORS: Message is "subject: error"
#: cups/langprintf.c:75 scheduler/cupsfilter.c:724 systemv/lpadmin.c:801
#: systemv/lpadmin.c:852 systemv/lpadmin.c:902 systemv/lpadmin.c:958
-#: systemv/lpadmin.c:1056 systemv/lpadmin.c:1108 systemv/lpadmin.c:1150
-#: systemv/lpadmin.c:1164 systemv/lpadmin.c:1614
+#: systemv/lpadmin.c:1056 systemv/lpadmin.c:1108 systemv/lpadmin.c:1151
+#: systemv/lpadmin.c:1165 systemv/lpadmin.c:1615
#, c-format
msgid "%s: %s"
msgstr ""
msgid "%s: %s failed: %s"
msgstr ""
-#: systemv/lpadmin.c:1225
+#: systemv/lpadmin.c:1224
#, c-format
msgid "%s: Bad printer URI \"%s\"."
msgstr ""
msgid "%s: Sorry, no encryption support."
msgstr ""
-#: systemv/lpadmin.c:1232
+#: systemv/lpadmin.c:1231
#, c-format
msgid "%s: Unable to connect to \"%s:%d\": %s"
msgstr ""
msgid "%s: Unable to contact server."
msgstr ""
-#: systemv/lpadmin.c:1262
+#: systemv/lpadmin.c:1261
#, c-format
msgid "%s: Unable to create PPD file: %s"
msgstr ""
msgid "%s: Unable to open \"%s\": %s"
msgstr ""
-#: ppdc/ppdmerge.cxx:88
+#: ppdc/ppdmerge.cxx:89
#, c-format
msgid "%s: Unable to open %s: %s"
msgstr ""
-#: scheduler/cupsfilter.c:672 ppdc/ppdmerge.cxx:104
+#: scheduler/cupsfilter.c:672 ppdc/ppdmerge.cxx:105
#, c-format
msgid "%s: Unable to open PPD file: %s on line %d."
msgstr ""
-#: systemv/lpadmin.c:1247
+#: systemv/lpadmin.c:1246
#, c-format
msgid "%s: Unable to query printer: %s"
msgstr ""
msgid "%s: Unable to read MIME database from \"%s\" or \"%s\"."
msgstr ""
-#: systemv/lpadmin.c:1216
+#: systemv/lpadmin.c:1215
#, c-format
msgid "%s: Unable to resolve \"%s\"."
msgstr ""
msgid "2 inches/sec."
msgstr ""
-#: cups/ppd-cache.c:3012
+#: cups/ppd-cache.c:2996
msgid "2-Hole Punch (Landscape)"
msgstr ""
-#: cups/ppd-cache.c:3013
+#: cups/ppd-cache.c:2997
msgid "2-Hole Punch (Portrait)"
msgstr ""
-#: cups/ppd-cache.c:3011
+#: cups/ppd-cache.c:2995
msgid "2-Hole Punch (Reverse Landscape)"
msgstr ""
-#: cups/ppd-cache.c:3010
+#: cups/ppd-cache.c:2994
msgid "2-Hole Punch (Reverse Portrait)"
msgstr ""
-#: cups/ppd-cache.c:3735 ppdc/sample.c:262
+#: cups/ppd-cache.c:3737 ppdc/sample.c:262
msgid "2-Sided Printing"
msgstr ""
msgid "3 x 5"
msgstr ""
-#: cups/ppd-cache.c:3023
+#: cups/ppd-cache.c:3007
msgid "3-Hole Punch (Landscape)"
msgstr ""
-#: cups/ppd-cache.c:3021
+#: cups/ppd-cache.c:3005
msgid "3-Hole Punch (Portrait)"
msgstr ""
-#: cups/ppd-cache.c:3020
+#: cups/ppd-cache.c:3004
msgid "3-Hole Punch (Reverse Landscape)"
msgstr ""
-#: cups/ppd-cache.c:3022
+#: cups/ppd-cache.c:3006
msgid "3-Hole Punch (Reverse Portrait)"
msgstr ""
msgid "4 inches/sec."
msgstr ""
-#: cups/ppd-cache.c:3017
+#: cups/ppd-cache.c:3001
msgid "4-Hole Punch (Landscape)"
msgstr ""
-#: cups/ppd-cache.c:3015
+#: cups/ppd-cache.c:2999
msgid "4-Hole Punch (Portrait)"
msgstr ""
-#: cups/ppd-cache.c:3014
+#: cups/ppd-cache.c:2998
msgid "4-Hole Punch (Reverse Landscape)"
msgstr ""
-#: cups/ppd-cache.c:3016
+#: cups/ppd-cache.c:3000
msgid "4-Hole Punch (Reverse Portrait)"
msgstr ""
msgid "A Samba username is required to export printer drivers"
msgstr ""
-#: scheduler/ipp.c:2298
+#: scheduler/ipp.c:2296
#, c-format
msgid "A class named \"%s\" already exists."
msgstr ""
-#: scheduler/ipp.c:902
+#: scheduler/ipp.c:900
#, c-format
msgid "A printer named \"%s\" already exists."
msgstr ""
msgid "Accepted"
msgstr ""
-#: cups/ppd-cache.c:2993
+#: cups/ppd-cache.c:2977
msgid "Accordian Fold"
msgstr ""
msgid "Administration"
msgstr ""
-#: cups/ppd-cache.c:3483
+#: cups/ppd-cache.c:3485
msgid "Advanced Photo Paper"
msgstr ""
-#: cups/ppd-cache.c:3396
+#: cups/ppd-cache.c:3398
msgid "Alternate"
msgstr ""
-#: cups/ppd-cache.c:3404
+#: cups/ppd-cache.c:3406
msgid "Alternate Roll"
msgstr ""
-#: cups/ppd-cache.c:3477
+#: cups/ppd-cache.c:3479
msgid "Aluminum"
msgstr ""
msgid "Applicator"
msgstr ""
-#: cups/ppd-cache.c:3511
+#: cups/ppd-cache.c:3513
msgid "Archival Envelope"
msgstr ""
-#: cups/ppd-cache.c:3523
+#: cups/ppd-cache.c:3525
msgid "Archival Fabric"
msgstr ""
-#: cups/ppd-cache.c:3600
+#: cups/ppd-cache.c:3602
msgid "Archival Paper"
msgstr ""
-#: cups/ppd-cache.c:3572
+#: cups/ppd-cache.c:3574
msgid "Archival Photo Paper"
msgstr ""
-#: scheduler/ipp.c:997
+#: scheduler/ipp.c:995
#, c-format
msgid "Attempt to set %s printer-state to bad value %d."
msgstr ""
-#: scheduler/ipp.c:5455 scheduler/ipp.c:5481
+#: scheduler/ipp.c:5458 scheduler/ipp.c:5484
#, c-format
msgid "Attribute \"%s\" is in the wrong group."
msgstr ""
-#: scheduler/ipp.c:5457 scheduler/ipp.c:5483
+#: scheduler/ipp.c:5460 scheduler/ipp.c:5486
#, c-format
msgid "Attribute \"%s\" is the wrong value type."
msgstr ""
-#: scheduler/ipp.c:239
+#: scheduler/ipp.c:237
#, c-format
msgid "Attribute groups are out of order (%x < %x)."
msgstr ""
-#: cups/ppd-cache.c:3394 cups/ppd-cache.c:3478 cups/ppd-cache.c:3801
+#: cups/ppd-cache.c:3396 cups/ppd-cache.c:3480 cups/ppd-cache.c:3803
msgid "Automatic"
msgstr ""
msgid "B9"
msgstr ""
-#: cups/ppd-cache.c:3479
+#: cups/ppd-cache.c:3481
msgid "Back Print Film"
msgstr ""
-#: scheduler/ipp.c:10358
+#: scheduler/ipp.c:10361
#, c-format
msgid "Bad '%s' value."
msgstr ""
-#: scheduler/ipp.c:11306
+#: scheduler/ipp.c:11309
#, c-format
msgid "Bad 'document-format' value \"%s\"."
msgstr ""
-#: cups/ppd.c:337
+#: cups/ppd.c:318
msgid "Bad CloseUI/JCLCloseUI"
msgstr ""
msgid "Bad NULL dests pointer"
msgstr ""
-#: cups/ppd.c:320
+#: cups/ppd.c:301
msgid "Bad OpenGroup"
msgstr ""
-#: cups/ppd.c:322
+#: cups/ppd.c:303
msgid "Bad OpenUI/JCLOpenUI"
msgstr ""
-#: cups/ppd.c:324
+#: cups/ppd.c:305
msgid "Bad OrderDependency"
msgstr ""
-#: cups/ppd-cache.c:458 cups/ppd-cache.c:505 cups/ppd-cache.c:543
-#: cups/ppd-cache.c:549 cups/ppd-cache.c:565 cups/ppd-cache.c:581
-#: cups/ppd-cache.c:590 cups/ppd-cache.c:598 cups/ppd-cache.c:615
-#: cups/ppd-cache.c:623 cups/ppd-cache.c:638 cups/ppd-cache.c:646
-#: cups/ppd-cache.c:667 cups/ppd-cache.c:679 cups/ppd-cache.c:694
-#: cups/ppd-cache.c:706 cups/ppd-cache.c:728 cups/ppd-cache.c:736
-#: cups/ppd-cache.c:754 cups/ppd-cache.c:762 cups/ppd-cache.c:777
-#: cups/ppd-cache.c:785 cups/ppd-cache.c:803 cups/ppd-cache.c:811
-#: cups/ppd-cache.c:838 cups/ppd-cache.c:908 cups/ppd-cache.c:916
-#: cups/ppd-cache.c:924
+#: cups/ppd-cache.c:458 cups/ppd-cache.c:505 cups/ppd-cache.c:539
+#: cups/ppd-cache.c:545 cups/ppd-cache.c:561 cups/ppd-cache.c:577
+#: cups/ppd-cache.c:586 cups/ppd-cache.c:594 cups/ppd-cache.c:611
+#: cups/ppd-cache.c:619 cups/ppd-cache.c:634 cups/ppd-cache.c:642
+#: cups/ppd-cache.c:663 cups/ppd-cache.c:675 cups/ppd-cache.c:690
+#: cups/ppd-cache.c:702 cups/ppd-cache.c:724 cups/ppd-cache.c:732
+#: cups/ppd-cache.c:750 cups/ppd-cache.c:758 cups/ppd-cache.c:773
+#: cups/ppd-cache.c:781 cups/ppd-cache.c:799 cups/ppd-cache.c:807
+#: cups/ppd-cache.c:834 cups/ppd-cache.c:902 cups/ppd-cache.c:910
+#: cups/ppd-cache.c:918
msgid "Bad PPD cache file."
msgstr ""
-#: scheduler/ipp.c:2673
+#: scheduler/ipp.c:2670
msgid "Bad PPD file."
msgstr ""
msgid "Bad SNMP version number"
msgstr ""
-#: cups/ppd.c:325
+#: cups/ppd.c:306
msgid "Bad UIConstraints"
msgstr ""
msgid "Bad arguments to function"
msgstr ""
-#: scheduler/ipp.c:1382
+#: scheduler/ipp.c:1380
#, c-format
msgid "Bad copies value %d."
msgstr ""
-#: cups/ppd.c:333
+#: cups/ppd.c:314
msgid "Bad custom parameter"
msgstr ""
-#: cups/http-support.c:1750 scheduler/ipp.c:2378
+#: cups/http-support.c:1750 scheduler/ipp.c:2376
#, c-format
msgid "Bad device-uri \"%s\"."
msgstr ""
-#: scheduler/ipp.c:2423
+#: scheduler/ipp.c:2421
#, c-format
msgid "Bad device-uri scheme \"%s\"."
msgstr ""
-#: scheduler/ipp.c:8504 scheduler/ipp.c:8522 scheduler/ipp.c:9750
+#: scheduler/ipp.c:8507 scheduler/ipp.c:8525 scheduler/ipp.c:9753
#, c-format
msgid "Bad document-format \"%s\"."
msgstr ""
-#: scheduler/ipp.c:9768
+#: scheduler/ipp.c:9771
#, c-format
msgid "Bad document-format-default \"%s\"."
msgstr ""
msgid "Bad hostname/address in URI"
msgstr ""
-#: scheduler/ipp.c:1564
+#: scheduler/ipp.c:1562
#, c-format
msgid "Bad job-name value: %s"
msgstr ""
-#: scheduler/ipp.c:1550
+#: scheduler/ipp.c:1548
msgid "Bad job-name value: Wrong type or count."
msgstr ""
-#: scheduler/ipp.c:10396
+#: scheduler/ipp.c:10399
msgid "Bad job-priority value."
msgstr ""
-#: scheduler/ipp.c:1412
+#: scheduler/ipp.c:1410
#, c-format
msgid "Bad job-sheets value \"%s\"."
msgstr ""
-#: scheduler/ipp.c:1396
+#: scheduler/ipp.c:1394
msgid "Bad job-sheets value type."
msgstr ""
-#: scheduler/ipp.c:10426
+#: scheduler/ipp.c:10429
msgid "Bad job-state value."
msgstr ""
-#: scheduler/ipp.c:3014 scheduler/ipp.c:3476 scheduler/ipp.c:6286
-#: scheduler/ipp.c:6433 scheduler/ipp.c:7930 scheduler/ipp.c:8202
-#: scheduler/ipp.c:9068 scheduler/ipp.c:9292 scheduler/ipp.c:9644
-#: scheduler/ipp.c:10257
+#: scheduler/ipp.c:3011 scheduler/ipp.c:3473 scheduler/ipp.c:6289
+#: scheduler/ipp.c:6436 scheduler/ipp.c:7933 scheduler/ipp.c:8205
+#: scheduler/ipp.c:9071 scheduler/ipp.c:9295 scheduler/ipp.c:9647
+#: scheduler/ipp.c:10260
#, c-format
msgid "Bad job-uri \"%s\"."
msgstr ""
-#: scheduler/ipp.c:2064 scheduler/ipp.c:5806
+#: scheduler/ipp.c:2062 scheduler/ipp.c:5809
#, c-format
msgid "Bad notify-pull-method \"%s\"."
msgstr ""
-#: scheduler/ipp.c:2028 scheduler/ipp.c:5770
+#: scheduler/ipp.c:2026 scheduler/ipp.c:5773
#, c-format
msgid "Bad notify-recipient-uri \"%s\"."
msgstr ""
-#: scheduler/ipp.c:5881
+#: scheduler/ipp.c:5884
#, c-format
msgid "Bad notify-user-data \"%s\"."
msgstr ""
-#: scheduler/ipp.c:1428
+#: scheduler/ipp.c:1426
#, c-format
msgid "Bad number-up value %d."
msgstr ""
msgid "Bad option + choice on line %d."
msgstr ""
-#: scheduler/ipp.c:1445
+#: scheduler/ipp.c:1443
#, c-format
msgid "Bad page-ranges values %d-%d."
msgstr ""
msgid "Bad port number in URI"
msgstr ""
-#: scheduler/ipp.c:2469
+#: scheduler/ipp.c:2467
#, c-format
msgid "Bad port-monitor \"%s\"."
msgstr ""
-#: scheduler/ipp.c:2550
+#: scheduler/ipp.c:2548
#, c-format
msgid "Bad printer-state value %d."
msgstr ""
msgid "Bad printer-uri."
msgstr ""
-#: scheduler/ipp.c:213
+#: scheduler/ipp.c:211
#, c-format
msgid "Bad request ID %d."
msgstr ""
-#: scheduler/ipp.c:203
+#: scheduler/ipp.c:201
#, c-format
msgid "Bad request version number %d.%d."
msgstr ""
msgid "Bad username in URI"
msgstr ""
-#: cups/ppd.c:335
+#: cups/ppd.c:316
msgid "Bad value string"
msgstr ""
msgid "Bad/empty URI"
msgstr ""
-#: cups/ppd-cache.c:2978
+#: cups/ppd-cache.c:2962
msgid "Bale"
msgstr ""
msgid "Banners"
msgstr ""
-#: cups/ppd-cache.c:2979
+#: cups/ppd-cache.c:2963
msgid "Bind"
msgstr ""
-#: cups/ppd-cache.c:2983
+#: cups/ppd-cache.c:2967
msgid "Bind (Landscape)"
msgstr ""
-#: cups/ppd-cache.c:2981
+#: cups/ppd-cache.c:2965
msgid "Bind (Portrait)"
msgstr ""
-#: cups/ppd-cache.c:2980
+#: cups/ppd-cache.c:2964
msgid "Bind (Reverse Landscape)"
msgstr ""
-#: cups/ppd-cache.c:2982
+#: cups/ppd-cache.c:2966
msgid "Bind (Reverse Portrait)"
msgstr ""
-#: cups/ppd-cache.c:3512
+#: cups/ppd-cache.c:3514
msgid "Bond Envelope"
msgstr ""
msgid "Bond Paper"
msgstr ""
-#: cups/ppd-cache.c:4061
+#: cups/ppd-cache.c:4063
msgid "Booklet"
msgstr ""
-#: cups/ppd-cache.c:2984
+#: cups/ppd-cache.c:2968
msgid "Booklet Maker"
msgstr ""
msgid "Boolean expected for waiteof option \"%s\"."
msgstr ""
-#: cups/ppd-cache.c:3407
+#: cups/ppd-cache.c:3409
msgid "Bottom"
msgstr ""
-#: cups/ppd-cache.c:3802
+#: cups/ppd-cache.c:3804
msgid "Bottom Tray"
msgstr ""
-#: filter/pstops.c:2032
+#: filter/pstops.c:2031
msgid "Buffer overflow detected, aborting."
msgstr ""
-#: cups/ppd-cache.c:3482
+#: cups/ppd-cache.c:3484
msgid "CD"
msgstr ""
msgid "Cancel RSS Subscription"
msgstr ""
-#: backend/ipp.c:2271
+#: backend/ipp.c:2272
msgid "Canceling print job."
msgstr ""
-#: scheduler/ipp.c:973 scheduler/ipp.c:2525
+#: scheduler/ipp.c:971 scheduler/ipp.c:2523
msgid "Cannot change printer-is-shared for remote queues."
msgstr ""
-#: scheduler/ipp.c:2512
+#: scheduler/ipp.c:2510
msgid "Cannot share a remote Kerberized printer."
msgstr ""
-#: cups/ppd-cache.c:3480
+#: cups/ppd-cache.c:3482
msgid "Cardboard"
msgstr ""
-#: cups/ppd-cache.c:3481
+#: cups/ppd-cache.c:3483
msgid "Cardstock"
msgstr ""
msgid "Cassette"
msgstr ""
-#: cups/ppd-cache.c:3411
+#: cups/ppd-cache.c:3413
msgid "Center"
msgstr ""
-#: cups/ppd-cache.c:3803
+#: cups/ppd-cache.c:3805
msgid "Center Tray"
msgstr ""
msgid "Change Settings"
msgstr ""
-#: scheduler/ipp.c:2076 scheduler/ipp.c:5818
+#: scheduler/ipp.c:2074 scheduler/ipp.c:5821
#, c-format
msgid "Character set \"%s\" not supported."
msgstr ""
msgid "Clean Print Heads"
msgstr ""
-#: scheduler/ipp.c:3928
+#: scheduler/ipp.c:3925
msgid "Close-Job doesn't support the job-uri attribute."
msgstr ""
-#: cups/ppd-cache.c:2985
+#: cups/ppd-cache.c:2969
msgid "Coat"
msgstr ""
-#: cups/ppd-cache.c:3513
+#: cups/ppd-cache.c:3515
msgid "Coated Envelope"
msgstr ""
-#: cups/ppd-cache.c:3601
+#: cups/ppd-cache.c:3603
msgid "Coated Paper"
msgstr ""
-#: cups/ppd-cache.c:3694 ppdc/sample.c:276
+#: cups/ppd-cache.c:3696 ppdc/sample.c:276
msgid "Color"
msgstr ""
-#: cups/ppd-cache.c:3668 cups/ppd-cache.c:3680 cups/ppd-cache.c:3692
-#: cups/ppd-cache.c:3703 ppdc/sample.c:274
+#: cups/ppd-cache.c:3670 cups/ppd-cache.c:3682 cups/ppd-cache.c:3694
+#: cups/ppd-cache.c:3705 ppdc/sample.c:274
msgid "Color Mode"
msgstr ""
-#: cups/ppd-cache.c:3548
+#: cups/ppd-cache.c:3550
msgid "Colored Labels"
msgstr ""
msgid "Continue"
msgstr ""
-#: cups/ppd-cache.c:3496 ppdc/sample.c:360
+#: cups/ppd-cache.c:3498 ppdc/sample.c:360
msgid "Continuous"
msgstr ""
-#: cups/ppd-cache.c:3497
+#: cups/ppd-cache.c:3499
msgid "Continuous Long"
msgstr ""
-#: cups/ppd-cache.c:3498
+#: cups/ppd-cache.c:3500
msgid "Continuous Short"
msgstr ""
msgid "Copying print data."
msgstr ""
-#: cups/ppd-cache.c:3514
+#: cups/ppd-cache.c:3516
msgid "Cotton Envelope"
msgstr ""
-#: cups/ppd-cache.c:3602
+#: cups/ppd-cache.c:3604
msgid "Cotton Paper"
msgstr ""
-#: cups/ppd-cache.c:2986
+#: cups/ppd-cache.c:2970
msgid "Cover"
msgstr ""
msgid "Created"
msgstr ""
-#: cups/tls-darwin.c:730 cups/tls-gnutls.c:562
+#: cups/tls-darwin.c:730 cups/tls-gnutls.c:587
msgid "Credentials do not validate against site CA certificate."
msgstr ""
-#: cups/tls-darwin.c:741 cups/tls-gnutls.c:579
+#: cups/tls-darwin.c:741 cups/tls-gnutls.c:604
msgid "Credentials have expired."
msgstr ""
-#: cups/ppd.c:1154 cups/ppd.c:1194 cups/ppd.c:1439 cups/ppd.c:1542
+#: cups/ppd.c:1133 cups/ppd.c:1173 cups/ppd.c:1382 cups/ppd.c:1485
msgid "Custom"
msgstr ""
msgid "Cut"
msgstr ""
-#: cups/ppd-cache.c:3042
+#: cups/ppd-cache.c:3026
msgid "Cut Media"
msgstr ""
msgid "Cutter"
msgstr ""
-#: cups/ppd-cache.c:3507
+#: cups/ppd-cache.c:3509
msgid "DVD"
msgstr ""
msgid "Data file sent successfully."
msgstr ""
-#: cups/ppd-cache.c:3705
+#: cups/ppd-cache.c:3707
msgid "Deep Color"
msgstr ""
msgid "DeskJet Series"
msgstr ""
-#: scheduler/ipp.c:1311
+#: scheduler/ipp.c:1309
#, c-format
msgid "Destination \"%s\" is not accepting jobs."
msgstr ""
msgid "Direct Thermal Media"
msgstr ""
-#: cups/file.c:256
+#: cups/file.c:289
#, c-format
msgid "Directory \"%s\" contains a relative path."
msgstr ""
-#: cups/file.c:228
+#: cups/file.c:261
#, c-format
msgid "Directory \"%s\" has insecure permissions (0%o/uid=%d/gid=%d)."
msgstr ""
-#: cups/file.c:245
+#: cups/file.c:278
#, c-format
msgid "Directory \"%s\" is a file."
msgstr ""
-#: cups/file.c:216
+#: cups/file.c:249
#, c-format
msgid "Directory \"%s\" not available: %s"
msgstr ""
-#: cups/file.c:201
+#: cups/file.c:234
#, c-format
msgid "Directory \"%s\" permissions OK (0%o/uid=%d/gid=%d)."
msgstr ""
msgid "Disabled"
msgstr ""
-#: cups/ppd-cache.c:3400
+#: cups/ppd-cache.c:3402
msgid "Disc"
msgstr ""
-#: scheduler/ipp.c:6335
+#: scheduler/ipp.c:6338
#, c-format
msgid "Document #%d does not exist in job #%d."
msgstr ""
-#: cups/ppd-cache.c:2994
+#: cups/ppd-cache.c:2978
msgid "Double Gate Fold"
msgstr ""
-#: cups/ppd-cache.c:3035
+#: cups/ppd-cache.c:3019
msgid "Double Staple (Landscape)"
msgstr ""
-#: cups/ppd-cache.c:3033
+#: cups/ppd-cache.c:3017
msgid "Double Staple (Portrait)"
msgstr ""
-#: cups/ppd-cache.c:3032
+#: cups/ppd-cache.c:3016
msgid "Double Staple (Reverse Landscape)"
msgstr ""
-#: cups/ppd-cache.c:3034
+#: cups/ppd-cache.c:3018
msgid "Double Staple (Reverse Portrait)"
msgstr ""
-#: cups/ppd-cache.c:3505
+#: cups/ppd-cache.c:3507
msgid "Double Wall Cardboard"
msgstr ""
-#: cups/ppd-cache.c:4119 cups/ppd-cache.c:4121 cups/ppd-cache.c:4184
-#: cups/ppd-cache.c:4221
+#: cups/ppd-cache.c:4121 cups/ppd-cache.c:4123 cups/ppd-cache.c:4186
+#: cups/ppd-cache.c:4223
msgid "Draft"
msgstr ""
-#: cups/ppd-cache.c:3506
+#: cups/ppd-cache.c:3508
msgid "Dry Film"
msgstr ""
msgid "Edit Configuration File"
msgstr ""
-#: cups/ppd-cache.c:3508
+#: cups/ppd-cache.c:3510
msgid "Embossing Foil"
msgstr ""
msgid "Empty PPD file."
msgstr ""
-#: cups/http.c:4641
+#: cups/http.c:4688
msgid "Encryption is not supported."
msgstr ""
-#: cups/ppd-cache.c:3509
+#: cups/ppd-cache.c:3511
msgid "End Board"
msgstr ""
msgid "Ending Banner"
msgstr ""
-#: cups/ppd-cache.c:2995
+#: cups/ppd-cache.c:2979
msgid "Engineering Z Fold"
msgstr ""
msgid "Enter your username and password or the root username and password to access this page. If you are using Kerberos authentication, make sure you have a valid Kerberos ticket."
msgstr ""
-#: cups/ppd-cache.c:3399 cups/ppd-cache.c:3510
+#: cups/ppd-cache.c:3401 cups/ppd-cache.c:3512
msgid "Envelope"
msgstr ""
msgid "Every Label"
msgstr ""
-#: cups/ppd-cache.c:3488
+#: cups/ppd-cache.c:3490
msgid "Everyday Glossy Photo Paper"
msgstr ""
-#: cups/ppd-cache.c:3489
+#: cups/ppd-cache.c:3491
msgid "Everyday Matte Paper"
msgstr ""
msgid "Expressions:"
msgstr ""
-#: cups/ppd-cache.c:3490
+#: cups/ppd-cache.c:3492
msgid "Extra Heavyweight Paper"
msgstr ""
msgid "FAIL"
msgstr ""
-#: cups/ppd-cache.c:3522
+#: cups/ppd-cache.c:3524
msgid "Fabric"
msgstr ""
-#: cups/ppd-cache.c:3804
+#: cups/ppd-cache.c:3806
msgid "Face Down"
msgstr ""
-#: cups/ppd-cache.c:3805
+#: cups/ppd-cache.c:3807
msgid "Face Up"
msgstr ""
-#: cups/ppd-cache.c:3670
+#: cups/ppd-cache.c:3672
msgid "Fast Grayscale"
msgstr ""
-#: cups/file.c:260
+#: cups/file.c:293
#, c-format
msgid "File \"%s\" contains a relative path."
msgstr ""
-#: cups/file.c:235
+#: cups/file.c:268
#, c-format
msgid "File \"%s\" has insecure permissions (0%o/uid=%d/gid=%d)."
msgstr ""
-#: cups/file.c:249
+#: cups/file.c:282
#, c-format
msgid "File \"%s\" is a directory."
msgstr ""
-#: cups/file.c:221
+#: cups/file.c:254
#, c-format
msgid "File \"%s\" not available: %s"
msgstr ""
-#: cups/file.c:207
+#: cups/file.c:240
#, c-format
msgid "File \"%s\" permissions OK (0%o/uid=%d/gid=%d)."
msgstr ""
msgid "File Folder"
msgstr ""
-#: scheduler/ipp.c:2399
+#: scheduler/ipp.c:2397
#, c-format
msgid "File device URIs have been disabled. To enable, see the FileDevice directive in \"%s/cups-files.conf\"."
msgstr ""
-#: cups/ppd-cache.c:3529
+#: cups/ppd-cache.c:3531
msgid "Film"
msgstr ""
-#: cups/ppd-cache.c:3515
+#: cups/ppd-cache.c:3517
msgid "Fine Envelope"
msgstr ""
msgid "Finished page %d."
msgstr ""
-#: cups/ppd-cache.c:3530
+#: cups/ppd-cache.c:3532
msgid "Flexo Base"
msgstr ""
-#: cups/ppd-cache.c:3531
+#: cups/ppd-cache.c:3533
msgid "Flexo Photo Polymer"
msgstr ""
-#: cups/ppd-cache.c:3532
+#: cups/ppd-cache.c:3534
msgid "Flute"
msgstr ""
-#: cups/ppd-cache.c:3533
+#: cups/ppd-cache.c:3535
msgid "Foil"
msgstr ""
-#: cups/ppd-cache.c:2992 cups/ppd-cache.c:3970
+#: cups/ppd-cache.c:2976 cups/ppd-cache.c:3972
msgid "Fold"
msgstr ""
msgid "Found"
msgstr ""
-#: cups/ppd-cache.c:3534
+#: cups/ppd-cache.c:3536
msgid "Full Cut Tabs"
msgstr ""
-#: cups/ppd-cache.c:2996
+#: cups/ppd-cache.c:2980
msgid "Gate Fold"
msgstr ""
-#: cups/ppd.c:785 cups/ppd.c:1343
+#: cups/ppd.c:764 cups/ppd.c:1286
msgid "General"
msgstr ""
msgid "Get-Response-PDU uses indefinite length"
msgstr ""
-#: cups/ppd-cache.c:3535
+#: cups/ppd-cache.c:3537
msgid "Glass"
msgstr ""
-#: cups/ppd-cache.c:3536
+#: cups/ppd-cache.c:3538
msgid "Glass Colored"
msgstr ""
-#: cups/ppd-cache.c:3537
+#: cups/ppd-cache.c:3539
msgid "Glass Opaque"
msgstr ""
-#: cups/ppd-cache.c:3538
+#: cups/ppd-cache.c:3540
msgid "Glass Surfaced"
msgstr ""
-#: cups/ppd-cache.c:3539
+#: cups/ppd-cache.c:3541
msgid "Glass Textured"
msgstr ""
-#: cups/ppd-cache.c:3484
+#: cups/ppd-cache.c:3486
msgid "Glossy Brochure Paper"
msgstr ""
-#: cups/ppd-cache.c:3524
+#: cups/ppd-cache.c:3526
msgid "Glossy Fabric"
msgstr ""
-#: cups/ppd-cache.c:3549
+#: cups/ppd-cache.c:3551
msgid "Glossy Labels"
msgstr ""
-#: cups/ppd-cache.c:3500
+#: cups/ppd-cache.c:3502
msgid "Glossy Optical Disc"
msgstr ""
msgid "Glossy Paper"
msgstr ""
-#: cups/ppd-cache.c:3574
+#: cups/ppd-cache.c:3576
msgid "Glossy Photo Paper"
msgstr ""
-#: scheduler/ipp.c:2992 scheduler/ipp.c:3402 scheduler/ipp.c:3940
-#: scheduler/ipp.c:6264 scheduler/ipp.c:6411 scheduler/ipp.c:7907
-#: scheduler/ipp.c:9046 scheduler/ipp.c:9270 scheduler/ipp.c:9622
-#: scheduler/ipp.c:10235
+#: scheduler/ipp.c:2989 scheduler/ipp.c:3399 scheduler/ipp.c:3937
+#: scheduler/ipp.c:6267 scheduler/ipp.c:6414 scheduler/ipp.c:7910
+#: scheduler/ipp.c:9049 scheduler/ipp.c:9273 scheduler/ipp.c:9625
+#: scheduler/ipp.c:10238
msgid "Got a printer-uri attribute but no job-id."
msgstr ""
-#: cups/ppd-cache.c:3540
+#: cups/ppd-cache.c:3542
msgid "Gravure Cylinder"
msgstr ""
-#: cups/ppd-cache.c:3682 ppdc/sample.c:275
+#: cups/ppd-cache.c:3684 ppdc/sample.c:275
msgid "Grayscale"
msgstr ""
msgid "HP"
msgstr ""
-#: cups/ppd-cache.c:3402
+#: cups/ppd-cache.c:3404
msgid "Hagaki"
msgstr ""
-#: cups/ppd-cache.c:2997
+#: cups/ppd-cache.c:2981
msgid "Half Fold"
msgstr ""
-#: cups/ppd-cache.c:2998
+#: cups/ppd-cache.c:2982
msgid "Half Z Fold"
msgstr ""
msgid "Hash buffer too small."
msgstr ""
-#: cups/ppd-cache.c:3605
+#: cups/ppd-cache.c:3607
msgid "Heavyweight Coated Paper"
msgstr ""
-#: cups/ppd-cache.c:3516
+#: cups/ppd-cache.c:3518
msgid "Heavyweight Envelope"
msgstr ""
-#: cups/ppd-cache.c:3604
+#: cups/ppd-cache.c:3606
msgid "Heavyweight Paper"
msgstr ""
msgid "Help file not in index."
msgstr ""
-#: cups/ppd-cache.c:4126 cups/ppd-cache.c:4195 cups/ppd-cache.c:4226
+#: cups/ppd-cache.c:4128 cups/ppd-cache.c:4197 cups/ppd-cache.c:4228
msgid "High"
msgstr ""
-#: cups/ppd-cache.c:3525
+#: cups/ppd-cache.c:3527
msgid "High Gloss Fabric"
msgstr ""
-#: cups/ppd-cache.c:3550
+#: cups/ppd-cache.c:3552
msgid "High Gloss Labels"
msgstr ""
-#: cups/ppd-cache.c:3501
+#: cups/ppd-cache.c:3503
msgid "High Gloss Optical Disc"
msgstr ""
-#: cups/ppd-cache.c:3575
+#: cups/ppd-cache.c:3577
msgid "High Gloss Photo Paper"
msgstr ""
-#: cups/ipp.c:3097 cups/ipp.c:3124 cups/ipp.c:3147
+#: cups/ipp.c:3093 cups/ipp.c:3120 cups/ipp.c:3143
msgid "IPP 1setOf attribute with incompatible value tags."
msgstr ""
-#: cups/ipp.c:3060
+#: cups/ipp.c:3056
msgid "IPP attribute has no name."
msgstr ""
-#: cups/ipp.c:6932
+#: cups/ipp.c:6916
msgid "IPP attribute is not a member of the message."
msgstr ""
-#: cups/ipp.c:3510
+#: cups/ipp.c:3506
msgid "IPP begCollection value not 0 bytes."
msgstr ""
-#: cups/ipp.c:3288
+#: cups/ipp.c:3284
msgid "IPP boolean value not 1 byte."
msgstr ""
-#: cups/ipp.c:3353
+#: cups/ipp.c:3349
msgid "IPP date value not 11 bytes."
msgstr ""
-#: cups/ipp.c:3531
+#: cups/ipp.c:3527
msgid "IPP endCollection value not 0 bytes."
msgstr ""
-#: cups/ipp.c:3263
+#: cups/ipp.c:3259
msgid "IPP enum value not 4 bytes."
msgstr ""
-#: cups/ipp.c:2983
+#: cups/ipp.c:2979
msgid "IPP extension tag larger than 0x7FFFFFFF."
msgstr ""
-#: cups/ipp.c:3260
+#: cups/ipp.c:3256
msgid "IPP integer value not 4 bytes."
msgstr ""
-#: cups/ipp.c:3463
+#: cups/ipp.c:3459
msgid "IPP language length overflows value."
msgstr ""
-#: cups/ipp.c:3472
+#: cups/ipp.c:3468
msgid "IPP language length too large."
msgstr ""
-#: cups/ipp.c:3174
+#: cups/ipp.c:3170
msgid "IPP member name is not empty."
msgstr ""
-#: cups/ipp.c:3557
+#: cups/ipp.c:3553
msgid "IPP memberName value is empty."
msgstr ""
-#: cups/ipp.c:3549
+#: cups/ipp.c:3545
msgid "IPP memberName with no attribute."
msgstr ""
-#: cups/ipp.c:3043
+#: cups/ipp.c:3039
msgid "IPP name larger than 32767 bytes."
msgstr ""
-#: cups/ipp.c:3430
+#: cups/ipp.c:3426
msgid "IPP nameWithLanguage value less than minimum 4 bytes."
msgstr ""
-#: cups/ipp.c:3587
+#: cups/ipp.c:3583
msgid "IPP octetString length too large."
msgstr ""
-#: cups/ipp.c:3398
+#: cups/ipp.c:3394
msgid "IPP rangeOfInteger value not 8 bytes."
msgstr ""
-#: cups/ipp.c:3371
+#: cups/ipp.c:3367
msgid "IPP resolution value not 9 bytes."
msgstr ""
-#: cups/ipp.c:3490
+#: cups/ipp.c:3486
msgid "IPP string length overflows value."
msgstr ""
-#: cups/ipp.c:3426
+#: cups/ipp.c:3422
msgid "IPP textWithLanguage value less than minimum 4 bytes."
msgstr ""
-#: cups/ipp.c:3246
+#: cups/ipp.c:3242
msgid "IPP value larger than 32767 bytes."
msgstr ""
msgid "ISOLatin1"
msgstr ""
-#: cups/ppd.c:328
+#: cups/ppd.c:309
msgid "Illegal control character"
msgstr ""
-#: cups/ppd.c:329
+#: cups/ppd.c:310
msgid "Illegal main keyword string"
msgstr ""
-#: cups/ppd.c:330
+#: cups/ppd.c:311
msgid "Illegal option keyword string"
msgstr ""
-#: cups/ppd.c:331
+#: cups/ppd.c:312
msgid "Illegal translation string"
msgstr ""
-#: cups/ppd.c:332
+#: cups/ppd.c:313
msgid "Illegal whitespace character"
msgstr ""
-#: cups/ppd-cache.c:3541
+#: cups/ppd-cache.c:3543
msgid "Image Setter Paper"
msgstr ""
-#: cups/ppd-cache.c:3542
+#: cups/ppd-cache.c:3544
msgid "Imaging Cylinder"
msgstr ""
-#: cups/ppd-cache.c:3517
+#: cups/ppd-cache.c:3519
msgid "Inkjet Envelope"
msgstr ""
-#: cups/ppd-cache.c:3551
+#: cups/ppd-cache.c:3553
msgid "Inkjet Labels"
msgstr ""
-#: cups/ppd-cache.c:3606
+#: cups/ppd-cache.c:3608
msgid "Inkjet Paper"
msgstr ""
msgid "Internal Server Error"
msgstr ""
-#: cups/ppd.c:319
+#: cups/ppd.c:300
msgid "Internal error"
msgstr ""
msgid "Internet Printing Protocol"
msgstr ""
-#: cups/ipp.c:3003
+#: cups/ipp.c:2999
msgid "Invalid group tag."
msgstr ""
-#: cups/pwg-media.c:291 cups/pwg-media.c:310
+#: cups/pwg-media.c:292 cups/pwg-media.c:311
msgid "Invalid media name arguments."
msgstr ""
-#: cups/dest-options.c:1099
+#: cups/dest-options.c:1108
msgid "Invalid media size."
msgstr ""
-#: scheduler/ipp.c:2719 scheduler/ipp.c:7078
+#: scheduler/ipp.c:2716 scheduler/ipp.c:7081
msgid "Invalid ppd-name value."
msgstr ""
msgid "Invalid printer command \"%s\"."
msgstr ""
-#: cups/ppd.c:1461
+#: cups/ppd.c:1404
msgid "JCL"
msgstr ""
msgid "JIS B9"
msgstr ""
-#: scheduler/ipp.c:9342
+#: scheduler/ipp.c:9345
#, c-format
msgid "Job #%d cannot be restarted - no files."
msgstr ""
-#: scheduler/ipp.c:3032 scheduler/ipp.c:3266 scheduler/ipp.c:3325
-#: scheduler/ipp.c:3504 scheduler/ipp.c:3950 scheduler/ipp.c:5923
-#: scheduler/ipp.c:6304 scheduler/ipp.c:6451 scheduler/ipp.c:6788
-#: scheduler/ipp.c:7748 scheduler/ipp.c:7770 scheduler/ipp.c:7948
-#: scheduler/ipp.c:8176 scheduler/ipp.c:8219 scheduler/ipp.c:9086
-#: scheduler/ipp.c:9310 scheduler/ipp.c:9662 scheduler/ipp.c:10275
+#: scheduler/ipp.c:3029 scheduler/ipp.c:3263 scheduler/ipp.c:3322
+#: scheduler/ipp.c:3501 scheduler/ipp.c:3947 scheduler/ipp.c:5926
+#: scheduler/ipp.c:6307 scheduler/ipp.c:6454 scheduler/ipp.c:6791
+#: scheduler/ipp.c:7751 scheduler/ipp.c:7773 scheduler/ipp.c:7951
+#: scheduler/ipp.c:8179 scheduler/ipp.c:8222 scheduler/ipp.c:9089
+#: scheduler/ipp.c:9313 scheduler/ipp.c:9665 scheduler/ipp.c:10278
#, c-format
msgid "Job #%d does not exist."
msgstr ""
-#: scheduler/ipp.c:3536
+#: scheduler/ipp.c:3533
#, c-format
msgid "Job #%d is already aborted - can't cancel."
msgstr ""
-#: scheduler/ipp.c:3530
+#: scheduler/ipp.c:3527
#, c-format
msgid "Job #%d is already canceled - can't cancel."
msgstr ""
-#: scheduler/ipp.c:3542
+#: scheduler/ipp.c:3539
#, c-format
msgid "Job #%d is already completed - can't cancel."
msgstr ""
-#: scheduler/ipp.c:7974 scheduler/ipp.c:8261 scheduler/ipp.c:10290
+#: scheduler/ipp.c:7977 scheduler/ipp.c:8264 scheduler/ipp.c:10293
#, c-format
msgid "Job #%d is finished and cannot be altered."
msgstr ""
-#: scheduler/ipp.c:9324
+#: scheduler/ipp.c:9327
#, c-format
msgid "Job #%d is not complete."
msgstr ""
-#: scheduler/ipp.c:3047
+#: scheduler/ipp.c:3044
#, c-format
msgid "Job #%d is not held for authentication."
msgstr ""
-#: scheduler/ipp.c:9100
+#: scheduler/ipp.c:9103
#, c-format
msgid "Job #%d is not held."
msgstr ""
msgid "Job Stopped"
msgstr ""
-#: scheduler/ipp.c:10404
+#: scheduler/ipp.c:10407
msgid "Job is completed and cannot be changed."
msgstr ""
msgid "Job operation failed"
msgstr ""
-#: scheduler/ipp.c:10440 scheduler/ipp.c:10457 scheduler/ipp.c:10468
+#: scheduler/ipp.c:10443 scheduler/ipp.c:10460 scheduler/ipp.c:10471
msgid "Job state cannot be changed."
msgstr ""
-#: scheduler/ipp.c:9190
+#: scheduler/ipp.c:9193
msgid "Job subscriptions cannot be renewed."
msgstr ""
msgid "Jobs"
msgstr ""
-#: cups/ppd-cache.c:3005
+#: cups/ppd-cache.c:2989
msgid "Jog"
msgstr ""
msgid "Label Top"
msgstr ""
-#: cups/ppd-cache.c:3547
+#: cups/ppd-cache.c:3549
msgid "Labels"
msgstr ""
-#: cups/ppd-cache.c:3006
+#: cups/ppd-cache.c:2990
msgid "Laminate"
msgstr ""
-#: cups/ppd-cache.c:3557
+#: cups/ppd-cache.c:3559
msgid "Laminating Foil"
msgstr ""
-#: scheduler/ipp.c:2085 scheduler/ipp.c:5827
+#: scheduler/ipp.c:2083 scheduler/ipp.c:5830
#, c-format
msgid "Language \"%s\" not supported."
msgstr ""
msgid "Large Address"
msgstr ""
-#: cups/ppd-cache.c:3397
+#: cups/ppd-cache.c:3399
msgid "Large Capacity"
msgstr ""
-#: cups/ppd-cache.c:3806
+#: cups/ppd-cache.c:3808
msgid "Large Capacity Tray"
msgstr ""
msgid "LaserJet Series PCL 4/5"
msgstr ""
-#: cups/ppd-cache.c:3409
+#: cups/ppd-cache.c:3411
msgid "Left"
msgstr ""
-#: cups/ppd-cache.c:2999
+#: cups/ppd-cache.c:2983
msgid "Left Gate Fold"
msgstr ""
-#: cups/ppd-cache.c:3807
+#: cups/ppd-cache.c:3809
msgid "Left Tray"
msgstr ""
-#: cups/ppd-cache.c:3000
+#: cups/ppd-cache.c:2984
msgid "Letter Fold"
msgstr ""
msgid "Letter Oversize Long Edge"
msgstr ""
-#: cups/ppd-cache.c:3558 cups/ppd-cache.c:3607
+#: cups/ppd-cache.c:3560 cups/ppd-cache.c:3609
msgid "Letterhead"
msgstr ""
msgid "Light"
msgstr ""
-#: cups/ppd-cache.c:3518
+#: cups/ppd-cache.c:3520
msgid "Lightweight Envelope"
msgstr ""
-#: cups/ppd-cache.c:3608
+#: cups/ppd-cache.c:3610
msgid "Lightweight Paper"
msgstr ""
-#: cups/ppd.c:327
+#: cups/ppd.c:308
msgid "Line longer than the maximum allowed (255 characters)"
msgstr ""
msgid "Load paper."
msgstr ""
-#: scheduler/ipp.c:5536
+#: scheduler/ipp.c:5539
msgid "Local printer created."
msgstr ""
-#: cups/ppd-cache.c:3735 ppdc/sample.c:264
+#: cups/ppd-cache.c:3737 ppdc/sample.c:264
msgid "Long-Edge (Portrait)"
msgstr ""
-#: cups/http-support.c:1877
+#: cups/http-support.c:1874
msgid "Looking for printer."
msgstr ""
-#: cups/ppd-cache.c:3808
+#: cups/ppd-cache.c:3810
msgid "Mailbox 1"
msgstr ""
-#: cups/ppd-cache.c:3817
+#: cups/ppd-cache.c:3819
msgid "Mailbox 10"
msgstr ""
-#: cups/ppd-cache.c:3809
+#: cups/ppd-cache.c:3811
msgid "Mailbox 2"
msgstr ""
-#: cups/ppd-cache.c:3810
+#: cups/ppd-cache.c:3812
msgid "Mailbox 3"
msgstr ""
-#: cups/ppd-cache.c:3811
+#: cups/ppd-cache.c:3813
msgid "Mailbox 4"
msgstr ""
-#: cups/ppd-cache.c:3812
+#: cups/ppd-cache.c:3814
msgid "Mailbox 5"
msgstr ""
-#: cups/ppd-cache.c:3813
+#: cups/ppd-cache.c:3815
msgid "Mailbox 6"
msgstr ""
-#: cups/ppd-cache.c:3814
+#: cups/ppd-cache.c:3816
msgid "Mailbox 7"
msgstr ""
-#: cups/ppd-cache.c:3815
+#: cups/ppd-cache.c:3817
msgid "Mailbox 8"
msgstr ""
-#: cups/ppd-cache.c:3816
+#: cups/ppd-cache.c:3818
msgid "Mailbox 9"
msgstr ""
-#: cups/ppd-cache.c:3395
+#: cups/ppd-cache.c:3397
msgid "Main"
msgstr ""
-#: cups/ppd-cache.c:3403
+#: cups/ppd-cache.c:3405
msgid "Main Roll"
msgstr ""
-#: cups/ppd-cache.c:3398
+#: cups/ppd-cache.c:3400
msgid "Manual"
msgstr ""
msgid "Manual Feed"
msgstr ""
-#: cups/ppd-cache.c:3485
+#: cups/ppd-cache.c:3487
msgid "Matte Brochure Paper"
msgstr ""
-#: cups/ppd-cache.c:3486
+#: cups/ppd-cache.c:3488
msgid "Matte Cover Paper"
msgstr ""
-#: cups/ppd-cache.c:3526
+#: cups/ppd-cache.c:3528
msgid "Matte Fabric"
msgstr ""
-#: cups/ppd-cache.c:3552
+#: cups/ppd-cache.c:3554
msgid "Matte Labels"
msgstr ""
-#: cups/ppd-cache.c:3502
+#: cups/ppd-cache.c:3504
msgid "Matte Optical Disc"
msgstr ""
-#: cups/ppd-cache.c:3576
+#: cups/ppd-cache.c:3578
msgid "Matte Photo Paper"
msgstr ""
-#: cups/ppd.c:832 cups/ppd.c:1398
+#: cups/ppd.c:811 cups/ppd.c:1341
msgid "Media Size"
msgstr ""
-#: cups/ppd.c:836 cups/ppd.c:1402 ppdc/sample.c:254
+#: cups/ppd.c:815 cups/ppd.c:1345 ppdc/sample.c:254
msgid "Media Source"
msgstr ""
msgid "Media Tracking"
msgstr ""
-#: cups/ppd.c:834 cups/ppd.c:1400 ppdc/sample.c:280
+#: cups/ppd.c:813 cups/ppd.c:1343 ppdc/sample.c:280
msgid "Media Type"
msgstr ""
msgid "Medium"
msgstr ""
-#: cups/ppd.c:316
+#: cups/ppd.c:297
msgid "Memory allocation error"
msgstr ""
-#: cups/ppd-cache.c:3559
+#: cups/ppd-cache.c:3561
msgid "Metal"
msgstr ""
-#: cups/ppd-cache.c:3560
+#: cups/ppd-cache.c:3562
msgid "Metal Glossy"
msgstr ""
-#: cups/ppd-cache.c:3561
+#: cups/ppd-cache.c:3563
msgid "Metal High Gloss"
msgstr ""
-#: cups/ppd-cache.c:3562
+#: cups/ppd-cache.c:3564
msgid "Metal Matte"
msgstr ""
-#: cups/ppd-cache.c:3563
+#: cups/ppd-cache.c:3565
msgid "Metal Satin"
msgstr ""
-#: cups/ppd-cache.c:3564
+#: cups/ppd-cache.c:3566
msgid "Metal Semi Gloss"
msgstr ""
-#: cups/ppd-cache.c:3492
+#: cups/ppd-cache.c:3494
msgid "Mid-Weight Paper"
msgstr ""
-#: cups/ppd-cache.c:3406 cups/ppd-cache.c:3818
+#: cups/ppd-cache.c:3408 cups/ppd-cache.c:3820
msgid "Middle"
msgstr ""
-#: cups/ppd.c:336
+#: cups/ppd.c:317
msgid "Missing CloseGroup"
msgstr ""
-#: cups/ppd.c:338
+#: cups/ppd.c:319
msgid "Missing CloseUI/JCLCloseUI"
msgstr ""
-#: cups/ppd.c:317
+#: cups/ppd.c:298
msgid "Missing PPD-Adobe-4.x header"
msgstr ""
-#: cups/ppd.c:326
+#: cups/ppd.c:307
msgid "Missing asterisk in column 1"
msgstr ""
-#: scheduler/ipp.c:6327
+#: scheduler/ipp.c:6330
msgid "Missing document-number attribute."
msgstr ""
msgid "Missing form variable"
msgstr ""
-#: scheduler/ipp.c:9716
+#: scheduler/ipp.c:9719
msgid "Missing last-document attribute in request."
msgstr ""
-#: cups/pwg-media.c:550
+#: cups/pwg-media.c:551
msgid "Missing media or media-col."
msgstr ""
-#: cups/pwg-media.c:469
+#: cups/pwg-media.c:470
msgid "Missing media-size in media-col."
msgstr ""
-#: scheduler/ipp.c:6928
+#: scheduler/ipp.c:6931
msgid "Missing notify-subscription-ids attribute."
msgstr ""
-#: cups/ppd.c:334
+#: cups/ppd.c:315
msgid "Missing option keyword"
msgstr ""
-#: scheduler/ipp.c:3173 scheduler/ipp.c:3198
+#: scheduler/ipp.c:3170 scheduler/ipp.c:3195
msgid "Missing requesting-user-name attribute."
msgstr ""
-#: scheduler/ipp.c:5453 scheduler/ipp.c:5479
+#: scheduler/ipp.c:5456 scheduler/ipp.c:5482
#, c-format
msgid "Missing required attribute \"%s\"."
msgstr ""
-#: scheduler/ipp.c:359
+#: scheduler/ipp.c:357
msgid "Missing required attributes."
msgstr ""
msgid "Missing value on line %d."
msgstr ""
-#: cups/ppd.c:318
+#: cups/ppd.c:299
msgid "Missing value string"
msgstr ""
-#: cups/pwg-media.c:457
+#: cups/pwg-media.c:458
msgid "Missing x-dimension in media-size."
msgstr ""
-#: cups/pwg-media.c:463
+#: cups/pwg-media.c:464
msgid "Missing y-dimension in media-size."
msgstr ""
msgid "Modify Printer"
msgstr ""
-#: cups/ppd-cache.c:3565
+#: cups/ppd-cache.c:3567
msgid "Mounting Tape"
msgstr ""
msgid "Moved Permanently"
msgstr ""
-#: cups/ppd-cache.c:3566
+#: cups/ppd-cache.c:3568
msgid "Multi Layer"
msgstr ""
-#: cups/ppd-cache.c:3567
+#: cups/ppd-cache.c:3569
msgid "Multi Part Form"
msgstr ""
-#: cups/ppd-cache.c:3027
+#: cups/ppd-cache.c:3011
msgid "Multi-Hole Punch (Landscape)"
msgstr ""
-#: cups/ppd-cache.c:3025
+#: cups/ppd-cache.c:3009
msgid "Multi-Hole Punch (Portrait)"
msgstr ""
-#: cups/ppd-cache.c:3024
+#: cups/ppd-cache.c:3008
msgid "Multi-Hole Punch (Reverse Landscape)"
msgstr ""
-#: cups/ppd-cache.c:3026
+#: cups/ppd-cache.c:3010
msgid "Multi-Hole Punch (Reverse Portrait)"
msgstr ""
-#: cups/ppd-cache.c:3413
+#: cups/ppd-cache.c:3415
msgid "Multipurpose"
msgstr ""
-#: cups/ppd-cache.c:3491
+#: cups/ppd-cache.c:3493
msgid "Multipurpose Paper"
msgstr ""
-#: cups/ppd-cache.c:3819
+#: cups/ppd-cache.c:3821
msgid "My Mailbox"
msgstr ""
-#: cups/ppd.c:315
+#: cups/ppd.c:296
msgid "NULL PPD file pointer"
msgstr ""
msgid "Name OID uses indefinite length"
msgstr ""
-#: scheduler/ipp.c:1066
+#: scheduler/ipp.c:1064
msgid "Nested classes are not allowed."
msgstr ""
msgid "Never"
msgstr ""
-#: cups/tls-darwin.c:672 cups/tls-gnutls.c:504
+#: cups/tls-darwin.c:672 cups/tls-gnutls.c:529
msgid "New credentials are not valid for name."
msgstr ""
-#: cups/tls-darwin.c:662 cups/tls-gnutls.c:494
+#: cups/tls-darwin.c:662 cups/tls-gnutls.c:519
msgid "New credentials are older than stored credentials."
msgstr ""
-#: cups/ppd.c:2010
+#: cups/ppd.c:1953
msgid "No"
msgstr ""
msgid "No Content"
msgstr ""
-#: cups/ppd-cache.c:3061
+#: cups/ppd-cache.c:3045
msgid "No IPP attributes."
msgstr ""
msgid "No active connection."
msgstr ""
-#: scheduler/ipp.c:3453
+#: scheduler/ipp.c:3450
#, c-format
msgid "No active jobs on %s."
msgstr ""
-#: scheduler/ipp.c:219
+#: scheduler/ipp.c:217
msgid "No attributes in request."
msgstr ""
-#: scheduler/ipp.c:3074
+#: scheduler/ipp.c:3071
msgid "No authentication information provided."
msgstr ""
-#: cups/tls-darwin.c:612 cups/tls-gnutls.c:441
+#: cups/tls-darwin.c:612 cups/tls-gnutls.c:466
msgid "No common name specified."
msgstr ""
msgid "No community name"
msgstr ""
-#: scheduler/ipp.c:6127
+#: scheduler/ipp.c:6130
msgid "No default printer."
msgstr ""
-#: cgi-bin/ipp-var.c:422 scheduler/ipp.c:7508
+#: cgi-bin/ipp-var.c:422 scheduler/ipp.c:7511
msgid "No destinations added."
msgstr ""
msgid "No error-status"
msgstr ""
-#: scheduler/ipp.c:8466 scheduler/ipp.c:9730
+#: scheduler/ipp.c:8469 scheduler/ipp.c:9733
msgid "No file in print request."
msgstr ""
msgid "No printer-uri found for class"
msgstr ""
-#: scheduler/ipp.c:6534
+#: scheduler/ipp.c:6537
msgid "No printer-uri in request."
msgstr ""
-#: cups/http.c:2245
+#: cups/http.c:2257
msgid "No request URI."
msgstr ""
-#: cups/http.c:2262
+#: cups/http.c:2274
msgid "No request protocol version."
msgstr ""
msgid "No request-id"
msgstr ""
-#: cups/tls-darwin.c:692 cups/tls-gnutls.c:524
+#: cups/tls-darwin.c:692 cups/tls-gnutls.c:549
msgid "No stored credentials, not valid for name."
msgstr ""
-#: scheduler/ipp.c:5712
+#: scheduler/ipp.c:5715
msgid "No subscription attributes in request."
msgstr ""
-#: scheduler/ipp.c:7847
+#: scheduler/ipp.c:7850
msgid "No subscriptions found."
msgstr ""
msgid "Non-continuous (Web sensing)"
msgstr ""
-#: cups/ppd-cache.c:3923 cups/ppd-cache.c:3973 cups/ppd-cache.c:4023
+#: cups/ppd-cache.c:3925 cups/ppd-cache.c:3975 cups/ppd-cache.c:4025
msgid "None"
msgstr ""
-#: cups/ppd-cache.c:4123 cups/ppd-cache.c:4189 cups/ppd-cache.c:4223
+#: cups/ppd-cache.c:4125 cups/ppd-cache.c:4191 cups/ppd-cache.c:4225
#: ppdc/sample.c:238
msgid "Normal"
msgstr ""
msgid "Not Supported"
msgstr ""
-#: scheduler/ipp.c:1520 scheduler/ipp.c:11001
+#: scheduler/ipp.c:1518 scheduler/ipp.c:11004
msgid "Not allowed to print."
msgstr ""
msgid "Note: this program only validates the DSC comments, not the PostScript itself."
msgstr ""
-#: cups/http-support.c:1492 cups/http-support.c:1631 cups/ppd.c:313
+#: cups/http-support.c:1492 cups/http-support.c:1631 cups/ppd.c:294
msgid "OK"
msgstr ""
-#: cups/ppd-cache.c:3735 ppdc/sample.c:263
+#: cups/ppd-cache.c:3737 ppdc/sample.c:263
msgid "Off (1-Sided)"
msgstr ""
-#: cups/ppd-cache.c:3487
+#: cups/ppd-cache.c:3489
msgid "Office Recycled Paper"
msgstr ""
msgid "Online Help"
msgstr ""
-#: scheduler/ipp.c:5432
+#: scheduler/ipp.c:5435
msgid "Only local users can create a local printer."
msgstr ""
msgid "Open of %s failed: %s"
msgstr ""
-#: cups/ppd.c:321
+#: cups/ppd.c:302
msgid "OpenGroup without a CloseGroup first"
msgstr ""
-#: cups/ppd.c:323
+#: cups/ppd.c:304
msgid "OpenUI/JCLOpenUI without a CloseUI/JCLCloseUI first"
msgstr ""
msgid "Operation Policy"
msgstr ""
-#: cups/ppd-cache.c:3499
+#: cups/ppd-cache.c:3501
msgid "Optical Disc"
msgstr ""
-#: filter/pstops.c:2180
+#: filter/pstops.c:2179
#, c-format
msgid "Option \"%s\" cannot be included via %%%%IncludeFeature."
msgstr ""
msgid "Options Installed"
msgstr ""
-#: scheduler/cupsfilter.c:1480 scheduler/main.c:2103 systemv/cupsaddsmb.c:276
-#: systemv/cupsctl.c:196 systemv/cupstestdsc.c:421 systemv/cupstestppd.c:3859
+#: scheduler/cupsfilter.c:1480 scheduler/main.c:2097 systemv/cupsaddsmb.c:276
+#: systemv/cupsctl.c:237 systemv/cupstestdsc.c:421 systemv/cupstestppd.c:3859
#: test/ippfind.c:2802 test/ipptool.c:5063 ppdc/ppdc.cxx:430
-#: ppdc/ppdhtml.cxx:177 ppdc/ppdi.cxx:123 ppdc/ppdmerge.cxx:361
+#: ppdc/ppdhtml.cxx:177 ppdc/ppdi.cxx:123 ppdc/ppdmerge.cxx:359
#: ppdc/ppdpo.cxx:247
msgid "Options:"
msgstr ""
-#: cups/ppd-cache.c:3568
+#: cups/ppd-cache.c:3570
msgid "Other"
msgstr ""
msgid "Out of date PPD cache file."
msgstr ""
-#: cups/ppd-cache.c:1863
+#: cups/ppd-cache.c:1851
msgid "Out of memory."
msgstr ""
-#: cups/ppd.c:838 cups/ppd.c:1404
+#: cups/ppd.c:817 cups/ppd.c:1347
msgid "Output Mode"
msgstr ""
msgid "Packet does not start with SEQUENCE"
msgstr ""
-#: cups/ppd-cache.c:3569
+#: cups/ppd-cache.c:3571
msgid "Paper"
msgstr ""
msgid "Paper tray is missing."
msgstr ""
-#: cups/ppd-cache.c:3001
+#: cups/ppd-cache.c:2985
msgid "Parallel Fold"
msgstr ""
msgid "ParamCustominTearInterval"
msgstr ""
-#: cups/auth.c:222 cups/auth.c:370
+#: cups/auth.c:245 cups/auth.c:404
#, c-format
msgid "Password for %s on %s? "
msgstr ""
msgid "Peel-Off"
msgstr ""
-#: cups/ppd-cache.c:3553
+#: cups/ppd-cache.c:3555
msgid "Permanent Labels"
msgstr ""
-#: cups/ppd-cache.c:3401 ppdc/sample.c:160
+#: cups/ppd-cache.c:3403 ppdc/sample.c:160
msgid "Photo"
msgstr ""
-#: cups/ppd-cache.c:3573
+#: cups/ppd-cache.c:3575
msgid "Photo Film"
msgstr ""
msgid "Photo Labels"
msgstr ""
-#: cups/ppd-cache.c:3570 cups/ppd-cache.c:3571
+#: cups/ppd-cache.c:3572 cups/ppd-cache.c:3573
msgid "Photo Paper"
msgstr ""
-#: cups/ppd-cache.c:3543 cups/ppd-cache.c:3545
+#: cups/ppd-cache.c:3545 cups/ppd-cache.c:3547
msgid "Photo Paper Plus Glossy II"
msgstr ""
-#: cups/ppd-cache.c:3544 cups/ppd-cache.c:3546
+#: cups/ppd-cache.c:3546 cups/ppd-cache.c:3548
msgid "Photo Paper Pro Platinum"
msgstr ""
-#: cups/ppd-cache.c:3519
+#: cups/ppd-cache.c:3521
msgid "Plain Envelope"
msgstr ""
-#: cups/ppd-cache.c:3599 ppdc/sample.c:281
+#: cups/ppd-cache.c:3601 ppdc/sample.c:281
msgid "Plain Paper"
msgstr ""
-#: cups/ppd-cache.c:3579
+#: cups/ppd-cache.c:3581
msgid "Plastic"
msgstr ""
-#: cups/ppd-cache.c:3580
+#: cups/ppd-cache.c:3582
msgid "Plastic Archival"
msgstr ""
-#: cups/ppd-cache.c:3581
+#: cups/ppd-cache.c:3583
msgid "Plastic Colored"
msgstr ""
-#: cups/ppd-cache.c:3582
+#: cups/ppd-cache.c:3584
msgid "Plastic Glossy"
msgstr ""
-#: cups/ppd-cache.c:3583
+#: cups/ppd-cache.c:3585
msgid "Plastic High Gloss"
msgstr ""
-#: cups/ppd-cache.c:3584
+#: cups/ppd-cache.c:3586
msgid "Plastic Matte"
msgstr ""
-#: cups/ppd-cache.c:3585
+#: cups/ppd-cache.c:3587
msgid "Plastic Satin"
msgstr ""
-#: cups/ppd-cache.c:3586
+#: cups/ppd-cache.c:3588
msgid "Plastic Semi Gloss"
msgstr ""
-#: cups/ppd-cache.c:3587
+#: cups/ppd-cache.c:3589
msgid "Plate"
msgstr ""
msgid "Policies"
msgstr ""
-#: cups/ppd-cache.c:3588
+#: cups/ppd-cache.c:3590
msgid "Polyester"
msgstr ""
msgid "Postcard Long Edge"
msgstr ""
-#: cups/ppd-cache.c:3002
+#: cups/ppd-cache.c:2986
msgid "Poster Fold"
msgstr ""
-#: cups/ppd-cache.c:3589
+#: cups/ppd-cache.c:3591
msgid "Pre Cut Tabs"
msgstr ""
-#: cups/ppd-cache.c:3493
+#: cups/ppd-cache.c:3495
msgid "Premium Inkjet Paper"
msgstr ""
-#: cups/ppd-cache.c:3494
+#: cups/ppd-cache.c:3496
msgid "Premium Photo Glossy Paper"
msgstr ""
-#: cups/ppd-cache.c:3495
+#: cups/ppd-cache.c:3497
msgid "Premium Presentation Matte Paper"
msgstr ""
msgid "Preparing to print."
msgstr ""
-#: cups/ppd-cache.c:3520
+#: cups/ppd-cache.c:3522
msgid "Preprinted Envelope"
msgstr ""
-#: cups/ppd-cache.c:3609
+#: cups/ppd-cache.c:3611
msgid "Preprinted Paper"
msgstr ""
msgid "Print Mode"
msgstr ""
-#: cups/ppd-cache.c:4117 cups/ppd-cache.c:4179 cups/ppd-cache.c:4219
+#: cups/ppd-cache.c:4119 cups/ppd-cache.c:4181 cups/ppd-cache.c:4221
msgid "Print Quality"
msgstr ""
msgid "Print and Tear"
msgstr ""
-#: backend/socket.c:409 backend/usb-unix.c:182
+#: backend/socket.c:411 backend/usb-unix.c:182
msgid "Print file sent."
msgstr ""
-#: backend/ipp.c:2245
+#: backend/ipp.c:2246
msgid "Print job canceled at printer."
msgstr ""
-#: backend/ipp.c:2237
+#: backend/ipp.c:2238
msgid "Print job too large."
msgstr ""
msgid "Print job was not accepted."
msgstr ""
-#: scheduler/ipp.c:5498
+#: scheduler/ipp.c:5501
#, c-format
msgid "Printer \"%s\" already exists."
msgstr ""
msgid "Printer Settings"
msgstr ""
-#: backend/ipp.c:2240
+#: backend/ipp.c:2241
msgid "Printer cannot print supplied content."
msgstr ""
-#: backend/ipp.c:2243
+#: backend/ipp.c:2244
msgid "Printer cannot print with supplied options."
msgstr ""
-#: cups/ppd-cache.c:4248
+#: cups/ppd-cache.c:4250
msgid "Printer does not support required IPP attributes or document formats."
msgstr ""
msgid "Printing page %d, %u%% complete."
msgstr ""
-#: cups/ppd-cache.c:3007 cups/ppd-cache.c:4020
+#: cups/ppd-cache.c:2991 cups/ppd-cache.c:4022
msgid "Punch"
msgstr ""
-#: cups/ppd-cache.c:3610
+#: cups/ppd-cache.c:3612
msgid "Punched Paper"
msgstr ""
msgid "Quarto"
msgstr ""
-#: scheduler/ipp.c:1515 scheduler/ipp.c:10996
+#: scheduler/ipp.c:1513 scheduler/ipp.c:10999
msgid "Quota limit reached."
msgstr ""
msgid "Rank Owner Job File(s) Total Size"
msgstr ""
-#: cups/ppd-cache.c:3412
+#: cups/ppd-cache.c:3414
msgid "Rear"
msgstr ""
-#: cups/ppd-cache.c:3820
+#: cups/ppd-cache.c:3822
msgid "Rear Tray"
msgstr ""
msgid "Request Entity Too Large"
msgstr ""
-#: cups/ppd.c:840 cups/ppd.c:1406 ppdc/sample.c:231
+#: cups/ppd.c:819 cups/ppd.c:1349 ppdc/sample.c:231
msgid "Resolution"
msgstr ""
msgid "Rewind"
msgstr ""
-#: cups/ppd-cache.c:3410
+#: cups/ppd-cache.c:3412
msgid "Right"
msgstr ""
-#: cups/ppd-cache.c:3003
+#: cups/ppd-cache.c:2987
msgid "Right Gate Fold"
msgstr ""
-#: cups/ppd-cache.c:3821
+#: cups/ppd-cache.c:3823
msgid "Right Tray"
msgstr ""
-#: cups/ppd-cache.c:3590
+#: cups/ppd-cache.c:3592
msgid "Roll"
msgstr ""
-#: cups/ppd-cache.c:3434
+#: cups/ppd-cache.c:3436
msgid "Roll 1"
msgstr ""
-#: cups/ppd-cache.c:3443
+#: cups/ppd-cache.c:3445
msgid "Roll 10"
msgstr ""
-#: cups/ppd-cache.c:3435
+#: cups/ppd-cache.c:3437
msgid "Roll 2"
msgstr ""
-#: cups/ppd-cache.c:3436
+#: cups/ppd-cache.c:3438
msgid "Roll 3"
msgstr ""
-#: cups/ppd-cache.c:3437
+#: cups/ppd-cache.c:3439
msgid "Roll 4"
msgstr ""
-#: cups/ppd-cache.c:3438
+#: cups/ppd-cache.c:3440
msgid "Roll 5"
msgstr ""
-#: cups/ppd-cache.c:3439
+#: cups/ppd-cache.c:3441
msgid "Roll 6"
msgstr ""
-#: cups/ppd-cache.c:3440
+#: cups/ppd-cache.c:3442
msgid "Roll 7"
msgstr ""
-#: cups/ppd-cache.c:3441
+#: cups/ppd-cache.c:3443
msgid "Roll 8"
msgstr ""
-#: cups/ppd-cache.c:3442
+#: cups/ppd-cache.c:3444
msgid "Roll 9"
msgstr ""
msgid "SSL/TLS Negotiation Error"
msgstr ""
-#: cups/ppd-cache.c:3028
+#: cups/ppd-cache.c:3012
msgid "Saddle Stitch"
msgstr ""
-#: cups/ppd-cache.c:3554
+#: cups/ppd-cache.c:3556
msgid "Satin Labels"
msgstr ""
-#: cups/ppd-cache.c:3503
+#: cups/ppd-cache.c:3505
msgid "Satin Optical Disc"
msgstr ""
-#: cups/ppd-cache.c:3577
+#: cups/ppd-cache.c:3579
msgid "Satin Photo Paper"
msgstr ""
-#: cups/ppd-cache.c:3591
+#: cups/ppd-cache.c:3593
msgid "Screen"
msgstr ""
-#: cups/ppd-cache.c:3592
+#: cups/ppd-cache.c:3594
msgid "Screen Paged"
msgstr ""
-#: cups/ppd-cache.c:3555
+#: cups/ppd-cache.c:3557
msgid "Security Labels"
msgstr ""
msgid "See Other"
msgstr ""
-#: scheduler/ipp.c:7132 scheduler/ipp.c:7151
+#: scheduler/ipp.c:7135 scheduler/ipp.c:7154
msgid "See remote printer."
msgstr ""
-#: cups/ppd-cache.c:3593
+#: cups/ppd-cache.c:3595
msgid "Self Adhesive"
msgstr ""
-#: cups/ppd-cache.c:3594
+#: cups/ppd-cache.c:3596
msgid "Self Adhesive Film"
msgstr ""
-#: cups/tls-darwin.c:747 cups/tls-gnutls.c:586
+#: cups/tls-darwin.c:747 cups/tls-gnutls.c:611
msgid "Self-signed credentials are blocked."
msgstr ""
-#: cups/ppd-cache.c:3527
+#: cups/ppd-cache.c:3529
msgid "Semi-Gloss Fabric"
msgstr ""
-#: cups/ppd-cache.c:3556
+#: cups/ppd-cache.c:3558
msgid "Semi-Gloss Labels"
msgstr ""
-#: cups/ppd-cache.c:3504
+#: cups/ppd-cache.c:3506
msgid "Semi-Gloss Optical Disc"
msgstr ""
-#: cups/ppd-cache.c:3578
+#: cups/ppd-cache.c:3580
msgid "Semi-Gloss Photo Paper"
msgstr ""
msgid "Server Stopped"
msgstr ""
-#: cups/tls-darwin.c:1191 cups/tls-gnutls.c:1282
+#: cups/tls-darwin.c:1191 cups/tls-gnutls.c:1307
msgid "Server credentials not set."
msgstr ""
msgid "Shipping Address"
msgstr ""
-#: cups/ppd-cache.c:3735 ppdc/sample.c:265
+#: cups/ppd-cache.c:3737 ppdc/sample.c:265
msgid "Short-Edge (Landscape)"
msgstr ""
-#: cups/ppd-cache.c:3595
+#: cups/ppd-cache.c:3597
msgid "Shrink Foil"
msgstr ""
-#: cups/ppd-cache.c:3408
+#: cups/ppd-cache.c:3410
msgid "Side"
msgstr ""
-#: cups/ppd-cache.c:3822
+#: cups/ppd-cache.c:3824
msgid "Side Tray"
msgstr ""
-#: cups/ppd-cache.c:3596
+#: cups/ppd-cache.c:3598
msgid "Single Face"
msgstr ""
-#: cups/ppd-cache.c:3019
+#: cups/ppd-cache.c:3003
msgid "Single Punch (Landscape)"
msgstr ""
-#: cups/ppd-cache.c:3018
+#: cups/ppd-cache.c:3002
msgid "Single Punch (Portrait)"
msgstr ""
-#: cups/ppd-cache.c:3008
+#: cups/ppd-cache.c:2992
msgid "Single Punch (Reverse Landscape)"
msgstr ""
-#: cups/ppd-cache.c:3009
+#: cups/ppd-cache.c:2993
msgid "Single Punch (Reverse Portrait)"
msgstr ""
-#: cups/ppd-cache.c:3037
+#: cups/ppd-cache.c:3021
msgid "Single Staple (Landscape)"
msgstr ""
-#: cups/ppd-cache.c:3036
+#: cups/ppd-cache.c:3020
msgid "Single Staple (Portrait)"
msgstr ""
-#: cups/ppd-cache.c:3030
+#: cups/ppd-cache.c:3014
msgid "Single Staple (Reverse Landscape)"
msgstr ""
-#: cups/ppd-cache.c:3031
+#: cups/ppd-cache.c:3015
msgid "Single Staple (Reverse Portrait)"
msgstr ""
-#: cups/ppd-cache.c:3597
+#: cups/ppd-cache.c:3599
msgid "Single Wall Cardboard"
msgstr ""
-#: cups/ppd-cache.c:3598
+#: cups/ppd-cache.c:3600
msgid "Sleeve"
msgstr ""
msgid "Spooling job, %.0f%% complete."
msgstr ""
-#: cups/ppd-cache.c:3823
+#: cups/ppd-cache.c:3825
msgid "Stacker 1"
msgstr ""
-#: cups/ppd-cache.c:3832
+#: cups/ppd-cache.c:3834
msgid "Stacker 10"
msgstr ""
-#: cups/ppd-cache.c:3824
+#: cups/ppd-cache.c:3826
msgid "Stacker 2"
msgstr ""
-#: cups/ppd-cache.c:3825
+#: cups/ppd-cache.c:3827
msgid "Stacker 3"
msgstr ""
-#: cups/ppd-cache.c:3826
+#: cups/ppd-cache.c:3828
msgid "Stacker 4"
msgstr ""
-#: cups/ppd-cache.c:3827
+#: cups/ppd-cache.c:3829
msgid "Stacker 5"
msgstr ""
-#: cups/ppd-cache.c:3828
+#: cups/ppd-cache.c:3830
msgid "Stacker 6"
msgstr ""
-#: cups/ppd-cache.c:3829
+#: cups/ppd-cache.c:3831
msgid "Stacker 7"
msgstr ""
-#: cups/ppd-cache.c:3830
+#: cups/ppd-cache.c:3832
msgid "Stacker 8"
msgstr ""
-#: cups/ppd-cache.c:3831
+#: cups/ppd-cache.c:3833
msgid "Stacker 9"
msgstr ""
msgid "Standard"
msgstr ""
-#: cups/ppd-cache.c:3029 cups/ppd-cache.c:3920
+#: cups/ppd-cache.c:3013 cups/ppd-cache.c:3922
msgid "Staple"
msgstr ""
-#: cups/ppd-cache.c:2987
+#: cups/ppd-cache.c:2971
msgid "Staple Edge"
msgstr ""
-#: cups/ppd-cache.c:2991
+#: cups/ppd-cache.c:2975
msgid "Staple Edge (Landscape)"
msgstr ""
-#: cups/ppd-cache.c:2989
+#: cups/ppd-cache.c:2973
msgid "Staple Edge (Portrait)"
msgstr ""
-#: cups/ppd-cache.c:2988
+#: cups/ppd-cache.c:2972
msgid "Staple Edge (Reverse Landscape)"
msgstr ""
-#: cups/ppd-cache.c:2990
+#: cups/ppd-cache.c:2974
msgid "Staple Edge (Reverse Portrait)"
msgstr ""
msgid "Statement"
msgstr ""
-#: scheduler/ipp.c:3599 scheduler/ipp.c:6944 scheduler/ipp.c:7654
-#: scheduler/ipp.c:9178
+#: scheduler/ipp.c:3596 scheduler/ipp.c:6947 scheduler/ipp.c:7657
+#: scheduler/ipp.c:9181
#, c-format
msgid "Subscription #%d does not exist."
msgstr ""
msgid "Switching Protocols"
msgstr ""
-#: cups/ppd-cache.c:3611
+#: cups/ppd-cache.c:3613
msgid "Tab Stock"
msgstr ""
msgid "Tear-Off Adjust Position"
msgstr ""
-#: scheduler/ipp.c:1351
+#: scheduler/ipp.c:1349
#, c-format
msgid "The \"%s\" attribute is required for print jobs."
msgstr ""
-#: scheduler/ipp.c:6605 scheduler/ipp.c:6685 scheduler/ipp.c:6698
-#: scheduler/ipp.c:6710 scheduler/ipp.c:6725
+#: scheduler/ipp.c:6608 scheduler/ipp.c:6688 scheduler/ipp.c:6701
+#: scheduler/ipp.c:6713 scheduler/ipp.c:6728
#, c-format
msgid "The %s attribute cannot be provided with job-ids."
msgstr ""
-#: scheduler/ipp.c:1330
+#: scheduler/ipp.c:1328
#, c-format
msgid "The '%s' Job Status attribute cannot be supplied in a job creation request."
msgstr ""
-#: scheduler/ipp.c:5232
+#: scheduler/ipp.c:5230
#, c-format
msgid "The '%s' operation attribute cannot be supplied in a Create-Job request."
msgstr ""
-#: scheduler/ipp.c:7174
+#: scheduler/ipp.c:7177
#, c-format
msgid "The PPD file \"%s\" could not be found."
msgstr ""
-#: scheduler/ipp.c:7163
+#: scheduler/ipp.c:7166
#, c-format
msgid "The PPD file \"%s\" could not be opened: %s"
msgstr ""
msgid "The fuser's temperature is low."
msgstr ""
-#: scheduler/ipp.c:2112
+#: scheduler/ipp.c:2110
msgid "The notify-lease-duration attribute cannot be used with job subscriptions."
msgstr ""
-#: scheduler/ipp.c:2095 scheduler/ipp.c:5837
+#: scheduler/ipp.c:2093 scheduler/ipp.c:5840
#, c-format
msgid "The notify-user-data value is too large (%d > 63 octets)."
msgstr ""
msgid "The printer name may only contain up to 127 printable characters and may not contain spaces, slashes (/), or the pound sign (#)."
msgstr ""
-#: scheduler/ipp.c:774 scheduler/ipp.c:1057 scheduler/ipp.c:3238
-#: scheduler/ipp.c:3419 scheduler/ipp.c:5215 scheduler/ipp.c:5671
-#: scheduler/ipp.c:6005 scheduler/ipp.c:6571 scheduler/ipp.c:7378
-#: scheduler/ipp.c:7434 scheduler/ipp.c:7760 scheduler/ipp.c:8035
-#: scheduler/ipp.c:8124 scheduler/ipp.c:8157 scheduler/ipp.c:8481
-#: scheduler/ipp.c:8888 scheduler/ipp.c:8970 scheduler/ipp.c:10144
-#: scheduler/ipp.c:10606 scheduler/ipp.c:10959 scheduler/ipp.c:11041
-#: scheduler/ipp.c:11370
+#: scheduler/ipp.c:772 scheduler/ipp.c:1055 scheduler/ipp.c:3235
+#: scheduler/ipp.c:3416 scheduler/ipp.c:5213 scheduler/ipp.c:5674
+#: scheduler/ipp.c:6008 scheduler/ipp.c:6574 scheduler/ipp.c:7381
+#: scheduler/ipp.c:7437 scheduler/ipp.c:7763 scheduler/ipp.c:8038
+#: scheduler/ipp.c:8127 scheduler/ipp.c:8160 scheduler/ipp.c:8484
+#: scheduler/ipp.c:8891 scheduler/ipp.c:8973 scheduler/ipp.c:10147
+#: scheduler/ipp.c:10609 scheduler/ipp.c:10962 scheduler/ipp.c:11044
+#: scheduler/ipp.c:11373
msgid "The printer or class does not exist."
msgstr ""
-#: scheduler/ipp.c:1269
+#: scheduler/ipp.c:1267
msgid "The printer or class is not shared."
msgstr ""
msgid "The printer's waste bin is full."
msgstr ""
-#: scheduler/ipp.c:880 scheduler/ipp.c:2276
+#: scheduler/ipp.c:878 scheduler/ipp.c:2274
#, c-format
msgid "The printer-uri \"%s\" contains invalid characters."
msgstr ""
-#: scheduler/ipp.c:3215
+#: scheduler/ipp.c:3212
msgid "The printer-uri attribute is required."
msgstr ""
-#: scheduler/ipp.c:864
+#: scheduler/ipp.c:862
msgid "The printer-uri must be of the form \"ipp://HOSTNAME/classes/CLASSNAME\"."
msgstr ""
-#: scheduler/ipp.c:2260
+#: scheduler/ipp.c:2258
msgid "The printer-uri must be of the form \"ipp://HOSTNAME/printers/PRINTERNAME\"."
msgstr ""
msgid "The web interface is currently disabled. Run \"cupsctl WebInterface=yes\" to enable it."
msgstr ""
-#: scheduler/ipp.c:6669
+#: scheduler/ipp.c:6672
#, c-format
msgid "The which-jobs value \"%s\" is not supported."
msgstr ""
-#: scheduler/ipp.c:5934
+#: scheduler/ipp.c:5937
msgid "There are too many subscriptions."
msgstr ""
msgid "Thermal Transfer Media"
msgstr ""
-#: scheduler/ipp.c:1509
+#: scheduler/ipp.c:1507
msgid "Too many active jobs."
msgstr ""
-#: scheduler/ipp.c:1403
+#: scheduler/ipp.c:1401
#, c-format
msgid "Too many job-sheets values (%d > 2)."
msgstr ""
-#: scheduler/ipp.c:2587
+#: scheduler/ipp.c:2585
#, c-format
msgid "Too many printer-state-reasons values (%d > %d)."
msgstr ""
-#: cups/ppd-cache.c:3405
+#: cups/ppd-cache.c:3407
msgid "Top"
msgstr ""
-#: cups/ppd-cache.c:3833
+#: cups/ppd-cache.c:3835
msgid "Top Tray"
msgstr ""
-#: cups/ppd-cache.c:3612
+#: cups/ppd-cache.c:3614
msgid "Tractor"
msgstr ""
-#: cups/ppd-cache.c:3613
+#: cups/ppd-cache.c:3615
msgid "Transfer"
msgstr ""
-#: cups/ppd-cache.c:3614 ppdc/sample.c:284
+#: cups/ppd-cache.c:3616 ppdc/sample.c:284
msgid "Transparency"
msgstr ""
msgid "Tray"
msgstr ""
-#: cups/ppd-cache.c:3414 cups/ppd-cache.c:3834 ppdc/sample.c:256
+#: cups/ppd-cache.c:3416 cups/ppd-cache.c:3836 ppdc/sample.c:256
msgid "Tray 1"
msgstr ""
-#: cups/ppd-cache.c:3423 cups/ppd-cache.c:3843
+#: cups/ppd-cache.c:3425 cups/ppd-cache.c:3845
msgid "Tray 10"
msgstr ""
-#: cups/ppd-cache.c:3424
+#: cups/ppd-cache.c:3426
msgid "Tray 11"
msgstr ""
-#: cups/ppd-cache.c:3425
+#: cups/ppd-cache.c:3427
msgid "Tray 12"
msgstr ""
-#: cups/ppd-cache.c:3426
+#: cups/ppd-cache.c:3428
msgid "Tray 13"
msgstr ""
-#: cups/ppd-cache.c:3427
+#: cups/ppd-cache.c:3429
msgid "Tray 14"
msgstr ""
-#: cups/ppd-cache.c:3428
+#: cups/ppd-cache.c:3430
msgid "Tray 15"
msgstr ""
-#: cups/ppd-cache.c:3429
+#: cups/ppd-cache.c:3431
msgid "Tray 16"
msgstr ""
-#: cups/ppd-cache.c:3430
+#: cups/ppd-cache.c:3432
msgid "Tray 17"
msgstr ""
-#: cups/ppd-cache.c:3431
+#: cups/ppd-cache.c:3433
msgid "Tray 18"
msgstr ""
-#: cups/ppd-cache.c:3432
+#: cups/ppd-cache.c:3434
msgid "Tray 19"
msgstr ""
-#: cups/ppd-cache.c:3415 cups/ppd-cache.c:3835 ppdc/sample.c:257
+#: cups/ppd-cache.c:3417 cups/ppd-cache.c:3837 ppdc/sample.c:257
msgid "Tray 2"
msgstr ""
-#: cups/ppd-cache.c:3433
+#: cups/ppd-cache.c:3435
msgid "Tray 20"
msgstr ""
-#: cups/ppd-cache.c:3416 cups/ppd-cache.c:3836 ppdc/sample.c:258
+#: cups/ppd-cache.c:3418 cups/ppd-cache.c:3838 ppdc/sample.c:258
msgid "Tray 3"
msgstr ""
-#: cups/ppd-cache.c:3417 cups/ppd-cache.c:3837 ppdc/sample.c:259
+#: cups/ppd-cache.c:3419 cups/ppd-cache.c:3839 ppdc/sample.c:259
msgid "Tray 4"
msgstr ""
-#: cups/ppd-cache.c:3418 cups/ppd-cache.c:3838
+#: cups/ppd-cache.c:3420 cups/ppd-cache.c:3840
msgid "Tray 5"
msgstr ""
-#: cups/ppd-cache.c:3419 cups/ppd-cache.c:3839
+#: cups/ppd-cache.c:3421 cups/ppd-cache.c:3841
msgid "Tray 6"
msgstr ""
-#: cups/ppd-cache.c:3420 cups/ppd-cache.c:3840
+#: cups/ppd-cache.c:3422 cups/ppd-cache.c:3842
msgid "Tray 7"
msgstr ""
-#: cups/ppd-cache.c:3421 cups/ppd-cache.c:3841
+#: cups/ppd-cache.c:3423 cups/ppd-cache.c:3843
msgid "Tray 8"
msgstr ""
-#: cups/ppd-cache.c:3422 cups/ppd-cache.c:3842
+#: cups/ppd-cache.c:3424 cups/ppd-cache.c:3844
msgid "Tray 9"
msgstr ""
-#: cups/ppd-cache.c:3041
+#: cups/ppd-cache.c:3025
msgid "Triple Staple (Landscape)"
msgstr ""
-#: cups/ppd-cache.c:3039
+#: cups/ppd-cache.c:3023
msgid "Triple Staple (Portrait)"
msgstr ""
-#: cups/ppd-cache.c:3038
+#: cups/ppd-cache.c:3022
msgid "Triple Staple (Reverse Landscape)"
msgstr ""
-#: cups/ppd-cache.c:3040
+#: cups/ppd-cache.c:3024
msgid "Triple Staple (Reverse Portrait)"
msgstr ""
-#: cups/ppd-cache.c:3615
+#: cups/ppd-cache.c:3617
msgid "Triple Wall Cardboard"
msgstr ""
-#: cups/tls-darwin.c:652 cups/tls-darwin.c:734 cups/tls-gnutls.c:484
-#: cups/tls-gnutls.c:566
+#: cups/tls-darwin.c:652 cups/tls-darwin.c:734 cups/tls-gnutls.c:509
+#: cups/tls-gnutls.c:591
msgid "Trust on first use is disabled."
msgstr ""
msgid "Unable to add document to print job."
msgstr ""
-#: scheduler/ipp.c:1584
+#: scheduler/ipp.c:1582
#, c-format
msgid "Unable to add job for destination \"%s\"."
msgstr ""
msgid "Unable to add printer"
msgstr ""
-#: scheduler/ipp.c:1187
+#: scheduler/ipp.c:1185
msgid "Unable to allocate memory for file types."
msgstr ""
-#: filter/pstops.c:421
+#: filter/pstops.c:420
msgid "Unable to allocate memory for page info"
msgstr ""
-#: filter/pstops.c:415
+#: filter/pstops.c:414
msgid "Unable to allocate memory for pages array"
msgstr ""
msgid "Unable to cancel RSS subscription"
msgstr ""
-#: backend/ipp.c:2150 backend/ipp.c:2682
+#: backend/ipp.c:2150 backend/ipp.c:2683
msgid "Unable to cancel print job."
msgstr ""
msgid "Unable to change server settings"
msgstr ""
-#: cups/ipp.c:5303
+#: cups/ipp.c:5287
#, c-format
msgid "Unable to compile mimeMediaType regular expression: %s."
msgstr ""
-#: cups/ipp.c:5249
+#: cups/ipp.c:5233
#, c-format
msgid "Unable to compile naturalLanguage regular expression: %s."
msgstr ""
msgid "Unable to copy CUPS printer driver files (%d)."
msgstr ""
-#: scheduler/ipp.c:2690
+#: scheduler/ipp.c:2687
#, c-format
msgid "Unable to copy PPD file - %s"
msgstr ""
-#: scheduler/ipp.c:2735
+#: scheduler/ipp.c:2732
msgid "Unable to copy PPD file."
msgstr ""
msgid "Unable to copy Windows 9x printer driver files (%d)."
msgstr ""
-#: cups/tls-darwin.c:618 cups/tls-gnutls.c:447
+#: cups/tls-darwin.c:618 cups/tls-gnutls.c:472
msgid "Unable to create credentials from array."
msgstr ""
msgid "Unable to create printer-uri"
msgstr ""
-#: scheduler/ipp.c:5508
+#: scheduler/ipp.c:5511
msgid "Unable to create printer."
msgstr ""
-#: cups/tls-darwin.c:1484 cups/tls-gnutls.c:1494
+#: cups/tls-darwin.c:1484 cups/tls-gnutls.c:1519
msgid "Unable to create server credentials."
msgstr ""
msgid "Unable to find destination for job"
msgstr ""
-#: cups/http-support.c:2101
+#: cups/http-support.c:2098
msgid "Unable to find printer."
msgstr ""
msgid "Unable to find server credentials."
msgstr ""
-#: backend/ipp.c:3345
+#: backend/ipp.c:3346
msgid "Unable to get backend exit status."
msgstr ""
msgid "Unable to move jobs"
msgstr ""
-#: cgi-bin/admin.c:3171 cups/ppd.c:314
+#: cgi-bin/admin.c:3171 cups/ppd.c:295
msgid "Unable to open PPD file"
msgstr ""
msgid "Unable to open device file"
msgstr ""
-#: scheduler/ipp.c:6348
+#: scheduler/ipp.c:6351
#, c-format
msgid "Unable to open document #%d in job #%d."
msgstr ""
#: backend/ipp.c:386 backend/ipp.c:1605 backend/ipp.c:1818 backend/lpd.c:479
#: backend/socket.c:147 backend/usb.c:229 filter/gziptoany.c:71
-#: filter/pstops.c:268
+#: filter/pstops.c:267
msgid "Unable to open print file"
msgstr ""
msgid "Unable to read print data."
msgstr ""
-#: scheduler/ipp.c:8640 scheduler/ipp.c:9883
+#: scheduler/ipp.c:8643 scheduler/ipp.c:9886
msgid "Unable to rename job document file."
msgstr ""
msgid "Unable to run \"%s\": %s"
msgstr ""
-#: filter/pstops.c:533
+#: filter/pstops.c:532
msgid "Unable to see in file"
msgstr ""
msgid "Unable to set server default"
msgstr ""
-#: backend/ipp.c:3204 backend/ipp.c:3281 backend/ipp.c:3289
+#: backend/ipp.c:3205 backend/ipp.c:3282 backend/ipp.c:3290
msgid "Unable to start backend process."
msgstr ""
msgid "Units"
msgstr ""
-#: cups/http-support.c:1560 cups/http-support.c:1644 cups/ppd.c:343
+#: cups/http-support.c:1560 cups/http-support.c:1644 cups/ppd.c:324
msgid "Unknown"
msgstr ""
-#: filter/pstops.c:2188
+#: filter/pstops.c:2187
#, c-format
msgid "Unknown choice \"%s\" for option \"%s\"."
msgstr ""
msgid "Unknown hash algorithm."
msgstr ""
-#: cups/dest-options.c:1024
+#: cups/dest-options.c:1033
msgid "Unknown media size name."
msgstr ""
msgid "Unknown option \"%s\" with value \"%s\"."
msgstr ""
-#: filter/pstops.c:2171
+#: filter/pstops.c:2170
#, c-format
msgid "Unknown option \"%s\"."
msgstr ""
msgid "Unknown print mode: \"%s\"."
msgstr ""
-#: scheduler/ipp.c:10828
+#: scheduler/ipp.c:10831
#, c-format
msgid "Unknown printer-error-policy \"%s\"."
msgstr ""
-#: scheduler/ipp.c:10811
+#: scheduler/ipp.c:10814
#, c-format
msgid "Unknown printer-op-policy \"%s\"."
msgstr ""
-#: cups/http.c:2294
+#: cups/http.c:2306
msgid "Unknown request method."
msgstr ""
-#: cups/http.c:2314
+#: cups/http.c:2326
msgid "Unknown request version."
msgstr ""
msgid "Unknown scheme in URI"
msgstr ""
-#: cups/http-addrlist.c:822
+#: cups/http-addrlist.c:824
msgid "Unknown service name."
msgstr ""
msgid "Unknown version option value: \"%s\"."
msgstr ""
-#: scheduler/ipp.c:11287
+#: scheduler/ipp.c:11290
#, c-format
msgid "Unsupported 'compression' value \"%s\"."
msgstr ""
-#: scheduler/ipp.c:11317
+#: scheduler/ipp.c:11320
#, c-format
msgid "Unsupported 'document-format' value \"%s\"."
msgstr ""
-#: scheduler/ipp.c:7987 scheduler/ipp.c:10370 scheduler/ipp.c:11331
+#: scheduler/ipp.c:7990 scheduler/ipp.c:10373 scheduler/ipp.c:11334
msgid "Unsupported 'job-hold-until' value."
msgstr ""
-#: scheduler/ipp.c:11347
+#: scheduler/ipp.c:11350
msgid "Unsupported 'job-name' value."
msgstr ""
-#: scheduler/ipp.c:310
+#: scheduler/ipp.c:308
#, c-format
msgid "Unsupported character set \"%s\"."
msgstr ""
-#: scheduler/ipp.c:8447 scheduler/ipp.c:9695
+#: scheduler/ipp.c:8450 scheduler/ipp.c:9698
#, c-format
msgid "Unsupported compression \"%s\"."
msgstr ""
-#: scheduler/ipp.c:8583 scheduler/ipp.c:9848
+#: scheduler/ipp.c:8586 scheduler/ipp.c:9851
#, c-format
msgid "Unsupported document-format \"%s\"."
msgstr ""
-#: scheduler/ipp.c:9831
+#: scheduler/ipp.c:9834
#, c-format
msgid "Unsupported document-format \"%s/%s\"."
msgstr ""
-#: scheduler/ipp.c:1369
+#: scheduler/ipp.c:1367
#, c-format
msgid "Unsupported format \"%s\"."
msgstr ""
-#: scheduler/ipp.c:1467
+#: scheduler/ipp.c:1465
msgid "Unsupported margins."
msgstr ""
-#: cups/pwg-media.c:544
+#: cups/pwg-media.c:545
msgid "Unsupported media value."
msgstr ""
-#: filter/pstops.c:2453
+#: filter/pstops.c:2452
#, c-format
msgid "Unsupported number-up value %d, using number-up=1."
msgstr ""
-#: filter/pstops.c:2487
+#: filter/pstops.c:2486
#, c-format
msgid "Unsupported number-up-layout value %s, using number-up-layout=lrtb."
msgstr ""
-#: filter/pstops.c:2538
+#: filter/pstops.c:2537
#, c-format
msgid "Unsupported page-border value %s, using page-border=none."
msgstr ""
#: backend/dnssd.c:225 backend/ipp.c:334 backend/lpd.c:178
#: backend/socket.c:124 backend/usb.c:175 filter/commandtops.c:61
-#: filter/gziptoany.c:44 filter/pstops.c:229 monitor/bcp.c:54
+#: filter/gziptoany.c:44 filter/pstops.c:228 monitor/bcp.c:54
#: monitor/tbcp.c:53
#, c-format
msgid "Usage: %s job-id user title copies options [file]"
msgid "Usage: cupsaddsmb [options] printer1 ... printerN"
msgstr ""
-#: systemv/cupsctl.c:193
+#: systemv/cupsctl.c:234
msgid "Usage: cupsctl [options] [param=value ... paramN=valueN]"
msgstr ""
-#: scheduler/main.c:2102
+#: scheduler/main.c:2096
msgid "Usage: cupsd [options]"
msgstr ""
msgid "Usage: lpmove job/src dest"
msgstr ""
-#: systemv/lpoptions.c:523
+#: systemv/lpoptions.c:536
msgid ""
"Usage: lpoptions [-h server] [-E] -d printer\n"
" lpoptions [-h server] [-E] [-p printer] -l\n"
msgid "Usage: ppdi [options] filename.ppd [ ... filenameN.ppd ]"
msgstr ""
-#: ppdc/ppdmerge.cxx:359
+#: ppdc/ppdmerge.cxx:357
msgid "Usage: ppdmerge [options] filename.ppd [ ... filenameN.ppd ]"
msgstr ""
msgid "VarBind uses indefinite length"
msgstr ""
-#: cups/ppd-cache.c:3603
+#: cups/ppd-cache.c:3605
msgid "Vellum Paper"
msgstr ""
msgid "Waiting for printer to become available."
msgstr ""
-#: backend/socket.c:420
+#: backend/socket.c:422
msgid "Waiting for printer to finish."
msgstr ""
msgid "Warning, no Windows 2000 printer drivers are installed."
msgstr ""
-#: cups/ppd-cache.c:3528
+#: cups/ppd-cache.c:3530
msgid "Waterproof Fabric"
msgstr ""
msgid "Web Interface is Disabled"
msgstr ""
-#: cups/ppd-cache.c:3616
+#: cups/ppd-cache.c:3618
msgid "Wet Film"
msgstr ""
-#: cups/ppd-cache.c:3521
+#: cups/ppd-cache.c:3523
msgid "Windowed Envelope"
msgstr ""
-#: cups/ppd.c:2008
+#: cups/ppd.c:1951
msgid "Yes"
msgstr ""
msgid "You must access this page using the URL <A HREF=\"https://%s:%d%s\">https://%s:%d%s</A>."
msgstr ""
-#: cups/ppd-cache.c:3004
+#: cups/ppd-cache.c:2988
msgid "Z Fold"
msgstr ""
msgid "completed"
msgstr ""
-#: scheduler/ipp.c:6220
+#: scheduler/ipp.c:6223
msgid "cups-deviced failed to execute."
msgstr ""
-#: scheduler/ipp.c:7106 scheduler/ipp.c:7345
+#: scheduler/ipp.c:7109 scheduler/ipp.c:7348
msgid "cups-driverd failed to execute."
msgstr ""
msgid "cupsaddsmb: No PPD file for printer \"%s\" - %s"
msgstr ""
-#: systemv/cupsctl.c:134
-msgid "cupsctl: Cannot set Listen or Port directly."
+#: systemv/cupsctl.c:173
+#, c-format
+msgid "cupsctl: Cannot set %s directly."
msgstr ""
-#: systemv/cupsctl.c:145
+#: systemv/cupsctl.c:186
#, c-format
msgid "cupsctl: Unable to connect to server: %s"
msgstr ""
-#: systemv/cupsctl.c:188
+#: systemv/cupsctl.c:229
#, c-format
msgid "cupsctl: Unknown option \"%s\""
msgstr ""
-#: systemv/cupsctl.c:190
+#: systemv/cupsctl.c:231
#, c-format
msgid "cupsctl: Unknown option \"-%c\""
msgstr ""
msgid "ipptool: Unknown option \"-%c\"."
msgstr ""
-#: scheduler/ipp.c:8113
+#: scheduler/ipp.c:8116
msgid "job-printer-uri attribute missing."
msgstr ""
msgid "lpadmin: Unable to connect to server: %s"
msgstr ""
-#: systemv/lpadmin.c:1460
+#: systemv/lpadmin.c:1461
msgid "lpadmin: Unable to create temporary file"
msgstr ""
msgid "lpadmin: Unable to open PPD \"%s\": %s on line %d."
msgstr ""
-#: systemv/lpadmin.c:1472
+#: systemv/lpadmin.c:1473
#, c-format
msgid "lpadmin: Unable to open PPD file \"%s\" - %s"
msgstr ""
msgid "lpoptions: Unable to add printer or instance: %s"
msgstr ""
-#: systemv/lpoptions.c:491
+#: systemv/lpoptions.c:493 systemv/lpoptions.c:502
#, c-format
msgid "lpoptions: Unable to get PPD file for %s: %s"
msgstr ""
-#: systemv/lpoptions.c:499
+#: systemv/lpoptions.c:512
#, c-format
msgid "lpoptions: Unable to open PPD file for %s."
msgstr ""
msgid "no system default destination"
msgstr ""
-#: scheduler/ipp.c:5905
+#: scheduler/ipp.c:5908
msgid "notify-events not specified."
msgstr ""
-#: scheduler/ipp.c:2049 scheduler/ipp.c:5791
+#: scheduler/ipp.c:2047 scheduler/ipp.c:5794
#, c-format
msgid "notify-recipient-uri URI \"%s\" is already used."
msgstr ""
-#: scheduler/ipp.c:2039 scheduler/ipp.c:5781
+#: scheduler/ipp.c:2037 scheduler/ipp.c:5784
#, c-format
msgid "notify-recipient-uri URI \"%s\" uses unknown scheme."
msgstr ""
msgid "ppdc: Writing PPD files to directory \"%s\"."
msgstr ""
-#: ppdc/ppdmerge.cxx:128
+#: ppdc/ppdmerge.cxx:129
#, c-format
msgid "ppdmerge: Bad LanguageVersion \"%s\" in %s."
msgstr ""
-#: ppdc/ppdmerge.cxx:168
+#: ppdc/ppdmerge.cxx:166
#, c-format
msgid "ppdmerge: Ignoring PPD file %s."
msgstr ""
-#: ppdc/ppdmerge.cxx:152
+#: ppdc/ppdmerge.cxx:150
#, c-format
msgid "ppdmerge: Unable to backup %s to %s - %s"
msgstr ""
"cups-deviced failed to execute." = "cups-deviced failed to execute.";
"cups-driverd failed to execute." = "cups-driverd failed to execute.";
"cupsaddsmb: No PPD file for printer \"%s\" - %s" = "cupsaddsmb: No PPD file for printer “%s” - %s";
-"cupsctl: Cannot set Listen or Port directly." = "cupsctl: Cannot set Listen or Port directly.";
+"cupsctl: Cannot set %s directly." = "cupsctl: Cannot set %s directly.";
"cupsctl: Unable to connect to server: %s" = "cupsctl: Unable to connect to server: %s";
"cupsctl: Unknown option \"%s\"" = "cupsctl: Unknown option “%s”";
"cupsctl: Unknown option \"-%c\"" = "cupsctl: Unknown option “-%c”";
msgstr ""
"Project-Id-Version: CUPS 1.4.6\n"
"Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n"
-"POT-Creation-Date: 2018-09-28 11:22-0400\n"
+"POT-Creation-Date: 2019-05-15 10:31-0400\n"
"PO-Revision-Date: 2012-09-29 11:21+0200\n"
"Last-Translator: Àngel Mompó <mecatxis@gmail.com>\n"
"Language-Team: Catalan <ca@dodds.net>\n"
msgid "cupsaddsmb: No PPD file for printer \"%s\" - %s"
msgstr "cupsaddsmb: falta el fitxer PPD per la impressora «%s» - %s"
-msgid "cupsctl: Cannot set Listen or Port directly."
-msgstr "cupsctl: no es pot establir Listen o Port directament."
+#, c-format
+msgid "cupsctl: Cannot set %s directly."
+msgstr ""
#, c-format
msgid "cupsctl: Unable to connect to server: %s"
#~ "convert: feu servir l'opció -f per especificar el fitxer que voleu "
#~ "convertir."
+#~ msgid "cupsctl: Cannot set Listen or Port directly."
+#~ msgstr "cupsctl: no es pot establir Listen o Port directament."
+
#~ msgid "cupsd: launchd(8) support not compiled in, running in normal mode."
#~ msgstr ""
#~ "cupsd: no s'ha compilat amb compatibilitat per launchd(8). S'executa en "
msgstr ""
"Project-Id-Version: CUPS 1.6\n"
"Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n"
-"POT-Creation-Date: 2018-09-28 11:22-0400\n"
+"POT-Creation-Date: 2019-05-15 10:31-0400\n"
"PO-Revision-Date: 2012-09-14 10:26+0100\n"
"Last-Translator: Jan Bartos <jan.bartos@madeta.cz>\n"
"Language-Team: Czech\n"
msgid "cupsaddsmb: No PPD file for printer \"%s\" - %s"
msgstr ""
-msgid "cupsctl: Cannot set Listen or Port directly."
+#, c-format
+msgid "cupsctl: Cannot set %s directly."
msgstr ""
#, c-format
msgstr ""
"Project-Id-Version: CUPS 2.0\n"
"Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n"
-"POT-Creation-Date: 2018-09-28 11:22-0400\n"
+"POT-Creation-Date: 2019-05-15 10:31-0400\n"
"PO-Revision-Date: 2017-10-25 14:57+0200\n"
"Last-Translator: Michael Weghorn <m.weghorn@posteo.de>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgid "cupsaddsmb: No PPD file for printer \"%s\" - %s"
msgstr "cupsaddsmb: Keine PPD Datei für Drucker »%s« - %s"
-msgid "cupsctl: Cannot set Listen or Port directly."
-msgstr "cupsctl: Kann nicht direkt auf dem Port hören."
+#, c-format
+msgid "cupsctl: Cannot set %s directly."
+msgstr ""
#, c-format
msgid "cupsctl: Unable to connect to server: %s"
#~ msgid "compression.none"
#~ msgstr "None"
+#~ msgid "cupsctl: Cannot set Listen or Port directly."
+#~ msgstr "cupsctl: Kann nicht direkt auf dem Port hören."
+
#~ msgid "destination-accesses"
#~ msgstr "Destination Accesses"
msgstr ""
"Project-Id-Version: CUPS 2.2\n"
"Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n"
-"POT-Creation-Date: 2018-09-28 11:22-0400\n"
+"POT-Creation-Date: 2019-05-15 10:31-0400\n"
"PO-Revision-Date: 2016-06-26 21:17+0100\n"
"Last-Translator: Juan Pablo González Riopedre <jpgriopedre@yahoo.es>\n"
"Language-Team: Spanish\n"
msgid ""
"Usage: cupstestppd [options] filename1.ppd[.gz] [... filenameN.ppd[.gz]]"
msgstr ""
-"Uso: cupstestppd [opciones] nombre_archivo1.ppd[.gz] [... nombre_archivoN."
-"ppd[.gz]]"
+"Uso: cupstestppd [opciones] nombre_archivo1.ppd[.gz] [... nombre_archivoN.ppd"
+"[.gz]]"
msgid ""
"Usage: ippfind [options] regtype[,subtype][.domain.] ... [expression]\n"
msgid "cupsaddsmb: No PPD file for printer \"%s\" - %s"
msgstr "cupsaddsmb: No hay archivo PPD para la impresora \"%s\" - %s"
-msgid "cupsctl: Cannot set Listen or Port directly."
-msgstr "cupsctl: No se puede establecer Listen o Port directamente."
+#, c-format
+msgid "cupsctl: Cannot set %s directly."
+msgstr ""
#, c-format
msgid "cupsctl: Unable to connect to server: %s"
#~ msgid "compression.none"
#~ msgstr "None"
+#~ msgid "cupsctl: Cannot set Listen or Port directly."
+#~ msgstr "cupsctl: No se puede establecer Listen o Port directamente."
+
#~ msgid "destination-accesses"
#~ msgstr "Destination Accesses"
msgstr ""
"Project-Id-Version: CUPS 1.6\n"
"Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n"
-"POT-Creation-Date: 2018-09-28 11:22-0400\n"
+"POT-Creation-Date: 2019-05-15 10:31-0400\n"
"PO-Revision-Date: 2012-12-12 11:12+0100\n"
"Last-Translator: Stéphane Blondon <stephane.blondon@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgid "cupsaddsmb: No PPD file for printer \"%s\" - %s"
msgstr ""
-msgid "cupsctl: Cannot set Listen or Port directly."
+#, c-format
+msgid "cupsctl: Cannot set %s directly."
msgstr ""
#, c-format
msgstr ""
"Project-Id-Version: CUPS 1.6\n"
"Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n"
-"POT-Creation-Date: 2018-09-28 11:22-0400\n"
+"POT-Creation-Date: 2019-05-15 10:31-0400\n"
"PO-Revision-Date: 2013-07-14 12:00+0200\n"
"Last-Translator: Giovanni Scafora <giovanni@archlinux.org>\n"
"Language-Team: Arch Linux Italian Team <giovanni@archlinux.org>\n"
msgid "cupsaddsmb: No PPD file for printer \"%s\" - %s"
msgstr "cupsaddsmb: nessun file PPD per la stampante \"%s\" - %s"
-msgid "cupsctl: Cannot set Listen or Port directly."
-msgstr "cupsctl: non è possibile impostare direttamente Listen o Port."
+#, c-format
+msgid "cupsctl: Cannot set %s directly."
+msgstr ""
#, c-format
msgid "cupsctl: Unable to connect to server: %s"
#~ msgid "compression.none"
#~ msgstr "None"
+#~ msgid "cupsctl: Cannot set Listen or Port directly."
+#~ msgstr "cupsctl: non è possibile impostare direttamente Listen o Port."
+
#~ msgid "cupsd: launchd(8) support not compiled in, running in normal mode."
#~ msgstr ""
#~ "cupsd: launchd(8) non supporta i compilati, quando è in modalità normale."
msgstr ""
"Project-Id-Version: CUPS 2.0\n"
"Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n"
-"POT-Creation-Date: 2018-09-28 11:22-0400\n"
+"POT-Creation-Date: 2019-05-15 10:31-0400\n"
"PO-Revision-Date: 2014-11-15 19:27+0900\n"
"Last-Translator: OPFC TRANSCUPS <opfc-transcups@sourceforge.jp>\n"
"Language-Team: OPFC TRANSCUPS <opfc-transcups@sourceforge.jp>\n"
msgid "cupsaddsmb: No PPD file for printer \"%s\" - %s"
msgstr "cupsaddsmb: プリンター \"%s\" の PPD ファイルがありません - %s"
-msgid "cupsctl: Cannot set Listen or Port directly."
-msgstr "cupsctl: Listen あるいは Port を直接設定できません。"
+#, c-format
+msgid "cupsctl: Cannot set %s directly."
+msgstr ""
#, c-format
msgid "cupsctl: Unable to connect to server: %s"
#~ msgid "compression.none"
#~ msgstr "None"
+#~ msgid "cupsctl: Cannot set Listen or Port directly."
+#~ msgstr "cupsctl: Listen あるいは Port を直接設定できません。"
+
#~ msgid "cupsd: launchd(8) support not compiled in, running in normal mode."
#~ msgstr ""
#~ "cupsd: launchd(8) サポートがコンパイルされていないので、通常モードで動作し"
msgstr ""
"Project-Id-Version: CUPS 2.1.2\n"
"Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n"
-"POT-Creation-Date: 2018-09-28 11:22-0400\n"
+"POT-Creation-Date: 2019-05-15 10:31-0400\n"
"PO-Revision-Date: 2016-01-31 16:45-0200\n"
"Last-Translator: Rafael Fontenelle <rffontenelle@gmail.com>\n"
"Language-Team: Brazilian Portuguese <traducao-cups-pt-br@googlegroups.com>\n"
msgid "cupsaddsmb: No PPD file for printer \"%s\" - %s"
msgstr "cupsaddsmb: Nenhum arquivo PPD para a impressora \"%s\" - %s"
-msgid "cupsctl: Cannot set Listen or Port directly."
-msgstr "cupsctl: Não foi possível definir diretamente Porta ou Listen."
+#, c-format
+msgid "cupsctl: Cannot set %s directly."
+msgstr ""
#, c-format
msgid "cupsctl: Unable to connect to server: %s"
#~ msgid "compression.none"
#~ msgstr "None"
+#~ msgid "cupsctl: Cannot set Listen or Port directly."
+#~ msgstr "cupsctl: Não foi possível definir diretamente Porta ou Listen."
+
#~ msgid "cupsd: launchd(8) support not compiled in, running in normal mode."
#~ msgstr ""
#~ "cupsd: Compilado sem suporte a launchd(8) e, portanto, executando no modo "
msgstr ""
"Project-Id-Version: CUPS 2.0\n"
"Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n"
-"POT-Creation-Date: 2018-09-28 11:22-0400\n"
+"POT-Creation-Date: 2019-05-15 10:31-0400\n"
"PO-Revision-Date: 2015-01-28 12:00-0800\n"
"Last-Translator: Aleksandr Proklov\n"
"Language-Team: PuppyRus Linux Team\n"
msgid "cupsaddsmb: No PPD file for printer \"%s\" - %s"
msgstr "cupsaddsmb: Нет PPD-файла для принтера \"%s\" - %s"
-msgid "cupsctl: Cannot set Listen or Port directly."
-msgstr "cupsctl: Не удается задать Listen или Port."
+#, c-format
+msgid "cupsctl: Cannot set %s directly."
+msgstr ""
#, c-format
msgid "cupsctl: Unable to connect to server: %s"
#~ msgid "compression.none"
#~ msgstr "None"
+#~ msgid "cupsctl: Cannot set Listen or Port directly."
+#~ msgstr "cupsctl: Не удается задать Listen или Port."
+
#~ msgid "destination-accesses"
#~ msgstr "Destination Accesses"
msgstr ""
"Project-Id-Version: CUPS 1.6\n"
"Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n"
-"POT-Creation-Date: 2018-09-28 11:22-0400\n"
+"POT-Creation-Date: 2019-05-15 10:31-0400\n"
"PO-Revision-Date: 2017-06-11 12:38+0800\n"
"Last-Translator: Mingcong Bai <jeffbai@aosc.xyz>\n"
"Language-Team: \n"
msgid "cupsaddsmb: No PPD file for printer \"%s\" - %s"
msgstr "cupsaddsmb:打印机“%s”无 PPD 文件 — %s"
-msgid "cupsctl: Cannot set Listen or Port directly."
-msgstr "cupsctl:无法直接设置 Listen 或 Port 值。"
+#, c-format
+msgid "cupsctl: Cannot set %s directly."
+msgstr ""
#, c-format
msgid "cupsctl: Unable to connect to server: %s"
#~ msgid "compression.none"
#~ msgstr "None"
+#~ msgid "cupsctl: Cannot set Listen or Port directly."
+#~ msgstr "cupsctl:无法直接设置 Listen 或 Port 值。"
+
#~ msgid "destination-accesses"
#~ msgstr "Destination Accesses"
.\"
.\" cupsd.conf man page for CUPS.
.\"
-.\" Copyright © 2007-2018 by Apple Inc.
+.\" Copyright © 2007-2019 by Apple Inc.
.\" Copyright © 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.\" which should have been included with this file. If this file is
.\" file is missing or damaged, see the license at "http://www.cups.org/".
.\"
-.TH cupsd.conf 5 "CUPS" "24 April 2018" "Apple Inc."
+.TH cupsd.conf 5 "CUPS" "2 May 2019" "Apple Inc."
.SH NAME
cupsd.conf \- server configuration file for cups
.SH DESCRIPTION
.TP 5
\fBMultipleOperationTimeout \fIseconds\fR
Specifies the maximum amount of time to allow between files in a multiple file print job.
-The default is "300" (5 minutes).
+The default is "900" (15 minutes).
.\"#Policy
.TP 5
\fB<Policy \fIname\fB> \fR... \fB</Policy>\fR
.TP 5
\fBTimeout \fIseconds\fR
Specifies the HTTP request timeout.
-The default is "300" (5 minutes).
+The default is "900" (15 minutes).
.\"#WebInterface
.TP 5
\fBWebInterface yes\fR
.BR subscriptions.conf (5),
CUPS Online Help (http://localhost:631/help)
.SH COPYRIGHT
-Copyright \[co] 2007-2018 by Apple Inc.
+Copyright \[co] 2007-2019 by Apple Inc.
.\"
.\" ipptoolfile man page.
.\"
-.\" Copyright 2010-2017 by Apple Inc.
+.\" Copyright 2010-2019 by Apple Inc.
.\"
.\" These coded instructions, statements, and computer programs are the
.\" property of Apple Inc. and are protected by Federal copyright
.\" which should have been included with this file. If this file is
.\" file is missing or damaged, see the license at "http://www.cups.org/".
.\"
-.TH ipptoolfile 5 "CUPS" "15 June 2017" "Apple Inc."
+.TH ipptoolfile 5 "CUPS" "5 August 2019" "Apple Inc."
.SH NAME
ipptoolfile \- ipptool file format
.SH DESCRIPTION
\fBIN\-GROUP \fItag\fR
Requires the \fBEXPECT\fR attribute to be in the specified group tag.
.TP 5
-\fBOF\-TYPE \fItag[,tag,...]\fR
+\fBOF\-TYPE \fItag[|tag,...]\fR
Requires the \fBEXPECT\fR attribute to use one of the specified value tag(s).
.TP 5
\fBREPEAT\-LIMIT \fInumber\fR
PWG Internet Printing Protocol Workgroup (http://www.pwg.org/ipp),
RFC 8011 (http://tools.ietf.org/html/rfc8011)
.SH COPYRIGHT
-Copyright \[co] 2007-2017 by Apple Inc.
+Copyright \[co] 2007-2019 by Apple Inc.
Summary: CUPS
Name: cups
-Version: 2.2.11
+Version: 2.2.12
Release: 0
Epoch: 1
License: GPL
Group: System Environment/Daemons
-Source: https://github.com/apple/cups/releases/download/v2.2.11/cups-2.2.11-source.tar.gz
+Source: https://github.com/apple/cups/releases/download/v2.2.12/cups-2.2.12-source.tar.gz
Url: http://www.cups.org
Packager: Anonymous <anonymous@example.com>
Vendor: Example Corp
groupid = group->gr_gid;
+ for (i = 0; group->gr_mem[i]; i ++)
+ {
+ /*
+ * User appears in the group membership...
+ */
+
+ if (!_cups_strcasecmp(username, group->gr_mem[i]))
+ return (1);
+ }
+
#ifdef HAVE_GETGROUPLIST
+ /*
+ * If the user isn't in the group membership list, try the results from
+ * getgrouplist() which is supposed to return the full list of groups a user
+ * belongs to...
+ */
+
if (user)
{
int ngroups; /* Number of groups */
if ((int)groupid == (int)groups[i])
return (1);
}
-
-#else
- for (i = 0; group->gr_mem[i]; i ++)
- {
- if (!_cups_strcasecmp(username, group->gr_mem[i]))
- return (1);
- }
#endif /* HAVE_GETGROUPLIST */
}
else
cupsdLogClient(con, CUPSD_LOG_DEBUG2, "cupsdReadClient: error=%d, used=%d, state=%s, data_encoding=HTTP_ENCODING_%s, data_remaining=" CUPS_LLFMT ", request=%p(%s), file=%d", httpError(con->http), (int)httpGetReady(con->http), httpStateString(httpGetState(con->http)), httpIsChunked(con->http) ? "CHUNKED" : "LENGTH", CUPS_LLCAST httpGetRemaining(con->http), con->request, con->request ? ippStateString(ippGetState(con->request)) : "", con->file);
+ if (httpError(con->http) == EPIPE && !httpGetReady(con->http) && recv(httpGetFd(con->http), buf, 1, MSG_PEEK) < 1)
+ {
+ /*
+ * Connection closed...
+ */
+
+ cupsdLogClient(con, CUPSD_LOG_DEBUG, "Closing on EOF.");
+ cupsdCloseClient(con);
+ return;
+ }
+
if (httpGetState(con->http) == HTTP_STATE_GET_SEND ||
httpGetState(con->http) == HTTP_STATE_POST_SEND ||
httpGetState(con->http) == HTTP_STATE_STATUS)
* connection and we need to shut it down...
*/
- if (!httpGetReady(con->http) && recv(httpGetFd(con->http), buf, 1, MSG_PEEK) < 1)
- {
- /*
- * Connection closed...
- */
-
- cupsdLogClient(con, CUPSD_LOG_DEBUG, "Closing on EOF.");
- cupsdCloseClient(con);
- return;
- }
-
cupsdLogClient(con, CUPSD_LOG_DEBUG, "Closing on unexpected HTTP read state %s.", httpStateString(httpGetState(con->http)));
cupsdCloseClient(con);
return;
strlcpy(location, httpGetField(con->http, HTTP_FIELD_LOCATION), sizeof(location));
httpClearFields(con->http);
+ httpClearCookie(con->http);
httpSetField(con->http, HTTP_FIELD_LOCATION, location);
/*
* Configuration routines for the CUPS scheduler.
*
- * Copyright © 2007-2018 by Apple Inc.
+ * Copyright © 2007-2019 by Apple Inc.
* Copyright © 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
MaxClientsPerHost = 0;
MaxLogSize = 1024 * 1024;
MaxRequestSize = 0;
- MultipleOperationTimeout = DEFAULT_TIMEOUT;
+ MultipleOperationTimeout = 900;
NumSystemGroups = 0;
ReloadTimeout = DEFAULT_KEEPALIVE;
RootCertDuration = 300;
Sandboxing = CUPSD_SANDBOXING_STRICT;
StrictConformance = FALSE;
SyncOnClose = FALSE;
- Timeout = DEFAULT_TIMEOUT;
+ Timeout = 900;
WebInterface = CUPS_DEFAULT_WEBIF;
BrowseLocalProtocols = parse_protocols(CUPS_DEFAULT_BROWSE_LOCAL_PROTOCOLS);
if (cupsdTimeoutJob(job))
continue;
- }
- cupsdSetJobState(job, IPP_JOB_PENDING, CUPSD_JOB_DEFAULT,
- "Job submission timed out.");
+ cupsdSetJobState(job, IPP_JOB_PENDING, CUPSD_JOB_DEFAULT, "Job submission timed out.");
+ cupsdLogJob(job, CUPSD_LOG_ERROR, "Job submission timed out.");
+ }
+ else
+ cupsdSetJobState(job, IPP_JOB_PENDING, CUPSD_JOB_DEFAULT, "Job hold expired.");
}
/*
{
cupsdLogMessage(CUPSD_LOG_DEBUG2, "cupsdCleanJobs: Job %d, state=%d, printer=%p, history_time=%d, file_time=%d", job->id, (int)job->state_value, (void *)job->printer, (int)job->history_time, (int)job->file_time);
- if ((job->history_time && job->history_time) < JobHistoryUpdate || !JobHistoryUpdate)
+ if ((job->history_time && job->history_time < JobHistoryUpdate) || !JobHistoryUpdate)
JobHistoryUpdate = job->history_time;
if ((job->file_time && job->file_time < JobHistoryUpdate) || !JobHistoryUpdate)
break;
case IPP_TAG_STRING :
+ {
+ int length = attr->values[i].unknown.length;
+
+ for (valptr = attr->values[i].unknown.data; length > 0; length --)
+ {
+ if ((*valptr & 255) < 0x20 || *valptr == 0x7f)
+ break;
+ }
+
+ if (length > 0)
+ {
+ /*
+ * Encode this string as hex characters...
+ */
+
+ *optptr++ = '<';
+
+ for (valptr = attr->values[i].unknown.data, length = attr->values[i].unknown.length; length > 0; length --)
+ {
+ snprintf(optptr, optlength - (size_t)(optptr - options) - 1, "%02X", *valptr & 255);
+ optptr += 2;
+ }
+
+ *optptr++ = '>';
+ }
+ else
+ {
+ for (valptr = attr->values[i].unknown.data, length = attr->values[i].unknown.length; length > 0; length --)
+ {
+ if (strchr(" \t\n\\\'\"", *valptr))
+ *optptr++ = '\\';
+ *optptr++ = *valptr++;
+ }
+ }
+ }
+
+ *optptr = '\0';
+ break;
+
case IPP_TAG_TEXT :
case IPP_TAG_NAME :
case IPP_TAG_KEYWORD :
break;
case IPP_TAG_STRING :
+ /*
+ * Octet strings can contain characters that need quoting. We need
+ * at least 2 * len + 2 characters to cover the quotes and any
+ * backslashes in the string.
+ */
+
+ for (i = 0; i < attr->num_values; i ++)
+ bytes += 2 * (size_t)attr->values[i].unknown.length + 2;
+ break;
+
case IPP_TAG_TEXT :
case IPP_TAG_NAME :
case IPP_TAG_KEYWORD :
#ifdef HAVE_ONDEMAND
if (OnDemand)
+ {
+ stop_scheduler = 1;
break;
+ }
#endif /* HAVE_ONDEMAND */
DoingShutdown = 1;
#ifdef HAVE_ONDEMAND
if (OnDemand)
{
+ int shared_printers = 0; /* Do we have shared printers? */
+
strlcpy(pidfile, CUPS_KEEPALIVE, sizeof(pidfile));
+ /*
+ * If printer sharing is on see if there are any actual shared printers...
+ */
+
+ if (Browsing && BrowseLocalProtocols)
+ {
+ cupsd_printer_t *p = NULL; /* Current printer */
+
+ for (p = (cupsd_printer_t *)cupsArrayFirst(Printers); p; p = (cupsd_printer_t *)cupsArrayNext(Printers))
+ {
+ if (p->shared)
+ break;
+ }
+
+ shared_printers = (p != NULL);
+ }
+
if (cupsArrayCount(ActiveJobs) || /* Active jobs */
WebInterface || /* Web interface enabled */
NeedReload || /* Doing a reload */
- (Browsing && BrowseLocalProtocols && cupsArrayCount(Printers)))
- /* Printers being shared */
+ shared_printers) /* Printers being shared */
{
/*
* Create or remove the "keep-alive" file based on whether there are active
[Unit]
Description=CUPS Scheduler
Documentation=man:cupsd(8)
+After=sssd.service
[Service]
ExecStart=@sbindir@/cupsd -l
}
else if (!_cups_strcasecmp(line, "Info"))
{
- if (value)
- cupsdSetString(&p->info, value);
+ cupsdSetString(&p->info, value ? value : "");
}
else if (!_cups_strcasecmp(line, "MakeModel"))
{
}
else if (!_cups_strcasecmp(line, "Location"))
{
- if (value)
- cupsdSetString(&p->location, value);
+ cupsdSetString(&p->location, value ? value : "");
}
else if (!_cups_strcasecmp(line, "GeoLocation"))
{
- if (value)
- cupsdSetString(&p->geo_location, value);
+ cupsdSetString(&p->geo_location, value ? value : "");
}
else if (!_cups_strcasecmp(line, "Organization"))
{
- if (value)
- cupsdSetString(&p->organization, value);
+ cupsdSetString(&p->organization, value ? value : "");
}
else if (!_cups_strcasecmp(line, "OrganizationalUnit"))
{
- if (value)
- cupsdSetString(&p->organizational_unit, value);
+ cupsdSetString(&p->organizational_unit, value ? value : "");
}
else if (!_cups_strcasecmp(line, "DeviceURI"))
{
/*
* Scheduler control program for CUPS.
*
- * Copyright 2007-2018 by Apple Inc.
+ * Copyright 2007-2019 by Apple Inc.
* Copyright 2006-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
main(int argc, /* I - Number of command-line args */
char *argv[]) /* I - Command-line arguments */
{
- int i, /* Looping var */
+ int i, j, /* Looping vars */
num_settings; /* Number of settings */
- cups_option_t *settings; /* Settings */
+ cups_option_t *settings, /* Settings */
+ *setting; /* Current setting */
const char *opt; /* Current option character */
http_t *http; /* Connection to server */
+ static const char * const disallowed[] =
+ { /* List of disallowed directives for cupsd.conf */
+ "AccessLog",
+ "CacheDir",
+ "ConfigFilePerm",
+ "DataDir",
+ "DocumentRoot",
+ "ErrorLog",
+ "FatalErrors",
+ "FileDevice",
+ "FontPath",
+ "Group",
+ "Listen",
+ "LogFilePerm",
+ "LPDConfigFile",
+ "PageLog",
+ "PassEnv",
+ "Port",
+ "Printcap",
+ "PrintcapFormat",
+ "RemoteRoot",
+ "RequestRoot",
+ "ServerBin",
+ "ServerCertificate",
+ "ServerKey",
+ "ServerKeychain",
+ "ServerRoot",
+ "SetEnv",
+ "SMBConfigFile",
+ "StateDir",
+ "SystemGroup",
+ "SystemGroupAuthKey",
+ "TempDir",
+ "User"
+ };
/*
usage(argv[i]);
}
- if (cupsGetOption("Listen", num_settings, settings) ||
- cupsGetOption("Port", num_settings, settings))
+ for (i = num_settings, setting = settings; i > 0; i --, setting ++)
{
- _cupsLangPuts(stderr, _("cupsctl: Cannot set Listen or Port directly."));
- return (1);
+ for (j = 0; j < (int)(sizeof(disallowed) / sizeof(disallowed[0])); j ++)
+ {
+ if (!_cups_strcasecmp(setting->name, disallowed[j]))
+ {
+ _cupsLangPrintf(stderr, _("cupsctl: Cannot set %s directly."), disallowed[j]);
+ return (1);
+ }
+ }
}
/*
(boolval = cupsGetOption("cupsIPPSupplies", num_options,
options)) != NULL)
{
+ ppdchanged = 1;
wrote_ipp_supplies = 1;
cupsFilePrintf(out, "*cupsIPPSupplies: %s\n",
(!_cups_strcasecmp(boolval, "true") ||
(boolval = cupsGetOption("cupsSNMPSupplies", num_options,
options)) != NULL)
{
+ ppdchanged = 1;
wrote_snmp_supplies = 1;
cupsFilePrintf(out, "*cupsSNMPSupplies: %s\n",
(!_cups_strcasecmp(boolval, "true") ||
(boolval = cupsGetOption("cupsIPPSupplies", num_options,
options)) != NULL)
{
+ ppdchanged = 1;
+
cupsFilePrintf(out, "*cupsIPPSupplies: %s\n",
(!_cups_strcasecmp(boolval, "true") ||
!_cups_strcasecmp(boolval, "yes") ||
(boolval = cupsGetOption("cupsSNMPSupplies", num_options,
options)) != NULL)
{
+ ppdchanged = 1;
+
cupsFilePrintf(out, "*cupsSNMPSupplies: %s\n",
(!_cups_strcasecmp(boolval, "true") ||
!_cups_strcasecmp(boolval, "yes") ||
* Do the request...
*/
- ippDelete(cupsDoFileRequest(http, request, "/admin/",
- ppdchanged ? tempfile : file));
+ ippDelete(cupsDoFileRequest(http, request, "/admin/", ppdchanged ? tempfile : file));
/*
* Clean up temp files... (TODO: catch signals in case we CTRL-C during
</div>
</div>
- <div class="footer">CUPS und das CUPS-Logo sind Warenzeichen der <a href="https://www.apple.com/">Apple Inc.</a> Copyright © 2007-2018 Apple Inc. Alle Rechte vorbehalten.</div>
+ <div class="footer">CUPS und das CUPS-Logo sind Warenzeichen der <a href="https://www.apple.com/">Apple Inc.</a> Copyright © 2007-2019 Apple Inc. Alle Rechte vorbehalten.</div>
</body>
</html>
</div>
</div>
- <div class="footer">CUPS y el logo de CUPS son marcas registradas de <a href="http://www.apple.com">Apple Inc.</a> Derechos de autor © 2007-2018 Apple Inc. Todos los derechos reservados.</div>
+ <div class="footer">CUPS y el logo de CUPS son marcas registradas de <a href="http://www.apple.com">Apple Inc.</a> Derechos de autor © 2007-2019 Apple Inc. Todos los derechos reservados.</div>
</body>
</html>
</div>
</div>
- <div class="footer">CUPS et le logo CUPS sont des marques déposées de <a href="http://www.apple.com">Apple Inc.</a> CUPS est sous copyright 2007-2018 Apple Inc. Tous droits réservés.</div>
+ <div class="footer">CUPS et le logo CUPS sont des marques déposées de <a href="http://www.apple.com">Apple Inc.</a> CUPS est sous copyright 2007-2019 Apple Inc. Tous droits réservés.</div>
</body>
</html>
</div>
</div>
- <div class="footer">CUPS and the CUPS logo are trademarks of <a href="http://www.apple.com">Apple Inc.</a> Copyright © 2007-2018 Apple Inc. All rights reserved.</div>
+ <div class="footer">CUPS and the CUPS logo are trademarks of <a href="http://www.apple.com">Apple Inc.</a> Copyright © 2007-2019 Apple Inc. All rights reserved.</div>
</body>
</html>
</div>
</div>
- <div class="footer">CUPS e sua logo são marcas registradas da <a href="http://www.apple.com">Apple Inc.</a> Copyright © 2007-2018 Apple Inc. Todos os direitos reservados.</div>
+ <div class="footer">CUPS e sua logo são marcas registradas da <a href="http://www.apple.com">Apple Inc.</a> Copyright © 2007-2019 Apple Inc. Todos os direitos reservados.</div>
</body>
</html>
</div>
</div>
<div class="footer">CUPS, а так же логотип CUPS являются зарегистрированными торговыми марками
-<A HREF="http://www.apple.com">Apple Inc.</A> Авторские права на CUPS принадлежат (2007-2018) компании Apple Inc. Все права защищены.</div>
+<A HREF="http://www.apple.com">Apple Inc.</A> Авторские права на CUPS принадлежат (2007-2019) компании Apple Inc. Все права защищены.</div>
</body>
</html>
</div>
</div>
- <div class="footer">CUPS and the CUPS logo are trademarks of <a href="http://www.apple.com">Apple Inc.</a> Copyright © 2007-2018 Apple Inc. All rights reserved.</div>
+ <div class="footer">CUPS and the CUPS logo are trademarks of <a href="http://www.apple.com">Apple Inc.</a> Copyright © 2007-2019 Apple Inc. All rights reserved.</div>
</body>
</html>
* Version of software...
*/
-#define CUPS_SVERSION "CUPS v2.2.11"
-#define CUPS_MINIMAL "CUPS/2.2.11"
+#define CUPS_SVERSION "CUPS v2.2.12"
+#define CUPS_MINIMAL "CUPS/2.2.12"
/*
/*
+ * Do we have the gnutls_fips140_set_mode function?
+ */
+
+/* #undef HAVE_GNUTLS_FIPS140_SET_MODE */
+
+
+/*
* Do we have the gnutls_transport_set_pull_timeout_function function?
*/
* Version of software...
*/
-#define CUPS_SVERSION "CUPS v2.2.11"
-#define CUPS_MINIMAL "CUPS/2.2.11"
+#define CUPS_SVERSION "CUPS v2.2.12"
+#define CUPS_MINIMAL "CUPS/2.2.12"
/*
/*
+ * Do we have the gnutls_fips140_set_mode function?
+ */
+
+/* #undef HAVE_GNUTLS_FIPS140_SET_MODE */
+
+
+/*
* Do we have the gnutls_transport_set_pull_timeout_function function?
*/