Comparar commits
20 Commits
| Autor | SHA1 | Data | |
|---|---|---|---|
| 1539283f98 | |||
| a6dd739c02 | |||
| 929486aa64 | |||
| 579a5525e8 | |||
| f66b1d85f8 | |||
| 2c4c9ada65 | |||
| e1ac3f36d0 | |||
| c95282ef08 | |||
| 9e838da3db | |||
| 0d92ec1c6f | |||
| beb37da67b | |||
| fd32084d40 | |||
| ac9e295f23 | |||
| 778759a48f | |||
| ac79576a7f | |||
| 76d2c4481f | |||
| 1660d61202 | |||
| 3eb5ec664f | |||
| a17ce1d474 | |||
| 1e01455aeb |
+19
-4
@@ -1,8 +1,14 @@
|
||||
CHANGES - 2.3rc1 - 2018-05-11
|
||||
=============================
|
||||
CHANGES - 2.3b6 - 2018-06-05
|
||||
============================
|
||||
|
||||
Changes in CUPS v2.3rc1
|
||||
-----------------------
|
||||
Changes in CUPS v2.3b6
|
||||
----------------------
|
||||
|
||||
- Fixed a memory leak for some IPP (extension) syntaxes.
|
||||
|
||||
|
||||
Changes in CUPS v2.3b5
|
||||
----------------------
|
||||
|
||||
- The `ipptool` program no longer checks for duplicate attributes when running
|
||||
in list or CSV mode (Issue #5278)
|
||||
@@ -14,10 +20,19 @@ Changes in CUPS v2.3rc1
|
||||
authentication schemes in a single response header (Issue #5289)
|
||||
- Fixed policy limits containing the `All` operation (Issue #5296)
|
||||
- The scheduler was always restarted after idle-exit with systemd (Issue #5297)
|
||||
- Added a USB quirks rule for the HP LaserJet P1102 (Issue #5310)
|
||||
- The mailto notifier did not wait for the welcome message (Issue #5312)
|
||||
- Fixed a parsing bug in the pstops filter (Issue #5321)
|
||||
- Documentation updates (Issue #5299, Issue #5301, Issue #5306)
|
||||
- Localization updates (Issue #5317)
|
||||
- The scheduler allowed environment variables to be specified in the
|
||||
`cupsd.conf` file (rdar://37836779, rdar://37836995, rdar://37837252,
|
||||
rdar://37837581)
|
||||
- Fax queues did not support pause (p) or wait-for-dialtone (w) characters
|
||||
(rdar://39212256)
|
||||
- The scheduler did not validate notify-recipient-uri values properly
|
||||
(rdar://40068936)
|
||||
- The IPP parser allowed invalid group tags (rdar://40442124)
|
||||
- Fixed a parsing bug in the new authentication code.
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
INSTALL - CUPS v2.3b4 - 2018-03-22
|
||||
INSTALL - CUPS v2.3b5 - 2018-06-05
|
||||
==================================
|
||||
|
||||
This file describes how to compile and install CUPS from source code. For more
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
README - CUPS v2.3b4 - 2018-03-22
|
||||
README - CUPS v2.3b5 - 2018-06-05
|
||||
=================================
|
||||
|
||||
Looking for compile instructions? Read the file `INSTALL.md` instead...
|
||||
|
||||
@@ -281,3 +281,6 @@
|
||||
|
||||
# Lexmark Optra E310 (Issue #5259)
|
||||
0x043d 0x000c no-reattach
|
||||
|
||||
# HP LaserJet P1102 (Issue #5310)
|
||||
0x03F0 0x002A no-reattach
|
||||
|
||||
externo
+10
-10
@@ -1,6 +1,6 @@
|
||||
#! /bin/sh
|
||||
# Guess values for system-dependent variables and create Makefiles.
|
||||
# Generated by GNU Autoconf 2.68 for CUPS 2.3b4.
|
||||
# Generated by GNU Autoconf 2.68 for CUPS 2.3b6.
|
||||
#
|
||||
# Report bugs to <https://github.com/apple/cups/issues>.
|
||||
#
|
||||
@@ -560,8 +560,8 @@ MAKEFLAGS=
|
||||
# Identity of this package.
|
||||
PACKAGE_NAME='CUPS'
|
||||
PACKAGE_TARNAME='cups'
|
||||
PACKAGE_VERSION='2.3b4'
|
||||
PACKAGE_STRING='CUPS 2.3b4'
|
||||
PACKAGE_VERSION='2.3b6'
|
||||
PACKAGE_STRING='CUPS 2.3b6'
|
||||
PACKAGE_BUGREPORT='https://github.com/apple/cups/issues'
|
||||
PACKAGE_URL='https://www.cups.org/'
|
||||
|
||||
@@ -1455,7 +1455,7 @@ if test "$ac_init_help" = "long"; then
|
||||
# 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.3b4 to adapt to many kinds of systems.
|
||||
\`configure' configures CUPS 2.3b6 to adapt to many kinds of systems.
|
||||
|
||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||
|
||||
@@ -1520,7 +1520,7 @@ fi
|
||||
|
||||
if test -n "$ac_init_help"; then
|
||||
case $ac_init_help in
|
||||
short | recursive ) echo "Configuration of CUPS 2.3b4:";;
|
||||
short | recursive ) echo "Configuration of CUPS 2.3b6:";;
|
||||
esac
|
||||
cat <<\_ACEOF
|
||||
|
||||
@@ -1697,7 +1697,7 @@ fi
|
||||
test -n "$ac_init_help" && exit $ac_status
|
||||
if $ac_init_version; then
|
||||
cat <<\_ACEOF
|
||||
CUPS configure 2.3b4
|
||||
CUPS configure 2.3b6
|
||||
generated by GNU Autoconf 2.68
|
||||
|
||||
Copyright (C) 2010 Free Software Foundation, Inc.
|
||||
@@ -2161,7 +2161,7 @@ cat >config.log <<_ACEOF
|
||||
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.3b4, which was
|
||||
It was created by CUPS $as_me 2.3b6, which was
|
||||
generated by GNU Autoconf 2.68. Invocation command line was
|
||||
|
||||
$ $0 $@
|
||||
@@ -2636,7 +2636,7 @@ fi
|
||||
ac_config_headers="$ac_config_headers config.h"
|
||||
|
||||
|
||||
CUPS_VERSION="2.3b4"
|
||||
CUPS_VERSION="2.3b6"
|
||||
CUPS_REVISION=""
|
||||
CUPS_BUILD="cups-$CUPS_VERSION"
|
||||
|
||||
@@ -10586,7 +10586,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||||
# 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.3b4, which was
|
||||
This file was extended by CUPS $as_me 2.3b6, which was
|
||||
generated by GNU Autoconf 2.68. Invocation command line was
|
||||
|
||||
CONFIG_FILES = $CONFIG_FILES
|
||||
@@ -10649,7 +10649,7 @@ _ACEOF
|
||||
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.3b4
|
||||
CUPS config.status 2.3b6
|
||||
configured by $0, generated by GNU Autoconf 2.68,
|
||||
with options \\"\$ac_cs_config\\"
|
||||
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ dnl We need at least autoconf 2.60...
|
||||
AC_PREREQ(2.60)
|
||||
|
||||
dnl Package name and version...
|
||||
AC_INIT([CUPS], [2.3b4], [https://github.com/apple/cups/issues], [cups], [https://www.cups.org/])
|
||||
AC_INIT([CUPS], [2.3b6], [https://github.com/apple/cups/issues], [cups], [https://www.cups.org/])
|
||||
|
||||
sinclude(config-scripts/cups-opsys.m4)
|
||||
sinclude(config-scripts/cups-common.m4)
|
||||
|
||||
+16
-1
@@ -74,6 +74,8 @@ IMAGEOBJS = \
|
||||
error.o \
|
||||
interpret.o \
|
||||
raster.o
|
||||
XFORMOBJS = \
|
||||
xform.o
|
||||
TESTOBJS = \
|
||||
rasterbench.o \
|
||||
testadmin.o \
|
||||
@@ -99,6 +101,7 @@ TESTOBJS = \
|
||||
OBJS = \
|
||||
$(LIBOBJS) \
|
||||
$(IMAGEOBJS) \
|
||||
$(XFORMOBJS) \
|
||||
$(TESTOBJS)
|
||||
|
||||
|
||||
@@ -148,7 +151,8 @@ LIBTARGETS = \
|
||||
$(LIBCUPSIMAGE) \
|
||||
$(LIBCUPSSTATIC) \
|
||||
$(LIBCUPS) \
|
||||
libcupsimage.a
|
||||
libcupsimage.a \
|
||||
libcupsxform.a
|
||||
|
||||
UNITTARGETS = \
|
||||
rasterbench \
|
||||
@@ -453,6 +457,17 @@ libcupsimage.a: $(IMAGEOBJS)
|
||||
$(RANLIB) $@
|
||||
|
||||
|
||||
#
|
||||
# libcupsxform.a
|
||||
#
|
||||
|
||||
libcupsxform.a: $(XFORMOBJS)
|
||||
echo Archiving $@...
|
||||
$(RM) $@
|
||||
$(AR) $(ARFLAGS) $@ $(XFORMOBJS)
|
||||
$(RANLIB) $@
|
||||
|
||||
|
||||
#
|
||||
# rasterbench
|
||||
#
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<!--
|
||||
PPD API introduction for CUPS.
|
||||
|
||||
Copyright © 2007-2012 by Apple Inc.
|
||||
Copyright © 2007-2018 by Apple Inc.
|
||||
Copyright © 1997-2006 by Easy Software Products, all rights reserved.
|
||||
|
||||
Licensed under Apache License v2.0. See the file "LICENSE" for more
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
<h2 class='title'><a name='OVERVIEW'>Overview</a></h2>
|
||||
|
||||
<blockquote>The PPD API is deprecated starting in CUPS 1.6/macOS 10.8. Please use the new Job Ticket APIs in the <a href="api-cups.html">CUPS API</a> documentation. These functions will be removed in a future release of CUPS.</blockquote>
|
||||
<blockquote>The PPD API is deprecated starting in CUPS 1.6/macOS 10.8. Please use the new Job Ticket APIs in the <a href="cupspm.html">CUPS API</a> documentation. These functions will be removed in a future release of CUPS.</blockquote>
|
||||
|
||||
<p>The CUPS PPD API provides read-only access the data in PostScript Printer
|
||||
Description ("PPD") files which are used for all printers with a driver. With
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
/*
|
||||
* HTTP support routines for CUPS.
|
||||
*
|
||||
* Copyright 2007-2017 by Apple Inc.
|
||||
* Copyright 2007-2018 by Apple Inc.
|
||||
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
|
||||
*
|
||||
* Licensed under Apache License v2.0. See the file "LICENSE" for more information.
|
||||
* Licensed under Apache License v2.0. See the file "LICENSE" for more
|
||||
* information.
|
||||
*/
|
||||
|
||||
/*
|
||||
@@ -1026,7 +1027,7 @@ httpSeparateURI(
|
||||
|
||||
*ptr = '\0';
|
||||
|
||||
if (*uri != ':')
|
||||
if (*uri != ':' || *scheme == '.' || !*scheme)
|
||||
{
|
||||
*scheme = '\0';
|
||||
return (HTTP_URI_STATUS_BAD_SCHEME);
|
||||
|
||||
+13
-1
@@ -3084,6 +3084,13 @@ ippReadIO(void *src, /* I - Data source */
|
||||
ipp->state = IPP_STATE_DATA;
|
||||
break;
|
||||
}
|
||||
else if (tag == IPP_TAG_ZERO || (tag == IPP_TAG_OPERATION && ipp->curtag != IPP_TAG_ZERO))
|
||||
{
|
||||
_cupsSetError(IPP_STATUS_ERROR_INTERNAL, _("Invalid group tag."), 1);
|
||||
DEBUG_printf(("1ippReadIO: bad tag 0x%02x.", tag));
|
||||
_cupsBufferRelease((char *)buffer);
|
||||
return (IPP_STATE_ERROR);
|
||||
}
|
||||
else if (tag < IPP_TAG_UNSUPPORTED_VALUE)
|
||||
{
|
||||
/*
|
||||
@@ -3381,7 +3388,10 @@ ippReadIO(void *src, /* I - Data source */
|
||||
value->boolean = (char)buffer[0];
|
||||
break;
|
||||
|
||||
case IPP_TAG_NOVALUE :
|
||||
case IPP_TAG_UNSUPPORTED_VALUE :
|
||||
case IPP_TAG_DEFAULT :
|
||||
case IPP_TAG_UNKNOWN :
|
||||
case IPP_TAG_NOVALUE :
|
||||
case IPP_TAG_NOTSETTABLE :
|
||||
case IPP_TAG_DELETEATTR :
|
||||
case IPP_TAG_ADMINDEFINE :
|
||||
@@ -3401,6 +3411,7 @@ ippReadIO(void *src, /* I - Data source */
|
||||
|
||||
case IPP_TAG_TEXT :
|
||||
case IPP_TAG_NAME :
|
||||
case IPP_TAG_RESERVED_STRING :
|
||||
case IPP_TAG_KEYWORD :
|
||||
case IPP_TAG_URI :
|
||||
case IPP_TAG_URISCHEME :
|
||||
@@ -6376,6 +6387,7 @@ ipp_free_values(ipp_attribute_t *attr, /* I - Attribute to free values from */
|
||||
}
|
||||
break;
|
||||
|
||||
case IPP_TAG_UNSUPPORTED_VALUE :
|
||||
case IPP_TAG_DEFAULT :
|
||||
case IPP_TAG_UNKNOWN :
|
||||
case IPP_TAG_NOVALUE :
|
||||
|
||||
@@ -115,6 +115,9 @@ static uri_test_t uri_tests[] = /* URI test data */
|
||||
{ HTTP_URI_STATUS_OK, "ipp://%22%23%2F%3A%3C%3E%3F%40%5B%5C%5D%5E%60%7B%7C%7D/",
|
||||
"ipp", "", "\"#/:<>?@[\\]^`{|}", "/", 631, 0,
|
||||
HTTP_URI_CODING_MOST },
|
||||
{ HTTP_URI_STATUS_UNKNOWN_SCHEME, "smb://server/Some%20Printer",
|
||||
"smb", "", "server", "/Some Printer", 0, 0,
|
||||
HTTP_URI_CODING_ALL },
|
||||
|
||||
/* Missing scheme */
|
||||
{ HTTP_URI_STATUS_MISSING_SCHEME, "/path/to/file/index.html",
|
||||
@@ -143,6 +146,9 @@ static uri_test_t uri_tests[] = /* URI test data */
|
||||
HTTP_URI_CODING_MOST },
|
||||
|
||||
/* Bad scheme */
|
||||
{ HTTP_URI_STATUS_BAD_SCHEME, "://server/ipp",
|
||||
"", "", "", "", 0, 0,
|
||||
HTTP_URI_CODING_MOST },
|
||||
{ HTTP_URI_STATUS_BAD_SCHEME, "bad_scheme://server/resource",
|
||||
"", "", "", "", 0, 0,
|
||||
HTTP_URI_CODING_MOST },
|
||||
|
||||
+1
-1
@@ -738,7 +738,7 @@ main(int argc, /* I - Number of command-line arguments */
|
||||
|
||||
if (state != IPP_STATE_DATA)
|
||||
{
|
||||
printf("Error reading IPP message from \"%s\".\n", argv[i]);
|
||||
printf("Error reading IPP message from \"%s\": %s\n", argv[i], cupsLastErrorString());
|
||||
status = 1;
|
||||
|
||||
ippDelete(request);
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
/* Simple ordered dither threshold matrix */
|
||||
const unsigned char threshold[64][64] =
|
||||
{
|
||||
{ 0, 235, 138, 22, 45, 98, 217, 2, 45, 98, 7, 185, 45, 97, 6, 192, 110, 37, 110, 37, 97, 45, 18, 148, 109, 37, 97, 45, 7, 185, 45, 97, 6, 192, 109, 37, 57, 82, 165, 12, 26, 130, 190, 6, 119, 31, 97, 45, 179, 8, 109, 37, 97, 45, 140, 22, 109, 37, 57, 82, 9, 177, 24, 135 },
|
||||
{ 109, 37, 57, 82, 20, 143, 57, 82, 146, 19, 57, 82, 15, 158, 87, 53, 20, 144, 13, 162, 138, 22, 53, 87, 162, 13, 138, 22, 57, 82, 22, 140, 57, 82, 153, 16, 119, 31, 109, 37, 109, 37, 57, 81, 19, 147, 213, 2, 53, 87, 21, 142, 13, 164, 53, 87, 187, 6, 152, 17, 119, 32, 110, 37 },
|
||||
{ 24, 135, 12, 167, 97, 45, 17, 151, 45, 97, 32, 119, 26, 130, 119, 32, 81, 58, 30, 121, 81, 58, 181, 8, 119, 32, 97, 45, 17, 151, 45, 97, 161, 14, 45, 97, 213, 2, 135, 24, 7, 183, 138, 22, 109, 37, 58, 81, 121, 30, 109, 37, 58, 81, 30, 121, 58, 81, 127, 27, 58, 81, 165, 12 },
|
||||
{ 58, 81, 31, 119, 5, 197, 58, 81, 9, 175, 206, 3, 58, 81, 10, 174, 222, 1, 45, 97, 206, 3, 124, 29, 58, 81, 4, 200, 58, 81, 2, 217, 58, 81, 27, 127, 108, 37, 58, 81, 30, 121, 58, 81, 167, 12, 25, 132, 15, 158, 5, 197, 135, 24, 206, 3, 142, 21, 45, 97, 203, 3, 119, 32 },
|
||||
{ 6, 190, 108, 38, 97, 45, 143, 20, 108, 38, 97, 45, 148, 18, 108, 38, 58, 81, 148, 18, 119, 32, 97, 45, 16, 153, 97, 45, 143, 20, 46, 97, 32, 119, 6, 187, 25, 132, 13, 164, 46, 97, 1, 222, 119, 32, 108, 38, 108, 38, 108, 38, 108, 38, 108, 38, 58, 81, 8, 179, 123, 29, 97, 46 },
|
||||
{ 58, 81, 161, 14, 147, 19, 53, 87, 22, 138, 14, 159, 87, 53, 22, 138, 14, 159, 108, 38, 87, 53, 177, 9, 53, 87, 14, 161, 58, 81, 22, 137, 12, 167, 108, 38, 108, 38, 81, 58, 153, 16, 123, 29, 53, 87, 187, 6, 162, 13, 132, 25, 11, 168, 25, 132, 12, 165, 119, 32, 81, 58, 14, 161 },
|
||||
{ 140, 22, 108, 38, 81, 58, 8, 181, 108, 38, 97, 46, 8, 181, 58, 81, 31, 119, 7, 185, 147, 19, 58, 81, 127, 27, 97, 46, 8, 179, 108, 38, 58, 81, 21, 142, 13, 162, 5, 194, 108, 38, 58, 81, 15, 156, 87, 53, 30, 121, 108, 38, 108, 38, 58, 81, 127, 27, 97, 46, 16, 153, 97, 46 },
|
||||
{ 58, 81, 2, 217, 123, 29, 36, 111, 1, 227, 138, 22, 97, 46, 4, 203, 108, 38, 108, 38, 97, 46, 23, 137, 222, 1, 112, 36, 58, 81, 6, 192, 137, 23, 53, 87, 30, 121, 58, 80, 23, 137, 183, 7, 36, 111, 26, 130, 59, 80, 0, 235, 130, 26, 192, 6, 46, 97, 222, 1, 53, 87, 194, 5 },
|
||||
{ 17, 151, 46, 97, 172, 10, 59, 80, 27, 127, 59, 80, 18, 148, 59, 80, 172, 10, 24, 135, 4, 200, 80, 59, 36, 112, 167, 12, 137, 23, 108, 38, 97, 46, 0, 235, 46, 97, 144, 20, 46, 97, 127, 27, 53, 87, 3, 206, 147, 19, 108, 38, 108, 38, 80, 59, 151, 17, 80, 59, 27, 127, 96, 46 },
|
||||
{ 58, 81, 126, 27, 96, 46, 15, 156, 46, 97, 172, 10, 46, 96, 14, 159, 119, 32, 59, 80, 32, 119, 156, 15, 53, 87, 27, 127, 59, 80, 21, 142, 10, 172, 80, 59, 177, 9, 80, 59, 2, 213, 59, 80, 14, 161, 108, 38, 59, 79, 23, 137, 11, 168, 137, 23, 46, 96, 32, 119, 13, 164, 140, 22 },
|
||||
{ 6, 190, 152, 17, 112, 36, 59, 79, 6, 187, 59, 79, 30, 121, 108, 38, 96, 46, 15, 156, 46, 96, 29, 123, 183, 7, 46, 96, 209, 3, 46, 96, 32, 118, 26, 130, 96, 46, 15, 158, 46, 96, 16, 153, 46, 96, 32, 118, 10, 172, 108, 38, 108, 38, 59, 79, 179, 8, 141, 21, 59, 79, 32, 119 },
|
||||
{ 87, 53, 36, 112, 203, 4, 137, 23, 96, 46, 23, 137, 4, 200, 24, 135, 235, 0, 87, 53, 8, 179, 108, 38, 87, 53, 15, 156, 53, 87, 156, 15, 59, 79, 156, 15, 119, 32, 59, 79, 30, 121, 59, 79, 6, 190, 151, 17, 59, 79, 187, 6, 26, 130, 3, 206, 108, 38, 96, 46, 206, 3, 110, 37 },
|
||||
{ 142, 21, 59, 79, 28, 126, 59, 79, 144, 20, 59, 79, 119, 32, 60, 79, 32, 118, 27, 129, 87, 53, 3, 209, 118, 32, 60, 79, 126, 28, 96, 46, 5, 194, 46, 96, 197, 5, 134, 24, 7, 183, 137, 23, 46, 96, 36, 112, 28, 126, 108, 38, 108, 38, 60, 79, 148, 18, 118, 32, 60, 79, 167, 12 },
|
||||
{ 37, 109, 174, 10, 46, 95, 10, 174, 47, 95, 170, 11, 47, 95, 9, 177, 47, 95, 14, 159, 118, 32, 60, 79, 170, 11, 134, 24, 183, 7, 112, 36, 79, 60, 140, 22, 108, 38, 107, 38, 107, 39, 79, 60, 17, 149, 60, 79, 213, 2, 24, 135, 177, 9, 159, 14, 47, 95, 9, 175, 137, 23, 47, 95 },
|
||||
{ 0, 235, 60, 79, 18, 149, 87, 53, 217, 2, 53, 87, 156, 15, 86, 53, 16, 153, 54, 86, 167, 12, 137, 23, 107, 39, 60, 79, 36, 112, 172, 10, 147, 19, 47, 95, 19, 147, 9, 175, 132, 25, 1, 227, 36, 110, 9, 175, 112, 36, 60, 79, 30, 121, 60, 79, 126, 28, 112, 36, 60, 79, 19, 147 },
|
||||
{ 37, 109, 140, 22, 47, 95, 30, 121, 60, 78, 30, 121, 61, 78, 32, 118, 61, 78, 200, 4, 112, 36, 61, 78, 19, 147, 227, 1, 47, 95, 27, 129, 86, 54, 2, 217, 54, 86, 28, 126, 61, 78, 126, 28, 61, 78, 129, 26, 95, 47, 15, 158, 47, 95, 20, 144, 1, 222, 95, 47, 6, 190, 47, 95 },
|
||||
{ 13, 164, 61, 78, 4, 200, 162, 13, 24, 134, 183, 7, 24, 134, 213, 2, 142, 21, 123, 29, 95, 47, 192, 6, 107, 39, 86, 54, 153, 16, 54, 86, 30, 121, 61, 78, 30, 121, 95, 47, 170, 11, 47, 95, 10, 172, 47, 94, 179, 8, 61, 78, 4, 200, 107, 39, 61, 78, 22, 140, 61, 78, 23, 137 },
|
||||
{ 37, 109, 31, 120, 107, 39, 107, 39, 107, 39, 107, 39, 61, 78, 121, 30, 107, 39, 61, 78, 19, 146, 86, 54, 23, 137, 13, 164, 61, 77, 200, 4, 159, 14, 131, 25, 13, 164, 4, 200, 86, 54, 18, 148, 54, 86, 203, 4, 94, 47, 19, 146, 47, 94, 23, 137, 13, 161, 47, 94, 17, 151, 47, 94 },
|
||||
{ 26, 131, 6, 187, 158, 15, 26, 131, 4, 203, 26, 131, 177, 9, 47, 94, 14, 159, 10, 174, 94, 47, 151, 17, 61, 77, 32, 118, 27, 129, 118, 32, 107, 39, 107, 39, 86, 54, 126, 28, 118, 32, 61, 77, 31, 120, 77, 61, 126, 28, 86, 54, 14, 161, 107, 39, 77, 61, 6, 190, 61, 77, 3, 206 },
|
||||
{ 107, 39, 61, 77, 121, 30, 86, 54, 121, 30, 107, 39, 61, 77, 16, 153, 107, 39, 86, 54, 1, 222, 94, 47, 8, 179, 47, 94, 174, 10, 54, 86, 11, 168, 5, 194, 144, 20, 86, 54, 17, 152, 3, 209, 162, 13, 134, 24, 12, 167, 123, 29, 61, 77, 7, 185, 136, 23, 47, 94, 32, 118, 27, 127 },
|
||||
{ 164, 13, 144, 20, 94, 47, 174, 10, 61, 77, 11, 170, 123, 29, 37, 110, 5, 194, 123, 29, 86, 54, 20, 143, 61, 77, 3, 206, 61, 77, 18, 148, 118, 32, 85, 54, 32, 118, 177, 9, 85, 55, 28, 126, 106, 39, 106, 39, 61, 77, 0, 235, 118, 32, 106, 39, 61, 77, 19, 147, 177, 9, 81, 58 },
|
||||
{ 106, 39, 77, 61, 222, 1, 94, 47, 18, 149, 48, 93, 227, 1, 85, 55, 29, 123, 168, 11, 112, 36, 85, 55, 33, 117, 27, 129, 117, 33, 106, 39, 94, 47, 149, 18, 77, 61, 27, 129, 117, 33, 61, 77, 20, 144, 6, 190, 117, 33, 55, 85, 159, 14, 26, 131, 3, 209, 117, 32, 94, 47, 16, 153 },
|
||||
{ 5, 194, 123, 29, 55, 85, 19, 146, 62, 77, 126, 28, 37, 110, 156, 15, 62, 77, 36, 112, 17, 151, 194, 5, 151, 17, 77, 62, 17, 152, 2, 217, 175, 9, 93, 47, 227, 0, 48, 93, 6, 192, 168, 11, 117, 33, 77, 62, 161, 14, 140, 22, 106, 39, 106, 39, 106, 39, 62, 77, 28, 126, 81, 58 },
|
||||
{ 47, 94, 153, 16, 123, 29, 85, 55, 5, 197, 152, 17, 62, 77, 29, 123, 10, 174, 48, 93, 28, 126, 106, 39, 93, 48, 8, 181, 106, 39, 62, 77, 33, 117, 144, 20, 62, 77, 18, 148, 106, 39, 106, 39, 93, 48, 18, 147, 48, 93, 33, 117, 192, 6, 164, 13, 131, 26, 14, 158, 227, 1, 140, 22 },
|
||||
{ 13, 164, 85, 55, 10, 174, 117, 33, 106, 39, 93, 48, 10, 172, 106, 39, 62, 77, 2, 209, 62, 77, 161, 14, 142, 21, 62, 77, 33, 117, 143, 20, 106, 39, 93, 48, 22, 138, 48, 93, 158, 15, 131, 26, 1, 217, 85, 55, 200, 4, 106, 39, 105, 39, 105, 40, 105, 40, 105, 40, 105, 40, 87, 53 },
|
||||
{ 85, 55, 120, 31, 62, 77, 6, 187, 142, 21, 123, 29, 85, 55, 5, 194, 123, 29, 37, 110, 179, 8, 117, 33, 85, 55, 23, 136, 6, 192, 62, 77, 10, 174, 5, 197, 62, 77, 8, 179, 105, 40, 105, 40, 85, 55, 120, 31, 62, 77, 167, 12, 26, 131, 15, 158, 5, 194, 168, 11, 147, 19, 118, 32 },
|
||||
{ 135, 24, 3, 209, 136, 23, 105, 40, 62, 76, 209, 3, 123, 29, 63, 76, 15, 155, 63, 76, 27, 129, 93, 48, 0, 235, 105, 40, 93, 48, 17, 151, 48, 93, 33, 116, 16, 155, 37, 110, 4, 203, 162, 13, 24, 134, 11, 168, 136, 23, 105, 40, 105, 40, 105, 40, 63, 76, 126, 28, 85, 55, 6, 190 },
|
||||
{ 37, 109, 33, 117, 63, 76, 21, 142, 12, 165, 48, 93, 16, 155, 123, 29, 93, 48, 11, 170, 48, 93, 16, 155, 55, 85, 170, 11, 136, 23, 63, 76, 146, 19, 63, 76, 27, 129, 76, 63, 27, 129, 116, 33, 76, 63, 33, 117, 63, 76, 19, 147, 217, 2, 168, 11, 142, 21, 48, 93, 120, 31, 80, 59 },
|
||||
{ 175, 9, 93, 49, 10, 172, 105, 40, 63, 76, 125, 28, 85, 55, 8, 179, 117, 33, 84, 55, 197, 5, 55, 84, 27, 129, 116, 33, 93, 49, 213, 2, 49, 93, 11, 170, 49, 93, 172, 10, 105, 40, 93, 49, 5, 194, 49, 93, 192, 6, 116, 33, 63, 76, 120, 31, 63, 76, 3, 206, 162, 13, 26, 131 },
|
||||
{ 37, 109, 18, 149, 63, 76, 0, 235, 131, 26, 187, 6, 116, 33, 84, 55, 1, 222, 140, 22, 63, 76, 33, 116, 8, 179, 84, 55, 158, 15, 55, 84, 27, 129, 84, 55, 217, 2, 55, 84, 20, 144, 10, 174, 55, 84, 149, 18, 122, 29, 93, 49, 20, 143, 49, 93, 15, 158, 116, 33, 105, 40, 80, 59 },
|
||||
{ 138, 22, 93, 49, 22, 138, 105, 40, 105, 40, 63, 76, 159, 14, 136, 23, 63, 75, 33, 116, 164, 13, 144, 20, 93, 49, 5, 194, 63, 75, 33, 116, 185, 7, 116, 33, 75, 63, 31, 120, 104, 40, 75, 63, 31, 120, 104, 41, 75, 63, 181, 8, 84, 55, 6, 192, 104, 41, 84, 55, 21, 142, 217, 2 },
|
||||
{ 84, 55, 197, 5, 55, 84, 19, 146, 13, 164, 140, 22, 104, 41, 93, 49, 18, 149, 49, 93, 28, 125, 63, 75, 125, 28, 93, 49, 21, 141, 11, 168, 63, 75, 165, 12, 24, 134, 15, 158, 209, 3, 26, 131, 15, 158, 1, 227, 144, 20, 49, 93, 16, 153, 63, 75, 23, 136, 10, 172, 63, 75, 120, 30 },
|
||||
{ 14, 161, 75, 63, 177, 8, 116, 33, 75, 63, 33, 116, 2, 213, 175, 9, 63, 75, 190, 6, 92, 49, 2, 213, 152, 17, 111, 36, 63, 75, 36, 112, 27, 129, 111, 36, 104, 41, 104, 41, 104, 41, 104, 41, 104, 41, 104, 41, 75, 63, 125, 28, 92, 49, 14, 161, 104, 41, 92, 49, 7, 185, 49, 92 },
|
||||
{ 47, 94, 144, 20, 122, 30, 92, 49, 5, 197, 49, 92, 28, 125, 92, 49, 143, 20, 49, 92, 18, 149, 75, 63, 36, 112, 11, 168, 222, 1, 49, 92, 203, 4, 55, 84, 190, 6, 162, 13, 26, 130, 190, 6, 164, 13, 26, 130, 13, 162, 206, 3, 122, 30, 84, 55, 0, 235, 122, 30, 84, 55, 16, 152 },
|
||||
{ 6, 192, 116, 33, 75, 63, 16, 155, 63, 74, 15, 156, 64, 74, 20, 143, 84, 55, 22, 138, 92, 49, 143, 20, 49, 92, 27, 129, 55, 84, 156, 15, 56, 84, 16, 155, 116, 33, 104, 41, 104, 41, 104, 41, 104, 41, 104, 41, 103, 41, 64, 74, 181, 8, 115, 33, 64, 74, 152, 17, 122, 30, 80, 59 },
|
||||
{ 103, 41, 92, 49, 213, 2, 49, 92, 28, 125, 92, 49, 6, 185, 92, 49, 3, 206, 64, 74, 7, 185, 64, 74, 190, 6, 64, 74, 31, 120, 64, 74, 33, 117, 103, 41, 64, 74, 20, 144, 8, 181, 24, 134, 15, 158, 5, 197, 141, 21, 122, 30, 56, 84, 19, 146, 13, 164, 50, 91, 203, 4, 112, 36 },
|
||||
{ 24, 134, 12, 167, 56, 84, 34, 115, 172, 10, 136, 23, 64, 74, 18, 149, 92, 49, 18, 149, 91, 49, 15, 156, 50, 91, 20, 144, 7, 183, 24, 134, 183, 7, 24, 134, 235, 0, 50, 91, 31, 120, 64, 74, 125, 28, 115, 34, 64, 74, 161, 14, 115, 34, 103, 41, 64, 74, 125, 28, 37, 110, 165, 12 },
|
||||
{ 103, 41, 64, 74, 23, 136, 185, 7, 103, 41, 91, 50, 20, 143, 50, 91, 22, 138, 56, 84, 31, 120, 64, 74, 31, 120, 103, 41, 103, 41, 64, 74, 31, 120, 103, 41, 64, 74, 125, 28, 91, 50, 217, 2, 103, 41, 91, 50, 10, 174, 50, 91, 22, 140, 200, 4, 134, 24, 7, 183, 65, 74, 28, 126 },
|
||||
{ 227, 1, 146, 19, 103, 41, 65, 74, 21, 142, 227, 1, 65, 74, 6, 190, 65, 74, 9, 175, 0, 235, 24, 134, 206, 3, 162, 13, 130, 26, 213, 2, 50, 91, 13, 162, 131, 26, 185, 7, 152, 17, 65, 74, 170, 11, 144, 20, 56, 84, 1, 222, 103, 41, 103, 41, 103, 41, 91, 50, 175, 9, 50, 91 },
|
||||
{ 49, 93, 33, 116, 6, 187, 136, 23, 50, 91, 33, 116, 18, 149, 50, 91, 19, 147, 103, 41, 103, 41, 102, 41, 102, 42, 102, 42, 102, 42, 65, 74, 21, 141, 102, 42, 102, 42, 65, 74, 125, 28, 115, 34, 102, 42, 65, 74, 31, 119, 65, 74, 167, 12, 26, 130, 12, 165, 115, 34, 84, 56, 151, 17 },
|
||||
{ 148, 18, 102, 42, 102, 42, 84, 56, 174, 10, 102, 42, 65, 74, 22, 140, 65, 74, 159, 14, 131, 26, 11, 168, 26, 131, 15, 158, 7, 185, 159, 14, 50, 91, 5, 197, 168, 11, 141, 21, 50, 91, 179, 8, 24, 134, 4, 203, 162, 13, 142, 21, 102, 42, 102, 42, 65, 74, 2, 217, 140, 22, 80, 59 },
|
||||
{ 49, 92, 9, 175, 24, 133, 3, 209, 65, 74, 19, 146, 185, 7, 90, 50, 3, 209, 102, 42, 65, 74, 31, 120, 102, 42, 65, 74, 31, 120, 65, 73, 34, 115, 27, 129, 115, 34, 56, 84, 203, 4, 111, 36, 65, 73, 125, 28, 102, 42, 65, 73, 23, 136, 192, 6, 136, 23, 102, 42, 90, 50, 6, 187 },
|
||||
{ 31, 119, 102, 42, 102, 42, 90, 50, 138, 22, 102, 42, 65, 73, 125, 28, 65, 73, 21, 141, 194, 5, 50, 90, 192, 6, 141, 21, 50, 90, 21, 141, 6, 187, 102, 42, 65, 73, 16, 155, 122, 30, 90, 50, 14, 161, 50, 90, 34, 115, 200, 4, 102, 42, 102, 42, 84, 56, 18, 149, 115, 34, 79, 59 },
|
||||
{ 209, 3, 25, 133, 6, 187, 146, 19, 65, 73, 203, 4, 134, 24, 11, 168, 111, 36, 102, 42, 65, 73, 19, 147, 102, 42, 65, 73, 1, 227, 102, 42, 65, 73, 19, 146, 217, 2, 115, 34, 56, 84, 17, 152, 73, 65, 177, 9, 151, 17, 73, 65, 165, 12, 131, 26, 175, 9, 73, 65, 9, 174, 24, 134 },
|
||||
{ 33, 117, 102, 42, 65, 73, 34, 115, 11, 170, 115, 34, 65, 73, 36, 111, 181, 7, 168, 11, 136, 23, 50, 90, 161, 14, 146, 19, 50, 90, 159, 14, 136, 23, 102, 42, 102, 42, 73, 65, 7, 183, 90, 50, 1, 227, 50, 90, 36, 111, 27, 129, 115, 34, 72, 65, 34, 115, 27, 127, 111, 36, 79, 59 },
|
||||
{ 50, 90, 164, 13, 141, 21, 102, 42, 102, 42, 90, 50, 15, 156, 50, 90, 27, 127, 115, 34, 66, 72, 2, 217, 102, 42, 66, 72, 22, 138, 102, 42, 66, 72, 167, 12, 133, 25, 12, 165, 37, 110, 28, 125, 72, 66, 143, 20, 72, 66, 179, 8, 90, 50, 235, 0, 51, 90, 203, 4, 90, 50, 7, 183 },
|
||||
{ 17, 152, 101, 42, 66, 72, 235, 0, 25, 133, 8, 181, 66, 72, 222, 1, 101, 43, 90, 50, 17, 152, 51, 90, 23, 136, 185, 7, 51, 90, 9, 175, 203, 4, 114, 34, 72, 66, 125, 28, 72, 66, 172, 10, 146, 19, 90, 51, 209, 3, 51, 90, 153, 16, 56, 84, 16, 155, 56, 84, 16, 155, 87, 53 },
|
||||
{ 84, 56, 6, 192, 151, 17, 114, 35, 72, 66, 35, 114, 27, 127, 37, 110, 17, 152, 197, 5, 84, 56, 14, 161, 101, 43, 72, 66, 18, 149, 72, 66, 125, 28, 90, 51, 190, 6, 51, 90, 3, 206, 51, 90, 35, 114, 11, 170, 66, 72, 159, 14, 66, 72, 28, 125, 66, 72, 31, 119, 66, 72, 127, 27 },
|
||||
{ 111, 36, 66, 72, 124, 28, 90, 51, 16, 155, 51, 90, 16, 155, 66, 72, 29, 124, 66, 72, 124, 29, 66, 72, 5, 192, 136, 23, 51, 90, 144, 19, 51, 90, 149, 18, 56, 83, 18, 149, 66, 72, 142, 20, 101, 43, 84, 56, 31, 119, 83, 56, 35, 114, 170, 10, 25, 133, 183, 7, 133, 25, 1, 222 },
|
||||
{ 172, 10, 141, 21, 51, 90, 170, 11, 83, 56, 4, 200, 89, 51, 11, 170, 52, 89, 21, 141, 183, 7, 114, 35, 101, 43, 66, 72, 2, 213, 66, 72, 8, 179, 66, 72, 22, 140, 52, 89, 147, 19, 52, 89, 203, 4, 133, 25, 8, 181, 25, 133, 4, 200, 101, 43, 66, 72, 114, 35, 83, 56, 36, 111 },
|
||||
{ 28, 126, 66, 72, 3, 206, 37, 110, 29, 124, 72, 66, 31, 119, 71, 66, 4, 203, 101, 43, 67, 71, 167, 12, 25, 133, 12, 165, 52, 89, 29, 124, 89, 52, 0, 235, 52, 89, 177, 9, 56, 83, 11, 170, 114, 35, 67, 71, 35, 114, 101, 43, 67, 71, 35, 114, 2, 213, 52, 89, 177, 9, 79, 59 },
|
||||
{ 51, 90, 15, 156, 122, 30, 67, 71, 8, 181, 133, 25, 185, 7, 141, 21, 52, 89, 16, 155, 114, 35, 101, 43, 101, 43, 67, 71, 36, 111, 165, 12, 136, 23, 56, 83, 31, 119, 67, 71, 35, 114, 127, 27, 89, 52, 15, 156, 52, 89, 167, 12, 133, 25, 12, 165, 83, 56, 16, 155, 89, 52, 15, 156 },
|
||||
{ 6, 192, 101, 43, 89, 52, 148, 18, 101, 43, 101, 43, 101, 43, 67, 71, 124, 29, 67, 71, 0, 235, 25, 133, 200, 4, 133, 25, 183, 7, 101, 43, 67, 71, 19, 146, 187, 6, 133, 25, 217, 2, 67, 71, 8, 181, 67, 71, 1, 222, 114, 35, 101, 43, 67, 71, 31, 119, 67, 71, 31, 119, 79, 59 },
|
||||
{ 51, 90, 23, 135, 10, 172, 67, 71, 24, 135, 222, 1, 26, 130, 15, 158, 10, 174, 114, 35, 100, 43, 67, 71, 31, 119, 67, 70, 35, 114, 21, 141, 5, 194, 114, 35, 100, 43, 100, 43, 89, 52, 16, 155, 52, 89, 27, 127, 122, 30, 56, 83, 197, 5, 132, 25, 8, 181, 25, 133, 206, 3, 137, 23 },
|
||||
{ 18, 149, 100, 43, 89, 52, 194, 5, 100, 43, 100, 43, 100, 43, 100, 43, 68, 70, 7, 185, 26, 131, 175, 9, 52, 88, 11, 170, 100, 43, 100, 43, 100, 43, 68, 70, 21, 141, 12, 165, 111, 36, 68, 70, 35, 113, 16, 155, 56, 83, 16, 155, 113, 35, 68, 70, 35, 113, 68, 70, 113, 35, 79, 59 },
|
||||
{ 52, 88, 227, 1, 135, 24, 68, 70, 167, 12, 26, 130, 13, 162, 209, 3, 135, 24, 100, 43, 100, 43, 83, 56, 18, 148, 56, 83, 1, 222, 162, 13, 132, 25, 12, 167, 52, 88, 35, 113, 7, 183, 25, 133, 4, 203, 56, 83, 175, 9, 122, 30, 88, 52, 15, 156, 52, 88, 168, 11, 52, 88, 181, 8 },
|
||||
{ 27, 129, 113, 35, 88, 52, 20, 143, 100, 43, 100, 43, 100, 43, 99, 43, 68, 70, 19, 146, 5, 194, 113, 35, 68, 70, 35, 113, 29, 124, 99, 44, 99, 44, 68, 70, 2, 213, 68, 70, 29, 124, 99, 44, 68, 70, 31, 119, 99, 44, 70, 68, 177, 9, 70, 68, 227, 1, 83, 56, 16, 153, 56, 83 },
|
||||
{ 170, 11, 70, 68, 10, 174, 68, 70, 19, 146, 197, 5, 158, 15, 130, 26, 175, 9, 113, 35, 56, 83, 21, 140, 3, 209, 152, 17, 56, 83, 21, 141, 4, 197, 122, 30, 88, 52, 16, 153, 52, 88, 165, 12, 132, 25, 183, 7, 25, 132, 213, 2, 88, 52, 143, 20, 52, 88, 119, 31, 68, 70, 32, 118 },
|
||||
{ 88, 52, 19, 147, 88, 52, 213, 2, 99, 44, 99, 44, 99, 44, 99, 44, 99, 44, 68, 70, 161, 14, 111, 36, 99, 44, 68, 70, 7, 183, 99, 44, 70, 68, 16, 153, 122, 30, 70, 68, 5, 197, 113, 35, 68, 70, 35, 113, 68, 70, 35, 113, 29, 124, 68, 70, 24, 135, 187, 6, 25, 132, 3, 209 },
|
||||
{ 31, 119, 70, 68, 124, 29, 82, 57, 21, 141, 13, 164, 132, 25, 187, 6, 25, 132, 217, 2, 122, 30, 70, 68, 18, 148, 122, 30, 37, 110, 16, 153, 122, 30, 56, 82, 10, 172, 113, 35, 99, 44, 88, 52, 0, 235, 52, 88, 14, 159, 52, 88, 17, 152, 5, 194, 99, 44, 99, 44, 99, 44, 79, 60 },
|
||||
{ 13, 162, 200, 4, 167, 11, 111, 36, 68, 70, 119, 31, 68, 70, 119, 31, 98, 44, 98, 45, 87, 52, 6, 190, 53, 87, 9, 177, 57, 82, 30, 122, 8, 179, 113, 35, 69, 68, 7, 185, 132, 25, 12, 164, 57, 82, 17, 152, 69, 69, 177, 9, 69, 69, 35, 113, 165, 12, 26, 130, 11, 168, 132, 25 },
|
||||
{ 37, 109, 69, 69, 36, 111, 17, 151, 190, 6, 53, 87, 1, 227, 53, 87, 10, 174, 130, 26, 14, 159, 69, 69, 20, 143, 69, 69, 206, 3, 98, 45, 69, 69, 1, 227, 142, 21, 98, 45, 98, 45, 69, 69, 124, 29, 37, 110, 5, 197, 87, 53, 20, 143, 53, 87, 29, 124, 98, 45, 98, 45, 79, 60 },
|
||||
{ 26, 130, 14, 159, 53, 87, 29, 124, 82, 57, 18, 148, 82, 57, 18, 148, 98, 45, 98, 45, 87, 53, 138, 22, 53, 87, 124, 29, 37, 110, 165, 12, 142, 21, 98, 45, 69, 69, 24, 135, 3, 209, 132, 25, 181, 8, 82, 57, 27, 127, 113, 35, 82, 57, 177, 9, 57, 82, 213, 2, 25, 132, 6, 187 },
|
||||
{ 37, 109, 61, 78, 8, 179, 61, 78, 20, 143, 66, 72, 22, 138, 66, 72, 24, 135, 4, 200, 175, 9, 72, 66, 1, 227, 151, 17, 72, 66, 29, 124, 68, 70, 24, 135, 181, 8, 98, 45, 98, 45, 98, 45, 68, 70, 18, 148, 70, 68, 17, 151, 222, 1, 70, 68, 18, 148, 112, 35, 98, 45, 78, 61 }
|
||||
};
|
||||
@@ -0,0 +1,127 @@
|
||||
/*
|
||||
* Private transform API definitions for CUPS.
|
||||
*
|
||||
* Copyright © 2016-2018 by Apple Inc.
|
||||
*
|
||||
* Licensed under Apache License v2.0. See the file "LICENSE" for more
|
||||
* information.
|
||||
*/
|
||||
|
||||
#ifndef _CUPS_XFORM_PRIVATE_H_
|
||||
# define _CUPS_XFORM_PRIVATE_H_
|
||||
|
||||
|
||||
/*
|
||||
* Include necessary headers...
|
||||
*/
|
||||
|
||||
# include <cups/cups.h>
|
||||
# include <cups/raster.h>
|
||||
|
||||
|
||||
/*
|
||||
* C++ magic...
|
||||
*/
|
||||
|
||||
# ifdef __cplusplus
|
||||
extern "C" {
|
||||
# endif /* __cplusplus */
|
||||
|
||||
|
||||
/*
|
||||
* Constants...
|
||||
*/
|
||||
|
||||
/**** Input/Output MIME media types ****/
|
||||
# define XFORM_FORMAT_APPLE_RASTER "image/urf"
|
||||
# define XFORM_FORMAT_JPEG "image/jpeg"
|
||||
# define XFORM_FORMAT_PCL "application/vnd.hp-pcl"
|
||||
# define XFORM_FORMAT_PDF "application/pdf"
|
||||
# define XFORM_FORMAT_PNG "image/png"
|
||||
# define XFORM_FORMAT_POSTSCRIPT "application/postscript"
|
||||
# define XFORM_FORMAT_PWG_RASTER "image/pwg-raster"
|
||||
# define XFORM_FORMAT_TEXT "text/plain"
|
||||
|
||||
typedef enum xform_duplex_e /**** 2-Sided Capabilities ****/
|
||||
{
|
||||
XFORM_DUPLEX_NONE, /* No 2-sided support */
|
||||
XFORM_DUPLEX_NORMAL, /* 2-sided support, normal back side orientation ('normal') */
|
||||
XFORM_DUPLEX_LONG_TUMBLE, /* 2-sided support, rotate back side 180 degrees for long edge ('manual-tumble') */
|
||||
XFORM_DUPLEX_SHORT_TUMBLE, /* 2-sided support, rotate back side 180 degrees for short edge ('rotated') */
|
||||
XFORM_DUPLEX_MIRRORED /* 2-sided support, mirror back side ('flippped') */
|
||||
} xform_duplex_t;
|
||||
|
||||
typedef enum xform_loglevel_e /**** Logging Levels ****/
|
||||
{
|
||||
XFORM_LOGLEVEL_DEBUG, /* Debugging message */
|
||||
XFORM_LOGLEVEL_INFO, /* Informational message */
|
||||
XFORM_LOGLEVEL_ERROR, /* Error message */
|
||||
XFORM_LOGLEVEL_ATTR /* Attribute message */
|
||||
} xform_loglevel_t;
|
||||
|
||||
/*
|
||||
* Local types...
|
||||
*/
|
||||
|
||||
typedef struct xform_margins_s /**** Output margins ****/
|
||||
{
|
||||
int bottom, /* Bottom margin in hundredths of millimeters */
|
||||
left, /* Left margin in hundredths of millimeters */
|
||||
right, /* Right margin in hundredths of millimeters */
|
||||
top; /* Top margin in hundredths of millimeters */
|
||||
} xform_margins_t;
|
||||
|
||||
typedef struct xform_size_s /**** Output size ****/
|
||||
{
|
||||
int width, /* Width in hundredths of millimeters */
|
||||
length; /* Length in hundredths of millimeters */
|
||||
} xform_size_t;
|
||||
|
||||
typedef struct xform_capabilities_s /**** Output Capabilities ****/
|
||||
{
|
||||
int mixed; /* Supports pages with different colorspaces and sizes? */
|
||||
cups_cspace_t color, /* Colorspace for printing color documents */
|
||||
monochrome, /* Colorspace for printing B&W documents */
|
||||
photo; /* Colorspace for printing photos */
|
||||
unsigned draft_bits, /* Bits per color for printing draft quality */
|
||||
normal_bits, /* Bits per color for printing normal quality */
|
||||
high_bits; /* Bits per color for printing high/best/photo quality */
|
||||
unsigned draft_resolution[2], /* Draft resolution */
|
||||
normal_resolution[2], /* Normal resolution */
|
||||
high_resolution[2]; /* High/best/photo resolution */
|
||||
xform_duplex_t duplex; /* 2-sided capabilities */
|
||||
xform_margins_t margins; /* Default margins */
|
||||
xform_size_t size; /* Default size */
|
||||
xform_margins_t max_margins; /* Maximum margins */
|
||||
xform_size_t max_size; /* Maximum size */
|
||||
xform_margins_t min_margins; /* Minimum margins */
|
||||
xform_size_t min_size; /* Minimum size */
|
||||
} xform_caps_t;
|
||||
|
||||
typedef struct _xform_ctx_s xform_ctx_t;/**** Transform context ****/
|
||||
|
||||
typedef void (*xform_logcb_t)(void *user_data, xform_loglevel_t level, const char *message);
|
||||
/**** Logging callback ****/
|
||||
|
||||
typedef ssize_t (*xform_writecb_t)(void *user_data, const unsigned char *buffer, size_t length);
|
||||
/**** Output callback ****/
|
||||
|
||||
|
||||
/*
|
||||
* Functions...
|
||||
*/
|
||||
|
||||
extern void xformDelete(xform_ctx_t *ctx);
|
||||
extern int xformInitCapabilities(xform_caps_t *caps, ipp_t *supported);
|
||||
extern xform_ctx_t *xformNew(const char *outformat, xform_caps_t *outcaps);
|
||||
extern int xformRun(xform_ctx_t *ctx, const char *infile, const char *informat);
|
||||
extern void xformSetLogCallback(xform_ctx_t *ctx, xform_logcb_t logcb, void *logdata);
|
||||
extern void xformSetOptions(xform_ctx_t *ctx, int num_options, cups_option_t *options);
|
||||
extern void xformSetWriteCallback(xform_ctx_t *ctx, xform_writecb_t writecb, void *writedata);
|
||||
|
||||
|
||||
# ifdef __cplusplus
|
||||
}
|
||||
# endif /* __cplusplus */
|
||||
|
||||
#endif /* !_CUPS_XFORM_PRIVATE_H_ */
|
||||
+3526
Diferenças do arquivo suprimidas por serem muito extensas
Carregar Diff
@@ -575,7 +575,7 @@ h3.title {
|
||||
<!--
|
||||
PPD API introduction for CUPS.
|
||||
|
||||
Copyright © 2007-2012 by Apple Inc.
|
||||
Copyright © 2007-2018 by Apple Inc.
|
||||
Copyright © 1997-2006 by Easy Software Products, all rights reserved.
|
||||
|
||||
Licensed under Apache License v2.0. See the file "LICENSE" for more
|
||||
@@ -584,7 +584,7 @@ h3.title {
|
||||
|
||||
<h2 class='title'><a name='OVERVIEW'>Overview</a></h2>
|
||||
|
||||
<blockquote>The PPD API is deprecated starting in CUPS 1.6/macOS 10.8. Please use the new Job Ticket APIs in the <a href="api-cups.html">CUPS API</a> documentation. These functions will be removed in a future release of CUPS.</blockquote>
|
||||
<blockquote>The PPD API is deprecated starting in CUPS 1.6/macOS 10.8. Please use the new Job Ticket APIs in the <a href="cupspm.html">CUPS API</a> documentation. These functions will be removed in a future release of CUPS.</blockquote>
|
||||
|
||||
<p>The CUPS PPD API provides read-only access the data in PostScript Printer
|
||||
Description ("PPD") files which are used for all printers with a driver. With
|
||||
|
||||
Arquivo binário não exibido.
@@ -2201,9 +2201,13 @@ plug-ins.</p>
|
||||
|
||||
<blockquote><b>Note:</b>
|
||||
|
||||
<p>Starting with macOS 10.12, system level security features prevent print
|
||||
dialog plug-ins from being loaded into applications that have enabled the
|
||||
library validation security feature.</p>
|
||||
<p>Since 2010, AirPrint has enabled the printing of full quality photos and
|
||||
documents from the Mac without requiring driver software. Starting with macOS
|
||||
10.12, system level security features prevent print dialog plug-ins from being
|
||||
loaded into applications that have enabled the library validation security
|
||||
feature. As of macOS 10.14 the <code>APDialogExtension</code> attribute used to
|
||||
create macOS print drivers is deprecated. All new printer models should support
|
||||
AirPrint moving forward.</p>
|
||||
|
||||
</blockquote>
|
||||
|
||||
|
||||
@@ -0,0 +1,997 @@
|
||||
/*
|
||||
* Utility for converting PDF and JPEG files to raster data, PCL, PDF, or PS.
|
||||
*
|
||||
* Copyright © 2016-2018 by Apple Inc..
|
||||
*
|
||||
* Licensed under Apache License v2.0. See the file "LICENSE" for more
|
||||
* information.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Include necessayr headers...
|
||||
*/
|
||||
|
||||
#include <cups/xform-private.h>
|
||||
|
||||
|
||||
/*
|
||||
* 'main()' - Main entry for transform utility.
|
||||
*/
|
||||
|
||||
int /* O - Exit status */
|
||||
main(int argc, /* I - Number of command-line args */
|
||||
char *argv[]) /* I - Command-line arguments */
|
||||
{
|
||||
#if 0
|
||||
int i; /* Looping var */
|
||||
const char *filename = NULL, /* File to transform */
|
||||
*content_type, /* Source content type */
|
||||
*device_uri, /* Destination URI */
|
||||
*output_type, /* Destination content type */
|
||||
*resolutions, /* pwg-raster-document-resolution-supported */
|
||||
*sheet_back, /* pwg-raster-document-sheet-back */
|
||||
*types, /* pwg-raster-document-type-supported */
|
||||
*opt; /* Option character */
|
||||
int num_options; /* Number of options */
|
||||
cups_option_t *options; /* Options */
|
||||
int fd = 1; /* Output file/socket */
|
||||
http_t *http = NULL; /* Output HTTP connection */
|
||||
void *write_ptr = &fd; /* Pointer to file/socket/HTTP connection */
|
||||
char resource[1024]; /* URI resource path */
|
||||
xform_write_cb_t write_cb = (xform_write_cb_t)write_fd;
|
||||
/* Write callback */
|
||||
int status = 0; /* Exit status */
|
||||
_cups_thread_t monitor = 0; /* Monitoring thread ID */
|
||||
|
||||
|
||||
/*
|
||||
* Process the command-line...
|
||||
*/
|
||||
|
||||
num_options = load_env_options(&options);
|
||||
content_type = getenv("CONTENT_TYPE");
|
||||
device_uri = getenv("DEVICE_URI");
|
||||
output_type = getenv("OUTPUT_TYPE");
|
||||
resolutions = getenv("PWG_RASTER_DOCUMENT_RESOLUTION_SUPPORTED");
|
||||
sheet_back = getenv("PWG_RASTER_DOCUMENT_SHEET_BACK");
|
||||
types = getenv("PWG_RASTER_DOCUMENT_TYPE_SUPPORTED");
|
||||
|
||||
if ((opt = getenv("SERVER_LOGLEVEL")) != NULL)
|
||||
{
|
||||
if (!strcmp(opt, "debug"))
|
||||
Verbosity = 2;
|
||||
else if (!strcmp(opt, "info"))
|
||||
Verbosity = 1;
|
||||
}
|
||||
|
||||
for (i = 1; i < argc; i ++)
|
||||
{
|
||||
if (!strncmp(argv[i], "--", 2))
|
||||
{
|
||||
if (!strcmp(argv[i], "--help"))
|
||||
{
|
||||
usage(0);
|
||||
}
|
||||
else if (!strcmp(argv[i], "--version"))
|
||||
{
|
||||
puts(CUPS_SVERSION);
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf(stderr, "ERROR: Unknown option '%s'.\n", argv[i]);
|
||||
usage(1);
|
||||
}
|
||||
}
|
||||
else if (argv[i][0] == '-')
|
||||
{
|
||||
for (opt = argv[i] + 1; *opt; opt ++)
|
||||
{
|
||||
switch (*opt)
|
||||
{
|
||||
case 'd' :
|
||||
i ++;
|
||||
if (i >= argc)
|
||||
usage(1);
|
||||
|
||||
device_uri = argv[i];
|
||||
break;
|
||||
|
||||
case 'i' :
|
||||
i ++;
|
||||
if (i >= argc)
|
||||
usage(1);
|
||||
|
||||
content_type = argv[i];
|
||||
break;
|
||||
|
||||
case 'm' :
|
||||
i ++;
|
||||
if (i >= argc)
|
||||
usage(1);
|
||||
|
||||
output_type = argv[i];
|
||||
break;
|
||||
|
||||
case 'o' :
|
||||
i ++;
|
||||
if (i >= argc)
|
||||
usage(1);
|
||||
|
||||
num_options = cupsParseOptions(argv[i], num_options, &options);
|
||||
break;
|
||||
|
||||
case 'r' : /* pwg-raster-document-resolution-supported values */
|
||||
i ++;
|
||||
if (i >= argc)
|
||||
usage(1);
|
||||
|
||||
resolutions = argv[i];
|
||||
break;
|
||||
|
||||
case 's' : /* pwg-raster-document-sheet-back value */
|
||||
i ++;
|
||||
if (i >= argc)
|
||||
usage(1);
|
||||
|
||||
sheet_back = argv[i];
|
||||
break;
|
||||
|
||||
case 't' : /* pwg-raster-document-type-supported values */
|
||||
i ++;
|
||||
if (i >= argc)
|
||||
usage(1);
|
||||
|
||||
types = argv[i];
|
||||
break;
|
||||
|
||||
case 'v' : /* Be verbose... */
|
||||
Verbosity ++;
|
||||
break;
|
||||
|
||||
default :
|
||||
fprintf(stderr, "ERROR: Unknown option '-%c'.\n", *opt);
|
||||
usage(1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (!filename)
|
||||
filename = argv[i];
|
||||
else
|
||||
usage(1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Check that we have everything we need...
|
||||
*/
|
||||
|
||||
if (!filename)
|
||||
usage(1);
|
||||
|
||||
if (!content_type)
|
||||
{
|
||||
if ((opt = strrchr(filename, '.')) != NULL)
|
||||
{
|
||||
if (!strcmp(opt, ".pdf"))
|
||||
content_type = "application/pdf";
|
||||
else if (!strcmp(opt, ".jpg") || !strcmp(opt, ".jpeg"))
|
||||
content_type = "image/jpeg";
|
||||
}
|
||||
}
|
||||
|
||||
if (!content_type)
|
||||
{
|
||||
fprintf(stderr, "ERROR: Unknown format for \"%s\", please specify with '-i' option.\n", filename);
|
||||
usage(1);
|
||||
}
|
||||
else if (strcmp(content_type, "application/pdf") && strcmp(content_type, "image/jpeg"))
|
||||
{
|
||||
fprintf(stderr, "ERROR: Unsupported format \"%s\" for \"%s\".\n", content_type, filename);
|
||||
usage(1);
|
||||
}
|
||||
|
||||
if (!output_type)
|
||||
{
|
||||
fputs("ERROR: Unknown output format, please specify with '-m' option.\n", stderr);
|
||||
usage(1);
|
||||
}
|
||||
else if (strcmp(output_type, "application/vnd.hp-pcl") && strcmp(output_type, "image/pwg-raster") && strcmp(output_type, "image/urf"))
|
||||
{
|
||||
fprintf(stderr, "ERROR: Unsupported output format \"%s\".\n", output_type);
|
||||
usage(1);
|
||||
}
|
||||
|
||||
if (!resolutions)
|
||||
resolutions = "300dpi";
|
||||
if (!sheet_back)
|
||||
sheet_back = "normal";
|
||||
if (!types)
|
||||
types = "sgray_8";
|
||||
|
||||
/*
|
||||
* If the device URI is specified, open the connection...
|
||||
*/
|
||||
|
||||
if (device_uri)
|
||||
{
|
||||
char scheme[32], /* URI scheme */
|
||||
userpass[256], /* URI user:pass */
|
||||
host[256], /* URI host */
|
||||
service[32]; /* Service port */
|
||||
int port; /* URI port number */
|
||||
http_addrlist_t *list; /* Address list for socket */
|
||||
|
||||
if (httpSeparateURI(HTTP_URI_CODING_ALL, device_uri, scheme, sizeof(scheme), userpass, sizeof(userpass), host, sizeof(host), &port, resource, sizeof(resource)) < HTTP_URI_STATUS_OK)
|
||||
{
|
||||
fprintf(stderr, "ERROR: Invalid device URI \"%s\".\n", device_uri);
|
||||
usage(1);
|
||||
}
|
||||
|
||||
if (strcmp(scheme, "socket") && strcmp(scheme, "ipp") && strcmp(scheme, "ipps"))
|
||||
{
|
||||
fprintf(stderr, "ERROR: Unsupported device URI scheme \"%s\".\n", scheme);
|
||||
usage(1);
|
||||
}
|
||||
|
||||
snprintf(service, sizeof(service), "%d", port);
|
||||
if ((list = httpAddrGetList(host, AF_UNSPEC, service)) == NULL)
|
||||
{
|
||||
fprintf(stderr, "ERROR: Unable to lookup device URI host \"%s\": %s\n", host, cupsLastErrorString());
|
||||
return (1);
|
||||
}
|
||||
|
||||
if (!strcmp(scheme, "socket"))
|
||||
{
|
||||
/*
|
||||
* AppSocket connection...
|
||||
*/
|
||||
|
||||
if (!httpAddrConnect2(list, &fd, 30000, NULL))
|
||||
{
|
||||
fprintf(stderr, "ERROR: Unable to connect to \"%s\" on port %d: %s\n", host, port, cupsLastErrorString());
|
||||
return (1);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
http_encryption_t encryption; /* Encryption mode */
|
||||
ipp_t *request, /* IPP request */
|
||||
*response; /* IPP response */
|
||||
ipp_attribute_t *attr; /* operations-supported */
|
||||
int create_job = 0; /* Support for Create-Job/Send-Document? */
|
||||
const char *job_name; /* Title of job */
|
||||
const char *media; /* Value of "media" option */
|
||||
const char *sides; /* Value of "sides" option */
|
||||
|
||||
/*
|
||||
* Connect to the IPP/IPPS printer...
|
||||
*/
|
||||
|
||||
if (port == 443 || !strcmp(scheme, "ipps"))
|
||||
encryption = HTTP_ENCRYPTION_ALWAYS;
|
||||
else
|
||||
encryption = HTTP_ENCRYPTION_IF_REQUESTED;
|
||||
|
||||
if ((http = httpConnect2(host, port, list, AF_UNSPEC, encryption, 1, 30000, NULL)) == NULL)
|
||||
{
|
||||
fprintf(stderr, "ERROR: Unable to connect to \"%s\" on port %d: %s\n", host, port, cupsLastErrorString());
|
||||
return (1);
|
||||
}
|
||||
|
||||
/*
|
||||
* See if it supports Create-Job + Send-Document...
|
||||
*/
|
||||
|
||||
request = ippNewRequest(IPP_OP_GET_PRINTER_ATTRIBUTES);
|
||||
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri", NULL, device_uri);
|
||||
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME, "requesting-user-name", NULL, cupsUser());
|
||||
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_KEYWORD, "requested-attributes", NULL, "operations-supported");
|
||||
|
||||
response = cupsDoRequest(http, request, resource);
|
||||
if (cupsLastError() > IPP_STATUS_OK_EVENTS_COMPLETE)
|
||||
{
|
||||
fprintf(stderr, "ERROR: Unable to get printer capabilities: %s\n", cupsLastErrorString());
|
||||
return (1);
|
||||
}
|
||||
|
||||
if ((attr = ippFindAttribute(response, "operations-supported", IPP_TAG_ENUM)) == NULL)
|
||||
{
|
||||
fputs("ERROR: Unable to get list of supported operations from printer.\n", stderr);
|
||||
return (1);
|
||||
}
|
||||
|
||||
create_job = ippContainsInteger(attr, IPP_OP_CREATE_JOB) && ippContainsInteger(attr, IPP_OP_SEND_DOCUMENT);
|
||||
|
||||
ippDelete(response);
|
||||
|
||||
/*
|
||||
* Create the job and start printing...
|
||||
*/
|
||||
|
||||
if ((job_name = getenv("IPP_JOB_NAME")) == NULL)
|
||||
{
|
||||
if ((job_name = strrchr(filename, '/')) != NULL)
|
||||
job_name ++;
|
||||
else
|
||||
job_name = filename;
|
||||
}
|
||||
|
||||
if (create_job)
|
||||
{
|
||||
int job_id = 0; /* Job ID */
|
||||
|
||||
request = ippNewRequest(IPP_OP_CREATE_JOB);
|
||||
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri", NULL, device_uri);
|
||||
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME, "requesting-user-name", NULL, cupsUser());
|
||||
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME, "job-name", NULL, job_name);
|
||||
|
||||
response = cupsDoRequest(http, request, resource);
|
||||
if ((attr = ippFindAttribute(response, "job-id", IPP_TAG_INTEGER)) != NULL)
|
||||
job_id = ippGetInteger(attr, 0);
|
||||
ippDelete(response);
|
||||
|
||||
if (cupsLastError() > IPP_STATUS_OK_EVENTS_COMPLETE)
|
||||
{
|
||||
fprintf(stderr, "ERROR: Unable to create print job: %s\n", cupsLastErrorString());
|
||||
return (1);
|
||||
}
|
||||
else if (job_id <= 0)
|
||||
{
|
||||
fputs("ERROR: No job-id for created print job.\n", stderr);
|
||||
return (1);
|
||||
}
|
||||
|
||||
request = ippNewRequest(IPP_OP_SEND_DOCUMENT);
|
||||
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri", NULL, device_uri);
|
||||
ippAddInteger(request, IPP_TAG_OPERATION, IPP_TAG_INTEGER, "job-id", job_id);
|
||||
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME, "requesting-user-name", NULL, cupsUser());
|
||||
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_MIMETYPE, "document-format", NULL, output_type);
|
||||
ippAddBoolean(request, IPP_TAG_OPERATION, "last-document", 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
request = ippNewRequest(IPP_OP_PRINT_JOB);
|
||||
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri", NULL, device_uri);
|
||||
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME, "requesting-user-name", NULL, cupsUser());
|
||||
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_MIMETYPE, "document-format", NULL, output_type);
|
||||
}
|
||||
|
||||
if ((media = cupsGetOption("media", num_options, options)) != NULL)
|
||||
ippAddString(request, IPP_TAG_JOB, IPP_TAG_KEYWORD, "media", NULL, media);
|
||||
|
||||
if ((sides = cupsGetOption("sides", num_options, options)) != NULL)
|
||||
ippAddString(request, IPP_TAG_JOB, IPP_TAG_KEYWORD, "sides", NULL, sides);
|
||||
|
||||
if (cupsSendRequest(http, request, resource, 0) != HTTP_STATUS_CONTINUE)
|
||||
{
|
||||
fprintf(stderr, "ERROR: Unable to send print data: %s\n", cupsLastErrorString());
|
||||
return (1);
|
||||
}
|
||||
|
||||
ippDelete(request);
|
||||
|
||||
write_cb = (xform_write_cb_t)httpWrite2;
|
||||
write_ptr = http;
|
||||
|
||||
monitor = _cupsThreadCreate((_cups_thread_func_t)monitor_ipp, (void *)device_uri);
|
||||
}
|
||||
|
||||
httpAddrFreeList(list);
|
||||
}
|
||||
|
||||
/*
|
||||
* Do transform...
|
||||
*/
|
||||
|
||||
status = xform_document(filename, content_type, output_type, resolutions, sheet_back, types, num_options, options, write_cb, write_ptr);
|
||||
|
||||
if (http)
|
||||
{
|
||||
ippDelete(cupsGetResponse(http, resource));
|
||||
|
||||
if (cupsLastError() > IPP_STATUS_OK_EVENTS_COMPLETE)
|
||||
{
|
||||
fprintf(stderr, "ERROR: Unable to send print data: %s\n", cupsLastErrorString());
|
||||
status = 1;
|
||||
}
|
||||
|
||||
httpClose(http);
|
||||
}
|
||||
else if (fd != 1)
|
||||
close(fd);
|
||||
|
||||
if (monitor)
|
||||
_cupsThreadCancel(monitor);
|
||||
|
||||
return (status);
|
||||
#endif /* 0 */
|
||||
|
||||
(void)argc;
|
||||
(void)argv;
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 'pcl_end_job()' - End a PCL "job".
|
||||
*/
|
||||
|
||||
static void
|
||||
pcl_end_job(xform_raster_t *ras, /* I - Raster information */
|
||||
xform_write_cb_t cb, /* I - Write callback */
|
||||
void *ctx) /* I - Write context */
|
||||
{
|
||||
(void)ras;
|
||||
|
||||
/*
|
||||
* Send a PCL reset sequence.
|
||||
*/
|
||||
|
||||
(*cb)(ctx, (const unsigned char *)"\033E", 2);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 'pcl_end_page()' - End of PCL page.
|
||||
*/
|
||||
|
||||
static void
|
||||
pcl_end_page(xform_raster_t *ras, /* I - Raster information */
|
||||
unsigned page, /* I - Current page */
|
||||
xform_write_cb_t cb, /* I - Write callback */
|
||||
void *ctx) /* I - Write context */
|
||||
{
|
||||
/*
|
||||
* End graphics...
|
||||
*/
|
||||
|
||||
(*cb)(ctx, (const unsigned char *)"\033*r0B", 5);
|
||||
|
||||
/*
|
||||
* Formfeed as needed...
|
||||
*/
|
||||
|
||||
if (!(ras->header.Duplex && (page & 1)))
|
||||
(*cb)(ctx, (const unsigned char *)"\014", 1);
|
||||
|
||||
/*
|
||||
* Free the output buffer...
|
||||
*/
|
||||
|
||||
free(ras->out_buffer);
|
||||
ras->out_buffer = NULL;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 'pcl_init()' - Initialize callbacks for PCL output.
|
||||
*/
|
||||
|
||||
static void
|
||||
pcl_init(xform_raster_t *ras) /* I - Raster information */
|
||||
{
|
||||
ras->end_job = pcl_end_job;
|
||||
ras->end_page = pcl_end_page;
|
||||
ras->start_job = pcl_start_job;
|
||||
ras->start_page = pcl_start_page;
|
||||
ras->write_line = pcl_write_line;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 'pcl_printf()' - Write a formatted string.
|
||||
*/
|
||||
|
||||
static void
|
||||
pcl_printf(xform_write_cb_t cb, /* I - Write callback */
|
||||
void *ctx, /* I - Write context */
|
||||
const char *format, /* I - Printf-style format string */
|
||||
...) /* I - Additional arguments as needed */
|
||||
{
|
||||
va_list ap; /* Argument pointer */
|
||||
char buffer[8192]; /* Buffer */
|
||||
|
||||
|
||||
va_start(ap, format);
|
||||
vsnprintf(buffer, sizeof(buffer), format, ap);
|
||||
va_end(ap);
|
||||
|
||||
(*cb)(ctx, (const unsigned char *)buffer, strlen(buffer));
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 'pcl_start_job()' - Start a PCL "job".
|
||||
*/
|
||||
|
||||
static void
|
||||
pcl_start_job(xform_raster_t *ras, /* I - Raster information */
|
||||
xform_write_cb_t cb, /* I - Write callback */
|
||||
void *ctx) /* I - Write context */
|
||||
{
|
||||
(void)ras;
|
||||
|
||||
/*
|
||||
* Send a PCL reset sequence.
|
||||
*/
|
||||
|
||||
(*cb)(ctx, (const unsigned char *)"\033E", 2);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 'pcl_start_page()' - Start a PCL page.
|
||||
*/
|
||||
|
||||
static void
|
||||
pcl_start_page(xform_raster_t *ras, /* I - Raster information */
|
||||
unsigned page, /* I - Current page */
|
||||
xform_write_cb_t cb, /* I - Write callback */
|
||||
void *ctx) /* I - Write context */
|
||||
{
|
||||
/*
|
||||
* Setup margins to be 1/6" top and bottom and 1/4" or .135" on the
|
||||
* left and right.
|
||||
*/
|
||||
|
||||
ras->top = ras->header.HWResolution[1] / 6;
|
||||
ras->bottom = ras->header.cupsHeight - ras->header.HWResolution[1] / 6 - 1;
|
||||
|
||||
if (ras->header.PageSize[1] == 842)
|
||||
{
|
||||
/* A4 gets special side margins to expose an 8" print area */
|
||||
ras->left = (ras->header.cupsWidth - 8 * ras->header.HWResolution[0]) / 2;
|
||||
ras->right = ras->left + 8 * ras->header.HWResolution[0] - 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* All other sizes get 1/4" margins */
|
||||
ras->left = ras->header.HWResolution[0] / 4;
|
||||
ras->right = ras->header.cupsWidth - ras->header.HWResolution[0] / 4 - 1;
|
||||
}
|
||||
|
||||
if (!ras->header.Duplex || (page & 1))
|
||||
{
|
||||
/*
|
||||
* Set the media size...
|
||||
*/
|
||||
|
||||
pcl_printf(cb, ctx, "\033&l12D\033&k12H");
|
||||
/* Set 12 LPI, 10 CPI */
|
||||
pcl_printf(cb, ctx, "\033&l0O"); /* Set portrait orientation */
|
||||
|
||||
switch (ras->header.PageSize[1])
|
||||
{
|
||||
case 540 : /* Monarch Envelope */
|
||||
pcl_printf(cb, ctx, "\033&l80A");
|
||||
break;
|
||||
|
||||
case 595 : /* A5 */
|
||||
pcl_printf(cb, ctx, "\033&l25A");
|
||||
break;
|
||||
|
||||
case 624 : /* DL Envelope */
|
||||
pcl_printf(cb, ctx, "\033&l90A");
|
||||
break;
|
||||
|
||||
case 649 : /* C5 Envelope */
|
||||
pcl_printf(cb, ctx, "\033&l91A");
|
||||
break;
|
||||
|
||||
case 684 : /* COM-10 Envelope */
|
||||
pcl_printf(cb, ctx, "\033&l81A");
|
||||
break;
|
||||
|
||||
case 709 : /* B5 Envelope */
|
||||
pcl_printf(cb, ctx, "\033&l100A");
|
||||
break;
|
||||
|
||||
case 756 : /* Executive */
|
||||
pcl_printf(cb, ctx, "\033&l1A");
|
||||
break;
|
||||
|
||||
case 792 : /* Letter */
|
||||
pcl_printf(cb, ctx, "\033&l2A");
|
||||
break;
|
||||
|
||||
case 842 : /* A4 */
|
||||
pcl_printf(cb, ctx, "\033&l26A");
|
||||
break;
|
||||
|
||||
case 1008 : /* Legal */
|
||||
pcl_printf(cb, ctx, "\033&l3A");
|
||||
break;
|
||||
|
||||
case 1191 : /* A3 */
|
||||
pcl_printf(cb, ctx, "\033&l27A");
|
||||
break;
|
||||
|
||||
case 1224 : /* Tabloid */
|
||||
pcl_printf(cb, ctx, "\033&l6A");
|
||||
break;
|
||||
}
|
||||
|
||||
/*
|
||||
* Set top margin and turn off perforation skip...
|
||||
*/
|
||||
|
||||
pcl_printf(cb, ctx, "\033&l%uE\033&l0L", 12 * ras->top / ras->header.HWResolution[1]);
|
||||
|
||||
if (ras->header.Duplex)
|
||||
{
|
||||
int mode = ras->header.Duplex ? 1 + ras->header.Tumble != 0 : 0;
|
||||
|
||||
pcl_printf(cb, ctx, "\033&l%dS", mode);
|
||||
/* Set duplex mode */
|
||||
}
|
||||
}
|
||||
else if (ras->header.Duplex)
|
||||
pcl_printf(cb, ctx, "\033&a2G"); /* Print on back side */
|
||||
|
||||
/*
|
||||
* Set graphics mode...
|
||||
*/
|
||||
|
||||
pcl_printf(cb, ctx, "\033*t%uR", ras->header.HWResolution[0]);
|
||||
/* Set resolution */
|
||||
pcl_printf(cb, ctx, "\033*r%uS", ras->right - ras->left + 1);
|
||||
/* Set width */
|
||||
pcl_printf(cb, ctx, "\033*r%uT", ras->bottom - ras->top + 1);
|
||||
/* Set height */
|
||||
pcl_printf(cb, ctx, "\033&a0H\033&a%uV", 720 * ras->top / ras->header.HWResolution[1]);
|
||||
/* Set position */
|
||||
|
||||
pcl_printf(cb, ctx, "\033*b2M"); /* Use PackBits compression */
|
||||
pcl_printf(cb, ctx, "\033*r1A"); /* Start graphics */
|
||||
|
||||
/*
|
||||
* Allocate the output buffer...
|
||||
*/
|
||||
|
||||
ras->out_blanks = 0;
|
||||
ras->out_length = (ras->right - ras->left + 8) / 8;
|
||||
ras->out_buffer = malloc(ras->out_length);
|
||||
ras->comp_buffer = malloc(2 * ras->out_length + 2);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 'pcl_write_line()' - Write a line of raster data.
|
||||
*/
|
||||
|
||||
static void
|
||||
pcl_write_line(
|
||||
xform_raster_t *ras, /* I - Raster information */
|
||||
unsigned y, /* I - Line number */
|
||||
const unsigned char *line, /* I - Pixels on line */
|
||||
xform_write_cb_t cb, /* I - Write callback */
|
||||
void *ctx) /* I - Write context */
|
||||
{
|
||||
unsigned x; /* Column number */
|
||||
unsigned char bit, /* Current bit */
|
||||
byte, /* Current byte */
|
||||
*outptr, /* Pointer into output buffer */
|
||||
*outend, /* End of output buffer */
|
||||
*start, /* Start of sequence */
|
||||
*compptr; /* Pointer into compression buffer */
|
||||
unsigned count; /* Count of bytes for output */
|
||||
|
||||
|
||||
if (line[0] == 255 && !memcmp(line, line + 1, ras->right - ras->left))
|
||||
{
|
||||
/*
|
||||
* Skip blank line...
|
||||
*/
|
||||
|
||||
ras->out_blanks ++;
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* Dither the line into the output buffer...
|
||||
*/
|
||||
|
||||
y &= 63;
|
||||
|
||||
for (x = ras->left, bit = 128, byte = 0, outptr = ras->out_buffer; x <= ras->right; x ++, line ++)
|
||||
{
|
||||
if (*line <= threshold[x & 63][y])
|
||||
byte |= bit;
|
||||
|
||||
if (bit == 1)
|
||||
{
|
||||
*outptr++ = byte;
|
||||
byte = 0;
|
||||
bit = 128;
|
||||
}
|
||||
else
|
||||
bit >>= 1;
|
||||
}
|
||||
|
||||
if (bit != 128)
|
||||
*outptr++ = byte;
|
||||
|
||||
/*
|
||||
* Apply compression...
|
||||
*/
|
||||
|
||||
compptr = ras->comp_buffer;
|
||||
outend = outptr;
|
||||
outptr = ras->out_buffer;
|
||||
|
||||
while (outptr < outend)
|
||||
{
|
||||
if ((outptr + 1) >= outend)
|
||||
{
|
||||
/*
|
||||
* Single byte on the end...
|
||||
*/
|
||||
|
||||
*compptr++ = 0x00;
|
||||
*compptr++ = *outptr++;
|
||||
}
|
||||
else if (outptr[0] == outptr[1])
|
||||
{
|
||||
/*
|
||||
* Repeated sequence...
|
||||
*/
|
||||
|
||||
outptr ++;
|
||||
count = 2;
|
||||
|
||||
while (outptr < (outend - 1) &&
|
||||
outptr[0] == outptr[1] &&
|
||||
count < 127)
|
||||
{
|
||||
outptr ++;
|
||||
count ++;
|
||||
}
|
||||
|
||||
*compptr++ = (unsigned char)(257 - count);
|
||||
*compptr++ = *outptr++;
|
||||
}
|
||||
else
|
||||
{
|
||||
/*
|
||||
* Non-repeated sequence...
|
||||
*/
|
||||
|
||||
start = outptr;
|
||||
outptr ++;
|
||||
count = 1;
|
||||
|
||||
while (outptr < (outend - 1) &&
|
||||
outptr[0] != outptr[1] &&
|
||||
count < 127)
|
||||
{
|
||||
outptr ++;
|
||||
count ++;
|
||||
}
|
||||
|
||||
*compptr++ = (unsigned char)(count - 1);
|
||||
|
||||
memcpy(compptr, start, count);
|
||||
compptr += count;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Output the line...
|
||||
*/
|
||||
|
||||
if (ras->out_blanks > 0)
|
||||
{
|
||||
/*
|
||||
* Skip blank lines first...
|
||||
*/
|
||||
|
||||
pcl_printf(cb, ctx, "\033*b%dY", ras->out_blanks);
|
||||
ras->out_blanks = 0;
|
||||
}
|
||||
|
||||
pcl_printf(cb, ctx, "\033*b%dW", (int)(compptr - ras->comp_buffer));
|
||||
(*cb)(ctx, ras->comp_buffer, (size_t)(compptr - ras->comp_buffer));
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 'raster_end_job()' - End a raster "job".
|
||||
*/
|
||||
|
||||
static void
|
||||
raster_end_job(xform_raster_t *ras, /* I - Raster information */
|
||||
xform_write_cb_t cb, /* I - Write callback */
|
||||
void *ctx) /* I - Write context */
|
||||
{
|
||||
(void)cb;
|
||||
(void)ctx;
|
||||
|
||||
cupsRasterClose(ras->ras);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 'raster_end_page()' - End of raster page.
|
||||
*/
|
||||
|
||||
static void
|
||||
raster_end_page(xform_raster_t *ras, /* I - Raster information */
|
||||
unsigned page, /* I - Current page */
|
||||
xform_write_cb_t cb, /* I - Write callback */
|
||||
void *ctx) /* I - Write context */
|
||||
{
|
||||
(void)page;
|
||||
(void)cb;
|
||||
(void)ctx;
|
||||
|
||||
if (ras->header.cupsBitsPerPixel == 1)
|
||||
{
|
||||
free(ras->out_buffer);
|
||||
ras->out_buffer = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 'raster_init()' - Initialize callbacks for raster output.
|
||||
*/
|
||||
|
||||
static void
|
||||
raster_init(xform_raster_t *ras) /* I - Raster information */
|
||||
{
|
||||
ras->end_job = raster_end_job;
|
||||
ras->end_page = raster_end_page;
|
||||
ras->start_job = raster_start_job;
|
||||
ras->start_page = raster_start_page;
|
||||
ras->write_line = raster_write_line;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 'raster_start_job()' - Start a raster "job".
|
||||
*/
|
||||
|
||||
static void
|
||||
raster_start_job(xform_raster_t *ras, /* I - Raster information */
|
||||
xform_write_cb_t cb, /* I - Write callback */
|
||||
void *ctx) /* I - Write context */
|
||||
{
|
||||
ras->ras = cupsRasterOpenIO((cups_raster_iocb_t)cb, ctx, !strcmp(ras->format, "image/pwg-raster") ? CUPS_RASTER_WRITE_PWG : CUPS_RASTER_WRITE_APPLE);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 'raster_start_page()' - Start a raster page.
|
||||
*/
|
||||
|
||||
static void
|
||||
raster_start_page(xform_raster_t *ras,/* I - Raster information */
|
||||
unsigned page,/* I - Current page */
|
||||
xform_write_cb_t cb, /* I - Write callback */
|
||||
void *ctx)/* I - Write context */
|
||||
{
|
||||
(void)cb;
|
||||
(void)ctx;
|
||||
|
||||
ras->left = 0;
|
||||
ras->top = 0;
|
||||
ras->right = ras->header.cupsWidth - 1;
|
||||
ras->bottom = ras->header.cupsHeight - 1;
|
||||
|
||||
if (ras->header.Duplex && !(page & 1))
|
||||
cupsRasterWriteHeader2(ras->ras, &ras->back_header);
|
||||
else
|
||||
cupsRasterWriteHeader2(ras->ras, &ras->header);
|
||||
|
||||
if (ras->header.cupsBitsPerPixel == 1)
|
||||
{
|
||||
ras->out_length = ras->header.cupsBytesPerLine;
|
||||
ras->out_buffer = malloc(ras->header.cupsBytesPerLine);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 'raster_write_line()' - Write a line of raster data.
|
||||
*/
|
||||
|
||||
static void
|
||||
raster_write_line(
|
||||
xform_raster_t *ras, /* I - Raster information */
|
||||
unsigned y, /* I - Line number */
|
||||
const unsigned char *line, /* I - Pixels on line */
|
||||
xform_write_cb_t cb, /* I - Write callback */
|
||||
void *ctx) /* I - Write context */
|
||||
{
|
||||
(void)cb;
|
||||
(void)ctx;
|
||||
|
||||
if (ras->header.cupsBitsPerPixel == 1)
|
||||
{
|
||||
/*
|
||||
* Dither the line into the output buffer...
|
||||
*/
|
||||
|
||||
unsigned x; /* Column number */
|
||||
unsigned char bit, /* Current bit */
|
||||
byte, /* Current byte */
|
||||
*outptr; /* Pointer into output buffer */
|
||||
|
||||
y &= 63;
|
||||
|
||||
if (ras->header.cupsColorSpace == CUPS_CSPACE_SW)
|
||||
{
|
||||
for (x = ras->left, bit = 128, byte = 0, outptr = ras->out_buffer; x <= ras->right; x ++, line ++)
|
||||
{
|
||||
if (*line > threshold[x % 25][y])
|
||||
byte |= bit;
|
||||
|
||||
if (bit == 1)
|
||||
{
|
||||
*outptr++ = byte;
|
||||
byte = 0;
|
||||
bit = 128;
|
||||
}
|
||||
else
|
||||
bit >>= 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (x = ras->left, bit = 128, byte = 0, outptr = ras->out_buffer; x <= ras->right; x ++, line ++)
|
||||
{
|
||||
if (*line <= threshold[x & 63][y])
|
||||
byte |= bit;
|
||||
|
||||
if (bit == 1)
|
||||
{
|
||||
*outptr++ = byte;
|
||||
byte = 0;
|
||||
bit = 128;
|
||||
}
|
||||
else
|
||||
bit >>= 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (bit != 128)
|
||||
*outptr++ = byte;
|
||||
|
||||
cupsRasterWritePixels(ras->ras, ras->out_buffer, ras->header.cupsBytesPerLine);
|
||||
}
|
||||
else
|
||||
cupsRasterWritePixels(ras->ras, (unsigned char *)line, ras->header.cupsBytesPerLine);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 'write_fd()' - Write to a file/socket.
|
||||
*/
|
||||
|
||||
static ssize_t /* O - Number of bytes written or -1 on error */
|
||||
write_fd(int *fd, /* I - File descriptor */
|
||||
const unsigned char *buffer, /* I - Buffer */
|
||||
size_t bytes) /* I - Number of bytes to write */
|
||||
{
|
||||
ssize_t temp, /* Temporary byte count */
|
||||
total = 0; /* Total bytes written */
|
||||
|
||||
|
||||
while (bytes > 0)
|
||||
{
|
||||
if ((temp = write(*fd, buffer, bytes)) < 0)
|
||||
{
|
||||
if (errno == EINTR || errno == EAGAIN)
|
||||
continue;
|
||||
else
|
||||
return (-1);
|
||||
}
|
||||
|
||||
total += temp;
|
||||
bytes -= (size_t)temp;
|
||||
buffer += temp;
|
||||
}
|
||||
|
||||
return (total);
|
||||
}
|
||||
+5
-4
@@ -1,10 +1,11 @@
|
||||
/*
|
||||
* PostScript filter for CUPS.
|
||||
*
|
||||
* Copyright 2007-2015 by Apple Inc.
|
||||
* Copyright 1993-2007 by Easy Software Products.
|
||||
* Copyright © 2007-2018 by Apple Inc.
|
||||
* Copyright © 1993-2007 by Easy Software Products.
|
||||
*
|
||||
* Licensed under Apache License v2.0. See the file "LICENSE" for more information.
|
||||
* Licensed under Apache License v2.0. See the file "LICENSE" for more
|
||||
* information.
|
||||
*/
|
||||
|
||||
/*
|
||||
@@ -2229,7 +2230,7 @@ parse_text(const char *start, /* I - Start of text value */
|
||||
bufptr = buffer;
|
||||
bufend = buffer + bufsize - 1;
|
||||
|
||||
while (bufptr < bufend)
|
||||
while (*start && bufptr < bufend)
|
||||
{
|
||||
if (isspace(*start & 255) && !level)
|
||||
break;
|
||||
|
||||
@@ -1657,9 +1657,13 @@ plug-ins.</p>
|
||||
|
||||
<blockquote><b>Note:</b>
|
||||
|
||||
<p>Starting with macOS 10.12, system level security features prevent print
|
||||
dialog plug-ins from being loaded into applications that have enabled the
|
||||
library validation security feature.</p>
|
||||
<p>Since 2010, AirPrint has enabled the printing of full quality photos and
|
||||
documents from the Mac without requiring driver software. Starting with macOS
|
||||
10.12, system level security features prevent print dialog plug-ins from being
|
||||
loaded into applications that have enabled the library validation security
|
||||
feature. As of macOS 10.14 the <code>APDialogExtension</code> attribute used to
|
||||
create macOS print drivers is deprecated. All new printer models should support
|
||||
AirPrint moving forward.</p>
|
||||
|
||||
</blockquote>
|
||||
|
||||
|
||||
+417
-389
Diferenças do arquivo suprimidas por serem muito extensas
Carregar Diff
@@ -329,6 +329,7 @@
|
||||
"\"%s\": Bad mimeMediaType value \"%s\" - bad characters (RFC 8011 section 5.1.10)." = "“%s”: Bad mimeMediaType value “%s” - bad characters (RFC 8011 section 5.1.10).";
|
||||
"\"%s\": Bad mimeMediaType value \"%s\" - bad length %d (RFC 8011 section 5.1.10)." = "“%s”: Bad mimeMediaType value “%s” - bad length %d (RFC 8011 section 5.1.10).";
|
||||
"\"%s\": Bad name value \"%s\" - bad UTF-8 sequence (RFC 8011 section 5.1.3)." = "“%s”: Bad name value “%s” - bad UTF-8 sequence (RFC 8011 section 5.1.3).";
|
||||
"\"%s\": Bad name value \"%s\" - bad control character (PWG 5100.14 section 8.1)." = "“%s”: Bad name value “%s” - bad control character (PWG 5100.14 section 8.1).";
|
||||
"\"%s\": Bad name value \"%s\" - bad length %d (RFC 8011 section 5.1.3)." = "“%s”: Bad name value “%s” - bad length %d (RFC 8011 section 5.1.3).";
|
||||
"\"%s\": Bad naturalLanguage value \"%s\" - bad characters (RFC 8011 section 5.1.9)." = "“%s”: Bad naturalLanguage value “%s” - bad characters (RFC 8011 section 5.1.9).";
|
||||
"\"%s\": Bad naturalLanguage value \"%s\" - bad length %d (RFC 8011 section 5.1.9)." = "“%s”: Bad naturalLanguage value “%s” - bad length %d (RFC 8011 section 5.1.9).";
|
||||
@@ -338,6 +339,7 @@
|
||||
"\"%s\": Bad resolution value %dx%d%s - cross feed resolution must be positive (RFC 8011 section 5.1.16)." = "“%s”: Bad resolution value %dx%d%s - cross feed resolution must be positive (RFC 8011 section 5.1.16).";
|
||||
"\"%s\": Bad resolution value %dx%d%s - feed resolution must be positive (RFC 8011 section 5.1.16)." = "“%s”: Bad resolution value %dx%d%s - feed resolution must be positive (RFC 8011 section 5.1.16).";
|
||||
"\"%s\": Bad text value \"%s\" - bad UTF-8 sequence (RFC 8011 section 5.1.2)." = "“%s”: Bad text value “%s” - bad UTF-8 sequence (RFC 8011 section 5.1.2).";
|
||||
"\"%s\": Bad text value \"%s\" - bad control character (PWG 5100.14 section 8.3)." = "“%s”: Bad text value “%s” - bad control character (PWG 5100.14 section 8.3).";
|
||||
"\"%s\": Bad text value \"%s\" - bad length %d (RFC 8011 section 5.1.2)." = "“%s”: Bad text value “%s” - bad length %d (RFC 8011 section 5.1.2).";
|
||||
"\"%s\": Bad uriScheme value \"%s\" - bad characters (RFC 8011 section 5.1.7)." = "“%s”: Bad uriScheme value “%s” - bad characters (RFC 8011 section 5.1.7).";
|
||||
"\"%s\": Bad uriScheme value \"%s\" - bad length %d (RFC 8011 section 5.1.7)." = "“%s”: Bad uriScheme value “%s” - bad length %d (RFC 8011 section 5.1.7).";
|
||||
@@ -702,6 +704,7 @@
|
||||
"B8" = "B8";
|
||||
"B9" = "B9";
|
||||
"Bad \"printer-id\" value %d." = "Bad “printer-id” value %d.";
|
||||
"Bad '%s' value." = "Bad ‘%s’ value.";
|
||||
"Bad 'document-format' value \"%s\"." = "Bad ‘document-format’ value “%s”.";
|
||||
"Bad NULL dests pointer" = "Bad NULL dests pointer";
|
||||
"Bad OpenGroup" = "Bad OpenGroup";
|
||||
@@ -731,6 +734,7 @@
|
||||
"Bad job-uri \"%s\"." = "Bad job-uri “%s”.";
|
||||
"Bad notify-pull-method \"%s\"." = "Bad notify-pull-method “%s”.";
|
||||
"Bad notify-recipient-uri \"%s\"." = "Bad notify-recipient-uri “%s”.";
|
||||
"Bad notify-user-data \"%s\"." = "Bad notify-user-data “%s”.";
|
||||
"Bad number-up value %d." = "Bad number-up value %d.";
|
||||
"Bad option + choice on line %d." = "Bad option + choice on line %d.";
|
||||
"Bad page-ranges values %d-%d." = "Bad page-ranges values %d-%d.";
|
||||
@@ -952,6 +956,7 @@
|
||||
"Internet Postage 2-Part" = "Internet Postage 2-Part";
|
||||
"Internet Postage 3-Part" = "Internet Postage 3-Part";
|
||||
"Internet Printing Protocol" = "Internet Printing Protocol";
|
||||
"Invalid group tag." = "Invalid group tag.";
|
||||
"Invalid media name arguments." = "Invalid media name arguments.";
|
||||
"Invalid media size." = "Invalid media size.";
|
||||
"Invalid ppd-name value." = "Invalid ppd-name value.";
|
||||
@@ -1378,6 +1383,7 @@
|
||||
"Unknown version option value: \"%s\"." = "Unknown version option value: “%s”.";
|
||||
"Unsupported 'compression' value \"%s\"." = "Unsupported ‘compression’ value “%s”.";
|
||||
"Unsupported 'document-format' value \"%s\"." = "Unsupported ‘document-format’ value “%s”.";
|
||||
"Unsupported 'job-hold-until' value." = "Unsupported ‘job-hold-until’ value.";
|
||||
"Unsupported 'job-name' value." = "Unsupported ‘job-name’ value.";
|
||||
"Unsupported character set \"%s\"." = "Unsupported character set “%s”.";
|
||||
"Unsupported compression \"%s\"." = "Unsupported compression “%s”.";
|
||||
|
||||
+27
-1
@@ -13,7 +13,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: CUPS 2.3\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n"
|
||||
"POT-Creation-Date: 2018-03-19 18:43-0400\n"
|
||||
"POT-Creation-Date: 2018-06-05 11:58-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"
|
||||
@@ -1458,6 +1458,12 @@ msgid ""
|
||||
"\"%s\": Bad name value \"%s\" - bad UTF-8 sequence (RFC 8011 section 5.1.3)."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\"%s\": Bad name value \"%s\" - bad control character (PWG 5100.14 section "
|
||||
"8.1)."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "\"%s\": Bad name value \"%s\" - bad length %d (RFC 8011 section 5.1.3)."
|
||||
msgstr ""
|
||||
@@ -1508,6 +1514,12 @@ msgid ""
|
||||
"\"%s\": Bad text value \"%s\" - bad UTF-8 sequence (RFC 8011 section 5.1.2)."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\"%s\": Bad text value \"%s\" - bad control character (PWG 5100.14 section "
|
||||
"8.3)."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "\"%s\": Bad text value \"%s\" - bad length %d (RFC 8011 section 5.1.2)."
|
||||
msgstr ""
|
||||
@@ -2725,6 +2737,10 @@ msgstr "B9"
|
||||
msgid "Bad \"printer-id\" value %d."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Bad '%s' value."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Bad 'document-format' value \"%s\"."
|
||||
msgstr ""
|
||||
@@ -2823,6 +2839,10 @@ msgstr "La notify-pull-method «%s» és incorrecta."
|
||||
msgid "Bad notify-recipient-uri \"%s\"."
|
||||
msgstr "La notify-recipient-uri «%s» és incorrecta."
|
||||
|
||||
#, c-format
|
||||
msgid "Bad notify-user-data \"%s\"."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Bad number-up value %d."
|
||||
msgstr "El valor de number-up %d és incorrecte."
|
||||
@@ -3538,6 +3558,9 @@ msgstr "Franqueig per Internet en 3 parts"
|
||||
msgid "Internet Printing Protocol"
|
||||
msgstr "Protocol d'impressió per Internet"
|
||||
|
||||
msgid "Invalid group tag."
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid media name arguments."
|
||||
msgstr ""
|
||||
|
||||
@@ -4955,6 +4978,9 @@ msgstr ""
|
||||
msgid "Unsupported 'document-format' value \"%s\"."
|
||||
msgstr ""
|
||||
|
||||
msgid "Unsupported 'job-hold-until' value."
|
||||
msgstr ""
|
||||
|
||||
msgid "Unsupported 'job-name' value."
|
||||
msgstr ""
|
||||
|
||||
|
||||
+27
-1
@@ -11,7 +11,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: CUPS 2.3\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n"
|
||||
"POT-Creation-Date: 2018-03-19 18:43-0400\n"
|
||||
"POT-Creation-Date: 2018-06-05 11:58-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"
|
||||
@@ -1282,6 +1282,12 @@ msgid ""
|
||||
"\"%s\": Bad name value \"%s\" - bad UTF-8 sequence (RFC 8011 section 5.1.3)."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\"%s\": Bad name value \"%s\" - bad control character (PWG 5100.14 section "
|
||||
"8.1)."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "\"%s\": Bad name value \"%s\" - bad length %d (RFC 8011 section 5.1.3)."
|
||||
msgstr ""
|
||||
@@ -1332,6 +1338,12 @@ msgid ""
|
||||
"\"%s\": Bad text value \"%s\" - bad UTF-8 sequence (RFC 8011 section 5.1.2)."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\"%s\": Bad text value \"%s\" - bad control character (PWG 5100.14 section "
|
||||
"8.3)."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "\"%s\": Bad text value \"%s\" - bad length %d (RFC 8011 section 5.1.2)."
|
||||
msgstr ""
|
||||
@@ -2534,6 +2546,10 @@ msgstr "B9"
|
||||
msgid "Bad \"printer-id\" value %d."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Bad '%s' value."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Bad 'document-format' value \"%s\"."
|
||||
msgstr ""
|
||||
@@ -2632,6 +2648,10 @@ msgstr ""
|
||||
msgid "Bad notify-recipient-uri \"%s\"."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Bad notify-user-data \"%s\"."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Bad number-up value %d."
|
||||
msgstr "Chybná hodnota %d."
|
||||
@@ -3334,6 +3354,9 @@ msgstr "Internet Postage 3-Part"
|
||||
msgid "Internet Printing Protocol"
|
||||
msgstr "Internetový tiskový protokol"
|
||||
|
||||
msgid "Invalid group tag."
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid media name arguments."
|
||||
msgstr ""
|
||||
|
||||
@@ -4706,6 +4729,9 @@ msgstr ""
|
||||
msgid "Unsupported 'document-format' value \"%s\"."
|
||||
msgstr ""
|
||||
|
||||
msgid "Unsupported 'job-hold-until' value."
|
||||
msgstr ""
|
||||
|
||||
msgid "Unsupported 'job-name' value."
|
||||
msgstr ""
|
||||
|
||||
|
||||
+29
-3
@@ -11,7 +11,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: CUPS 2.3\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n"
|
||||
"POT-Creation-Date: 2018-03-19 18:43-0400\n"
|
||||
"POT-Creation-Date: 2018-06-05 11:58-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"
|
||||
@@ -1502,6 +1502,12 @@ msgid ""
|
||||
"\"%s\": Bad name value \"%s\" - bad UTF-8 sequence (RFC 8011 section 5.1.3)."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\"%s\": Bad name value \"%s\" - bad control character (PWG 5100.14 section "
|
||||
"8.1)."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "\"%s\": Bad name value \"%s\" - bad length %d (RFC 8011 section 5.1.3)."
|
||||
msgstr ""
|
||||
@@ -1552,6 +1558,12 @@ msgid ""
|
||||
"\"%s\": Bad text value \"%s\" - bad UTF-8 sequence (RFC 8011 section 5.1.2)."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\"%s\": Bad text value \"%s\" - bad control character (PWG 5100.14 section "
|
||||
"8.3)."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "\"%s\": Bad text value \"%s\" - bad length %d (RFC 8011 section 5.1.2)."
|
||||
msgstr ""
|
||||
@@ -2769,6 +2781,10 @@ msgstr "B9"
|
||||
msgid "Bad \"printer-id\" value %d."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Bad '%s' value."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Bad 'document-format' value \"%s\"."
|
||||
msgstr "Valor 'document-format' \"%s\" incorrecto."
|
||||
@@ -2867,6 +2883,10 @@ msgstr "notify-pull-method \"%s\" incorrecto."
|
||||
msgid "Bad notify-recipient-uri \"%s\"."
|
||||
msgstr "notify-recipient-uri \"%s\" incorrecto."
|
||||
|
||||
#, c-format
|
||||
msgid "Bad notify-user-data \"%s\"."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Bad number-up value %d."
|
||||
msgstr "Valor number-up (páginas por hoja) %d incorrecto."
|
||||
@@ -3579,6 +3599,9 @@ msgstr "Correo por Internet Parte-3"
|
||||
msgid "Internet Printing Protocol"
|
||||
msgstr "Protocolo de Impresión de Internet IPP"
|
||||
|
||||
msgid "Invalid group tag."
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid media name arguments."
|
||||
msgstr "Argumentos del nombre del papel no válidos."
|
||||
|
||||
@@ -5002,6 +5025,9 @@ msgstr "Valor 'compression' \"%s\" no implementado."
|
||||
msgid "Unsupported 'document-format' value \"%s\"."
|
||||
msgstr "Valor 'document-format' \"%s\" no implementado."
|
||||
|
||||
msgid "Unsupported 'job-hold-until' value."
|
||||
msgstr ""
|
||||
|
||||
msgid "Unsupported 'job-name' value."
|
||||
msgstr "Valor 'job-name' no implementado."
|
||||
|
||||
@@ -5098,8 +5124,8 @@ msgstr "Uso: cupstestdsc [opciones] nombre_archivo.ps [... nombre_archivo.ps]"
|
||||
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"
|
||||
|
||||
+27
-1
@@ -11,7 +11,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: CUPS 2.3\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n"
|
||||
"POT-Creation-Date: 2018-03-19 18:43-0400\n"
|
||||
"POT-Creation-Date: 2018-06-05 11:58-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"
|
||||
@@ -1342,6 +1342,12 @@ msgid ""
|
||||
"\"%s\": Bad name value \"%s\" - bad UTF-8 sequence (RFC 8011 section 5.1.3)."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\"%s\": Bad name value \"%s\" - bad control character (PWG 5100.14 section "
|
||||
"8.1)."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "\"%s\": Bad name value \"%s\" - bad length %d (RFC 8011 section 5.1.3)."
|
||||
msgstr ""
|
||||
@@ -1392,6 +1398,12 @@ msgid ""
|
||||
"\"%s\": Bad text value \"%s\" - bad UTF-8 sequence (RFC 8011 section 5.1.2)."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\"%s\": Bad text value \"%s\" - bad control character (PWG 5100.14 section "
|
||||
"8.3)."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "\"%s\": Bad text value \"%s\" - bad length %d (RFC 8011 section 5.1.2)."
|
||||
msgstr ""
|
||||
@@ -2594,6 +2606,10 @@ msgstr "B9"
|
||||
msgid "Bad \"printer-id\" value %d."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Bad '%s' value."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Bad 'document-format' value \"%s\"."
|
||||
msgstr ""
|
||||
@@ -2692,6 +2708,10 @@ msgstr ""
|
||||
msgid "Bad notify-recipient-uri \"%s\"."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Bad notify-user-data \"%s\"."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Bad number-up value %d."
|
||||
msgstr "Valeur de number-up %d incorrecte."
|
||||
@@ -3396,6 +3416,9 @@ msgstr "Affranchissement Internet en 3 parties"
|
||||
msgid "Internet Printing Protocol"
|
||||
msgstr "Internet Printing Protocol"
|
||||
|
||||
msgid "Invalid group tag."
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid media name arguments."
|
||||
msgstr ""
|
||||
|
||||
@@ -4773,6 +4796,9 @@ msgstr ""
|
||||
msgid "Unsupported 'document-format' value \"%s\"."
|
||||
msgstr ""
|
||||
|
||||
msgid "Unsupported 'job-hold-until' value."
|
||||
msgstr ""
|
||||
|
||||
msgid "Unsupported 'job-name' value."
|
||||
msgstr ""
|
||||
|
||||
|
||||
+27
-1
@@ -12,7 +12,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: CUPS 2.3\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n"
|
||||
"POT-Creation-Date: 2018-03-19 18:43-0400\n"
|
||||
"POT-Creation-Date: 2018-06-05 11:58-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"
|
||||
@@ -1485,6 +1485,12 @@ msgid ""
|
||||
"\"%s\": Bad name value \"%s\" - bad UTF-8 sequence (RFC 8011 section 5.1.3)."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\"%s\": Bad name value \"%s\" - bad control character (PWG 5100.14 section "
|
||||
"8.1)."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "\"%s\": Bad name value \"%s\" - bad length %d (RFC 8011 section 5.1.3)."
|
||||
msgstr ""
|
||||
@@ -1535,6 +1541,12 @@ msgid ""
|
||||
"\"%s\": Bad text value \"%s\" - bad UTF-8 sequence (RFC 8011 section 5.1.2)."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\"%s\": Bad text value \"%s\" - bad control character (PWG 5100.14 section "
|
||||
"8.3)."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "\"%s\": Bad text value \"%s\" - bad length %d (RFC 8011 section 5.1.2)."
|
||||
msgstr ""
|
||||
@@ -2753,6 +2765,10 @@ msgstr "B9"
|
||||
msgid "Bad \"printer-id\" value %d."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Bad '%s' value."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Bad 'document-format' value \"%s\"."
|
||||
msgstr "Il valore di 'document-format' non è valido \"%s\"."
|
||||
@@ -2851,6 +2867,10 @@ msgstr "Il valore di notify-pull-method \"%s\" non è valido."
|
||||
msgid "Bad notify-recipient-uri \"%s\"."
|
||||
msgstr "Il valore di notify-recipient-uri \"%s\" non è valido."
|
||||
|
||||
#, c-format
|
||||
msgid "Bad notify-user-data \"%s\"."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Bad number-up value %d."
|
||||
msgstr "Il valore di number-up %d non è valido."
|
||||
@@ -3565,6 +3585,9 @@ msgstr "Internet Postage 3-Part"
|
||||
msgid "Internet Printing Protocol"
|
||||
msgstr "Internet Printing Protocol"
|
||||
|
||||
msgid "Invalid group tag."
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid media name arguments."
|
||||
msgstr "Gli argomenti del nome del supporto non sono validi."
|
||||
|
||||
@@ -4977,6 +5000,9 @@ msgstr "Valore di 'compressione' non supportato \"%s\"."
|
||||
msgid "Unsupported 'document-format' value \"%s\"."
|
||||
msgstr "Valore di 'document-format' non supportato \"%s\"."
|
||||
|
||||
msgid "Unsupported 'job-hold-until' value."
|
||||
msgstr ""
|
||||
|
||||
msgid "Unsupported 'job-name' value."
|
||||
msgstr "Valore di 'job-name' non supportato."
|
||||
|
||||
|
||||
+27
-1
@@ -11,7 +11,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: CUPS 2.3\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n"
|
||||
"POT-Creation-Date: 2018-03-19 18:43-0400\n"
|
||||
"POT-Creation-Date: 2018-06-05 11:58-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"
|
||||
@@ -1461,6 +1461,12 @@ msgid ""
|
||||
"\"%s\": Bad name value \"%s\" - bad UTF-8 sequence (RFC 8011 section 5.1.3)."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\"%s\": Bad name value \"%s\" - bad control character (PWG 5100.14 section "
|
||||
"8.1)."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "\"%s\": Bad name value \"%s\" - bad length %d (RFC 8011 section 5.1.3)."
|
||||
msgstr ""
|
||||
@@ -1511,6 +1517,12 @@ msgid ""
|
||||
"\"%s\": Bad text value \"%s\" - bad UTF-8 sequence (RFC 8011 section 5.1.2)."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\"%s\": Bad text value \"%s\" - bad control character (PWG 5100.14 section "
|
||||
"8.3)."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "\"%s\": Bad text value \"%s\" - bad length %d (RFC 8011 section 5.1.2)."
|
||||
msgstr ""
|
||||
@@ -2723,6 +2735,10 @@ msgstr "B9"
|
||||
msgid "Bad \"printer-id\" value %d."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Bad '%s' value."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Bad 'document-format' value \"%s\"."
|
||||
msgstr "誤った 'document-format' の値です \"%s\"。"
|
||||
@@ -2821,6 +2837,10 @@ msgstr "\"%s\" は無効な notify-pull-method です。"
|
||||
msgid "Bad notify-recipient-uri \"%s\"."
|
||||
msgstr "URI \"%s\" は不正な notify-recipient-uri です。"
|
||||
|
||||
#, c-format
|
||||
msgid "Bad notify-user-data \"%s\"."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Bad number-up value %d."
|
||||
msgstr "%d は不正な number-up 値です。"
|
||||
@@ -3539,6 +3559,9 @@ msgstr "Internet Postage 3-Part"
|
||||
msgid "Internet Printing Protocol"
|
||||
msgstr "インターネット印刷プロトコル"
|
||||
|
||||
msgid "Invalid group tag."
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid media name arguments."
|
||||
msgstr "無効なメディア名引数です。"
|
||||
|
||||
@@ -4930,6 +4953,9 @@ msgstr "\"%s\" はサポートされていない 'compression' の値です。"
|
||||
msgid "Unsupported 'document-format' value \"%s\"."
|
||||
msgstr "\"%s\" はサポートされていない 'document-format' の値です。"
|
||||
|
||||
msgid "Unsupported 'job-hold-until' value."
|
||||
msgstr ""
|
||||
|
||||
msgid "Unsupported 'job-name' value."
|
||||
msgstr "サポートされていない 'job-name' の値です。"
|
||||
|
||||
|
||||
+27
-1
@@ -22,7 +22,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: CUPS 2.3\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n"
|
||||
"POT-Creation-Date: 2018-03-19 18:43-0400\n"
|
||||
"POT-Creation-Date: 2018-06-05 11:58-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"
|
||||
@@ -1493,6 +1493,12 @@ msgid ""
|
||||
"\"%s\": Bad name value \"%s\" - bad UTF-8 sequence (RFC 8011 section 5.1.3)."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\"%s\": Bad name value \"%s\" - bad control character (PWG 5100.14 section "
|
||||
"8.1)."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "\"%s\": Bad name value \"%s\" - bad length %d (RFC 8011 section 5.1.3)."
|
||||
msgstr ""
|
||||
@@ -1543,6 +1549,12 @@ msgid ""
|
||||
"\"%s\": Bad text value \"%s\" - bad UTF-8 sequence (RFC 8011 section 5.1.2)."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\"%s\": Bad text value \"%s\" - bad control character (PWG 5100.14 section "
|
||||
"8.3)."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "\"%s\": Bad text value \"%s\" - bad length %d (RFC 8011 section 5.1.2)."
|
||||
msgstr ""
|
||||
@@ -2756,6 +2768,10 @@ msgstr "B9"
|
||||
msgid "Bad \"printer-id\" value %d."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Bad '%s' value."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Bad 'document-format' value \"%s\"."
|
||||
msgstr "Valor de \"document-format\" inválido \"%s\"."
|
||||
@@ -2854,6 +2870,10 @@ msgstr "notify-pull-method inválido \"%s\"."
|
||||
msgid "Bad notify-recipient-uri \"%s\"."
|
||||
msgstr "notify-recipient-uri inválido \"%s\"."
|
||||
|
||||
#, c-format
|
||||
msgid "Bad notify-user-data \"%s\"."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Bad number-up value %d."
|
||||
msgstr "Valor de number-up inválido %d."
|
||||
@@ -3567,6 +3587,9 @@ msgstr "Internet Postage Parte-3"
|
||||
msgid "Internet Printing Protocol"
|
||||
msgstr "Protocolo de Impressão para Internet"
|
||||
|
||||
msgid "Invalid group tag."
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid media name arguments."
|
||||
msgstr "Argumentos de nome de mídia inválidos."
|
||||
|
||||
@@ -4982,6 +5005,9 @@ msgstr "Não suporte a \"compression\" com valor \"%s\"."
|
||||
msgid "Unsupported 'document-format' value \"%s\"."
|
||||
msgstr "Não há suporte a \"document-format\" com valor \"%s\"."
|
||||
|
||||
msgid "Unsupported 'job-hold-until' value."
|
||||
msgstr ""
|
||||
|
||||
msgid "Unsupported 'job-name' value."
|
||||
msgstr "Não há suporte ao valor de \"job-name\"."
|
||||
|
||||
|
||||
+27
-1
@@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: CUPS 2.0\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n"
|
||||
"POT-Creation-Date: 2018-03-19 18:43-0400\n"
|
||||
"POT-Creation-Date: 2018-06-05 11:58-0400\n"
|
||||
"PO-Revision-Date: 2015-01-28 12:00-0800\n"
|
||||
"Last-Translator: Aleksandr Proklov\n"
|
||||
"Language-Team: PuppyRus Linux Team\n"
|
||||
@@ -1439,6 +1439,12 @@ msgid ""
|
||||
"\"%s\": Bad name value \"%s\" - bad UTF-8 sequence (RFC 8011 section 5.1.3)."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\"%s\": Bad name value \"%s\" - bad control character (PWG 5100.14 section "
|
||||
"8.1)."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "\"%s\": Bad name value \"%s\" - bad length %d (RFC 8011 section 5.1.3)."
|
||||
msgstr ""
|
||||
@@ -1489,6 +1495,12 @@ msgid ""
|
||||
"\"%s\": Bad text value \"%s\" - bad UTF-8 sequence (RFC 8011 section 5.1.2)."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\"%s\": Bad text value \"%s\" - bad control character (PWG 5100.14 section "
|
||||
"8.3)."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "\"%s\": Bad text value \"%s\" - bad length %d (RFC 8011 section 5.1.2)."
|
||||
msgstr ""
|
||||
@@ -2708,6 +2720,10 @@ msgstr "B9"
|
||||
msgid "Bad \"printer-id\" value %d."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Bad '%s' value."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Bad 'document-format' value \"%s\"."
|
||||
msgstr ""
|
||||
@@ -2806,6 +2822,10 @@ msgstr "Неверное значение notify-pull-method \"%s\"."
|
||||
msgid "Bad notify-recipient-uri \"%s\"."
|
||||
msgstr "Неверный notify-recipient-uri \"%s\"."
|
||||
|
||||
#, c-format
|
||||
msgid "Bad notify-user-data \"%s\"."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Bad number-up value %d."
|
||||
msgstr "Неверное значение number-up %d."
|
||||
@@ -3513,6 +3533,9 @@ msgstr "Наклейки Internet Postage 3-Part"
|
||||
msgid "Internet Printing Protocol"
|
||||
msgstr "Протокол интернет-печати"
|
||||
|
||||
msgid "Invalid group tag."
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid media name arguments."
|
||||
msgstr "Неверные аргументы имени бумаги."
|
||||
|
||||
@@ -4906,6 +4929,9 @@ msgstr "Неподдерживаемое значение 'compression' \"%s\"."
|
||||
msgid "Unsupported 'document-format' value \"%s\"."
|
||||
msgstr "Неподдерживаемое значение'document-format' \"%s\"."
|
||||
|
||||
msgid "Unsupported 'job-hold-until' value."
|
||||
msgstr ""
|
||||
|
||||
msgid "Unsupported 'job-name' value."
|
||||
msgstr "Неподдерживаемое значение 'job-name'."
|
||||
|
||||
|
||||
+27
-1
@@ -12,7 +12,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: CUPS 2.3\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/apple/cups/issues\n"
|
||||
"POT-Creation-Date: 2018-03-19 18:43-0400\n"
|
||||
"POT-Creation-Date: 2018-06-05 11:58-0400\n"
|
||||
"PO-Revision-Date: 2017-06-11 12:38+0800\n"
|
||||
"Last-Translator: Mingcong Bai <jeffbai@aosc.xyz>\n"
|
||||
"Language-Team: \n"
|
||||
@@ -1416,6 +1416,12 @@ msgid ""
|
||||
"\"%s\": Bad name value \"%s\" - bad UTF-8 sequence (RFC 8011 section 5.1.3)."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\"%s\": Bad name value \"%s\" - bad control character (PWG 5100.14 section "
|
||||
"8.1)."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "\"%s\": Bad name value \"%s\" - bad length %d (RFC 8011 section 5.1.3)."
|
||||
msgstr ""
|
||||
@@ -1466,6 +1472,12 @@ msgid ""
|
||||
"\"%s\": Bad text value \"%s\" - bad UTF-8 sequence (RFC 8011 section 5.1.2)."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\"%s\": Bad text value \"%s\" - bad control character (PWG 5100.14 section "
|
||||
"8.3)."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "\"%s\": Bad text value \"%s\" - bad length %d (RFC 8011 section 5.1.2)."
|
||||
msgstr ""
|
||||
@@ -2668,6 +2680,10 @@ msgstr "B9"
|
||||
msgid "Bad \"printer-id\" value %d."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Bad '%s' value."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Bad 'document-format' value \"%s\"."
|
||||
msgstr "无效的“document-format”值“%s”。"
|
||||
@@ -2766,6 +2782,10 @@ msgstr "无效的 notify-pull-method 值“%s”。"
|
||||
msgid "Bad notify-recipient-uri \"%s\"."
|
||||
msgstr "无效的 notify-recipient-uri 值“%s”。"
|
||||
|
||||
#, c-format
|
||||
msgid "Bad notify-user-data \"%s\"."
|
||||
msgstr ""
|
||||
|
||||
#, c-format
|
||||
msgid "Bad number-up value %d."
|
||||
msgstr "无效的 number-up 值 %d。"
|
||||
@@ -3478,6 +3498,9 @@ msgstr "网邮 3 部"
|
||||
msgid "Internet Printing Protocol"
|
||||
msgstr "互联网打印协议"
|
||||
|
||||
msgid "Invalid group tag."
|
||||
msgstr ""
|
||||
|
||||
msgid "Invalid media name arguments."
|
||||
msgstr "无效的媒体名称参数。"
|
||||
|
||||
@@ -4855,6 +4878,9 @@ msgstr "不支持的“compression”值“%s”。"
|
||||
msgid "Unsupported 'document-format' value \"%s\"."
|
||||
msgstr "不支持的“document-format”值“%s”。"
|
||||
|
||||
msgid "Unsupported 'job-hold-until' value."
|
||||
msgstr ""
|
||||
|
||||
msgid "Unsupported 'job-name' value."
|
||||
msgstr "不支持的“job-name”值。"
|
||||
|
||||
|
||||
@@ -153,6 +153,11 @@ The server name may be included in filenames using the string "%s", for example:
|
||||
|
||||
.fi
|
||||
The default is "/var/log/cups/page_log".
|
||||
.\"#PassEnv
|
||||
.TP 5
|
||||
\fBPassEnv \fIvariable \fR[ ... \fIvariable \fR]
|
||||
Passes the specified environment variable(s) to child processes.
|
||||
Note: the standard CUPS filter and backend environment variables cannot be overridden using this directive.
|
||||
.\"#RemoteRoot
|
||||
.TP 5
|
||||
\fBRemoteRoot \fIusername\fR
|
||||
@@ -187,6 +192,11 @@ macOS uses its keychain database to store certificates and keys while other plat
|
||||
\fBServerRoot \fIdirectory\fR
|
||||
Specifies the directory containing the server configuration files.
|
||||
The default is "/etc/cups".
|
||||
.\"#SetEnv
|
||||
.TP 5
|
||||
\fBSetEnv \fIvariable value\fR
|
||||
Set the specified environment variable to be passed to child processes.
|
||||
Note: the standard CUPS filter and backend environment variables cannot be overridden using this directive.
|
||||
.\"#StateDir
|
||||
.TP 5
|
||||
\fBStateDir \fIdirectory\fR
|
||||
|
||||
@@ -349,10 +349,6 @@ The default is "1048576" (1MB).
|
||||
\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).
|
||||
.\"#PassEnv
|
||||
.TP 5
|
||||
\fBPassEnv \fIvariable \fR[ ... \fIvariable \fR]
|
||||
Passes the specified environment variable(s) to child processes.
|
||||
.\"#Policy
|
||||
.TP 5
|
||||
\fB<Policy \fIname\fB> \fR... \fB</Policy>\fR
|
||||
@@ -433,10 +429,6 @@ Specifies what information is included in the Server header of HTTP responses.
|
||||
command.
|
||||
"Full" reports "CUPS 2.0.0 (UNAME) IPP/2.0".
|
||||
The default is "Minimal".
|
||||
.\"#SetEnv
|
||||
.TP 5
|
||||
\fBSetEnv \fIvariable value\fR
|
||||
Set the specified environment variable to be passed to child processes.
|
||||
.\"#SSLListen
|
||||
.TP 5
|
||||
\fBSSLListen \fIipv4-address\fB:\fIport\fR
|
||||
|
||||
+125
-76
@@ -2929,13 +2929,10 @@ read_cupsd_conf(cups_file_t *fp) /* I - File to read from */
|
||||
/* Line from file */
|
||||
temp[HTTP_MAX_BUFFER],
|
||||
/* Temporary buffer for value */
|
||||
*value, /* Pointer to value */
|
||||
*valueptr; /* Pointer into value */
|
||||
*value; /* Pointer to value */
|
||||
int valuelen; /* Length of value */
|
||||
http_addrlist_t *addrlist, /* Address list */
|
||||
*addr; /* Current address */
|
||||
cups_file_t *incfile; /* Include file */
|
||||
char incname[1024]; /* Include filename */
|
||||
|
||||
|
||||
/*
|
||||
@@ -2950,28 +2947,7 @@ read_cupsd_conf(cups_file_t *fp) /* I - File to read from */
|
||||
* Decode the directive...
|
||||
*/
|
||||
|
||||
if (!_cups_strcasecmp(line, "Include") && value)
|
||||
{
|
||||
/*
|
||||
* Include filename
|
||||
*/
|
||||
|
||||
if (value[0] == '/')
|
||||
strlcpy(incname, value, sizeof(incname));
|
||||
else
|
||||
snprintf(incname, sizeof(incname), "%s/%s", ServerRoot, value);
|
||||
|
||||
if ((incfile = cupsFileOpen(incname, "rb")) == NULL)
|
||||
cupsdLogMessage(CUPSD_LOG_ERROR,
|
||||
"Unable to include config file \"%s\" - %s",
|
||||
incname, strerror(errno));
|
||||
else
|
||||
{
|
||||
read_cupsd_conf(incfile);
|
||||
cupsFileClose(incfile);
|
||||
}
|
||||
}
|
||||
else if (!_cups_strcasecmp(line, "<Location") && value)
|
||||
if (!_cups_strcasecmp(line, "<Location") && value)
|
||||
{
|
||||
/*
|
||||
* <Location path>
|
||||
@@ -3367,31 +3343,6 @@ read_cupsd_conf(cups_file_t *fp) /* I - File to read from */
|
||||
cupsdLogMessage(CUPSD_LOG_WARN, "Unknown ServerTokens %s on line %d of %s.",
|
||||
value, linenum, ConfigurationFile);
|
||||
}
|
||||
else if (!_cups_strcasecmp(line, "PassEnv") && value)
|
||||
{
|
||||
/*
|
||||
* PassEnv variable [... variable]
|
||||
*/
|
||||
|
||||
for (; *value;)
|
||||
{
|
||||
for (valuelen = 0; value[valuelen]; valuelen ++)
|
||||
if (_cups_isspace(value[valuelen]) || value[valuelen] == ',')
|
||||
break;
|
||||
|
||||
if (value[valuelen])
|
||||
{
|
||||
value[valuelen] = '\0';
|
||||
valuelen ++;
|
||||
}
|
||||
|
||||
cupsdSetEnv(value, NULL);
|
||||
|
||||
for (value += valuelen; *value; value ++)
|
||||
if (!_cups_isspace(*value) || *value != ',')
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (!_cups_strcasecmp(line, "ServerAlias") && value)
|
||||
{
|
||||
/*
|
||||
@@ -3420,30 +3371,6 @@ read_cupsd_conf(cups_file_t *fp) /* I - File to read from */
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (!_cups_strcasecmp(line, "SetEnv") && value)
|
||||
{
|
||||
/*
|
||||
* SetEnv variable value
|
||||
*/
|
||||
|
||||
for (valueptr = value; *valueptr && !isspace(*valueptr & 255); valueptr ++);
|
||||
|
||||
if (*valueptr)
|
||||
{
|
||||
/*
|
||||
* Found a value...
|
||||
*/
|
||||
|
||||
while (isspace(*valueptr & 255))
|
||||
*valueptr++ = '\0';
|
||||
|
||||
cupsdSetEnv(value, valueptr);
|
||||
}
|
||||
else
|
||||
cupsdLogMessage(CUPSD_LOG_ERROR,
|
||||
"Missing value for SetEnv directive on line %d of %s.",
|
||||
linenum, ConfigurationFile);
|
||||
}
|
||||
else if (!_cups_strcasecmp(line, "AccessLog") ||
|
||||
!_cups_strcasecmp(line, "CacheDir") ||
|
||||
!_cups_strcasecmp(line, "ConfigFilePerm") ||
|
||||
@@ -3457,6 +3384,7 @@ read_cupsd_conf(cups_file_t *fp) /* I - File to read from */
|
||||
!_cups_strcasecmp(line, "LogFilePerm") ||
|
||||
!_cups_strcasecmp(line, "LPDConfigFile") ||
|
||||
!_cups_strcasecmp(line, "PageLog") ||
|
||||
!_cups_strcasecmp(line, "PassEnv") ||
|
||||
!_cups_strcasecmp(line, "Printcap") ||
|
||||
!_cups_strcasecmp(line, "PrintcapFormat") ||
|
||||
!_cups_strcasecmp(line, "RemoteRoot") ||
|
||||
@@ -3466,6 +3394,7 @@ read_cupsd_conf(cups_file_t *fp) /* I - File to read from */
|
||||
!_cups_strcasecmp(line, "ServerKey") ||
|
||||
!_cups_strcasecmp(line, "ServerKeychain") ||
|
||||
!_cups_strcasecmp(line, "ServerRoot") ||
|
||||
!_cups_strcasecmp(line, "SetEnv") ||
|
||||
!_cups_strcasecmp(line, "SMBConfigFile") ||
|
||||
!_cups_strcasecmp(line, "StateDir") ||
|
||||
!_cups_strcasecmp(line, "SystemGroup") ||
|
||||
@@ -3495,10 +3424,49 @@ read_cupsd_conf(cups_file_t *fp) /* I - File to read from */
|
||||
static int /* O - 1 on success, 0 on failure */
|
||||
read_cups_files_conf(cups_file_t *fp) /* I - File to read from */
|
||||
{
|
||||
int linenum; /* Current line number */
|
||||
int i, /* Looping var */
|
||||
linenum; /* Current line number */
|
||||
char line[HTTP_MAX_BUFFER], /* Line from file */
|
||||
*value; /* Value from line */
|
||||
struct group *group; /* Group */
|
||||
static const char * const prohibited_env[] =
|
||||
{ /* Prohibited environment variables */
|
||||
"APPLE_LANGUAGE",
|
||||
"AUTH_DOMAIN",
|
||||
"AUTH_INFO_REQUIRED",
|
||||
"AUTH_NEGOTIATE",
|
||||
"AUTH_PASSWORD",
|
||||
"AUTH_UID",
|
||||
"AUTH_USERNAME",
|
||||
"CHARSET",
|
||||
"CLASS",
|
||||
"CLASSIFICATION",
|
||||
"CONTENT_TYPE",
|
||||
"CUPS_CACHEDIR",
|
||||
"CUPS_DATADIR",
|
||||
"CUPS_DOCROOT",
|
||||
"CUPS_FILETYPE",
|
||||
"CUPS_FONTPATH",
|
||||
"CUPS_MAX_MESSAGE",
|
||||
"CUPS_REQUESTROOT",
|
||||
"CUPS_SERVERBIN",
|
||||
"CUPS_SERVERROOT",
|
||||
"CUPS_STATEDIR",
|
||||
"DEVICE_URI",
|
||||
"FINAL_CONTENT_TYPE",
|
||||
"HOME",
|
||||
"LANG",
|
||||
"PPD",
|
||||
"PRINTER",
|
||||
"PRINTER_INFO",
|
||||
"PRINTER_LOCATION",
|
||||
"PRINTER_STATE_REASONS",
|
||||
"RIP_CACHE",
|
||||
"SERVER_ADMIN",
|
||||
"SOFTWARE",
|
||||
"TMPDIR",
|
||||
"USER"
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
@@ -3536,6 +3504,47 @@ read_cups_files_conf(cups_file_t *fp) /* I - File to read from */
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (!_cups_strcasecmp(line, "PassEnv") && value)
|
||||
{
|
||||
/*
|
||||
* PassEnv variable [... variable]
|
||||
*/
|
||||
|
||||
int valuelen; /* Length of variable name */
|
||||
|
||||
for (; *value;)
|
||||
{
|
||||
for (valuelen = 0; value[valuelen]; valuelen ++)
|
||||
if (_cups_isspace(value[valuelen]) || value[valuelen] == ',')
|
||||
break;
|
||||
|
||||
if (value[valuelen])
|
||||
{
|
||||
value[valuelen] = '\0';
|
||||
valuelen ++;
|
||||
}
|
||||
|
||||
for (i = 0; i < (int)(sizeof(prohibited_env) / sizeof(prohibited_env[0])); i ++)
|
||||
{
|
||||
if (!strcmp(value, prohibited_env[i]))
|
||||
{
|
||||
cupsdLogMessage(CUPSD_LOG_ERROR, "Environment variable \"%s\" cannot be passed through on line %d of %s.", value, linenum, CupsFilesFile);
|
||||
|
||||
if (FatalErrors & CUPSD_FATAL_CONFIG)
|
||||
return (0);
|
||||
else
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (i >= (int)(sizeof(prohibited_env) / sizeof(prohibited_env[0])))
|
||||
cupsdSetEnv(value, NULL);
|
||||
|
||||
for (value += valuelen; *value; value ++)
|
||||
if (!_cups_isspace(*value) || *value != ',')
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (!_cups_strcasecmp(line, "PrintcapFormat") && value)
|
||||
{
|
||||
/*
|
||||
@@ -3581,6 +3590,46 @@ read_cups_files_conf(cups_file_t *fp) /* I - File to read from */
|
||||
return (0);
|
||||
}
|
||||
}
|
||||
else if (!_cups_strcasecmp(line, "SetEnv") && value)
|
||||
{
|
||||
/*
|
||||
* SetEnv variable value
|
||||
*/
|
||||
|
||||
char *valueptr; /* Pointer to environment variable value */
|
||||
|
||||
for (valueptr = value; *valueptr && !isspace(*valueptr & 255); valueptr ++);
|
||||
|
||||
if (*valueptr)
|
||||
{
|
||||
/*
|
||||
* Found a value...
|
||||
*/
|
||||
|
||||
while (isspace(*valueptr & 255))
|
||||
*valueptr++ = '\0';
|
||||
|
||||
for (i = 0; i < (int)(sizeof(prohibited_env) / sizeof(prohibited_env[0])); i ++)
|
||||
{
|
||||
if (!strcmp(value, prohibited_env[i]))
|
||||
{
|
||||
cupsdLogMessage(CUPSD_LOG_ERROR, "Environment variable \"%s\" cannot be set on line %d of %s.", value, linenum, CupsFilesFile);
|
||||
|
||||
if (FatalErrors & CUPSD_FATAL_CONFIG)
|
||||
return (0);
|
||||
else
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (i >= (int)(sizeof(prohibited_env) / sizeof(prohibited_env[0])))
|
||||
cupsdSetEnv(value, valueptr);
|
||||
}
|
||||
else
|
||||
cupsdLogMessage(CUPSD_LOG_ERROR,
|
||||
"Missing value for SetEnv directive on line %d of %s.",
|
||||
linenum, ConfigurationFile);
|
||||
}
|
||||
else if (!_cups_strcasecmp(line, "SystemGroup") && value)
|
||||
{
|
||||
/*
|
||||
|
||||
+1
-1
@@ -2032,7 +2032,7 @@ add_job_subscriptions(
|
||||
|
||||
snprintf(notifier, sizeof(notifier), "%s/notifier/%s", ServerBin,
|
||||
scheme);
|
||||
if (access(notifier, X_OK))
|
||||
if (access(notifier, X_OK) || !strcmp(scheme, ".") || !strcmp(scheme, ".."))
|
||||
{
|
||||
send_ipp_status(con, IPP_NOT_POSSIBLE,
|
||||
_("notify-recipient-uri URI \"%s\" uses unknown "
|
||||
|
||||
@@ -4779,6 +4779,18 @@ start_job(cupsd_job_t *job, /* I - Job ID */
|
||||
job->profile = cupsdCreateProfile(job->id, 0);
|
||||
job->bprofile = cupsdCreateProfile(job->id, 1);
|
||||
|
||||
#ifdef HAVE_SANDBOX_H
|
||||
if ((!job->profile || !job->bprofile) && UseSandboxing && Sandboxing != CUPSD_SANDBOXING_OFF)
|
||||
{
|
||||
/*
|
||||
* Failure to create the sandbox profile means something really bad has
|
||||
* happened and we need to shutdown immediately.
|
||||
*/
|
||||
|
||||
return;
|
||||
}
|
||||
#endif /* HAVE_SANDBOX_H */
|
||||
|
||||
/*
|
||||
* Create the status pipes and buffer...
|
||||
*/
|
||||
|
||||
+10
-6
@@ -98,9 +98,13 @@ cupsdCreateProfile(int job_id, /* I - Job ID or 0 for none */
|
||||
|
||||
if ((fp = cupsTempFile2(profile, sizeof(profile))) == NULL)
|
||||
{
|
||||
/*
|
||||
* This should never happen, and is fatal when sandboxing is enabled.
|
||||
*/
|
||||
|
||||
cupsdLogMessage(CUPSD_LOG_DEBUG2, "cupsdCreateProfile(job_id=%d, allow_networking=%d) = NULL", job_id, allow_networking);
|
||||
cupsdLogMessage(CUPSD_LOG_ERROR, "Unable to create security profile: %s",
|
||||
strerror(errno));
|
||||
cupsdLogMessage(CUPSD_LOG_EMERG, "Unable to create security profile: %s", strerror(errno));
|
||||
kill(getpid(), SIGTERM);
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
@@ -197,10 +201,8 @@ cupsdCreateProfile(int job_id, /* I - Job ID or 0 for none */
|
||||
" #\"^%s/\"" /* TempDir/... */
|
||||
" #\"^%s$\"" /* CacheDir */
|
||||
" #\"^%s/\"" /* CacheDir/... */
|
||||
" #\"^%s$\"" /* StateDir */
|
||||
" #\"^%s/\"" /* StateDir/... */
|
||||
"))\n",
|
||||
temp, temp, cache, cache, state, state);
|
||||
temp, temp, cache, cache);
|
||||
/* Read common folders */
|
||||
cupsFilePrintf(fp,
|
||||
"(allow file-read-data file-read-metadata\n"
|
||||
@@ -242,8 +244,10 @@ cupsdCreateProfile(int job_id, /* I - Job ID or 0 for none */
|
||||
" #\"^%s/\"" /* ServerBin/... */
|
||||
" #\"^%s$\"" /* ServerRoot */
|
||||
" #\"^%s/\"" /* ServerRoot/... */
|
||||
" #\"^%s$\"" /* StateDir */
|
||||
" #\"^%s/\"" /* StateDir/... */
|
||||
"))\n",
|
||||
request, request, bin, bin, root, root);
|
||||
request, request, bin, bin, root, root, state, state);
|
||||
if (Sandboxing == CUPSD_SANDBOXING_RELAXED)
|
||||
{
|
||||
/* Limited write access to /Library/Printers/... */
|
||||
|
||||
+18
-6
@@ -33,18 +33,30 @@ static int started = 0; /* Did we start the server already? */
|
||||
void
|
||||
cupsdStartServer(void)
|
||||
{
|
||||
/*
|
||||
* Start color management (as needed)...
|
||||
*/
|
||||
|
||||
cupsdStartColor();
|
||||
|
||||
/*
|
||||
* Create the default security profile...
|
||||
*/
|
||||
|
||||
DefaultProfile = cupsdCreateProfile(0, 1);
|
||||
|
||||
#ifdef HAVE_SANDBOX_H
|
||||
if (!DefaultProfile && UseSandboxing && Sandboxing != CUPSD_SANDBOXING_OFF)
|
||||
{
|
||||
/*
|
||||
* Failure to create the sandbox profile means something really bad has
|
||||
* happened and we need to shutdown immediately.
|
||||
*/
|
||||
|
||||
return;
|
||||
}
|
||||
#endif /* HAVE_SANDBOX_H */
|
||||
|
||||
/*
|
||||
* Start color management (as needed)...
|
||||
*/
|
||||
|
||||
cupsdStartColor();
|
||||
|
||||
/*
|
||||
* Startup all the networking stuff...
|
||||
*/
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<TR>
|
||||
<TH CLASS="label">Nom :</TH>
|
||||
<TD><INPUT TYPE="TEXT" NAME="PRINTER_NAME" SIZE="40" MAXLENGTH="127"><BR>
|
||||
<SMALL>(Peux contenir n'importe quel caractère sauf "/", "#", et espace)</SMALL></TD>
|
||||
<SMALL>(Peut contenir n'importe quel caractère sauf "/", "#", et espace)</SMALL></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TH CLASS="label">Description :</TH>
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
<TR>
|
||||
<TH CLASS="label">Nom \:</TH>
|
||||
<TD><INPUT TYPE="TEXT" NAME="PRINTER_NAME" SIZE="40" MAXLENGTH="127" VALUE="{?template_name}"><BR>
|
||||
<SMALL>(Peux contenir n'importe quel caractère sauf "/", "#", et espace)</SMALL></TD>
|
||||
<SMALL>(Peut contenir n'importe quel caractère sauf "/", "#", et espace)</SMALL></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TH CLASS="label">Description :</TH>
|
||||
|
||||
@@ -27,8 +27,8 @@
|
||||
|
||||
<P>
|
||||
<FORM ACTION="/admin/" METHOD="POST"><INPUT TYPE="HIDDEN" NAME="org.cups.sid" VALUE="{$org.cups.sid}"><INPUT TYPE="HIDDEN" NAME="OP" VALUE="config-server"><INPUT TYPE="SUBMIT" VALUE="Éditer le fichier de configuration"></FORM>
|
||||
<FORM ACTION="/admin/log/access_log" METHOD="GET"><INPUT TYPE="SUBMIT" VALUE="Visualiser Access Log"></FORM>
|
||||
<FORM ACTION="/admin/log/error_log" METHOD="GET"><INPUT TYPE="SUBMIT" VALUE="Visualiser Error Log"></FORM>
|
||||
<FORM ACTION="/admin/log/access_log" METHOD="GET"><INPUT TYPE="SUBMIT" VALUE="Visualiser le journal d'accès"></FORM>
|
||||
<FORM ACTION="/admin/log/error_log" METHOD="GET"><INPUT TYPE="SUBMIT" VALUE="Visualiser le journal d'erreur"></FORM>
|
||||
<FORM ACTION="/admin/log/page_log" METHOD="GET"><INPUT TYPE="SUBMIT" VALUE="Visualiser Page Log"></FORM>
|
||||
</P>
|
||||
|
||||
@@ -52,9 +52,9 @@
|
||||
{have_gssapi?<INPUT TYPE="CHECKBOX" NAME="KERBEROS" ID="KERBEROS" {?kerberos}><LABEL FOR="KERBEROS"> Utiliser l'authentification Kerberos (<A HREF="/help/kerberos.html?TOPIC=Getting+Started">FAQ</A>)</LABEL><BR>:}
|
||||
<INPUT TYPE="CHECKBOX" NAME="USER_CANCEL_ANY" ID="USER_CANCEL_ANY" {?user_cancel_any}><LABEL FOR="USER_CANCEL_ANY"> Autoriser les utilisateurs à annuler n'importe quelle tâche (Pas seulement les leurs)</LABEL><BR>
|
||||
<INPUT TYPE="CHECKBOX" NAME="PRESERVE_JOBS" ID="PRESERVE_JOBS" {?preserve_jobs}><LABEL FOR="PRESERVE_JOBS"> Conserver l'historique des tâches</LABEL><BR>
|
||||
Maximum jobs (0 for no limit)\:
|
||||
Nombre maximum de tâches (0 pour aucune limite)\:
|
||||
<INPUT TYPE="TEXT" NAME="MAX_JOBS" VALUE="{?max_jobs}" SIZE="6"><BR>
|
||||
Conserver les meta-données \:
|
||||
Conserver les méta-données \:
|
||||
<INPUT TYPE="TEXT" NAME="PRESERVE_JOB_HISTORY" VALUE="{?preserve_job_history}" SIZE="6"><BR>
|
||||
Conserver les documents \:
|
||||
<INPUT TYPE="TEXT" NAME="PRESERVE_JOB_FILES" VALUE="{?preserve_job_files}" SIZE="6"><BR>
|
||||
|
||||
@@ -21,7 +21,7 @@ VALUE="{device_uri}{?device_make_and_model!Unknown?|{device_make_and_model}:}">
|
||||
</TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TH CLASS="label">Imprimantes réseaux découvertes \:</TH>
|
||||
<TH CLASS="label">Imprimantes réseau découvertes \:</TH>
|
||||
<TD>
|
||||
{[device_uri]{device_class=network?{device_uri~[a-z]+://?<INPUT TYPE="RADIO" NAME="DEVICE_URI" ID="{device_uri}{?device_make_and_model!Unknown?|{device_make_and_model}:}"
|
||||
VALUE="{device_uri}{?device_make_and_model!Unknown?|{device_make_and_model}:}">
|
||||
@@ -31,7 +31,7 @@ VALUE="{device_uri}{?device_make_and_model!Unknown?|{device_make_and_model}:}">
|
||||
</TR>
|
||||
<TR>
|
||||
<TR>
|
||||
<TH CLASS="label">Autres imprimantes réseaux \:</TH>
|
||||
<TH CLASS="label">Autres imprimantes réseau \:</TH>
|
||||
<TD>
|
||||
{[device_uri]{device_class=network?{device_uri~[a-z]+://?:<INPUT TYPE="RADIO" NAME="DEVICE_URI" ID="{device_uri}{?device_make_and_model!Unknown?|{device_make_and_model}:}"
|
||||
VALUE="{device_uri}{?device_make_and_model!Unknown?|{device_make_and_model}:}">
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
<TR>
|
||||
<TH CLASS="label">Partage :</TH>
|
||||
<TD><INPUT TYPE="HIDDEN" NAME="PRINTER_IS_SHARED" VALUE="{?printer_is_shared}">
|
||||
{?printer_is_shared=?Ne pas:{?printer_is_shared=0?Do Not:}} partager cette imprimante</TD>
|
||||
{?printer_is_shared=?Ne pas p:{?printer_is_shared=0?Ne pas p:P}}artager cette imprimante</TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TH CLASS="label">Marque :</TH>
|
||||
@@ -38,7 +38,7 @@
|
||||
<TH CLASS="label">Modèle :</TH>
|
||||
<TD>
|
||||
<SELECT NAME="PPD_NAME" SIZE="10">
|
||||
{op=add-printer?:<OPTION VALUE="__no_change__" SELECTED>Pilote courant - {current_make_and_model}</OPTION>:}
|
||||
{op=add-printer?:<OPTION VALUE="__no_change__" SELECTED>Pilote actuel - {current_make_and_model}</OPTION>:}
|
||||
{[ppd_name]<OPTION VALUE="{ppd_name}" {op=modify-printer?:{?current_make_and_model={ppd_make_and_model}?SELECTED:}}>{ppd_make_and_model} ({ppd_natural_language})
|
||||
}</SELECT>
|
||||
</TD>
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
socket://hostname:9100
|
||||
</PRE>
|
||||
|
||||
<P>Voir <A HREF="/help/network.html" TARGET="_blank">"Imprimantes réseaux"</A> pour construire l'URI à employée avec votre imprimante.</P>
|
||||
<P>Voir <A HREF="/help/network.html" TARGET="_blank">"Imprimantes réseaux"</A> pour construire l'URI à employer avec votre imprimante.</P>
|
||||
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<H2 CLASS="title">Supprimer la classe {printer_name}</H2>
|
||||
|
||||
<P><B>Attention:</B> Etes-vous sur(e) de vouloir supprimer la classe
|
||||
<P><B>Attention:</B> Êtes-vous sur(e) de vouloir supprimer la classe
|
||||
{printer_name}?</P>
|
||||
|
||||
<P ALIGN="CENTER"><FORM ACTION="/admin/" METHOD="POST"><INPUT TYPE="HIDDEN" NAME="org.cups.sid" VALUE="{$org.cups.sid}"><INPUT TYPE="HIDDEN" NAME="op" VALUE="delete-class"><INPUT TYPE="HIDDEN" NAME="printer_name" VALUE="{printer_name}"><INPUT TYPE="SUBMIT" NAME="confirm" VALUE="Supprimer la classe"></FORM></P>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<H2 CLASS="title"><A HREF="{printer_uri_supported}">{printer_name}</A>
|
||||
({printer_state=3?En attente:{printer_state=4?En cours d'impression:Arrêté}},
|
||||
({printer_state=3?En attente:{printer_state=4?En cours d'impression:Arrêtée}},
|
||||
{printer_is_accepting_jobs=0?rejette les tâches:accepte les tâches},
|
||||
{server_is_sharing_printers=0?Non:{printer_is_shared=0?Non:}} partagée{default_name={printer_name}?, imprimante par défaut:})</H2>
|
||||
{server_is_sharing_printers=0?Non p:{printer_is_shared=0?Non p:P}}artagée{default_name={printer_name}?, imprimante par défaut:})</H2>
|
||||
|
||||
<FORM METHOD="POST" ACTION="{printer_uri_supported}" NAME="maintenance">
|
||||
<INPUT TYPE="HIDDEN" NAME="org.cups.sid" VALUE="{$org.cups.sid}">
|
||||
@@ -13,7 +13,7 @@
|
||||
<OPTION VALUE="move-jobs">Transférer toutes les tâches</OPTION>
|
||||
<OPTION VALUE="purge-jobs">Annuler toutes les tâches</OPTION>
|
||||
</SELECT>
|
||||
<INPUT TYPE="SUBMIT" VALUE="Go" STYLE="display: none;">
|
||||
<INPUT TYPE="SUBMIT" VALUE="Valider" STYLE="display: none;">
|
||||
</FORM>
|
||||
|
||||
<FORM METHOD="POST" ACTION="{admin_uri}" NAME="administration">
|
||||
@@ -28,7 +28,7 @@
|
||||
<OPTION VALUE="set-as-default">Définir par défaut</OPTION>
|
||||
<OPTION VALUE="set-allowed-users">Définir les autorisations</OPTION>
|
||||
</SELECT>
|
||||
<INPUT TYPE="SUBMIT" VALUE="Go" STYLE="display: none;">
|
||||
<INPUT TYPE="SUBMIT" VALUE="Valider" STYLE="display: none;">
|
||||
</FORM>
|
||||
|
||||
<TABLE SUMMARY="{printer_name}">
|
||||
|
||||
@@ -1 +1 @@
|
||||
<P ALIGN="CENTER">{total=0?Pas de classes:Affichage de {#printer_name} sur {total} classe{total=1?:es}}.</P>
|
||||
<P ALIGN="CENTER">{total=0?Pas de classes:Affichage de {#printer_name} sur {total} classe{total=1?:s}}.</P>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
</THEAD>
|
||||
<TBODY>
|
||||
{[printer_name]
|
||||
<TR><TD><A HREF="{printer_uri_supported}">{printer_name}</A></TD><TD>{printer_info}</TD><TD>{printer_location}</TD><TD>{?member_uris=?Aucun:{member_uris}}</TD><TD>{printer_state=3?Inoccupé:{printer_state=4?En cours d'impression:En pause}}{printer_state_message? - "{printer_state_message}":}</TD></TR>
|
||||
<TR><TD><A HREF="{printer_uri_supported}">{printer_name}</A></TD><TD>{printer_info}</TD><TD>{printer_location}</TD><TD>{?member_uris=?Aucun:{member_uris}}</TD><TD>{printer_state=3?Inoccupée:{printer_state=4?En cours d'impression:En pause}}{printer_state_message? - "{printer_state_message}":}</TD></TR>
|
||||
}
|
||||
</TBODY>
|
||||
</TABLE></DIV>}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<FORM ACTION="/help/{?HELPFILE}" METHOD="GET">
|
||||
{TOPIC?<INPUT TYPE="HIDDEN" NAME="TOPIC" VALUE="{TOPIC}">:}
|
||||
|
||||
<P ALIGN="CENTER"><B>Search in
|
||||
{HELPTITLE?{HELPTITLE}:{TOPIC?{TOPIC}:All Documents}}:</B> <INPUT
|
||||
<P ALIGN="CENTER"><B>Rechercher dans
|
||||
{HELPTITLE?{HELPTITLE}:{TOPIC?{TOPIC}:Tous les documents}}:</B> <INPUT
|
||||
TYPE="SEARCH" NAME="QUERY" VALUE="{?QUERY}" SIZE="40" PLACEHOLDER=""
|
||||
AUTOSAVE="org.cups.help" RESULTS="20">
|
||||
<INPUT TYPE="SUBMIT" NAME="SEARCH" VALUE="Search">
|
||||
@@ -14,9 +14,9 @@ AUTOSAVE="org.cups.help" RESULTS="20">
|
||||
<DIV CLASS="sidebar"><TABLE CLASS="inset" SUMMARY="Contents">
|
||||
<TR><TD>
|
||||
|
||||
<H3 CLASS="title">Online Help Documents</H3>
|
||||
<H3 CLASS="title">Documentation en ligne</H3>
|
||||
|
||||
<P CLASS="l0"><A HREF="/help/{QUERY??QUERY={QUERY}:}">All Documents</A></P>
|
||||
<P CLASS="l0"><A HREF="/help/{QUERY??QUERY={QUERY}:}">Tous les documents</A></P>
|
||||
<HR>
|
||||
|
||||
{[BMTEXT]<P CLASS="l{BMINDENT}"><A HREF="{BMLINK}">{BMTEXT}</A></P>
|
||||
@@ -24,18 +24,18 @@ AUTOSAVE="org.cups.help" RESULTS="20">
|
||||
</TD></TR>
|
||||
</TABLE></DIV>
|
||||
|
||||
{QUERY?<P>Search Results in {HELPFILE?{HELPTITLE}:{TOPIC?{TOPIC}:All Documents}}\:</P>
|
||||
{QUERY?<P>Résultats de la recherche dans {HELPFILE?{HELPTITLE}:{TOPIC?{TOPIC}:Tous les documents}}\:</P>
|
||||
{QTEXT?<UL>
|
||||
{[QTEXT]<LI><A HREF="{QLINK}">{QTEXT}</A>{QPTEXT? (in <I><A HREF="{QPLINK}">{QPTEXT}</A></I>):}</LI>}
|
||||
{QTEXT?</UL>:}
|
||||
:<P>No matches found.</P>}
|
||||
:<P>Aucun résultat.</P>}
|
||||
<HR NOSHADE>:}
|
||||
{HELPTITLE?<FORM ACTION="/help/{?HELPFILE}" METHOD="GET"><INPUT TYPE="HIDDEN" NAME="PRINTABLE" VALUE="YES"><INPUT TYPE="SUBMIT" VALUE="View Printable Version"></FORM>:
|
||||
{HELPTITLE?<FORM ACTION="/help/{?HELPFILE}" METHOD="GET"><INPUT TYPE="HIDDEN" NAME="PRINTABLE" VALUE="YES"><INPUT TYPE="SUBMIT" VALUE="Voir la version imprimable"></FORM>:
|
||||
|
||||
<H1>Online Help</H1>
|
||||
<H1>Aide en ligne</H1>
|
||||
|
||||
<P>This is the CUPS online help interface. Enter search words above or click on any of the documentation links to display online help information.</P>
|
||||
<P>Ceci est l'interface d'aide en ligne de CUPS. Entrez vos termes de recherch ci-dessus ou cliquez sur un des liens vers la documentation pour voir les informations d'aide en ligne.</P>
|
||||
|
||||
<P>If you are new to CUPS, read the "<a href="/help/overview.html">Overview of CUPS</a>" page.</P>
|
||||
<P>Si vous êtes un nouvel utilisateur de CUPS, lisez la page "<a href="/help/overview.html">Aperçu de CUPS</a>".</P>
|
||||
|
||||
<P>The <A HREF="http://www.cups.org/">CUPS home page</A> also provides many resources including user discussion forums, answers to frequently-asked questions, and a form for submitting bug reports and feature requests.</P>}
|
||||
<P>La <A HREF="http://www.cups.org/">page d'accueil CUPS</A> procure aussi beaucoup de ressources dont des forums, des FAQ, et un formulaire pour les rapports de bugs et les demandes de fonctionnalités.</P>}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<H2 CLASS="title">{job_id?Transférer la tâche {job_id}:Transférer toutes les tâches}</H2>
|
||||
|
||||
<P>{job_id?<A HREF="/jobs/{job_id}">Job {job_id}</A>:Toutes les tâches} transférée(s) vers
|
||||
<P>{job_id?<A HREF="/jobs/{job_id}">Tâche {job_id}</A>:Toutes les tâches} transférée(s) vers
|
||||
<A HREF="/{is_class?classes:printers}/{job_printer_name}">{job_printer_name}</A>.</P>
|
||||
|
||||
@@ -2,4 +2,4 @@
|
||||
{?which_jobs=completed?:<FORM ACTION="{?printer_name=?/jobs:{printer_uri_supported}}" METHOD="GET"><INPUT TYPE="HIDDEN" NAME="which_jobs" VALUE="completed"><INPUT TYPE="SUBMIT" VALUE="Affichage des tâches terminées"></FORM>}
|
||||
{?which_jobs=all?:<FORM ACTION="{?printer_name=?/jobs:{printer_uri_supported}}" METHOD="GET"><INPUT TYPE="HIDDEN" NAME="which_jobs" VALUE="all"><INPUT TYPE="SUBMIT" VALUE="Affichage de toutes les tâches"></FORM>}
|
||||
|
||||
<P ALIGN="CENTER">{?which_jobs=?Affichage des tâches dans l'ordre d'impression; les tâches maintenues apparraissent en premier.:{which_jobs=Affichage des tâches dans l'ordre croissant.?:Affichage des tâches dans l'ordre décroissant.}}</P>
|
||||
<P ALIGN="CENTER">{?which_jobs=?Affichage des tâches dans l'ordre d'impression; les tâches maintenues apparaissent en premier.:{which_jobs=Affichage des tâches dans l'ordre croissant.?:Affichage des tâches dans l'ordre décroissant.}}</P>
|
||||
|
||||
@@ -8,12 +8,12 @@
|
||||
<TR VALIGN="TOP">
|
||||
<TD><A HREF="{job_printer_uri}">{job_printer_name}</A>-{job_id}{?phone? ({phone}):} </TD>
|
||||
<TD>{?job_name=?Inconnu:{job_name}} </TD>
|
||||
<TD>{?job_originating_user_name=?Withheld:{job_originating_user_name}} </TD>
|
||||
<TD>{?job_originating_user_name=?Caché:{job_originating_user_name}} </TD>
|
||||
<TD>{job_k_octets}k </TD>
|
||||
<TD>{job_impressions_completed=0?Inconnu:{?job_impressions_completed}} </TD>
|
||||
<TD>{job_state=3?en attente depuis<BR>{?time_at_creation=?Unknown:{time_at_creation}}:{job_state=4?retenu depuis le<BR>{?time_at_creation=?Unknown:{time_at_creation}}:
|
||||
{job_state=5?en cours d'impression depuis<BR>{?time_at_processing=?Unknown:{time_at_processing}}:{job_state=6?arrêté:
|
||||
{job_state=7?annulé depuis<BR>{?time_at_completed=?Unknown:{time_at_completed}}:{job_state=8?annulé:terminé depuis<BR>{?time_at_completed=?Unknown:{time_at_completed}}}}}}}} {job_printer_state_message?<BR>
|
||||
<TD>{job_state=3?en attente depuis<BR>{?time_at_creation=?Inconnu:{time_at_creation}}:{job_state=4?retenu depuis le<BR>{?time_at_creation=?Inconnu:{time_at_creation}}:
|
||||
{job_state=5?en cours d'impression depuis<BR>{?time_at_processing=?Inconnu:{time_at_processing}}:{job_state=6?arrêté:
|
||||
{job_state=7?annulé depuis<BR>{?time_at_completed=?Inconnu:{time_at_completed}}:{job_state=8?annulé:terminé depuis<BR>{?time_at_completed=?Inconnu:{time_at_completed}}}}}}}} {job_printer_state_message?<BR>
|
||||
<EM>"{job_printer_state_message}"</EM>:}</TD>
|
||||
<TD>
|
||||
{job_preserved>0?{job_state>5?
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<H2 CLASS="title">Définir {is_class?la classe:l'imprimante} {printer_name} comme imprimante par défaut</H2>
|
||||
<H2 CLASS="title">Définir {is_class?la classe:l'imprimante} {printer_name} comme {is_class?classe:imprimante} par défaut</H2>
|
||||
|
||||
<P>{is_class?La classe:L'imprimante} <A
|
||||
HREF="/{is_class?classes:printers}/{printer_name}">{printer_name}</A>
|
||||
a été définie comme imprimante par défaut du serveur.</P>
|
||||
a été définie comme {is_class?classe:imprimante} par défaut du serveur.</P>
|
||||
|
||||
<BLOCKQUOTE><B>Note:</B> Tout paramètre utilisateur défini via la commande <TT>lpoptions</TT> sera prioritaire sur le paramètre défini içi.
|
||||
</BLOCKQUOTE>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<H2 CLASS="title"><A HREF="{printer_uri_supported}">{printer_name}</A>
|
||||
({printer_state=3?Inoccupée :{printer_state=4?En cours d'impression:En pause}},
|
||||
{printer_is_accepting_jobs=0?Rejette les tâches:accepte les tâches},
|
||||
{printer_is_accepting_jobs=0?Rejette les tâches:Accepte les tâches},
|
||||
{server_is_sharing_printers=0?non:{printer_is_shared=0?non:}} partagée{default_name={printer_name}?, imprimante par défaut :})</H2>
|
||||
|
||||
<FORM METHOD="POST" ACTION="{printer_uri_supported}" NAME="maintenance">
|
||||
|
||||
@@ -489,11 +489,6 @@ StrictConformance Yes
|
||||
Browsing Off
|
||||
Listen localhost:$port
|
||||
Listen $BASE/sock
|
||||
PassEnv DYLD_LIBRARY_PATH
|
||||
PassEnv LD_LIBRARY_PATH
|
||||
PassEnv LD_PRELOAD
|
||||
PassEnv LOCALEDIR
|
||||
PassEnv SHLIB_PATH
|
||||
MaxSubscriptions 3
|
||||
MaxLogSize 0
|
||||
AccessLogLevel actions
|
||||
@@ -529,6 +524,12 @@ TempDir $BASE/spool/temp
|
||||
AccessLog $BASE/log/access_log
|
||||
ErrorLog $BASE/log/error_log
|
||||
PageLog $BASE/log/page_log
|
||||
|
||||
PassEnv DYLD_LIBRARY_PATH
|
||||
PassEnv LD_LIBRARY_PATH
|
||||
PassEnv LD_PRELOAD
|
||||
PassEnv LOCALEDIR
|
||||
PassEnv SHLIB_PATH
|
||||
EOF
|
||||
|
||||
if test $ssltype != 0 -a `uname` = Darwin; then
|
||||
|
||||
Referência em uma Nova Issue
Bloquear um usuário