Comparar commits

...

20 Commits

Autor SHA1 Mensagem Data
Michael R Sweet 1539283f98 Bump version to 2.3b6, changelog. 2018-06-05 14:46:51 -04:00
Michael R Sweet a6dd739c02 Make sure all incoming value tags are treated the same as freed values. 2018-06-05 14:46:50 -04:00
Michael R Sweet 929486aa64 Fix link to CUPS Programming Manual. 2018-06-05 14:46:50 -04:00
Michael R Sweet 579a5525e8 Update versions in README and INSTALL 2018-06-05 14:46:50 -04:00
Michael R Sweet f66b1d85f8 Update documentation and localization files for 2.3b5 release. 2018-06-05 14:46:50 -04:00
Michael R Sweet 2c4c9ada65 Changelog. 2018-06-05 14:46:50 -04:00
Michael R Sweet e1ac3f36d0 Fix a parsing bug in the pstops filter (Issue #5321) 2018-06-05 14:46:49 -04:00
Michael R Sweet c95282ef08 Changelog. 2018-06-05 14:46:49 -04:00
Michael R Sweet 9e838da3db Add a USB quirks rule for the HP LaserJet P1102 (Issue #5310) 2018-06-05 14:46:49 -04:00
Michael R Sweet 0d92ec1c6f Fix local privilege escalation to root and sandbox bypasses in scheduler
(rdar://37836779, rdar://37836995, rdar://37837252, rdar://37837581)
2018-06-05 14:46:49 -04:00
Michael R Sweet beb37da67b Validate notify-recipient-uri values. 2018-06-05 14:46:49 -04:00
Michael R Sweet fd32084d40 Block invalid group tags when parsing IPP messages. 2018-06-05 14:46:49 -04:00
Nils Van Zuijlen ac9e295f23 Correct typos for French_France 2018-06-05 14:46:48 -04:00
Michael R Sweet 778759a48f Add smb test URI. 2018-06-05 14:46:48 -04:00
Michael R Sweet ac79576a7f Add more URI validation for scheme. 2018-06-05 14:46:48 -04:00
Michael R Sweet 76d2c4481f Save work. 2018-05-18 17:10:36 -07:00
Michael R Sweet 1660d61202 Update xform_setup. 2018-05-18 14:46:34 -07:00
Michael R Sweet 3eb5ec664f Fix compile errors. 2018-05-18 12:53:46 -07:00
Michael R Sweet a17ce1d474 Save work. 2018-05-18 08:36:39 -07:00
Michael R Sweet 1e01455aeb Save initial work on private xform API. 2018-05-14 17:03:24 -07:00
56 arquivos alterados com 5704 adições e 577 exclusões
+19 -4
Ver Arquivo
@@ -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
Ver Arquivo
@@ -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
Ver Arquivo
@@ -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...
+3
Ver Arquivo
@@ -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
Ver Arquivo
@@ -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
Ver Arquivo
@@ -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
Ver Arquivo
@@ -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
#
+2 -2
Ver Arquivo
@@ -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
+4 -3
Ver Arquivo
@@ -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
Ver Arquivo
@@ -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 :
+6
Ver Arquivo
@@ -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
Ver Arquivo
@@ -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);
+68
Ver Arquivo
@@ -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 }
};
+127
Ver Arquivo
@@ -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
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+2 -2
Ver Arquivo
@@ -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.
+7 -3
Ver Arquivo
@@ -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>
+997
Ver Arquivo
@@ -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
Ver Arquivo
@@ -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;
+7 -3
Ver Arquivo
@@ -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
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+6
Ver Arquivo
@@ -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
Ver Arquivo
@@ -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
Ver Arquivo
@@ -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
Ver Arquivo
@@ -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
Ver Arquivo
@@ -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
Ver Arquivo
@@ -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
Ver Arquivo
@@ -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
Ver Arquivo
@@ -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
Ver Arquivo
@@ -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
Ver Arquivo
@@ -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”值。"
+10
Ver Arquivo
@@ -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
-8
Ver Arquivo
@@ -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
Ver Arquivo
@@ -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
Ver Arquivo
@@ -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 "
+12
Ver Arquivo
@@ -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
Ver Arquivo
@@ -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
Ver Arquivo
@@ -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...
*/
+1 -1
Ver Arquivo
@@ -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&egrave;re sauf "/", "#", et espace)</SMALL></TD>
<SMALL>(Peut contenir n'importe quel caract&egrave;re sauf "/", "#", et espace)</SMALL></TD>
</TR>
<TR>
<TH CLASS="label">Description:</TH>
+1 -1
Ver Arquivo
@@ -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&egrave;re sauf "/", "#", et espace)</SMALL></TD>
<SMALL>(Peut contenir n'importe quel caract&egrave;re sauf "/", "#", et espace)</SMALL></TD>
</TR>
<TR>
<TH CLASS="label">Description:</TH>
+4 -4
Ver Arquivo
@@ -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 &agrave; annuler n'importe quelle t&acirc;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&acirc;ches</LABEL><BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Maximum jobs (0 for no limit)\:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Nombre maximum de t&acirc;ches (0 pour aucune limite)\:
<INPUT TYPE="TEXT" NAME="MAX_JOBS" VALUE="{?max_jobs}" SIZE="6"><BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Conserver les meta-donn&eacute;es\:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Conserver les m&eacute;ta-donn&eacute;es\:
<INPUT TYPE="TEXT" NAME="PRESERVE_JOB_HISTORY" VALUE="{?preserve_job_history}" SIZE="6"><BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Conserver les documents\:
<INPUT TYPE="TEXT" NAME="PRESERVE_JOB_FILES" VALUE="{?preserve_job_files}" SIZE="6"><BR>
+2 -2
Ver Arquivo
@@ -21,7 +21,7 @@ VALUE="{device_uri}{?device_make_and_model!Unknown?|{device_make_and_model}:}">
</TD>
</TR>
<TR>
<TH CLASS="label">Imprimantes r&eacute;seaux d&eacute;couvertes\:</TH>
<TH CLASS="label">Imprimantes r&eacute;seau d&eacute;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&eacute;seaux\:</TH>
<TH CLASS="label">Autres imprimantes r&eacute;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}:}">
+2 -2
Ver Arquivo
@@ -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>
+1 -1
Ver Arquivo
@@ -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 -1
Ver Arquivo
@@ -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>
+4 -4
Ver Arquivo
@@ -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&ecirc;t&eacute;}},
({printer_state=3?En attente:{printer_state=4?En cours d'impression:Arr&ecirc;t&eacute;e}},
{printer_is_accepting_jobs=0?rejette les t&acirc;ches:accepte les t&acirc;ches},
{server_is_sharing_printers=0?Non:{printer_is_shared=0?Non:}} partag&eacute;e{default_name={printer_name}?, imprimante par d&eacute;faut:})</H2>
{server_is_sharing_printers=0?Non p:{printer_is_shared=0?Non p:P}}artag&eacute;e{default_name={printer_name}?, imprimante par d&eacute;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&eacute;rer toutes les t&acirc;ches</OPTION>
<OPTION VALUE="purge-jobs">Annuler toutes les t&acirc;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&eacute;finir par d&eacute;faut</OPTION>
<OPTION VALUE="set-allowed-users">D&eacute;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
Ver Arquivo
@@ -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>
+1 -1
Ver Arquivo
@@ -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&eacute;:{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&eacute;e:{printer_state=4?En cours d'impression:En pause}}{printer_state_message? - "{printer_state_message}":}</TD></TR>
}
</TBODY>
</TABLE></DIV>}
+11 -11
Ver Arquivo
@@ -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>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 -1
Ver Arquivo
@@ -1,4 +1,4 @@
<H2 CLASS="title">{job_id?Transf&eacute;rer la t&acirc;che {job_id}:Transf&eacute;rer toutes les t&acirc;ches}</H2>
<P>{job_id?<A HREF="/jobs/{job_id}">Job {job_id}</A>:Toutes les t&acirc;ches} transf&eacute;r&eacute;e(s) vers
<P>{job_id?<A HREF="/jobs/{job_id}">T&acirc;che {job_id}</A>:Toutes les t&acirc;ches} transf&eacute;r&eacute;e(s) vers
<A HREF="/{is_class?classes:printers}/{job_printer_name}">{job_printer_name}</A>.</P>
+1 -1
Ver Arquivo
@@ -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&acirc;ches termin&eacute;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&acirc;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>
+4 -4
Ver Arquivo
@@ -8,12 +8,12 @@
<TR VALIGN="TOP">
<TD><A HREF="{job_printer_uri}">{job_printer_name}</A>-{job_id}{?phone? ({phone}):}&nbsp;</TD>
<TD>{?job_name=?Inconnu:{job_name}}&nbsp;</TD>
<TD>{?job_originating_user_name=?Withheld:{job_originating_user_name}}&nbsp;</TD>
<TD>{?job_originating_user_name=?Caché:{job_originating_user_name}}&nbsp;</TD>
<TD>{job_k_octets}k&nbsp;</TD>
<TD>{job_impressions_completed=0?Inconnu:{?job_impressions_completed}}&nbsp;</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&ecirc;t&eacute;:
{job_state=7?annul&eacute; depuis<BR>{?time_at_completed=?Unknown:{time_at_completed}}:{job_state=8?annul&eacute;:termin&eacute; depuis<BR>{?time_at_completed=?Unknown:{time_at_completed}}}}}}}}&nbsp;{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&ecirc;t&eacute;:
{job_state=7?annul&eacute; depuis<BR>{?time_at_completed=?Inconnu:{time_at_completed}}:{job_state=8?annul&eacute;:termin&eacute; depuis<BR>{?time_at_completed=?Inconnu:{time_at_completed}}}}}}}}&nbsp;{job_printer_state_message?<BR>
<EM>"{job_printer_state_message}"</EM>:}</TD>
<TD>
{job_preserved>0?{job_state>5?
+2 -2
Ver Arquivo
@@ -1,8 +1,8 @@
<H2 CLASS="title">D&eacute;finir {is_class?la classe:l'imprimante} {printer_name} comme imprimante par d&eacute;faut</H2>
<H2 CLASS="title">D&eacute;finir {is_class?la classe:l'imprimante} {printer_name} comme {is_class?classe:imprimante} par d&eacute;faut</H2>
<P>{is_class?La classe:L'imprimante} <A
HREF="/{is_class?classes:printers}/{printer_name}">{printer_name}</A>
a &eacute;t&eacute; d&eacute;finie comme imprimante par d&eacute;faut du serveur.</P>
a &eacute;t&eacute; d&eacute;finie comme {is_class?classe:imprimante} par d&eacute;faut du serveur.</P>
<BLOCKQUOTE><B>Note:</B> Tout param&egrave;tre utilisateur d&eacute;fini via la commande <TT>lpoptions</TT> sera prioritaire sur le param&egrave;tre d&eacute;fini i&ccedil;i.
</BLOCKQUOTE>
+1 -1
Ver Arquivo
@@ -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">
+6 -5
Ver Arquivo
@@ -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