-CHANGES.txt - 2006-11-16
+CHANGES.txt - 2007-02-06
------------------------
+CHANGES IN CUPS V1.2.8
+
+ - Documentation fixes (STR #2141, STR #2157)
+ - The HTTP upgrade redirection used by the scheduler did
+ not work with Internet Explorer (STR #2235)
+ - Members of a class with Unicode names did not appear
+ correctly in the web interface (STR #2154)
+ - Changing the "Save debugging information" setting in
+ the web interface no longer affects the other server
+ settings (STR #1993)
+ - The scheduler did not choose SSL certificates correctly
+ on Mac OS X (STR #2225)
+ - The scheduler could get in an infinite loop when
+ printing to a remote class (STR #2228)
+ - The jobs web page did not have separating space after
+ the number of pages column (STR #2230)
+ - Added French localization (STR #2221)
+ - Updated Spanish localization (STR #2223)
+ - Updated Japanese localization (STR #2216)
+ - cupsBorderlessScalingFacter was limited to a range of
+ 0.9 to 1.1, but some printers need larger values (STR
+ #2222)
+ - Landscape printing of PDF files did not always work
+ (STR #2149)
+ - Fixed slow USB printing on Minolta printers (STR #2104,
+ STR #2219)
+ - The ZPL label printer driver could produce stretched
+ output (PR #6448)
+ - The IPP backend now clears the printer-state-message
+ when there are no outstanding errors or warnings (STR
+ #2126)
+ - The CUPS Java scripting support did not work with
+ recent versions of Java due to the use of Sun's private
+ Base64 class (STR #2152)
+ - The scheduler did not pass HTTP GET form variables to
+ custom CGI programs (STR #2173)
+ - The lpoptions command now displays the reason why a PPD
+ file cannot be found (STR #2184)
+ - The scheduler did not accept "none" as a browse
+ protocol name (STR #2200)
+ - The scheduler still loaded the remote printer cache,
+ even when browsing was disabled (STR #2198)
+ - The SNMP backend now shows OfficeJet printers with the
+ "HP" manufacturer prefix (STR #2151)
+ - Web interface HTML cleanup (STR #2153)
+ - The parallel backend consumed 100% CPU on FreeBSD due
+ to an apparently common parallel port driver bug (STR
+ #2161)
+ - ippReadIO() incorrectly returned IPP_IDLE when the
+ initial IPP message header could not be read (STR
+ #2179)
+ - cupsRasterInterpretPPD() did not support custom options
+ (STR #1960)
+ - Collated output produced by the PostScript filter could
+ lose some options (STR #2137)
+ - job-hold-until with time values for the next day would
+ be held for 60 days (STR #2144)
+ - Some types of Sun raster files did not print correctly
+ (STR #2107)
+ - Raw PBM files did not print correctly (STR #2106)
+ - The SNMP backend no longer uses IPP with HP printers,
+ as some recent firmware versions appear to not work
+ (STR #2055)
+ - cupsMarkOptions() did not handle the
+ multiple-document-handling option (STR #2135)
+ - lpstat did not show the local job ID of active printers
+ (STR #2125)
+ - The backends incorrectly used STATUS:
+ media-tray-empty-error messages for out-of-paper
+ conditions (STR #2123, STR #2124)
+ - cupsGetPPD2() returned the wrong error when the PPD
+ file did not exist (STR #2122)
+ - cupsDoAuthentication() did not translate the password
+ prompt (STR #2121)
+ - httpGetLength2() did not handle error messages without
+ content correctly (STR #2133)
+ - Added support for 32/64-bit libraries on HP-UX Itanium
+ systems (STR #2115)
+ - Fixed a configure script problem with the 32/64-bit
+ library support (STR #2114)
+ - The PostScript filter did not properly output document
+ setup commands for reversed output (STR #2111)
+ - The scheduler did not parse IPv6 netmasks properly (STR
+ #2117)
+
+
CHANGES IN CUPS V1.2.7
- Documentation updates (STR #2089)
-CREDITS.txt - 2006-10-02
+CREDITS.txt - 2007-02-05
------------------------
Few projects are completed by one person, and CUPS is no exception. We'd
Nathaniel Barbour - Lots of testing and feedback.
N. Becker - setsid().
+ Philippe Combes - French localization.
Jean-Eric Cuendet - GhostScript filters for CUPS.
Van Dang - HTTP and IPP policeman.
L. Peter Deutsch - MD5 code.
-INSTALL - CUPS v1.2.7 - 2006-11-16
+INSTALL - CUPS v1.2.8 - 2007-02-14
----------------------------------
This file describes how to compile and install CUPS from source
Common UNIX Printing System License Agreement
- Copyright 1997-2006 by Easy Software Products
+ Copyright 1997-2007 by Easy Software Products
44141 AIRPORT VIEW DR STE 204
HOLLYWOOD, MARYLAND 20636 USA
#
-# "$Id: Makefile 5902 2006-08-29 15:51:19Z mike $"
+# "$Id: Makefile 6128 2006-12-05 16:07:23Z mike $"
#
# Top-level Makefile for the Common UNIX Printing System (CUPS).
#
EPMFLAGS = -v --output-dir dist $(EPMARCH)
-aix bsd deb depot inst pkg rpm setld slackware swinstall tardist:
+aix bsd deb depot inst pkg setld slackware swinstall tardist:
epm $(EPMFLAGS) -f $@ cups packaging/cups.list
epm:
osx:
epm $(EPMFLAGS) -f osx -s packaging/installer.tif cups packaging/cups.list
+rpm:
+ epm $(EPMFLAGS) -f rpm -s packaging/installer.gif cups packaging/cups.list
+
.PHONEY: dist
dist: all
$(RM) -r dist
#
-# End of "$Id: Makefile 5902 2006-08-29 15:51:19Z mike $".
+# End of "$Id: Makefile 6128 2006-12-05 16:07:23Z mike $".
#
-README - CUPS v1.2.7 - 2006-11-16
+README - CUPS v1.2.8 - 2007-02-14
---------------------------------
Looking for compile instructions? Read the file "INSTALL.txt"
LEGAL STUFF
- CUPS is Copyright 1993-2006 by Easy Software Products. CUPS,
+ CUPS is Copyright 1993-2007 by Easy Software Products. CUPS,
the CUPS logo, and the Common UNIX Printing System are the
trademark property of Easy Software Products.
/*
- * "$Id: ipp.c 6061 2006-10-23 00:26:52Z mike $"
+ * "$Id: ipp.c 6214 2007-01-23 17:01:48Z mike $"
*
* IPP backend for the Common UNIX Printing System (CUPS).
*
strlcat(state, reason, sizeof(state));
prefix = ",";
- message = NULL;
+ message = "";
if (!strncmp(reason, "media-needed", 12))
message = "Media tray needs to be filled.";
/*
- * End of "$Id: ipp.c 6061 2006-10-23 00:26:52Z mike $".
+ * End of "$Id: ipp.c 6214 2007-01-23 17:01:48Z mike $".
*/
/*
- * "$Id: parallel.c 6068 2006-10-27 17:10:34Z mike $"
+ * "$Id: parallel.c 6181 2007-01-03 18:51:27Z mike $"
*
* Parallel port backend for the Common UNIX Printing System (CUPS).
*
do
{
-#ifdef __linux
+#if defined(__linux) || defined(__FreeBSD__)
/*
- * The Linux parallel port driver currently is broken WRT select()
- * and bidirection I/O...
+ * The Linux and FreeBSD parallel port drivers currently are broken WRT
+ * select() and bidirection I/O...
*/
device_fd = open(resource, O_WRONLY | O_EXCL);
}
else
use_bc = 1;
-#endif /* __linux */
+#endif /* __linux || __FreeBSD__ */
if (device_fd == -1)
{
/*
- * End of "$Id: parallel.c 6068 2006-10-27 17:10:34Z mike $".
+ * End of "$Id: parallel.c 6181 2007-01-03 18:51:27Z mike $".
*/
/*
- * "$Id: runloop.c 5776 2006-07-26 20:55:13Z mike $"
+ * "$Id: runloop.c 6145 2006-12-06 20:10:16Z mike $"
*
* Common run loop API for the Common UNIX Printing System (CUPS).
*
if (!paperout)
{
fputs("ERROR: Out of paper!\n", stderr);
- fputs("STATUS: +media-tray-empty-error\n", stderr);
+ fputs("STATE: +media-empty-error\n", stderr);
paperout = 1;
}
}
{
if (paperout)
{
- fputs("STATUS: -media-tray-empty-error\n", stderr);
+ fputs("STATE: -media-empty-error\n", stderr);
paperout = 0;
}
/*
- * End of "$Id: runloop.c 5776 2006-07-26 20:55:13Z mike $".
+ * End of "$Id: runloop.c 6145 2006-12-06 20:10:16Z mike $".
*/
/*
- * "$Id: snmp.c 6090 2006-11-14 16:35:27Z mike $"
+ * "$Id: snmp.c 6181 2007-01-03 18:51:27Z mike $"
*
* SNMP discovery backend for the Common UNIX Printing System (CUPS).
*
}
else if (!strncasecmp(old_make_model, "deskjet", 7))
snprintf(make_model, make_model_size, "HP DeskJet%s", old_make_model + 7);
+ else if (!strncasecmp(old_make_model, "officejet", 9))
+ snprintf(make_model, make_model_size, "HP OfficeJet%s", old_make_model + 9);
else if (!strncasecmp(old_make_model, "stylus_pro_", 11))
snprintf(make_model, make_model_size, "EPSON Stylus Pro %s",
old_make_model + 11);
if (device->make_and_model &&
(!strncasecmp(device->make_and_model, "Epson", 5) ||
+ !strncasecmp(device->make_and_model, "HP ", 3) ||
+ !strncasecmp(device->make_and_model, "Hewlett", 7) ||
!strncasecmp(device->make_and_model, "Kyocera", 7) ||
!strncasecmp(device->make_and_model, "Lexmark", 7) ||
!strncasecmp(device->make_and_model, "Tektronix", 9) ||
!strncasecmp(device->make_and_model, "Xerox", 5)))
{
/*
- * Epson, Kyocera, Lexmark, Tektronix, and Xerox printers often lock up on
- * IPP probes, so exclude them from the IPP connection test...
+ * Epson, HP, Kyocera, Lexmark, Tektronix, and Xerox printers often lock
+ * up on IPP probes, so exclude them from the IPP connection test...
*/
http = NULL;
static const char * const resources[] =
{ /* Common resource paths for IPP */
"/ipp",
- "/ipp/port2",
- "/ipp/port3",
- "/EPSON_IPP_Printer",
+ /*"/ipp/port2",*/
+ /*"/ipp/port3",*/
+ /*"/EPSON_IPP_Printer",*/
"/LPT1",
"/LPT2",
"/COM1",
/*
- * End of "$Id: snmp.c 6090 2006-11-14 16:35:27Z mike $".
+ * End of "$Id: snmp.c 6181 2007-01-03 18:51:27Z mike $".
*/
/*
- * "$Id: usb-unix.c 6111 2006-11-15 20:28:39Z mike $"
+ * "$Id: usb-unix.c 6234 2007-02-05 20:25:50Z mike $"
*
* USB port backend for the Common UNIX Printing System (CUPS).
*
* device ID over and over and over when they get a read request...
*/
- use_bc = strcasecmp(hostname, "Canon") && !strstr(hostname, "Minolta");
+ use_bc = strcasecmp(hostname, "Canon") &&
+ strcasecmp(hostname, "Konica Minolta") &&
+ strcasecmp(hostname, "Minolta");
if ((device_fd = open_device(uri, &use_bc)) == -1)
{
/*
- * End of "$Id: usb-unix.c 6111 2006-11-15 20:28:39Z mike $".
+ * End of "$Id: usb-unix.c 6234 2007-02-05 20:25:50Z mike $".
*/
/*
- * "$Id: ipp-var.c 5838 2006-08-17 14:41:42Z mike $"
+ * "$Id: ipp-var.c 6244 2007-02-06 21:08:59Z mike $"
*
* CGI <-> IPP variable routines for the Common UNIX Printing System (CUPS).
*
snprintf(valptr, sizeof(value) - (valptr - value),
"<A HREF=\"%s\">%s</A>", url,
- strrchr(url, '/') + 1);
+ strrchr(attr->values[i].string.text, '/') + 1);
}
else
cgiRewriteURL(attr->values[i].string.text, valptr,
/*
- * End of "$Id: ipp-var.c 5838 2006-08-17 14:41:42Z mike $".
+ * End of "$Id: ipp-var.c 6244 2007-02-06 21:08:59Z mike $".
*/
--- /dev/null
+dnl
+dnl "$Id$"
+dnl
+dnl 32/64-bit library support stuff for the Common UNIX Printing System (CUPS).
+dnl
+dnl Copyright 1997-2006 by Easy Software Products, all rights reserved.
+dnl
+dnl These coded instructions, statements, and computer programs are the
+dnl property of Easy Software Products and are protected by Federal
+dnl copyright law. Distribution and use rights are outlined in the file
+dnl "LICENSE.txt" which should have been included with this file. If this
+dnl file is missing or damaged please contact Easy Software Products
+dnl at:
+dnl
+dnl Attn: CUPS Licensing Information
+dnl Easy Software Products
+dnl 44141 Airport View Drive, Suite 204
+dnl Hollywood, Maryland 20636 USA
+dnl
+dnl Voice: (301) 373-9600
+dnl EMail: cups-info@cups.org
+dnl WWW: http://www.cups.org
+dnl
+
+dnl Setup support for separate 32/64-bit library generation...
+AC_ARG_ENABLE(32bit, [ --enable-32bit generate 32-bit libraries on 32/64-bit systems, default=no])
+
+INSTALL32=""
+LIB32CUPS=""
+LIB32CUPSIMAGE=""
+LIB32DIR=""
+UNINSTALL32=""
+
+AC_SUBST(INSTALL32)
+AC_SUBST(LIB32CUPS)
+AC_SUBST(LIB32CUPSIMAGE)
+AC_SUBST(LIB32DIR)
+AC_SUBST(UNINSTALL32)
+
+AC_ARG_ENABLE(64bit, [ --enable-64bit generate 64-bit libraries on 32/64-bit systems, default=no])
+
+INSTALL64=""
+LIB64CUPS=""
+LIB64CUPSIMAGE=""
+LIB64DIR=""
+UNINSTALL64=""
+
+AC_SUBST(INSTALL64)
+AC_SUBST(LIB64CUPS)
+AC_SUBST(LIB64CUPSIMAGE)
+AC_SUBST(LIB64DIR)
+AC_SUBST(UNINSTALL64)
+
+case "$uname" in
+ HP-UX*)
+ if test "x$enable_32bit" = xyes; then
+ # Build 32-bit libraries, 64-bit base...
+ INSTALL32="install32bit"
+ LIB32CUPS="32bit/libcups.so.2"
+ LIB32CUPSIMAGE="32bit/libcupsimage.so.2"
+ LIB32DIR="$exec_prefix/lib"
+ if test -d /usr/lib/hpux32; then
+ LIB32DIR="${LIB32DIR}/hpux32"
+ fi
+ UNINSTALL32="uninstall32bit"
+ fi
+
+ if test "x$enable_64bit" = xyes; then
+ # Build 64-bit libraries, 32-bit base...
+ INSTALL64="install64bit"
+ LIB64CUPS="64bit/libcups.so.2"
+ LIB64CUPSIMAGE="64bit/libcupsimage.so.2"
+ LIB64DIR="$exec_prefix/lib"
+ if test -d /usr/lib/hpux64; then
+ LIB64DIR="${LIB64DIR}/hpux64"
+ fi
+ UNINSTALL64="uninstall64bit"
+ fi
+ ;;
+
+ IRIX)
+ if test "x$enable_32bit" = xyes; then
+ INSTALL32="install32bit"
+ LIB32CUPS="32bit/libcups.so.2"
+ LIB32CUPSIMAGE="32bit/libcupsimage.so.2"
+ LIB32DIR="$prefix/lib32"
+ UNINSTALL32="uninstall32bit"
+ fi
+
+ if test "x$enable_64bit" = xyes; then
+ # Build 64-bit libraries, 32-bit base...
+ INSTALL64="install64bit"
+ LIB64CUPS="64bit/libcups.so.2"
+ LIB64CUPSIMAGE="64bit/libcupsimage.so.2"
+ LIB64DIR="$prefix/lib64"
+ UNINSTALL64="uninstall64bit"
+ fi
+ ;;
+
+ Linux*)
+ if test "x$enable_32bit" = xyes; then
+ # Build 32-bit libraries, 64-bit base...
+ INSTALL32="install32bit"
+ LIB32CUPS="32bit/libcups.so.2"
+ LIB32CUPSIMAGE="32bit/libcupsimage.so.2"
+ LIB32DIR="$exec_prefix/lib"
+ if test -d /usr/lib32; then
+ LIB32DIR="${LIB32DIR}32"
+ fi
+ UNINSTALL32="uninstall32bit"
+ fi
+
+ if test "x$enable_64bit" = xyes; then
+ # Build 64-bit libraries, 32-bit base...
+ INSTALL64="install64bit"
+ LIB64CUPS="64bit/libcups.so.2"
+ LIB64CUPSIMAGE="64bit/libcupsimage.so.2"
+ LIB64DIR="$exec_prefix/lib"
+ if test -d /usr/lib64; then
+ LIB64DIR="${LIB64DIR}64"
+ fi
+ UNINSTALL64="uninstall64bit"
+ fi
+ ;;
+
+ SunOS*)
+ if test "x$enable_32bit" = xyes; then
+ # Build 32-bit libraries, 64-bit base...
+ INSTALL32="install32bit"
+ LIB32CUPS="32bit/libcups.so.2"
+ LIB32CUPSIMAGE="32bit/libcupsimage.so.2"
+ LIB32DIR="$exec_prefix/lib/32"
+ UNINSTALL32="uninstall32bit"
+ fi
+
+ if test "x$enable_64bit" = xyes; then
+ # Build 64-bit libraries, 32-bit base...
+ INSTALL64="install64bit"
+ LIB64CUPS="64bit/libcups.so.2"
+ LIB64CUPSIMAGE="64bit/libcupsimage.so.2"
+ LIB64DIR="$exec_prefix/lib/64"
+ UNINSTALL64="uninstall64bit"
+ fi
+ ;;
+esac
+
+dnl
+dnl End of "$Id$".
+dnl
dnl
-dnl "$Id: cups-common.m4 6092 2006-11-14 16:36:36Z mike $"
+dnl "$Id: cups-common.m4 6145 2006-12-06 20:10:16Z mike $"
dnl
dnl Common configuration stuff for the Common UNIX Printing System (CUPS).
dnl
AC_CONFIG_HEADER(config.h)
dnl Version number information...
-CUPS_VERSION="1.2.7"
+CUPS_VERSION="1.2.8"
CUPS_REVISION=""
AC_SUBST(CUPS_VERSION)
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_IPP_PORT,$DEFAULT_IPP_PORT)
dnl
-dnl End of "$Id: cups-common.m4 6092 2006-11-14 16:36:36Z mike $".
+dnl End of "$Id: cups-common.m4 6145 2006-12-06 20:10:16Z mike $".
dnl
dnl
-dnl "$Id: cups-compiler.m4 6049 2006-10-20 15:07:21Z mike $"
+dnl "$Id: cups-compiler.m4 6145 2006-12-06 20:10:16Z mike $"
dnl
dnl Compiler stuff for the Common UNIX Printing System (CUPS).
dnl
AC_SUBST(ARCHFLAGS)
dnl Setup support for separate 32/64-bit library generation...
-AC_ARG_ENABLE(32bit, [ --enable-32bit generate 32-bit libraries on 32/64-bit systems, default=no])
AC_ARG_WITH(arch32flags, [ --with-arch32flags="flags"
specifies 32-bit architecture flags])
-
ARCH32FLAGS=""
-INSTALL32=""
-LIB32CUPS=""
-LIB32CUPSIMAGE=""
-LIB32DIR=""
-UNINSTALL32=""
-
AC_SUBST(ARCH32FLAGS)
-AC_SUBST(INSTALL32)
-AC_SUBST(LIB32CUPS)
-AC_SUBST(LIB32CUPSIMAGE)
-AC_SUBST(LIB32DIR)
-AC_SUBST(UNINSTALL32)
-AC_ARG_ENABLE(64bit, [ --enable-64bit generate 64-bit libraries on 32/64-bit systems, default=no])
AC_ARG_WITH(arch64flags, [ --with-arch64flags="flags"
specifies 64-bit architecture flags])
-
ARCH64FLAGS=""
-INSTALL64=""
-LIB64CUPS=""
-LIB64CUPSIMAGE=""
-LIB64DIR=""
-UNINSTALL64=""
-
AC_SUBST(ARCH64FLAGS)
-AC_SUBST(INSTALL64)
-AC_SUBST(LIB64CUPS)
-AC_SUBST(LIB64CUPSIMAGE)
-AC_SUBST(LIB64DIR)
-AC_SUBST(UNINSTALL64)
dnl Position-Independent Executable support on Linux and *BSD...
AC_ARG_ENABLE(pie, [ --enable-pie use GCC -fPIE option, default=no])
fi
case "$uname" in
+ HP-UX*)
+ if test "x$enable_32bit" = xyes; then
+ # Build 32-bit libraries, 64-bit base...
+ if test -z "$with_arch32flags"; then
+ ARCH32FLAGS="-milp32"
+ else
+ ARCH32FLAGS="$with_arch32flags"
+ fi
+
+ if test -z "$with_archflags"; then
+ if test -z "$with_arch64flags"; then
+ ARCHFLAGS="-mlp64"
+ else
+ ARCHFLAGS="$with_arch64flags"
+ fi
+ fi
+ fi
+
+ if test "x$enable_64bit" = xyes; then
+ # Build 64-bit libraries, 32-bit base...
+ if test -z "$with_arch64flags"; then
+ ARCH64FLAGS="-mlp64"
+ else
+ ARCH64FLAGS="$with_arch64flags"
+ fi
+
+ if test -z "$with_archflags"; then
+ if test -z "$with_arch32flags"; then
+ ARCHFLAGS="-milp32"
+ else
+ ARCHFLAGS="$with_arch32flags"
+ fi
+ fi
+ fi
+ ;;
+
IRIX)
if test "x$enable_32bit" = xyes; then
# Build 32-bit libraries, 64-bit base...
else
ARCH32FLAGS="$with_arch32flags"
fi
- INSTALL32="install32bit"
- LIB32CUPS="32bit/libcups.so.2"
- LIB32CUPSIMAGE="32bit/libcupsimage.so.2"
- LIB32DIR="$prefix/lib32"
- UNINSTALL32="uninstall32bit"
if test -z "$with_archflags"; then
if test -z "$with_arch64flags"; then
else
ARCH64FLAGS="$with_arch64flags"
fi
- INSTALL64="install64bit"
- LIB64CUPS="64bit/libcups.so.2"
- LIB64CUPSIMAGE="64bit/libcupsimage.so.2"
- LIB64DIR="$prefix/lib64"
- UNINSTALL64="uninstall64bit"
if test -z "$with_archflags"; then
if test -z "$with_arch32flags"; then
else
ARCH32FLAGS="$with_arch32flags"
fi
- INSTALL32="install32bit"
- LIB32CUPS="32bit/libcups.so.2"
- LIB32CUPSIMAGE="32bit/libcupsimage.so.2"
- LIB32DIR="$exec_prefix/lib"
- if test -d /usr/lib32; then
- LIB32DIR="${LIB32DIR}32"
- fi
- UNINSTALL32="uninstall32bit"
if test -z "$with_archflags"; then
if test -z "$with_arch64flags"; then
else
ARCH64FLAGS="$with_arch64flags"
fi
- INSTALL64="install64bit"
- LIB64CUPS="64bit/libcups.so.2"
- LIB64CUPSIMAGE="64bit/libcupsimage.so.2"
- LIB64DIR="$exec_prefix/lib"
- if test -d /usr/lib64; then
- LIB64DIR="${LIB64DIR}64"
- fi
- UNINSTALL64="uninstall64bit"
if test -z "$with_archflags"; then
if test -z "$with_arch32flags"; then
else
ARCH32FLAGS="$with_arch32flags"
fi
- INSTALL32="install32bit"
- LIB32CUPS="32bit/libcups.so.2"
- LIB32CUPSIMAGE="32bit/libcupsimage.so.2"
- LIB32DIR="$exec_prefix/lib/32"
- UNINSTALL32="uninstall32bit"
if test -z "$with_archflags"; then
if test -z "$with_arch64flags"; then
else
ARCH64FLAGS="$with_arch64flags"
fi
- INSTALL64="install64bit"
- LIB64CUPS="64bit/libcups.so.2"
- LIB64CUPSIMAGE="64bit/libcupsimage.so.2"
- LIB64DIR="$exec_prefix/lib/64"
- UNINSTALL64="uninstall64bit"
if test -z "$with_archflags"; then
if test -z "$with_arch32flags"; then
else
ARCH32FLAGS="$with_arch32flags"
fi
- INSTALL32="install32bit"
- LIB32CUPS="32bit/libcups.so.2"
- LIB32CUPSIMAGE="32bit/libcupsimage.so.2"
- LIB32DIR="$prefix/lib32"
- UNINSTALL32="uninstall32bit"
if test -z "$with_archflags"; then
if test -z "$with_arch64flags"; then
else
ARCH64FLAGS="$with_arch64flags"
fi
- INSTALL64="install64bit"
- LIB64CUPS="64bit/libcups.so.2"
- LIB64CUPSIMAGE="64bit/libcupsimage.so.2"
- LIB64DIR="$prefix/lib64"
- UNINSTALL64="uninstall64bit"
if test -z "$with_archflags"; then
if test -z "$with_arch32flags"; then
# Compiling on a Solaris system, build 64-bit
# binaries with separate 32-bit libraries...
ARCH32FLAGS="-xarch=generic"
- INSTALL32="install32bit"
- LIB32CUPS="32bit/libcups.so.2"
- LIB32CUPSIMAGE="32bit/libcupsimage.so.2"
- LIB32DIR="$exec_prefix/lib/32"
- UNINSTALL32="uninstall32bit"
if test "x$with_optim" = x; then
# Suppress all of Sun's questionable
if test "x$enable_64bit" = xyes; then
# Build 64-bit libraries...
ARCH64FLAGS="-xarch=generic64"
- INSTALL64="install64bit"
- LIB64CUPS="64bit/libcups.so.2"
- LIB64CUPSIMAGE="64bit/libcupsimage.so.2"
- LIB64DIR="$exec_prefix/lib/64"
- UNINSTALL64="uninstall64bit"
fi
if test "x$with_optim" = x; then
esac
dnl
-dnl End of "$Id: cups-compiler.m4 6049 2006-10-20 15:07:21Z mike $".
+dnl End of "$Id: cups-compiler.m4 6145 2006-12-06 20:10:16Z mike $".
dnl
dnl
-dnl "$Id: cups-defaults.m4 6118 2006-11-16 13:34:44Z mike $"
+dnl "$Id: cups-defaults.m4 6234 2007-02-05 20:25:50Z mike $"
dnl
dnl Default cupsd configuration settings for the Common UNIX Printing System
dnl (CUPS).
dnl
-dnl Copyright 2006 by Easy Software Products, all rights reserved.
+dnl Copyright 2006-2007 by Easy Software Products, all rights reserved.
dnl
dnl These coded instructions, statements, and computer programs are the
dnl property of Easy Software Products and are protected by Federal
dnl
dnl Default langugages...
-AC_ARG_WITH(languages, [ --with-languages set installed languages, default="de es ja pl sv" ],
+AC_ARG_WITH(languages, [ --with-languages set installed languages, default="de es et fr it ja pl sv" ],
if test "x$withval" != xno; then
LANGUAGES="$withval"
fi,
- LANGUAGES="de es et it ja pl sv")
+ LANGUAGES="de es et fr it ja pl sv")
AC_SUBST(LANGUAGES)
dnl Default ConfigFilePerm
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_PRINTCAP, "$CUPS_DEFAULT_PRINTCAP")
dnl
-dnl End of "$Id: cups-defaults.m4 6118 2006-11-16 13:34:44Z mike $".
+dnl End of "$Id: cups-defaults.m4 6234 2007-02-05 20:25:50Z mike $".
dnl
dnl
-dnl "$Id: cups-opsys.m4 5466 2006-04-26 19:52:27Z mike $"
+dnl "$Id: cups-opsys.m4 6145 2006-12-06 20:10:16Z mike $"
dnl
dnl Operating system stuff for the Common UNIX Printing System (CUPS).
dnl
dnl WWW: http://www.cups.org
dnl
-dnl Get the operating system and version number...
+dnl Get the operating system, version number, and architecture...
uname=`uname`
uversion=`uname -r | sed -e '1,$s/^[[^0-9]]*\([[0-9]]*\)\.\([[0-9]]*\).*/\1\2/'`
+uarch=`uname -m`
case "$uname" in
GNU* | GNU/*)
esac
dnl
-dnl "$Id: cups-opsys.m4 5466 2006-04-26 19:52:27Z mike $"
+dnl "$Id: cups-opsys.m4 6145 2006-12-06 20:10:16Z mike $"
dnl
dnl
-dnl "$Id: cups-sharedlibs.m4 5582 2006-05-24 01:00:35Z mike $"
+dnl "$Id: cups-sharedlibs.m4 6145 2006-12-06 20:10:16Z mike $"
dnl
dnl Shared library support for the Common UNIX Printing System (CUPS).
dnl
DSOFLAGS="$DSOFLAGS -Wl,-h,\`basename \$@\` -G \$(OPTIM)"
;;
HP-UX*)
- LIBCUPS="libcups.sl.2"
- LIBCUPSIMAGE="libcupsimage.sl.2"
- DSO="\$(LD)"
- DSOFLAGS="$DSOFLAGS -b -z +h \`basename \$@\`"
+ case "$uarch" in
+ ia64)
+ LIBCUPS="libcups.so.2"
+ LIBCUPSIMAGE="libcupsimage.so.2"
+ DSO="\$(CC)"
+ DSOFLAGS="$DSOFLAGS -Wl,-b,-z,+h,\`basename \$@\`"
+ ;;
+ *)
+ LIBCUPS="libcups.sl.2"
+ LIBCUPSIMAGE="libcupsimage.sl.2"
+ DSO="\$(LD)"
+ DSOFLAGS="$DSOFLAGS -b -z +h \`basename \$@\`"
+ ;;
+ esac
;;
IRIX)
LIBCUPS="libcups.so.2"
case $uname in
HP-UX*)
# HP-UX needs the path, even for /usr/lib...
- DSOFLAGS="+s +b $libdir $DSOFLAGS"
- DSO32FLAGS="+s +b $LIB32DIR $DSO32FLAGS"
- DSO64FLAGS="+s +b $LIB64DIR $DSO64FLAGS"
+ case "$uarch" in
+ ia64)
+ DSOFLAGS="-Wl,+s,+b,$libdir $DSOFLAGS"
+ DSO32FLAGS="-Wl,+s,+b,$LIB32DIR $DSO32FLAGS"
+ DSO64FLAGS="-Wl,+s,+b,$LIB64DIR $DSO64FLAGS"
+ ;;
+ *)
+ DSOFLAGS="+s +b $libdir $DSOFLAGS"
+ DSO32FLAGS="+s +b $LIB32DIR $DSO32FLAGS"
+ DSO64FLAGS="+s +b $LIB64DIR $DSO64FLAGS"
+ ;;
+ esac
LDFLAGS="$LDFLAGS -Wl,+s,+b,$libdir"
EXPORT_LDFLAGS="-Wl,+s,+b,$libdir"
;;
AC_SUBST(EXPORT_LDFLAGS)
dnl
-dnl End of "$Id: cups-sharedlibs.m4 5582 2006-05-24 01:00:35Z mike $".
+dnl End of "$Id: cups-sharedlibs.m4 6145 2006-12-06 20:10:16Z mike $".
dnl
dnl
-dnl "$Id: cups-ssl.m4 5630 2006-06-05 18:42:53Z mike $"
+dnl "$Id: cups-ssl.m4 6238 2007-02-06 16:04:25Z mike $"
dnl
dnl OpenSSL/GNUTLS stuff for the Common UNIX Printing System (CUPS).
dnl
-dnl Copyright 1997-2006 by Easy Software Products, all rights reserved.
+dnl Copyright 1997-2007 by Easy Software Products, all rights reserved.
dnl
dnl These coded instructions, statements, and computer programs are the
dnl property of Easy Software Products and are protected by Federal
dnl Look for CDSA...
if test "x${SSLLIBS}" = "x" -a "x${enable_cdsassl}" != "xno"; then
if test $uname = Darwin; then
- AC_CHECK_HEADER(Security/SecureTransport.h,
- [SSLLIBS="-framework CoreFoundation -framework Security"
- # MacOS X doesn't (yet) come with pre-installed encryption
- # certificates for CUPS, so don't enable encryption on
- # /admin just yet...
- #ENCRYPTION_REQUIRED=" Encryption Required"
- AC_CHECK_HEADER(Security/SecBasePriv.h,AC_DEFINE(HAVE_SECBASEPRIV_H))
- AC_DEFINE(HAVE_SSL)
- AC_DEFINE(HAVE_CDSASSL)])
+ AC_CHECK_HEADER(Security/SecureTransport.h, [
+ SSLLIBS="-framework CoreFoundation -framework Security"
+ # MacOS X doesn't (yet) come with pre-installed encryption
+ # certificates for CUPS, so don't enable encryption on
+ # /admin just yet...
+ #ENCRYPTION_REQUIRED=" Encryption Required"
+ AC_DEFINE(HAVE_SSL)
+ AC_DEFINE(HAVE_CDSASSL)
+
+ dnl Check for the various security headers...
+ AC_CHECK_HEADER(Security/SecPolicy.h,
+ AC_DEFINE(HAVE_SECPOLICY_H))
+ AC_CHECK_HEADER(Security/SecPolicyPriv.h,
+ AC_DEFINE(HAVE_SECPOLICYPRIV_H))
+ AC_CHECK_HEADER(Security/SecBasePriv.h,
+ AC_DEFINE(HAVE_SECBASEPRIV_H))
+ AC_CHECK_HEADER(Security/SecIdentitySearchPriv.h,
+ AC_DEFINE(HAVE_SECIDENTITYSEARCHPRIV_H))
+
+ dnl Check for SecIdentitySearchCreateWithPolicy...
+ AC_MSG_CHECKING(for SecIdentitySearchCreateWithPolicy)
+ if test $uversion -ge 80; then
+ AC_DEFINE(HAVE_SECIDENTITYSEARCHCREATEWITHPOLICY)
+ AC_MSG_RESULT(yes)
+ else
+ AC_MSG_RESULT(no)
+ fi])
fi
fi
dnl
-dnl End of "$Id: cups-ssl.m4 5630 2006-06-05 18:42:53Z mike $".
+dnl End of "$Id: cups-ssl.m4 6238 2007-02-06 16:04:25Z mike $".
dnl
/*
- * "$Id: config.h.in 6073 2006-11-02 20:01:54Z mike $"
+ * "$Id: config.h.in 6238 2007-02-06 16:04:25Z mike $"
*
* Configuration file for the Common UNIX Printing System (CUPS).
*
- * Copyright 1997-2006 by Easy Software Products.
+ * Copyright 1997-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
/*
- * Do we have <Security/SecBasePriv.h>?
+ * What Security framework headers do we have?
*/
+#undef HAVE_SECPOLICY_H
+#undef HAVE_SECPOLICYPRIV_H
#undef HAVE_SECBASEPRIV_H
+#undef HAVE_SECIDENTITYSEARCHPRIV_H
+
+
+/*
+ * Do we have the SecIdentitySearchCreateWithPolicy function?
+ */
+
+#undef HAVE_SECIDENTITYSEARCHCREATEWITHPOLICY
/*
#endif /* !_CUPS_CONFIG_H_ */
/*
- * End of "$Id: config.h.in 6073 2006-11-02 20:01:54Z mike $".
+ * End of "$Id: config.h.in 6238 2007-02-06 16:04:25Z mike $".
*/
dnl
-dnl "$Id: configure.in 5804 2006-08-04 16:51:58Z mike $"
+dnl "$Id: configure.in 6145 2006-12-06 20:10:16Z mike $"
dnl
dnl Configuration script for the Common UNIX Printing System (CUPS).
dnl
sinclude(config-scripts/cups-directories.m4)
sinclude(config-scripts/cups-manpages.m4)
+sinclude(config-scripts/cups-3264.m4)
sinclude(config-scripts/cups-sharedlibs.m4)
sinclude(config-scripts/cups-libtool.m4)
sinclude(config-scripts/cups-compiler.m4)
chmod +x cups-config
dnl
-dnl End of "$Id: configure.in 5804 2006-08-04 16:51:58Z mike $".
+dnl End of "$Id: configure.in 6145 2006-12-06 20:10:16Z mike $".
dnl
/*
- * "$Id: adminutil.c 5970 2006-09-19 20:11:08Z mike $"
+ * "$Id: adminutil.c 6262 2007-02-11 16:59:33Z mike $"
*
* Administration utility API definitions for the Common UNIX Printing
* System (CUPS).
* MANY OF THE FUNCTIONS IN THIS HEADER ARE PRIVATE AND SUBJECT TO
* CHANGE AT ANY TIME. USE AT YOUR OWN RISK.
*
- * Copyright 2001-2006 by Easy Software Products.
+ * Copyright 2001-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
#include "debug.h"
#include <errno.h>
#include <fcntl.h>
-#include <unistd.h>
#include <sys/stat.h>
-#include <sys/wait.h>
+#ifdef WIN32
+#else
+# include <unistd.h>
+# include <sys/wait.h>
+#endif /* WIN32 */
/*
if ((ptr = strchr(line, ':')) == NULL)
{
snprintf(line, sizeof(line),
- _cupsLangString(language, _("Missing value on line %d!\n")),
+ _cupsLangString(language, _("Missing value on line %d!")),
linenum);
_cupsSetError(IPP_DOCUMENT_FORMAT_ERROR, line);
{
snprintf(line, sizeof(line),
_cupsLangString(language,
- _("Missing double quote on line %d!\n")),
+ _("Missing double quote on line %d!")),
linenum);
_cupsSetError(IPP_DOCUMENT_FORMAT_ERROR, line);
{
snprintf(line, sizeof(line),
_cupsLangString(language,
- _("Bad option + choice on line %d!\n")),
+ _("Bad option + choice on line %d!")),
linenum);
_cupsSetError(IPP_DOCUMENT_FORMAT_ERROR, line);
cupsFileClose(srcfp);
unlink(src);
+ if (linenum == 0)
+ {
+ snprintf(line, sizeof(line),
+ _cupsLangString(language, _("Empty PPD file!")),
+ linenum);
+ _cupsSetError(IPP_DOCUMENT_FORMAT_ERROR, line);
+
+ cupsFileClose(dstfp);
+ unlink(buffer);
+
+ *buffer = '\0';
+
+ return (NULL);
+ }
+
/*
* Now add the CUPS-specific attributes and options...
*/
{
snprintf(message, sizeof(message),
_cupsLangString(language,
- _("Unable to set Windows printer driver (%d)!\n")),
+ _("Unable to set Windows printer driver (%d)!")),
status);
_cupsSetError(IPP_INTERNAL_ERROR, message);
wrote_root_location; /* Wrote the / location? */
int indent; /* Indentation */
int cupsd_num_settings; /* New number of settings */
+ int old_remote_printers, /* Show remote printers */
+ old_share_printers, /* Share local printers */
+ old_remote_admin, /* Remote administration allowed? */
+ old_user_cancel_any, /* Cancel-job policy set? */
+ old_debug_logging; /* LogLevel debug set? */
cups_option_t *cupsd_settings, /* New settings */
*setting; /* Current setting */
_cups_globals_t *cg = _cupsGlobals(); /* Global data */
else
return (0);
+ /*
+ * Get current settings...
+ */
+
+ if (!_cupsAdminGetServerSettings(http, &cupsd_num_settings,
+ &cupsd_settings))
+ return (0);
+
+ if ((val = cupsGetOption(CUPS_SERVER_DEBUG_LOGGING, cupsd_num_settings,
+ cupsd_settings)) != NULL)
+ old_debug_logging = atoi(val);
+ else
+ old_debug_logging = 0;
+
+ if ((val = cupsGetOption(CUPS_SERVER_REMOTE_ADMIN, cupsd_num_settings,
+ cupsd_settings)) != NULL)
+ old_remote_admin = atoi(val);
+ else
+ old_remote_admin = 0;
+
+ if ((val = cupsGetOption(CUPS_SERVER_REMOTE_PRINTERS, cupsd_num_settings,
+ cupsd_settings)) != NULL)
+ old_remote_printers = atoi(val);
+ else
+ old_remote_printers = 1;
+
+ if ((val = cupsGetOption(CUPS_SERVER_SHARE_PRINTERS, cupsd_num_settings,
+ cupsd_settings)) != NULL)
+ old_share_printers = atoi(val);
+ else
+ old_share_printers = 0;
+
+ if ((val = cupsGetOption(CUPS_SERVER_USER_CANCEL_ANY, cupsd_num_settings,
+ cupsd_settings)) != NULL)
+ old_user_cancel_any = atoi(val);
+ else
+ old_user_cancel_any = 0;
+
+ cupsFreeOptions(cupsd_num_settings, cupsd_settings);
+
/*
* Get basic settings...
*/
if ((val = cupsGetOption(CUPS_SERVER_DEBUG_LOGGING, num_settings,
settings)) != NULL)
+ {
debug_logging = atoi(val);
+
+ if (debug_logging == old_debug_logging)
+ {
+ /*
+ * No change to this setting...
+ */
+
+ debug_logging = -1;
+ }
+ }
else
- debug_logging = 0;
+ debug_logging = -1;
if ((val = cupsGetOption(CUPS_SERVER_REMOTE_ADMIN, num_settings,
settings)) != NULL)
+ {
remote_admin = atoi(val);
+
+ if (remote_admin == old_remote_admin)
+ {
+ /*
+ * No change to this setting...
+ */
+
+ remote_admin = -1;
+ }
+ }
else
- remote_admin = 0;
+ remote_admin = -1;
if ((val = cupsGetOption(CUPS_SERVER_REMOTE_PRINTERS, num_settings,
settings)) != NULL)
+ {
remote_printers = atoi(val);
+
+ if (remote_printers == old_remote_printers)
+ {
+ /*
+ * No change to this setting...
+ */
+
+ remote_printers = -1;
+ }
+ }
else
- remote_printers = 1;
+ remote_printers = -1;
if ((val = cupsGetOption(CUPS_SERVER_SHARE_PRINTERS, num_settings,
settings)) != NULL)
+ {
share_printers = atoi(val);
+
+ if (share_printers == old_share_printers)
+ {
+ /*
+ * No change to this setting...
+ */
+
+ share_printers = -1;
+ }
+ }
else
- share_printers = 0;
+ share_printers = -1;
if ((val = cupsGetOption(CUPS_SERVER_USER_CANCEL_ANY, num_settings,
settings)) != NULL)
+ {
user_cancel_any = atoi(val);
+
+ if (user_cancel_any == old_user_cancel_any)
+ {
+ /*
+ * No change to this setting...
+ */
+
+ user_cancel_any = -1;
+ }
+ }
else
- user_cancel_any = 0;
+ user_cancel_any = -1;
/*
* Create a temporary file for the new cupsd.conf file...
while (cupsFileGetConf(cupsd, line, sizeof(line), &value, &linenum))
{
- if (!strcasecmp(line, "Port") || !strcasecmp(line, "Listen"))
+ if ((!strcasecmp(line, "Port") || !strcasecmp(line, "Listen")) &&
+ (share_printers >= 0 || remote_admin >= 0))
{
if (!wrote_port_listen)
{
wrote_port_listen = 1;
- if (share_printers || remote_admin)
+ if (share_printers > 0 || remote_admin > 0)
{
cupsFilePuts(temp, "# Allow remote access\n");
cupsFilePrintf(temp, "Port %d\n", server_port);
cupsFilePuts(temp, "Listen " CUPS_DEFAULT_DOMAINSOCKET "\n");
#endif /* CUPS_DEFAULT_DOMAINSOCKET */
}
- else if (value && value[0] == '/' &&
- strcmp(CUPS_DEFAULT_DOMAINSOCKET, value))
+ else if (value && value[0] == '/'
+#ifdef CUPS_DEFAULT_DOMAINSOCKET
+ && strcmp(CUPS_DEFAULT_DOMAINSOCKET, value)
+#endif /* CUPS_DEFAULT_DOMAINSOCKET */
+ )
cupsFilePrintf(temp, "Listen %s\n", value);
}
- else if (!strcasecmp(line, "Browsing") ||
- !strcasecmp(line, "BrowseAddress") ||
- !strcasecmp(line, "BrowseAllow") ||
- !strcasecmp(line, "BrowseDeny") ||
- !strcasecmp(line, "BrowseOrder"))
+ else if ((!strcasecmp(line, "Browsing") ||
+ !strcasecmp(line, "BrowseAddress") ||
+ !strcasecmp(line, "BrowseAllow") ||
+ !strcasecmp(line, "BrowseDeny") ||
+ !strcasecmp(line, "BrowseOrder")) &&
+ (remote_printers >= 0 || share_printers >= 0))
{
if (!wrote_browsing)
{
wrote_browsing = 1;
- if (remote_printers || share_printers)
+ if (remote_printers > 0 || share_printers > 0)
{
- if (remote_printers && share_printers)
+ if (remote_printers > 0 && share_printers > 0)
cupsFilePuts(temp,
"# Enable printer sharing and shared printers.\n");
- else if (remote_printers)
+ else if (remote_printers > 0)
cupsFilePuts(temp,
"# Show shared printers on the local network.\n");
else
cupsFilePuts(temp, "Browsing On\n");
cupsFilePuts(temp, "BrowseOrder allow,deny\n");
- if (remote_printers)
+ if (remote_printers > 0)
cupsFilePuts(temp, "BrowseAllow @LOCAL\n");
- if (share_printers)
+ if (share_printers > 0)
cupsFilePuts(temp, "BrowseAddress @LOCAL\n");
}
else
}
}
}
- else if (!strcasecmp(line, "LogLevel"))
+ else if (!strcasecmp(line, "LogLevel") && debug_logging >= 0)
{
wrote_loglevel = 1;
{
in_location = 0;
indent -= 2;
- if (in_admin_location)
+ if (in_admin_location && remote_admin >= 0)
{
wrote_admin_location = 1;
if (remote_admin)
cupsFilePuts(temp, " # Allow remote administration...\n");
- else
+ else if (remote_admin == 0)
cupsFilePuts(temp, " # Restrict access to the admin pages...\n");
cupsFilePuts(temp, " Order allow,deny\n");
else
cupsFilePuts(temp, " Allow localhost\n");
}
- else if (in_conf_location)
+ else if (in_conf_location && remote_admin >= 0)
{
wrote_conf_location = 1;
else
cupsFilePuts(temp, " Allow localhost\n");
}
- else if (in_root_location)
+ else if (in_root_location && (remote_admin >= 0 || share_printers >= 0))
{
wrote_root_location = 1;
- if (remote_admin && share_printers)
+ if (remote_admin > 0 && share_printers > 0)
cupsFilePuts(temp, " # Allow shared printing and remote "
"administration...\n");
- else if (remote_admin)
+ else if (remote_admin > 0)
cupsFilePuts(temp, " # Allow remote administration...\n");
- else if (share_printers)
+ else if (share_printers > 0)
cupsFilePuts(temp, " # Allow shared printing...\n");
else
cupsFilePuts(temp, " # Restrict access to the server...\n");
cupsFilePuts(temp, " Order allow,deny\n");
- if (remote_admin || share_printers)
+ if (remote_admin > 0 || share_printers > 0)
cupsFilePuts(temp, " Allow @LOCAL\n");
else
cupsFilePuts(temp, " Allow localhost\n");
indent += 2;
- if (!strcasecmp(value, "cancel-job"))
+ if (!strcasecmp(value, "cancel-job") && user_cancel_any >= 0)
{
/*
* Don't write anything for this limit section...
if (*valptr)
*valptr++ = '\0';
- if (!strcasecmp(value, "cancel-job"))
+ if (!strcasecmp(value, "cancel-job") && user_cancel_any >= 0)
{
/*
* Write everything except for this definition...
in_cancel_job = 0;
}
- else if ((in_admin_location || in_conf_location || in_root_location) &&
+ else if ((((in_admin_location || in_conf_location || in_root_location) &&
+ remote_admin >= 0) ||
+ (in_root_location && share_printers >= 0)) &&
(!strcasecmp(line, "Allow") || !strcasecmp(line, "Deny") ||
!strcasecmp(line, "Order")))
continue;
* Write any missing info...
*/
- if (!wrote_browsing)
+ if (!wrote_browsing && (remote_printers >= 0 || share_printers >= 0))
{
- if (remote_printers || share_printers)
+ if (remote_printers > 0 || share_printers > 0)
{
- if (remote_printers && share_printers)
+ if (remote_printers > 0 && share_printers > 0)
cupsFilePuts(temp, "# Enable printer sharing and shared printers.\n");
- else if (remote_printers)
+ else if (remote_printers > 0)
cupsFilePuts(temp, "# Show shared printers on the local network.\n");
else
cupsFilePuts(temp, "# Share local printers on the local network.\n");
cupsFilePuts(temp, "Browsing On\n");
cupsFilePuts(temp, "BrowseOrder allow,deny\n");
- if (remote_printers)
+ if (remote_printers > 0)
cupsFilePuts(temp, "BrowseAllow @LOCAL\n");
- if (share_printers)
+ if (share_printers > 0)
cupsFilePuts(temp, "BrowseAddress @LOCAL\n");
}
else
}
}
- if (!wrote_loglevel)
+ if (!wrote_loglevel && debug_logging >= 0)
{
if (debug_logging)
{
}
}
- if (!wrote_port_listen)
+ if (!wrote_port_listen && (share_printers >= 0 || remote_admin >= 0))
{
- if (share_printers || remote_admin)
+ if (share_printers > 0 || remote_admin > 0)
{
cupsFilePuts(temp, "# Allow remote access\n");
cupsFilePrintf(temp, "Port %d\n", ippPort());
#endif /* CUPS_DEFAULT_DOMAINSOCKET */
}
- if (!wrote_root_location)
+ if (!wrote_root_location && (remote_admin >= 0 || share_printers >= 0))
{
- if (remote_admin && share_printers)
+ if (remote_admin > 0 && share_printers > 0)
cupsFilePuts(temp,
"# Allow shared printing and remote administration...\n");
- else if (remote_admin)
+ else if (remote_admin > 0)
cupsFilePuts(temp, "# Allow remote administration...\n");
- else if (share_printers)
+ else if (share_printers > 0)
cupsFilePuts(temp, "# Allow shared printing...\n");
else
cupsFilePuts(temp, "# Restrict access to the server...\n");
cupsFilePuts(temp, "<Location />\n"
" Order allow,deny\n");
- if (remote_admin || share_printers)
+ if (remote_admin > 0 || share_printers > 0)
cupsFilePuts(temp, " Allow @LOCAL\n");
else
cupsFilePuts(temp, " Allow localhost\n");
cupsFilePuts(temp, "</Location>\n");
}
- if (!wrote_admin_location)
+ if (!wrote_admin_location && remote_admin >= 0)
{
if (remote_admin)
cupsFilePuts(temp, "# Allow remote administration...\n");
cupsFilePuts(temp, "</Location>\n");
}
- if (!wrote_conf_location)
+ if (!wrote_conf_location && remote_admin >= 0)
{
if (remote_admin)
cupsFilePuts(temp,
cupsFilePuts(temp, "</Location>\n");
}
- if (!wrote_policy)
+ if (!wrote_policy && user_cancel_any >= 0)
{
cupsFilePuts(temp, "<Policy default>\n"
" # Job-related operations must be done by the owner "
* Updated OK, add the basic settings...
*/
- cupsd_num_settings = cupsAddOption(CUPS_SERVER_DEBUG_LOGGING,
- debug_logging ? "1" : "0",
- cupsd_num_settings, &cupsd_settings);
- cupsd_num_settings = cupsAddOption(CUPS_SERVER_REMOTE_ADMIN,
- remote_admin ? "1" : "0",
- cupsd_num_settings, &cupsd_settings);
- cupsd_num_settings = cupsAddOption(CUPS_SERVER_REMOTE_PRINTERS,
- remote_printers ? "1" : "0",
- cupsd_num_settings, &cupsd_settings);
- cupsd_num_settings = cupsAddOption(CUPS_SERVER_SHARE_PRINTERS,
- share_printers ? "1" : "0",
- cupsd_num_settings, &cupsd_settings);
- cupsd_num_settings = cupsAddOption(CUPS_SERVER_USER_CANCEL_ANY,
- user_cancel_any ? "1" : "0",
- cupsd_num_settings, &cupsd_settings);
+ if (debug_logging >= 0)
+ cupsd_num_settings = cupsAddOption(CUPS_SERVER_DEBUG_LOGGING,
+ debug_logging ? "1" : "0",
+ cupsd_num_settings, &cupsd_settings);
+ else
+ cupsd_num_settings = cupsAddOption(CUPS_SERVER_DEBUG_LOGGING,
+ old_debug_logging ? "1" : "0",
+ cupsd_num_settings, &cupsd_settings);
+
+ if (remote_admin >= 0)
+ cupsd_num_settings = cupsAddOption(CUPS_SERVER_REMOTE_ADMIN,
+ remote_admin ? "1" : "0",
+ cupsd_num_settings, &cupsd_settings);
+ else
+ cupsd_num_settings = cupsAddOption(CUPS_SERVER_REMOTE_ADMIN,
+ old_remote_admin ? "1" : "0",
+ cupsd_num_settings, &cupsd_settings);
+
+ if (remote_printers >= 0)
+ cupsd_num_settings = cupsAddOption(CUPS_SERVER_REMOTE_PRINTERS,
+ remote_printers ? "1" : "0",
+ cupsd_num_settings, &cupsd_settings);
+ else
+ cupsd_num_settings = cupsAddOption(CUPS_SERVER_REMOTE_PRINTERS,
+ old_remote_printers ? "1" : "0",
+ cupsd_num_settings, &cupsd_settings);
+
+ if (share_printers >= 0)
+ cupsd_num_settings = cupsAddOption(CUPS_SERVER_SHARE_PRINTERS,
+ share_printers ? "1" : "0",
+ cupsd_num_settings, &cupsd_settings);
+ else
+ cupsd_num_settings = cupsAddOption(CUPS_SERVER_SHARE_PRINTERS,
+ old_share_printers ? "1" : "0",
+ cupsd_num_settings, &cupsd_settings);
+
+ if (user_cancel_any >= 0)
+ cupsd_num_settings = cupsAddOption(CUPS_SERVER_USER_CANCEL_ANY,
+ user_cancel_any ? "1" : "0",
+ cupsd_num_settings, &cupsd_settings);
+ else
+ cupsd_num_settings = cupsAddOption(CUPS_SERVER_USER_CANCEL_ANY,
+ old_user_cancel_any ? "1" : "0",
+ cupsd_num_settings, &cupsd_settings);
/*
* Save the new values...
const char *authfile, /* I - Samba authentication file */
FILE *logfile) /* I - Optional log file */
{
+#ifdef WIN32
+ return (1); /* Always fail on Windows... */
+
+#else
int status; /* Status of command */
int pid; /* Process ID of child */
return (WEXITSTATUS(status));
else
return (-WTERMSIG(status));
+#endif /* WIN32 */
}
int *remote) /* O - Remote file? */
{
int fd; /* Temporary file descriptor */
+#ifndef WIN32
struct stat info; /* cupsd.conf file information */
+#endif /* WIN32 */
http_status_t status; /* Status of getting cupsd.conf */
char host[HTTP_MAX_HOST]; /* Hostname for connection */
snprintf(name, namesize, "%s/cupsd.conf", cg->cups_serverroot);
*remote = 0;
+#ifndef WIN32
if (!strcasecmp(host, "localhost") && !access(name, R_OK))
{
/*
status = HTTP_OK;
}
else
+#endif /* !WIN32 */
{
/*
* Read cupsd.conf via a HTTP GET request...
/*
- * End of "$Id: adminutil.c 5970 2006-09-19 20:11:08Z mike $".
+ * End of "$Id: adminutil.c 6262 2007-02-11 16:59:33Z mike $".
*/
/*
- * "$Id: auth.c 5961 2006-09-16 19:08:36Z mike $"
+ * "$Id: auth.c 6191 2007-01-10 16:48:37Z mike $"
*
* Authentication functions for the Common UNIX Printing System (CUPS).
*
- * Copyright 1997-2006 by Easy Software Products.
+ * Copyright 1997-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
realm[HTTP_MAX_VALUE], /* realm="xyz" string */
nonce[HTTP_MAX_VALUE], /* nonce="xyz" string */
encode[512]; /* Encoded username:password */
+ _cups_globals_t *cg; /* Global data */
DEBUG_printf(("cupsDoAuthentication(http=%p, method=\"%s\", resource=\"%s\")\n",
* Nope - get a new password from the user...
*/
- snprintf(prompt, sizeof(prompt), _("Password for %s on %s? "), cupsUser(),
- http->hostname[0] == '/' ? "localhost" : http->hostname);
+ cg = _cupsGlobals();
+
+ if (!cg->lang_default)
+ cg->lang_default = cupsLangDefault();
+
+ snprintf(prompt, sizeof(prompt),
+ _cupsLangString(cg->lang_default, _("Password for %s on %s? ")),
+ cupsUser(),
+ http->hostname[0] == '/' ? "localhost" : http->hostname);
http->digest_tries = strncasecmp(http->fields[HTTP_FIELD_WWW_AUTHENTICATE],
"Digest", 5) != 0;
*/
httpEncode64_2(encode, sizeof(encode), http->userpass,
- strlen(http->userpass));
+ (int)strlen(http->userpass));
snprintf(http->authstring, sizeof(http->authstring), "Basic %s", encode);
}
else
/*
- * End of "$Id: auth.c 5961 2006-09-16 19:08:36Z mike $".
+ * End of "$Id: auth.c 6191 2007-01-10 16:48:37Z mike $".
*/
/*
- * "$Id: backchannel.c 5551 2006-05-19 20:20:32Z mike $"
+ * "$Id: backchannel.c 6191 2007-01-10 16:48:37Z mike $"
*
* Backchannel functions for the Common UNIX Printing System (CUPS).
*
- * Copyright 1997-2006 by Easy Software Products.
+ * Copyright 1997-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
* Read bytes from the pipe...
*/
+#ifdef WIN32
+ return ((ssize_t)read(3, buffer, (unsigned)bytes));
+#else
return (read(3, buffer, bytes));
+#endif /* WIN32 */
}
* Write bytes to the pipe...
*/
+#ifdef WIN32
+ count = (ssize_t)write(3, buffer, (unsigned)(bytes - total));
+#else
count = write(3, buffer, bytes - total);
+#endif /* WIN32 */
if (count < 0)
{
}
}
- return (bytes);
+ return ((ssize_t)bytes);
}
/*
- * End of "$Id: backchannel.c 5551 2006-05-19 20:20:32Z mike $".
+ * End of "$Id: backchannel.c 6191 2007-01-10 16:48:37Z mike $".
*/
/*
- * "$Id: cups.h 6092 2006-11-14 16:36:36Z mike $"
+ * "$Id: cups.h 6188 2007-01-10 16:23:06Z mike $"
*
* API definitions for the Common UNIX Printing System (CUPS).
*
- * Copyright 1997-2006 by Easy Software Products.
+ * Copyright 1997-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
* Include necessary headers...
*/
+# include <sys/types.h>
+# if defined(WIN32) && !defined(__CUPS_SSIZE_T_DEFINED)
+# define __CUPS_SSIZE_T_DEFINED
+/* Windows does not support the ssize_t type, so map it to off_t... */
+typedef off_t ssize_t; /* @private@ */
+# endif /* WIN32 && !__CUPS_SSIZE_T_DEFINED */
+
# include "ipp.h"
# include "ppd.h"
# include "language.h"
* Constants...
*/
-# define CUPS_VERSION 1.0207
+# define CUPS_VERSION 1.0208
# define CUPS_VERSION_MAJOR 1
# define CUPS_VERSION_MINOR 2
-# define CUPS_VERSION_PATCH 7
+# define CUPS_VERSION_PATCH 8
# define CUPS_DATE_ANY -1
#endif /* !_CUPS_CUPS_H_ */
/*
- * End of "$Id: cups.h 6092 2006-11-14 16:36:36Z mike $".
+ * End of "$Id: cups.h 6188 2007-01-10 16:23:06Z mike $".
*/
/*
- * "$Id: dest.c 6044 2006-10-17 20:32:59Z mike $"
+ * "$Id: dest.c 6191 2007-01-10 16:48:37Z mike $"
*
* User-defined destination (and option) support for the Common UNIX
* Printing System (CUPS).
*
- * Copyright 1997-2006 by Easy Software Products.
+ * Copyright 1997-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
cups_option_t *option; /* Current option */
_ipp_option_t *match; /* Matching attribute for option */
FILE *fp; /* File pointer */
+#ifndef WIN32
const char *home; /* HOME environment variable */
+#endif /* WIN32 */
char filename[1024]; /* lpoptions file */
int num_temps; /* Number of temporary destinations */
cups_dest_t *temps, /* Temporary destinations */
/*
- * End of "$Id: dest.c 6044 2006-10-17 20:32:59Z mike $".
+ * End of "$Id: dest.c 6191 2007-01-10 16:48:37Z mike $".
*/
/*
- * "$Id: emit.c 5934 2006-09-11 14:54:40Z mike $"
+ * "$Id: emit.c 6191 2007-01-10 16:48:37Z mike $"
*
* PPD code emission routines for the Common UNIX Printing System (CUPS).
*
- * Copyright 1997-2006 by Easy Software Products, all rights reserved.
+ * Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
while (buflength > 0)
{
+#ifdef WIN32
+ if ((bytes = (ssize_t)write(fd, bufptr, (unsigned)buflength)) < 0)
+#else
if ((bytes = write(fd, bufptr, buflength)) < 0)
+#endif /* WIN32 */
{
if (errno == EAGAIN || errno == EINTR)
continue;
else
pos = 4;
- values[pos] = orientation;
+ values[pos] = (float)orientation;
for (pos = 0; pos < 5; pos ++)
{
if (choices[i]->code && choices[i]->code[0])
{
- j = strlen(choices[i]->code);
+ j = (int)strlen(choices[i]->code);
memcpy(bufptr, choices[i]->code, j);
bufptr += j;
/*
- * End of "$Id: emit.c 5934 2006-09-11 14:54:40Z mike $".
+ * End of "$Id: emit.c 6191 2007-01-10 16:48:37Z mike $".
*/
/*
- * "$Id: encode.c 5753 2006-07-18 19:53:24Z mike $"
+ * "$Id: encode.c 6266 2007-02-11 21:20:48Z mike $"
*
* Option encoding routines for the Common UNIX Printing System (CUPS).
*
- * Copyright 1997-2006 by Easy Software Products.
+ * Copyright 1997-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
{ "natural-scaling-default", IPP_TAG_INTEGER, IPP_TAG_PRINTER },
{ "notify-charset", IPP_TAG_CHARSET, IPP_TAG_SUBSCRIPTION },
{ "notify-events", IPP_TAG_KEYWORD, IPP_TAG_SUBSCRIPTION },
- { "notify-lease-time", IPP_TAG_INTEGER, IPP_TAG_SUBSCRIPTION },
+ { "notify-lease-duration", IPP_TAG_INTEGER, IPP_TAG_SUBSCRIPTION },
{ "notify-natural-language", IPP_TAG_LANGUAGE, IPP_TAG_SUBSCRIPTION },
{ "notify-pull-method", IPP_TAG_KEYWORD, IPP_TAG_SUBSCRIPTION },
{ "notify-recipient", IPP_TAG_URI, IPP_TAG_SUBSCRIPTION },
int namelen; /* Length of name */
- namelen = strlen(option->name);
+ namelen = (int)strlen(option->name);
if (namelen < 9 || strcmp(option->name + namelen - 8, "-default"))
{
* octet-string
*/
- attr->values[j].unknown.length = strlen(val);
+ attr->values[j].unknown.length = (int)strlen(val);
attr->values[j].unknown.data = _cupsStrAlloc(val);
DEBUG_printf(("cupsEncodeOptions2: Added octet-string value \"%s\"...\n",
/*
- * End of "$Id: encode.c 5753 2006-07-18 19:53:24Z mike $".
+ * End of "$Id: encode.c 6266 2007-02-11 21:20:48Z mike $".
*/
/*
- * "$Id: file.c 5993 2006-09-29 12:57:31Z mike $"
+ * "$Id: file.c 6193 2007-01-10 19:27:04Z mike $"
*
* File functions for the Common UNIX Printing System (CUPS).
*
* our own file functions allows us to provide transparent support of
* gzip'd print files, PPD files, etc.
*
- * Copyright 1997-2006 by Easy Software Products, all rights reserved.
+ * Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
#endif /* !O_LARGEFILE */
+/*
+ * Some operating systems don't define O_BINARY, which is used by Microsoft
+ * and IBM to flag binary files...
+ */
+
+#ifndef O_BINARY
+# define O_BINARY 0
+#endif /* !O_BINARY */
+
+
/*
* Types and structures...
*/
while (*path)
{
+#ifdef WIN32
+ if (*path == ';' || (*path == ':' && ((bufptr - buffer) > 1 || !isalpha(buffer[0] & 255))))
+#else
if (*path == ';' || *path == ':')
+#endif /* WIN32 */
{
if (bufptr > buffer && bufptr[-1] != '/' && bufptr < bufend)
*bufptr++ = '/';
#else
if (!access(buffer, executable ? X_OK : 0))
#endif /* WIN32 */
+ {
+ DEBUG_printf(("cupsFileFind: Returning \"%s\"\n", buffer));
return (buffer);
+ }
bufptr = buffer;
}
strlcpy(bufptr, filename, bufend - bufptr);
if (!access(buffer, 0))
+ {
+ DEBUG_printf(("cupsFileFind: Returning \"%s\"\n", buffer));
return (buffer);
+ }
else
+ {
+ DEBUG_puts("cupsFileFind: Returning NULL");
return (NULL);
+ }
}
return (-1);
}
- bytes = fp->ptr - fp->buf;
+ bytes = (ssize_t)(fp->ptr - fp->buf);
DEBUG_printf((" Flushing %ld bytes...\n", (long)bytes));
*/
if (!fp || (fp->mode != 'r' && fp->mode != 's'))
+ {
+ DEBUG_puts("cupsFileGetChar: Bad arguments!");
return (-1);
+ }
/*
* If the input buffer is empty, try to read more data...
if (fp->ptr >= fp->end)
if (cups_fill(fp) < 0)
+ {
+ DEBUG_puts("cupsFileGetChar: Unable to fill buffer!");
return (-1);
+ }
/*
* Return the next character in the buffer...
*/
+ DEBUG_printf(("cupsFileGetChar: Returning %d...\n", *(fp->ptr) & 255));
+
return (*(fp->ptr)++ & 255);
}
switch (*mode)
{
case 'a' : /* Append file */
- fd = open(filename, O_RDWR | O_CREAT | O_APPEND | O_LARGEFILE, 0666);
+ fd = open(filename, O_RDWR | O_CREAT | O_APPEND | O_LARGEFILE | O_BINARY, 0666);
break;
case 'r' : /* Read file */
- fd = open(filename, O_RDONLY | O_LARGEFILE, 0);
+ fd = open(filename, O_RDONLY | O_LARGEFILE | O_BINARY, 0);
break;
case 'w' : /* Write file */
- fd = open(filename, O_WRONLY | O_TRUNC | O_CREAT | O_LARGEFILE, 0666);
+ fd = open(filename, O_WRONLY | O_TRUNC | O_CREAT | O_LARGEFILE | O_BINARY, 0666);
break;
case 's' : /* Read/write socket */
* Write the string...
*/
- bytes = strlen(s);
+ bytes = (int)strlen(s);
if (fp->mode == 's')
{
DEBUG_printf((" cups_fill() returned -1, total=%d\n", total));
if (total > 0)
- return (total);
+ return ((ssize_t)total);
else
return (-1);
}
- count = fp->end - fp->ptr;
- if (count > bytes)
- count = bytes;
+ count = (ssize_t)(fp->end - fp->ptr);
+ if (count > (ssize_t)bytes)
+ count = (ssize_t)bytes;
memcpy(buf, fp->ptr, count);
fp->ptr += count;
DEBUG_printf((" total=%d\n", total));
- return (total);
+ return ((ssize_t)total);
}
*/
if (fp->ptr)
- bytes = fp->end - fp->buf;
+ bytes = (ssize_t)(fp->end - fp->buf);
else
bytes = 0;
if (cups_write(fp, buf, bytes) < 0)
return (-1);
- fp->pos += bytes;
+ fp->pos += (off_t)bytes;
- return (bytes);
+ return ((ssize_t)bytes);
}
if ((fp->ptr + bytes) > fp->end)
if (cupsFileFlush(fp))
return (-1);
- fp->pos += bytes;
+ fp->pos += (off_t)bytes;
if (bytes > sizeof(fp->buf))
{
{
memcpy(fp->ptr, buf, bytes);
fp->ptr += bytes;
- return (bytes);
+ return ((ssize_t)bytes);
}
}
*/
if (fp->ptr && fp->end)
- fp->pos += fp->end - fp->buf;
+ fp->pos += (off_t)(fp->end - fp->buf);
#ifdef HAVE_LIBZ
DEBUG_printf((" fp->compressed=%d\n", fp->compressed));
for (;;)
{
+#ifdef WIN32
+ if (fp->mode == 's')
+ total = (ssize_t)recv(fp->fd, buf, (unsigned)bytes, 0);
+ else
+ total = (ssize_t)read(fp->fd, buf, (unsigned)bytes);
+#else
if (fp->mode == 's')
total = recv(fp->fd, buf, bytes, 0);
else
total = read(fp->fd, buf, bytes);
+#endif /* WIN32 */
if (total >= 0)
break;
total = 0;
while (bytes > 0)
{
+#ifdef WIN32
+ if (fp->mode == 's')
+ count = (ssize_t)send(fp->fd, buf, (unsigned)bytes, 0);
+ else
+ count = (ssize_t)write(fp->fd, buf, (unsigned)bytes);
+#else
if (fp->mode == 's')
count = send(fp->fd, buf, bytes, 0);
else
count = write(fp->fd, buf, bytes);
+#endif /* WIN32 */
if (count < 0)
{
* Return the total number of bytes written...
*/
- return (total);
+ return ((ssize_t)total);
}
/*
- * End of "$Id: file.c 5993 2006-09-29 12:57:31Z mike $".
+ * End of "$Id: file.c 6193 2007-01-10 19:27:04Z mike $".
*/
/*
- * "$Id: file.h 5769 2006-07-20 17:17:14Z mike $"
+ * "$Id: file.h 6188 2007-01-10 16:23:06Z mike $"
*
* Public file definitions for the Common UNIX Printing System (CUPS).
*
* our own file functions allows us to provide transparent support of
* gzip'd print files, PPD files, etc.
*
- * Copyright 1997-2006 by Easy Software Products, all rights reserved.
+ * Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
*/
# include <sys/types.h>
-
-# ifdef WIN32
+# if defined(WIN32) && !defined(__CUPS_SSIZE_T_DEFINED)
+# define __CUPS_SSIZE_T_DEFINED
/* Windows does not support the ssize_t type, so map it to off_t... */
typedef off_t ssize_t; /* @private@ */
-# endif /* WIN32 */
+# endif /* WIN32 && !__CUPS_SSIZE_T_DEFINED */
/*
#endif /* !_CUPS_FILE_H_ */
/*
- * End of "$Id: file.h 5769 2006-07-20 17:17:14Z mike $".
+ * End of "$Id: file.h 6188 2007-01-10 16:23:06Z mike $".
*/
/*
- * "$Id: http-addrlist.c 5679 2006-06-20 14:45:15Z mike $"
+ * "$Id: http-addrlist.c 6188 2007-01-10 16:23:06Z mike $"
*
* HTTP address list routines for the Common UNIX Printing System (CUPS).
*
- * Copyright 1997-2006 by Easy Software Products, all rights reserved.
+ * Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
* Create the socket...
*/
- if ((*sock = socket(addrlist->addr.addr.sa_family, SOCK_STREAM, 0)) < 0)
+ if ((*sock = (int)socket(addrlist->addr.addr.sa_family, SOCK_STREAM, 0)) < 0)
{
/*
* Don't abort yet, as this could just be an issue with the local
*/
strlcpy(ipv6, hostname + 4, sizeof(ipv6));
- if ((ipv6len = strlen(ipv6) - 1) >= 0 && ipv6[ipv6len] == ']')
+ if ((ipv6len = (int)strlen(ipv6) - 1) >= 0 && ipv6[ipv6len] == ']')
{
ipv6[ipv6len] = '\0';
hostname = ipv6;
*/
strlcpy(ipv6, hostname + 1, sizeof(ipv6));
- if ((ipv6len = strlen(ipv6) - 1) >= 0 && ipv6[ipv6len] == ']')
+ if ((ipv6len = (int)strlen(ipv6) - 1) >= 0 && ipv6[ipv6len] == ']')
{
ipv6[ipv6len] = '\0';
hostname = ipv6;
/*
- * End of "$Id: http-addrlist.c 5679 2006-06-20 14:45:15Z mike $".
+ * End of "$Id: http-addrlist.c 6188 2007-01-10 16:23:06Z mike $".
*/
/*
- * "$Id: http-private.h 6111 2006-11-15 20:28:39Z mike $"
+ * "$Id: http-private.h 6188 2007-01-10 16:23:06Z mike $"
*
* Private HTTP definitions for the Common UNIX Printing System (CUPS).
*
- * Copyright 1997-2005 by Easy Software Products, all rights reserved.
+ * Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
* Some OS's don't have getifaddrs() and freeifaddrs()...
*/
-# include <net/if.h>
-# ifdef HAVE_GETIFADDRS
-# include <ifaddrs.h>
-# else
-# include <sys/ioctl.h>
-# ifdef HAVE_SYS_SOCKIO_H
-# include <sys/sockio.h>
-# endif /* HAVE_SYS_SOCKIO_H */
-
-# ifdef ifa_dstaddr
-# undef ifa_dstaddr
-# endif /* ifa_dstaddr */
-# ifndef ifr_netmask
-# define ifr_netmask ifr_addr
-# endif /* !ifr_netmask */
+# ifndef WIN32
+# include <net/if.h>
+# ifdef HAVE_GETIFADDRS
+# include <ifaddrs.h>
+# else
+# include <sys/ioctl.h>
+# ifdef HAVE_SYS_SOCKIO_H
+# include <sys/sockio.h>
+# endif /* HAVE_SYS_SOCKIO_H */
+
+# ifdef ifa_dstaddr
+# undef ifa_dstaddr
+# endif /* ifa_dstaddr */
+# ifndef ifr_netmask
+# define ifr_netmask ifr_addr
+# endif /* !ifr_netmask */
struct ifaddrs /**** Interface Structure ****/
{
void *ifa_data; /* Interface statistics */
};
-# ifndef ifa_broadaddr
-# define ifa_broadaddr ifa_ifu.ifu_broadaddr
-# endif /* !ifa_broadaddr */
-# ifndef ifa_dstaddr
-# define ifa_dstaddr ifa_ifu.ifu_dstaddr
-# endif /* !ifa_dstaddr */
+# ifndef ifa_broadaddr
+# define ifa_broadaddr ifa_ifu.ifu_broadaddr
+# endif /* !ifa_broadaddr */
+# ifndef ifa_dstaddr
+# define ifa_dstaddr ifa_ifu.ifu_dstaddr
+# endif /* !ifa_dstaddr */
extern int _cups_getifaddrs(struct ifaddrs **addrs);
-# define getifaddrs _cups_getifaddrs
+# define getifaddrs _cups_getifaddrs
extern void _cups_freeifaddrs(struct ifaddrs *addrs);
-# define freeifaddrs _cups_freeifaddrs
-# endif /* HAVE_GETIFADDRS */
+# define freeifaddrs _cups_freeifaddrs
+# endif /* HAVE_GETIFADDRS */
+# endif /* !WIN32 */
#endif /* !_CUPS_HTTP_PRIVATE_H_ */
/*
- * End of "$Id: http-private.h 6111 2006-11-15 20:28:39Z mike $".
+ * End of "$Id: http-private.h 6188 2007-01-10 16:23:06Z mike $".
*/
/*
- * "$Id: http-support.c 6061 2006-10-23 00:26:52Z mike $"
+ * "$Id: http-support.c 6188 2007-01-10 16:23:06Z mike $"
*
* HTTP support routines for the Common UNIX Printing System (CUPS) scheduler.
*
- * Copyright 1997-2006 by Easy Software Products, all rights reserved.
+ * Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
httpEncode64(char *out, /* I - String to write to */
const char *in) /* I - String to read from */
{
- return (httpEncode64_2(out, 512, in, strlen(in)));
+ return (httpEncode64_2(out, 512, in, (int)strlen(in)));
}
char *resptr = resource + strlen(resource);
- uri = http_copy_decode(resptr, uri, resourcelen - (resptr - resource),
+ uri = http_copy_decode(resptr, uri, resourcelen - (int)(resptr - resource),
NULL, decoding & HTTP_URI_CODING_QUERY);
}
}
/*
- * End of "$Id: http-support.c 6061 2006-10-23 00:26:52Z mike $".
+ * End of "$Id: http-support.c 6188 2007-01-10 16:23:06Z mike $".
*/
/*
- * "$Id: http.c 6111 2006-11-15 20:28:39Z mike $"
+ * "$Id: http.c 6191 2007-01-10 16:48:37Z mike $"
*
* HTTP routines for the Common UNIX Printing System (CUPS).
*
- * Copyright 1997-2006 by Easy Software Products, all rights reserved.
+ * Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
* after the transfer is complete...
*/
- if (http->fields[HTTP_FIELD_CONTENT_LENGTH][0] == '\0')
- http->data_remaining = 2147483647;
+ if (!http->fields[HTTP_FIELD_CONTENT_LENGTH][0])
+ {
+ /*
+ * Default content length is 0 for errors and 2^31-1 for other
+ * successful requests...
+ */
+
+ if (http->status >= HTTP_MULTIPLE_CHOICES)
+ http->data_remaining = 0;
+ else
+ http->data_remaining = 2147483647;
+ }
else
http->data_remaining = strtoll(http->fields[HTTP_FIELD_CONTENT_LENGTH],
NULL, 10);
if (!http->blocking && !http_wait(http, 10000, 1))
{
DEBUG_puts("httpGets: Timed out!");
+#ifdef WIN32
+ http->error = WSAETIMEDOUT;
+#else
http->error = ETIMEDOUT;
+#endif /* WIN32 */
return (NULL);
}
*lineptr++ = *bufptr++;
}
- http->used -= bufptr - http->buffer;
+ http->used -= (int)(bufptr - http->buffer);
if (http->used > 0)
memmove(http->buffer, bufptr, http->used);
return (0);
}
- else if (length > http->data_remaining)
- length = http->data_remaining;
+ else if (length > (size_t)http->data_remaining)
+ length = (size_t)http->data_remaining;
if (http->used == 0 && length <= 256)
{
if (http->used > 0)
{
- if (length > http->used)
- length = http->used;
+ if (length > (size_t)http->used)
+ length = (size_t)http->used;
- bytes = length;
+ bytes = (ssize_t)length;
DEBUG_printf(("httpRead2: grabbing %d bytes from input buffer...\n", bytes));
memcpy(buffer, http->buffer, length);
- http->used -= length;
+ http->used -= (int)length;
if (http->used > 0)
memmove(http->buffer, http->buffer + length, http->used);
if (!http->blocking && !httpWait(http, 10000))
return (0);
- bytes = http_read_ssl(http, buffer, length);
+ bytes = (ssize_t)http_read_ssl(http, buffer, (int)length);
}
#endif /* HAVE_SSL */
else
DEBUG_printf(("httpRead2: reading %d bytes from socket...\n", length));
+#ifdef WIN32
+ bytes = (ssize_t)recv(http->fd, buffer, (int)length, 0);
+#else
while ((bytes = recv(http->fd, buffer, length, 0)) < 0)
if (errno != EINTR)
break;
+#endif /* WIN32 */
DEBUG_printf(("httpRead2: read %d bytes from socket...\n", bytes));
}
DEBUG_printf((" copying %d bytes to wbuffer...\n", length));
memcpy(http->wbuffer + http->wused, buffer, length);
- http->wused += length;
- bytes = length;
+ http->wused += (int)length;
+ bytes = (ssize_t)length;
}
else
{
DEBUG_printf((" writing %d bytes to socket...\n", length));
if (http->data_encoding == HTTP_ENCODE_CHUNKED)
- bytes = http_write_chunk(http, buffer, length);
+ bytes = (ssize_t)http_write_chunk(http, buffer, (int)length);
else
- bytes = http_write(http, buffer, length);
+ bytes = (ssize_t)http_write(http, buffer, (int)length);
DEBUG_printf((" wrote %d bytes...\n", bytes));
}
http_bio_puts(BIO *h, /* I - BIO data */
const char *str) /* I - String to write */
{
+#ifdef WIN32
+ return (send(((http_t *)h->ptr)->fd, str, (int)strlen(str), 0));
+#else
return (send(((http_t *)h->ptr)->fd, str, strlen(str), 0));
+#endif /* WIN32 */
}
if (!http_wait(http, 10000, 0))
{
+#ifdef WIN32
+ http->error = WSAETIMEDOUT;
+#else
http->error = ETIMEDOUT;
+#endif /* WIN32 */
+
return (-1);
}
}
* encryption on the link...
*/
- httpClearFields(&myhttp);
- httpSetField(&myhttp, HTTP_FIELD_CONNECTION, "upgrade");
- httpSetField(&myhttp, HTTP_FIELD_UPGRADE, "TLS/1.0, SSL/2.0, SSL/3.0");
+ httpClearFields(http);
+ httpSetField(http, HTTP_FIELD_CONNECTION, "upgrade");
+ httpSetField(http, HTTP_FIELD_UPGRADE, "TLS/1.0, SSL/2.0, SSL/3.0");
- if ((ret = httpOptions(&myhttp, "*")) == 0)
+ if ((ret = httpOptions(http, "*")) == 0)
{
/*
* Wait for the secure connection...
*/
- while (httpUpdate(&myhttp) == HTTP_CONTINUE);
+ while (httpUpdate(http) == HTTP_CONTINUE);
}
- httpFlush(&myhttp);
+ httpFlush(http);
/*
- * Copy the HTTP data back over, if any...
+ * Restore the HTTP request data...
*/
- http->fd = myhttp.fd;
- http->error = myhttp.error;
- http->activity = myhttp.activity;
- http->status = myhttp.status;
- http->version = myhttp.version;
- http->keep_alive = myhttp.keep_alive;
- http->used = myhttp.used;
-
- if (http->used)
- memcpy(http->buffer, myhttp.buffer, http->used);
-
- http->auth_type = myhttp.auth_type;
- http->nonce_count = myhttp.nonce_count;
-
- memcpy(http->nonce, myhttp.nonce, sizeof(http->nonce));
-
- http->tls = myhttp.tls;
- http->encryption = myhttp.encryption;
+ memcpy(http->fields, myhttp.fields, sizeof(http->fields));
+ http->data_encoding = myhttp.data_encoding;
+ http->data_remaining = myhttp.data_remaining;
+ http->_data_remaining = myhttp._data_remaining;
+ http->expect = myhttp.expect;
/*
* See if we actually went secure...
*/
sprintf(header, "%x\r\n", length);
- if (http_write(http, header, strlen(header)) < 0)
+ if (http_write(http, header, (int)strlen(header)) < 0)
{
DEBUG_puts(" http_write of length failed!");
return (-1);
/*
- * End of "$Id: http.c 6111 2006-11-15 20:28:39Z mike $".
+ * End of "$Id: http.c 6191 2007-01-10 16:48:37Z mike $".
*/
/*
- * "$Id: http.h 5889 2006-08-24 21:44:35Z mike $"
+ * "$Id: http.h 6188 2007-01-10 16:23:06Z mike $"
*
* Hyper-Text Transport Protocol definitions for the Common UNIX Printing
* System (CUPS).
*
- * Copyright 1997-2006 by Easy Software Products, all rights reserved.
+ * Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
# include <time.h>
# include <sys/types.h>
# ifdef WIN32
+# ifndef __CUPS_SSIZE_T_DEFINED
+# define __CUPS_SSIZE_T_DEFINED
+/* Windows does not support the ssize_t type, so map it to off_t... */
+typedef off_t ssize_t; /* @private@ */
+# endif /* !__CUPS_SSIZE_T_DEFINED */
# include <winsock2.h>
# include <ws2tcpip.h>
# else
#endif /* !_CUPS_HTTP_H_ */
/*
- * End of "$Id: http.h 5889 2006-08-24 21:44:35Z mike $".
+ * End of "$Id: http.h 6188 2007-01-10 16:23:06Z mike $".
*/
/*
- * "$Id: ipp.c 5624 2006-06-02 15:15:23Z mike $"
+ * "$Id: ipp.c 6234 2007-02-05 20:25:50Z mike $"
*
* Internet Printing Protocol support functions for the Common UNIX
* Printing System (CUPS).
*
- * Copyright 1997-2006 by Easy Software Products, all rights reserved.
+ * Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
if ((n = (*cb)(src, buffer, 8)) < 8)
{
DEBUG_printf(("ippReadIO: Unable to read header (%d bytes read)!\n", n));
- return (n == 0 ? IPP_IDLE : IPP_ERROR);
+ return (IPP_ERROR);
}
/*
break;
case IPP_ATTRIBUTE :
- while ((*cb)(src, buffer, 1) > 0)
+ for (;;)
{
+ if ((*cb)(src, buffer, 1) < 1)
+ return (IPP_ERROR);
+
DEBUG_printf(("ippReadIO: ipp->current=%p, ipp->prev=%p\n",
ipp->current, ipp->prev));
n = 4;
if (value->string.charset != NULL)
- n += strlen(value->string.charset);
+ n += (int)strlen(value->string.charset);
if (value->string.text != NULL)
- n += strlen(value->string.text);
+ n += (int)strlen(value->string.text);
if (n > (sizeof(buffer) - 2))
return (IPP_ERROR);
DEBUG_printf(("attr->name = %s, attr->num_values = %d, bytes = %d\n",
attr->name, attr->num_values, bytes));
- bytes += strlen(attr->name); /* Name */
+ bytes += (int)strlen(attr->name); /* Name */
bytes += attr->num_values; /* Value tag for each value */
bytes += 2 * attr->num_values; /* Name lengths */
bytes += 2 * attr->num_values; /* Value lengths */
i < attr->num_values;
i ++, value ++)
if (value->string.text != NULL)
- bytes += strlen(value->string.text);
+ bytes += (int)strlen(value->string.text);
break;
case IPP_TAG_DATE :
i ++, value ++)
{
if (value->string.charset != NULL)
- bytes += strlen(value->string.charset);
+ bytes += (int)strlen(value->string.charset);
if (value->string.text != NULL)
- bytes += strlen(value->string.text);
+ bytes += (int)strlen(value->string.text);
}
break;
for (i = 0, value = attr->values;
i < attr->num_values;
i ++, value ++)
- bytes += ipp_length(value->collection, 1);
+ bytes += (int)ipp_length(value->collection, 1);
break;
default :
* Loop until all bytes are read...
*/
- for (tbytes = 0, bytes = 0; tbytes < length; tbytes += bytes, buffer += bytes)
+ for (tbytes = 0, bytes = 0; tbytes < (int)length; tbytes += bytes, buffer += bytes)
{
DEBUG_printf(("tbytes = %d, http->state = %d\n", tbytes, http->state));
* Do "fast read" from HTTP buffer directly...
*/
- if (http->used > (length - tbytes))
- bytes = length - tbytes;
+ if (http->used > (int)(length - tbytes))
+ bytes = (int)(length - tbytes);
else
bytes = http->used;
ipp_uchar_t *buffer, /* O - Read buffer */
size_t length) /* I - Number of bytes to read */
{
+#ifdef WIN32
+ return ((ssize_t)read(*fd, buffer, (unsigned)length));
+#else
return (read(*fd, buffer, length));
+#endif /* WIN32 */
}
ipp_uchar_t *buffer, /* I - Data to write */
size_t length) /* I - Number of bytes to write */
{
+#ifdef WIN32
+ return ((ssize_t)write(*fd, buffer, (unsigned)length));
+#else
return (write(*fd, buffer, length));
+#endif /* WIN32 */
}
/*
- * End of "$Id: ipp.c 5624 2006-06-02 15:15:23Z mike $".
+ * End of "$Id: ipp.c 6234 2007-02-05 20:25:50Z mike $".
*/
/*
- * "$Id: langprintf.c 5926 2006-09-05 20:45:47Z mike $"
+ * "$Id: langprintf.c 6188 2007-01-10 16:23:06Z mike $"
*
* Localized printf/puts functions for the Common UNIX Printing
* System (CUPS).
*
- * Copyright 2002-2006 by Easy Software Products.
+ * Copyright 2002-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
*/
if (bytes > 0)
- return (fwrite(output, 1, bytes, fp));
+ return ((int)fwrite(output, 1, bytes, fp));
else
return (bytes);
}
*/
if (bytes > 0)
- return (fwrite(output, 1, bytes, fp));
+ return ((int)fwrite(output, 1, bytes, fp));
else
return (bytes);
}
/*
- * End of "$Id: langprintf.c 5926 2006-09-05 20:45:47Z mike $".
+ * End of "$Id: langprintf.c 6188 2007-01-10 16:23:06Z mike $".
*/
/*
- * "$Id: language.c 6073 2006-11-02 20:01:54Z mike $"
+ * "$Id: language.c 6188 2007-01-10 16:23:06Z mike $"
*
* I18N/language support for the Common UNIX Printing System (CUPS).
*
- * Copyright 1997-2006 by Easy Software Products.
+ * Copyright 1997-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
* Append to current string...
*/
- length = strlen(m->str ? m->str : m->id);
+ length = (int)strlen(m->str ? m->str : m->id);
if ((temp = realloc(m->str ? m->str : m->id,
length + strlen(ptr) + 1)) == NULL)
/*
- * End of "$Id: language.c 6073 2006-11-02 20:01:54Z mike $".
+ * End of "$Id: language.c 6188 2007-01-10 16:23:06Z mike $".
*/
/*
- * "$Id: mark.c 6036 2006-10-13 22:06:43Z mike $"
+ * "$Id: mark.c 6188 2007-01-10 16:23:06Z mike $"
*
* Option marking routines for the Common UNIX Printing System (CUPS).
*
- * Copyright 1997-2006 by Easy Software Products, all rights reserved.
+ * Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
case PPD_CUSTOM_CURVE :
case PPD_CUSTOM_INVCURVE :
case PPD_CUSTOM_REAL :
- cparam->current.custom_real = _cupsStrScand(choice + 7, NULL,
- loc);
+ cparam->current.custom_real = (float)_cupsStrScand(choice + 7,
+ NULL, loc);
break;
case PPD_CUSTOM_POINTS :
- cparam->current.custom_points = _cupsStrScand(choice + 7,
- &units, loc);
+ cparam->current.custom_points = (float)_cupsStrScand(choice + 7,
+ &units,
+ loc);
if (units)
{
if (!strcasecmp(units, "cm"))
- cparam->current.custom_points *= 72.0 / 2.54;
+ cparam->current.custom_points *= 72.0f / 2.54f;
else if (!strcasecmp(units, "mm"))
- cparam->current.custom_points *= 72.0 / 25.4;
+ cparam->current.custom_points *= 72.0f / 25.4f;
else if (!strcasecmp(units, "m"))
- cparam->current.custom_points *= 72.0 / 0.0254;
+ cparam->current.custom_points *= 72.0f / 0.0254f;
else if (!strcasecmp(units, "in"))
- cparam->current.custom_points *= 72.0;
+ cparam->current.custom_points *= 72.0f;
else if (!strcasecmp(units, "ft"))
- cparam->current.custom_points *= 12 * 72.0;
+ cparam->current.custom_points *= 12.0f * 72.0f;
}
break;
case PPD_CUSTOM_CURVE :
case PPD_CUSTOM_INVCURVE :
case PPD_CUSTOM_REAL :
- cparam->current.custom_real = _cupsStrScand(val->value, NULL,
- loc);
+ cparam->current.custom_real = (float)_cupsStrScand(val->value,
+ NULL, loc);
break;
case PPD_CUSTOM_POINTS :
- cparam->current.custom_points = _cupsStrScand(val->value, &units,
- loc);
+ cparam->current.custom_points = (float)_cupsStrScand(val->value,
+ &units,
+ loc);
if (units)
{
if (!strcasecmp(units, "cm"))
- cparam->current.custom_points *= 72.0 / 2.54;
+ cparam->current.custom_points *= 72.0f / 2.54f;
else if (!strcasecmp(units, "mm"))
- cparam->current.custom_points *= 72.0 / 25.4;
+ cparam->current.custom_points *= 72.0f / 25.4f;
else if (!strcasecmp(units, "m"))
- cparam->current.custom_points *= 72.0 / 0.0254;
+ cparam->current.custom_points *= 72.0f / 0.0254f;
else if (!strcasecmp(units, "in"))
- cparam->current.custom_points *= 72.0;
+ cparam->current.custom_points *= 72.0f;
else if (!strcasecmp(units, "ft"))
- cparam->current.custom_points *= 12 * 72.0;
+ cparam->current.custom_points *= 12.0f * 72.0f;
}
break;
/*
- * End of "$Id: mark.c 6036 2006-10-13 22:06:43Z mike $".
+ * End of "$Id: mark.c 6188 2007-01-10 16:23:06Z mike $".
*/
/*
- * "$Id: page.c 5549 2006-05-19 19:39:28Z mike $"
+ * "$Id: page.c 6188 2007-01-10 16:23:06Z mike $"
*
* Page size functions for the Common UNIX Printing System (CUPS).
*
- * Copyright 1997-2005 by Easy Software Products, all rights reserved.
+ * Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
const char *name) /* I - Size name */
{
int i; /* Looping var */
+ ppd_size_t *size; /* Current page size */
float w, l; /* Width and length of page */
char *nameptr; /* Pointer into name */
struct lconv *loc; /* Locale data */
+ ppd_coption_t *coption; /* Custom option for page size */
+ ppd_cparam_t *cparam; /* Custom option parameter */
if (!ppd)
* Find the custom page size...
*/
- for (i = 0; i < ppd->num_sizes; i ++)
- if (!strcmp("Custom", ppd->sizes[i].name))
+ for (i = ppd->num_sizes, size = ppd->sizes; i > 0; i --, size ++)
+ if (!strcmp("Custom", size->name))
break;
- if (i == ppd->num_sizes)
+ if (!i)
return (NULL);
/*
*/
loc = localeconv();
- w = _cupsStrScand(name + 7, &nameptr, loc);
+ w = (float)_cupsStrScand(name + 7, &nameptr, loc);
if (!nameptr || *nameptr != 'x')
return (NULL);
- l = _cupsStrScand(nameptr + 1, &nameptr, loc);
+ l = (float)_cupsStrScand(nameptr + 1, &nameptr, loc);
if (!nameptr)
return (NULL);
if (!strcasecmp(nameptr, "in"))
{
- ppd->sizes[i].width = w * 72.0f;
- ppd->sizes[i].length = l * 72.0f;
- ppd->sizes[i].left = ppd->custom_margins[0];
- ppd->sizes[i].bottom = ppd->custom_margins[1];
- ppd->sizes[i].right = w * 72.0f - ppd->custom_margins[2];
- ppd->sizes[i].top = l * 72.0f - ppd->custom_margins[3];
+ w *= 72.0f;
+ l *= 72.0f;
}
- else if (!strcasecmp(nameptr, "cm"))
+ else if (!strcasecmp(nameptr, "ft"))
{
- ppd->sizes[i].width = w / 2.54f * 72.0f;
- ppd->sizes[i].length = l / 2.54f * 72.0f;
- ppd->sizes[i].left = ppd->custom_margins[0];
- ppd->sizes[i].bottom = ppd->custom_margins[1];
- ppd->sizes[i].right = w / 2.54f * 72.0f - ppd->custom_margins[2];
- ppd->sizes[i].top = l / 2.54f * 72.0f - ppd->custom_margins[3];
+ w *= 12.0f * 72.0f;
+ l *= 12.0f * 72.0f;
}
else if (!strcasecmp(nameptr, "mm"))
{
- ppd->sizes[i].width = w / 25.4f * 72.0f;
- ppd->sizes[i].length = l / 25.4f * 72.0f;
- ppd->sizes[i].left = ppd->custom_margins[0];
- ppd->sizes[i].bottom = ppd->custom_margins[1];
- ppd->sizes[i].right = w / 25.4f * 72.0f - ppd->custom_margins[2];
- ppd->sizes[i].top = l / 25.4f * 72.0f - ppd->custom_margins[3];
+ w *= 72.0f / 25.4f;
+ l *= 72.0f / 25.4f;
+ }
+ else if (!strcasecmp(nameptr, "cm"))
+ {
+ w *= 72.0f / 2.54f;
+ l *= 72.0f / 2.54f;
}
- else
+ else if (!strcasecmp(nameptr, "m"))
{
- ppd->sizes[i].width = w;
- ppd->sizes[i].length = l;
- ppd->sizes[i].left = ppd->custom_margins[0];
- ppd->sizes[i].bottom = ppd->custom_margins[1];
- ppd->sizes[i].right = w - ppd->custom_margins[2];
- ppd->sizes[i].top = l - ppd->custom_margins[3];
+ w *= 72.0f / 0.0254f;
+ l *= 72.0f / 0.0254f;
}
- return (ppd->sizes + i);
+ size->width = w;
+ size->length = l;
+ size->left = ppd->custom_margins[0];
+ size->bottom = ppd->custom_margins[1];
+ size->right = w - ppd->custom_margins[2];
+ size->top = l - ppd->custom_margins[3];
+
+ /*
+ * Update the custom option records for the page size, too...
+ */
+
+ if ((coption = ppdFindCustomOption(ppd, "PageSize")) != NULL)
+ {
+ if ((cparam = ppdFindCustomParam(coption, "Width")) != NULL)
+ cparam->current.custom_points = w;
+
+ if ((cparam = ppdFindCustomParam(coption, "Height")) != NULL)
+ cparam->current.custom_points = l;
+ }
+
+ /*
+ * Return the page size...
+ */
+
+ return (size);
}
else
{
* Lookup by name...
*/
- for (i = 0; i < ppd->num_sizes; i ++)
- if (!strcasecmp(name, ppd->sizes[i].name))
- return (ppd->sizes + i);
+ for (i = ppd->num_sizes, size = ppd->sizes; i > 0; i --, size ++)
+ if (!strcmp(name, size->name))
+ return (size);
}
}
else
* Find default...
*/
- for (i = 0; i < ppd->num_sizes; i ++)
- if (ppd->sizes[i].marked)
- return (ppd->sizes + i);
+ for (i = ppd->num_sizes, size = ppd->sizes; i > 0; i --, size ++)
+ if (size->marked)
+ return (size);
}
return (NULL);
/*
- * End of "$Id: page.c 5549 2006-05-19 19:39:28Z mike $".
+ * End of "$Id: page.c 6188 2007-01-10 16:23:06Z mike $".
*/
/*
- * "$Id: ppd.c 6036 2006-10-13 22:06:43Z mike $"
+ * "$Id: ppd.c 6188 2007-01-10 16:23:06Z mike $"
*
* PPD file routines for the Common UNIX Printing System (CUPS).
*
- * Copyright 1997-2006 by Easy Software Products, all rights reserved.
+ * Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
strlcpy(profile->resolution, name, sizeof(profile->resolution));
strlcpy(profile->media_type, text, sizeof(profile->media_type));
- profile->density = _cupsStrScand(string, &sptr, loc);
- profile->gamma = _cupsStrScand(sptr, &sptr, loc);
- profile->matrix[0][0] = _cupsStrScand(sptr, &sptr, loc);
- profile->matrix[0][1] = _cupsStrScand(sptr, &sptr, loc);
- profile->matrix[0][2] = _cupsStrScand(sptr, &sptr, loc);
- profile->matrix[1][0] = _cupsStrScand(sptr, &sptr, loc);
- profile->matrix[1][1] = _cupsStrScand(sptr, &sptr, loc);
- profile->matrix[1][2] = _cupsStrScand(sptr, &sptr, loc);
- profile->matrix[2][0] = _cupsStrScand(sptr, &sptr, loc);
- profile->matrix[2][1] = _cupsStrScand(sptr, &sptr, loc);
- profile->matrix[2][2] = _cupsStrScand(sptr, &sptr, loc);
+ profile->density = (float)_cupsStrScand(string, &sptr, loc);
+ profile->gamma = (float)_cupsStrScand(sptr, &sptr, loc);
+ profile->matrix[0][0] = (float)_cupsStrScand(sptr, &sptr, loc);
+ profile->matrix[0][1] = (float)_cupsStrScand(sptr, &sptr, loc);
+ profile->matrix[0][2] = (float)_cupsStrScand(sptr, &sptr, loc);
+ profile->matrix[1][0] = (float)_cupsStrScand(sptr, &sptr, loc);
+ profile->matrix[1][1] = (float)_cupsStrScand(sptr, &sptr, loc);
+ profile->matrix[1][2] = (float)_cupsStrScand(sptr, &sptr, loc);
+ profile->matrix[2][0] = (float)_cupsStrScand(sptr, &sptr, loc);
+ profile->matrix[2][1] = (float)_cupsStrScand(sptr, &sptr, loc);
+ profile->matrix[2][2] = (float)_cupsStrScand(sptr, &sptr, loc);
}
else if (!strcmp(keyword, "cupsFilter"))
{
if (!strcmp(ctype, "curve"))
{
cparam->type = PPD_CUSTOM_CURVE;
- cparam->minimum.custom_curve = _cupsStrScand(cminimum, NULL, loc);
- cparam->maximum.custom_curve = _cupsStrScand(cmaximum, NULL, loc);
+ cparam->minimum.custom_curve = (float)_cupsStrScand(cminimum, NULL, loc);
+ cparam->maximum.custom_curve = (float)_cupsStrScand(cmaximum, NULL, loc);
}
else if (!strcmp(ctype, "int"))
{
else if (!strcmp(ctype, "invcurve"))
{
cparam->type = PPD_CUSTOM_INVCURVE;
- cparam->minimum.custom_invcurve = _cupsStrScand(cminimum, NULL, loc);
- cparam->maximum.custom_invcurve = _cupsStrScand(cmaximum, NULL, loc);
+ cparam->minimum.custom_invcurve = (float)_cupsStrScand(cminimum, NULL, loc);
+ cparam->maximum.custom_invcurve = (float)_cupsStrScand(cmaximum, NULL, loc);
}
else if (!strcmp(ctype, "passcode"))
{
else if (!strcmp(ctype, "points"))
{
cparam->type = PPD_CUSTOM_POINTS;
- cparam->minimum.custom_points = _cupsStrScand(cminimum, NULL, loc);
- cparam->maximum.custom_points = _cupsStrScand(cmaximum, NULL, loc);
+ cparam->minimum.custom_points = (float)_cupsStrScand(cminimum, NULL, loc);
+ cparam->maximum.custom_points = (float)_cupsStrScand(cmaximum, NULL, loc);
}
else if (!strcmp(ctype, "real"))
{
cparam->type = PPD_CUSTOM_REAL;
- cparam->minimum.custom_real = _cupsStrScand(cminimum, NULL, loc);
- cparam->maximum.custom_real = _cupsStrScand(cmaximum, NULL, loc);
+ cparam->minimum.custom_real = (float)_cupsStrScand(cminimum, NULL, loc);
+ cparam->maximum.custom_real = (float)_cupsStrScand(cmaximum, NULL, loc);
}
else if (!strcmp(ctype, "string"))
{
else if (!strcmp(keyword, "HWMargins"))
{
for (i = 0, sptr = string; i < 4; i ++)
- ppd->custom_margins[i] = _cupsStrScand(sptr, &sptr, loc);
+ ppd->custom_margins[i] = (float)_cupsStrScand(sptr, &sptr, loc);
}
else if (!strncmp(keyword, "Custom", 6) && !strcmp(name, "True"))
{
else if (!strcmp(keyword, "OrderDependency") ||
!strcmp(keyword, "NonUIOrderDependency"))
{
- order = _cupsStrScand(string, &sptr, loc);
+ order = (float)_cupsStrScand(string, &sptr, loc);
if (!sptr || sscanf(sptr, "%40s%40s", name, keyword) != 2)
{
goto error;
}
- size->width = _cupsStrScand(string, &sptr, loc);
- size->length = _cupsStrScand(sptr, NULL, loc);
+ size->width = (float)_cupsStrScand(string, &sptr, loc);
+ size->length = (float)_cupsStrScand(sptr, NULL, loc);
ppd_free(string);
string = NULL;
goto error;
}
- size->left = _cupsStrScand(string, &sptr, loc);
- size->bottom = _cupsStrScand(sptr, &sptr, loc);
- size->right = _cupsStrScand(sptr, &sptr, loc);
- size->top = _cupsStrScand(sptr, NULL, loc);
+ size->left = (float)_cupsStrScand(string, &sptr, loc);
+ size->bottom = (float)_cupsStrScand(sptr, &sptr, loc);
+ size->right = (float)_cupsStrScand(sptr, &sptr, loc);
+ size->top = (float)_cupsStrScand(sptr, NULL, loc);
ppd_free(string);
string = NULL;
return (NULL);
strlcpy(cparam->name, param, sizeof(cparam->name));
- strlcpy(cparam->text, text, sizeof(cparam->text));
+ strlcpy(cparam->text, text[0] ? text : param, sizeof(cparam->text));
/*
* Add this record to the array...
/*
- * End of "$Id: ppd.c 6036 2006-10-13 22:06:43Z mike $".
+ * End of "$Id: ppd.c 6188 2007-01-10 16:23:06Z mike $".
*/
/*
- * "$Id: request.c 5555 2006-05-20 13:35:58Z mike $"
+ * "$Id: request.c 6188 2007-01-10 16:23:06Z mike $"
*
* IPP utilities for the Common UNIX Printing System (CUPS).
*
- * Copyright 1997-2006 by Easy Software Products.
+ * Copyright 1997-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
#ifdef WIN32
if (http->error != WSAENETDOWN && http->error != WSAENETUNREACH &&
- http->error != ETIMEDOUT)
+ http->error != WSAETIMEDOUT)
#else
if (http->error != ENETDOWN && http->error != ENETUNREACH &&
http->error != ETIMEDOUT)
/*
- * End of "$Id: request.c 5555 2006-05-20 13:35:58Z mike $".
+ * End of "$Id: request.c 6188 2007-01-10 16:23:06Z mike $".
*/
/*
- * "$Id: snprintf.c 5529 2006-05-15 20:06:46Z mike $"
+ * "$Id: snprintf.c 6188 2007-01-10 16:23:06Z mike $"
*
* snprintf functions for the Common UNIX Printing System (CUPS).
*
- * Copyright 1997-2005 by Easy Software Products.
+ * Copyright 1997-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
sprintf(temp, tformat, va_arg(ap, double));
- bytes += strlen(temp);
+ bytes += (int)strlen(temp);
if (bufptr)
{
sprintf(temp, tformat, va_arg(ap, int));
- bytes += strlen(temp);
+ bytes += (int)strlen(temp);
if (bufptr)
{
sprintf(temp, tformat, va_arg(ap, void *));
- bytes += strlen(temp);
+ bytes += (int)strlen(temp);
if (bufptr)
{
else
{
if ((bufptr + width) > bufend)
- width = bufend - bufptr;
+ width = (int)(bufend - bufptr);
memcpy(bufptr, va_arg(ap, char *), (size_t)width);
bufptr += width;
if ((s = va_arg(ap, char *)) == NULL)
s = "(null)";
- slen = strlen(s);
+ slen = (int)strlen(s);
if (slen > width && prec != width)
width = slen;
if (bufptr)
{
if ((bufptr + width) > bufend)
- width = bufend - bufptr;
+ width = (int)(bufend - bufptr);
if (slen > width)
slen = width;
/*
- * End of "$Id: snprintf.c 5529 2006-05-15 20:06:46Z mike $".
+ * End of "$Id: snprintf.c 6188 2007-01-10 16:23:06Z mike $".
*/
/*
- * "$Id: string.c 5368 2006-04-02 19:23:50Z mike $"
+ * "$Id: string.c 6188 2007-01-10 16:23:06Z mike $"
*
* String functions for the Common UNIX Printing System (CUPS).
*
- * Copyright 1997-2006 by Easy Software Products.
+ * Copyright 1997-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
if (loc && loc->decimal_point)
{
dec = loc->decimal_point;
- declen = strlen(dec);
+ declen = (int)strlen(dec);
}
else
{
}
}
+ if (*buf == 'e' || *buf == 'E')
+ {
+ /*
+ * Read exponent...
+ */
+
+ if (tempptr < (temp + sizeof(temp) - 1))
+ *tempptr++ = *buf++;
+ else
+ {
+ if (bufptr)
+ *bufptr = NULL;
+
+ return (0.0);
+ }
+
+ if (*buf == '+' || *buf == '-')
+ {
+ if (tempptr < (temp + sizeof(temp) - 1))
+ *tempptr++ = *buf++;
+ else
+ {
+ if (bufptr)
+ *bufptr = NULL;
+
+ return (0.0);
+ }
+ }
+
+ while (isdigit(*buf & 255))
+ if (tempptr < (temp + sizeof(temp) - 1))
+ *tempptr++ = *buf++;
+ else
+ {
+ if (bufptr)
+ *bufptr = NULL;
+
+ return (0.0);
+ }
+ }
+
/*
* Nul-terminate the temporary string and return the value...
*/
/*
- * End of "$Id: string.c 5368 2006-04-02 19:23:50Z mike $".
+ * End of "$Id: string.c 6188 2007-01-10 16:23:06Z mike $".
*/
/*
- * "$Id: testfile.c 5194 2006-02-27 20:57:07Z mike $"
+ * "$Id: testfile.c 6193 2007-01-10 19:27:04Z mike $"
*
* File test program for the Common UNIX Printing System (CUPS).
*
- * Copyright 1997-2005 by Easy Software Products.
+ * Copyright 1997-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
*/
fputs("cupsFileFind: ", stdout);
+#ifdef WIN32
+ if (cupsFileFind("notepad.exe", "C:/WINDOWS", 1, filename, sizeof(filename)) &&
+ cupsFileFind("notepad.exe", "C:/WINDOWS;C:/WINDOWS/SYSTEM32", 1, filename, sizeof(filename)))
+#else
if (cupsFileFind("cat", "/bin", 1, filename, sizeof(filename)) &&
cupsFileFind("cat", "/bin:/usr/bin", 1, filename, sizeof(filename)))
+#endif /* WIN32 */
printf("PASS (%s)\n", filename);
else
{
* Initialize the write buffer with random data...
*/
+#ifdef WIN32
+ srand((unsigned)time(NULL));
+#else
srand(time(NULL));
+#endif /* WIN32 */
+
for (i = 0; i < (int)sizeof(writebuf); i ++)
writebuf[i] = rand();
}
/*
- * cupsGetChar()
+ * cupsFileGetChar()
*/
- fputs("cupsGetChar(): ", stdout);
+ fputs("cupsFileGetChar(): ", stdout);
+
+#ifdef DEBUG
+ puts("\ni byte\n----- -----");
+
+ for (i = 0; i < 256; i ++)
+ {
+ byte = cupsFileGetChar(fp);
+
+ printf("%-5d %-5d\n", i, byte);
+ if (byte != i)
+ break;
+ }
+#else
for (i = 0; i < 256; i ++)
if ((byte = cupsFileGetChar(fp)) != i)
break;
+#endif /* DEBUG */
if (i >= 256)
puts("PASS");
/*
- * End of "$Id: testfile.c 5194 2006-02-27 20:57:07Z mike $".
+ * End of "$Id: testfile.c 6193 2007-01-10 19:27:04Z mike $".
*/
/*
- * "$Id: testppd.c 5826 2006-08-15 19:04:11Z mike $"
+ * "$Id: testppd.c 6161 2006-12-19 20:10:22Z mike $"
*
* PPD test program for the Common UNIX Printing System (CUPS).
*
ppd_attr_t *attr; /* Current attribute */
ppd_group_t *group; /* Option group */
ppd_option_t *option; /* Option */
+ ppd_coption_t *coption; /* Custom option */
+ ppd_cparam_t *cparam; /* Custom parameter */
char lang[255]; /* LANG environment variable */
for (k = 0; k < option->num_choices; k ++)
printf(" - %s (%s)\n", option->choices[k].choice,
option->choices[k].text);
+
+ if ((coption = ppdFindCustomOption(ppd, option->keyword)) != NULL)
+ {
+ for (cparam = (ppd_cparam_t *)cupsArrayFirst(coption->params);
+ cparam;
+ cparam = (ppd_cparam_t *)cupsArrayNext(coption->params))
+ {
+ switch (cparam->type)
+ {
+ case PPD_CUSTOM_CURVE :
+ printf(" %s(%s): PPD_CUSTOM_CURVE (%g to %g)\n",
+ cparam->name, cparam->text,
+ cparam->minimum.custom_curve,
+ cparam->maximum.custom_curve);
+ break;
+
+ case PPD_CUSTOM_INT :
+ printf(" %s(%s): PPD_CUSTOM_INT (%d to %d)\n",
+ cparam->name, cparam->text,
+ cparam->minimum.custom_int,
+ cparam->maximum.custom_int);
+ break;
+
+ case PPD_CUSTOM_INVCURVE :
+ printf(" %s(%s): PPD_CUSTOM_INVCURVE (%g to %g)\n",
+ cparam->name, cparam->text,
+ cparam->minimum.custom_invcurve,
+ cparam->maximum.custom_invcurve);
+ break;
+
+ case PPD_CUSTOM_PASSCODE :
+ printf(" %s(%s): PPD_CUSTOM_PASSCODE (%d to %d)\n",
+ cparam->name, cparam->text,
+ cparam->minimum.custom_passcode,
+ cparam->maximum.custom_passcode);
+ break;
+
+ case PPD_CUSTOM_PASSWORD :
+ printf(" %s(%s): PPD_CUSTOM_PASSWORD (%d to %d)\n",
+ cparam->name, cparam->text,
+ cparam->minimum.custom_password,
+ cparam->maximum.custom_password);
+ break;
+
+ case PPD_CUSTOM_POINTS :
+ printf(" %s(%s): PPD_CUSTOM_POINTS (%g to %g)\n",
+ cparam->name, cparam->text,
+ cparam->minimum.custom_points,
+ cparam->maximum.custom_points);
+ break;
+
+ case PPD_CUSTOM_REAL :
+ printf(" %s(%s): PPD_CUSTOM_REAL (%g to %g)\n",
+ cparam->name, cparam->text,
+ cparam->minimum.custom_real,
+ cparam->maximum.custom_real);
+ break;
+
+ case PPD_CUSTOM_STRING :
+ printf(" %s(%s): PPD_CUSTOM_STRING (%d to %d)\n",
+ cparam->name, cparam->text,
+ cparam->minimum.custom_string,
+ cparam->maximum.custom_string);
+ break;
+ }
+ }
+ }
}
}
/*
- * End of "$Id: testppd.c 5826 2006-08-15 19:04:11Z mike $".
+ * End of "$Id: testppd.c 6161 2006-12-19 20:10:22Z mike $".
*/
/*
- * "$Id: transcode.c 6115 2006-11-15 22:21:18Z mike $"
+ * "$Id: transcode.c 6188 2007-01-10 16:23:06Z mike $"
*
* Transcoding support for the Common UNIX Printing System (CUPS).
*
- * Copyright 1997-2006 by Easy Software Products.
+ * Copyright 1997-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are
* the property of Easy Software Products and are protected by Federal
encoding < 0 || encoding >= CUPS_ENCODING_VBCS_END)
{
strlcpy((char *)dest, src, maxout);
- return (strlen((char *)dest));
+ return ((int)strlen((char *)dest));
}
/*
*destptr = '\0';
- return (destptr - dest);
+ return ((int)(destptr - dest));
}
/*
encoding < 0 || encoding >= CUPS_ENCODING_VBCS_END)
{
strlcpy(dest, (char *)src, maxout);
- return (strlen(dest));
+ return ((int)strlen(dest));
}
/*
*destptr = '\0';
- return (destptr - dest);
+ return ((int)(destptr - dest));
}
/*
if (unichar < 0x80)
{
- *dest++ = (cups_vbcs_t)unichar;
+ *dest++ = (cups_sbcs_t)unichar;
continue;
}
/*
- * End of "$Id: transcode.c 6115 2006-11-15 22:21:18Z mike $"
+ * End of "$Id: transcode.c 6188 2007-01-10 16:23:06Z mike $"
*/
/*
- * "$Id: util.c 5716 2006-07-11 17:56:57Z mike $"
+ * "$Id: util.c 6145 2006-12-06 20:10:16Z mike $"
*
* Printing utilities for the Common UNIX Printing System (CUPS).
*
ippDelete(response);
}
- _cupsSetError(IPP_INTERNAL_ERROR, "No printer-uri found!");
+ if (cupsLastError() != IPP_NOT_FOUND)
+ _cupsSetError(IPP_INTERNAL_ERROR, "No printer-uri found!");
*host = '\0';
*resource = '\0';
/*
- * End of "$Id: util.c 5716 2006-07-11 17:56:57Z mike $".
+ * End of "$Id: util.c 6145 2006-12-06 20:10:16Z mike $".
*/
Comment[es]=Interfaz Web de CUPS
Name[et]=Trükkimise haldur
Comment[et]=CUPS-i veebiliides
+Name[fr]=Gestionnaire d'impression
+Comment[fr]=Interface Web de CUPS
Name[pl]=Zarządzanie drukowaniem
Comment[pl]=Interfejs WWW CUPS
Name[it]=Gestione stampa
-Comment[it]=Interfaccia web di CUPS
\ No newline at end of file
+Comment[it]=Interfaccia web di CUPS
<P><SMALL>Das Common UNIX Printing System, CUPS, und das CUPS Logo sind
Warenzeichen der <A HREF="http://www.easysw.com">Easy Software
-Products</A>. CUPS ist urheberrechtlich geschützt 1997-2006 von Easy Software Products,
+Products</A>. CUPS ist urheberrechtlich geschützt 1997-2007 von Easy Software Products,
Alle Rechte vorbehalten.</SMALL></P>
</TD>
<P><SMALL>Common UNIX Printing System, CUPS, y el logo de CUPS son
marcas registradas de <A HREF="http://www.easysw.com">Easy Software
-Products</A>. Los derechos de copia de CUPS 1997-2006 son de Easy Software Products.
+Products</A>. Los derechos de copia de CUPS 1997-2007 son de Easy Software Products.
Todos los derechos reservados.</SMALL></P>
</TD>
<P><SMALL>Common UNIX Printing System, CUPS ja CUPS-i logo on
firma <A HREF="http://www.easysw.com">Easy Software
-Products</A> kaubamärgid. CUPS-i autoriõigus 1997-2006: Easy Software Products,
+Products</A> kaubamärgid. CUPS-i autoriõigus 1997-2007: Easy Software Products,
kõik õigused kaitstud.</SMALL></P>
</TD>
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+<HTML>
+<HEAD>
+ <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+ <TITLE>Accueil - CUPS @CUPS_VERSION@@CUPS_REVISION@</TITLE>
+ <LINK REL="STYLESHEET" TYPE="text/css" HREF="/cups.css">
+ <LINK REL="SHORTCUT ICON" HREF="/favicon.ico" TYPE="image/x-icon">
+</HEAD>
+<BODY>
+<TABLE WIDTH="100%" STYLE="height: 100%;" BORDER="0" CELLSPACING="0" CELLPADDING="0" SUMMARY="Common UNIX Printing System @CUPS_VERSION@">
+<TR CLASS="header">
+<TD VALIGN="TOP" WIDTH="15" ROWSPAN="2"><IMG SRC="/images/top-left.gif" WIDTH="15" HEIGHT="80" ALT=""></TD>
+<TD VALIGN="TOP" WIDTH="55" ROWSPAN="2"><IMG SRC="/images/top-middle.gif" WIDTH="55" HEIGHT="80" ALT=""></TD>
+<TD WIDTH="100%" HEIGHT="60"><H1>Common UNIX Printing System @CUPS_VERSION@@CUPS_REVISION@</H1></TD>
+<TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="15" ROWSPAN="2"><IMG
+SRC="/images/top-right.gif" WIDTH="15" HEIGHT="15" ALT=""></TD>
+</TR>
+<TR CLASS="header"><TD WIDTH="100%" VALIGN="BOTTOM" NOWRAP>
+
+<A CLASS="sel" HREF="/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
+HEIGHT="4" ALIGN="TOP" BORDER="0"
+ALT=""> Accueil <IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+ <A CLASS="unsel" HREF="/admin/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
+HEIGHT="4" ALIGN="TOP" BORDER="0"
+ALT=""> Administration <IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+ <A CLASS="unsel" HREF="/classes/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
+HEIGHT="4" ALIGN="TOP" BORDER="0"
+ALT=""> Classes <IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+ <A CLASS="unsel" HREF="/help/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
+HEIGHT="4" ALIGN="TOP" BORDER="0"
+ALT=""> Documentation/Aide <IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+ <A CLASS="unsel" HREF="/jobs/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
+HEIGHT="4" ALIGN="TOP" BORDER="0"
+ALT=""> Tâches <IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+ <A CLASS="unsel" HREF="/printers/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
+HEIGHT="4" ALIGN="TOP" BORDER="0"
+ALT=""> Imprimantes <IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+</TD></TR>
+<TR CLASS="page">
+<TD WIDTH="15"> </TD>
+<TD COLSPAN="2" WIDTH="100%" VALIGN="TOP" CLASS="page">
+
+<H2 CLASS="title">Bienvenue !</H2>
+
+<P>Ces pages Web vous permettent de gérer vos imprimantes et vos tâches
+d'impression comme d'administrer le système. Cliquez sur les onglets ci-dessus ou
+sur les boutons ci-dessous pour effectuer une action.</P>
+
+<P>
+<A HREF="/help/"><IMG SRC="/images/button-help.gif" CLASS="button" ALT="Aide"></A>
+<A HREF="/admin?OP=add-class"><IMG SRC="/images/button-add-class.gif" CLASS="button" ALT="Ajouter une classe"></A>
+<A HREF="/admin?OP=add-printer"><IMG SRC="/images/button-add-printer.gif" CLASS="button" ALT="Ajouter une imprimante"></A>
+<A HREF="/classes"><IMG SRC="/images/button-manage-classes.gif" CLASS="button" ALT="Administrer les classes"></A>
+<A HREF="/jobs"><IMG SRC="/images/button-manage-jobs.gif" CLASS="button" ALT="Administrer les tâches"></A>
+<A HREF="/printers"><IMG SRC="/images/button-manage-printers.gif" CLASS="button" ALT="Administrer les imprimantes"></A>
+<A HREF="/admin"><IMG SRC="/images/button-manage-server.gif" CLASS="button" ALT="Administrer le serveur"></A>
+</P>
+
+<P><I>Si l'on vous demande de vous identifier, utilisez votre nom d'utilisateur et
+votre mot de passe UNIX ou bien identifiez-vous en tant que "root".</I></P>
+
+<H2 CLASS="title">À propos de CUPS</H2>
+
+<P>
+<IMG SRC="/images/happy.gif" ALIGN="LEFT" WIDTH="196" HEIGHT="144"
+STYLE="padding-right: 10px;" ALT="Ordinateur content et imprimante">
+
+<A HREF="http://www.easysw.com/"><IMG SRC="/images/esp-logo.gif"
+ALIGN="RIGHT" WIDTH="110" HEIGHT="68" BORDER="0"
+STYLE="padding-left: 10px; padding-bottom: 10px;"
+ALT="Easy Software Products"></A>
+
+CUPS propose une interface portable pour l'impression sur les systèmes
+UNIX<SUP>®</SUP>. Ce logiciel est développé et maintenu par <A HREF="http://www.easysw.com">Easy Software
+Products</a> afin de promouvoir une solution standard pour l'impression. CUPS
+est le système d'impression standard de MacOS<SUP>®</SUP> X et de la
+plupart des distributions Linux<SUP>®</SUP>.</P>
+
+<P>CUPS repose sur le protocole <A HREF="http://www.pwg.org/ipp/"
+TARGET="_blank">IPP ( Internet Printing Protocol )</A> pour la gestion des tâches
+d'impression et, pour être utilisable en pratique, y ajoute la détection
+d'imprimantes en réseau et des options d'impression fondées sur le format PPD (
+PostScript Printer Description ).<BR CLEAR="ALL"></P>
+
+<H2 CLASS="title">Pilotes d'imprimante et Assistance</H2>
+
+<P>Visitez le site officiel de CUPS pour avoir des pilotes d'imprimante ou toute
+autre assistance:</P>
+
+<PRE>
+ <A HREF="http://www.cups.org/" TARGET="_blank">www.cups.org</A>
+</PRE>
+
+<P>Vous pouvez obtenir un suivi commercial et une version améliorée de CUPS, <A
+HREF="http://www.easysw.com/printpro/">ESP Print Pro</A>, à l'adresse suivante:</P>
+
+<PRE>
+ <A HREF="http://www.easysw.com/" TARGET="_blank">www.easysw.com</A>
+</PRE>
+
+</TD>
+<TD WIDTH="15"> </TD>
+</TR>
+<TR CLASS="header">
+<TD VALIGN="BOTTOM" WIDTH="15"><IMG SRC="/images/bottom-left.gif"
+WIDTH="15" HEIGHT="15" ALT=""></TD>
+<TD COLSPAN="2" WIDTH="100%" STYLE="padding: 5;">
+
+<P><SMALL>Le logiciel CUPS ( Common UNIX Printing System ) et son logo sont
+propriété commerciale de <A HREF="http://www.easysw.com">Easy Software
+Products</A>. CUPS est sous copyright 1997-2006 par Easy Software Products, Tous
+Droits Réservés.</SMALL></P>
+
+</TD>
+
+<TD ALIGN="RIGHT" VALIGN="BOTTOM" WIDTH="15"><IMG SRC="/images/bottom-right.gif"
+WIDTH="15" HEIGHT="15" ALT=""></TD>
+</TR>
+</TABLE>
+</BODY>
+</HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+<HTML>
+<HEAD>
+ <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+ <TITLE>Accueil - CUPS @CUPS_VERSION@@CUPS_REVISION@</TITLE>
+ <LINK REL="STYLESHEET" TYPE="text/css" HREF="/cups.css">
+ <LINK REL="SHORTCUT ICON" HREF="/favicon.ico" TYPE="image/x-icon">
+</HEAD>
+<BODY>
+<TABLE WIDTH="100%" STYLE="height: 100%;" BORDER="0" CELLSPACING="0" CELLPADDING="0" SUMMARY="Common UNIX Printing System @CUPS_VERSION@">
+<TR CLASS="header">
+<TD VALIGN="TOP" WIDTH="15" ROWSPAN="2"><IMG SRC="/images/top-left.gif" WIDTH="15" HEIGHT="80" ALT=""></TD>
+<TD VALIGN="TOP" WIDTH="55" ROWSPAN="2"><IMG SRC="/images/top-middle.gif" WIDTH="55" HEIGHT="80" ALT=""></TD>
+<TD WIDTH="100%" HEIGHT="60"><H1>Common UNIX Printing System @CUPS_VERSION@@CUPS_REVISION@</H1></TD>
+<TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="15" ROWSPAN="2"><IMG
+SRC="/images/top-right.gif" WIDTH="15" HEIGHT="15" ALT=""></TD>
+</TR>
+<TR CLASS="header"><TD WIDTH="100%" VALIGN="BOTTOM" NOWRAP>
+
+<A CLASS="sel" HREF="/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
+HEIGHT="4" ALIGN="TOP" BORDER="0"
+ALT=""> Accueil <IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+ <A CLASS="unsel" HREF="/admin/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
+HEIGHT="4" ALIGN="TOP" BORDER="0"
+ALT=""> Administration <IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+ <A CLASS="unsel" HREF="/classes/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
+HEIGHT="4" ALIGN="TOP" BORDER="0"
+ALT=""> Classes <IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+ <A CLASS="unsel" HREF="/help/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
+HEIGHT="4" ALIGN="TOP" BORDER="0"
+ALT=""> Documentation/Aide <IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+ <A CLASS="unsel" HREF="/jobs/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
+HEIGHT="4" ALIGN="TOP" BORDER="0"
+ALT=""> Tâches <IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+ <A CLASS="unsel" HREF="/printers/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
+HEIGHT="4" ALIGN="TOP" BORDER="0"
+ALT=""> Imprimantes <IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+</TD></TR>
+<TR CLASS="page">
+<TD WIDTH="15"> </TD>
+<TD COLSPAN="2" WIDTH="100%" VALIGN="TOP" CLASS="page">
+
+<H2 CLASS="title">Bienvenue !</H2>
+
+<P>Ces pages Web vous permettent de gérer vos imprimantes et vos tâches
+d'impression comme d'administrer le système. Cliquez sur les onglets ci-dessus ou
+sur les boutons ci-dessous pour effectuer une action.</P>
+
+<P>
+<A HREF="/help/"><IMG SRC="/images/button-help.gif" CLASS="button" ALT="Aide"></A>
+<A HREF="/admin?OP=add-class"><IMG SRC="/images/button-add-class.gif" CLASS="button" ALT="Ajouter une classe"></A>
+<A HREF="/admin?OP=add-printer"><IMG SRC="/images/button-add-printer.gif" CLASS="button" ALT="Ajouter une imprimante"></A>
+<A HREF="/classes"><IMG SRC="/images/button-manage-classes.gif" CLASS="button" ALT="Administrer les classes"></A>
+<A HREF="/jobs"><IMG SRC="/images/button-manage-jobs.gif" CLASS="button" ALT="Administrer les tâches"></A>
+<A HREF="/printers"><IMG SRC="/images/button-manage-printers.gif" CLASS="button" ALT="Administrer les imprimantes"></A>
+<A HREF="/admin"><IMG SRC="/images/button-manage-server.gif" CLASS="button" ALT="Administrer le serveur"></A>
+</P>
+
+<P><I>Si l'on vous demande de vous identifier, utilisez votre nom d'utilisateur et
+votre mot de passe UNIX ou bien identifiez-vous en tant que "root".</I></P>
+
+<H2 CLASS="title">À propos de CUPS</H2>
+
+<P>
+<IMG SRC="/images/happy.gif" ALIGN="LEFT" WIDTH="196" HEIGHT="144"
+STYLE="padding-right: 10px;" ALT="Ordinateur content et imprimante">
+
+<A HREF="http://www.easysw.com/"><IMG SRC="/images/esp-logo.gif"
+ALIGN="RIGHT" WIDTH="110" HEIGHT="68" BORDER="0"
+STYLE="padding-left: 10px; padding-bottom: 10px;"
+ALT="Easy Software Products"></A>
+
+CUPS propose une interface portable pour l'impression sur les systèmes
+UNIX<SUP>®</SUP>. Ce logiciel est développé et maintenu par <A HREF="http://www.easysw.com">Easy Software
+Products</a> afin de promouvoir une solution standard pour l'impression. CUPS
+est le système d'impression standard de MacOS<SUP>®</SUP> X et de la
+plupart des distributions Linux<SUP>®</SUP>.</P>
+
+<P>CUPS repose sur le protocole <A HREF="http://www.pwg.org/ipp/"
+TARGET="_blank">IPP ( Internet Printing Protocol )</A> pour la gestion des tâches
+d'impression et, pour être utilisable en pratique, y ajoute la détection
+d'imprimantes en réseau et des options d'impression fondées sur le format PPD (
+PostScript Printer Description ).<BR CLEAR="ALL"></P>
+
+<H2 CLASS="title">Pilotes d'imprimante et Assistance</H2>
+
+<P>Visitez le site officiel de CUPS pour avoir des pilotes d'imprimante ou toute
+autre assistance:</P>
+
+<PRE>
+ <A HREF="http://www.cups.org/" TARGET="_blank">www.cups.org</A>
+</PRE>
+
+<P>Vous pouvez obtenir un suivi commercial et une version améliorée de CUPS, <A
+HREF="http://www.easysw.com/printpro/">ESP Print Pro</A>, à l'adresse suivante:</P>
+
+<PRE>
+ <A HREF="http://www.easysw.com/" TARGET="_blank">www.easysw.com</A>
+</PRE>
+
+</TD>
+<TD WIDTH="15"> </TD>
+</TR>
+<TR CLASS="header">
+<TD VALIGN="BOTTOM" WIDTH="15"><IMG SRC="/images/bottom-left.gif"
+WIDTH="15" HEIGHT="15" ALT=""></TD>
+<TD COLSPAN="2" WIDTH="100%" STYLE="padding: 5;">
+
+<P><SMALL>Le logiciel CUPS ( Common UNIX Printing System ) et son logo sont
+propriété commerciale de <A HREF="http://www.easysw.com">Easy Software
+Products</A>. CUPS est sous copyright 1997-2006 par Easy Software Products, Tous
+Droits Réservés.</SMALL></P>
+
+</TD>
+
+<TD ALIGN="RIGHT" VALIGN="BOTTOM" WIDTH="15"><IMG SRC="/images/bottom-right.gif"
+WIDTH="15" HEIGHT="15" ALT=""></TD>
+</TR>
+</TABLE>
+</BODY>
+</HTML>
<ul>
<li><a href='#cups_adv_e'><tt>cups_adv_e</tt></a> </li>
<li><a href='#cups_bool_e'><tt>cups_bool_e</tt></a> </li>
- <li><a href='#cups_cspace_e'><tt>cups_cspace_e</tt></a> </li>
- <li><a href='#cups_cut_e'><tt>cups_cut_e</tt></a> </li>
- <li><a href='#cups_edge_e'><tt>cups_edge_e</tt></a> </li>
- <li><a href='#cups_jog_e'><tt>cups_jog_e</tt></a> </li>
- <li><a href='#cups_mode_e'><tt>cups_mode_e</tt></a> </li>
- <li><a href='#cups_order_e'><tt>cups_order_e</tt></a> </li>
- <li><a href='#cups_orient_e'><tt>cups_orient_e</tt></a> </li>
</ul>
<!-- NEW PAGE -->
<h3 class='title'><a name='cups_adv_e'>cups_adv_e</a></h3>
<h4>Description</h4>
-<p></p>
+<p>AdvanceMedia attribute values</p>
<h4>Values</h4>
<div class='table'><table align='center' border='1' width='80%'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tr><td><tt>CUPS_TRUE</tt> </td><td>Logical true</td></tr>
</tbody></table></div>
<!-- NEW PAGE -->
-<h3 class='title'><a name='cups_cspace_e'>cups_cspace_e</a></h3>
-<h4>Description</h4>
-<p></p>
-<h4>Values</h4>
-<div class='table'><table align='center' border='1' width='80%'>
-<thead><tr><th>Name</th><th>Description</th></tr></thead>
-<tbody>
-<tr><td><tt>CUPS_CSPACE_CIELab</tt> <span class='info'> CUPS 1.1.19 </span></td><td>CIE Lab </td></tr>
-<tr><td><tt>CUPS_CSPACE_CIEXYZ</tt> <span class='info'> CUPS 1.1.19 </span></td><td>CIE XYZ </td></tr>
-<tr><td><tt>CUPS_CSPACE_CMY</tt> </td><td>Cyan, magenta, yellow</td></tr>
-<tr><td><tt>CUPS_CSPACE_CMYK</tt> </td><td>Cyan, magenta, yellow, black</td></tr>
-<tr><td><tt>CUPS_CSPACE_GMCK</tt> </td><td>Gold, magenta, yellow, black</td></tr>
-<tr><td><tt>CUPS_CSPACE_GMCS</tt> </td><td>Gold, magenta, yellow, silver</td></tr>
-<tr><td><tt>CUPS_CSPACE_GOLD</tt> </td><td>Gold foil</td></tr>
-<tr><td><tt>CUPS_CSPACE_ICC1</tt> <span class='info'> CUPS 1.1.19 </span></td><td>ICC-based, 1 color </td></tr>
-<tr><td><tt>CUPS_CSPACE_ICC2</tt> <span class='info'> CUPS 1.1.19 </span></td><td>ICC-based, 2 colors </td></tr>
-<tr><td><tt>CUPS_CSPACE_ICC3</tt> <span class='info'> CUPS 1.1.19 </span></td><td>ICC-based, 3 colors </td></tr>
-<tr><td><tt>CUPS_CSPACE_ICC4</tt> <span class='info'> CUPS 1.1.19 </span></td><td>ICC-based, 4 colors </td></tr>
-<tr><td><tt>CUPS_CSPACE_ICC5</tt> <span class='info'> CUPS 1.1.19 </span></td><td>ICC-based, 5 colors </td></tr>
-<tr><td><tt>CUPS_CSPACE_ICC6</tt> <span class='info'> CUPS 1.1.19 </span></td><td>ICC-based, 6 colors </td></tr>
-<tr><td><tt>CUPS_CSPACE_ICC7</tt> <span class='info'> CUPS 1.1.19 </span></td><td>ICC-based, 7 colors </td></tr>
-<tr><td><tt>CUPS_CSPACE_ICC8</tt> <span class='info'> CUPS 1.1.19 </span></td><td>ICC-based, 8 colors </td></tr>
-<tr><td><tt>CUPS_CSPACE_ICC9</tt> <span class='info'> CUPS 1.1.19 </span></td><td>ICC-based, 9 colors </td></tr>
-<tr><td><tt>CUPS_CSPACE_ICCA</tt> <span class='info'> CUPS 1.1.19 </span></td><td>ICC-based, 10 colors </td></tr>
-<tr><td><tt>CUPS_CSPACE_ICCB</tt> <span class='info'> CUPS 1.1.19 </span></td><td>ICC-based, 11 colors </td></tr>
-<tr><td><tt>CUPS_CSPACE_ICCC</tt> <span class='info'> CUPS 1.1.19 </span></td><td>ICC-based, 12 colors </td></tr>
-<tr><td><tt>CUPS_CSPACE_ICCD</tt> <span class='info'> CUPS 1.1.19 </span></td><td>ICC-based, 13 colors </td></tr>
-<tr><td><tt>CUPS_CSPACE_ICCE</tt> <span class='info'> CUPS 1.1.19 </span></td><td>ICC-based, 14 colors </td></tr>
-<tr><td><tt>CUPS_CSPACE_ICCF</tt> <span class='info'> CUPS 1.1.19 </span></td><td>ICC-based, 15 colors </td></tr>
-<tr><td><tt>CUPS_CSPACE_K</tt> </td><td>Black</td></tr>
-<tr><td><tt>CUPS_CSPACE_KCMY</tt> </td><td>Black, cyan, magenta, yellow</td></tr>
-<tr><td><tt>CUPS_CSPACE_KCMYcm</tt> </td><td>Black, cyan, magenta, yellow, *
-light-cyan, light-magenta</td></tr>
-<tr><td><tt>CUPS_CSPACE_RGB</tt> </td><td>Red, green, blue</td></tr>
-<tr><td><tt>CUPS_CSPACE_RGBA</tt> </td><td>Red, green, blue, alpha</td></tr>
-<tr><td><tt>CUPS_CSPACE_RGBW</tt> <span class='info'> CUPS 1.2 </span></td><td>Red, green, blue, white </td></tr>
-<tr><td><tt>CUPS_CSPACE_SILVER</tt> </td><td>Silver foil</td></tr>
-<tr><td><tt>CUPS_CSPACE_W</tt> </td><td>Luminance</td></tr>
-<tr><td><tt>CUPS_CSPACE_WHITE</tt> </td><td>White ink (as black)</td></tr>
-<tr><td><tt>CUPS_CSPACE_YMC</tt> </td><td>Yellow, magenta, cyan</td></tr>
-<tr><td><tt>CUPS_CSPACE_YMCK</tt> </td><td>Yellow, magenta, cyan, black</td></tr>
-</tbody></table></div>
-<!-- NEW PAGE -->
-<h3 class='title'><a name='cups_cut_e'>cups_cut_e</a></h3>
-<h4>Description</h4>
-<p></p>
-<h4>Values</h4>
-<div class='table'><table align='center' border='1' width='80%'>
-<thead><tr><th>Name</th><th>Description</th></tr></thead>
-<tbody>
-<tr><td><tt>CUPS_CUT_FILE</tt> </td><td>Cut the roll after this file</td></tr>
-<tr><td><tt>CUPS_CUT_JOB</tt> </td><td>Cut the roll after this job</td></tr>
-<tr><td><tt>CUPS_CUT_NONE</tt> </td><td>Never cut the roll</td></tr>
-<tr><td><tt>CUPS_CUT_PAGE</tt> </td><td>Cut the roll after this page</td></tr>
-<tr><td><tt>CUPS_CUT_SET</tt> </td><td>Cut the roll after this set</td></tr>
-</tbody></table></div>
-<!-- NEW PAGE -->
-<h3 class='title'><a name='cups_edge_e'>cups_edge_e</a></h3>
-<h4>Description</h4>
-<p></p>
-<h4>Values</h4>
-<div class='table'><table align='center' border='1' width='80%'>
-<thead><tr><th>Name</th><th>Description</th></tr></thead>
-<tbody>
-<tr><td><tt>CUPS_EDGE_BOTTOM</tt> </td><td>Leading edge is the bottom of the page</td></tr>
-<tr><td><tt>CUPS_EDGE_LEFT</tt> </td><td>Leading edge is the left of the page</td></tr>
-<tr><td><tt>CUPS_EDGE_RIGHT</tt> </td><td>Leading edge is the right of the page</td></tr>
-<tr><td><tt>CUPS_EDGE_TOP</tt> </td><td>Leading edge is the top of the page</td></tr>
-</tbody></table></div>
-<!-- NEW PAGE -->
-<h3 class='title'><a name='cups_jog_e'>cups_jog_e</a></h3>
-<h4>Description</h4>
-<p></p>
-<h4>Values</h4>
-<div class='table'><table align='center' border='1' width='80%'>
-<thead><tr><th>Name</th><th>Description</th></tr></thead>
-<tbody>
-<tr><td><tt>CUPS_JOG_FILE</tt> </td><td>Move pages after this file</td></tr>
-<tr><td><tt>CUPS_JOG_JOB</tt> </td><td>Move pages after this job</td></tr>
-<tr><td><tt>CUPS_JOG_NONE</tt> </td><td>Never move pages</td></tr>
-<tr><td><tt>CUPS_JOG_SET</tt> </td><td>Move pages after this set</td></tr>
-</tbody></table></div>
-<!-- NEW PAGE -->
-<h3 class='title'><a name='cups_mode_e'>cups_mode_e</a></h3>
-<h4>Description</h4>
-<p>Raster modes</p>
-<h4>Values</h4>
-<div class='table'><table align='center' border='1' width='80%'>
-<thead><tr><th>Name</th><th>Description</th></tr></thead>
-<tbody>
-<tr><td><tt>CUPS_RASTER_READ</tt> </td><td>Open stream for reading</td></tr>
-<tr><td><tt>CUPS_RASTER_WRITE</tt> </td><td>Open stream for writing</td></tr>
-</tbody></table></div>
-<!-- NEW PAGE -->
-<h3 class='title'><a name='cups_order_e'>cups_order_e</a></h3>
-<h4>Description</h4>
-<p></p>
-<h4>Values</h4>
-<div class='table'><table align='center' border='1' width='80%'>
-<thead><tr><th>Name</th><th>Description</th></tr></thead>
-<tbody>
-<tr><td><tt>CUPS_ORDER_BANDED</tt> </td><td>CCC MMM YYY KKK ...</td></tr>
-<tr><td><tt>CUPS_ORDER_CHUNKED</tt> </td><td>CMYK CMYK CMYK ...</td></tr>
-<tr><td><tt>CUPS_ORDER_PLANAR</tt> </td><td>CCC ... MMM ... YYY ... KKK ...</td></tr>
-</tbody></table></div>
-<!-- NEW PAGE -->
-<h3 class='title'><a name='cups_orient_e'>cups_orient_e</a></h3>
-<h4>Description</h4>
-<p></p>
-<h4>Values</h4>
-<div class='table'><table align='center' border='1' width='80%'>
-<thead><tr><th>Name</th><th>Description</th></tr></thead>
-<tbody>
-<tr><td><tt>CUPS_ORIENT_0</tt> </td><td>Don't rotate the page</td></tr>
-<tr><td><tt>CUPS_ORIENT_180</tt> </td><td>Turn the page upside down</td></tr>
-<tr><td><tt>CUPS_ORIENT_270</tt> </td><td>Rotate the page clockwise</td></tr>
-<tr><td><tt>CUPS_ORIENT_90</tt> </td><td>Rotate the page counter-clockwise</td></tr>
-</tbody></table></div>
-<!-- NEW PAGE -->
<h2 class='title'><a name='FUNCTIONS'>Functions</a></h2>
<ul>
<li><a href='#cupsRasterClose'><tt>cupsRasterClose()</tt></a> </li>
supported raster format and then returns 0 on success and -1 if the
requested attributes cannot be supported.
+cupsRasterInterpretPPD() supports a subset of the PostScript language.
+Currently only the [, ], <<, >>, {, }, cleartomark, copy, dup, index,
+pop, roll, setpagedevice, and stopped operators are supported.
+
</p>
<h4>Syntax</h4>
<pre>
<!-- NEW PAGE -->
<h3 class='title'><a name='cups_page_header_s'>cups_page_header_s</a></h3>
<h4>Description</h4>
-<p></p>
+<p>Version 1 Page Header</p>
<h4>Definition</h4>
<pre>
struct cups_page_header_s
<ul>
<li><a href='#cups_interpret_cb_t'><tt>cups_interpret_cb_t</tt></a> </li>
<li><a href='#cups_page_header2_t'><tt>cups_page_header2_t</tt></a> <span class='info'> CUPS 1.2 </span></li>
+ <li><a href='#cups_page_header_t'><tt>cups_page_header_t</tt></a> </li>
<li><a href='#cups_raster_t'><tt>cups_raster_t</tt></a> </li>
</ul>
<!-- NEW PAGE -->
typedef struct <a href='#cups_page_header2_s'>cups_page_header2_s</a> cups_page_header2_t;
</pre>
<!-- NEW PAGE -->
+<h3 class='title'><a name='cups_page_header_t'>cups_page_header_t</a></h3>
+<h4>Description</h4>
+<p>Version 1 Page Header</p>
+<h4>Definition</h4>
+<pre>
+typedef struct <a href='#cups_page_header_s'>cups_page_header_s</a> cups_page_header_t;
+</pre>
+<!-- NEW PAGE -->
<h3 class='title'><a name='cups_raster_t'>cups_raster_t</a></h3>
<h4>Description</h4>
<p>Raster stream data</p>
</HEAD>
<BODY>
-<P ALIGN="CENTER">Copyright 1997-2006 by Easy Software Products<BR>
+<P ALIGN="CENTER">Copyright 1997-2007 by Easy Software Products<BR>
44141 AIRPORT VIEW DR STE 204<BR>
HOLLYWOOD, MARYLAND 20636 USA<BR>
<BR>
</HEAD>
<BODY>
-<H2 CLASS="title"><A NAME="URI">Network Printer URIs</A></H2>
+<P>This help document describes how to discover, configure, and use TCP/IP network printers with CUPS.</P>
-<P>Once you have set the IP address you can access the printer or
-print server using the <CODE>ipp</CODE>, <CODE>lpd</CODE>, or
-<CODE>socket</CODE> backends. The following is a list of common
-network interfaces and printer servers and the settings you
-should use with CUPS:</P>
+<H2 CLASS="title"><A NAME="ADDRESS">Getting the IP Address</A></H2>
+
+<P>Every network printer or print server has a unique Internet Protocol (IP) address associated with it. This address is either configured manually or set using an automatic network protocol such as the <A HREF="#BOOTP">Boot Protocol (BOOTP)</A>, <A HREF="#DHCP">Dynamic Host Control Protocol (DHCP)</A>, Reverse Address Resolution Protocol (RARP), or ZeroConf.</P>
+
+<P>You can normally find the IP address of a printer on the printer's control panel or by printing the configuration or status page. The <A HREF="#SNMP">Simple Network Management Protocol (SNMP)</A> can also be used to get the IP address remotely, which happens automatically when you visit the CUPS administration web page or choose an available CUPS device when adding a printer.</P>
+
+
+<H2 CLASS="title"><A NAME="CONFIG">Configuring the IP Address</A></H2>
+
+<P>When you first install a network printer or print server on your LAN, you need to set the Internet Protocol ("IP") address. Most higher-end "workgroup" printers allow you to set the address through the printer control panel. However, if you have many printers you will want to assign the addresses remotely - this makes administration a bit easier and avoids assigning duplicate addresses accidentally.</P>
+
+<P>To setup your printer or print server for remote address assignment, you'll need the Ethernet Media Access Control ("MAC") address, also sometimes called a node address, and the IP address you want to use for the device. The Ethernet MAC address can often be found on the printer test page or bottom of the print server.</P>
+
+<H3><A NAME="DHCP">Configuring the IP Address Using DHCP</A></H3>
+
+<P>The DHCP protocol is the usual way of setting the IP address of a printer on a managed network. Using the standard <TT>dhcpd(8)</TT> program supplied with UNIX you simply need to add a line to the <VAR>/etc/dhcpd.conf</VAR> file:</P>
+
+<PRE CLASS="command">
+host <I>hostname</I> {
+ hardware ethernet <I>mac-address</I>;
+ fixed-address <I>ip-address</I>;
+}
+</PRE>
+
+<P>Make sure that the hostname you use is also listed in the <VAR>/etc/hosts</VAR> file or is registered with your DNS server.</P>
+
+<H3><A NAME="BOOTP">Configuring the IP Address Using BOOTP</A></H3>
+
+<P>The BOOTP protocol is used when you need to provide additional information such as the location of a configuration file to the network interface. Using the standard <TT>bootpd(8)</TT> program supplied with UNIX you simply need to add a line to the <VAR>/etc/bootptab</VAR> file; for IRIX:</P>
+
+<PRE CLASS="command">
+myprinter 08:00:69:00:12:34 192.0.2.2 <VAR>myprinter.boot</VAR>
+</PRE>
+
+<P>Newer versions of <TT>bootpd</TT> use a different format:</P>
+
+<PRE CLASS="command">
+myprinter:ha=080069001234:ip=192.0.2.2:<VAR>t144=myprinter.boot</VAR>
+</PRE>
+
+<P>The <VAR>myprinter.boot</VAR> file resides in the <VAR>/usr/local/boot</VAR> directory by default. If you do not need to provide a boot file you may leave the last part of the line blank.</P>
+
+<BLOCKQUOTE><B>Note:</B> Some versions of UNIX do not enable the BOOTP service by default. The <VAR>/etc/inetd.conf</VAR> or <VAR>/etc/xinetd.d/bootp</VAR> file usually contains a line for the BOOTP service that can be uncommented if needed.</BLOCKQUOTE>
+
+
+<H2 CLASS="title"><A NAME="VERIFY">Verifying the Printer Connection</A></H2>
+
+<P>To test that the IP address has been successfully assigned and
+that the printer is properly connected to your LAN, type:</P>
+
+<PRE CLASS="command">
+<KBD>ping ip-address</KBD>
+</PRE>
+
+<P>If the connection is working properly you will see something
+like:</P>
+
+<PRE CLASS="command">
+<KBD>ping myprinter</KBD>
+PING myprinter (192.0.2.2): 56 data bytes
+64 bytes from 192.0.2.2: icmp_seq=0 ttl=15 time=5 ms
+64 bytes from 192.0.2.2: icmp_seq=1 ttl=15 time=3 ms
+64 bytes from 192.0.2.2: icmp_seq=2 ttl=15 time=3 ms
+64 bytes from 192.0.2.2: icmp_seq=3 ttl=15 time=3 ms
+</PRE>
+
+<P>If not, verify that the printer or print server is connected
+to the LAN, it is powered on, the LAN cabling is good, and the IP
+address is set correctly. You can usually see the current IP
+address and network status by printing a configuration or test
+page on the device.</P>
+
+
+<H2 CLASS="title"><A NAME="PROTOCOLS">Network Protocols Supported by CUPS</H2>
+
+<P>CUPS supports most network printers using one of three TCP/IP-based protocols. Printer discovery is currently accomplished using the SNMP protocol, however future versions of CUPS will also include support for multicast DNS service discovery as well.</P>
+
+<H3><A NAME="SOCKET">AppSocket Protocol</A></H3>
+
+<P>The AppSocket protocol (sometimes also called the JetDirect protocol, owing to its origins with the HP JetDirect network interfaces) is the simplest, fastest, and generally the most reliable network protocol used for printers. AppSocket printing normally happens over port 9100 and uses the <tt>socket</tt> URI scheme:</P>
+
+<PRE>
+socket://<i>ip-address-or-hostname</i>
+socket://<i>ip-address-or-hostname</i>?waiteof=false
+socket://<i>ip-address-or-hostname</i>:<i>port-number</i>
+socket://<i>ip-address-or-hostname</i>:<i>port-number</i>?waiteof=false
+</PRE>
+
+<P>The "waiteof" option controls whether the <tt>socket</tt> backend waits for the printer to complete the printing of the job. The default is to wait.</P>
+
+<H3><A NAME="IPP">Internet Printing Protocol (IPP)</A></H3>
+
+<P>IPP is the only protocol that CUPS supports natively, and is also supported by many network printers. We recommend using this protocol over others whenever the printer or server supports it. IPP printing normally happens over port 631 and uses the <tt>http</tt> and <tt>ipp</tt> URI schemes:</P>
+
+<PRE>
+http://<i>ip-address-or-hostname</i>:<i>port-number</i>/<i>resource</i>
+http://<i>ip-address-or-hostname</i>:<i>port-number</i>/<i>resource</i>?<i>option=value</i>
+http://<i>ip-address-or-hostname</i>:<i>port-number</i>/<i>resource</i>?<i>option=value&option=value</i>
+ipp://<i>ip-address-or-hostname</i>/<i>resource</i>
+ipp://<i>ip-address-or-hostname</i>/<i>resource</i>?<i>option=value</i>
+ipp://<i>ip-address-or-hostname</i>/<i>resource</i>?<i>option=value&option=value</i>
+ipp://<i>ip-address-or-hostname</i>:<i>port-number</i>/<i>resource</i>
+ipp://<i>ip-address-or-hostname</i>:<i>port-number</i>/<i>resource</i>?<i>option=value</i>
+ipp://<i>ip-address-or-hostname</i>:<i>port-number</i>/<i>resource</i>?<i>option=value&option=value</i>
+</PRE>
+
+<P>The <tt>ipp</tt> backend supports many options, which are summarized in <A HREF="#TABLE2">Table 2</A>.</P>
+
+<DIV CLASS="table"><TABLE SUMMARY="IPP URI Options">
+<CAPTION>Table 2: <A NAME="TABLE2">IPP URI Options</A></CAPTION>
+<THEAD>
+<TR>
+ <TH>Option</TH>
+ <TH>Description</TH>
+</TR>
+</THEAD>
+<TBODY>
+<TR>
+ <TD><TT>compression=gzip</TT></TD>
+ <TD>Specifies that print data should be compressed before sending.</TD>
+</TR>
+<TR>
+ <TD><TT>encryption=always</TT></TD>
+ <TD>Specifies that the connection to the IPP server should be encrypted using SSL.</TD>
+</TR>
+<TR>
+ <TD><TT>encryption=ifrequested</TT></TD>
+ <TD>Specifies that the connection to the IPP server should only be encrypted if the server requests it.</TD>
+</TR>
+<TR>
+ <TD><TT>encryption=never</TT></TD>
+ <TD>Specifies that the connection to the IPP server should not be encrypted.</TD>
+</TR>
+<TR>
+ <TD><TT>encryption=required</TT></TD>
+ <TD>Specifies that the connection to the IPP server should be encrypted using TLS.</TD>
+</TR>
+<TR>
+ <TD><TT>version=1.0</TT></TD>
+ <TD>Specifies that version 1.0 of the IPP protocol should be used instead of the default version 1.1.</TD>
+</TR>
+<TR>
+ <TD><TT>waitjob=false</TT></TD>
+ <TD>Specifies that the IPP backend should not wait for the job to complete.</TD>
+</TR>
+<TR>
+ <TD><TT>waitprinter=false</TT></TD>
+ <TD>Specifies that the IPP backend should not wait for the printer to become idle before sending the print job.</TD>
+</TR>
+</TBODY>
+</TABLE></DIV>
+
+<H3><A NAME="LPD">Line Printer Daemon (LPD) Protocol</A></H3>
+
+<P>LPD is the original network printing protocol and is supported by many network printers. Due to limitations in the LPD protocol, we do not recommend using it if the printer or server supports one of the other protocols. LPD printing normally happens over port 515 and uses the <tt>lpd</tt> URI scheme:</P>
+
+<PRE>
+lpd://<i>ip-address-or-hostname</i>/<i>queue</i>
+lpd://<i>ip-address-or-hostname</i>/<i>queue</i>?<i>option=value</i>
+lpd://<i>ip-address-or-hostname</i>/<i>queue</i>?<i>option=value&option=value</i>
+</PRE>
+
+<P><A HREF="#TABLE3">Table 3</A> summarizes the options supported by the <tt>lpd</tt> backend.</P>
+
+<DIV CLASS="table"><TABLE SUMMARY="LPD URI Options">
+<CAPTION>Table 3: <A NAME="TABLE3">LPD URI Options</A></CAPTION>
+<THEAD>
+<TR>
+ <TH>Option</TH>
+ <TH>Description</TH>
+</TR>
+</THEAD>
+<TBODY>
+<TR>
+ <TD><TT>banner=on</TT></TD>
+ <TD>Specifies that a banner page should be printed by the server.</TD>
+</TR>
+<TR>
+ <TD><TT>contimeout=<I>seconds</I></TT></TD>
+ <TD>Specifies the number of seconds to wait for the connection to the server to complete.</TD>
+</TR>
+<TR>
+ <TD><TT>format=c</TT></TD>
+ <TD>Specifies that the print data is a CIF file.</TD>
+</TR>
+<TR>
+ <TD><TT>format=d</TT></TD>
+ <TD>Specifies that the print data is a DVI file.</TD>
+</TR>
+<TR>
+ <TD><TT>format=f</TT></TD>
+ <TD>Specifies that the print data is a plain text file.</TD>
+</TR>
+<TR>
+ <TD><TT>format=g</TT></TD>
+ <TD>Specifies that the print data is a Berkeley plot file.</TD>
+</TR>
+<TR>
+ <TD><TT>format=l</TT></TD>
+ <TD>Specifies that the print data is a raw (preformatted) print file.</TD>
+</TR>
+<TR>
+ <TD><TT>format=n</TT></TD>
+ <TD>Specifies that the print data is a ditroff file.</TD>
+</TR>
+<TR>
+ <TD><TT>format=o</TT></TD>
+ <TD>Specifies that the print data is a PostScript file.</TD>
+</TR>
+<TR>
+ <TD><TT>format=p</TT></TD>
+ <TD>Specifies that the print data is a plain text file that should be "pretty" printed with a header and footer.</TD>
+</TR>
+<TR>
+ <TD><TT>format=r</TT></TD>
+ <TD>Specifies that the print data is a FORTRAN carriage control file.</TD>
+</TR>
+<TR>
+ <TD><TT>format=t</TT></TD>
+ <TD>Specifies that the print data is a troff Graphic Systems C/A/T phototypesetter file.</TD>
+</TR>
+<TR>
+ <TD><TT>format=v</TT></TD>
+ <TD>Specifies that the print data is a Sun raster file.</TD>
+</TR>
+<TR>
+ <TD><TT>order=data,control</TT></TD>
+ <TD>Specifies that the print data files should be sent before the control file.</TD>
+</TR>
+<TR>
+ <TD><TT>reserve=none</TT></TD>
+ <TD>Specifies that the backend should not reserve a source port.</TD>
+</TR>
+<TR>
+ <TD><TT>reserve=rfc1179</TT></TD>
+ <TD>Specifies that the backend should reserve a source port from 721 to 731 as required by RFC 1179.</TD>
+</TR>
+<TR>
+ <TD><TT>sanitize_title=no</TT></TD>
+ <TD>Specifies that the job title string should not be restricted to ASCII characters.</TD>
+</TR>
+<TR>
+ <TD><TT>sanitize_title=yes</TT></TD>
+ <TD>Specifies that the job title string should be restricted to ASCII characters.</TD>
+</TR>
+<TR>
+ <TD><TT>timeout=<I>seconds</I></TT></TD>
+ <TD>Specifies the number of seconds to wait for LPD commands to complete.</TD>
+</TR>
+</TBODY>
+</TABLE></DIV>
+
+
+<H3><A NAME="URI">Common Network Printer URIs</A></H3>
+
+<P>Once you have set the IP address you can access the printer or print server using the <TT>ipp</TT>, <TT>lpd</TT>, or <TT>socket</TT> backends. <A HREF="#TABLE1">Table 1</A> shows a list of common network interfaces and printer servers and the settings you should use with CUPS:</P>
<DIV CLASS="table"><TABLE SUMMARY="Common Device URIs">
-<CAPTION>Table 1: Common Device URIs</CAPTION>
+<CAPTION>Table 1: <A NAME="TABLE1">Common Device URIs</A></CAPTION>
<THEAD>
<TR>
<TH>Model/Manufacturer</TH>
</TBODY>
</TABLE></DIV>
-<H2 CLASS="title"><A NAME="ADDRESS">Getting the IP Address</A></H2>
-<P>When you first install a network printer or print server on
-your LAN, you need to set the Internet Protocol ("IP") address.
-On most higher-end "workgroup" printers, you can set the address
-through the printer control panel. However, in most cases you
-will want to assign the addresses remotely from your workstation.
-This makes administration a bit easier and avoids assigning
-duplicate addresses accidentally.</P>
-
-<P>To setup your printer or print server for remote address
-assignment, you'll need the Ethernet Media Access Control ("MAC")
-address, also sometimes called a node address, and the IP address
-you want to use for the device. The Ethernet MAC address can
-often be found on the printer test page or bottom of the print
-server.</P>
-
-<H3>Configuring the IP Address Using ARP</H3>
-
-<P>The easiest way to set the IP address of a network device is
-to use the <CODE>arp(8)</CODE> command. The <CODE>arp</CODE>
-sends an Address Resolution Protocol ("ARP") packet to the
-specified Ethernet MAC address, setting the network device's IP
-address:</P>
+<H2 CLASS="title"><A NAME="SNMP">Troubleshooting SNMP Discovery Problems</A></H2>
+
+<P>Whenever you view the administration web page or a list of supported device URIs, the <tt>snmp</tt> backend will probe the local network(s) using Simple Network Management Protocol (SNMP) broadcasts. Printers that respond to these broadcasts are then interrogated for the make and model and supported protocols, yielding a device URI that can be used to add the printer.</P>
+
+<P>That said, the SNMP requests sometimes expose problems in vendor SNMP or IPP implementations. If you are experiencing long delays in loading the CUPS web interface administration page, or if you don't see your printer listed, the following instructions will help you to diagnose those problems and/or provide important feedback to the CUPS developers so that we can correct problems and improve the SNMP backend in future releases.</P>
+
+<H3>Quick Fixes</H3>
+
+<P>If you don't use "public" as your community name, create a text file called <VAR>/etc/cups/snmp.conf</VAR> and put the following line in it:</P>
<PRE CLASS="command">
-<KBD>arp -s ip-address ethernet-address</KBD>
-<KBD>arp -s host.domain.com 08:00:69:00:12:34</KBD>
-<KBD>arp -s 192.0.2.2 08:00:69:00:12:34</KBD>
+Community <I>your community name</I>
</PRE>
-<H3>Configuring the IP Address Using RARP</H3>
+<P>If you have more than one community name, list them all on separate lines.</P>
-<P>The most flexible way to remotely assign IP addresses under
-UNIX is through the Reverse Address Resolution Protocol ("RARP").
-RARP allows a network device to request an IP address using its
-Ethernet MAC address, and one or more RARP servers on the network
-will respond with an ARP packet with the IP address the device
-can use.</P>
+<P>If you don't support SNMP v1 on your network, you are currently "out of luck". That said, we will be adding v2, v2c, and v3 support in future CUPS releases once we have a handle on the actual requirements people have for such things. Please file or update an <A HREF="http://www.cups.org/str.php">SNMP enhancement request</A> with <em>specific</em> requirements you have - what you need supported, why you need it supported, and how you would like to see the functionality provided/exposed - so that we can do it "right" the first time.</P>
-<P>RARP should be used when you have to manage many printers or
-print servers, or when you have a network device that does not
-remember its IP address after a power cycle. If you just have a
-single printer or print server, the <CODE>arp</CODE> command is
-the way to go.</P>
+<H3>Basic Debugging</H3>
-<P>Some UNIX operating systems use a program called
-<CODE>rarpd(8)</CODE> to manage RARP. Others, like Linux, support
-this protocol in the kernel. For systems that provide the
-<CODE>rarpd</CODE> program you will need to start it before RARP
-lookups will work:</P>
+<P>The SNMP backend supports a debugging mode that is activated by running it from a shell prompt. If you are using Bash (/bin/bash), Bourne shell (/bin/sh), Korn shell (/bin/ksh), or Z shell (/bin/zsh), you can run the following command to get a verbose log of the SNMP backend:</P>
<PRE CLASS="command">
-<KBD>rarpd</KBD>
+CUPS_DEBUG_LEVEL=2 /usr/lib/cups/backend/snmp 2>&1 | tee snmp.log
</PRE>
-<P>Under IRIX you can enable this functionality by default
-using:</P>
+<P>For C shell (/bin/csh) and TCsh (/bin/tcsh), use the following command instead:</P>
<PRE CLASS="command">
-<KBD>chkconfig rarpd on</KBD>
+(setenv CUPS_DEBUG_LEVEL 2; /usr/lib/cups/backend/snmp) |& tee snmp.log
</PRE>
-<P>Both the <CODE>rarpd</CODE> program and kernel RARP support
-read a list of Ethernet and IP addresses from the file
-<VAR>/etc/ethers</VAR>. Each line contains the Ethernet address
-(colon delimited) followed by an IP address or hostname like:</P>
+<P>On MacOS X you'll find the SNMP backend in /usr/libexec/cups/backend instead:</P>
<PRE CLASS="command">
-08:00:69:00:12:34 myprinter.mydomain.com
-08:00:69:00:12:34 192.0.2.2
+CUPS_DEBUG_LEVEL=2 /usr/libexec/cups/backend/snmp 2>&1 | tee snmp.log
</PRE>
-<P>Add a line to this file and cycle the power on the printer or
-print server to set its address.</P>
-
-<H3>Configuring the IP Address Using BOOTP</H3>
-
-<P>The BOOTP protocol is used when you need to provide additional
-information such as the location of a configuration file to the
-network interface. Using the standard <CODE>bootpd(8)</CODE>
-program supplied with UNIX you simply need to add a line to the
-<VAR>/etc/bootptab</VAR> file; for IRIX:</P>
-
-<PRE CLASS="command">
-myprinter 08:00:69:00:12:34 192.0.2.2 <VAR>myprinter.boot</VAR>
+<P>The output will look something like this:</P>
+
+<PRE STYLE="margin-left: 36pt">
+ 1 INFO: Using default SNMP Address @LOCAL
+ 2 INFO: Using default SNMP Community public
+ 3 DEBUG: Scanning for devices in "public" via "@LOCAL"...
+ 4 DEBUG: 0.000 Sending 46 bytes to 192.168.2.255...
+ 5 DEBUG: SEQUENCE 44 bytes
+ 6 DEBUG: INTEGER 1 bytes 0
+ 7 DEBUG: OCTET STRING 6 bytes "public"
+ 8 DEBUG: Get-Request-PDU 31 bytes
+ 9 DEBUG: INTEGER 4 bytes 1149539174
+10 DEBUG: INTEGER 1 bytes 0
+11 DEBUG: INTEGER 1 bytes 0
+12 DEBUG: SEQUENCE 17 bytes
+13 DEBUG: SEQUENCE 15 bytes
+14 DEBUG: OID 11 bytes .1.3.6.1.2.1.25.3.2.1.2.1
+15 DEBUG: NULL VALUE 0 bytes
+16 DEBUG: 0.001 Received 55 bytes from 192.168.2.229...
+17 DEBUG: community="public"
+18 DEBUG: request-id=1149539174
+19 DEBUG: error-status=0
+20 DEBUG: SEQUENCE 53 bytes
+21 DEBUG: INTEGER 1 bytes 0
+22 DEBUG: OCTET STRING 6 bytes "public"
+23 DEBUG: Get-Response-PDU 40 bytes
+24 DEBUG: INTEGER 4 bytes 1149539174
+25 DEBUG: INTEGER 1 bytes 0
+26 DEBUG: INTEGER 1 bytes 0
+27 DEBUG: SEQUENCE 26 bytes
+28 DEBUG: SEQUENCE 24 bytes
+29 DEBUG: OID 11 bytes .1.3.6.1.2.1.25.3.2.1.2.1
+30 DEBUG: OID 9 bytes .1.3.6.1.2.1.25.3.1.5
+31 DEBUG: add_cache(addr=0xbfffe170, addrname="192.168.2.229",
+ uri="(null)", id="(null)", make_and_model="(null)")
+32 DEBUG: 0.002 Sending 46 bytes to 192.168.2.229...
+33 DEBUG: SEQUENCE 44 bytes
+34 DEBUG: INTEGER 1 bytes 0
+35 DEBUG: OCTET STRING 6 bytes "public"
+36 DEBUG: Get-Request-PDU 31 bytes
+37 DEBUG: INTEGER 4 bytes 1149539175
+38 DEBUG: INTEGER 1 bytes 0
+39 DEBUG: INTEGER 1 bytes 0
+40 DEBUG: SEQUENCE 17 bytes
+41 DEBUG: SEQUENCE 15 bytes
+42 DEBUG: OID 11 bytes .1.3.6.1.2.1.25.3.2.1.3.1
+43 DEBUG: NULL VALUE 0 bytes
+44 DEBUG: 0.003 Received 69 bytes from 192.168.2.229...
+45 DEBUG: community="public"
+46 DEBUG: request-id=1149539175
+47 DEBUG: error-status=0
+48 DEBUG: SEQUENCE 67 bytes
+49 DEBUG: INTEGER 1 bytes 0
+50 DEBUG: OCTET STRING 6 bytes "public"
+51 DEBUG: Get-Response-PDU 54 bytes
+52 DEBUG: INTEGER 4 bytes 1149539175
+53 DEBUG: INTEGER 1 bytes 0
+54 DEBUG: INTEGER 1 bytes 0
+55 DEBUG: SEQUENCE 40 bytes
+56 DEBUG: SEQUENCE 38 bytes
+57 DEBUG: OID 11 bytes .1.3.6.1.2.1.25.3.2.1.3.1
+58 DEBUG: OCTET STRING 23 bytes "HP LaserJet 4000
+ Series"
+59 DEBUG: 1.001 Probing 192.168.2.229...
+60 DEBUG: 1.001 Trying socket://192.168.2.229:9100...
+61 DEBUG: 192.168.2.229 supports AppSocket!
+62 DEBUG: 1.002 Scan complete!
+63 network socket://192.168.2.229 "HP LaserJet 4000 Series"
+ "HP LaserJet 4000 Series 192.168.2.229" ""
</PRE>
-<P>Newer versions of <CODE>bootpd</CODE> use a different
-format:</P>
+<H3>Dissecting the Output</H3>
-<PRE CLASS="command">
-myprinter:ha=080069001234:ip=192.0.2.2:<VAR>t144=myprinter.boot</VAR>
-</PRE>
+<P>The first two lines are just informational and let you know that the default community name and address are being used. Lines 3-15 contain the initial SNMP query for the device type OID (.1.3.6.1.2.1.25.3.2.1.2.1) from the Host MIB.</P>
-<P>The <VAR>myprinter.boot</VAR> file resides in the
-<VAR>/usr/local/boot</VAR> directory by default. If you do not
-need to provide a boot file you may leave the last part of the
-line blank.</P>
+<P>Lines 16-31 show the response we got from an HP LaserJet 4000 network printer. At this point we discover that it is a printer device and then send another SNMP query (lines 32-43) for the device description OID (.1.3.6.1.2.1.25.3.2.1.3.1) from the Host MIB as well.</P>
-<BLOCKQUOTE><B>Note:</B>
+<P>Lines 44-58 show the response to the device description query, which tells us that this is an HP LaserJet 4000 Series printer.</P>
-<P>Some versions of UNIX do not enable the BOOTP service by
-default. The <VAR>/etc/inetd.conf</VAR> usually contains a line
-for the BOOTP service that can be uncommented if needed.</P>
+<P>On line 59 we start our active connection probe and discover that this print server supports the AppSocket (JetDirect) protocol on port 9100.</P>
-</BLOCKQUOTE>
+<P>Finally, line 63 shows the device information line for the print server that is sent to CUPS.</P>
-<H2 CLASS="title"><A NAME="VERIFY">Verifying the Printer Connection</A></H2>
+<H3>Reporting Problems</H3>
-<P>To test that the IP address has been successfully assigned and
-that the printer is properly connected to your LAN, type:</P>
+If you don't see your printer listed, or the wrong information is listed, then you need to gather more information on the printer. The easiest way to do this is to run the snmpwalk command:
<PRE CLASS="command">
-<KBD>ping ip-address</KBD>
+snmpwalk -Cc -v 1 -c public <I>ip-address</I> | tee snmpwalk.log
</PRE>
-<P>If the connection is working properly you will see something
-like:</P>
+<P>where "ip-address" is the IP address of the printer or print server. You should see a <em>lot</em> of values stream by - the ones you want to see are:</P>
-<PRE CLASS="command">
-<KBD>ping myprinter</KBD>
-PING myprinter (192.0.2.2): 56 data bytes
-64 bytes from 192.0.2.2: icmp_seq=0 ttl=15 time=5 ms
-64 bytes from 192.0.2.2: icmp_seq=1 ttl=15 time=3 ms
-64 bytes from 192.0.2.2: icmp_seq=2 ttl=15 time=3 ms
-64 bytes from 192.0.2.2: icmp_seq=3 ttl=15 time=3 ms
+<PRE STYLE="margin-left: 36pt">
+HOST-RESOURCES-MIB::hrDeviceType.1 = OID: HOST-RESOURCES-TYPES::hrDevicePrinter
+HOST-RESOURCES-MIB::hrDeviceDescr.1 = STRING: HP LaserJet 4000 Series
</PRE>
-<P>If not, verify that the printer or print server is connected
-to the LAN, it is powered on, the LAN cabling is good, and the IP
-address is set correctly. You can usually see the current IP
-address and network status by printing a configuration or test
-page on the device.</P>
+<P>The hrDeviceType line should show hrDevicePrinter; if not, then your printer or print server doesn't identify itself as a printer. The hrDeviceDescr line should provide a human-readable string for the make and model of the printer, although in some cases you'll just see something less useful like "Axis OfficeBASIC Parallel Print Server".</P>
+
+<P>Once you have collected the snmpwalk output, you should go to the <A HREF="http://www.cups.org/str.php">CUPS Bugs & Features page</A> to submit a feature request to support your printer or print server. Be sure to attach those two log files you created - they will help us to identify the SNMP values we need to look for.</P>
+
+
+<H2 CLASS="title"><A NAME="SERVERS">Configuring Print Servers</A></H2>
-<H2 CLASS="title"><A NAME="AXIS">Configuring Axis Print Servers</A></H2>
+<H3><A NAME="AXIS">Configuring Axis Print Servers</A></H3>
-<P>The Axis print servers can be configured using ARP, RARP, or
-BOOTP. However, on models that do not provide IPP support an
-additional step must be performed to configure the TCP/IP portion
-of the print server for use with CUPS.</P>
+<P>The Axis print servers can be configured using BOOTP or DHCP. However, on models that do not provide IPP support an additional step must be performed to configure the TCP/IP portion of the print server for use with CUPS.</P>
-<P>Each print server contains a configuration file named
-<VAR>config</VAR> that contains a list of network parameters used
-by the server. To modify this file you must first download it
-from the print server using the <CODE>ftp(1)</CODE> program:</P>
+<P>Each print server contains a configuration file named <VAR>config</VAR> that contains a list of network parameters used by the server. To modify this file you must first download it from the print server using the <TT>ftp(1)</TT> program:</P>
<PRE CLASS="command">
<KBD>ftp ip-address</KBD>
221 Goodbye.
</PRE>
-<P>Next, edit the file with your favorite text editor and locate
-the lines beginning with:</P>
+<P>Next, edit the file with your favorite text editor and locate the lines beginning with:</P>
<PRE CLASS="command">
RTN_OPT. : YES
RTEL_PR8. : 0
</PRE>
-<P>Change the <CODE>RTN_OPT</CODE> line to read:</P>
+<P>Change the <TT>RTN_OPT</TT> line to read:</P>
<PRE CLASS="command">
RTN_OPT. : <KBD>NO</KBD>
</PRE>
-<P>This disables the Reverse TELNET protocol and enables the
-standard TELNET protocol on the print server. Next, assign a port
-number for each parallel and serial port on the server as
-follows:</P>
+<P>This disables the Reverse TELNET protocol and enables the standard TELNET protocol on the print server. Next, assign a port number for each parallel and serial port on the server as follows:</P>
<PRE CLASS="command">
RTEL_PR1. : <KBD>9100</KBD>
RTEL_PR8. : <KBD>9107</KBD>
</PRE>
-<P>This essentially makes the Axis print server look like a
-Hewlett Packard JetDirect EX print server. Save the file and then
-upload the new <VAR>config</VAR> file using the <CODE>ftp</CODE>
-command:</P>
+<P>This essentially makes the Axis print server look like a Hewlett Packard JetDirect EX print server. Save the file and then upload the new <VAR>config</VAR> file using the <TT>ftp</TT> command:</P>
<PRE CLASS="command">
<KBD>ftp ip-address</KBD>
<P>Your Axis print server is now ready for use!</P>
-<H2 CLASS="title"><A NAME="LINKSYS">Configuring Linksys Print Servers</A></H2>
+<H3><A NAME="LINKSYS">Configuring Linksys Print Servers</A></H3>
-<P>The Linksys print servers can be configured using ARP, RARP,
-or BOOTP. Like older Axis print servers, an additional step must
-be performed to configure the TCP/IP portion of the print server
-for use with CUPS.</P>
+<P>The Linksys print servers can be configured using BOOTP or DHCP. Like older Axis print servers, an additional step must be performed to configure the TCP/IP portion of the print server for use with CUPS.</P>
-<P>Each print server contains a configuration file named
-<VAR>CONFIG</VAR> that contains a list of network parameters used
-by the server. To modify this file you must first download it
-from the print server using the <CODE>ftp(1)</CODE> program:</P>
+<P>Each print server contains a configuration file named <VAR>CONFIG</VAR> that contains a list of network parameters used by the server. To modify this file you must first download it from the print server using the <TT>ftp(1)</TT> program:</P>
<PRE CLASS="command">
<KBD>ftp -n ip-address</KBD>
221 Goodbye.
</PRE>
-<P>Next, edit the file with your favorite text editor and locate
-the lines beginning with:</P>
+<P>Next, edit the file with your favorite text editor and locate the lines beginning with:</P>
<PRE CLASS="command">
0100 L1_PROUT:P1
0140 L3_PROUT:P1
</PRE>
-<P>Change the port number for each parallel and serial port on
-the server as follows:</P>
+<P>Change the port number for each parallel and serial port on the server as follows:</P>
<PRE CLASS="command">
0100 L1_PROUT:<KBD>P1</KBD>
0140 L3_PROUT:<KBD>P3</KBD>
</PRE>
-<P>This maps each virtual printer with a physical port. Save the
-file and then upload the new <VAR>CONFIG</VAR> file using the
-<CODE>ftp</CODE> command:</P>
+<P>This maps each virtual printer with a physical port. Save the file and then upload the new <VAR>CONFIG</VAR> file using the <TT>ftp</TT> command:</P>
<PRE CLASS="command">
<KBD>ftp -n ip-address</KBD>
<P>The available printer options vary depending on the printer.
The standard options are described in the "<A
HREF="#OPTIONS">Standard Printing Options</A>" section
-below.</P>
+below. Printer-specific options are also available and can be
+listed using the <B>lpoptions</B> command:</P>
+
+<PRE CLASS="command">
+lpoptions -p printer -l
+</PRE>
<H3><A NAME="COPIES">Printing Multiple Copies</A></H3>
lpoptions -p printer -l
</PRE>
+<P>When <CODE>Custom</CODE> is listed for the <CODE>PageSize</CODE> option, you can specify custom media sizes using one of the following forms:</P>
+
+<PRE CLASS="command">
+lp -o media=Custom.<I>WIDTH</I>x<I>LENGTH</I> filename
+lp -o media=Custom.<I>WIDTH</I>x<I>LENGTH</I>in filename
+lp -o media=Custom.<I>WIDTH</I>x<I>LENGTH</I>cm filename
+lp -o media=Custom.<I>WIDTH</I>x<I>LENGTH</I>mm filename
+</PRE>
+
+<P>where "WIDTH" and "LENGTH" are the width and length of the media in points, inches, centimeters, or millimeters, respectively.</P>
+
+
<H3><A NAME="ORIENTATION">Setting the Orientation</A></H3>
<P>The <CODE>-o landscape</CODE> option will rotate the page 90
</UL>
+
+<H3><A NAME="OUTPUTORDER">Specifying the Output Order</A></H3>
+
+<P>The <CODE>-o outputorder=normal</CODE> and <CODE>-o outputorder=reverse</CODE> options specify the order of the pages. Normal order prints page 1 first, page 2 second, and so forth. Reverse order prints page 1 last.</P>
+
+
<H3><A NAME="PAGERANGES">Selecting a Range of Pages</A></H3>
<P>The <CODE>-o page-ranges=pages</CODE> option selects a range
<VAR>/etc/cups/ssl/server.crt</VAR>.</P>
-<H2 CLASS="title"><A NAME="ServerName"></A>ServerName</H2>
+<H2 CLASS="title"><A NAME="ServerName">ServerName</A></H2>
<H3>Examples</H3>
</head>
<body>
<!--
- "$Id: spec-ppd.html 6096 2006-11-14 17:06:28Z mike $"
+ "$Id: spec-ppd.html 6158 2006-12-17 01:44:21Z mike $"
CUPS PPD extensions specification for the Common UNIX Printing System (CUPS).
*CloseUI: *WatermarkText
<em>*% Custom PostScript watermark option</em>
-*CustomWatermarkText True: "<</cupsString1 2 1 roll>>setpagedevice"
+*CustomWatermarkText True: "<</cupsString1 3 -1 roll>>setpagedevice"
*ParamCustomWatermarkText Text: 1 string 0 32
*CloseUI: *GammaDensity
<em>*% Custom PostScript gamma/density option</em>
-*CustomGammaDensity True: "<</cupsReal1 3 1 roll/cupsReal2 3 1>>setpagedevice"
+*CustomGammaDensity True: "<</cupsReal1 3 -1 roll/cupsReal2 5 -1>>setpagedevice"
*ParamCustomGammaDensity Gamma: 1 curve 0.1 10
*ParamCustomGammaDensity Density: 2 real 0 2
</pre>
</pre>
+<h2 class='title'><a name='RASTERPS'>Writing PostScript Option Commands for Raster Drivers</a></h2>
+
+<p>PPD files are used for both PostScript and non-PostScript printers. For CUPS raster drivers, you use a subset of the PostScript language to set page device attributes such as page size, resolution, and so forth. For example, the following code sets the page size to A4 size:</p>
+
+<pre class='command'>
+*PageSize A4: "<</PageSize[595 842]>>setpagedevice"
+</pre>
+
+<p>Custom options typically use other operators to organize the values into a key/value dictionary for <tt>setpagedevice</tt>. For example, our previous <tt>CustomWatermarkText</tt> option code uses the <tt>roll</tt> operator to move the custom string value into the dictionary for <tt>setpagedevice</tt>:</p>
+
+<pre class='command'>
+*CustomWatermarkText True: "<</cupsString1 3 -1 roll>>setpagedevice"
+</pre>
+
+<p>For a custom string value of "My Watermark", CUPS will produce the following PostScript code for the option:</p>
+
+<pre class='command'>
+(My Watermark)
+<</cupsString1 3 -1 roll>>setpagedevice
+</pre>
+
+<p>The code moves the string value ("My Watermark") from the bottom of the stack to the top, creating a dictionary that looks like:</p>
+
+<pre class='command'>
+<</cupsString1(My Watermark)>>setpagedevice
+</pre>
+
+<p>The resulting dictionary sets the page device attributes that are sent to your raster driver in the page header.</p>
+
+<h3>Supported PostScript Operators</h3>
+
+<p>CUPS supports the following PostScript operators in addition to the usual PostScript number, string (literal and hex-encoded), boolean, null, and name values:</p>
+
+<ul>
+
+ <li><tt><<</tt> - Start a dictionary.</li>
+
+ <li><tt>>></tt> - End a dictionary.</li>
+
+ <li><tt>[</tt> - Start an array.</li>
+
+ <li><tt>]</tt> - End an array.</li>
+
+ <li><tt>copy</tt> - Copy the top N objects on the stack.</li>
+
+ <li><tt>dup</tt> - Copy the top object on the stack.</li>
+
+ <li><tt>index</tt> - Copy the Nth from the top object on the stack.</li>
+
+ <li><tt>pop</tt> - Pop the top object on the stack.</li>
+
+ <li><tt>roll</tt> - Shift the top N objects on the stack.</li>
+
+ <li><tt>setpagedevice</tt> - Set the page header values according to the key/value dictionary on the stack.</li>
+
+</ul>
+
+<h3>Supported Page Device Attributes</h3>
+
+<p>Table 1 shows the supported page device attributes along with PostScript code examples.</p>
+
+<div class='table'>
+<table summary='Supported Page Device Attributes'>
+<caption>Table 1: <a name='TABLE_1'>Supported Page Device Attributes</a></caption>
+<thead>
+<tr>
+ <th>Name(s)</th>
+ <th>Type</th>
+ <th>Description</th>
+ <th>Example(s)</th>
+</tr>
+</thead>
+<tbody>
+<tr valign='top'>
+ <td><tt>AdvanceDistance</tt></td>
+ <td>Integer</td>
+ <td>Specifies the number of points to advance roll media after printing.</td>
+ <td><tt><</AdvanceDistance 18>>setpagedevice</tt></td>
+</tr>
+<tr valign='top'>
+ <td><tt>AdvanceMedia</tt></td>
+ <td>Integer</td>
+ <td>Specifies when to advance the media: 0 = never, 1 = after the file, 2 = after the job, 3 = after the set, and 4 = after the page.</td>
+ <td><tt><</AdvanceMedia 4>>setpagedevice</tt></td>
+</tr>
+<tr valign='top'>
+ <td><tt>Collate</tt></td>
+ <td>Boolean</td>
+ <td>Specifies whether collated copies are required.</td>
+ <td><tt><</Collate true>>setpagedevice</tt></td>
+</tr>
+<tr valign='top'>
+ <td><tt>CutMedia</tt></td>
+ <td>Integer</td>
+ <td>Specifies when to cut the media: 0 = never, 1 = after the file, 2 = after the job, 3 = after the set, and 4 = after the page.</td>
+ <td><tt><</CutMedia 1>>setpagedevice</tt></td>
+</tr>
+<tr valign='top'>
+ <td><tt>Duplex</tt></td>
+ <td>Boolean</td>
+ <td>Specifies whether 2-sided printing is required.</td>
+ <td><tt><</Duplex true>>setpagedevice</tt></td>
+</tr>
+<tr valign='top'>
+ <td><tt>HWResolution</tt></td>
+ <td>Integer Array</td>
+ <td>Specifies the resolution of the page image in pixels per inch.</td>
+ <td><tt><</HWResolution[1200 1200]>>setpagedevice</tt></td>
+</tr>
+<tr valign='top'>
+ <td><tt>InsertSheet</tt></td>
+ <td>Boolean</td>
+ <td>Specifies whether to insert a blank sheet before the job.</td>
+ <td><tt><</InsertSheet true>>setpagedevice</tt></td>
+</tr>
+<tr valign='top'>
+ <td><tt>Jog</tt></td>
+ <td>Integer</td>
+ <td>Specifies when to shift the media in the output bin: 0 = never, 1 = after the file, 2 = after the job, 3 = after the set, and 4 = after the page.</td>
+ <td><tt><</Jog 2>>setpagedevice</tt></td>
+</tr>
+<tr valign='top'>
+ <td><tt>LeadingEdge</tt></td>
+ <td>Integer</td>
+ <td>Specifies the leading edge of the media: 0 = top, 1 = right, 2 = bottom, 3 = left.</td>
+ <td><tt><</LeadingEdge 0>>setpagedevice</tt></td>
+</tr>
+<tr valign='top'>
+ <td><tt>ManualFeed</tt></td>
+ <td>Boolean</td>
+ <td>Specifies whether media should be drawn from the manual feed tray. Note: The <tt>MediaPosition</tt> attribute is preferred over the <tt>ManualFeed</tt> attribute.</td>
+ <td><tt><</ManualFeed true>>setpagedevice</tt></td>
+</tr>
+<tr valign='top'>
+ <td><tt>MediaClass</tt></td>
+ <td>String</td>
+ <td>Specifies a named media.</td>
+ <td><tt><</MediaClass (Invoices)>>setpagedevice</tt></td>
+</tr>
+<tr valign='top'>
+ <td><tt>MediaColor</tt></td>
+ <td>String</td>
+ <td>Specifies the color of the media.</td>
+ <td><tt><</MediaColor >>setpagedevice</tt></td>
+</tr>
+<tr valign='top'>
+ <td><tt>MediaPosition</tt></td>
+ <td>Integer</td>
+ <td>Specifies the tray or source of the media.</td>
+ <td><tt><</MediaPosition 12>>setpagedevice</tt></td>
+</tr>
+<tr valign='top'>
+ <td><tt>MediaType</tt></td>
+ <td>String</td>
+ <td>Specifies the general media type.</td>
+ <td><tt><</MediaType (Glossy)>>setpagedevice</tt></td>
+</tr>
+<tr valign='top'>
+ <td><tt>MediaWeight</tt></td>
+ <td>Integer</td>
+ <td>Specifies the media weight in grams per meter<sup>2</sup>.</td>
+ <td><tt><</MediaWeight 100>>setpagedevice</tt></td>
+</tr>
+<tr valign='top'>
+ <td><tt>MirrorPrint</tt></td>
+ <td>Boolean</td>
+ <td>Specifies whether to flip the output image horizontally.</td>
+ <td><tt><</MirrorPrint true>>setpagedevice</tt></td>
+</tr>
+<tr valign='top'>
+ <td><tt>NegativePrint</tt></td>
+ <td>Boolean</td>
+ <td>Specifies whether to invert the output image.</td>
+ <td><tt><</NegativePrint true>>setpagedevice</tt></td>
+</tr>
+<tr valign='top'>
+ <td><tt>NumCopies</tt></td>
+ <td>Integer</td>
+ <td>Specifies the number of copies to produce of each page.</td>
+ <td><tt><</NumCopies 100>>setpagedevice</tt></td>
+</tr>
+<tr valign='top'>
+ <td><tt>Orientation</tt></td>
+ <td>Integer</td>
+ <td>Specifies the orientation of the output: 0 = portrait, 1 = landscape rotated counter-clockwise, 2 = upside-down, 3 = landscape rotated clockwise.</td>
+ <td><tt><</Orientation 3>>setpagedevice</tt></td>
+</tr>
+<tr valign='top'>
+ <td><tt>OutputFaceUp</tt></td>
+ <td>Boolean</td>
+ <td>Specifies whether to place the media face-up in the output bin/tray.</td>
+ <td><tt><</OutputFaceUp true>>setpagedevice</tt></td>
+</tr>
+<tr valign='top'>
+ <td><tt>OutputType</tt></td>
+ <td>String</td>
+ <td>Specifies the output type name.</td>
+ <td><tt><</OutputType (Photo)>>setpagedevice</tt></td>
+</tr>
+<tr valign='top'>
+ <td><tt>PageSize</tt></td>
+ <td>Integer/Real Array</td>
+ <td>Specifies the width and length/height of the page in points.</td>
+ <td><tt><</PageSize[595 842]>>setpagedevice</tt></td>
+</tr>
+<tr valign='top'>
+ <td><tt>Separations</tt></td>
+ <td>Boolean</td>
+ <td>Specifies whether to produce color separations.</td>
+ <td><tt><</Separations true>>setpagedevice</tt></td>
+</tr>
+<tr valign='top'>
+ <td><tt>TraySwitch</tt></td>
+ <td>Boolean</td>
+ <td>Specifies whether to switch trays automatically.</td>
+ <td><tt><</TraySwitch true>>setpagedevice</tt></td>
+</tr>
+<tr valign='top'>
+ <td><tt>Tumble</tt></td>
+ <td>Boolean</td>
+ <td>Specifies whether the back sides of pages are rotated 180 degrees.</td>
+ <td><tt><</Tumble true>>setpagedevice</tt></td>
+</tr>
+<tr valign='top'>
+ <td><tt>cupsBorderlessScalingFactor</tt></td>
+ <td>Real</td>
+ <td>Specifies the amount to scale the page image dimensions.</td>
+ <td><tt><</cupsBorderlessScalingFactor 1.01>>setpagedevice</tt></td>
+</tr>
+<tr valign='top'>
+ <td><tt>cupsColorOrder</tt></td>
+ <td>Integer</td>
+ <td>Specifies the order of colors: 0 = chunked, 1 = banded, 2 = planar.</td>
+ <td><tt><</cupsColorOrder 0>>setpagedevice</tt></td>
+</tr>
+<tr valign='top'>
+ <td><tt>cupsColorSpace</tt></td>
+ <td>Integer</td>
+ <td>Specifies the page image colorspace: 0 = W, 1 = RGB, 2 = RGBA, 3 = K, 4 = CMY, 5 = YMC, 6 = CMYK, 7 = YMCK, 8 = KCMY, 9 = KCMYcm, 10 = GMCK, 11 = GMCS, 12 = White, 13 = Gold, 14 = Silver, 15 = CIE XYZ, 16 = CIE Lab, 17 = RGBW, 32 to 46 = CIE Lab (1 to 15 inks)</td>
+ <td><tt><</cupsColorSpace >>setpagedevice</tt></td>
+</tr>
+<tr valign='top'>
+ <td><tt>cupsCompression</tt></td>
+ <td>Integer</td>
+ <td>Specifies a driver compression type/mode.</td>
+ <td><tt><</cupsCompression 2>>setpagedevice</tt></td>
+</tr>
+<tr valign='top'>
+ <td><tt>cupsInteger0<br>
+ ...<br>
+ cupsInteger15</tt></td>
+ <td>Integer</td>
+ <td>Specifies driver integer values.</td>
+ <td><tt><</cupsInteger11 1234>>setpagedevice</tt></td>
+</tr>
+<tr valign='top'>
+ <td><tt>cupsMarkerType</tt></td>
+ <td>String</td>
+ <td>Specifies the type of ink/toner to use.</td>
+ <td><tt><</cupsMarkerType (Black+Color)>>setpagedevice</tt></td>
+</tr>
+<tr valign='top'>
+ <td><tt>cupsMediaType</tt></td>
+ <td>Integer</td>
+ <td>Specifies a numeric media type.</td>
+ <td><tt><</cupsMediaType 999>>setpagedevice</tt></td>
+</tr>
+<tr valign='top'>
+ <td><tt>cupsPageSizeName</tt></td>
+ <td>String</td>
+ <td>Specifies the name of the page size.</td>
+ <td><tt><</cupsPageSizeName (A4.Full)>>setpagedevice</tt></td>
+</tr>
+<tr valign='top'>
+ <td><tt>cupsPreferredBitsPerColor</tt></td>
+ <td>Integer</td>
+ <td>Specifies the preferred number of bits per color, typically 8 or 16.</td>
+ <td><tt><</cupsPreferredBitsPerColor 16>>setpagedevice</tt></td>
+</tr>
+<tr valign='top'>
+ <td><tt>cupsReal0<br>
+ ...<br>
+ cupsReal15</tt></td>
+ <td>Real</td>
+ <td>Specifies driver real number values.</td>
+ <td><tt><</cupsReal15 1.234>>setpagedevice</tt></td>
+</tr>
+<tr valign='top'>
+ <td><tt>cupsRenderingIntent</tt></td>
+ <td>String</td>
+ <td>Specifies the color rendering intent.</td>
+ <td><tt><</cupsRenderingIntent (AbsoluteColorimetric)>>setpagedevice</tt></td>
+</tr>
+<tr valign='top'>
+ <td><tt>cupsRowCount</tt></td>
+ <td>Integer</td>
+ <td>Specifies the number of rows of raster data to print on each line for some drivers.</td>
+ <td><tt><</cupsRowCount 24>>setpagedevice</tt></td>
+</tr>
+<tr valign='top'>
+ <td><tt>cupsRowFeed</tt></td>
+ <td>Integer</td>
+ <td>Specifies the number of rows to feed between passes for some drivers.</td>
+ <td><tt><</cupsRowFeed 17>>setpagedevice</tt></td>
+</tr>
+<tr valign='top'>
+ <td><tt>cupsRowStep</tt></td>
+ <td>Integer</td>
+ <td>Specifies the number of lines between columns/rows on the print head for some drivers.</td>
+ <td><tt><</cupsRowStep 2>>setpagedevice</tt></td>
+</tr>
+<tr valign='top'>
+ <td><tt>cupsString0<br>
+ ...<br>
+ cupsString15</tt></td>
+ <td>String</td>
+ <td>Specifies driver string values.</td>
+ <td><tt><</cupsString0(String Value)>>setpagedevice</tt></td>
+</tr>
+</tbody>
+</table></div>
+
+
<h2 class='title'><a name='HISTORY'>Change History</a></h2>
+<h3>Changes in CUPS 1.2.8</h3>
+
+<ul>
+
+ <li>Added section on supported PostScript commands for raster
+ drivers</li>
+
+</ul>
+
<h3>Changes in CUPS 1.2</h3>
<ul>
+++ /dev/null
-<HTML>
-<HEAD>
- <META NAME="COPYRIGHT" CONTENT="Copyright 1997-2003, All Rights Reserved">
- <META NAME="DOCNUMBER" CONTENT="CUPS-IDD-1.2">
- <META NAME="Author" CONTENT="Easy Software Products">
- <TITLE>CUPS Interface Design Description</TITLE>
-</HEAD>
-<BODY>
-
-<H1>Scope</H1>
-
-<H2>Identification</H2>
-
-<P>This interface design description document provides detailed file
-formats, message formats, and program conventions for the Common UNIX
-Printing System ("CUPS") Version 1.2.
-
-<EMBED SRC="system-overview.shtml">
-
-<H2>Document Overview</H2>
-
-<P>This interface design description document is organized into the following
-sections:
-
-<UL>
- <LI>1 - Scope
- <LI>2 - References
- <LI>3 - Internal Interfaces
- <LI>4 - External Interfaces
- <LI>5 - Directories
- <LI>A - Glossary
-</UL>
-
-<EMBED SRC="references.shtml">
-
-<H1>Internal Interfaces</H1>
-
-<H2>Character Set Files</H2>
-
-<P>The character set files define a mapping between 8-bit characters
-and the Unicode character set, or between Unicode and printer fonts.
-They are named using the IETF charset names defined in RFCnnnn. These
-files are ASCII text, the content of which is described below. Comments
-can be included by using the <TT>#</TT> character in the first column
-of a line.
-
-<H3>8-Bit Character Set Files</H3>
-
-<P>8-bit character set files start with a line reading:
-
-<UL><PRE>
-charset 8bit
-</PRE></UL>
-
-<P>Following this are lines that define the font information:
-
-<UL><PRE>
-first last direction width normal bold italic bold-italic
-</PRE></UL>
-
-<P><VAR>First</VAR> and <VAR>last</VAR> are the first and last glyphs
-in the font mapping that correspond to that font; a maximum of 256
-characters can be mapped within each group, with a maximum of 256
-mappings (this is a PostScript limitation.) The glyph values are
-hexadecimal.
-
-<P><VAR>Direction</VAR> is the string "ltor", "rtol", or "rtola" indicating
-left-to-right, right-to-left, or right-to-left Arabic text.
-
-<P><VAR>Width</VAR> is the string "single" or "double"; double means that the
-glyphs are twice as wide as ASCII characters in the Courier typeface.
-
-<P><VAR>Normal, bold, italic</VAR>, and <VAR>bold-italic</VAR> are the
-typefaces to use for each presentation. If characters are only available in
-a single style then only one typeface should be listed (e.g. "Symbol".)
-Each font that is listed will be used (and downloaded if needed) when
-printing.
-
-<P>The remaining lines define a character to Unicode glyph mapping for the
-character set. The character and glyph values are hexadecimal:
-
-<UL><PRE>
-xx yyyy
-</PRE></UL>
-
-<H3>Unicode Character Set Files</H3>
-
-<P>Unicode character set files start with a line reading:
-
-<UL><PRE>
-charset encoding
-</PRE></UL>
-
-<P><VAR>Encoding</VAR> is the encoding to use for the text; currently only
-the string "utf8" is supported.
-
-<P>Following this are lines defining the font information:
-
-<UL><PRE>
-first last direction width normal bold italic bold-italic
-</PRE></UL>
-
-<P><VAR>First</VAR> and <VAR>last</VAR> are the first and last glyphs
-in the font mapping that correspond to that font; a maximum of 256
-characters can be mapped within each group, with a maximum of 256
-mappings (this is a PostScript limitation.) The glyph values are
-hexadecimal.
-
-<P><VAR>Direction</VAR> is the string "ltor", "rtol", or "rtola" indicating
-left-to-right, right-to-left, or right-to-left Arabic text.
-
-<P><VAR>Width</VAR> is the string "single" or "double"; double means that the
-glyphs are twice as wide as ASCII characters in the Courier typeface.
-
-<P><VAR>Normal, bold, italic</VAR>, and <VAR>bold-italic</VAR> are the
-typefaces to use for each presentation. If characters are only available in
-a single style then only one typeface should be listed (e.g. "Symbol".)
-Each font that is listed will be used (and downloaded if needed) when
-printing.
-
-<H2>Language Files</H2>
-
-<P>The language files define the default character set and a collection of
-text messages in that language. They are named by prefixing the string "cups_"
-to the front of the language specifier (e.g. "cups_en", "cups_fr", etc.) Each
-file consists of two or more lines of ASCII text.
-
-<P>The first line identifies the character set to be used for the messages.
-The currently recognized values are:
-
-<UL>
- <LI>iso-8859-1
- <LI>iso-8859-2
- <LI>iso-8859-3
- <LI>iso-8859-4
- <LI>iso-8859-5
- <LI>iso-8859-6
- <LI>iso-8859-7
- <LI>iso-8859-8
- <LI>iso-8859-9
- <LI>iso-8859-10
- <LI>iso-8859-13
- <LI>iso-8859-14
- <LI>iso-8859-15
- <LI>us-ascii
- <LI>utf-8
- <LI>windows-874
- <LI>windows-1250
- <LI>windows-1251
- <LI>windows-1252
- <LI>windows-1253
- <LI>windows-1254
- <LI>windows-1255
- <LI>windows-1256
- <LI>windows-1257
- <LI>windows-1258
- <LI>koi8-r
- <LI>koi8-u
-</UL>
-
-<P>The second and succeeding lines define text messages. If the message text
-is preceded by a number, then the current message number is updated and the
-text after the number is used.
-
-<H2>MIME Files</H2>
-
-<P>CUPS uses two MIME files in its standard configuration.
-
-<H3>mime.types</H3>
-
-<P>The mime.types file defines the recognized file types and consists
-of 1 or more lines of ASCII text. Comment lines start with the pound
-("#") character. The backslash ("\") character can be used at the end
-of a line to continue that line to the next.
-
-<P>Each non-blank line starts with a MIME type identifier ("super/type")
-as registered with the IANA. All text following the MIME type is treated as
-a series of type recognition rules:
-
-<UL><PRE>
-mime-type := super "/" type { SP rule }*
-super := { "a-z" | "A-Z" }*
-type := { "a-z" | "A-Z" | "-" | "." | "0-9" }*
-rule := { extension | match | operator | "(" rule ")" }*
-extension := { "a-z" | "A-Z" | "0-9" }*
-match := "match(" regexp ")" |
- "ascii(" offset "," length ")" |
- "printable(" offset "," length ")" |
- "string(" offset "," string ")" |
- "contains(" offset "," length "," string ")" |
- "char(" offset "," value ")" |
- "short(" offset "," value ")" |
- "int(" offset "," value ")" |
- "locale(" string ")"
-operator := "+" | [ logical AND ]
- "," | SP [ logical OR ]
- "!" [ unary NOT ]
-</PRE></UL>
-
-<P>The <CODE>int</CODE> and <CODE>short</CODE> rules match look for integers
-in network byte order (a.k.a. big-endian) with the most-significant byte first.
-
-<H3>mime.convs</H3>
-
-<P>The mime.types file defines the recognized file filters and consists
-of 1 or more lines of ASCII text. Comment lines start with the pound
-("#") character.
-
-<P>Each non-blank line starts with two MIME type identifiers ("super/type")
-representing the source and destination types. Following the MIME types are
-a cost value (0 to 100) and the filter program to use. If the filter program
-is not specified using the full path then it must reside in the CUPS filter
-directory:
-
-<UL><PRE>
-super/type SP super/type2 SP cost SP program
-</PRE></UL>
-
-<H2>Option Files</H2>
-
-<P>CUPS maintains user-defined printer and option files for each
-printer and user on the system. The printers and options defined in the
-system option file (<CODE>/etc/cups/lpoptions</CODE>) are loaded first,
-followed by the user option file (<CODE>$HOME/.lpoptions</CODE>).
-Options in the user file replace those defined in the system file for
-the same destination. Each line in the files can be one of the
-following:
-
-<UL><PRE>
-Dest name option=value option=value ... option=value
-Dest name/instance option=value option=value ... option=value
-Default name option=value option=value ... option=value
-Default name/instance option=value option=value ... option=value
-</PRE></UL>
-
-<P>The line beginning with "Default" indicates the default destination for
-print jobs; a default line in the user option file overrides the default
-defined in the system option file.
-
-<P><VAR>Name</VAR> is the name of a printer known to the local server.
-
-<P><VAR>Instance</VAR> can be any string of letters, numbers, and the underscore
-up to 127 characters in length.
-
-<P>The remainder of the line contains a list of space-separated options
-and their values.
-
-<H2>PostScript Printer Description Files</H2>
-
-<P>PostScript Printer Description ("PPD") files describe the capabilities
-of each printer and are used by CUPS to support printer-specific features
-and intelligent filtering.
-
-<H3>PPD Specification</H3>
-
-<P>The PPD file format is described in
-<A HREF="http://partners.adobe.com/asn/developer/PDFS/TN/5003.PPD_Spec_v4.3.pdf">
-Adobe TechNote #5003: PostScript Printer Description File Format
-Specification Version 4.3</A>.
-
-<H3>CUPS Extensions to PPD Files</H3>
-
-<P>CUPS adds several new attributes that are described below.
-
-<H4>cupsFilter</H4>
-
-<P>This string attribute provides a conversion rule of the form:
-
-<UL><PRE>
-source/type cost program
-</PRE></UL>
-
-<P>The destination type is assumed to the printer's type. If a printer
-supports the source type directly the special filter program "-" may be
-specified.
-
-<H4>cupsFlipDuplex</H4>
-
-<P>This boolean attribute notifies the RIP filters that the
-destination printer requires an upside-down image for the back
-page. The default value is false.
-
-<H4>cupsManualCopies</H4>
-
-<P>This boolean attribute notifies the RIP filters that the destination printer
-does not support copy generation in hardware. The default value is false.
-
-<H4>cupsModelNumber</H4>
-
-<P>This integer attribute specifies a printer-specific model number. This number
-can be used by a filter program to adjust the output for a specific model of
-printer.
-
-<H4>cupsProfile</H4>
-
-<P>This string attribute specifies a color profile of the form:
-
-<UL><PRE>
-resolution/type density gamma m00 m01 m02 m10 m11 m12 m20 m21 m22
-</PRE></UL>
-
-<P>The <I>resolution</I> and <I>type</I> values may be "-" to act as a
-wildcard. Otherwise they must match one of the <CODE>Resolution</CODE> or
-<CODE>MediaType</CODE> attributes defined in the PPD file.
-
-<P>The <I>density</I> and <I>gamma</I> values define gamma and density
-adjustment function such that:
-
-<UL><PRE>
-f(x) = density * x<SUP>gamma</SUP>
-</PRE></UL>
-
-<P>The <I>m00</I> through <I>m22</I> values define a 3x3 transformation
-matrix for the CMY color values. The density function is applied <I>after</I>
-the CMY transformation.
-
-<H4>cupsProtocol</H4>
-
-<P>This optional attribute describes which binary communication
-protocol to use when printing binary PostScript data. The
-strings "None", "BCP", and "TBCP" are recognized, corresponding
-to no encoding, BCP, and TBCP respectively.
-
-<H4>cupsVersion</H4>
-
-<P>This required attribute describes which version of the CUPS
-IDD was used for the PPD file extensions. Currently it must be
-the string "1.0", "1.1", or "1.2".
-
-<H2>Scheduler Configuration Files</H2>
-
-<P>The scheduler reads three configuration files that define the available
-printers, classes, and services:
-
-<DL>
-
- <DT>classes.conf
- <DD>This file defines all of the printer classes known to the
- system.
-
- <DT>cupsd.conf
- <DD>This file defines the files, directories, passwords, etc.
- used by the scheduler.
-
- <DT>printers.conf
- <DD>This file defines all of the printers known to the system.
-
-</DL>
-
-<H3>classes.conf</H3>
-
-<P>The classes.conf file consists of 1 or more lines of ASCII text.
-Comment lines start with the pound ("#") character.
-
-<P>Each non-blank line starts with the name of a configuration directive
-followed by its value. The following directives are understood:
-
-<CENTER><TABLE WIDTH="90%" BORDER="1">
-<TR>
- <TH WIDTH="25%">Directive</TH>
- <TH>Description</TH>
-</TR>
-<TR>
- <TD><Class name><BR>
- </Class></TD>
- <TD>Surrounds a class definition.</TD>
-</TR>
-<TR>
- <TD><DefaultClass name><BR>
- </Class></TD>
- <TD>Surrounds a class definition for the default destination.</TD>
-</TR>
-<TR>
- <TD>Accepting</TD>
- <TD>Specifies whether the class is accepting new jobs. May be
- the names "Yes" or "No".</TD>
-</TR>
-<TR>
- <TD>AllowUsers</TD>
- <TD>Specifies a list of users that are allowed to access the class.</TD>
-</TR>
-<TR>
- <TD>BannerStart</TD>
- <TD>Specifies the banner that is printed before other files in a
- job.</TD>
-</TR>
-<TR>
- <TD>BannerEnd</TD>
- <TD>Specifies the banner that is printed after other files in a
- job.</TD>
-</TR>
-<TR>
- <TD>DenyUsers</TD>
- <TD>Specifies a list of users that are not allowed to access the
- class.</TD>
-</TR>
-<TR>
- <TD>Info</TD>
- <TD>A textual description of the class.</TD>
-</TR>
-<TR>
- <TD>Location</TD>
- <TD>A textual location of the class.</TD>
-</TR>
-<TR>
- <TD>Printer</TD>
- <TD>Specifies a printer that is a member of the class.</TD>
-</TR>
-<TR>
- <TD>State</TD>
- <TD>Specifies the initial state of the class; can be "Idle" or
- "Stopped".</TD>
-</TR>
-<TR>
- <TD>StateMessage</TD>
- <TD>Specifies a textual message for the current class state.</TD>
-</TR>
-</TABLE></CENTER>
-
-<H3>cupsd.conf</H3>
-
-<P>The cupsd.conf file consists of 1 or more lines of ASCII text.
-Comment lines start with the pound ("#") character.
-
-<P>Each non-blank line starts with the name of a configuration directive
-followed by its value. The following directives are understood:
-
-<CENTER><TABLE WIDTH="90%" BORDER="1">
-<TR>
- <TH WIDTH="25%">Directive</TH>
- <TH>Default</TH>
- <TH>Description</TH>
-</TR>
-<TR>
- <TD>AccessLog</TD>
- <TD>access_log</TD>
- <TD>Specifies the location of the access log file. The special name
- "syslog" can be used to send access log information to the system
- log.</TD>
-</TR>
-<TR>
- <TD>Allow</TD>
- <TD>-</TD>
- <TD>Allows connections from the specified host, network, or
- domain.</TD>
-</TR>
-<TR>
- <TD>AuthClass</TD>
- <TD>-</TD>
- <TD>Specifies what level of authentication is required; may be
- "User", "System", or "Group".</TD>
-</TR>
-<TR>
- <TD>AuthType</TD>
- <TD>None</TD>
- <TD>Specifies the type of authentication to perform; may be
- "None", "Basic", or "Digest".</TD>
-</TR>
-<TR>
- <TD>BrowseAddress</TD>
- <TD>255.255.255.255</TD>
- <TD>Specifies a broadcast address to send CUPS browsing packets to.</TD>
-</TR>
-<TR>
- <TD>BrowseAllow</TD>
- <TD>-</TD>
- <TD>Specifies hosts or addresses from which browsing information
- should be used.</TD>
-</TR>
-<TR>
- <TD>BrowseDeny</TD>
- <TD>-</TD>
- <TD>Specifies hosts or addresses from which browsing information
- should not be used.</TD>
-</TR>
-<TR>
- <TD>BrowseInterval</TD>
- <TD>30</TD>
- <TD>Specifies the number of seconds between browsing updates. A
- browse interval of 0 seconds disables outgoing packets.</TD>
-</TR>
-<TR>
- <TD>BrowseOrder</TD>
- <TD>Allow,Deny</TD>
- <TD>Specifies the order of BrowseAllow and BrowseDeny directive
- processing; can be "Deny,Allow" to implicitly deny hosts unless
- they are allowed by a BrowseAllow line, or "Allow,Deny" to
- implicitly allow hosts unless they are denied by a BrowseDeny
- line.</TD>
-</TR>
-<TR>
- <TD>BrowsePoll</TD>
- <TD>-</TD>
- <TD>Specifies a server to poll for available printers and classes.</TD>
-</TR>
-<TR>
- <TD>BrowsePort</TD>
- <TD>631</TD>
- <TD>Specifies the UDP port number to use for browse packets.</TD>
-</TR>
-<TR>
- <TD>BrowseRelay</TD>
- <TD>-</TD>
- <TD>Specifies a source and destination address for relaying browser
- information from one subnet to another.</TD>
-</TR>
-<TR>
- <TD>BrowseShortNames</TD>
- <TD>yes</TD>
- <TD>Specifies whether or not to provide short names (without the
- "@server" part) for remote printers.</TD>
-</TR>
-<TR>
- <TD>BrowseTimeout</TD>
- <TD>300</TD>
- <TD>Specifies the number of seconds to wait until remote destinations
- are removed from the local destination list.</TD>
-</TR>
-<TR>
- <TD>Browsing</TD>
- <TD>On</TD>
- <TD>Specifies whether or not printer and class browsing is enabled; can
- be "On" or "Off".</TD>
-</TR>
-<TR>
- <TD>DataDir</TD>
- <TD>/usr/share/cups</TD>
- <TD>Specifies the directory where CUPS data files are stored.</TD>
-</TR>
-<TR>
- <TD>DefaultCharset</TD>
- <TD>iso-8859-1</TD>
- <TD>Specifies the default character set.</TD>
-</TR>
-<TR>
- <TD>DefaultLanguage</TD>
- <TD>current locale</TD>
- <TD>Specifies the default language.</TD>
-</TR>
-<TR>
- <TD>Deny</TD>
- <TD>-</TD>
- <TD>Refuses connections from the specified host, network, or
- domain.</TD>
-</TR>
-<TR>
- <TD>DocumentRoot</TD>
- <TD>/usr/share/doc/cups</TD>
- <TD>Specifies the document data root directory.</TD>
-</TR>
-<TR>
- <TD>ErrorLog</TD>
- <TD>error_log</TD>
- <TD>Specifies the error log file location. The special name
- "syslog" can be used to send error log information to the system
- log.</TD>
-</TR>
-<TR>
- <TD>Group</TD>
- <TD>root, sys, system</TD>
- <TD>Specifies the group name or ID that is used when running
- external programs.</TD>
-</TR>
-<TR>
- <TD>HostNameLookups</TD>
- <TD>Off</TD>
- <TD>Specifies whether or not to perform reverse IP address lookups to
- get the actual hostname; may be "On" or "Off". Hostname lookups can
- significantly degrade the performance of the CUPS server if one or
- more DNS servers is not functioning properly.</TD>
-</TR>
-<TR>
- <TD>ImplicitClasses</TD>
- <TD>On</TD>
- <TD>Specifies whether or not to automatically create printer classes
- when more than one printer or class of the same name is detected on
- the network; may be "On" or "Off".</TD>
-</TR>
-<TR>
- <TD>KeepAlive</TD>
- <TD>On</TD>
- <TD>Specifies whether or not to use the HTTP Keep-Alive feature; may
- be "On" or "Off".</TD>
-</TR>
-<TR>
- <TD>KeepAliveTimeout</TD>
- <TD>30</TD>
- <TD>Specifies the amount of time to keep the HTTP connection alive
- before closing it.</TD>
-</TR>
-<TR>
- <TD><Location path><BR>
- </Location></TD>
- <TD>-</TD>
- <TD>Specifies a location to restrict access to.</TD>
-</TR>
-<TR>
- <TD>LogLevel</TD>
- <TD>info</TD>
- <TD>Controls the amount of information that is logged in the
- error log file. Can be one of "debug", "info", "warn", "error",
- or "none", in decreasing order or verbosity.</TD>
-</TR>
-<TR>
- <TD>MaxClients</TD>
- <TD>100</TD>
- <TD>Specifies the maximum number of simultaneous active clients.
- This value is internally limited to 1/3 of the total number of
- available file descriptors.</TD>
-</TR>
-<TR>
- <TD>MaxLogSize</TD>
- <TD>0</TD>
- <TD>Specifies the maximum size of the access, error, and page
- log files in bytes. If set to 0 then no maximum size is set.
- Log files are rotated automatically when this size is
- exceeded.</TD>
-</TR>
-<TR>
- <TD>MaxRequestSize</TD>
- <TD>0</TD>
- <TD>Specifies the maximum size of HTTP requests in bytes. If set to 0
- then there is no maximum.</TD>
-</TR>
-<TR>
- <TD>Order</TD>
- <TD>Allow,Deny</TD>
- <TD>Specifies the order of Allow and Deny directive processing; can
- be "Deny,Allow" to implicitly deny hosts unless they are allowed by
- an Allow line, or "Allow,Deny" to implicitly allow hosts unless they
- are denied by a Deny line.</TD>
-</TR>
-<TR>
- <TD>PageLog</TD>
- <TD>page_log</TD>
- <TD>Specifies the location of the page log file. The special name
- "syslog" can be used to send page log information to the system
- log.</TD>
-</TR>
-<TR>
- <TD>Port</TD>
- <TD>631</TD>
- <TD>Specifies a port number to listen to for HTTP connections.</TD>
-</TR>
-<TR>
- <TD>Printcap</TD>
- <TD>/etc/printcap</TD>
- <TD>Specifies the location of a Berkeley printcap file to update
- with a list of current printers and classes. If no filename is
- supplied then this automatic generation is disabled.</TD>
-</TR>
-<TR>
- <TD>RequestRoot</TD>
- <TD>/var/spool/cups</TD>
- <TD>Specifies the location of request files.</TD>
-</TR>
-<TR>
- <TD>RIPCache</TD>
- <TD>8m</TD>
- <TD>Specifies the size of the memory cache in bytes that is used by
- RIP filters.</TD>
-</TR>
-<TR>
- <TD>ServerAdmin</TD>
- <TD>root@ServerName</TD>
- <TD>Specifies the person to contact with problems.</TD>
-</TR>
-<TR>
- <TD>ServerName</TD>
- <TD>hostname</TD>
- <TD>Specifies the hostname that is supplied to HTTP clients. This
- is also used to determine the default CUPS server for the CUPS IPP
- client applications.</TD>
-</TR>
-<TR>
- <TD>ServerRoot</TD>
- <TD>/etc/cups</TD>
- <TD>Specifies the root directory for server configuration files.</TD>
-</TR>
-<TR>
- <TD>SystemGroup</TD>
- <TD>root, sys, system</TD>
- <TD>Specifies the group name used for System class authentication.</TD>
-</TR>
-<TR>
- <TD>TempDir</TD>
- <TD>/var/tmp</TD>
- <TD>Specifies the temporary directory to use.</TD>
-</TR>
-<TR>
- <TD>Timeout</TD>
- <TD>300</TD>
- <TD>The timeout in seconds before client connections are closed
- in the middle of a request.</TD>
-</TR>
-<TR>
- <TD>User</TD>
- <TD>lp</TD>
- <TD>Specifies the user that is used when running external programs.</TD>
-</TR>
-</TABLE></CENTER>
-
-<H3>printers.conf</H3>
-
-<P>The printers.conf file consists of 1 or more lines of ASCII text.
-Comment lines start with the pound ("#") character.
-
-<P>Each non-blank line starts with the name of a configuration directive
-followed by its value. The following directives are understood:
-
-<CENTER><TABLE WIDTH="90%" BORDER="1">
-<TR>
- <TH WIDTH="25%">Directive</TH>
- <TH>Description</TH>
-</TR>
-<TR>
- <TD>Accepting</TD>
- <TD>Specifies whether the printer is accepting new jobs. May be
- the names "Yes" or "No".</TD>
-</TR>
-<TR>
- <TD><DefaultPrinter name><BR>
- </Printer></TD>
- <TD>Surrounds the printer definition for a default destination.</TD>
-</TR>
-<TR>
- <TD>AllowUsers</TD>
- <TD>Specifies a list of users that are allowed to access the printer.</TD>
-</TR>
-<TR>
- <TD>BannerStart</TD>
- <TD>Specifies the banner that is printed before other files in a
- job.</TD>
-</TR>
-<TR>
- <TD>BannerEnd</TD>
- <TD>Specifies the banner that is printed after other files in a
- job.</TD>
-</TR>
-<TR>
- <TD>DenyUsers</TD>
- <TD>Specifies a list of users that are not allowed to access the
- printer.</TD>
-</TR>
-<TR>
- <TD>DeviceURI</TD>
- <TD>Specifies the device-uri attribute for the printer.</TD>
-</TR>
-<TR>
- <TD>Info</TD>
- <TD>A textual description of the printer.</TD>
-</TR>
-<TR>
- <TD>Location</TD>
- <TD>A textual location of the printer.</TD>
-</TR>
-<TR>
- <TD><Printer name><BR>
- </Printer></TD>
- <TD>Surrounds the printer definition.</TD>
-</TR>
-<TR>
- <TD>State</TD>
- <TD>Specifies the initial state of the printer; can be "Idle" or
- "Stopped".</TD>
-</TR>
-<TR>
- <TD>StateMessage</TD>
- <TD>Specifies a textual message for the current printer state.</TD>
-</TR>
-</TABLE></CENTER>
-
-<H1>External Interfaces</H1>
-
-<H2>AppSocket Protocol</H2>
-
-<P>The AppSocket protocol is an 8-bit clean TCP/IP socket connection.
-The default IP service port is 9100. The URI method name is "socket".
-
-<P>The AppSocket protocol is used by the Hewlett Packard JetDirect
-network interfaces and print servers, as well as many other vendors'
-products. See the CUPS Software Administrators Manual for a list of
-supported products.
-
-<H2>CUPS Browsing Protocol</H2>
-
-<P>The CUPS Browsing Protocol is a UDP/IP-based broadcast service. By default
-this service operates on IP service port 631.
-
-<P>Each broadcast packet describes the state of a single printer or class and
-is an ASCII text string of up to 1450 bytes ending with a newline (0x0a). The
-string is formatted as follows:
-
-<UL><PRE>
-type SP state SP uri SP "location" SP "info" SP "make-and-model" NL
-</PRE></UL>
-
-<P><VAR>State, uri, location, info</VAR>, and <VAR>make-and-model</VAR>,
-correspond to the IPP <CODE>printer-state</CODE>,
-<CODE>printer-uri-supported</CODE>, <CODE>printer-location</CODE>,
-<CODE>printer-info</CODE>, and <CODE>printer-make-and-model</CODE>
-attributes.
-
-<P><VAR>Type</VAR> is a hexadecimal number string representing
-capability/type bits:
-
-<CENTER><TABLE WIDTH="40%" BORDER="1">
-<TR>
- <TH WIDTH="8%">Bit</TH>
- <TH>Description</TH>
-</TR>
-<TR>
- <TD>0</TD>
- <TD>0 = printer<BR>
- 1 = class</TD>
-</TR>
-<TR>
- <TD>1</TD>
- <TD>0 = local<BR>
- 1 = remote<BR>
- (always 1)</TD>
-</TR>
-<TR>
- <TD>2</TD>
- <TD>1 = can print B&W</TD>
-</TR>
-<TR>
- <TD>3</TD>
- <TD>1 = can print color</TD>
-</TR>
-<TR>
- <TD>4</TD>
- <TD>1 = can duplex</TD>
-</TR>
-<TR>
- <TD>5</TD>
- <TD>1 = can staple</TD>
-</TR>
-<TR>
- <TD>6</TD>
- <TD>1 = can do fast copies</TD>
-</TR>
-<TR>
- <TD>7</TD>
- <TD>1 = can do fast collating</TD>
-</TR>
-<TR>
- <TD>8</TD>
- <TD>1 = can punch holes</TD>
-</TR>
-<TR>
- <TD>9</TD>
- <TD>1 = can cover</TD>
-</TR>
-<TR>
- <TD>10</TD>
- <TD>1 = can bind</TD>
-</TR>
-<TR>
- <TD>11</TD>
- <TD>1 = can sort</TD>
-</TR>
-<TR>
- <TD>12</TD>
- <TD>1 = can print up to 9x14 inches</TD>
-</TR>
-<TR>
- <TD>13</TD>
- <TD>1 = can print up to 18x24 inches</TD>
-</TR>
-<TR>
- <TD>14</TD>
- <TD>1 = can print up to 36x48 inches</TD>
-</TR>
-<TR>
- <TD>15</TD>
- <TD>1 = can print variable sizes</TD>
-</TR>
-</TABLE></CENTER>
-
-<H2>CUPS Form File</H2>
-
-<P>CUPS Form files are XML files used by the CUPS <CODE>formtops</CODE>
-filter to produce dynamic banner pages and support preprinted forms.
-
-<P>The MIME type for CUPS Form files is
-<CODE>application/vnd.cups-form</CODE>.
-
-<H3>CUPS Form DTD</H3>
-
-<P>The following DTD describes the available elements and attributes in
-a CUPS Form file:
-
-<CENTER><TABLE BORDER>
-<TR>
-<TD><PRE>
-<!ENTITY % Angle "CDATA" -- angle in degrees -->
-
-<!ENTITY % Color "CDATA" -- a color using sRGB: #RRGGBB as Hex values -->
-
-<!ENTITY % Length "CDATA" -- nn for pixels or nn% for percentage length -->
-
-<!ENTITY % Lengths "CDATA" -- comma-separated Length values -->
-
-<!ENTITY % Text "CDATA">
-
-<!ENTITY % heading "H1|H2|H3|H4|H5|H6">
-
-<!ENTITY % preformatted "PRE">
-
-<!ENTITY % i18n
- "lang %LanguageCode; #IMPLIED -- language code --
- dir (ltr|rtl) #IMPLIED -- direction for weak/neutral text --"
- >
-
-<!ENTITY % attrs "%i18n;">
-
-<!ENTITY % fontstyle
- "B | FONT | I | TT">
-
-<!ENTITY % graphics
- "BOX | RECT | LINE | POLY | ARC | PIE | TEXT">
-
-<!ENTITY % insert
- "IMG | VAR">
-
-<!-- %inline; covers inline or "text-level" elements -->
-<!ENTITY % inline "#PCDATA | %fontstyle; | %graphics; | %insert;">
-
-<!ELEMENT (%fontstyle;) - - (%inline;)*>
-<!ATTLIST (%fontstyle;)
- %attrs; -- %i18n --
- >
-
-<!ELEMENT BR - O EMPTY -- forced line break -->
-<!ATTLIST BR
- %attrs; -- %i18n --
- >
-
-<!ENTITY % block
- "P | %heading; | %preformatted;">
-
-<!ENTITY % flow "%block; | %inline;">
-
-<!ELEMENT PAGE O O (%flow;)+ -- document body -->
-<!ATTLIST PAGE
- %attrs; -- %i18n --
- align (left|center|right) #IMPLIED -- horizontal alignment --
- valign (top|middle|center|bottom) #IMPLIED -- vertical alignment --
- >
-
-<!ELEMENT P - O (%inline;)* -- paragraph -->
-<!ATTLIST P
- %attrs; -- %i18n --
- align (left|center|right) #IMPLIED -- horizontal alignment --
- >
-
-<!ELEMENT (%heading;) - - (%inline;)* -- heading -->
-<!ATTLIST (%heading;)
- %attrs; -- %i18n --
- align (left|center|right) #IMPLIED -- horizontal alignment --
- >
-
-<!ELEMENT PRE - - (%inline;)* -- preformatted text -->
-<!ATTLIST PRE
- %attrs; -- %i18n --
- align (left|center|right) #IMPLIED -- horizontal alignment --
- >
-
-<!ELEMENT BOX - O EMPTY -- unfilled box -->
-<!ATTLIST BOX
- color %Color; #IMPLIED -- override color --
- height %Length; #REQUIRED -- height of box --
- thickness %Length; #IMPLIED -- override line thickness --
- width %Length; #REQUIRED -- width of box --
- x %Length; #REQUIRED -- horizontal position --
- y %Length; #REQUIRED -- vertical position --
- >
-
-<!ELEMENT RECT - O EMPTY -- filled box -->
-<!ATTLIST RECT
- color %Color; #IMPLIED -- override color --
- height %Length; #REQUIRED -- height of box --
- width %Length; #REQUIRED -- width of box --
- x %Length; #REQUIRED -- horizontal position --
- y %Length; #REQUIRED -- vertical position --
- >
-
-<!ELEMENT LINE - O EMPTY -- polyline -->
-<!ATTLIST LINE
- color %Color; #IMPLIED -- override color --
- thickness %Length; #IMPLIED -- override line thickness --
- x %Lengths; #REQUIRED -- horizontal positions --
- y %Lengths; #REQUIRED -- vertical positions --
- >
-
-<!ELEMENT POLY - O EMPTY -- polygon (filled) -->
-<!ATTLIST POLY
- color %Color; #IMPLIED -- override color --
- x %Lengths; #REQUIRED -- horizontal positions --
- y %Lengths; #REQUIRED -- vertical positions --
- >
-
-<!ELEMENT ARC - O EMPTY -- unfilled arc -->
-<!ATTLIST ARC
- color %Color; #IMPLIED -- override color --
- end %Angle; #IMPLIED -- override end angle --
- height %Length; #REQUIRED -- height of arc --
- start %Angle; #IMPLIED -- override start angle --
- thickness %Length; #IMPLIED -- override line thickness --
- width %Length; #REQUIRED -- width of arc --
- x %Length; #REQUIRED -- horizontal position --
- y %Length; #REQUIRED -- vertical position --
- >
-
-<!ELEMENT PIE - O EMPTY -- filled arc -->
-<!ATTLIST PIE
- color %Color; #IMPLIED -- override color --
- end %Angle; #IMPLIED -- override end angle --
- height %Length; #REQUIRED -- height of arc --
- start %Angle; #IMPLIED -- override start angle --
- width %Length; #REQUIRED -- width of arc --
- x %Length; #REQUIRED -- horizontal position --
- y %Length; #REQUIRED -- vertical position --
- >
-
-<!ELEMENT TEXT - - (%flow;)* -- text box -->
-<!ATTLIST RECT
- align (left|center|right) #IMPLIED -- horizontal alignment --
- height %Length; #REQUIRED -- height of box --
- valign (top|middle|center|bottom) #IMPLIED -- vertical alignment --
- width %Length; #REQUIRED -- width of box --
- x %Length; #REQUIRED -- horizontal position --
- y %Length; #REQUIRED -- vertical position --
- >
-
-
-<!ELEMENT IMG - O EMPTY -- Embedded image -->
-<!ATTLIST IMG
- %attrs; -- %coreattrs, %i18n, %events --
- src %URI; #REQUIRED -- URI of image to embed --
- height %Length; #IMPLIED -- override height --
- width %Length; #IMPLIED -- override width --
- >
-
-<!ELEMENT HEAD O O (DEFVAR)* -- document head -->
-<!ATTLIST HEAD
- %i18n; -- lang, dir --
- >
-
-<!ELEMENT DEFVAR - O EMPTY -- variable definition -->
-<!ATTLIST DEFVAR
- name CDATA #REQUIRED -- name
- value CDATA #REQUIRED -- value
- >
-
-
-<!ENTITY % html.content "HEAD, PAGE">
-
-<!ELEMENT CUPSFORM - - (HEAD) (PAGE)+ -- document root element -->
-<!ATTLIST CUPSFORM
- %i18n; -- lang, dir --
- >
-</PRE></TD>
-</TR>
-</TABLE></CENTER>
-
-<H2>CUPS PostScript File</H2>
-
-<P>CUPS PostScript files are device-dependent Adobe PostScript program files.
-The PostScript language is described in the
-<A HREF="http://partners.adobe.com/asn/developer/PDFS/TN/PLRM.pdf">
-Adobe PostScript Language Reference Manual, Third Edition</A>.
-
-<P>The MIME type for CUPS PostScript files is
-<CODE>application/vnd.cups-postscript</CODE>.
-
-<H2>CUPS Raster File</H2>
-
-<P>CUPS raster files are device-dependent raster image files that contain a
-PostScript page device dictionary and device-dependent raster imagery for
-each page in the document. These files are used to transfer raster data
-from the PostScript and image file RIPs to device-dependent filters that
-convert the raster data to a printable format.
-
-<P>A raster file begins with a four byte synchronization word: 0x52615374
-("RaSt") for big-endian architectures and 0x74536152 ("tSaR") for little-endian
-architectures. The writer of the raster file will use the native word order,
-and the reader is responsible for detecting a reversed word order file and
-swapping bytes as needed. The CUPS Image Library raster functions perform
-this function automatically.
-
-<P>Following the synchronization word are a series of raster pages. Each page
-starts with a page device dictionary header and is followed immediately by the
-raster data for that page.
-
-<CENTER><TABLE WIDTH="80%" BORDER="1">
-<TR>
- <TH WIDTH="10%">Bytes</TH>
- <TH WIDTH="20%">Description</TH>
- <TH>Values</TH>
-</TR>
-<TR>
- <TD>0-63</TD>
- <TD>MediaClass</TD>
- <TD>Nul-terminated ASCII string</TD>
-</TR>
-<TR>
- <TD>64-127</TD>
- <TD>MediaColor</TD>
- <TD>Nul-terminated ASCII string</TD>
-</TR>
-<TR>
- <TD>128-191</TD>
- <TD>MediaType</TD>
- <TD>Nul-terminated ASCII string</TD>
-</TR>
-<TR>
- <TD>192-255</TD>
- <TD>OutputType</TD>
- <TD>Nul-terminated ASCII string</TD>
-</TR>
-<TR>
- <TD>256-259</TD>
- <TD>AdvanceDistance</TD>
- <TD>0 to 2<SUP>32</SUP> - 1 points</TD>
-</TR>
-<TR>
- <TD>260-263</TD>
- <TD>AdvanceMedia</TD>
- <TD>0 = Never advance roll<BR>
- 1 = Advance roll after file<BR>
- 2 = Advance roll after job<BR>
- 3 = Advance roll after set<BR>
- 4 = Advance roll after page</TD>
-</TR>
-<TR>
- <TD>264-267</TD>
- <TD>Collate</TD>
- <TD>0 = do not collate copies<BR>
- 1 = collate copies</TD>
-</TR>
-<TR>
- <TD>268-271</TD>
- <TD>CutMedia</TD>
- <TD>0 = Never cut media<BR>
- 1 = Cut roll after file<BR>
- 2 = Cut roll after job<BR>
- 3 = Cut roll after set<BR>
- 4 = Cut roll after page</TD>
-</TR>
-<TR>
- <TD>272-275</TD>
- <TD>Duplex</TD>
- <TD>0 = Print single-sided<BR>
- 1 = Print double-sided</TD>
-</TR>
-<TR>
- <TD>276-283</TD>
- <TD>HWResolution</TD>
- <TD>Horizontal and vertical resolution in dots-per-inch.</TD>
-</TR>
-<TR>
- <TD>284-299</TD>
- <TD>ImagingBoundingBox</TD>
- <TD>Four integers giving the left, bottom, right, and top positions
- of the page bounding box in points</TD>
-</TR>
-<TR>
- <TD>300-303</TD>
- <TD>InsertSheet</TD>
- <TD>0 = Do not insert separator sheets<BR>
- 1 = Insert separator sheets</TD>
-</TR>
-<TR>
- <TD>304-307</TD>
- <TD>Jog</TD>
- <TD>0 = Do no jog pages<BR>
- 1 = Jog pages after file<BR>
- 2 = Jog pages after job<BR>
- 3 = Jog pages after set</TD>
-</TR>
-<TR>
- <TD>308-311</TD>
- <TD>LeadingEdge</TD>
- <TD>0 = Top edge is first<BR>
- 1 = Right edge is first<BR>
- 2 = Bottom edge is first<BR>
- 3 = Left edge is first</TD>
-</TR>
-<TR>
- <TD>312-319</TD>
- <TD>Margins</TD>
- <TD>Left and bottom origin of image in points</TD>
-</TR>
-<TR>
- <TD>320-323</TD>
- <TD>ManualFeed</TD>
- <TD>0 = Do not manually feed media<BR>
- 1 = Manually feed media</TD>
-</TR>
-<TR>
- <TD>324-327</TD>
- <TD>MediaPosition</TD>
- <TD>Input slot position from 0 to N</TD>
-</TR>
-<TR>
- <TD>328-331</TD>
- <TD>MediaWeight</TD>
- <TD>Media weight in grams per meter squared</TD>
-</TR>
-<TR>
- <TD>332-335</TD>
- <TD>MirrorPrint</TD>
- <TD>0 = Do not mirror prints<BR>
- 1 = Mirror prints</TD>
-</TR>
-<TR>
- <TD>336-339</TD>
- <TD>NegativePrint</TD>
- <TD>0 = Do not invert prints<BR>
- 1 = Invert prints</TD>
-</TR>
-<TR>
- <TD>340-343</TD>
- <TD>NumCopies</TD>
- <TD>1 to 2<SUP>32</SUP> - 1</TD>
-</TR>
-<TR>
- <TD>344-347</TD>
- <TD>Orientation</TD>
- <TD>0 = Do not rotate page<BR>
- 1 = Rotate page counter-clockwise<BR>
- 2 = Turn page upside down<BR>
- 3 = Rotate page clockwise</TD>
-</TR>
-<TR>
- <TD>348-351</TD>
- <TD>OutputFaceUp</TD>
- <TD>0 = Output face down<BR>
- 1 = Output face up</TD>
-</TR>
-<TR>
- <TD>352-359</TD>
- <TD>PageSize</TD>
- <TD>Width and length in points</TD>
-</TR>
-<TR>
- <TD>360-363</TD>
- <TD>Separations</TD>
- <TD>0 = Print composite image<BR>
- 1 = Print color separations</TD>
-</TR>
-<TR>
- <TD>364-367</TD>
- <TD>TraySwitch</TD>
- <TD>0 = Do not change trays if selected tray is empty<BR>
- 1 = Change trays if selected tray is empty</TD>
-</TR>
-<TR>
- <TD>368-371</TD>
- <TD>Tumble</TD>
- <TD>0 = Do not rotate even pages when duplexing<BR>
- 1 = Rotate even pages when duplexing</TD>
-</TR>
-<TR>
- <TD>372-375</TD>
- <TD>cupsWidth</TD>
- <TD>Width of page image in pixels</TD>
-</TR>
-<TR>
- <TD>376-379</TD>
- <TD>cupsHeight</TD>
- <TD>Height of page image in pixels</TD>
-</TR>
-<TR>
- <TD>380-383</TD>
- <TD>cupsMediaType</TD>
- <TD>Driver-specific 0 to 2<SUP>32</SUP> - 1</TD>
-</TR>
-<TR>
- <TD>384-387</TD>
- <TD>cupsBitsPerColor</TD>
- <TD>1, 2, 4, 8 bits</TD>
-</TR>
-<TR>
- <TD>388-391</TD>
- <TD>cupsBitsPerPixel</TD>
- <TD>1 to 32 bits</TD>
-</TR>
-<TR>
- <TD>392-395</TD>
- <TD>cupsBytesPerLine</TD>
- <TD>1 to 2<SUP>32</SUP> - 1 bytes</TD>
-</TR>
-<TR>
- <TD>396-399</TD>
- <TD>cupsColorOrder</TD>
- <TD>0 = chunky pixels (CMYK CMYK CMYK)<BR>
- 1 = banded pixels (CCC MMM YYY KKK)<BR>
- 2 = planar pixels (CCC... MMM... YYY... KKK...)</TD>
-</TR>
-<TR>
- <TD>400-403</TD>
- <TD>cupsColorSpace</TD>
- <TD>0 = white<BR>
- 1 = RGB<BR>
- 2 = RGBA<BR>
- 3 = black<BR>
- 4 = CMY<BR>
- 5 = YMC<BR>
- 6 = CMYK<BR>
- 7 = YMCK<BR>
- 8 = KCMY<BR>
- 9 = KCMYcm</TD>
-</TR>
-<TR>
- <TD>404-407</TD>
- <TD>cupsCompression</TD>
- <TD>Driver-specific 0 to 2<SUP>32</SUP> - 1</TD>
-</TR>
-<TR>
- <TD>408-411</TD>
- <TD>cupsRowCount</TD>
- <TD>Driver-specific 0 to 2<SUP>32</SUP> - 1</TD>
-</TR>
-<TR>
- <TD>412-415</TD>
- <TD>cupsRowFeed</TD>
- <TD>Driver-specific 0 to 2<SUP>32</SUP> - 1</TD>
-</TR>
-<TR>
- <TD>416-419</TD>
- <TD>cupsRowStep</TD>
- <TD>Driver-specific 0 to 2<SUP>32</SUP> - 1</TD>
-</TR>
-</TABLE></CENTER>
-
-<P>The MIME type for CUPS Raster files is
-<CODE>application/vnd.cups-raster</CODE>.
-
-<H2>CUPS Raw Files</H2>
-
-<P>Raw files are printer-dependent print files that are in a format suitable
-to the destination printer (e.g. HP-PCL, HP-RTL, etc.) The MIME type for CUPS
-Raw files is <CODE>application/vnd.cups-raw</CODE>.
-
-<H2>Internet Printing Protocol</H2>
-
-<P>The Internet Printing Protocol and the CUPS extensions to it are
-described in the CUPS Implementation of IPP document.
-
-<H2>Line Printer Daemon Protocol</H2>
-
-<P>The Line Printer Daemon (LPD) protocol is described by
-<A HREF="http://www.ietf.org/rfc/rfc1179.txt">RFC 1179: Line Printer Daemon
-Protocol</A>.
-
-<P>The URI method name for LPD is "lpd".
-
-<H2>Server Message Block Protocol</H2>
-
-<P>The Server Message Block (SMB) and related Common Internet File
-System (CIFS) protocols are described at
-<A HREF="http://anu.samba.org/cifs">http://anu.samba.org/cifs</A>.
-
-<P>The URI method name for SMB is "smb". Support for this protocol is
-provided via the SAMBA <CODE>smbspool(1)</CODE> program provided with
-SAMBA 2.0.6 and higher.
-
-<H1>Directories</H1>
-
-<DL>
-
- <DT>/etc/cups
- <DD>The scheduler configuration and MIME files reside here.
-
- <DT>/etc/cups/certs
- <DD>The authentication certificates reside here.
-
- <DT>/etc/cups/interfaces
- <DD>System V interface scripts reside here.
-
- <DT>/etc/cups/ppd
- <DD>This directory contains PPD files for each printer.
-
- <DT>/usr/bin
- <DD>The <CODE>cancel</CODE>, <CODE>lp</CODE>, <CODE>lpq</CODE>,
- <CODE>lpr</CODE>, <CODE>lprm</CODE>, and <CODE>lpstat</CODE> commands
- reside here.
-
- <DT>/usr/lib, /usr/lib32
- <DD>The shared libraries (DSOs) reside here.
-
- <DT>/usr/lib/cups/backend
- <DD>The backend filters reside here.
-
- <DT>/usr/lib/cups/cgi-bin
- <DD>The CGI programs reside here.
-
- <DT>/usr/lib/cups/daemon
- <DD>The polling and LPD daemons reside here.
-
- <DT>/usr/lib/cups/filter
- <DD>The file filters reside here.
-
- <DT>/usr/sbin
- <DD>The <CODE>accept</CODE>, <CODE>cupsd</CODE>,
- <CODE>lpadmin</CODE>, <CODE>lpc</CODE>, and <CODE>reject</CODE>
- commands reside here.
-
- <DT>/usr/share/cups
- <DD>This is the root directory of the CUPS static data.
-
- <DT>/usr/share/cups/charsets
- <DD>The character set files reside here.
-
- <DT>/usr/share/cups/data
- <DD>The filter data files reside here.
-
- <DT>/usr/share/cups/fonts
- <DD>The <CODE>pstoraster</CODE> font files reside here.
-
- <DT>/usr/share/cups/model
- <DD>The sample PPD files reside here.
-
- <DT>/usr/share/cups/pstoraster
- <DD>The <CODE>pstoraster</CODE> data files reside here.
-
- <DT>/usr/share/doc/cups
- <DD>The scheduler documentation files reside here.
-
- <DT>/var/log/cups
- <DD>The <CODE>access_log</CODE>, <CODE>error_log</CODE>, and
- <CODE>page_log</CODE> files reside here.
-
- <DT>/var/spool/cups
- <DD>This directory contains print job files.
-
-</DL>
-
-<EMBED SRC="glossary.shtml">
-
-</BODY>
-</HTML>
<P><SMALL>The Common UNIX Printing System, CUPS, and the CUPS logo are the
trademark property of <A HREF="http://www.easysw.com">Easy Software
-Products</A>. CUPS is copyright 1997-2006 by Easy Software Products,
+Products</A>. CUPS is copyright 1997-2007 by Easy Software Products,
All Rights Reserved.</SMALL></P>
</TD>
<P><SMALL>Common UNIX Printing System, CUPS, e il logo CUPS sono
marchi registrati da <A HREF="http://www.easysw.com">Easy Software
-Products</A>. CUPS è un copyright 1997-2006 di Easy Software Products,
+Products</A>. CUPS è un copyright 1997-2007 di Easy Software Products,
Tutti i diritti sono riservati.</SMALL></P>
</TD>
<P><SMALL>The Common UNIX Printing System, CUPS, and the CUPS logo are the
trademark property of <A HREF="http://www.easysw.com">Easy Software
-Products</A>. CUPS is copyright 1997-2006 by Easy Software Products,
+Products</A>. CUPS is copyright 1997-2007 by Easy Software Products,
All Rights Reserved.</SMALL></P>
</TD>
<P><SMALL>Common UNIX Printing System, CUPS i logo CUPS są
zarejestrowanymi znakami towarowymi <A HREF="http://www.easysw.com">Easy Software
-Products</A>. Copyright 1997-2006 Easy Software Products,
+Products</A>. Copyright 1997-2007 Easy Software Products,
wszelkie prawa zastrzeżone.</SMALL></P>
</TD>
+++ /dev/null
-<HTML>
-<HEAD>
- <META NAME="COPYRIGHT" CONTENT="Copyright 1997-2003, All Rights Reserved">
- <META NAME="DOCNUMBER" CONTENT="CUPS-SDD-1.2">
- <META NAME="Author" CONTENT="Easy Software Products">
- <TITLE>CUPS Software Design Description</TITLE>
-</HEAD>
-<BODY>
-
-<H1>Scope</H1>
-
-<H2>Identification</H2>
-
-This software design description document provides general information
-on the architecture and coding of the Common UNIX Printing System
-("CUPS") Version 1.2.
-
-<EMBED SRC="system-overview.shtml">
-
-<H2>Document Overview</H2>
-
-This software design description document is organized into the
-following sections:
-
-<UL>
-
- <LI>1 - Scope
-
- <LI>2 - References
-
- <LI>3 - Design Overview
-
- <LI>A - Glossary
-
-</UL>
-
-<EMBED SRC="references.shtml">
-
-<H1>Design Overview</H1>
-
-CUPS is composed of 9 software sub-systems that operate together to
-perform common printing tasks:
-
-<UL>
-
- <LI>Backends
-
- <LI>Berkeley Commands
-
- <LI>CGI
-
- <LI>CUPS Application Programmers Interface
-
- <LI>CUPS Imaging Library
-
- <LI>Daemons
-
- <LI>Filters
-
- <LI>Scheduler
-
- <LI>System V Commands
-
-</UL>
-
-<H2>Backends</H2>
-
-The backends implement communications over a number of different interfaces.
-All backends are called with a common set of arguments:
-
-<UL>
-
- <LI>Device URI - the Uniform Resource Identifier for the output device
- (e.g. <CODE>parallel:/dev/plp</CODE>,
- <CODE>ipp://hostname/resource</CODE>).
-
- <LI>Job Identifier - the job identifier for this job (integer).
-
- <LI>User Name - the user associated with this job (name string).
-
- <LI>Title - the title/job-name associated with this job (name string).
-
- <LI>Copies - the number of copies required (integer).
-
- <LI>Options - the options associated with this job (space separated
- option strings).
-
- <LI>Filename (optional) - the file to print; if this option is not
- specified, the backend must read the print file from the standard
- input.
-
-</UL>
-
-<P>Backends are named using the scheme of the URI, so a URI of
-"ipp://hostname/resource" would be processed by the "ipp" backend.
-
-<H3>ipp</H3>
-
-<P>The ipp backend sends the specified job to a network printer or host using
-the Internet Printing Protocol. The URI is as specified by the
-<CODE>printer-uri-supported</CODE> attribute from the printer or host.
-
-<H3>lpd</H3>
-
-<P>The lpd backend sends the specified job to a network printer or host using
-the Line Printer Daemon protocol. The URI is of the form:
-
-<UL><PRE>lpd://hostname/queue
-</PRE></UL>
-
-<H3>parallel</H3>
-
-<P>The parallel backend sends the specified job to a local printer connected
-via the specified parallel port device. The URI is of the form:
-
-<UL><PRE>parallel:/dev/file
-</PRE></UL>
-
-<H3>serial</H3>
-
-<P>The serial backend sends the specified job to a local printer connected
-via the specified serial port device. The URI is of the form:
-
-<UL><PRE>serial:/dev/file?option[+option+...]
-</PRE></UL>
-
-The options can be any combination of the following:
-
-<UL>
-
- <LI><CODE>baud=<I>rate</I></CODE> - Sets the baud rate for the device.
-
- <LI><CODE>bits=<I>7 or 8</I></CODE> - Sets the number of data bits.
-
- <LI><CODE>parity=<I>even</I></CODE> - Sets even parity checking.
-
- <LI><CODE>parity=<I>odd</I></CODE> - Sets odd parity checking.
-
- <LI><CODE>parity=<I>none</I></CODE> - Turns parity checking off.
-
- <LI><CODE>flow=dtrdsr<I></I></CODE> - Turns DTR/DSR (hardware) flow
- control on.
-
- <LI><CODE>flow=hard<I></I></CODE> - Turns RTS/CTS
- (hardware) flow control on.
-
- <LI><CODE>flow=none<I></I></CODE> - Turns flow control off.
-
- <LI><CODE>flow=rtscts<I></I></CODE> - Turns RTS/CTS
- (hardware) flow control on.
-
- <LI><CODE>flow=xonxoff<I></I></CODE> - Turns XON/XOFF
- (software) flow control on.
-
-</UL>
-
-<H3>socket</H3>
-
-<P>The socket backend sends the specified job to a network host using the
-AppSocket protocol commonly used by Hewlett-Packard and Tektronix
-printers. The URI is of the form:
-
-<UL><PRE>socket://hostname[:port]
-</PRE></UL>
-
-The default port number is 9100.
-
-<H3>usb</H3>
-
-<P>The usb backend sends the specified job to a local printer connected
-via the specified usb port device. The URI is of the form:
-
-<UL><PRE>usb:/dev/file
-</PRE></UL>
-
-<H2>Berkeley Commands</H2>
-
-<P>The Berkeley commands provide a simple command-line interface to CUPS
-to submit and control print jobs. It is provided for compatibility with
-existing software that is hardcoded to use the Berkeley commands.
-
-<H3>lpc</H3>
-
-The lpc command allows users and administrators to check the status and
-control print queues. The version provided with CUPS supports the following
-commands:
-
-<UL>
-
- <LI>quit - Quits the lpc command.
-
- <LI>status - Shows the status of printers and jobs in the queue.
-
-</UL>
-
-<H3>lpq</H3>
-
-<P>The lpq command shows the current queue status.
-
-<H3>lpr</H3>
-
-<P>The lpr command submits a job for printing. The CUPS version of lpr silently
-ignores the "i", "t", "m", "h", and "s" options.
-
-<H3>lprm</H3>
-
-<P>The lprm removes one or more print jobs.
-
-<H2>CGI</H2>
-
-<P>The Common Gateway Interface (CGI) programs provide a web-based
-status interface to monitor the status of printers, classes, and jobs.
-Each of the CGIs utilize HTML template files that can be customized to
-provide alternate appearances.
-
-<H3>admin.cgi</H3>
-
-<P>The admin CGI provides administration interfaces for printers and
-classes. The user can add, modify, delete, start, stop, and configure
-printers and classes using "wizard" interfaces.
-
-<H3>classes.cgi</H3>
-
-<P>The classes CGI lists the available printer classes and any pending
-jobs for the class. The user can click on individual classes to limit
-the display and click on jobs to see the job status.
-
-<H3>jobs.cgi</H3>
-
-<P>The jobs CGI lists the queued print jobs in order of priority. The
-list can be limited by printer or job.
-
-<H3>printers.cgi</H3>
-
-<P>The printers CGI lists the available printer queues and any pending
-jobs for the printer. The user can click on individual printers to
-limit the display and click on jobs to see the job status.
-
-<H2>CUPS Application Programmers Interface</H2>
-
-<P>The CUPS Application Programmers Interface ("API") provides common
-convenience, HTTP, IPP, language, and PPD functions used by the CUPS
-software.
-
-<H3>Convenience Functions</H3>
-
-<P>Convenience functions are provided to submit an IPP request, send a
-print file, cancel a job, get a list of available printers, get a list
-of available classes, get the default printer or class, get the default
-server name, get the local username, and get a password string.
-
-<H3>HTTP Functions</H3>
-
-<P>The HTTP functions provide functions to connect to HTTP servers,
-issue requests, read data from a server, and write data to a server.
-
-<H3>IPP Functions</H3>
-
-<P>The IPP function provide functions to manage IPP request data and
-attributes, read IPP responses from a server, and write IPP requests to
-a server.
-
-<H3>Language Functions</H3>
-
-<P>The language functions provide a standard interface for retrieving
-common textual messages for a particular locale and determining the
-correct encoding (e.g. US ASCII, UTF-8, ISO-8859-1, etc.)
-
-<H3>PPD Functions</H3>
-
-<P>The PostScript Printer Description functions manage PPD files,
-select options, check for option conflicts, and emit selected options
-in the correct order.
-
-<H2>CUPS Imaging Library</H2>
-
-<P>The CUPS imaging library provides colorspace conversion, color
-management, image management, scaling, image file, and raster functions
-used by the CUPS raster filters.
-
-<H3>Colorspace Conversion Functions</H3>
-
-<P>The colorspace conversion functions handle conversion of grayscale
-and RGB colors to grayscale, RGB, K, CMY, CMYK, and CMYKcm colorspaces.
-
-<H3>Color Management Functions</H3>
-
-<P>The color management functions handle gamut mapping and density
-correction. These are integrated with the colorspace conversion
-functions so that colorspace conversion and color management are
-processed in a single step.
-
-<H3>Image Management Functions</H3>
-
-<P>The image management functions manage a tiled image database that is
-swapped to/from disk as needed.
-
-<H3>Scaling Functions</H3>
-
-<P>The scaling functions provide image scaling services using
-nearest-neighbor sampling and bilinear interpolation as appropriate.
-
-<H3>Image File Functions</H3>
-
-<P>The image file functions handle loading of all image file formats.
-
-<H3>Raster Functions</H3>
-
-<P>The raster functions manage streams of CUPS raster data (described
-in the Interface Design Document) used by non-PostScript printer
-drivers and raster filters.
-
-<H2>Daemons</H2>
-
-<P>The daemons provide additional network functions for the scheduler.
-Currently only two daemons are provided with CUPS.
-
-<H3>Line Printer Daemon</H3>
-
-<P>The line printer daemon provides remote LPD client support and is
-run by the <CODE>inetd(8)</CODE> daemon as needed.
-
-<H3>Polling Daemon</H3>
-
-<P>The polling daemon is used to poll a remote server for a list of
-available printers and provide it to the scheduler for addition. A
-separate polling daemon is run by the scheduler for every remote
-system listed for polling in the scheduler configuration file.
-
-<H2>Filters</H2>
-
-<P>The filters implement file conversion services for CUPS. All filters
-are called with a common set of arguments:
-
-<UL>
-
- <LI>Printer name - the name of the destination printer (name string).
-
- <LI>Job Identifier - the job identifier for this job (integer).
-
- <LI>User Name - the user associated with this job (name string).
-
- <LI>Title - the title/job-name associated with this job (name string).
-
- <LI>Copies - the number of copies required (integer).
-
- <LI>Options - the options associated with this job (space separated
- option strings).
-
- <LI>Filename (optional) - the file to print; if this option is not
- specified, the filter must read the input file from the standard
- input.
-
-</UL>
-
-<P>Filters are added to the MIME conversion data file and implement all
-necessary conversions from one file type to another.
-
-<H3>hpgltops</H3>
-
-<P>The hpgltops filter converts HP-GL/2 files into PostScript.
-
-<H3>imagetops</H3>
-
-<P>The imagetops filter converts image files into PostScript.
-
-<H3>imagetoraster</H3>
-
-<P>The imagetoraster filter converts image files into CUPS raster data.
-
-<H3>pdftops</H3>
-
-<P>The pdftops filter converts PDF files into PostScript.
-
-<H3>pstops</H3>
-
-<P>The pstops filter inserts printer-specific commands from PPD files and
-performs page filtering as requested by the user.
-
-<H3>pstoraster</H3>
-
-<P>The pstoraster filter converts PostScript program data into CUPS
-raster data.
-
-<H3>rastertoepson</H3>
-
-<P>The rastertoepson filter handles converting CUPS raster data to
-ESC/P and supports both color and black-and-white printers.
-
-<H3>rastertohp</H3>
-
-<P>The rastertohp filter handles converting CUPS raster data to HP-PCL
-and supports both color and black-and-white printers.
-
-<H3>texttops</H3>
-
-<P>The texttops filter converts text files into PostScript.
-
-<H2>Scheduler</H2>
-
-<P>The scheduler is a fully-functional HTTP/1.1 and IPP/1.1 server that
-manages the printers, classes, and jobs in the system. It also handles
-a simple broadcast-based directory service so that remote print queues
-and classes can be accessed transparently from the local system.
-
-<H3>Authorization</H3>
-
-<P>The authorization module is responsible for performing access
-control and authentication for all HTTP and IPP requests entering the
-system.
-
-<H3>Classes</H3>
-
-<P>The classes module is responsible for managing printer classes in
-the system. Each class is a collection of local and/or remote
-printers. The classes module also reads and writes the classes
-configuration file.
-
-<H3>Client</H3>
-
-<P>The client module is responsible for all HTTP client
-communications. It handles listening on selected interfaces, accepting
-connections from prospective clients, processing incoming HTTP
-requests, and sending HTTP responses to those requests. The client
-module also is responsible for executing the external CGI programs as
-needed to support web-based printer, class, and job status monitoring
-and administration.
-
-<P>Once authorized, all IPP requests are sent to the IPP module.
-
-<H3>Configuration</H3>
-
-<P>The configuration module is responsible for reading the CUPS
-configuration file and initializing the appropriate data structures and
-values. The configuration module also stops CUPS services before
-reading the configuration file and restarts them after the
-configuration file has been read.
-
-<H3>Devices</H3>
-
-<P>The devices module is responsible for managing the list of available
-devices for the CUPS-Get-Devices operation.
-
-<H3>Directory Services</H3>
-
-<P>The directory services module sends and recieves printer state
-information over a broadcast socket. Remote printers and classes are
-automatically added to or removed from the local printer and class
-lists as needed.
-
-<P>The directory services module can only recieve printer state information
-over a single UDP port, however it can broadcast to multiple addresses and
-ports as needed.
-
-<H3>IPP</H3>
-
-<P>The IPP module handles IPP requests and acts accordingly. URI
-validation is also performed here, as a client can post IPP data to any
-URI on the server which might sidestep the access control or
-authentication of the HTTP server.
-
-<H3>Jobs</H3>
-
-<P>The jobs module manages print jobs, starts filter and backend
-processes for jobs to be printed, and monitors status messages from
-those filters and backends.
-
-<H3>Logging</H3>
-
-<P>The logging module manages the access, error, and page log files
-that are generated by the scheduler.
-
-<H3>Main</H3>
-
-<P>The main module is responsible for timing out and dispatching input
-and output for client connections. It also watches for incoming
-<CODE>SIGHUP</CODE> and <CODE>SIGCHLD</CODE> signals, reloads the
-server configuration files as needed, and handles child process errors
-and exits.
-
-<H3>MIME</H3>
-
-<P>The Multimedia Internet Mail Exchange module manages a MIME type and
-conversion database that supports file typing by extension and content
-and least-cost file filtering from a source to a destination file type.
-
-<H3>PPDs</H3>
-
-<P>The PPDs module is responsible for managing the list of available
-PPD files for the CUPS-Get-PPDs operation.
-
-<H3>Printers</H3>
-
-<P>The printers module is responsible for managing printers and PPD
-files in the system. The printers module also reads and writes the
-printers configuration file.
-
-<H2>System V Commands</H2>
-
-<P>The System V commands provide a robust command-line interface to
-CUPS to submit and control printers and jobs.
-
-<H3>accept</H3>
-
-<P>The accept command tells the scheduler to accept new jobs for specific
-printers.
-
-<H3>cancel</H3>
-
-<P>The cancel command tells the scheduler to cancel one or more jobs that are
-queued for printing.
-
-<H3>disable</H3>
-
-<P>The disable command tells the scheduler to stop printing jobs on the
-specified printers.
-
-<H3>enable</H3>
-
-<P>The enable command tells the scheduler to start printing jobs on the
-specified printers.
-
-<H3>lp</H3>
-
-<P>The lp command submits submits files for printing. Unlike the standard
-System V lp command, a single CUPS lp command will generate a separate
-job ID for each file that is printed. Also, the Solaris "f", "H", "P", "S",
-and "y" options are silently ignored.
-
-<H3>lpadmin</H3>
-
-<P>The lpadmin command manages printer queues and classes. The Solaris
-"A", "F", "I", "M", "P", "Q", "S", "T", "U", "W", "f", "l", "m", "o",
-"s", "t", and "u" options are not supported, and new options "P" (PPD
-file) and "E" (enable and accept) are provided to configure
-CUPS-specific features.
-
-<H3>lpinfo</H3>
-
-<P>The lpinfo command lists the available PPD files or devices as selected
-by the user.
-
-<H3>lpmove</H3>
-
-<P>The lpmove command moves a print job to a new destination.
-
-<H3>lpoptions</H3>
-
-<P>The lpoptions command manages user-defined printers and options.
-
-<H3>lpstat</H3>
-
-<P>The lpstat command lists printers, classes, and jobs as requested by the
-user.
-
-<H3>reject</H3>
-
-<P>The reject command tells the scheduler not to accept new jobs for specific
-printers.
-
-<EMBED SRC="glossary.shtml">
-
-</BODY>
-</HTML>
+++ /dev/null
-<HTML>
-<HEAD>
- <META NAME="COPYRIGHT" CONTENT="Copyright 1997-2003, All Rights Reserved">
- <META NAME="DOCNUMBER" CONTENT="CUPS-SPS-1.2">
- <META NAME="Author" CONTENT="Easy Software Products">
- <TITLE>CUPS Software Performance Specification</TITLE>
-</HEAD>
-<BODY>
-
-<H1>Scope</H1>
-
-<H2>Identification</H2>
-
-<P>This software performance specification provides an analysis of the
-memory, disk, and processor utilitization of each program in the
-Common UNIX Printing System ("CUPS") Version 1.2.</P>
-
-<P>For the purposes of comparison, all figures are for the Linux Intel
-platform. Memory utilization on other platforms should be similar.
-
-<EMBED SRC="system-overview.shtml">
-
-<H2>Document Overview</H2>
-
-<P>This software performance specification is organized into the
-following sections:</P>
-
-<UL>
- <LI>1 - Scope</LI>
- <LI>2 - References</LI>
- <LI>3 - Programs</LI>
- <LI>4 - Scheduler Objects</LI>
- <LI>A - Glossary</LI>
-</UL>
-
-<EMBED SRC="references.shtml">
-
-<H1>Programs</H1>
-
-<P>The following table describes the average memory, disk, and CPU usage of
-each program in CUPS.
-
-<P>The base memory column shows the initial memory requirements for each
-program, including any shared libraries that are provided by CUPS.
-
-<P>The max memory column shows the maximum amount of memory that will be
-used by the program based upon the default configuration settings supplied
-with CUPS.
-
-<P>The temp files column indicates whether any temporary files are created.
-
-<P>The CPU usage column specifies a relative CPU usage by the program under
-normal conditions, either low, medium, or high. Low usage indicates that
-the program will never use more than 33% of the available CPU time. Medium
-usage indicates the program will use as much as 66% of the available CPU
-time. High usage indicates the program uses 66% or more of the available CPU
-time.
-
-<CENTER><TABLE WIDTH="80%" BORDER="1">
-<TR>
- <TH COLSPAN="3">Backends</TH>
-</TR>
-<TR>
- <TH>Program</TH>
- <TH>Base Memory</TH>
- <TH>Max Memory</TH>
- <TH>Temp Files</TH>
- <TH>CPU Usage</TH>
-</TR>
-<TR>
- <TD>ipp</TD>
- <TD>91k</TD>
- <TD>256k</TD>
- <TD>Up to size of print file</TD>
- <TD>Low</TD>
-</TR>
-<TR>
- <TD>lpd</TD>
- <TD>89k</TD>
- <TD>89k</TD>
- <TD>Up to size of print file</TD>
- <TD>Low</TD>
-</TR>
-<TR>
- <TD>parallel</TD>
- <TD>85k</TD>
- <TD>85k</TD>
- <TD>Up to size of print file</TD>
- <TD>Low</TD>
-</TR>
-<TR>
- <TD>serial</TD>
- <TD>85k</TD>
- <TD>85k</TD>
- <TD>Up to size of print file</TD>
- <TD>Low</TD>
-</TR>
-<TR>
- <TD>socket</TD>
- <TD>85k</TD>
- <TD>85k</TD>
- <TD>Up to size of print file</TD>
- <TD>Low</TD>
-</TR>
-<TR>
- <TD>usb</TD>
- <TD>85k</TD>
- <TD>85k</TD>
- <TD>Up to size of print file</TD>
- <TD>Low</TD>
-</TR>
-<TR>
- <TH COLSPAN="3">CGIs</TH>
-</TR>
-<TR>
- <TH>Program</TH>
- <TH>Base Memory</TH>
- <TH>Max Memory</TH>
- <TH>Temp Files</TH>
- <TH>CPU Usage</TH>
-</TR>
-<TR>
- <TD>admin.cgi</TD>
- <TD>107k</TD>
- <TD>256k</TD>
- <TD>Up to size of PPD file</TD>
- <TD>Medium</TD>
-</TR>
-<TR>
- <TD>classes.cgi</TD>
- <TD>95k</TD>
- <TD>Size of class objects</TD>
- <TD>None</TD>
- <TD>Medium</TD>
-</TR>
-<TR>
- <TD>jobs.cgi</TD>
- <TD>93k</TD>
- <TD>Size of job objects</TD>
- <TD>None</TD>
- <TD>Medium</TD>
-</TR>
-<TR>
- <TD>printers.cgi</TD>
- <TD>95k</TD>
- <TD>Size of printer objects</TD>
- <TD>None</TD>
- <TD>Medium</TD>
-</TR>
-<TR>
- <TH COLSPAN="3">Command-Line Programs</TH>
-</TR>
-<TR>
- <TH>Program</TH>
- <TH>Base Memory</TH>
- <TH>Max Memory</TH>
- <TH>Temp Files</TH>
- <TH>CPU Usage</TH>
-</TR>
-<TR>
- <TD>accept</TD>
- <TD>88k</TD>
- <TD>128k</TD>
- <TD>None</TD>
- <TD>Low</TD>
-</TR>
-<TR>
- <TD>cancel</TD>
- <TD>88k</TD>
- <TD>128k</TD>
- <TD>None</TD>
- <TD>Low</TD>
-</TR>
-<TR>
- <TD>disable</TD>
- <TD>88k</TD>
- <TD>128k</TD>
- <TD>None</TD>
- <TD>Low</TD>
-</TR>
-<TR>
- <TD>enable</TD>
- <TD>88k</TD>
- <TD>128k</TD>
- <TD>None</TD>
- <TD>Low</TD>
-</TR>
-<TR>
- <TD>lp</TD>
- <TD>90k</TD>
- <TD>256k</TD>
- <TD>None</TD>
- <TD>Low</TD>
-</TR>
-<TR>
- <TD>lpadmin</TD>
- <TD>148k</TD>
- <TD>256k</TD>
- <TD>None</TD>
- <TD>Low</TD>
-</TR>
-<TR>
- <TD>lpc</TD>
- <TD>86k</TD>
- <TD>Size of job and printer objects</TD>
- <TD>None</TD>
- <TD>Medium</TD>
-</TR>
-<TR>
- <TD>lpinfo</TD>
- <TD>89k</TD>
- <TD>Size of device and PPD objects</TD>
- <TD>None</TD>
- <TD>Medium</TD>
-</TR>
-<TR>
- <TD>lpmove</TD>
- <TD>88k</TD>
- <TD>128k</TD>
- <TD>None</TD>
- <TD>Low</TD>
-</TR>
-<TR>
- <TD>lpoptions</TD>
- <TD>89k</TD>
- <TD>128k</TD>
- <TD>None</TD>
- <TD>Low</TD>
-</TR>
-<TR>
- <TD>lppasswd</TD>
- <TD>90k</TD>
- <TD>90k</TD>
- <TD>None</TD>
- <TD>Low</TD>
-</TR>
-<TR>
- <TD>lpq</TD>
- <TD>87k</TD>
- <TD>Size of job objects</TD>
- <TD>None</TD>
- <TD>Medium</TD>
-</TR>
-<TR>
- <TD>lpr</TD>
- <TD>87k</TD>
- <TD>256k</TD>
- <TD>None</TD>
- <TD>Low</TD>
-</TR>
-<TR>
- <TD>lprm</TD>
- <TD>84k</TD>
- <TD>128k</TD>
- <TD>None</TD>
- <TD>Low</TD>
-</TR>
-<TR>
- <TD>lpstat</TD>
- <TD>119k</TD>
- <TD>Size of job, printer, and class objects</TD>
- <TD>None</TD>
- <TD>Medium</TD>
-</TR>
-<TR>
- <TD>reject</TD>
- <TD>88k</TD>
- <TD>128k</TD>
- <TD>None</TD>
- <TD>Low</TD>
-</TR>
-<TR>
- <TH COLSPAN="3">Daemons</TH>
-</TR>
-<TR>
- <TH>Program</TH>
- <TH>Base Memory</TH>
- <TH>Max Memory</TH>
- <TH>Temp Files</TH>
- <TH>CPU Usage</TH>
-</TR>
-<TR>
- <TD>cups-lpd</TD>
- <TD>92k</TD>
- <TD>256k</TD>
- <TD>One file per control or data file from client</TD>
- <TD>Low</TD>
-</TR>
-<TR>
- <TD>cupsd</TD>
- <TD>308k</TD>
- <TD>See Scheduler Requirements</TD>
- <TD>See Scheduler Requirements</TD>
- <TD>Medium</TD>
-</TR>
-<TR>
- <TD>cups-polld</TD>
- <TD>84k</TD>
- <TD>Size of printer and class objects</TD>
- <TD>None</TD>
- <TD>Low</TD>
-</TR>
-<TR>
- <TH COLSPAN="3">Filters</TH>
-</TR>
-<TR>
- <TH>Program</TH>
- <TH>Base Memory</TH>
- <TH>Max Memory</TH>
- <TH>Temp Files</TH>
- <TH>CPU Usage</TH>
-</TR>
-<TR>
- <TD>hpgltops</TD>
- <TD>263k</TD>
- <TD>320k</TD>
- <TD>None</TD>
- <TD>Medium</TD>
-</TR>
-<TR>
- <TD>imagetops</TD>
- <TD>628k</TD>
- <TD>10M</TD>
- <TD>Swap file for uncompressed image data</TD>
- <TD>Medium</TD>
-</TR>
-<TR>
- <TD>imagetoraster</TD>
- <TD>652k</TD>
- <TD>10M</TD>
- <TD>Swap file for uncompressed image data</TD>
- <TD>High</TD>
-</TR>
-<TR>
- <TD>pstops</TD>
- <TD>775k</TD>
- <TD>840k</TD>
- <TD>Up to size of print file</TD>
- <TD>Medium</TD>
-</TR>
-<TR>
- <TD>pstoraster</TD>
- <TD>4M</TD>
- <TD>14M</TD>
- <TD>Swap file for command lists</TD>
- <TD>High</TD>
-</TR>
-<TR>
- <TD>rastertoepson</TD>
- <TD>693k</TD>
- <TD>1M</TD>
- <TD>None</TD>
- <TD>Low</TD>
-</TR>
-<TR>
- <TD>rastertohp</TD>
- <TD>690k</TD>
- <TD>1M</TD>
- <TD>None</TD>
- <TD>Low</TD>
-</TR>
-<TR>
- <TD>texttops</TD>
- <TD>638k</TD>
- <TD>4*cols*rows</TD>
- <TD>None</TD>
- <TD>Low</TD>
-</TR>
-</TABLE></CENTER>
-
-
-<H1>Scheduler Objects</H1>
-
-<P>The <CODE>cupsd</CODE> program is the CUPS scheduler process. It manages
-many interdependent server objects that are used to manage and print files
-to printers.
-
-<P>The following table provides the memory and disk cost associated with each
-server object.
-
-<CENTER><TABLE WIDTH="80%" BORDER="1">
-<TR>
- <TH>Object</TH>
- <TH>Memory Per</TH>
- <TH>Disk Per</TH>
-</TR>
-<TR>
- <TD>Browse ACL</TD>
- <TD>1k</TD>
- <TD>120</TD>
-</TR>
-<TR>
- <TD>Browse Poll</TD>
- <TD>24</TD>
- <TD>80</TD>
-</TR>
-<TR>
- <TD>Browse Relay</TD>
- <TD>28</TD>
- <TD>80</TD>
-</TR>
-<TR>
- <TD>Certificate</TD>
- <TD>76</TD>
- <TD>32</TD>
-</TR>
-<TR>
- <TD>Class</TD>
- <TD>9k</TD>
- <TD>200</TD>
-</TR>
-<TR>
- <TD>Client</TD>
- <TD>13k</TD>
- <TD>-</TD>
-</TR>
-<TR>
- <TD>Device</TD>
- <TD>256</TD>
- <TD>-</TD>
-</TR>
-<TR>
- <TD>Job</TD>
- <TD>2k</TD>
- <TD>1k + size of document files</TD>
-</TR>
-<TR>
- <TD>Location ACL</TD>
- <TD>1k</TD>
- <TD>120</TD>
-</TR>
-<TR>
- <TD>MIME Filter</TD>
- <TD>268</TD>
- <TD>80</TD>
-</TR>
-<TR>
- <TD>MIME Type</TD>
- <TD>340</TD>
- <TD>80</TD>
-</TR>
-<TR>
- <TD>PPD</TD>
- <TD>200</TD>
- <TD>656</TD>
-</TR>
-<TR>
- <TD>Printer</TD>
- <TD>11k</TD>
- <TD>32k</TD>
-</TR>
-</TABLE></CENTER>
-
-<EMBED SRC="glossary.shtml">
-
-</BODY>
-</HTML>
<TD COLSPAN="2" WIDTH="100%" STYLE="padding: 5;">
<P><SMALL>The Common UNIX Printing System, CUPS, och CUPS-logotypen är varumärken för <A HREF="http://www.easysw.com">Easy Software
-Products</A>. CUPS är copyright 1997-2006 Easy Software Products,
+Products</A>. CUPS är copyright 1997-2007 Easy Software Products,
Alla rättigheter reserverade.</SMALL></P>
</TD>
-# DO NOT DELETE
-
-hpgl-attr.o: hpgltops.h common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-hpgl-attr.o: ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-hpgl-attr.o: ../cups/language.h ../cups/language.h ../cups/string.h
-hpgl-attr.o: ../config.h
-hpgl-config.o: hpgltops.h common.h ../cups/cups.h ../cups/ipp.h
-hpgl-config.o: ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-hpgl-config.o: ../cups/file.h ../cups/language.h ../cups/language.h
-hpgl-config.o: ../cups/string.h ../config.h
-hpgl-main.o: hpgltops.h common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-hpgl-main.o: ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-hpgl-main.o: ../cups/language.h ../cups/language.h ../cups/string.h
-hpgl-main.o: ../config.h
-hpgl-prolog.o: hpgltops.h common.h ../cups/cups.h ../cups/ipp.h
-hpgl-prolog.o: ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-hpgl-prolog.o: ../cups/file.h ../cups/language.h ../cups/language.h
-hpgl-prolog.o: ../cups/string.h ../config.h
-hpgl-char.o: hpgltops.h common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-hpgl-char.o: ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-hpgl-char.o: ../cups/language.h ../cups/language.h ../cups/string.h
-hpgl-char.o: ../config.h
-hpgl-input.o: hpgltops.h common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-hpgl-input.o: ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-hpgl-input.o: ../cups/language.h ../cups/language.h ../cups/string.h
-hpgl-input.o: ../config.h
-hpgl-polygon.o: hpgltops.h common.h ../cups/cups.h ../cups/ipp.h
-hpgl-polygon.o: ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-hpgl-polygon.o: ../cups/file.h ../cups/language.h ../cups/language.h
-hpgl-polygon.o: ../cups/string.h ../config.h
-hpgl-vector.o: hpgltops.h common.h ../cups/cups.h ../cups/ipp.h
-hpgl-vector.o: ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-hpgl-vector.o: ../cups/file.h ../cups/language.h ../cups/language.h
-hpgl-vector.o: ../cups/string.h ../config.h
-image-bmp.o: image-private.h image.h raster.h ../cups/cups.h ../cups/ipp.h
-image-bmp.o: ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-image-bmp.o: ../cups/file.h ../cups/language.h ../cups/debug.h
-image-bmp.o: ../cups/string.h ../config.h
-image-colorspace.o: image-private.h image.h raster.h ../cups/cups.h
-image-colorspace.o: ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h
-image-colorspace.o: ../cups/array.h ../cups/file.h ../cups/language.h
-image-colorspace.o: ../cups/debug.h ../cups/string.h ../config.h
-image-gif.o: image-private.h image.h raster.h ../cups/cups.h ../cups/ipp.h
-image-gif.o: ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-image-gif.o: ../cups/file.h ../cups/language.h ../cups/debug.h
-image-gif.o: ../cups/string.h ../config.h
-image-jpeg.o: image-private.h image.h raster.h ../cups/cups.h ../cups/ipp.h
-image-jpeg.o: ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-image-jpeg.o: ../cups/file.h ../cups/language.h ../cups/debug.h
-image-jpeg.o: ../cups/string.h ../config.h
-image-photocd.o: image-private.h image.h raster.h ../cups/cups.h
-image-photocd.o: ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h
-image-photocd.o: ../cups/array.h ../cups/file.h ../cups/language.h
-image-photocd.o: ../cups/debug.h ../cups/string.h ../config.h
-image-pix.o: image-private.h image.h raster.h ../cups/cups.h ../cups/ipp.h
-image-pix.o: ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-image-pix.o: ../cups/file.h ../cups/language.h ../cups/debug.h
-image-pix.o: ../cups/string.h ../config.h
-image-png.o: image-private.h image.h raster.h ../cups/cups.h ../cups/ipp.h
-image-png.o: ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-image-png.o: ../cups/file.h ../cups/language.h ../cups/debug.h
-image-png.o: ../cups/string.h ../config.h
-image-pnm.o: image-private.h image.h raster.h ../cups/cups.h ../cups/ipp.h
-image-pnm.o: ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-image-pnm.o: ../cups/file.h ../cups/language.h ../cups/debug.h
-image-pnm.o: ../cups/string.h ../config.h
-image-sgi.o: image-private.h image.h raster.h ../cups/cups.h ../cups/ipp.h
-image-sgi.o: ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-image-sgi.o: ../cups/file.h ../cups/language.h ../cups/debug.h
-image-sgi.o: ../cups/string.h ../config.h image-sgi.h
-image-sgilib.o: image-sgi.h
-image-sun.o: image-private.h image.h raster.h ../cups/cups.h ../cups/ipp.h
-image-sun.o: ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-image-sun.o: ../cups/file.h ../cups/language.h ../cups/debug.h
-image-sun.o: ../cups/string.h ../config.h
-image-tiff.o: image-private.h image.h raster.h ../cups/cups.h ../cups/ipp.h
-image-tiff.o: ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-image-tiff.o: ../cups/file.h ../cups/language.h ../cups/debug.h
-image-tiff.o: ../cups/string.h ../config.h
-image-zoom.o: image-private.h image.h raster.h ../cups/cups.h ../cups/ipp.h
-image-zoom.o: ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-image-zoom.o: ../cups/file.h ../cups/language.h ../cups/debug.h
-image-zoom.o: ../cups/string.h ../config.h
-image.o: image-private.h image.h raster.h ../cups/cups.h ../cups/ipp.h
-image.o: ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-image.o: ../cups/file.h ../cups/language.h ../cups/debug.h ../cups/string.h
-image.o: ../config.h
-interpret.o: ../cups/string.h ../config.h raster.h ../cups/cups.h
-interpret.o: ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h
-interpret.o: ../cups/array.h ../cups/file.h ../cups/language.h
-raster.o: raster.h ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/md5.h
-raster.o: ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h
-raster.o: ../cups/debug.h ../cups/string.h ../config.h
-form-main.o: form.h common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-form-main.o: ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-form-main.o: ../cups/language.h ../cups/language.h ../cups/string.h
-form-main.o: ../config.h
-form-ps.o: form.h common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-form-ps.o: ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-form-ps.o: ../cups/language.h ../cups/language.h ../cups/string.h ../config.h
-form-tree.o: form.h common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-form-tree.o: ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-form-tree.o: ../cups/language.h ../cups/language.h ../cups/string.h
-form-tree.o: ../config.h
-gziptoany.o: ../cups/string.h ../config.h
-imagetops.o: common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-imagetops.o: ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-imagetops.o: ../cups/language.h ../cups/language.h ../cups/string.h
-imagetops.o: ../config.h image.h raster.h
-imagetoraster.o: common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-imagetoraster.o: ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-imagetoraster.o: ../cups/language.h ../cups/language.h ../cups/string.h
-imagetoraster.o: ../config.h image-private.h image.h raster.h ../cups/debug.h
-common.o: common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/md5.h
-common.o: ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h
-common.o: ../cups/language.h ../cups/string.h ../config.h
-pstops.o: common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/md5.h
-pstops.o: ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h
-pstops.o: ../cups/language.h ../cups/string.h ../config.h ../cups/file.h
-pstops.o: ../cups/array.h
-rasterbench.o: raster.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-rasterbench.o: ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-rasterbench.o: ../cups/language.h
-rastertoepson.o: ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/md5.h
-rastertoepson.o: ../cups/ppd.h ../cups/array.h ../cups/file.h
-rastertoepson.o: ../cups/language.h ../cups/ppd.h ../cups/string.h
-rastertoepson.o: ../config.h raster.h
-rastertohp.o: ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/md5.h
-rastertohp.o: ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h
-rastertohp.o: ../cups/string.h ../config.h raster.h
-rastertolabel.o: ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/md5.h
-rastertolabel.o: ../cups/ppd.h ../cups/array.h ../cups/file.h
-rastertolabel.o: ../cups/language.h ../cups/string.h ../config.h raster.h
-testimage.o: image.h raster.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-testimage.o: ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-testimage.o: ../cups/language.h
-testraster.o: raster.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-testraster.o: ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-testraster.o: ../cups/language.h ../cups/string.h ../config.h
-textcommon.o: textcommon.h common.h ../cups/cups.h ../cups/ipp.h
-textcommon.o: ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-textcommon.o: ../cups/file.h ../cups/language.h ../cups/language.h
-textcommon.o: ../cups/string.h ../config.h
-texttops.o: textcommon.h common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-texttops.o: ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-texttops.o: ../cups/language.h ../cups/language.h ../cups/string.h
-texttops.o: ../config.h
-# DO NOT DELETE
-
-hpgl-attr.32.o: hpgl-attr.c hpgltops.h common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-hpgl-attr.32.o: hpgl-attr.c ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-hpgl-attr.32.o: hpgl-attr.c ../cups/language.h ../cups/language.h ../cups/string.h
-hpgl-attr.32.o: hpgl-attr.c ../config.h
-hpgl-config.32.o: hpgl-config.c hpgltops.h common.h ../cups/cups.h ../cups/ipp.h
-hpgl-config.32.o: hpgl-config.c ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-hpgl-config.32.o: hpgl-config.c ../cups/file.h ../cups/language.h ../cups/language.h
-hpgl-config.32.o: hpgl-config.c ../cups/string.h ../config.h
-hpgl-main.32.o: hpgl-main.c hpgltops.h common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-hpgl-main.32.o: hpgl-main.c ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-hpgl-main.32.o: hpgl-main.c ../cups/language.h ../cups/language.h ../cups/string.h
-hpgl-main.32.o: hpgl-main.c ../config.h
-hpgl-prolog.32.o: hpgl-prolog.c hpgltops.h common.h ../cups/cups.h ../cups/ipp.h
-hpgl-prolog.32.o: hpgl-prolog.c ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-hpgl-prolog.32.o: hpgl-prolog.c ../cups/file.h ../cups/language.h ../cups/language.h
-hpgl-prolog.32.o: hpgl-prolog.c ../cups/string.h ../config.h
-hpgl-char.32.o: hpgl-char.c hpgltops.h common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-hpgl-char.32.o: hpgl-char.c ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-hpgl-char.32.o: hpgl-char.c ../cups/language.h ../cups/language.h ../cups/string.h
-hpgl-char.32.o: hpgl-char.c ../config.h
-hpgl-input.32.o: hpgl-input.c hpgltops.h common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-hpgl-input.32.o: hpgl-input.c ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-hpgl-input.32.o: hpgl-input.c ../cups/language.h ../cups/language.h ../cups/string.h
-hpgl-input.32.o: hpgl-input.c ../config.h
-hpgl-polygon.32.o: hpgl-polygon.c hpgltops.h common.h ../cups/cups.h ../cups/ipp.h
-hpgl-polygon.32.o: hpgl-polygon.c ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-hpgl-polygon.32.o: hpgl-polygon.c ../cups/file.h ../cups/language.h ../cups/language.h
-hpgl-polygon.32.o: hpgl-polygon.c ../cups/string.h ../config.h
-hpgl-vector.32.o: hpgl-vector.c hpgltops.h common.h ../cups/cups.h ../cups/ipp.h
-hpgl-vector.32.o: hpgl-vector.c ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-hpgl-vector.32.o: hpgl-vector.c ../cups/file.h ../cups/language.h ../cups/language.h
-hpgl-vector.32.o: hpgl-vector.c ../cups/string.h ../config.h
-image-bmp.32.o: image-bmp.c image-private.h image.h raster.h ../cups/cups.h ../cups/ipp.h
-image-bmp.32.o: image-bmp.c ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-image-bmp.32.o: image-bmp.c ../cups/file.h ../cups/language.h ../cups/debug.h
-image-bmp.32.o: image-bmp.c ../cups/string.h ../config.h
-image-colorspace.32.o: image-colorspace.c image-private.h image.h raster.h ../cups/cups.h
-image-colorspace.32.o: image-colorspace.c ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h
-image-colorspace.32.o: image-colorspace.c ../cups/array.h ../cups/file.h ../cups/language.h
-image-colorspace.32.o: image-colorspace.c ../cups/debug.h ../cups/string.h ../config.h
-image-gif.32.o: image-gif.c image-private.h image.h raster.h ../cups/cups.h ../cups/ipp.h
-image-gif.32.o: image-gif.c ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-image-gif.32.o: image-gif.c ../cups/file.h ../cups/language.h ../cups/debug.h
-image-gif.32.o: image-gif.c ../cups/string.h ../config.h
-image-jpeg.32.o: image-jpeg.c image-private.h image.h raster.h ../cups/cups.h ../cups/ipp.h
-image-jpeg.32.o: image-jpeg.c ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-image-jpeg.32.o: image-jpeg.c ../cups/file.h ../cups/language.h ../cups/debug.h
-image-jpeg.32.o: image-jpeg.c ../cups/string.h ../config.h
-image-photocd.32.o: image-photocd.c image-private.h image.h raster.h ../cups/cups.h
-image-photocd.32.o: image-photocd.c ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h
-image-photocd.32.o: image-photocd.c ../cups/array.h ../cups/file.h ../cups/language.h
-image-photocd.32.o: image-photocd.c ../cups/debug.h ../cups/string.h ../config.h
-image-pix.32.o: image-pix.c image-private.h image.h raster.h ../cups/cups.h ../cups/ipp.h
-image-pix.32.o: image-pix.c ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-image-pix.32.o: image-pix.c ../cups/file.h ../cups/language.h ../cups/debug.h
-image-pix.32.o: image-pix.c ../cups/string.h ../config.h
-image-png.32.o: image-png.c image-private.h image.h raster.h ../cups/cups.h ../cups/ipp.h
-image-png.32.o: image-png.c ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-image-png.32.o: image-png.c ../cups/file.h ../cups/language.h ../cups/debug.h
-image-png.32.o: image-png.c ../cups/string.h ../config.h
-image-pnm.32.o: image-pnm.c image-private.h image.h raster.h ../cups/cups.h ../cups/ipp.h
-image-pnm.32.o: image-pnm.c ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-image-pnm.32.o: image-pnm.c ../cups/file.h ../cups/language.h ../cups/debug.h
-image-pnm.32.o: image-pnm.c ../cups/string.h ../config.h
-image-sgi.32.o: image-sgi.c image-private.h image.h raster.h ../cups/cups.h ../cups/ipp.h
-image-sgi.32.o: image-sgi.c ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-image-sgi.32.o: image-sgi.c ../cups/file.h ../cups/language.h ../cups/debug.h
-image-sgi.32.o: image-sgi.c ../cups/string.h ../config.h image-sgi.h
-image-sgilib.32.o: image-sgilib.c image-sgi.h
-image-sun.32.o: image-sun.c image-private.h image.h raster.h ../cups/cups.h ../cups/ipp.h
-image-sun.32.o: image-sun.c ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-image-sun.32.o: image-sun.c ../cups/file.h ../cups/language.h ../cups/debug.h
-image-sun.32.o: image-sun.c ../cups/string.h ../config.h
-image-tiff.32.o: image-tiff.c image-private.h image.h raster.h ../cups/cups.h ../cups/ipp.h
-image-tiff.32.o: image-tiff.c ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-image-tiff.32.o: image-tiff.c ../cups/file.h ../cups/language.h ../cups/debug.h
-image-tiff.32.o: image-tiff.c ../cups/string.h ../config.h
-image-zoom.32.o: image-zoom.c image-private.h image.h raster.h ../cups/cups.h ../cups/ipp.h
-image-zoom.32.o: image-zoom.c ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-image-zoom.32.o: image-zoom.c ../cups/file.h ../cups/language.h ../cups/debug.h
-image-zoom.32.o: image-zoom.c ../cups/string.h ../config.h
-image.32.o: image.c image-private.h image.h raster.h ../cups/cups.h ../cups/ipp.h
-image.32.o: image.c ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-image.32.o: image.c ../cups/file.h ../cups/language.h ../cups/debug.h ../cups/string.h
-image.32.o: image.c ../config.h
-interpret.32.o: interpret.c ../cups/string.h ../config.h raster.h ../cups/cups.h
-interpret.32.o: interpret.c ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h
-interpret.32.o: interpret.c ../cups/array.h ../cups/file.h ../cups/language.h
-raster.32.o: raster.c raster.h ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/md5.h
-raster.32.o: raster.c ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h
-raster.32.o: raster.c ../cups/debug.h ../cups/string.h ../config.h
-form-main.32.o: form-main.c form.h common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-form-main.32.o: form-main.c ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-form-main.32.o: form-main.c ../cups/language.h ../cups/language.h ../cups/string.h
-form-main.32.o: form-main.c ../config.h
-form-ps.32.o: form-ps.c form.h common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-form-ps.32.o: form-ps.c ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-form-ps.32.o: form-ps.c ../cups/language.h ../cups/language.h ../cups/string.h ../config.h
-form-tree.32.o: form-tree.c form.h common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-form-tree.32.o: form-tree.c ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-form-tree.32.o: form-tree.c ../cups/language.h ../cups/language.h ../cups/string.h
-form-tree.32.o: form-tree.c ../config.h
-gziptoany.32.o: gziptoany.c ../cups/string.h ../config.h
-imagetops.32.o: imagetops.c common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-imagetops.32.o: imagetops.c ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-imagetops.32.o: imagetops.c ../cups/language.h ../cups/language.h ../cups/string.h
-imagetops.32.o: imagetops.c ../config.h image.h raster.h
-imagetoraster.32.o: imagetoraster.c common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-imagetoraster.32.o: imagetoraster.c ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-imagetoraster.32.o: imagetoraster.c ../cups/language.h ../cups/language.h ../cups/string.h
-imagetoraster.32.o: imagetoraster.c ../config.h image-private.h image.h raster.h ../cups/debug.h
-common.32.o: common.c common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/md5.h
-common.32.o: common.c ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h
-common.32.o: common.c ../cups/language.h ../cups/string.h ../config.h
-pstops.32.o: pstops.c common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/md5.h
-pstops.32.o: pstops.c ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h
-pstops.32.o: pstops.c ../cups/language.h ../cups/string.h ../config.h ../cups/file.h
-pstops.32.o: pstops.c ../cups/array.h
-rasterbench.32.o: rasterbench.c raster.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-rasterbench.32.o: rasterbench.c ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-rasterbench.32.o: rasterbench.c ../cups/language.h
-rastertoepson.32.o: rastertoepson.c ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/md5.h
-rastertoepson.32.o: rastertoepson.c ../cups/ppd.h ../cups/array.h ../cups/file.h
-rastertoepson.32.o: rastertoepson.c ../cups/language.h ../cups/ppd.h ../cups/string.h
-rastertoepson.32.o: rastertoepson.c ../config.h raster.h
-rastertohp.32.o: rastertohp.c ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/md5.h
-rastertohp.32.o: rastertohp.c ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h
-rastertohp.32.o: rastertohp.c ../cups/string.h ../config.h raster.h
-rastertolabel.32.o: rastertolabel.c ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/md5.h
-rastertolabel.32.o: rastertolabel.c ../cups/ppd.h ../cups/array.h ../cups/file.h
-rastertolabel.32.o: rastertolabel.c ../cups/language.h ../cups/string.h ../config.h raster.h
-testimage.32.o: testimage.c image.h raster.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-testimage.32.o: testimage.c ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-testimage.32.o: testimage.c ../cups/language.h
-testraster.32.o: testraster.c raster.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-testraster.32.o: testraster.c ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-testraster.32.o: testraster.c ../cups/language.h ../cups/string.h ../config.h
-textcommon.32.o: textcommon.c textcommon.h common.h ../cups/cups.h ../cups/ipp.h
-textcommon.32.o: textcommon.c ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-textcommon.32.o: textcommon.c ../cups/file.h ../cups/language.h ../cups/language.h
-textcommon.32.o: textcommon.c ../cups/string.h ../config.h
-texttops.32.o: texttops.c textcommon.h common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-texttops.32.o: texttops.c ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-texttops.32.o: texttops.c ../cups/language.h ../cups/language.h ../cups/string.h
-texttops.32.o: texttops.c ../config.h
-# DO NOT DELETE
-
-hpgl-attr.64.o: hpgl-attr.c hpgltops.h common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-hpgl-attr.64.o: hpgl-attr.c ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-hpgl-attr.64.o: hpgl-attr.c ../cups/language.h ../cups/language.h ../cups/string.h
-hpgl-attr.64.o: hpgl-attr.c ../config.h
-hpgl-config.64.o: hpgl-config.c hpgltops.h common.h ../cups/cups.h ../cups/ipp.h
-hpgl-config.64.o: hpgl-config.c ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-hpgl-config.64.o: hpgl-config.c ../cups/file.h ../cups/language.h ../cups/language.h
-hpgl-config.64.o: hpgl-config.c ../cups/string.h ../config.h
-hpgl-main.64.o: hpgl-main.c hpgltops.h common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-hpgl-main.64.o: hpgl-main.c ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-hpgl-main.64.o: hpgl-main.c ../cups/language.h ../cups/language.h ../cups/string.h
-hpgl-main.64.o: hpgl-main.c ../config.h
-hpgl-prolog.64.o: hpgl-prolog.c hpgltops.h common.h ../cups/cups.h ../cups/ipp.h
-hpgl-prolog.64.o: hpgl-prolog.c ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-hpgl-prolog.64.o: hpgl-prolog.c ../cups/file.h ../cups/language.h ../cups/language.h
-hpgl-prolog.64.o: hpgl-prolog.c ../cups/string.h ../config.h
-hpgl-char.64.o: hpgl-char.c hpgltops.h common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-hpgl-char.64.o: hpgl-char.c ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-hpgl-char.64.o: hpgl-char.c ../cups/language.h ../cups/language.h ../cups/string.h
-hpgl-char.64.o: hpgl-char.c ../config.h
-hpgl-input.64.o: hpgl-input.c hpgltops.h common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-hpgl-input.64.o: hpgl-input.c ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-hpgl-input.64.o: hpgl-input.c ../cups/language.h ../cups/language.h ../cups/string.h
-hpgl-input.64.o: hpgl-input.c ../config.h
-hpgl-polygon.64.o: hpgl-polygon.c hpgltops.h common.h ../cups/cups.h ../cups/ipp.h
-hpgl-polygon.64.o: hpgl-polygon.c ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-hpgl-polygon.64.o: hpgl-polygon.c ../cups/file.h ../cups/language.h ../cups/language.h
-hpgl-polygon.64.o: hpgl-polygon.c ../cups/string.h ../config.h
-hpgl-vector.64.o: hpgl-vector.c hpgltops.h common.h ../cups/cups.h ../cups/ipp.h
-hpgl-vector.64.o: hpgl-vector.c ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-hpgl-vector.64.o: hpgl-vector.c ../cups/file.h ../cups/language.h ../cups/language.h
-hpgl-vector.64.o: hpgl-vector.c ../cups/string.h ../config.h
-image-bmp.64.o: image-bmp.c image-private.h image.h raster.h ../cups/cups.h ../cups/ipp.h
-image-bmp.64.o: image-bmp.c ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-image-bmp.64.o: image-bmp.c ../cups/file.h ../cups/language.h ../cups/debug.h
-image-bmp.64.o: image-bmp.c ../cups/string.h ../config.h
-image-colorspace.64.o: image-colorspace.c image-private.h image.h raster.h ../cups/cups.h
-image-colorspace.64.o: image-colorspace.c ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h
-image-colorspace.64.o: image-colorspace.c ../cups/array.h ../cups/file.h ../cups/language.h
-image-colorspace.64.o: image-colorspace.c ../cups/debug.h ../cups/string.h ../config.h
-image-gif.64.o: image-gif.c image-private.h image.h raster.h ../cups/cups.h ../cups/ipp.h
-image-gif.64.o: image-gif.c ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-image-gif.64.o: image-gif.c ../cups/file.h ../cups/language.h ../cups/debug.h
-image-gif.64.o: image-gif.c ../cups/string.h ../config.h
-image-jpeg.64.o: image-jpeg.c image-private.h image.h raster.h ../cups/cups.h ../cups/ipp.h
-image-jpeg.64.o: image-jpeg.c ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-image-jpeg.64.o: image-jpeg.c ../cups/file.h ../cups/language.h ../cups/debug.h
-image-jpeg.64.o: image-jpeg.c ../cups/string.h ../config.h
-image-photocd.64.o: image-photocd.c image-private.h image.h raster.h ../cups/cups.h
-image-photocd.64.o: image-photocd.c ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h
-image-photocd.64.o: image-photocd.c ../cups/array.h ../cups/file.h ../cups/language.h
-image-photocd.64.o: image-photocd.c ../cups/debug.h ../cups/string.h ../config.h
-image-pix.64.o: image-pix.c image-private.h image.h raster.h ../cups/cups.h ../cups/ipp.h
-image-pix.64.o: image-pix.c ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-image-pix.64.o: image-pix.c ../cups/file.h ../cups/language.h ../cups/debug.h
-image-pix.64.o: image-pix.c ../cups/string.h ../config.h
-image-png.64.o: image-png.c image-private.h image.h raster.h ../cups/cups.h ../cups/ipp.h
-image-png.64.o: image-png.c ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-image-png.64.o: image-png.c ../cups/file.h ../cups/language.h ../cups/debug.h
-image-png.64.o: image-png.c ../cups/string.h ../config.h
-image-pnm.64.o: image-pnm.c image-private.h image.h raster.h ../cups/cups.h ../cups/ipp.h
-image-pnm.64.o: image-pnm.c ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-image-pnm.64.o: image-pnm.c ../cups/file.h ../cups/language.h ../cups/debug.h
-image-pnm.64.o: image-pnm.c ../cups/string.h ../config.h
-image-sgi.64.o: image-sgi.c image-private.h image.h raster.h ../cups/cups.h ../cups/ipp.h
-image-sgi.64.o: image-sgi.c ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-image-sgi.64.o: image-sgi.c ../cups/file.h ../cups/language.h ../cups/debug.h
-image-sgi.64.o: image-sgi.c ../cups/string.h ../config.h image-sgi.h
-image-sgilib.64.o: image-sgilib.c image-sgi.h
-image-sun.64.o: image-sun.c image-private.h image.h raster.h ../cups/cups.h ../cups/ipp.h
-image-sun.64.o: image-sun.c ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-image-sun.64.o: image-sun.c ../cups/file.h ../cups/language.h ../cups/debug.h
-image-sun.64.o: image-sun.c ../cups/string.h ../config.h
-image-tiff.64.o: image-tiff.c image-private.h image.h raster.h ../cups/cups.h ../cups/ipp.h
-image-tiff.64.o: image-tiff.c ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-image-tiff.64.o: image-tiff.c ../cups/file.h ../cups/language.h ../cups/debug.h
-image-tiff.64.o: image-tiff.c ../cups/string.h ../config.h
-image-zoom.64.o: image-zoom.c image-private.h image.h raster.h ../cups/cups.h ../cups/ipp.h
-image-zoom.64.o: image-zoom.c ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-image-zoom.64.o: image-zoom.c ../cups/file.h ../cups/language.h ../cups/debug.h
-image-zoom.64.o: image-zoom.c ../cups/string.h ../config.h
-image.64.o: image.c image-private.h image.h raster.h ../cups/cups.h ../cups/ipp.h
-image.64.o: image.c ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-image.64.o: image.c ../cups/file.h ../cups/language.h ../cups/debug.h ../cups/string.h
-image.64.o: image.c ../config.h
-interpret.64.o: interpret.c ../cups/string.h ../config.h raster.h ../cups/cups.h
-interpret.64.o: interpret.c ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h
-interpret.64.o: interpret.c ../cups/array.h ../cups/file.h ../cups/language.h
-raster.64.o: raster.c raster.h ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/md5.h
-raster.64.o: raster.c ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h
-raster.64.o: raster.c ../cups/debug.h ../cups/string.h ../config.h
-form-main.64.o: form-main.c form.h common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-form-main.64.o: form-main.c ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-form-main.64.o: form-main.c ../cups/language.h ../cups/language.h ../cups/string.h
-form-main.64.o: form-main.c ../config.h
-form-ps.64.o: form-ps.c form.h common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-form-ps.64.o: form-ps.c ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-form-ps.64.o: form-ps.c ../cups/language.h ../cups/language.h ../cups/string.h ../config.h
-form-tree.64.o: form-tree.c form.h common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-form-tree.64.o: form-tree.c ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-form-tree.64.o: form-tree.c ../cups/language.h ../cups/language.h ../cups/string.h
-form-tree.64.o: form-tree.c ../config.h
-gziptoany.64.o: gziptoany.c ../cups/string.h ../config.h
-imagetops.64.o: imagetops.c common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-imagetops.64.o: imagetops.c ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-imagetops.64.o: imagetops.c ../cups/language.h ../cups/language.h ../cups/string.h
-imagetops.64.o: imagetops.c ../config.h image.h raster.h
-imagetoraster.64.o: imagetoraster.c common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-imagetoraster.64.o: imagetoraster.c ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-imagetoraster.64.o: imagetoraster.c ../cups/language.h ../cups/language.h ../cups/string.h
-imagetoraster.64.o: imagetoraster.c ../config.h image-private.h image.h raster.h ../cups/debug.h
-common.64.o: common.c common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/md5.h
-common.64.o: common.c ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h
-common.64.o: common.c ../cups/language.h ../cups/string.h ../config.h
-pstops.64.o: pstops.c common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/md5.h
-pstops.64.o: pstops.c ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h
-pstops.64.o: pstops.c ../cups/language.h ../cups/string.h ../config.h ../cups/file.h
-pstops.64.o: pstops.c ../cups/array.h
-rasterbench.64.o: rasterbench.c raster.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-rasterbench.64.o: rasterbench.c ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-rasterbench.64.o: rasterbench.c ../cups/language.h
-rastertoepson.64.o: rastertoepson.c ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/md5.h
-rastertoepson.64.o: rastertoepson.c ../cups/ppd.h ../cups/array.h ../cups/file.h
-rastertoepson.64.o: rastertoepson.c ../cups/language.h ../cups/ppd.h ../cups/string.h
-rastertoepson.64.o: rastertoepson.c ../config.h raster.h
-rastertohp.64.o: rastertohp.c ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/md5.h
-rastertohp.64.o: rastertohp.c ../cups/ppd.h ../cups/array.h ../cups/file.h ../cups/language.h
-rastertohp.64.o: rastertohp.c ../cups/string.h ../config.h raster.h
-rastertolabel.64.o: rastertolabel.c ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/md5.h
-rastertolabel.64.o: rastertolabel.c ../cups/ppd.h ../cups/array.h ../cups/file.h
-rastertolabel.64.o: rastertolabel.c ../cups/language.h ../cups/string.h ../config.h raster.h
-testimage.64.o: testimage.c image.h raster.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-testimage.64.o: testimage.c ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-testimage.64.o: testimage.c ../cups/language.h
-testraster.64.o: testraster.c raster.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-testraster.64.o: testraster.c ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-testraster.64.o: testraster.c ../cups/language.h ../cups/string.h ../config.h
-textcommon.64.o: textcommon.c textcommon.h common.h ../cups/cups.h ../cups/ipp.h
-textcommon.64.o: textcommon.c ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h
-textcommon.64.o: textcommon.c ../cups/file.h ../cups/language.h ../cups/language.h
-textcommon.64.o: textcommon.c ../cups/string.h ../config.h
-texttops.64.o: texttops.c textcommon.h common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h
-texttops.64.o: texttops.c ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h
-texttops.64.o: texttops.c ../cups/language.h ../cups/language.h ../cups/string.h
-texttops.64.o: texttops.c ../config.h
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+hpgl-attr.o: hpgl-attr.c hpgltops.h common.h ../cups/cups.h ../cups/ipp.h \
+ ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h \
+ ../cups/file.h ../cups/language.h ../cups/language.h ../cups/string.h \
+ ../config.h
+hpgl-config.o: hpgl-config.c hpgltops.h common.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/language.h \
+ ../cups/string.h ../config.h
+hpgl-main.o: hpgl-main.c hpgltops.h common.h ../cups/cups.h ../cups/ipp.h \
+ ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h \
+ ../cups/file.h ../cups/language.h ../cups/language.h ../cups/string.h \
+ ../config.h
+hpgl-prolog.o: hpgl-prolog.c hpgltops.h common.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/language.h \
+ ../cups/string.h ../config.h
+hpgl-char.o: hpgl-char.c hpgltops.h common.h ../cups/cups.h ../cups/ipp.h \
+ ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h \
+ ../cups/file.h ../cups/language.h ../cups/language.h ../cups/string.h \
+ ../config.h
+hpgl-input.o: hpgl-input.c hpgltops.h common.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/language.h \
+ ../cups/string.h ../config.h
+hpgl-polygon.o: hpgl-polygon.c hpgltops.h common.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/language.h \
+ ../cups/string.h ../config.h
+hpgl-vector.o: hpgl-vector.c hpgltops.h common.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/language.h \
+ ../cups/string.h ../config.h
+image-bmp.o: image-bmp.c image-private.h image.h raster.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h
+image-colorspace.o: image-colorspace.c image-private.h image.h raster.h \
+ ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h
+image-gif.o: image-gif.c image-private.h image.h raster.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h
+image-jpeg.o: image-jpeg.c image-private.h image.h raster.h \
+ ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h
+image-photocd.o: image-photocd.c image-private.h image.h raster.h \
+ ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h
+image-pix.o: image-pix.c image-private.h image.h raster.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h
+image-png.o: image-png.c image-private.h image.h raster.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h
+image-pnm.o: image-pnm.c image-private.h image.h raster.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h
+image-sgi.o: image-sgi.c image-private.h image.h raster.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h image-sgi.h
+image-sgilib.o: image-sgilib.c image-sgi.h
+image-sun.o: image-sun.c image-private.h image.h raster.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h
+image-tiff.o: image-tiff.c image-private.h image.h raster.h \
+ ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h
+image-zoom.o: image-zoom.c image-private.h image.h raster.h \
+ ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h
+image.o: image.c image-private.h image.h raster.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h
+interpret.o: interpret.c ../cups/string.h ../config.h image-private.h \
+ image.h raster.h ../cups/cups.h ../cups/ipp.h ../cups/http.h \
+ ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h \
+ ../cups/language.h ../cups/debug.h
+raster.o: raster.c raster.h ../cups/cups.h ../cups/ipp.h ../cups/http.h \
+ ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h \
+ ../cups/language.h ../cups/debug.h ../cups/string.h ../config.h
+form-main.o: form-main.c form.h common.h ../cups/cups.h ../cups/ipp.h \
+ ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h \
+ ../cups/file.h ../cups/language.h ../cups/language.h ../cups/string.h \
+ ../config.h
+form-ps.o: form-ps.c form.h common.h ../cups/cups.h ../cups/ipp.h \
+ ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h \
+ ../cups/file.h ../cups/language.h ../cups/language.h ../cups/string.h \
+ ../config.h
+form-tree.o: form-tree.c form.h common.h ../cups/cups.h ../cups/ipp.h \
+ ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h \
+ ../cups/file.h ../cups/language.h ../cups/language.h ../cups/string.h \
+ ../config.h
+gziptoany.o: gziptoany.c ../cups/string.h ../config.h
+imagetops.o: imagetops.c common.h ../cups/cups.h ../cups/ipp.h \
+ ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h \
+ ../cups/file.h ../cups/language.h ../cups/language.h ../cups/string.h \
+ ../config.h image.h raster.h
+imagetoraster.o: imagetoraster.c common.h ../cups/cups.h ../cups/ipp.h \
+ ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h \
+ ../cups/file.h ../cups/language.h ../cups/language.h ../cups/string.h \
+ ../config.h image-private.h image.h raster.h ../cups/debug.h
+common.o: common.c common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h \
+ ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h \
+ ../cups/language.h ../cups/language.h ../cups/string.h ../config.h
+pstops.o: pstops.c common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h \
+ ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h \
+ ../cups/language.h ../cups/language.h ../cups/string.h ../config.h \
+ ../cups/file.h ../cups/array.h
+rasterbench.o: rasterbench.c raster.h ../cups/cups.h ../cups/ipp.h \
+ ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h \
+ ../cups/file.h ../cups/language.h
+rastertoepson.o: rastertoepson.c ../cups/cups.h ../cups/ipp.h \
+ ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h \
+ ../cups/file.h ../cups/language.h ../cups/ppd.h ../cups/string.h \
+ ../config.h raster.h
+rastertohp.o: rastertohp.c ../cups/cups.h ../cups/ipp.h ../cups/http.h \
+ ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h \
+ ../cups/language.h ../cups/string.h ../config.h raster.h
+rastertolabel.o: rastertolabel.c ../cups/cups.h ../cups/ipp.h \
+ ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h \
+ ../cups/file.h ../cups/language.h ../cups/string.h ../config.h raster.h
+testimage.o: testimage.c image.h raster.h ../cups/cups.h ../cups/ipp.h \
+ ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h \
+ ../cups/file.h ../cups/language.h
+testraster.o: testraster.c image-private.h image.h raster.h \
+ ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h
+textcommon.o: textcommon.c textcommon.h common.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/language.h \
+ ../cups/string.h ../config.h
+texttops.o: texttops.c textcommon.h common.h ../cups/cups.h ../cups/ipp.h \
+ ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h \
+ ../cups/file.h ../cups/language.h ../cups/language.h ../cups/string.h \
+ ../config.h
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+hpgl-attr.32.o: hpgl-attr.c hpgl-attr.c hpgltops.h common.h ../cups/cups.h ../cups/ipp.h \
+ ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h \
+ ../cups/file.h ../cups/language.h ../cups/language.h ../cups/string.h \
+ ../config.h
+hpgl-config.32.o: hpgl-config.c hpgl-config.c hpgltops.h common.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/language.h \
+ ../cups/string.h ../config.h
+hpgl-main.32.o: hpgl-main.c hpgl-main.c hpgltops.h common.h ../cups/cups.h ../cups/ipp.h \
+ ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h \
+ ../cups/file.h ../cups/language.h ../cups/language.h ../cups/string.h \
+ ../config.h
+hpgl-prolog.32.o: hpgl-prolog.c hpgl-prolog.c hpgltops.h common.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/language.h \
+ ../cups/string.h ../config.h
+hpgl-char.32.o: hpgl-char.c hpgl-char.c hpgltops.h common.h ../cups/cups.h ../cups/ipp.h \
+ ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h \
+ ../cups/file.h ../cups/language.h ../cups/language.h ../cups/string.h \
+ ../config.h
+hpgl-input.32.o: hpgl-input.c hpgl-input.c hpgltops.h common.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/language.h \
+ ../cups/string.h ../config.h
+hpgl-polygon.32.o: hpgl-polygon.c hpgl-polygon.c hpgltops.h common.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/language.h \
+ ../cups/string.h ../config.h
+hpgl-vector.32.o: hpgl-vector.c hpgl-vector.c hpgltops.h common.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/language.h \
+ ../cups/string.h ../config.h
+image-bmp.32.o: image-bmp.c image-bmp.c image-private.h image.h raster.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h
+image-colorspace.32.o: image-colorspace.c image-colorspace.c image-private.h image.h raster.h \
+ ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h
+image-gif.32.o: image-gif.c image-gif.c image-private.h image.h raster.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h
+image-jpeg.32.o: image-jpeg.c image-jpeg.c image-private.h image.h raster.h \
+ ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h
+image-photocd.32.o: image-photocd.c image-photocd.c image-private.h image.h raster.h \
+ ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h
+image-pix.32.o: image-pix.c image-pix.c image-private.h image.h raster.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h
+image-png.32.o: image-png.c image-png.c image-private.h image.h raster.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h
+image-pnm.32.o: image-pnm.c image-pnm.c image-private.h image.h raster.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h
+image-sgi.32.o: image-sgi.c image-sgi.c image-private.h image.h raster.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h image-sgi.h
+image-sgilib.32.o: image-sgilib.c image-sgilib.c image-sgi.h
+image-sun.32.o: image-sun.c image-sun.c image-private.h image.h raster.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h
+image-tiff.32.o: image-tiff.c image-tiff.c image-private.h image.h raster.h \
+ ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h
+image-zoom.32.o: image-zoom.c image-zoom.c image-private.h image.h raster.h \
+ ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h
+image.32.o: image.c image.c image-private.h image.h raster.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h
+interpret.32.o: interpret.c interpret.c ../cups/string.h ../config.h image-private.h \
+ image.h raster.h ../cups/cups.h ../cups/ipp.h ../cups/http.h \
+ ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h \
+ ../cups/language.h ../cups/debug.h
+raster.32.o: raster.c raster.c raster.h ../cups/cups.h ../cups/ipp.h ../cups/http.h \
+ ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h \
+ ../cups/language.h ../cups/debug.h ../cups/string.h ../config.h
+form-main.32.o: form-main.c form-main.c form.h common.h ../cups/cups.h ../cups/ipp.h \
+ ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h \
+ ../cups/file.h ../cups/language.h ../cups/language.h ../cups/string.h \
+ ../config.h
+form-ps.32.o: form-ps.c form-ps.c form.h common.h ../cups/cups.h ../cups/ipp.h \
+ ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h \
+ ../cups/file.h ../cups/language.h ../cups/language.h ../cups/string.h \
+ ../config.h
+form-tree.32.o: form-tree.c form-tree.c form.h common.h ../cups/cups.h ../cups/ipp.h \
+ ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h \
+ ../cups/file.h ../cups/language.h ../cups/language.h ../cups/string.h \
+ ../config.h
+gziptoany.32.o: gziptoany.c gziptoany.c ../cups/string.h ../config.h
+imagetops.32.o: imagetops.c imagetops.c common.h ../cups/cups.h ../cups/ipp.h \
+ ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h \
+ ../cups/file.h ../cups/language.h ../cups/language.h ../cups/string.h \
+ ../config.h image.h raster.h
+imagetoraster.32.o: imagetoraster.c imagetoraster.c common.h ../cups/cups.h ../cups/ipp.h \
+ ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h \
+ ../cups/file.h ../cups/language.h ../cups/language.h ../cups/string.h \
+ ../config.h image-private.h image.h raster.h ../cups/debug.h
+common.32.o: common.c common.c common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h \
+ ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h \
+ ../cups/language.h ../cups/language.h ../cups/string.h ../config.h
+pstops.32.o: pstops.c pstops.c common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h \
+ ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h \
+ ../cups/language.h ../cups/language.h ../cups/string.h ../config.h \
+ ../cups/file.h ../cups/array.h
+rasterbench.32.o: rasterbench.c rasterbench.c raster.h ../cups/cups.h ../cups/ipp.h \
+ ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h \
+ ../cups/file.h ../cups/language.h
+rastertoepson.32.o: rastertoepson.c rastertoepson.c ../cups/cups.h ../cups/ipp.h \
+ ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h \
+ ../cups/file.h ../cups/language.h ../cups/ppd.h ../cups/string.h \
+ ../config.h raster.h
+rastertohp.32.o: rastertohp.c rastertohp.c ../cups/cups.h ../cups/ipp.h ../cups/http.h \
+ ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h \
+ ../cups/language.h ../cups/string.h ../config.h raster.h
+rastertolabel.32.o: rastertolabel.c rastertolabel.c ../cups/cups.h ../cups/ipp.h \
+ ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h \
+ ../cups/file.h ../cups/language.h ../cups/string.h ../config.h raster.h
+testimage.32.o: testimage.c testimage.c image.h raster.h ../cups/cups.h ../cups/ipp.h \
+ ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h \
+ ../cups/file.h ../cups/language.h
+testraster.32.o: testraster.c testraster.c image-private.h image.h raster.h \
+ ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h
+textcommon.32.o: textcommon.c textcommon.c textcommon.h common.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/language.h \
+ ../cups/string.h ../config.h
+texttops.32.o: texttops.c texttops.c textcommon.h common.h ../cups/cups.h ../cups/ipp.h \
+ ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h \
+ ../cups/file.h ../cups/language.h ../cups/language.h ../cups/string.h \
+ ../config.h
+# DO NOT DELETE THIS LINE -- make depend depends on it.
+hpgl-attr.64.o: hpgl-attr.c hpgl-attr.c hpgltops.h common.h ../cups/cups.h ../cups/ipp.h \
+ ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h \
+ ../cups/file.h ../cups/language.h ../cups/language.h ../cups/string.h \
+ ../config.h
+hpgl-config.64.o: hpgl-config.c hpgl-config.c hpgltops.h common.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/language.h \
+ ../cups/string.h ../config.h
+hpgl-main.64.o: hpgl-main.c hpgl-main.c hpgltops.h common.h ../cups/cups.h ../cups/ipp.h \
+ ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h \
+ ../cups/file.h ../cups/language.h ../cups/language.h ../cups/string.h \
+ ../config.h
+hpgl-prolog.64.o: hpgl-prolog.c hpgl-prolog.c hpgltops.h common.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/language.h \
+ ../cups/string.h ../config.h
+hpgl-char.64.o: hpgl-char.c hpgl-char.c hpgltops.h common.h ../cups/cups.h ../cups/ipp.h \
+ ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h \
+ ../cups/file.h ../cups/language.h ../cups/language.h ../cups/string.h \
+ ../config.h
+hpgl-input.64.o: hpgl-input.c hpgl-input.c hpgltops.h common.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/language.h \
+ ../cups/string.h ../config.h
+hpgl-polygon.64.o: hpgl-polygon.c hpgl-polygon.c hpgltops.h common.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/language.h \
+ ../cups/string.h ../config.h
+hpgl-vector.64.o: hpgl-vector.c hpgl-vector.c hpgltops.h common.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/language.h \
+ ../cups/string.h ../config.h
+image-bmp.64.o: image-bmp.c image-bmp.c image-private.h image.h raster.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h
+image-colorspace.64.o: image-colorspace.c image-colorspace.c image-private.h image.h raster.h \
+ ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h
+image-gif.64.o: image-gif.c image-gif.c image-private.h image.h raster.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h
+image-jpeg.64.o: image-jpeg.c image-jpeg.c image-private.h image.h raster.h \
+ ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h
+image-photocd.64.o: image-photocd.c image-photocd.c image-private.h image.h raster.h \
+ ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h
+image-pix.64.o: image-pix.c image-pix.c image-private.h image.h raster.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h
+image-png.64.o: image-png.c image-png.c image-private.h image.h raster.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h
+image-pnm.64.o: image-pnm.c image-pnm.c image-private.h image.h raster.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h
+image-sgi.64.o: image-sgi.c image-sgi.c image-private.h image.h raster.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h image-sgi.h
+image-sgilib.64.o: image-sgilib.c image-sgilib.c image-sgi.h
+image-sun.64.o: image-sun.c image-sun.c image-private.h image.h raster.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h
+image-tiff.64.o: image-tiff.c image-tiff.c image-private.h image.h raster.h \
+ ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h
+image-zoom.64.o: image-zoom.c image-zoom.c image-private.h image.h raster.h \
+ ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h
+image.64.o: image.c image.c image-private.h image.h raster.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h
+interpret.64.o: interpret.c interpret.c ../cups/string.h ../config.h image-private.h \
+ image.h raster.h ../cups/cups.h ../cups/ipp.h ../cups/http.h \
+ ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h \
+ ../cups/language.h ../cups/debug.h
+raster.64.o: raster.c raster.c raster.h ../cups/cups.h ../cups/ipp.h ../cups/http.h \
+ ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h \
+ ../cups/language.h ../cups/debug.h ../cups/string.h ../config.h
+form-main.64.o: form-main.c form-main.c form.h common.h ../cups/cups.h ../cups/ipp.h \
+ ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h \
+ ../cups/file.h ../cups/language.h ../cups/language.h ../cups/string.h \
+ ../config.h
+form-ps.64.o: form-ps.c form-ps.c form.h common.h ../cups/cups.h ../cups/ipp.h \
+ ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h \
+ ../cups/file.h ../cups/language.h ../cups/language.h ../cups/string.h \
+ ../config.h
+form-tree.64.o: form-tree.c form-tree.c form.h common.h ../cups/cups.h ../cups/ipp.h \
+ ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h \
+ ../cups/file.h ../cups/language.h ../cups/language.h ../cups/string.h \
+ ../config.h
+gziptoany.64.o: gziptoany.c gziptoany.c ../cups/string.h ../config.h
+imagetops.64.o: imagetops.c imagetops.c common.h ../cups/cups.h ../cups/ipp.h \
+ ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h \
+ ../cups/file.h ../cups/language.h ../cups/language.h ../cups/string.h \
+ ../config.h image.h raster.h
+imagetoraster.64.o: imagetoraster.c imagetoraster.c common.h ../cups/cups.h ../cups/ipp.h \
+ ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h \
+ ../cups/file.h ../cups/language.h ../cups/language.h ../cups/string.h \
+ ../config.h image-private.h image.h raster.h ../cups/debug.h
+common.64.o: common.c common.c common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h \
+ ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h \
+ ../cups/language.h ../cups/language.h ../cups/string.h ../config.h
+pstops.64.o: pstops.c pstops.c common.h ../cups/cups.h ../cups/ipp.h ../cups/http.h \
+ ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h \
+ ../cups/language.h ../cups/language.h ../cups/string.h ../config.h \
+ ../cups/file.h ../cups/array.h
+rasterbench.64.o: rasterbench.c rasterbench.c raster.h ../cups/cups.h ../cups/ipp.h \
+ ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h \
+ ../cups/file.h ../cups/language.h
+rastertoepson.64.o: rastertoepson.c rastertoepson.c ../cups/cups.h ../cups/ipp.h \
+ ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h \
+ ../cups/file.h ../cups/language.h ../cups/ppd.h ../cups/string.h \
+ ../config.h raster.h
+rastertohp.64.o: rastertohp.c rastertohp.c ../cups/cups.h ../cups/ipp.h ../cups/http.h \
+ ../cups/md5.h ../cups/ppd.h ../cups/array.h ../cups/file.h \
+ ../cups/language.h ../cups/string.h ../config.h raster.h
+rastertolabel.64.o: rastertolabel.c rastertolabel.c ../cups/cups.h ../cups/ipp.h \
+ ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h \
+ ../cups/file.h ../cups/language.h ../cups/string.h ../config.h raster.h
+testimage.64.o: testimage.c testimage.c image.h raster.h ../cups/cups.h ../cups/ipp.h \
+ ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h \
+ ../cups/file.h ../cups/language.h
+testraster.64.o: testraster.c testraster.c image-private.h image.h raster.h \
+ ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h \
+ ../cups/string.h ../config.h
+textcommon.64.o: textcommon.c textcommon.c textcommon.h common.h ../cups/cups.h \
+ ../cups/ipp.h ../cups/http.h ../cups/md5.h ../cups/ppd.h \
+ ../cups/array.h ../cups/file.h ../cups/language.h ../cups/language.h \
+ ../cups/string.h ../config.h
+texttops.64.o: texttops.c texttops.c textcommon.h common.h ../cups/cups.h ../cups/ipp.h \
+ ../cups/http.h ../cups/md5.h ../cups/ppd.h ../cups/array.h \
+ ../cups/file.h ../cups/language.h ../cups/language.h ../cups/string.h \
+ ../config.h
#
-# "$Id: Makefile 5649 2006-06-14 21:03:17Z mike $"
+# "$Id: Makefile 6158 2006-12-17 01:44:21Z mike $"
#
# Filter makefile for the Common UNIX Printing System (CUPS).
#
include ../Makedefs
+
FILTERS = gziptoany hpgltops texttops pstops $(IMGFILTERS) \
rastertolabel rastertoepson rastertohp
TARGETS = $(FILTERS) \
# testraster
#
-testraster: testraster.o raster.o
+testraster: testraster.o ../cups/libcups.a libcupsimage.a
echo Linking $@...
- $(CC) $(LDFLAGS) -o $@ testraster.o raster.o
+ $(CC) $(LDFLAGS) -o $@ testraster.o libcupsimage.a ../cups/libcups.a \
+ $(IMGLIBS) $(DSOLIBS) $(LIBS)
#
#
-# End of "$Id: Makefile 5649 2006-06-14 21:03:17Z mike $".
+# End of "$Id: Makefile 6158 2006-12-17 01:44:21Z mike $".
#
/*
- * "$Id: image-pnm.c 5509 2006-05-11 11:41:36Z mike $"
+ * "$Id: image-pnm.c 6149 2006-12-06 20:25:42Z mike $"
*
* Portable Any Map file routines for the Common UNIX Printing System (CUPS).
*
else
{
bit = 128;
- inptr ++;
+ outptr ++;
}
}
break;
/*
- * End of "$Id: image-pnm.c 5509 2006-05-11 11:41:36Z mike $".
+ * End of "$Id: image-pnm.c 6149 2006-12-06 20:25:42Z mike $".
*/
/*
- * "$Id: image-private.h 5191 2006-02-27 02:47:56Z mike $"
+ * "$Id: image-private.h 6158 2006-12-17 01:44:21Z mike $"
*
* Private image library definitions for the Common UNIX Printing
* System (CUPS).
*/
# include "image.h"
+# include "raster.h"
# include <cups/cups.h>
# include <cups/debug.h>
# include <cups/string.h>
int ysize, int rotated,
cups_iztype_t type);
+extern int _cupsRasterExecPS(cups_page_header2_t *h,
+ int *preferred_bits,
+ const char *code);
+
#endif /* !_CUPS_IMAGE_PRIVATE_H_ */
/*
- * End of "$Id: image-private.h 5191 2006-02-27 02:47:56Z mike $".
+ * End of "$Id: image-private.h 6158 2006-12-17 01:44:21Z mike $".
*/
/*
- * "$Id: image-sun.c 5509 2006-05-11 11:41:36Z mike $"
+ * "$Id: image-sun.c 6149 2006-12-06 20:25:42Z mike $"
*
* Sun Raster image file routines for the Common UNIX Printing System (CUPS).
*
for (y = 0; y < img->ysize; y ++)
{
- if (ras_depth != 8 || ras_maplength > 0)
+ if ((ras_depth != 8 && ras_depth != 24) || ras_maplength > 0)
p = scanline;
else
p = in;
*p = 0;
if (bit > 1)
+ bit >>= 1;
+ else
{
bit = 128;
scanptr ++;
}
- else
- bit >>= 1;
}
}
else if (ras_depth == 1)
}
if (bit > 1)
+ bit >>= 1;
+ else
{
bit = 128;
scanptr ++;
}
- else
- bit >>= 1;
}
}
else if (ras_depth == 8 && ras_maplength > 0)
/*
- * End of "$Id: image-sun.c 5509 2006-05-11 11:41:36Z mike $".
+ * End of "$Id: image-sun.c 6149 2006-12-06 20:25:42Z mike $".
*/
/*
- * "$Id: interpret.c 5926 2006-09-05 20:45:47Z mike $"
+ * "$Id: interpret.c 6282 2007-02-14 16:33:54Z mike $"
*
* PPD command interpreter for the Common UNIX Printing System (CUPS).
*
- * Copyright 1993-2006 by Easy Software Products.
+ * Copyright 1993-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
* Contents:
*
* cupsRasterInterpretPPD() - Interpret PPD commands to create a page header.
- * exec_code() - Execute PostScript setpagedevice commands as
- * appropriate.
+ * _cupsRasterExecPS() - Execute PostScript code to initialize a page
+ * header.
+ * cleartomark_stack() - Clear to the last mark ([) on the stack.
+ * copy_stack() - Copy the top N stack objects.
+ * delete_stack() - Free memory used by a stack.
+ * index_stack() - Copy the Nth value on the stack.
+ * new_stack() - Create a new stack.
+ * pop_stock() - Pop the top object off the stack.
+ * push_stack() - Push an object on the stack.
+ * roll_stack() - Rotate stack objects.
+ * scan_ps() - Scan a string for the next PS object.
+ * setpagedevice() - Simulate the PostScript setpagedevice operator.
+ * DEBUG_object() - Print an object value.
+ * DEBUG_stack() - Print a stack.
*/
/*
*/
#include <cups/string.h>
-#include "raster.h"
+#include "image-private.h"
#include <stdlib.h>
/*
- * Value types for PS code...
+ * Stack values for the PostScript mini-interpreter...
*/
-#define CUPS_TYPE_NUMBER 0 /* Integer or real number */
-#define CUPS_TYPE_NAME 1 /* Name */
-#define CUPS_TYPE_STRING 2 /* String */
-#define CUPS_TYPE_ARRAY 3 /* Array of integers */
+typedef enum
+{
+ CUPS_PS_NAME,
+ CUPS_PS_NUMBER,
+ CUPS_PS_STRING,
+ CUPS_PS_BOOLEAN,
+ CUPS_PS_NULL,
+ CUPS_PS_START_ARRAY,
+ CUPS_PS_END_ARRAY,
+ CUPS_PS_START_DICT,
+ CUPS_PS_END_DICT,
+ CUPS_PS_START_PROC,
+ CUPS_PS_END_PROC,
+ CUPS_PS_CLEARTOMARK,
+ CUPS_PS_COPY,
+ CUPS_PS_DUP,
+ CUPS_PS_INDEX,
+ CUPS_PS_POP,
+ CUPS_PS_ROLL,
+ CUPS_PS_SETPAGEDEVICE,
+ CUPS_PS_STOPPED,
+ CUPS_PS_OTHER
+} _cups_ps_type_t;
+
+typedef struct
+{
+ _cups_ps_type_t type; /* Object type */
+ union
+ {
+ int boolean; /* Boolean value */
+ char name[64]; /* Name value */
+ double number; /* Number value */
+ char other[64]; /* Other operator */
+ char string[64]; /* Sring value */
+ } value; /* Value */
+} _cups_ps_obj_t;
+
+typedef struct
+{
+ int num_objs, /* Number of objects on stack */
+ alloc_objs; /* Number of allocated objects */
+ _cups_ps_obj_t *objs; /* Objects in stack */
+} _cups_ps_stack_t;
/*
* Local functions...
*/
-static int exec_code(cups_page_header2_t *header, int *preferred_bits,
- const char *code);
+static int cleartomark_stack(_cups_ps_stack_t *st);
+static int copy_stack(_cups_ps_stack_t *st, int count);
+static void delete_stack(_cups_ps_stack_t *st);
+static _cups_ps_obj_t *index_stack(_cups_ps_stack_t *st, int n);
+static _cups_ps_stack_t *new_stack(void);
+static _cups_ps_obj_t *pop_stack(_cups_ps_stack_t *st);
+static _cups_ps_obj_t *push_stack(_cups_ps_stack_t *st,
+ _cups_ps_obj_t *obj);
+static int roll_stack(_cups_ps_stack_t *st, int c, int s);
+static _cups_ps_obj_t *scan_ps(_cups_ps_stack_t *st, char **ptr);
+static int setpagedevice(_cups_ps_stack_t *st,
+ cups_page_header2_t *h,
+ int *preferred_bits);
+#ifdef DEBUG
+static void DEBUG_object(_cups_ps_obj_t *obj);
+static void DEBUG_stack(_cups_ps_stack_t *st);
+#endif /* DEBUG */
/*
* supported raster format and then returns 0 on success and -1 if the
* requested attributes cannot be supported.
*
+ * cupsRasterInterpretPPD() supports a subset of the PostScript language.
+ * Currently only the [, ], <<, >>, {, }, cleartomark, copy, dup, index,
+ * pop, roll, setpagedevice, and stopped operators are supported.
+ *
* @since CUPS 1.2@
*/
cups_option_t *options, /* I - Options */
cups_interpret_cb_t func) /* I - Optional page header callback */
{
- int i; /* Looping var */
int status; /* Cummulative status */
- int count; /* Number of marked choices */
+ char *code; /* Code to run */
const char *val; /* Option value */
- ppd_choice_t **choices; /* List of marked choices */
ppd_size_t *size; /* Current size */
float left, /* Left position */
bottom, /* Bottom position */
*/
if (ppd->patches)
- status |= exec_code(h, &preferred_bits, ppd->patches);
+ status |= _cupsRasterExecPS(h, &preferred_bits, ppd->patches);
/*
* Then apply printer options in the proper order...
*/
- if ((count = ppdCollect(ppd, PPD_ORDER_DOCUMENT, &choices)) > 0)
+ if ((code = ppdEmitString(ppd, PPD_ORDER_DOCUMENT, 0.0)) != NULL)
{
- for (i = 0; i < count; i ++)
- status |= exec_code(h, &preferred_bits, choices[i]->code);
+ status |= _cupsRasterExecPS(h, &preferred_bits, code);
+ free(code);
}
- if ((count = ppdCollect(ppd, PPD_ORDER_ANY, &choices)) > 0)
+ if ((code = ppdEmitString(ppd, PPD_ORDER_ANY, 0.0)) != NULL)
{
- for (i = 0; i < count; i ++)
- status |= exec_code(h, &preferred_bits, choices[i]->code);
+ status |= _cupsRasterExecPS(h, &preferred_bits, code);
+ free(code);
}
- if ((count = ppdCollect(ppd, PPD_ORDER_PROLOG, &choices)) > 0)
+ if ((code = ppdEmitString(ppd, PPD_ORDER_PROLOG, 0.0)) != NULL)
{
- for (i = 0; i < count; i ++)
- status |= exec_code(h, &preferred_bits, choices[i]->code);
+ status |= _cupsRasterExecPS(h, &preferred_bits, code);
+ free(code);
}
- if ((count = ppdCollect(ppd, PPD_ORDER_PAGE, &choices)) > 0)
+ if ((code = ppdEmitString(ppd, PPD_ORDER_PAGE, 0.0)) != NULL)
{
- for (i = 0; i < count; i ++)
- status |= exec_code(h, &preferred_bits, choices[i]->code);
+ status |= _cupsRasterExecPS(h, &preferred_bits, code);
+ free(code);
}
}
(h->cupsBitsPerColor != 1 && h->cupsBitsPerColor != 2 &&
h->cupsBitsPerColor != 4 && h->cupsBitsPerColor != 8 &&
h->cupsBitsPerColor != 16) ||
- h->cupsBorderlessScalingFactor < 0.9 ||
- h->cupsBorderlessScalingFactor > 1.1)
+ h->cupsBorderlessScalingFactor < 0.5 ||
+ h->cupsBorderlessScalingFactor > 2.0)
return (-1);
/*
/*
- * 'exec_code()' - Execute PostScript setpagedevice commands as appropriate.
+ * '_cupsRasterExecPS()' - Execute PostScript code to initialize a page header.
*/
-static int /* O - 0 on success, -1 on error */
-exec_code(
+int /* O - 0 on success, -1 on error */
+_cupsRasterExecPS(
cups_page_header2_t *h, /* O - Page header */
int *preferred_bits,/* O - Preferred bits per color */
- const char *code) /* I - Option choice to execute */
+ const char *code) /* I - PS code to execute */
{
- int i; /* Index into array */
- int type; /* Type of value */
- char *ptr, /* Pointer into name/value string */
- name[255], /* Name of pagedevice entry */
- value[1024]; /* Value of pagedevice entry */
+ _cups_ps_stack_t *st; /* PostScript value stack */
+ _cups_ps_obj_t *obj; /* Object from top of stack */
+ char *codecopy, /* Copy of code */
+ *codeptr; /* Pointer into copy of code */
+
+ DEBUG_printf(("_cupsRasterExecPS(h=%p, preferred_bits=%p, code=\"%s\")\n",
+ h, preferred_bits, code ? code : "(null)"));
/*
- * Range check input...
+ * Copy the PostScript code and create a stack...
*/
- if (!code || !h)
+ if ((codecopy = strdup(code)) == NULL)
+ return (-1);
+
+ if ((st = new_stack()) == NULL)
+ {
+ free(codecopy);
return (-1);
+ }
/*
- * Parse the code string...
+ * Parse the PS string until we run out of data...
*/
- while (*code)
+ codeptr = codecopy;
+
+ while ((obj = scan_ps(st, &codeptr)) != NULL)
{
- /*
- * Search for the start of a dictionary name...
- */
+#ifdef DEBUG
+ printf(" (%d): ", st->num_objs);
+ DEBUG_object(obj);
+ putchar('\n');
+#endif /* DEBUG */
+
+ switch (obj->type)
+ {
+ default :
+ /* Do nothing for regular values */
+ break;
+
+ case CUPS_PS_CLEARTOMARK :
+ pop_stack(st);
+
+ cleartomark_stack(st);
+
+#ifdef DEBUG
+ fputs(" dup: ", stdout);
+ DEBUG_stack(st);
+#endif /* DEBUG */
+ break;
+
+ case CUPS_PS_COPY :
+ pop_stack(st);
+ if ((obj = pop_stack(st)) != NULL)
+ {
+ copy_stack(st, (int)obj->value.number);
+
+#ifdef DEBUG
+ fputs(" copy: ", stdout);
+ DEBUG_stack(st);
+#endif /* DEBUG */
+ }
+ break;
+
+ case CUPS_PS_DUP :
+ pop_stack(st);
+ copy_stack(st, 1);
+
+#ifdef DEBUG
+ fputs(" dup: ", stdout);
+ DEBUG_stack(st);
+#endif /* DEBUG */
+ break;
+
+ case CUPS_PS_INDEX :
+ pop_stack(st);
+ if ((obj = pop_stack(st)) != NULL)
+ {
+ index_stack(st, (int)obj->value.number);
+
+#ifdef DEBUG
+ fputs(" index: ", stdout);
+ DEBUG_stack(st);
+#endif /* DEBUG */
+ }
+ break;
+
+ case CUPS_PS_POP :
+ pop_stack(st);
+ pop_stack(st);
+
+#ifdef DEBUG
+ fputs(" pop: ", stdout);
+ DEBUG_stack(st);
+#endif /* DEBUG */
+ break;
+
+ case CUPS_PS_ROLL :
+ pop_stack(st);
+ if ((obj = pop_stack(st)) != NULL)
+ {
+ int c; /* Count */
- while (*code && *code != '/')
- code ++;
- if (!*code)
+ c = (int)obj->value.number;
+
+ if ((obj = pop_stack(st)) != NULL)
+ {
+ roll_stack(st, (int)obj->value.number, c);
+
+#ifdef DEBUG
+ fputs(" roll:", stdout);
+ DEBUG_stack(st);
+#endif /* DEBUG */
+ }
+ }
+ break;
+
+ case CUPS_PS_SETPAGEDEVICE :
+ pop_stack(st);
+ setpagedevice(st, h, preferred_bits);
+
+#ifdef DEBUG
+ fputs(" setpagedevice: ", stdout);
+ DEBUG_stack(st);
+#endif /* DEBUG */
+ break;
+
+ case CUPS_PS_START_PROC :
+ case CUPS_PS_END_PROC :
+ case CUPS_PS_STOPPED :
+ pop_stack(st);
+ break;
+
+ case CUPS_PS_OTHER :
+ DEBUG_printf((" Unknown operator \"%s\"!\n", obj->value.other));
+ break;
+ }
+
+ if (obj->type == CUPS_PS_OTHER)
break;
+ }
+
+ /*
+ * Cleanup...
+ */
+
+ free(codecopy);
+
+ if (st->num_objs > 0)
+ {
+#ifdef DEBUG
+ fputs(" Stack not empty:", stdout);
+ DEBUG_stack(st);
+#endif /* DEBUG */
+ delete_stack(st);
+
+ return (-1);
+ }
+
+ delete_stack(st);
+
+ /*
+ * Return success...
+ */
+
+ return (0);
+}
+
+
+/*
+ * 'cleartomark_stack()' - Clear to the last mark ([) on the stack.
+ */
+
+static int /* O - 0 on success, -1 on error */
+cleartomark_stack(_cups_ps_stack_t *st) /* I - Stack */
+{
+ _cups_ps_obj_t *obj; /* Current object on stack */
+
+
+ while ((obj = pop_stack(st)) != NULL)
+ if (obj->type == CUPS_PS_START_ARRAY)
+ break;
+
+ return (obj ? 0 : -1);
+}
+
+
+/*
+ * 'copy_stack()' - Copy the top N stack objects.
+ */
+
+static int /* O - 0 on success, -1 on error */
+copy_stack(_cups_ps_stack_t *st, /* I - Stack */
+ int c) /* I - Number of objects to copy */
+{
+ int n; /* Index */
+
+
+ if (c < 0)
+ return (-1);
+ else if (c == 0)
+ return (0);
+
+ if ((n = st->num_objs - c) < 0)
+ return (-1);
+
+ while (c > 0)
+ {
+ if (!push_stack(st, st->objs + n))
+ return (-1);
+
+ n ++;
+ c --;
+ }
+
+ return (0);
+}
+
+
+/*
+ * 'delete_stack()' - Free memory used by a stack.
+ */
+
+static void
+delete_stack(_cups_ps_stack_t *st) /* I - Stack */
+{
+ free(st->objs);
+ free(st);
+}
+
+
+/*
+ * 'index_stack()' - Copy the Nth value on the stack.
+ */
+
+static _cups_ps_obj_t * /* O - New object */
+index_stack(_cups_ps_stack_t *st, /* I - Stack */
+ int n) /* I - Object index */
+{
+ if (n < 0 || (n = st->num_objs - n - 1) < 0)
+ return (NULL);
+
+ return (push_stack(st, st->objs + n));
+}
+
+
+/*
+ * 'new_stack()' - Create a new stack.
+ */
+
+static _cups_ps_stack_t * /* O - New stack */
+new_stack(void)
+{
+ _cups_ps_stack_t *st; /* New stack */
+
+
+ if ((st = calloc(1, sizeof(_cups_ps_stack_t))) == NULL)
+ return (NULL);
+
+ st->alloc_objs = 32;
+
+ if ((st->objs = calloc(32, sizeof(_cups_ps_obj_t))) == NULL)
+ {
+ free(st);
+ return (NULL);
+ }
+ else
+ return (st);
+}
+
+
+/*
+ * 'pop_stock()' - Pop the top object off the stack.
+ */
+
+static _cups_ps_obj_t * /* O - Object */
+pop_stack(_cups_ps_stack_t *st) /* I - Stack */
+{
+ if (st->num_objs > 0)
+ {
+ st->num_objs --;
+
+ return (st->objs + st->num_objs);
+ }
+ else
+ return (NULL);
+}
+
+
+/*
+ * 'push_stack()' - Push an object on the stack.
+ */
+
+static _cups_ps_obj_t * /* O - New object */
+push_stack(_cups_ps_stack_t *st, /* I - Stack */
+ _cups_ps_obj_t *obj) /* I - Object */
+{
+ _cups_ps_obj_t *temp; /* New object */
+
+
+ if (st->num_objs >= st->alloc_objs)
+ {
+
+
+ st->alloc_objs += 32;
+
+ if ((temp = realloc(st->objs, st->alloc_objs *
+ sizeof(_cups_ps_obj_t))) == NULL)
+ return (NULL);
+
+ st->objs = temp;
+ memset(temp + st->num_objs, 0, 32 * sizeof(_cups_ps_obj_t));
+ }
+
+ temp = st->objs + st->num_objs;
+ st->num_objs ++;
+
+ memcpy(temp, obj, sizeof(_cups_ps_obj_t));
+
+ return (temp);
+}
+
+
+/*
+ * 'roll_stack()' - Rotate stack objects.
+ */
+
+static int /* O - 0 on success, -1 on error */
+roll_stack(_cups_ps_stack_t *st, /* I - Stack */
+ int c, /* I - Number of objects */
+ int s) /* I - Amount to shift */
+{
+ _cups_ps_obj_t *temp; /* Temporary array of objects */
+ int n; /* Index into array */
+
+
+ DEBUG_printf((" roll_stack(st=%p, s=%d, c=%d)\n", st, s, c));
+
+ /*
+ * Range check input...
+ */
+
+ if (c < 0)
+ return (-1);
+ else if (c == 0)
+ return (0);
+
+ if ((n = st->num_objs - c) < 0)
+ return (-1);
+
+ s %= c;
+
+ if (s == 0)
+ return (0);
+
+ /*
+ * Copy N objects and move things around...
+ */
+
+ if (s < 0)
+ {
/*
- * Get the name...
+ * Shift down...
*/
- code ++;
- for (ptr = name; isalnum(*code & 255); code ++)
- if (ptr < (name + sizeof(name) - 1))
- *ptr++ = *code;
- else
- return (-1);
+ s = -s;
- *ptr = '\0';
+ if ((temp = calloc(s, sizeof(_cups_ps_obj_t))) == NULL)
+ return (-1);
+ memcpy(temp, st->objs + n, s * sizeof(_cups_ps_obj_t));
+ memmove(st->objs + n, st->objs + n + s, (c - s) * sizeof(_cups_ps_obj_t));
+ memcpy(st->objs + n + c - s, temp, s * sizeof(_cups_ps_obj_t));
+ }
+ else
+ {
/*
- * Then parse the value as needed...
+ * Shift up...
*/
- while (isspace(*code & 255))
- code ++;
+ if ((temp = calloc(s, sizeof(_cups_ps_obj_t))) == NULL)
+ return (-1);
- if (!*code)
- break;
+ memcpy(temp, st->objs + n + c - s, s * sizeof(_cups_ps_obj_t));
+ memmove(st->objs + n + s, st->objs + n,
+ (c - s) * sizeof(_cups_ps_obj_t));
+ memcpy(st->objs + n, temp, s * sizeof(_cups_ps_obj_t));
+ }
- if (*code == '[')
- {
- /*
- * Read array of values...
- */
+ free(temp);
+
+ return (0);
+}
- type = CUPS_TYPE_ARRAY;
- for (ptr = value; *code && *code != ']'; code ++)
- if (ptr < (value + sizeof(value) - 1))
- *ptr++ = *code;
- else
- return (-1);
+/*
+ * 'scan_ps()' - Scan a string for the next PS object.
+ */
+
+static _cups_ps_obj_t * /* O - New object or NULL on EOF */
+scan_ps(_cups_ps_stack_t *st, /* I - Stack */
+ char **ptr) /* IO - String pointer */
+{
+ _cups_ps_obj_t obj; /* Current object */
+ char *start, /* Start of object */
+ *cur, /* Current position */
+ *valptr, /* Pointer into value string */
+ *valend; /* End of value string */
+ int parens; /* Parenthesis nesting level */
- if (*code == ']')
- *ptr++ = *code++;
- *ptr = '\0';
- }
- else if (*code == '(')
+ /*
+ * Skip leading whitespace...
+ */
+
+ for (cur = *ptr; *cur; cur ++)
+ {
+ if (*cur == '%')
{
/*
- * Read string value...
+ * Comment, skip to end of line...
*/
- type = CUPS_TYPE_STRING;
+ for (cur ++; *cur && *cur != '\n' && *cur != '\r'; cur ++);
+ }
+ else if (!isspace(*cur & 255))
+ break;
+ }
- for (ptr = value; *code && *code != ')'; code ++)
- if (ptr < (value + sizeof(value) - 1))
- *ptr++ = *code;
- else
- return (-1);
+ if (!*cur)
+ {
+ *ptr = NULL;
- if (*code == ')')
- *ptr++ = *code++;
+ return (NULL);
+ }
- *ptr = '\0';
- }
- else if (isdigit(*code & 255) || *code == '-' || *code == '.')
- {
- /*
- * Read single number...
- */
+ /*
+ * See what we have...
+ */
- type = CUPS_TYPE_NUMBER;
+ memset(&obj, 0, sizeof(obj));
- for (ptr = value;
- isdigit(*code & 255) || *code == '-' || *code == '.';
- code ++)
- if (ptr < (value + sizeof(value) - 1))
- *ptr++ = *code;
+ switch (*cur)
+ {
+ case '(' : /* (string) */
+ obj.type = CUPS_PS_STRING;
+ start = cur;
+
+ for (cur ++, parens = 1, valptr = obj.value.string,
+ valend = obj.value.string + sizeof(obj.value.string) - 1;
+ *cur;
+ cur ++)
+ {
+ if (*cur == ')' && parens == 1)
+ break;
+
+ if (*cur == '(')
+ parens ++;
+ else if (*cur == ')')
+ parens --;
+
+ if (valptr >= valend)
+ {
+ *ptr = start;
+
+ return (NULL);
+ }
+
+ if (*cur == '\\')
+ {
+ /*
+ * Decode escaped character...
+ */
+
+ cur ++;
+
+ if (*cur == 'b')
+ *valptr++ = '\b';
+ else if (*cur == 'f')
+ *valptr++ = '\f';
+ else if (*cur == 'n')
+ *valptr++ = '\n';
+ else if (*cur == 'r')
+ *valptr++ = '\r';
+ else if (*cur == 't')
+ *valptr++ = '\t';
+ else if (*cur >= '0' && *cur <= '7')
+ {
+ int ch = *cur - '0';
+
+ if (cur[1] >= '0' && cur[1] <= '7')
+ {
+ cur ++;
+ ch = (ch << 3) + *cur - '0';
+ }
+
+ if (cur[1] >= '0' && cur[1] <= '7')
+ {
+ cur ++;
+ ch = (ch << 3) + *cur - '0';
+ }
+
+ *valptr++ = ch;
+ }
+ else if (*cur == '\r')
+ {
+ if (cur[1] == '\n')
+ cur ++;
+ }
+ else if (*cur != '\n')
+ *valptr++ = *cur;
+ }
+ else
+ *valptr++ = *cur;
+ }
+
+ if (*cur != ')')
+ {
+ *ptr = start;
+
+ return (NULL);
+ }
+
+ cur ++;
+ break;
+
+ case '[' : /* Start array */
+ obj.type = CUPS_PS_START_ARRAY;
+ cur ++;
+ break;
+
+ case ']' : /* End array */
+ obj.type = CUPS_PS_END_ARRAY;
+ cur ++;
+ break;
+
+ case '<' : /* Start dictionary or hex string */
+ if (cur[1] == '<')
+ {
+ obj.type = CUPS_PS_START_DICT;
+ cur += 2;
+ }
else
- return (-1);
+ {
+ obj.type = CUPS_PS_STRING;
+ start = cur;
+
+ for (cur ++, valptr = obj.value.string,
+ valend = obj.value.string + sizeof(obj.value.string) - 1;
+ *cur;
+ cur ++)
+ {
+ int ch; /* Current character */
+
+
+
+ if (*cur == '>')
+ break;
+ else if (valptr >= valend || !isxdigit(*cur & 255))
+ {
+ *ptr = start;
+ return (NULL);
+ }
+
+ if (*cur >= '0' && *cur <= '9')
+ ch = (*cur - '0') << 4;
+ else
+ ch = (tolower(*cur) - 'a' + 10) << 4;
+
+ if (isxdigit(cur[1] & 255))
+ {
+ cur ++;
+
+ if (*cur >= '0' && *cur <= '9')
+ ch |= *cur - '0';
+ else
+ ch |= tolower(*cur) - 'a' + 10;
+ }
+
+ *valptr++ = ch;
+ }
+
+ if (*cur != '>')
+ {
+ *ptr = start;
+ return (NULL);
+ }
+
+ cur ++;
+ }
+ break;
- *ptr = '\0';
- }
- else
- {
- /*
- * Read a single name...
- */
+ case '>' : /* End dictionary? */
+ if (cur[1] == '>')
+ {
+ obj.type = CUPS_PS_END_DICT;
+ cur += 2;
+ }
+ else
+ {
+ obj.type = CUPS_PS_OTHER;
+ obj.value.other[0] = *cur;
+
+ cur ++;
+ }
+ break;
+
+ case '{' : /* Start procedure */
+ obj.type = CUPS_PS_START_PROC;
+ cur ++;
+ break;
+
+ case '}' : /* End procedure */
+ obj.type = CUPS_PS_END_PROC;
+ cur ++;
+ break;
+
+ case '-' : /* Possible number */
+ case '+' :
+ if (!isdigit(cur[1] & 255) && cur[1] != '.')
+ {
+ obj.type = CUPS_PS_OTHER;
+ obj.value.other[0] = *cur;
+
+ cur ++;
+ break;
+ }
+
+ case '0' : /* Number */
+ case '1' :
+ case '2' :
+ case '3' :
+ case '4' :
+ case '5' :
+ case '6' :
+ case '7' :
+ case '8' :
+ case '9' :
+ case '.' :
+ obj.type = CUPS_PS_NUMBER;
+
+ start = cur;
+ for (cur ++; *cur; cur ++)
+ if (!isdigit(*cur & 255))
+ break;
+
+ if (*cur == '#')
+ {
+ /*
+ * Integer with radix...
+ */
+
+ obj.value.number = strtol(cur + 1, &cur, atoi(start));
+ break;
+ }
+ else if (strchr(".Ee()<>[]{}/%", *cur) || isspace(*cur & 255))
+ {
+ /*
+ * Integer or real number...
+ */
- type = CUPS_TYPE_NAME;
+ obj.value.number = _cupsStrScand(start, &cur, localeconv());
+ break;
+ }
+ else
+ cur = start;
- for (ptr = value; isalnum(*code & 255) || *code == '_'; code ++)
- if (ptr < (value + sizeof(value) - 1))
- *ptr++ = *code;
+ default : /* Operator/variable name */
+ start = cur;
+
+ if (*cur == '/')
+ {
+ obj.type = CUPS_PS_NAME;
+ valptr = obj.value.name;
+ valend = obj.value.name + sizeof(obj.value.name) - 1;
+ cur ++;
+ }
else
- return (-1);
+ {
+ obj.type = CUPS_PS_OTHER;
+ valptr = obj.value.other;
+ valend = obj.value.other + sizeof(obj.value.other) - 1;
+ }
- *ptr = '\0';
- }
+ while (*cur)
+ {
+ if (strchr("()<>[]{}/%", *cur) || isspace(*cur & 255))
+ break;
+ else if (valptr < valend)
+ *valptr++ = *cur++;
+ else
+ {
+ *ptr = start;
+ return (NULL);
+ }
+ }
+
+ if (obj.type == CUPS_PS_OTHER)
+ {
+ if (!strcmp(obj.value.other, "true"))
+ {
+ obj.type = CUPS_PS_BOOLEAN;
+ obj.value.boolean = 1;
+ }
+ else if (!strcmp(obj.value.other, "false"))
+ {
+ obj.type = CUPS_PS_BOOLEAN;
+ obj.value.boolean = 0;
+ }
+ else if (!strcmp(obj.value.other, "null"))
+ obj.type = CUPS_PS_NULL;
+ else if (!strcmp(obj.value.other, "cleartomark"))
+ obj.type = CUPS_PS_CLEARTOMARK;
+ else if (!strcmp(obj.value.other, "copy"))
+ obj.type = CUPS_PS_COPY;
+ else if (!strcmp(obj.value.other, "dup"))
+ obj.type = CUPS_PS_DUP;
+ else if (!strcmp(obj.value.other, "index"))
+ obj.type = CUPS_PS_INDEX;
+ else if (!strcmp(obj.value.other, "pop"))
+ obj.type = CUPS_PS_POP;
+ else if (!strcmp(obj.value.other, "roll"))
+ obj.type = CUPS_PS_ROLL;
+ else if (!strcmp(obj.value.other, "setpagedevice"))
+ obj.type = CUPS_PS_SETPAGEDEVICE;
+ else if (!strcmp(obj.value.other, "stopped"))
+ obj.type = CUPS_PS_STOPPED;
+ }
+ break;
+ }
+
+ /*
+ * Save the current position in the string and return the new object...
+ */
+
+ *ptr = cur;
+
+ return (push_stack(st, &obj));
+}
+
+
+/*
+ * 'setpagedevice()' - Simulate the PostScript setpagedevice operator.
+ */
+
+static int /* O - 0 on success, -1 on error */
+setpagedevice(
+ _cups_ps_stack_t *st, /* I - Stack */
+ cups_page_header2_t *h, /* O - Page header */
+ int *preferred_bits)/* O - Preferred bits per color */
+{
+ int i; /* Index into array */
+ _cups_ps_obj_t *obj, /* Current object */
+ *end; /* End of dictionary */
+ const char *name; /* Attribute name */
+
+
+ /*
+ * Make sure we have a dictionary on the stack...
+ */
+
+ if (st->num_objs == 0)
+ return (-1);
+
+ obj = end = st->objs + st->num_objs - 1;
+
+ if (obj->type != CUPS_PS_END_DICT)
+ return (-1);
+
+ obj --;
+
+ while (obj > st->objs)
+ {
+ if (obj->type == CUPS_PS_START_DICT)
+ break;
+
+ obj --;
+ }
+
+ if (obj < st->objs)
+ return (-1);
+ /*
+ * Found the start of the dictionary, empty the stack to this point...
+ */
+
+ st->num_objs = obj - st->objs;
+
+ /*
+ * Now pull /name and value pairs from the dictionary...
+ */
+
+ DEBUG_puts(" Dictionary:");
+
+ for (obj ++; obj < end; obj ++)
+ {
/*
- * Assign the value as needed...
+ * Grab the name...
*/
- if (!strcmp(name, "MediaClass") && type == CUPS_TYPE_STRING)
- {
- if (sscanf(value, "(%63[^)])", h->MediaClass) != 1)
- return (-1);
- }
- else if (!strcmp(name, "MediaColor") && type == CUPS_TYPE_STRING)
- {
- if (sscanf(value, "(%63[^)])", h->MediaColor) != 1)
- return (-1);
- }
- else if (!strcmp(name, "MediaType") && type == CUPS_TYPE_STRING)
- {
- if (sscanf(value, "(%63[^)])", h->MediaType) != 1)
- return (-1);
- }
- else if (!strcmp(name, "OutputType") && type == CUPS_TYPE_STRING)
- {
- if (sscanf(value, "(%63[^)])", h->OutputType) != 1)
- return (-1);
- }
- else if (!strcmp(name, "AdvanceDistance") && type == CUPS_TYPE_NUMBER)
- h->AdvanceDistance = atoi(value);
- else if (!strcmp(name, "AdvanceMedia") && type == CUPS_TYPE_NUMBER)
- h->AdvanceMedia = atoi(value);
- else if (!strcmp(name, "Collate") && type == CUPS_TYPE_NAME)
- h->Collate = !strcmp(value, "true");
- else if (!strcmp(name, "CutMedia") && type == CUPS_TYPE_NUMBER)
- h->CutMedia = (cups_cut_t)atoi(value);
- else if (!strcmp(name, "Duplex") && type == CUPS_TYPE_NAME)
- h->Duplex = !strcmp(value, "true");
- else if (!strcmp(name, "HWResolution") && type == CUPS_TYPE_ARRAY)
+ if (obj->type != CUPS_PS_NAME)
+ return (-1);
+
+ name = obj->value.name;
+ obj ++;
+
+#ifdef DEBUG
+ printf(" /%s ", name);
+ DEBUG_object(obj);
+ putchar('\n');
+#endif /* DEBUG */
+
+ /*
+ * Then grab the value...
+ */
+
+ if (!strcmp(name, "MediaClass") && obj->type == CUPS_PS_STRING)
+ strlcpy(h->MediaClass, obj->value.string, sizeof(h->MediaClass));
+ else if (!strcmp(name, "MediaColor") && obj->type == CUPS_PS_STRING)
+ strlcpy(h->MediaColor, obj->value.string, sizeof(h->MediaColor));
+ else if (!strcmp(name, "MediaType") && obj->type == CUPS_PS_STRING)
+ strlcpy(h->MediaType, obj->value.string, sizeof(h->MediaType));
+ else if (!strcmp(name, "OutputType") && obj->type == CUPS_PS_STRING)
+ strlcpy(h->OutputType, obj->value.string, sizeof(h->OutputType));
+ else if (!strcmp(name, "AdvanceDistance") && obj->type == CUPS_PS_NUMBER)
+ h->AdvanceDistance = (unsigned)obj->value.number;
+ else if (!strcmp(name, "AdvanceMedia") && obj->type == CUPS_PS_NUMBER)
+ h->AdvanceMedia = (unsigned)obj->value.number;
+ else if (!strcmp(name, "Collate") && obj->type == CUPS_PS_BOOLEAN)
+ h->Collate = (unsigned)obj->value.boolean;
+ else if (!strcmp(name, "CutMedia") && obj->type == CUPS_PS_NUMBER)
+ h->CutMedia = (cups_cut_t)(unsigned)obj->value.number;
+ else if (!strcmp(name, "Duplex") && obj->type == CUPS_PS_BOOLEAN)
+ h->Duplex = (unsigned)obj->value.boolean;
+ else if (!strcmp(name, "HWResolution") && obj->type == CUPS_PS_START_ARRAY)
{
- if (sscanf(value, "[%d%d]", h->HWResolution + 0,
- h->HWResolution + 1) != 2)
+ if (obj[1].type == CUPS_PS_NUMBER && obj[2].type == CUPS_PS_NUMBER &&
+ obj[3].type == CUPS_PS_END_ARRAY)
+ {
+ h->HWResolution[0] = (unsigned)obj[1].value.number;
+ h->HWResolution[1] = (unsigned)obj[2].value.number;
+ obj += 3;
+ }
+ else
return (-1);
}
- else if (!strcmp(name, "InsertSheet") && type == CUPS_TYPE_NAME)
- h->InsertSheet = !strcmp(value, "true");
- else if (!strcmp(name, "Jog") && type == CUPS_TYPE_NUMBER)
- h->Jog = atoi(value);
- else if (!strcmp(name, "LeadingEdge") && type == CUPS_TYPE_NUMBER)
- h->LeadingEdge = atoi(value);
- else if (!strcmp(name, "ManualFeed") && type == CUPS_TYPE_NAME)
- h->ManualFeed = !strcmp(value, "true");
+ else if (!strcmp(name, "InsertSheet") && obj->type == CUPS_PS_BOOLEAN)
+ h->InsertSheet = (unsigned)obj->value.boolean;
+ else if (!strcmp(name, "Jog") && obj->type == CUPS_PS_NUMBER)
+ h->Jog = (unsigned)obj->value.number;
+ else if (!strcmp(name, "LeadingEdge") && obj->type == CUPS_PS_NUMBER)
+ h->LeadingEdge = (unsigned)obj->value.number;
+ else if (!strcmp(name, "ManualFeed") && obj->type == CUPS_PS_BOOLEAN)
+ h->ManualFeed = (unsigned)obj->value.boolean;
else if ((!strcmp(name, "cupsMediaPosition") || /* Compatibility */
- !strcmp(name, "MediaPosition")) && type == CUPS_TYPE_NUMBER)
- h->MediaPosition = atoi(value);
- else if (!strcmp(name, "MediaWeight") && type == CUPS_TYPE_NUMBER)
- h->MediaWeight = atoi(value);
- else if (!strcmp(name, "MirrorPrint") && type == CUPS_TYPE_NAME)
- h->MirrorPrint = !strcmp(value, "true");
- else if (!strcmp(name, "NegativePrint") && type == CUPS_TYPE_NAME)
- h->NegativePrint = !strcmp(value, "true");
- else if (!strcmp(name, "Orientation") && type == CUPS_TYPE_NUMBER)
- h->Orientation = atoi(value);
- else if (!strcmp(name, "OutputFaceUp") && type == CUPS_TYPE_NAME)
- h->OutputFaceUp = !strcmp(value, "true");
- else if (!strcmp(name, "PageSize") && type == CUPS_TYPE_ARRAY)
+ !strcmp(name, "MediaPosition")) && obj->type == CUPS_PS_NUMBER)
+ h->MediaPosition = (unsigned)obj->value.number;
+ else if (!strcmp(name, "MediaWeight") && obj->type == CUPS_PS_NUMBER)
+ h->MediaWeight = (unsigned)obj->value.number;
+ else if (!strcmp(name, "MirrorPrint") && obj->type == CUPS_PS_BOOLEAN)
+ h->MirrorPrint = (unsigned)obj->value.boolean;
+ else if (!strcmp(name, "NegativePrint") && obj->type == CUPS_PS_BOOLEAN)
+ h->NegativePrint = (unsigned)obj->value.boolean;
+ else if (!strcmp(name, "NumCopies") && obj->type == CUPS_PS_NUMBER)
+ h->NumCopies = (unsigned)obj->value.number;
+ else if (!strcmp(name, "Orientation") && obj->type == CUPS_PS_NUMBER)
+ h->Orientation = (unsigned)obj->value.number;
+ else if (!strcmp(name, "OutputFaceUp") && obj->type == CUPS_PS_BOOLEAN)
+ h->OutputFaceUp = (unsigned)obj->value.boolean;
+ else if (!strcmp(name, "PageSize") && obj->type == CUPS_PS_START_ARRAY)
{
- if (sscanf(value, "[%f%f]", h->cupsPageSize + 0, h->cupsPageSize + 1) != 2)
+ if (obj[1].type == CUPS_PS_NUMBER && obj[2].type == CUPS_PS_NUMBER &&
+ obj[3].type == CUPS_PS_END_ARRAY)
+ {
+ h->cupsPageSize[0] = obj[1].value.number;
+ h->cupsPageSize[1] = obj[2].value.number;
+
+ h->PageSize[0] = (unsigned)obj[1].value.number;
+ h->PageSize[1] = (unsigned)obj[2].value.number;
+
+ obj += 3;
+ }
+ else
return (-1);
}
- else if (!strcmp(name, "Separations") && type == CUPS_TYPE_NAME)
- h->Separations = !strcmp(value, "true");
- else if (!strcmp(name, "TraySwitch") && type == CUPS_TYPE_NAME)
- h->TraySwitch = !strcmp(value, "true");
- else if (!strcmp(name, "Tumble") && type == CUPS_TYPE_NAME)
- h->Tumble = !strcmp(value, "true");
- else if (!strcmp(name, "cupsMediaType") && type == CUPS_TYPE_NUMBER)
- h->cupsMediaType = atoi(value);
- else if (!strcmp(name, "cupsBitsPerColor") && type == CUPS_TYPE_NUMBER)
- h->cupsBitsPerColor = atoi(value);
- else if (!strcmp(name, "cupsPreferredBitsPerColor") && type == CUPS_TYPE_NUMBER)
- *preferred_bits = atoi(value);
- else if (!strcmp(name, "cupsColorOrder") && type == CUPS_TYPE_NUMBER)
- h->cupsColorOrder = (cups_order_t)atoi(value);
- else if (!strcmp(name, "cupsColorSpace") && type == CUPS_TYPE_NUMBER)
- h->cupsColorSpace = (cups_cspace_t)atoi(value);
- else if (!strcmp(name, "cupsCompression") && type == CUPS_TYPE_NUMBER)
- h->cupsCompression = atoi(value);
- else if (!strcmp(name, "cupsRowCount") && type == CUPS_TYPE_NUMBER)
- h->cupsRowCount = atoi(value);
- else if (!strcmp(name, "cupsRowFeed") && type == CUPS_TYPE_NUMBER)
- h->cupsRowFeed = atoi(value);
- else if (!strcmp(name, "cupsRowStep") && type == CUPS_TYPE_NUMBER)
- h->cupsRowStep = atoi(value);
+ else if (!strcmp(name, "Separations") && obj->type == CUPS_PS_BOOLEAN)
+ h->Separations = (unsigned)obj->value.boolean;
+ else if (!strcmp(name, "TraySwitch") && obj->type == CUPS_PS_BOOLEAN)
+ h->TraySwitch = (unsigned)obj->value.boolean;
+ else if (!strcmp(name, "Tumble") && obj->type == CUPS_PS_BOOLEAN)
+ h->Tumble = (unsigned)obj->value.boolean;
+ else if (!strcmp(name, "cupsMediaType") && obj->type == CUPS_PS_NUMBER)
+ h->cupsMediaType = (unsigned)obj->value.number;
+ else if (!strcmp(name, "cupsBitsPerColor") && obj->type == CUPS_PS_NUMBER)
+ h->cupsBitsPerColor = (unsigned)obj->value.number;
+ else if (!strcmp(name, "cupsPreferredBitsPerColor") &&
+ obj->type == CUPS_PS_NUMBER)
+ *preferred_bits = (int)obj->value.number;
+ else if (!strcmp(name, "cupsColorOrder") && obj->type == CUPS_PS_NUMBER)
+ h->cupsColorOrder = (cups_order_t)(unsigned)obj->value.number;
+ else if (!strcmp(name, "cupsColorSpace") && obj->type == CUPS_PS_NUMBER)
+ h->cupsColorSpace = (cups_cspace_t)(unsigned)obj->value.number;
+ else if (!strcmp(name, "cupsCompression") && obj->type == CUPS_PS_NUMBER)
+ h->cupsCompression = (unsigned)obj->value.number;
+ else if (!strcmp(name, "cupsRowCount") && obj->type == CUPS_PS_NUMBER)
+ h->cupsRowCount = (unsigned)obj->value.number;
+ else if (!strcmp(name, "cupsRowFeed") && obj->type == CUPS_PS_NUMBER)
+ h->cupsRowFeed = (unsigned)obj->value.number;
+ else if (!strcmp(name, "cupsRowStep") && obj->type == CUPS_PS_NUMBER)
+ h->cupsRowStep = (unsigned)obj->value.number;
else if (!strcmp(name, "cupsBorderlessScalingFactor") &&
- type == CUPS_TYPE_NUMBER)
- h->cupsBorderlessScalingFactor = atof(value);
- else if (!strncmp(name, "cupsInteger", 11) && type == CUPS_TYPE_NUMBER)
+ obj->type == CUPS_PS_NUMBER)
+ h->cupsBorderlessScalingFactor = obj->value.number;
+ else if (!strncmp(name, "cupsInteger", 11) && obj->type == CUPS_PS_NUMBER)
{
- if ((i = atoi(name + 11)) >= 0 || i > 15)
+ if ((i = atoi(name + 11)) < 0 || i > 15)
return (-1);
- h->cupsInteger[i] = atoi(value);
+ h->cupsInteger[i] = (unsigned)obj->value.number;
}
- else if (!strncmp(name, "cupsReal", 8) && type == CUPS_TYPE_NUMBER)
+ else if (!strncmp(name, "cupsReal", 8) && obj->type == CUPS_PS_NUMBER)
{
- if ((i = atoi(name + 8)) >= 0 || i > 15)
+ if ((i = atoi(name + 8)) < 0 || i > 15)
return (-1);
- h->cupsReal[i] = atof(value);
+ h->cupsReal[i] = obj->value.number;
}
- else if (!strncmp(name, "cupsString", 10) && type == CUPS_TYPE_STRING)
+ else if (!strncmp(name, "cupsString", 10) && obj->type == CUPS_PS_STRING)
{
- if ((i = atoi(name + 10)) >= 0 || i > 15)
+ if ((i = atoi(name + 10)) < 0 || i > 15)
return (-1);
- if (sscanf(value, "(%63[^)])", h->cupsString[i]) != 1)
- return (-1);
- }
- else if (!strcmp(name, "cupsMarkerType") && type == CUPS_TYPE_STRING)
- {
- if (sscanf(value, "(%63[^)])", h->cupsMarkerType) != 1)
- return (-1);
+ strlcpy(h->cupsString[i], obj->value.string, sizeof(h->cupsString[i]));
}
- else if (!strcmp(name, "cupsRenderingIntent") && type == CUPS_TYPE_STRING)
+ else if (!strcmp(name, "cupsMarkerType") && obj->type == CUPS_PS_STRING)
+ strlcpy(h->cupsMarkerType, obj->value.string, sizeof(h->cupsMarkerType));
+ else if (!strcmp(name, "cupsPageSizeName") && obj->type == CUPS_PS_STRING)
+ strlcpy(h->cupsPageSizeName, obj->value.string,
+ sizeof(h->cupsPageSizeName));
+ else if (!strcmp(name, "cupsRenderingIntent") &&
+ obj->type == CUPS_PS_STRING)
+ strlcpy(h->cupsRenderingIntent, obj->value.string,
+ sizeof(h->cupsRenderingIntent));
+ else
{
- if (sscanf(value, "(%63[^)])", h->cupsRenderingIntent) != 1)
- return (-1);
+ /*
+ * Ignore unknown name+value...
+ */
+
+ DEBUG_printf((" Unknown name (\"%s\") or value...\n", name));
+
+ while (obj[1].type != CUPS_PS_NAME && obj < end)
+ obj ++;
}
}
- /*
- * Return success...
- */
-
return (0);
}
+#ifdef DEBUG
+/*
+ * 'DEBUG_object()' - Print an object's value...
+ */
+
+static void
+DEBUG_object(_cups_ps_obj_t *obj) /* I - Object to print */
+{
+ switch (obj->type)
+ {
+ case CUPS_PS_NAME :
+ printf("/%s", obj->value.name);
+ break;
+
+ case CUPS_PS_NUMBER :
+ printf("%g", obj->value.number);
+ break;
+
+ case CUPS_PS_STRING :
+ printf("(%s)", obj->value.string);
+ break;
+
+ case CUPS_PS_BOOLEAN :
+ if (obj->value.boolean)
+ fputs("true", stdout);
+ else
+ fputs("false", stdout);
+ break;
+
+ case CUPS_PS_NULL :
+ fputs("null", stdout);
+ break;
+
+ case CUPS_PS_START_ARRAY :
+ fputs("[", stdout);
+ break;
+
+ case CUPS_PS_END_ARRAY :
+ fputs("]", stdout);
+ break;
+
+ case CUPS_PS_START_DICT :
+ fputs("<<", stdout);
+ break;
+
+ case CUPS_PS_END_DICT :
+ fputs(">>", stdout);
+ break;
+
+ case CUPS_PS_START_PROC :
+ fputs("{", stdout);
+ break;
+
+ case CUPS_PS_END_PROC :
+ fputs("}", stdout);
+ break;
+
+ case CUPS_PS_CLEARTOMARK :
+ fputs("--cleartomark--", stdout);
+ break;
+
+ case CUPS_PS_COPY :
+ fputs("--copy--", stdout);
+ break;
+
+ case CUPS_PS_DUP :
+ fputs("--dup--", stdout);
+ break;
+
+ case CUPS_PS_INDEX :
+ fputs("--index--", stdout);
+ break;
+
+ case CUPS_PS_POP :
+ fputs("--pop--", stdout);
+ break;
+
+ case CUPS_PS_ROLL :
+ fputs("--roll--", stdout);
+ break;
+
+ case CUPS_PS_SETPAGEDEVICE :
+ fputs("--setpagedevice--", stdout);
+ break;
+
+ case CUPS_PS_STOPPED :
+ fputs("--stopped--", stdout);
+ break;
+
+ case CUPS_PS_OTHER :
+ printf("--%s--", obj->value.other);
+ break;
+ }
+}
+
+
+/*
+ * 'DEBUG_stack()' - Print a stack...
+ */
+
+static void
+DEBUG_stack(_cups_ps_stack_t *st) /* I - Stack */
+{
+ int c; /* Looping var */
+ _cups_ps_obj_t *obj; /* Current object on stack */
+
+
+ for (obj = st->objs, c = st->num_objs; c > 0; c --, obj ++)
+ {
+ putchar(' ');
+ DEBUG_object(obj);
+ }
+
+ putchar('\n');
+}
+#endif /* DEBUG */
+
+
/*
- * End of "$Id: interpret.c 5926 2006-09-05 20:45:47Z mike $".
+ * End of "$Id: interpret.c 6282 2007-02-14 16:33:54Z mike $".
*/
_cupsImageZoomDelete
_cupsImageZoomFill
_cupsImageZoomNew
+_cupsRasterExecPS
/*
- * "$Id: pstops.c 6094 2006-11-14 16:54:50Z mike $"
+ * "$Id: pstops.c 6247 2007-02-07 20:54:37Z mike $"
*
* PostScript filter for the Common UNIX Printing System (CUPS).
*
- * Copyright 1993-2006 by Easy Software Products.
+ * Copyright 1993-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
size_t linesize);
static void start_nup(pstops_doc_t *doc, int number,
int show_border, const int *bounding_box);
+static void write_label_prolog(pstops_doc_t *doc, const char *label,
+ float bottom, float top,
+ float width);
static void write_labels(pstops_doc_t *doc, int orient);
else if (!strncmp(line, "%%For:", 6))
{
saw_for = 1;
- printf("%s\n", line);
+ doc_printf(doc, "%s\n", line);
}
else if (!strncmp(line, "%%Title:", 8))
{
saw_title = 1;
- printf("%s\n", line);
+ doc_printf(doc, "%s\n", line);
}
else if (!strncmp(line, "%cupsRotation:", 14))
{
break;
}
else if (strncmp(line, "%!", 2) && strncmp(line, "%cups", 5))
- printf("%s\n", line);
+ doc_printf(doc, "%s\n", line);
if ((linelen = cupsFileGetLine(fp, line, linesize)) == 0)
break;
* that are required...
*/
- printf("%%%%Requirements: numcopies(%d)%s%s\n", doc->copies,
- doc->collate ? " collate" : "",
- Duplex ? " duplex" : "");
+ doc_printf(doc, "%%%%Requirements: numcopies(%d)%s%s\n", doc->copies,
+ doc->collate ? " collate" : "",
+ Duplex ? " duplex" : "");
/*
* Apple uses RBI comments for various non-PPD options...
*/
- printf("%%RBINumCopies: %d\n", doc->copies);
+ doc_printf(doc, "%%RBINumCopies: %d\n", doc->copies);
}
else
{
*/
if (Duplex)
- puts("%%Requirements: duplex");
+ doc_puts(doc, "%%Requirements: duplex\n");
/*
* Apple uses RBI comments for various non-PPD options...
*/
- puts("%RBINumCopies: 1");
+ doc_puts(doc, "%RBINumCopies: 1\n");
}
- puts("%%Pages: (atend)");
- puts("%%BoundingBox: (atend)");
- puts("%%EndComments");
+ doc_puts(doc, "%%Pages: (atend)\n");
+ doc_puts(doc, "%%BoundingBox: (atend)\n");
+ doc_puts(doc, "%%EndComments\n");
return (linelen);
}
while (strncmp(line, "%%Page:", 7) && strncmp(line, "%%Trailer", 9))
{
- fwrite(line, 1, linelen, stdout);
+ doc_write(doc, line, linelen);
if ((linelen = cupsFileGetLine(fp, line, linesize)) == 0)
break;
* for the JCL options...
*/
- if (!doc->saw_eof)
- puts("%%EOF");
-
- if (doc->emit_jcl)
+ if (number && doc->emit_jcl && ppd && ppd->jcl_end)
{
- if (ppd && ppd->jcl_end)
- ppdEmitJCLEnd(ppd, stdout);
+ /*
+ * Send the trailer...
+ */
+
+ puts("%%Trailer");
+ printf("%%%%Pages: %d\n", cupsArrayCount(doc->pages));
+ if (doc->number_up > 1 || doc->fitplot)
+ printf("%%%%BoundingBox: %.0f %.0f %.0f %.0f\n",
+ PageLeft, PageBottom, PageRight, PageTop);
else
- putchar(0x04);
+ printf("%%%%BoundingBox: %d %d %d %d\n",
+ doc->new_bounding_box[0], doc->new_bounding_box[1],
+ doc->new_bounding_box[2], doc->new_bounding_box[3]);
+ puts("%%EOF");
+ /*
+ * Start a new document...
+ */
+
+ ppdEmitJCLEnd(ppd, stdout);
ppdEmitJCL(ppd, stdout, doc->job_id, doc->user, doc->title);
- }
- puts("%!PS-Adobe-3.0");
- puts("%%Pages: (atend)");
- puts("%%BoundingBox: (atend)");
- puts("%%EndComments");
+ puts("%!PS-Adobe-3.0");
+
+ pageinfo = (pstops_page_t *)cupsArrayFirst(doc->pages);
+ copy_bytes(doc->temp, 0, pageinfo->offset);
+
+ number = 0;
+ }
/*
* Then copy all of the pages...
memcpy(bounding_box, doc->bounding_box,
sizeof(bounding_box));
}
- else if (doc->number_up == 1 && !doc->fitplot)
+ else if (doc->number_up == 1 && !doc->fitplot && Orientation)
{
int temp_bbox[4]; /* Temporary bounding box */
+ memcpy(temp_bbox, bounding_box, sizeof(temp_bbox));
+
+ fprintf(stderr, "DEBUG: Orientation = %d\n", Orientation);
+ fprintf(stderr, "DEBUG: original bounding_box = [ %d %d %d %d ]\n",
+ bounding_box[0], bounding_box[1],
+ bounding_box[2], bounding_box[3]);
+ fprintf(stderr, "DEBUG: PageWidth = %.1f, PageLength = %.1f\n",
+ PageWidth, PageLength);
+
switch (Orientation)
{
- case 0 : /* Portrait */
- break;
-
case 1 : /* Landscape */
- temp_bbox[0] = PageWidth - bounding_box[3];
- temp_bbox[1] = bounding_box[0];
- temp_bbox[2] = PageWidth - bounding_box[1];
- temp_bbox[3] = bounding_box[2];
-
- memcpy(bounding_box, temp_bbox, sizeof(bounding_box));
+ bounding_box[0] = PageLength - temp_bbox[3];
+ bounding_box[1] = temp_bbox[0];
+ bounding_box[2] = PageLength - temp_bbox[1];
+ bounding_box[3] = temp_bbox[2];
break;
case 2 : /* Reverse Portrait */
- temp_bbox[0] = PageWidth - bounding_box[0];
- temp_bbox[1] = PageLength - bounding_box[1];
- temp_bbox[2] = PageWidth - bounding_box[2];
- temp_bbox[3] = PageLength - bounding_box[3];
-
- memcpy(bounding_box, temp_bbox, sizeof(bounding_box));
+ bounding_box[0] = PageWidth - temp_bbox[2];
+ bounding_box[1] = PageLength - temp_bbox[3];
+ bounding_box[2] = PageWidth - temp_bbox[0];
+ bounding_box[3] = PageLength - temp_bbox[1];
break;
case 3 : /* Reverse Landscape */
- temp_bbox[0] = bounding_box[1];
- temp_bbox[1] = PageLength - bounding_box[2];
- temp_bbox[2] = bounding_box[3];
- temp_bbox[3] = PageLength - bounding_box[0];
-
- memcpy(bounding_box, temp_bbox, sizeof(bounding_box));
+ bounding_box[0] = temp_bbox[1];
+ bounding_box[1] = PageWidth - temp_bbox[2];
+ bounding_box[2] = temp_bbox[3];
+ bounding_box[3] = PageWidth - temp_bbox[0];
break;
}
+
+ fprintf(stderr, "DEBUG: updated bounding_box = [ %d %d %d %d ]\n",
+ bounding_box[0], bounding_box[1],
+ bounding_box[2], bounding_box[3]);
}
}
#if 0
if (!strncmp(line, "%%BeginSetup", 12) || !strncmp(line, "%%Page:", 7))
break;
- fwrite(line, 1, linelen, stdout);
+ doc_write(doc, line, linelen);
if ((linelen = cupsFileGetLine(fp, line, linesize)) == 0)
break;
}
- puts("%%BeginProlog");
+ doc_puts(doc, "%%BeginProlog\n");
do_prolog(doc, ppd);
!strncmp(line, "%%Page:", 7))
break;
- fwrite(line, 1, linelen, stdout);
+ doc_write(doc, line, linelen);
}
if (!strncmp(line, "%%EndProlog", 11))
fputs("ERROR: Missing %%EndProlog!\n", stderr);
}
- puts("%%EndProlog");
+ doc_puts(doc, "%%EndProlog\n");
return (linelen);
}
if (!strncmp(line, "%%Page:", 7))
break;
- fwrite(line, 1, linelen, stdout);
+ doc_write(doc, line, linelen);
if ((linelen = cupsFileGetLine(fp, line, linesize)) == 0)
break;
}
- puts("%%BeginSetup");
+ doc_puts(doc, "%%BeginSetup\n");
do_setup(doc, ppd);
&(doc->options));
}
else if (strncmp(line, "%%BeginSetup", 12))
- fwrite(line, 1, linelen, stdout);
+ doc_write(doc, line, linelen);
if ((linelen = cupsFileGetLine(fp, line, linesize)) == 0)
break;
fputs("ERROR: Missing %%EndSetup!\n", stderr);
}
- puts("%%EndSetup");
+ doc_puts(doc, "%%EndSetup\n");
return (linelen);
}
do_prolog(pstops_doc_t *doc, /* I - Document information */
ppd_file_t *ppd) /* I - PPD file */
{
+ char *ps; /* PS commands */
+
+
/*
* Send the document prolog commands...
*/
if (ppd && ppd->patches)
{
- puts("%%BeginFeature: *JobPatchFile 1");
- puts(ppd->patches);
- puts("%%EndFeature");
+ doc_puts(doc, "%%BeginFeature: *JobPatchFile 1\n");
+ doc_puts(doc, ppd->patches);
+ doc_puts(doc, "\n%%EndFeature\n");
}
- ppdEmit(ppd, stdout, PPD_ORDER_PROLOG);
+ if ((ps = ppdEmitString(ppd, PPD_ORDER_PROLOG, 0.0)) != NULL)
+ {
+ doc_puts(doc, ps);
+ free(ps);
+ }
/*
* Define ESPshowpage here so that applications that define their
*/
if (doc->use_ESPshowpage)
- puts("userdict/ESPshowpage/showpage load put\n"
- "userdict/showpage{}put");
-
+ doc_puts(doc, "userdict/ESPshowpage/showpage load put\n"
+ "userdict/showpage{}put\n");
}
do_setup(pstops_doc_t *doc, /* I - Document information */
ppd_file_t *ppd) /* I - PPD file */
{
+ char *ps; /* PS commands */
+
+
/*
* Disable CTRL-D so that embedded files don't cause printing
* errors...
*/
- puts("% Disable CTRL-D as an end-of-file marker...");
- puts("userdict dup(\\004)cvn{}put (\\004\\004)cvn{}put");
+ doc_puts(doc, "% Disable CTRL-D as an end-of-file marker...\n");
+ doc_puts(doc, "userdict dup(\\004)cvn{}put (\\004\\004)cvn{}put\n");
/*
* Mark any options from %%IncludeFeature: comments...
* Send all the printer-specific setup commands...
*/
- ppdEmit(ppd, stdout, PPD_ORDER_DOCUMENT);
- ppdEmit(ppd, stdout, PPD_ORDER_ANY);
+ if ((ps = ppdEmitString(ppd, PPD_ORDER_DOCUMENT, 0.0)) != NULL)
+ {
+ doc_puts(doc, ps);
+ free(ps);
+ }
+
+ if ((ps = ppdEmitString(ppd, PPD_ORDER_ANY, 0.0)) != NULL)
+ {
+ doc_puts(doc, ps);
+ free(ps);
+ }
/*
* Set the number of copies for the job...
if (doc->copies != 1 && (!doc->collate || !doc->slow_collate))
{
- printf("%%RBIBeginNonPPDFeature: *NumCopies %d\n", doc->copies);
- printf("%d/languagelevel where{pop languagelevel 2 ge}{false}ifelse\n"
- "{1 dict begin/NumCopies exch def currentdict end setpagedevice}\n"
- "{userdict/#copies 3 -1 roll put}ifelse\n", doc->copies);
- puts("%RBIEndNonPPDFeature");
+ doc_printf(doc, "%%RBIBeginNonPPDFeature: *NumCopies %d\n", doc->copies);
+ doc_printf(doc,
+ "%d/languagelevel where{pop languagelevel 2 ge}{false}ifelse\n"
+ "{1 dict begin/NumCopies exch def currentdict end "
+ "setpagedevice}\n"
+ "{userdict/#copies 3 -1 roll put}ifelse\n", doc->copies);
+ doc_puts(doc, "%RBIEndNonPPDFeature\n");
}
/*
*/
if (doc->number_up > 1)
- puts("userdict/setpagedevice{pop}bind put");
+ doc_puts(doc, "userdict/setpagedevice{pop}bind put\n");
/*
* Changes to the transfer function must be made AFTER any
*/
if (doc->gamma != 1.0f || doc->brightness != 1.0f)
- printf("{ neg 1 add dup 0 lt { pop 1 } { %.3f exp neg 1 add } "
- "ifelse %.3f mul } bind settransfer\n", doc->gamma,
- doc->brightness);
+ doc_printf(doc, "{ neg 1 add dup 0 lt { pop 1 } { %.3f exp neg 1 add } "
+ "ifelse %.3f mul } bind settransfer\n",
+ doc->gamma, doc->brightness);
/*
* Make sure we have rectclip and rectstroke procedures of some sort...
*/
- WriteCommon();
+ doc_puts(doc,
+ "% x y w h ESPrc - Clip to a rectangle.\n"
+ "userdict/ESPrc/rectclip where{pop/rectclip load}\n"
+ "{{newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto\n"
+ "neg 0 rlineto closepath clip newpath}bind}ifelse put\n");
+
+ doc_puts(doc,
+ "% x y w h ESPrf - Fill a rectangle.\n"
+ "userdict/ESPrf/rectfill where{pop/rectfill load}\n"
+ "{{gsave newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto\n"
+ "neg 0 rlineto closepath fill grestore}bind}ifelse put\n");
+
+ doc_puts(doc,
+ "% x y w h ESPrs - Stroke a rectangle.\n"
+ "userdict/ESPrs/rectstroke where{pop/rectstroke load}\n"
+ "{{gsave newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto\n"
+ "neg 0 rlineto closepath stroke grestore}bind}ifelse put\n");
/*
* Write the page and label prologs...
*/
if (Orientation & 1)
- WriteLabelProlog(doc->page_label, PageBottom,
- PageWidth - PageLength + PageTop, PageLength);
+ write_label_prolog(doc, doc->page_label, PageBottom,
+ PageWidth - PageLength + PageTop, PageLength);
else
- WriteLabelProlog(doc->page_label, PageLeft, PageRight, PageLength);
+ write_label_prolog(doc, doc->page_label, PageLeft, PageRight,
+ PageLength);
}
else
- WriteLabelProlog(doc->page_label, PageBottom, PageTop, PageWidth);
+ write_label_prolog(doc, doc->page_label, PageBottom, PageTop, PageWidth);
}
}
+/*
+ * 'write_label_prolog()' - Write the prolog with the classification
+ * and page label.
+ */
+
+static void
+write_label_prolog(pstops_doc_t *doc, /* I - Document info */
+ const char *label, /* I - Page label */
+ float bottom, /* I - Bottom position in points */
+ float top, /* I - Top position in points */
+ float width) /* I - Width in points */
+{
+ const char *classification; /* CLASSIFICATION environment variable */
+ const char *ptr; /* Temporary string pointer */
+
+
+ /*
+ * First get the current classification...
+ */
+
+ if ((classification = getenv("CLASSIFICATION")) == NULL)
+ classification = "";
+ if (strcmp(classification, "none") == 0)
+ classification = "";
+
+ /*
+ * If there is nothing to show, bind an empty 'write labels' procedure
+ * and return...
+ */
+
+ if (!classification[0] && (label == NULL || !label[0]))
+ {
+ doc_puts(doc, "userdict/ESPwl{}bind put\n");
+ return;
+ }
+
+ /*
+ * Set the classification + page label string...
+ */
+
+ doc_puts(doc, "userdict");
+ if (!strcmp(classification, "confidential"))
+ doc_puts(doc, "/ESPpl(CONFIDENTIAL");
+ else if (!strcmp(classification, "classified"))
+ doc_puts(doc, "/ESPpl(CLASSIFIED");
+ else if (!strcmp(classification, "secret"))
+ doc_puts(doc, "/ESPpl(SECRET");
+ else if (!strcmp(classification, "topsecret"))
+ doc_puts(doc, "/ESPpl(TOP SECRET");
+ else if (!strcmp(classification, "unclassified"))
+ doc_puts(doc, "/ESPpl(UNCLASSIFIED");
+ else
+ {
+ doc_puts(doc, "/ESPpl(");
+
+ for (ptr = classification; *ptr; ptr ++)
+ {
+ if (*ptr < 32 || *ptr > 126)
+ doc_printf(doc, "\\%03o", *ptr);
+ else if (*ptr == '_')
+ doc_puts(doc, " ");
+ else if (*ptr == '(' || *ptr == ')' || *ptr == '\\')
+ doc_printf(doc, "\\%c", *ptr);
+ else
+ doc_printf(doc, "%c", *ptr);
+ }
+ }
+
+ if (label)
+ {
+ if (classification[0])
+ doc_puts(doc, " - ");
+
+ /*
+ * Quote the label string as needed...
+ */
+
+ for (ptr = label; *ptr; ptr ++)
+ {
+ if (*ptr < 32 || *ptr > 126)
+ doc_printf(doc, "\\%03o", *ptr);
+ else if (*ptr == '(' || *ptr == ')' || *ptr == '\\')
+ doc_printf(doc, "\\%c", *ptr);
+ else
+ doc_printf(doc, "%c", *ptr);
+ }
+ }
+
+ doc_puts(doc, ")put\n");
+
+ /*
+ * Then get a 14 point Helvetica-Bold font...
+ */
+
+ doc_puts(doc, "userdict/ESPpf /Helvetica-Bold findfont 14 scalefont put\n");
+
+ /*
+ * Finally, the procedure to write the labels on the page...
+ */
+
+ doc_puts(doc, "userdict/ESPwl{\n");
+ doc_puts(doc, " ESPpf setfont\n");
+ doc_printf(doc, " ESPpl stringwidth pop dup 12 add exch -0.5 mul %.0f add\n",
+ width * 0.5f);
+ doc_puts(doc, " 1 setgray\n");
+ doc_printf(doc, " dup 6 sub %.0f 3 index 20 ESPrf\n", bottom - 2.0);
+ doc_printf(doc, " dup 6 sub %.0f 3 index 20 ESPrf\n", top - 18.0);
+ doc_puts(doc, " 0 setgray\n");
+ doc_printf(doc, " dup 6 sub %.0f 3 index 20 ESPrs\n", bottom - 2.0);
+ doc_printf(doc, " dup 6 sub %.0f 3 index 20 ESPrs\n", top - 18.0);
+ doc_printf(doc, " dup %.0f moveto ESPpl show\n", bottom + 2.0);
+ doc_printf(doc, " %.0f moveto ESPpl show\n", top - 14.0);
+ doc_puts(doc, "pop\n");
+ doc_puts(doc, "}bind put\n");
+}
+
+
/*
* 'write_labels()' - Write the actual page labels.
*
/*
- * End of "$Id: pstops.c 6094 2006-11-14 16:54:50Z mike $".
+ * End of "$Id: pstops.c 6247 2007-02-07 20:54:37Z mike $".
*/
/*
- * "$Id: raster.h 6061 2006-10-23 00:26:52Z mike $"
+ * "$Id: raster.h 6158 2006-12-17 01:44:21Z mike $"
*
* Raster file definitions for the Common UNIX Printing System (CUPS).
*
* Types...
*/
-typedef enum cups_mode_e /**** Raster modes ****/
-{
- CUPS_RASTER_READ = 0, /* Open stream for reading */
- CUPS_RASTER_WRITE = 1 /* Open stream for writing */
-} cups_mode_t;
-
-typedef enum cups_bool_e /**** Boolean type ****/
-{
- CUPS_FALSE = 0, /* Logical false */
- CUPS_TRUE = 1 /* Logical true */
-} cups_bool_t;
-
-typedef enum cups_jog_e /**** Jog attribute values ****/
-{
- CUPS_JOG_NONE = 0, /* Never move pages */
- CUPS_JOG_FILE = 1, /* Move pages after this file */
- CUPS_JOG_JOB = 2, /* Move pages after this job */
- CUPS_JOG_SET = 3 /* Move pages after this set */
-} cups_jog_t;
-
-typedef enum cups_orient_e /**** Orientation attribute values ****/
-{
- CUPS_ORIENT_0 = 0, /* Don't rotate the page */
- CUPS_ORIENT_90 = 1, /* Rotate the page counter-clockwise */
- CUPS_ORIENT_180 = 2, /* Turn the page upside down */
- CUPS_ORIENT_270 = 3 /* Rotate the page clockwise */
-} cups_orient_t;
-
-typedef enum cups_cut_e /**** CutMedia attribute values ****/
-{
- CUPS_CUT_NONE = 0, /* Never cut the roll */
- CUPS_CUT_FILE = 1, /* Cut the roll after this file */
- CUPS_CUT_JOB = 2, /* Cut the roll after this job */
- CUPS_CUT_SET = 3, /* Cut the roll after this set */
- CUPS_CUT_PAGE = 4 /* Cut the roll after this page */
-} cups_cut_t;
-
typedef enum cups_adv_e /**** AdvanceMedia attribute values ****/
{
CUPS_ADVANCE_NONE = 0, /* Never advance the roll */
CUPS_ADVANCE_PAGE = 4 /* Advance the roll after this page */
} cups_adv_t;
-typedef enum cups_edge_e /**** LeadingEdge attribute values ****/
-{
- CUPS_EDGE_TOP = 0, /* Leading edge is the top of the page */
- CUPS_EDGE_RIGHT = 1, /* Leading edge is the right of the page */
- CUPS_EDGE_BOTTOM = 2, /* Leading edge is the bottom of the page */
- CUPS_EDGE_LEFT = 3 /* Leading edge is the left of the page */
-} cups_edge_t;
-
-typedef enum cups_order_e /**** cupsColorOrder attribute values ****/
+typedef enum cups_bool_e /**** Boolean type ****/
{
- CUPS_ORDER_CHUNKED = 0, /* CMYK CMYK CMYK ... */
- CUPS_ORDER_BANDED = 1, /* CCC MMM YYY KKK ... */
- CUPS_ORDER_PLANAR = 2 /* CCC ... MMM ... YYY ... KKK ... */
-} cups_order_t;
+ CUPS_FALSE = 0, /* Logical false */
+ CUPS_TRUE = 1 /* Logical true */
+} cups_bool_t;
typedef enum cups_cspace_e /**** cupsColorSpace attribute values ****/
{
CUPS_CSPACE_ICCF = 46 /* ICC-based, 15 colors @since CUPS 1.1.19@ */
} cups_cspace_t;
+typedef enum cups_cut_e /**** CutMedia attribute values ****/
+{
+ CUPS_CUT_NONE = 0, /* Never cut the roll */
+ CUPS_CUT_FILE = 1, /* Cut the roll after this file */
+ CUPS_CUT_JOB = 2, /* Cut the roll after this job */
+ CUPS_CUT_SET = 3, /* Cut the roll after this set */
+ CUPS_CUT_PAGE = 4 /* Cut the roll after this page */
+} cups_cut_t;
+
+typedef enum cups_edge_e /**** LeadingEdge attribute values ****/
+{
+ CUPS_EDGE_TOP = 0, /* Leading edge is the top of the page */
+ CUPS_EDGE_RIGHT = 1, /* Leading edge is the right of the page */
+ CUPS_EDGE_BOTTOM = 2, /* Leading edge is the bottom of the page */
+ CUPS_EDGE_LEFT = 3 /* Leading edge is the left of the page */
+} cups_edge_t;
+
+typedef enum cups_jog_e /**** Jog attribute values ****/
+{
+ CUPS_JOG_NONE = 0, /* Never move pages */
+ CUPS_JOG_FILE = 1, /* Move pages after this file */
+ CUPS_JOG_JOB = 2, /* Move pages after this job */
+ CUPS_JOG_SET = 3 /* Move pages after this set */
+} cups_jog_t;
+
+typedef enum cups_mode_e /**** Raster modes ****/
+{
+ CUPS_RASTER_READ = 0, /* Open stream for reading */
+ CUPS_RASTER_WRITE = 1 /* Open stream for writing */
+} cups_mode_t;
+
+typedef enum cups_order_e /**** cupsColorOrder attribute values ****/
+{
+ CUPS_ORDER_CHUNKED = 0, /* CMYK CMYK CMYK ... */
+ CUPS_ORDER_BANDED = 1, /* CCC MMM YYY KKK ... */
+ CUPS_ORDER_PLANAR = 2 /* CCC ... MMM ... YYY ... KKK ... */
+} cups_order_t;
+
+typedef enum cups_orient_e /**** Orientation attribute values ****/
+{
+ CUPS_ORIENT_0 = 0, /* Don't rotate the page */
+ CUPS_ORIENT_90 = 1, /* Rotate the page counter-clockwise */
+ CUPS_ORIENT_180 = 2, /* Turn the page upside down */
+ CUPS_ORIENT_270 = 3 /* Rotate the page clockwise */
+} cups_orient_t;
+
/*
* The page header structure contains the standard PostScript page device
#endif /* !_CUPS_RASTER_H_ */
/*
- * End of "$Id: raster.h 6061 2006-10-23 00:26:52Z mike $".
+ * End of "$Id: raster.h 6158 2006-12-17 01:44:21Z mike $".
*/
/*
- * "$Id: rastertolabel.c 5703 2006-06-29 18:12:04Z mike $"
+ * "$Id: rastertolabel.c 6236 2007-02-05 21:04:04Z mike $"
*
* Label printer filter for the Common UNIX Printing System (CUPS).
*
- * Copyright 2001-2006 by Easy Software Products.
+ * Copyright 2001-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
*/
unsigned char *Buffer; /* Output buffer */
-char *CompBuffer; /* Compression buffer */
+unsigned char *CompBuffer; /* Compression buffer */
unsigned char *LastBuffer; /* Last buffer */
int LastSet; /* Number of repeat characters */
int ModelNumber, /* cupsModelNumber attribute */
* Run-length compress the graphics...
*/
- for (compptr = CompBuffer, repeat_char = CompBuffer[0], repeat_count = 1;
+ for (compptr = CompBuffer + 1, repeat_char = CompBuffer[0], repeat_count = 1;
*compptr;
compptr ++)
if (*compptr == repeat_char)
*/
if (repeat_count & 1)
+ {
+ repeat_count --;
putchar('0');
+ }
- putchar(',');
+ if (repeat_count > 0)
+ putchar(',');
}
else
ZPLCompress(repeat_char, repeat_count);
+ fflush(stdout);
+
/*
* Save this line for the next round...
*/
* and return.
*/
- fputs("ERROR: rastertodymo job-id user title copies options [file]\n", stderr);
+ fputs("ERROR: rastertolabel job-id user title copies options [file]\n", stderr);
return (1);
}
/*
- * End of "$Id: rastertolabel.c 5703 2006-06-29 18:12:04Z mike $".
+ * End of "$Id: rastertolabel.c 6236 2007-02-05 21:04:04Z mike $".
*/
/*
- * "$Id: testraster.c 4545 2005-06-21 19:26:28Z mike $"
+ * "$Id: testraster.c 6158 2006-12-17 01:44:21Z mike $"
*
* Raster test program routines for the Common UNIX Printing System (CUPS).
*
*
* Contents:
*
+ * main() - Test the raster functions.
+ * print_changes() - Print differences in the page header.
*/
/*
* Include necessary headers...
*/
-#include "raster.h"
+#include "image-private.h"
#include <stdlib.h>
#include <cups/string.h>
/*
- * 'main()' - Test the raster read/write functions.
+ * Test PS commands and header...
+ */
+
+static const char *test_code =
+"<<"
+"/MediaClass(Media Class)"
+"/MediaColor((Media Color))"
+"/MediaType(Media\\\\Type)"
+"/OutputType<416263>"
+"/AdvanceDistance 1000"
+"/AdvanceMedia 1"
+"/Collate false"
+"/CutMedia 2"
+"/Duplex true"
+"/HWResolution[100 200]"
+"/InsertSheet true"
+"/Jog 3"
+"/LeadingEdge 1"
+"/ManualFeed true"
+"/MediaPosition 8#777"
+"/MediaWeight 16#fe01"
+"/MirrorPrint true"
+"/NegativePrint true"
+"/NumCopies 1"
+"/Orientation 1"
+"/OutputFaceUp true"
+"/PageSize[612 792.1]"
+"/Separations true"
+"/TraySwitch true"
+"/Tumble true"
+"/cupsMediaType 2"
+"/cupsColorOrder 1"
+"/cupsColorSpace 1"
+"/cupsCompression 1"
+"/cupsRowCount 1"
+"/cupsRowFeed 1"
+"/cupsRowStep 1"
+"/cupsBorderlessScalingFactor 1.001"
+"/cupsInteger0 1"
+"/cupsInteger1 2"
+"/cupsInteger2 3"
+"/cupsInteger3 4"
+"/cupsInteger4 5"
+"/cupsInteger5 6"
+"/cupsInteger6 7"
+"/cupsInteger7 8"
+"/cupsInteger8 9"
+"/cupsInteger9 10"
+"/cupsInteger10 11"
+"/cupsInteger11 12"
+"/cupsInteger12 13"
+"/cupsInteger13 14"
+"/cupsInteger14 15"
+"/cupsInteger15 16"
+"/cupsReal0 1.1"
+"/cupsReal1 2.1"
+"/cupsReal2 3.1"
+"/cupsReal3 4.1"
+"/cupsReal4 5.1"
+"/cupsReal5 6.1"
+"/cupsReal6 7.1"
+"/cupsReal7 8.1"
+"/cupsReal8 9.1"
+"/cupsReal9 10.1"
+"/cupsReal10 11.1"
+"/cupsReal11 12.1"
+"/cupsReal12 13.1"
+"/cupsReal13 14.1"
+"/cupsReal14 15.1"
+"/cupsReal15 16.1"
+"/cupsString0(1)"
+"/cupsString1(2)"
+"/cupsString2(3)"
+"/cupsString3(4)"
+"/cupsString4(5)"
+"/cupsString5(6)"
+"/cupsString6(7)"
+"/cupsString7(8)"
+"/cupsString8(9)"
+"/cupsString9(10)"
+"/cupsString10(11)"
+"/cupsString11(12)"
+"/cupsString12(13)"
+"/cupsString13(14)"
+"/cupsString14(15)"
+"/cupsString15(16)"
+"/cupsMarkerType(Marker Type)"
+"/cupsRenderingIntent(Rendering Intent)"
+"/cupsPageSizeName(Letter)"
+"/cupsPreferredBitsPerColor 17"
+">> setpagedevice";
+
+static cups_page_header2_t test_header =
+{
+ "Media Class", /* MediaClass */
+ "(Media Color)", /* MediaColor */
+ "Media\\Type", /* MediaType */
+ "Abc", /* OutputType */
+ 1000, /* AdvanceDistance */
+ CUPS_ADVANCE_FILE, /* AdvanceMedia */
+ CUPS_FALSE, /* Collate */
+ CUPS_CUT_JOB, /* CutMedia */
+ CUPS_TRUE, /* Duplex */
+ { 100, 200 }, /* HWResolution */
+ { 0, 0, 0, 0 }, /* ImagingBoundingBox */
+ CUPS_TRUE, /* InsertSheet */
+ CUPS_JOG_SET, /* Jog */
+ CUPS_EDGE_RIGHT, /* LeadingEdge */
+ { 0, 0 }, /* Margins */
+ CUPS_TRUE, /* ManualFeed */
+ 0777, /* MediaPosition */
+ 0xfe01, /* MediaWeight */
+ CUPS_TRUE, /* MirrorPrint */
+ CUPS_TRUE, /* NegativePrint */
+ 1, /* NumCopies */
+ CUPS_ORIENT_90, /* Orientation */
+ CUPS_TRUE, /* OutputFaceUp */
+ { 612, 792 }, /* PageSize */
+ CUPS_TRUE, /* Separations */
+ CUPS_TRUE, /* TraySwitch */
+ CUPS_TRUE, /* Tumble */
+ 0, /* cupsWidth */
+ 0, /* cupsHeight */
+ 2, /* cupsMediaType */
+ 0, /* cupsBitsPerColor */
+ 0, /* cupsBitsPerPixel */
+ 0, /* cupsBytesPerLine */
+ CUPS_ORDER_BANDED, /* cupsColorOrder */
+ CUPS_CSPACE_RGB, /* cupsColorSpace */
+ 1, /* cupsCompression */
+ 1, /* cupsRowCount */
+ 1, /* cupsRowFeed */
+ 1, /* cupsRowStep */
+ 0, /* cupsNumColors */
+ 1.001, /* cupsBorderlessScalingFactor */
+ { 612.0, 792.1 }, /* cupsPageSize */
+ { 0.0, 0.0, 0.0, 0.0 }, /* cupsImagingBBox */
+ { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 },
+ /* cupsInteger[16] */
+ { 1.1, 2.1, 3.1, 4.1, 5.1, 6.1, 7.1, 8.1, 9.1, 10.1, 11.1, 12.1, 13.1,
+ 14.1, 15.1, 16.1 }, /* cupsReal[16] */
+ { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13",
+ "14", "15", "16" }, /* cupsString[16] */
+ "Marker Type", /* cupsMarkerType */
+ "Rendering Intent", /* cupsRenderingIntent */
+ "Letter" /* cupsPageSizeName */
+};
+
+
+/*
+ * Local functions...
+ */
+
+static void print_changes(cups_page_header2_t *header,
+ cups_page_header2_t *expected);
+
+
+/*
+ * 'main()' - Test the raster functions.
*/
int /* O - Exit status */
int page, x, y; /* Looping vars */
FILE *fp; /* Raster file */
cups_raster_t *r; /* Raster stream */
- cups_page_header2_t header; /* Page header */
+ cups_page_header2_t header, /* Page header */
+ expected; /* Expected page header */
unsigned char data[2048]; /* Raster data */
+ int preferred_bits; /* Preferred bits */
+ int errors; /* Number of errors */
+
+
+ errors = 0;
+
+ /*
+ * Test PS exec code...
+ */
+
+ fputs("_cupsRasterExecPS(\"setpagedevice\"): ", stdout);
+ fflush(stdout);
+
+ memset(&header, 0, sizeof(header));
+ header.Collate = CUPS_TRUE;
+ preferred_bits = 0;
+
+ if (_cupsRasterExecPS(&header, &preferred_bits, test_code))
+ {
+ puts("FAIL (error from function)");
+ errors ++;
+ }
+ else if (preferred_bits != 17 || memcmp(&header, &test_header, sizeof(header)))
+ {
+ puts("FAIL (bad header)");
+
+ if (preferred_bits != 17)
+ printf(" cupsPreferredBitsPerColor %d, expected 17\n",
+ preferred_bits);
+
+ print_changes(&test_header, &header);
+ errors ++;
+ }
+ else
+ puts("PASS");
+
+ fputs("_cupsRasterExecPS(\"roll\"): ", stdout);
+ fflush(stdout);
+
+ if (_cupsRasterExecPS(&header, &preferred_bits,
+ "792 612 0 0 0\n"
+ "pop pop pop\n"
+ "<</PageSize[5 -2 roll]/ImagingBBox null>>"
+ "setpagedevice\n"))
+ {
+ puts("FAIL (error from function)");
+ errors ++;
+ }
+ else if (header.PageSize[0] != 792 || header.PageSize[1] != 612)
+ {
+ printf("FAIL (PageSize [%d %d], expected [792 612])\n", header.PageSize[0],
+ header.PageSize[1]);
+ errors ++;
+ }
+ else
+ puts("PASS");
+
+ fputs("_cupsRasterExecPS(\"dup index\"): ", stdout);
+ fflush(stdout);
+
+ if (_cupsRasterExecPS(&header, &preferred_bits,
+ "true false dup\n"
+ "<</Collate 4 index"
+ "/Duplex 5 index"
+ "/Tumble 6 index>>setpagedevice\n"
+ "pop pop pop"))
+ {
+ puts("FAIL (error from function)");
+ errors ++;
+ }
+ else
+ {
+ if (!header.Collate)
+ {
+ printf("FAIL (Collate false, expected true)\n");
+ errors ++;
+ }
+
+ if (header.Duplex)
+ {
+ printf("FAIL (Duplex true, expected false)\n");
+ errors ++;
+ }
+
+ if (header.Tumble)
+ {
+ printf("FAIL (Tumble true, expected false)\n");
+ errors ++;
+ }
+
+ if(header.Collate && !header.Duplex && !header.Tumble)
+ puts("PASS");
+ }
+
+#if 0
+ fputs("_cupsRasterExecPS(\"\"): ", stdout);
+ fflush(stdout);
+
+ if (_cupsRasterExecPS(&header, &preferred_bits,
+ ""))
+ {
+ puts("FAIL (error from function)");
+ errors ++;
+ }
+ else if (header.)
+ {
+ printf("FAIL ()\n");
+ errors ++;
+ }
+ else
+ puts("PASS");
+
+ fputs("_cupsRasterExecPS(\"\"): ", stdout);
+ fflush(stdout);
+
+ if (_cupsRasterExecPS(&header, &preferred_bits,
+ ""))
+ {
+ puts("FAIL (error from function)");
+ errors ++;
+ }
+ else if (header.)
+ {
+ printf("FAIL ()\n");
+ errors ++;
+ }
+ else
+ puts("PASS");
+
+ fputs("_cupsRasterExecPS(\"\"): ", stdout);
+ fflush(stdout);
+
+ if (_cupsRasterExecPS(&header, &preferred_bits,
+ ""))
+ {
+ puts("FAIL (error from function)");
+ errors ++;
+ }
+ else if (header.)
+ {
+ printf("FAIL ()\n");
+ errors ++;
+ }
+ else
+ puts("PASS");
+
+ fputs("_cupsRasterExecPS(\"\"): ", stdout);
+ fflush(stdout);
+
+ if (_cupsRasterExecPS(&header, &preferred_bits,
+ ""))
+ {
+ puts("FAIL (error from function)");
+ errors ++;
+ }
+ else if (header.)
+ {
+ printf("FAIL ()\n");
+ errors ++;
+ }
+ else
+ puts("PASS");
+
+ fputs("_cupsRasterExecPS(\"\"): ", stdout);
+ fflush(stdout);
+
+ if (_cupsRasterExecPS(&header, &preferred_bits,
+ ""))
+ {
+ puts("FAIL (error from function)");
+ errors ++;
+ }
+ else if (header.)
+ {
+ printf("FAIL ()\n");
+ errors ++;
+ }
+ else
+ puts("PASS");
+#endif /* 0 */
+
+ /*
+ * Test writing...
+ */
+ fputs("cupsRasterOpen(CUPS_RASTER_WRITE): ", stdout);
+ fflush(stdout);
if ((fp = fopen("test.raster", "wb")) == NULL)
{
- perror("Unable to create test.raster");
+ printf("FAIL (%s)\n", strerror(errno));
return (1);
}
if ((r = cupsRasterOpen(fileno(fp), CUPS_RASTER_WRITE)) == NULL)
{
- perror("Unable to create raster output stream");
+ printf("FAIL (%s)\n", strerror(errno));
fclose(fp);
return (1);
}
+ puts("PASS");
+
for (page = 0; page < 4; page ++)
{
memset(&header, 0, sizeof(header));
header.cupsBytesPerLine *= 2;
header.cupsColorSpace = CUPS_CSPACE_CMYK;
header.cupsColorOrder = CUPS_ORDER_CHUNKED;
+ header.cupsNumColors = 4;
}
else
{
header.cupsColorSpace = CUPS_CSPACE_K;
header.cupsColorOrder = CUPS_ORDER_BANDED;
+ header.cupsNumColors = 1;
}
if (page & 2)
header.cupsBitsPerPixel = (page & 1) ? 32 : 8;
}
- cupsRasterWriteHeader2(r, &header);
-
- memset(data, 0, header.cupsBytesPerLine);
- for (y = 0; y < 64; y ++)
- cupsRasterWritePixels(r, data, header.cupsBytesPerLine);
+ if (cupsRasterWriteHeader2(r, &header))
+ puts("cupsRasterWriteHeader2: PASS");
+ else
+ {
+ puts("cupsRasterWriteHeader2: FAIL");
+ errors ++;
+ }
- for (x = 0; x < header.cupsBytesPerLine; x ++)
- data[x] = x;
+ fputs("cupsRasterWritePixels: ", stdout);
+ fflush(stdout);
+ memset(data, 0, header.cupsBytesPerLine);
for (y = 0; y < 64; y ++)
- cupsRasterWritePixels(r, data, header.cupsBytesPerLine);
+ if (!cupsRasterWritePixels(r, data, header.cupsBytesPerLine))
+ break;
- memset(data, 255, header.cupsBytesPerLine);
- for (y = 0; y < 64; y ++)
- cupsRasterWritePixels(r, data, header.cupsBytesPerLine);
+ if (y < 64)
+ {
+ puts("FAIL");
+ errors ++;
+ }
+ else
+ {
+ for (x = 0; x < header.cupsBytesPerLine; x ++)
+ data[x] = x;
- for (x = 0; x < header.cupsBytesPerLine; x ++)
- data[x] = x / 4;
+ for (y = 0; y < 64; y ++)
+ if (!cupsRasterWritePixels(r, data, header.cupsBytesPerLine))
+ break;
- for (y = 0; y < 64; y ++)
- cupsRasterWritePixels(r, data, header.cupsBytesPerLine);
+ if (y < 64)
+ {
+ puts("FAIL");
+ errors ++;
+ }
+ else
+ {
+ memset(data, 255, header.cupsBytesPerLine);
+ for (y = 0; y < 64; y ++)
+ if (!cupsRasterWritePixels(r, data, header.cupsBytesPerLine))
+ break;
+
+ if (y < 64)
+ {
+ puts("FAIL");
+ errors ++;
+ }
+ else
+ {
+ for (x = 0; x < header.cupsBytesPerLine; x ++)
+ data[x] = x / 4;
+
+ for (y = 0; y < 64; y ++)
+ if (!cupsRasterWritePixels(r, data, header.cupsBytesPerLine))
+ break;
+
+ if (y < 64)
+ {
+ puts("FAIL");
+ errors ++;
+ }
+ else
+ puts("PASS");
+ }
+ }
+ }
}
cupsRasterClose(r);
fclose(fp);
+ /*
+ * Test reading...
+ */
+
+ fputs("cupsRasterOpen(CUPS_RASTER_READ): ", stdout);
+ fflush(stdout);
+
if ((fp = fopen("test.raster", "rb")) == NULL)
{
- perror("Unable to open test.raster");
+ printf("FAIL (%s)\n", strerror(errno));
return (1);
}
if ((r = cupsRasterOpen(fileno(fp), CUPS_RASTER_READ)) == NULL)
{
- perror("Unable to create raster input stream");
+ printf("FAIL (%s)\n", strerror(errno));
fclose(fp);
return (1);
}
+ puts("PASS");
+
for (page = 0; page < 4; page ++)
{
- cupsRasterReadHeader2(r, &header);
+ memset(&expected, 0, sizeof(expected));
+ expected.cupsWidth = 256;
+ expected.cupsHeight = 256;
+ expected.cupsBytesPerLine = 256;
- printf("Page %d:\n", page + 1);
- printf(" cupsWidth = %d\n", header.cupsWidth);
- printf(" cupsHeight = %d\n", header.cupsHeight);
- printf(" cupsBitsPerColor = %d\n", header.cupsBitsPerColor);
- printf(" cupsBitsPerPixel = %d\n", header.cupsBitsPerPixel);
- printf(" cupsColorSpace = %d\n", header.cupsColorSpace);
- printf(" cupsColorOrder = %d\n", header.cupsColorOrder);
- printf(" cupsBytesPerLine = %d\n", header.cupsBytesPerLine);
-
- for (y = 0; y < 64; y ++)
+ if (page & 1)
{
- cupsRasterReadPixels(r, data, header.cupsBytesPerLine);
-
- if (data[0] != 0 || memcmp(data, data + 1, header.cupsBytesPerLine - 1))
- printf(" RASTER LINE %d CORRUPT AT %d (%02X instead of 00!)\n",
- y, x, data[x]);
+ expected.cupsBytesPerLine *= 2;
+ expected.cupsColorSpace = CUPS_CSPACE_CMYK;
+ expected.cupsColorOrder = CUPS_ORDER_CHUNKED;
+ expected.cupsNumColors = 4;
+ }
+ else
+ {
+ expected.cupsColorSpace = CUPS_CSPACE_K;
+ expected.cupsColorOrder = CUPS_ORDER_BANDED;
+ expected.cupsNumColors = 1;
}
- for (y = 0; y < 64; y ++)
+ if (page & 2)
+ {
+ expected.cupsBytesPerLine *= 2;
+ expected.cupsBitsPerColor = 16;
+ expected.cupsBitsPerPixel = (page & 1) ? 64 : 16;
+ }
+ else
{
- cupsRasterReadPixels(r, data, header.cupsBytesPerLine);
+ expected.cupsBitsPerColor = 8;
+ expected.cupsBitsPerPixel = (page & 1) ? 32 : 8;
+ }
- for (x = 0; x < header.cupsBytesPerLine; x ++)
- if (data[x] != (x & 255))
- break;
+ fputs("cupsRasterReadHeader2: ", stdout);
+ fflush(stdout);
- if (x < header.cupsBytesPerLine)
- printf(" RASTER LINE %d CORRUPT AT %d (%02X instead of %02X!)\n",
- y + 64, x, data[x], x & 255);
+ if (!cupsRasterReadHeader2(r, &header))
+ {
+ puts("FAIL (read error)");
+ errors ++;
+ break;
}
- for (y = 0; y < 64; y ++)
+ if (memcmp(&header, &expected, sizeof(header)))
{
- cupsRasterReadPixels(r, data, header.cupsBytesPerLine);
-
- if (data[0] != 255 || memcmp(data, data + 1, header.cupsBytesPerLine - 1))
- printf(" RASTER LINE %d CORRUPT AT %d (%02X instead of FF!)\n",
- y + 128, x, data[x]);
+ puts("FAIL (bad page header)");
+ errors ++;
+ print_changes(&header, &expected);
}
+ fputs("cupsRasterReadPixels: ", stdout);
+ fflush(stdout);
+
for (y = 0; y < 64; y ++)
{
- cupsRasterReadPixels(r, data, header.cupsBytesPerLine);
+ if (!cupsRasterReadPixels(r, data, header.cupsBytesPerLine))
+ {
+ puts("FAIL (read error)");
+ errors ++;
+ break;
+ }
- for (x = 0; x < header.cupsBytesPerLine; x ++)
- if (data[x] != ((x / 4) & 255))
+ if (data[0] != 0 || memcmp(data, data + 1, header.cupsBytesPerLine - 1))
+ {
+ printf("FAIL (raster line %d corrupt)\n", y);
+ errors ++;
+ break;
+ }
+ }
+
+ if (y == 64)
+ {
+ for (y = 0; y < 64; y ++)
+ {
+ if (!cupsRasterReadPixels(r, data, header.cupsBytesPerLine))
+ {
+ puts("FAIL (read error)");
+ errors ++;
break;
+ }
+
+ for (x = 0; x < header.cupsBytesPerLine; x ++)
+ if (data[x] != (x & 255))
+ break;
- if (x < header.cupsBytesPerLine)
- printf(" RASTER LINE %d CORRUPT AT %d (%02X instead of %02X!)\n",
- y + 192, x, data[x], (x / 4) & 255);
+ if (x < header.cupsBytesPerLine)
+ {
+ printf("FAIL (raster line %d corrupt)\n", y + 64);
+ errors ++;
+ break;
+ }
+ }
+
+ if (y == 64)
+ {
+ for (y = 0; y < 64; y ++)
+ {
+ if (!cupsRasterReadPixels(r, data, header.cupsBytesPerLine))
+ {
+ puts("FAIL (read error)");
+ errors ++;
+ break;
+ }
+
+ if (data[0] != 255 || memcmp(data, data + 1, header.cupsBytesPerLine - 1))
+ {
+ printf("fail (raster line %d corrupt)\n", y + 128);
+ errors ++;
+ break;
+ }
+ }
+
+ if (y == 64)
+ {
+ for (y = 0; y < 64; y ++)
+ {
+ if (!cupsRasterReadPixels(r, data, header.cupsBytesPerLine))
+ {
+ puts("FAIL (read error)");
+ errors ++;
+ break;
+ }
+
+ for (x = 0; x < header.cupsBytesPerLine; x ++)
+ if (data[x] != ((x / 4) & 255))
+ break;
+
+ if (x < header.cupsBytesPerLine)
+ {
+ printf("FAIL (raster line %d corrupt)\n", y + 192);
+ errors ++;
+ break;
+ }
+ }
+
+ if (y == 64)
+ puts("PASS");
+ }
+ }
}
}
cupsRasterClose(r);
fclose(fp);
- return (0);
+ return (errors > 0);
+}
+
+
+
+/*
+ * 'print_changes()' - Print differences in the page header.
+ */
+
+static void
+print_changes(
+ cups_page_header2_t *header, /* I - Actual page header */
+ cups_page_header2_t *expected) /* I - Expected page header */
+{
+ int i; /* Looping var */
+
+
+ if (strcmp(header->MediaClass, expected->MediaClass))
+ printf(" MediaClass (%s), expected (%s)\n", header->MediaClass,
+ expected->MediaClass);
+
+ if (strcmp(header->MediaColor, expected->MediaColor))
+ printf(" MediaColor (%s), expected (%s)\n", header->MediaColor,
+ expected->MediaColor);
+
+ if (strcmp(header->MediaType, expected->MediaType))
+ printf(" MediaType (%s), expected (%s)\n", header->MediaType,
+ expected->MediaType);
+
+ if (strcmp(header->OutputType, expected->OutputType))
+ printf(" OutputType (%s), expected (%s)\n", header->OutputType,
+ expected->OutputType);
+
+ if (header->AdvanceDistance != expected->AdvanceDistance)
+ printf(" AdvanceDistance %d, expected %d\n", header->AdvanceDistance,
+ expected->AdvanceDistance);
+
+ if (header->AdvanceMedia != expected->AdvanceMedia)
+ printf(" AdvanceMedia %d, expected %d\n", header->AdvanceMedia,
+ expected->AdvanceMedia);
+
+ if (header->Collate != expected->Collate)
+ printf(" Collate %d, expected %d\n", header->Collate,
+ expected->Collate);
+
+ if (header->CutMedia != expected->CutMedia)
+ printf(" CutMedia %d, expected %d\n", header->CutMedia,
+ expected->CutMedia);
+
+ if (header->Duplex != expected->Duplex)
+ printf(" Duplex %d, expected %d\n", header->Duplex,
+ expected->Duplex);
+
+ if (header->HWResolution[0] != expected->HWResolution[0] ||
+ header->HWResolution[1] != expected->HWResolution[1])
+ printf(" HWResolution [%d %d], expected [%d %d]\n",
+ header->HWResolution[0], header->HWResolution[1],
+ expected->HWResolution[0], expected->HWResolution[1]);
+
+ if (memcmp(header->ImagingBoundingBox, expected->ImagingBoundingBox,
+ sizeof(header->ImagingBoundingBox)))
+ printf(" ImagingBoundingBox [%d %d %d %d], expected [%d %d %d %d]\n",
+ header->ImagingBoundingBox[0],
+ header->ImagingBoundingBox[1],
+ header->ImagingBoundingBox[2],
+ header->ImagingBoundingBox[3],
+ expected->ImagingBoundingBox[0],
+ expected->ImagingBoundingBox[1],
+ expected->ImagingBoundingBox[2],
+ expected->ImagingBoundingBox[3]);
+
+ if (header->InsertSheet != expected->InsertSheet)
+ printf(" InsertSheet %d, expected %d\n", header->InsertSheet,
+ expected->InsertSheet);
+
+ if (header->Jog != expected->Jog)
+ printf(" Jog %d, expected %d\n", header->Jog,
+ expected->Jog);
+
+ if (header->LeadingEdge != expected->LeadingEdge)
+ printf(" LeadingEdge %d, expected %d\n", header->LeadingEdge,
+ expected->LeadingEdge);
+
+ if (header->Margins[0] != expected->Margins[0] ||
+ header->Margins[1] != expected->Margins[1])
+ printf(" Margins [%d %d], expected [%d %d]\n",
+ header->Margins[0], header->Margins[1],
+ expected->Margins[0], expected->Margins[1]);
+
+ if (header->ManualFeed != expected->ManualFeed)
+ printf(" ManualFeed %d, expected %d\n", header->ManualFeed,
+ expected->ManualFeed);
+
+ if (header->MediaPosition != expected->MediaPosition)
+ printf(" MediaPosition %d, expected %d\n", header->MediaPosition,
+ expected->MediaPosition);
+
+ if (header->MediaWeight != expected->MediaWeight)
+ printf(" MediaWeight %d, expected %d\n", header->MediaWeight,
+ expected->MediaWeight);
+
+ if (header->MirrorPrint != expected->MirrorPrint)
+ printf(" MirrorPrint %d, expected %d\n", header->MirrorPrint,
+ expected->MirrorPrint);
+
+ if (header->NegativePrint != expected->NegativePrint)
+ printf(" NegativePrint %d, expected %d\n", header->NegativePrint,
+ expected->NegativePrint);
+
+ if (header->NumCopies != expected->NumCopies)
+ printf(" NumCopies %d, expected %d\n", header->NumCopies,
+ expected->NumCopies);
+
+ if (header->Orientation != expected->Orientation)
+ printf(" Orientation %d, expected %d\n", header->Orientation,
+ expected->Orientation);
+
+ if (header->OutputFaceUp != expected->OutputFaceUp)
+ printf(" OutputFaceUp %d, expected %d\n", header->OutputFaceUp,
+ expected->OutputFaceUp);
+
+ if (header->PageSize[0] != expected->PageSize[0] ||
+ header->PageSize[1] != expected->PageSize[1])
+ printf(" PageSize [%d %d], expected [%d %d]\n",
+ header->PageSize[0], header->PageSize[1],
+ expected->PageSize[0], expected->PageSize[1]);
+
+ if (header->Separations != expected->Separations)
+ printf(" Separations %d, expected %d\n", header->Separations,
+ expected->Separations);
+
+ if (header->TraySwitch != expected->TraySwitch)
+ printf(" TraySwitch %d, expected %d\n", header->TraySwitch,
+ expected->TraySwitch);
+
+ if (header->Tumble != expected->Tumble)
+ printf(" Tumble %d, expected %d\n", header->Tumble,
+ expected->Tumble);
+
+ if (header->cupsWidth != expected->cupsWidth)
+ printf(" cupsWidth %d, expected %d\n", header->cupsWidth,
+ expected->cupsWidth);
+
+ if (header->cupsHeight != expected->cupsHeight)
+ printf(" cupsHeight %d, expected %d\n", header->cupsHeight,
+ expected->cupsHeight);
+
+ if (header->cupsMediaType != expected->cupsMediaType)
+ printf(" cupsMediaType %d, expected %d\n", header->cupsMediaType,
+ expected->cupsMediaType);
+
+ if (header->cupsBitsPerColor != expected->cupsBitsPerColor)
+ printf(" cupsBitsPerColor %d, expected %d\n", header->cupsBitsPerColor,
+ expected->cupsBitsPerColor);
+
+ if (header->cupsBitsPerPixel != expected->cupsBitsPerPixel)
+ printf(" cupsBitsPerPixel %d, expected %d\n", header->cupsBitsPerPixel,
+ expected->cupsBitsPerPixel);
+
+ if (header->cupsBytesPerLine != expected->cupsBytesPerLine)
+ printf(" cupsBytesPerLine %d, expected %d\n", header->cupsBytesPerLine,
+ expected->cupsBytesPerLine);
+
+ if (header->cupsColorOrder != expected->cupsColorOrder)
+ printf(" cupsColorOrder %d, expected %d\n", header->cupsColorOrder,
+ expected->cupsColorOrder);
+
+ if (header->cupsColorSpace != expected->cupsColorSpace)
+ printf(" cupsColorSpace %d, expected %d\n", header->cupsColorSpace,
+ expected->cupsColorSpace);
+
+ if (header->cupsCompression != expected->cupsCompression)
+ printf(" cupsCompression %d, expected %d\n", header->cupsCompression,
+ expected->cupsCompression);
+
+ if (header->cupsRowCount != expected->cupsRowCount)
+ printf(" cupsRowCount %d, expected %d\n", header->cupsRowCount,
+ expected->cupsRowCount);
+
+ if (header->cupsRowFeed != expected->cupsRowFeed)
+ printf(" cupsRowFeed %d, expected %d\n", header->cupsRowFeed,
+ expected->cupsRowFeed);
+
+ if (header->cupsRowStep != expected->cupsRowStep)
+ printf(" cupsRowStep %d, expected %d\n", header->cupsRowStep,
+ expected->cupsRowStep);
+
+ if (header->cupsNumColors != expected->cupsNumColors)
+ printf(" cupsNumColors %d, expected %d\n", header->cupsNumColors,
+ expected->cupsNumColors);
+
+ if (header->cupsBorderlessScalingFactor !=
+ expected->cupsBorderlessScalingFactor)
+ printf(" cupsBorderlessScalingFactor %g, expected %g\n",
+ header->cupsBorderlessScalingFactor,
+ expected->cupsBorderlessScalingFactor);
+
+ if (header->cupsPageSize[0] != expected->cupsPageSize[0] ||
+ header->cupsPageSize[1] != expected->cupsPageSize[1])
+ printf(" cupsPageSize [%g %g], expected [%g %g]\n",
+ header->cupsPageSize[0], header->cupsPageSize[1],
+ expected->cupsPageSize[0], expected->cupsPageSize[1]);
+
+ if (header->cupsImagingBBox[0] != expected->cupsImagingBBox[0] ||
+ header->cupsImagingBBox[1] != expected->cupsImagingBBox[1] ||
+ header->cupsImagingBBox[2] != expected->cupsImagingBBox[2] ||
+ header->cupsImagingBBox[3] != expected->cupsImagingBBox[3])
+ printf(" cupsImagingBBox [%g %g %g %g], expected [%g %g %g %g]\n",
+ header->cupsImagingBBox[0], header->cupsImagingBBox[1],
+ header->cupsImagingBBox[2], header->cupsImagingBBox[3],
+ expected->cupsImagingBBox[0], expected->cupsImagingBBox[1],
+ expected->cupsImagingBBox[2], expected->cupsImagingBBox[3]);
+
+ for (i = 0; i < 16; i ++)
+ if (header->cupsInteger[i] != expected->cupsInteger[i])
+ printf(" cupsInteger%d %d, expected %d\n", i, header->cupsInteger[i],
+ expected->cupsInteger[i]);
+
+ for (i = 0; i < 16; i ++)
+ if (header->cupsReal[i] != expected->cupsReal[i])
+ printf(" cupsReal%d %g, expected %g\n", i, header->cupsReal[i],
+ expected->cupsReal[i]);
+
+ for (i = 0; i < 16; i ++)
+ if (strcmp(header->cupsString[i], expected->cupsString[i]))
+ printf(" cupsString%d (%s), expected (%s)\n", i,
+ header->cupsString[i], expected->cupsString[i]);
+
+ if (strcmp(header->cupsMarkerType, expected->cupsMarkerType))
+ printf(" cupsMarkerType (%s), expected (%s)\n", header->cupsMarkerType,
+ expected->cupsMarkerType);
+
+ if (strcmp(header->cupsRenderingIntent, expected->cupsRenderingIntent))
+ printf(" cupsRenderingIntent (%s), expected (%s)\n",
+ header->cupsRenderingIntent,
+ expected->cupsRenderingIntent);
+
+ if (strcmp(header->cupsPageSizeName, expected->cupsPageSizeName))
+ printf(" cupsPageSizeName (%s), expected (%s)\n",
+ header->cupsPageSizeName,
+ expected->cupsPageSizeName);
}
/*
- * End of "$Id: testraster.c 4545 2005-06-21 19:26:28Z mike $".
+ * End of "$Id: testraster.c 6158 2006-12-17 01:44:21Z mike $".
*/
msgstr ""
"Project-Id-Version: CUPS 1.2\n"
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
-"POT-Creation-Date: 2006-05-21 10:08-0400\n"
+"POT-Creation-Date: 2007-01-23 09:19-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
" REF: Page 72, section 5.5\n"
msgstr ""
+#, c-format
+msgid "Missing value on line %d!"
+msgstr ""
+
+#, c-format
+msgid "Missing double quote on line %d!"
+msgstr ""
+
+#, c-format
+msgid "Bad option + choice on line %d!"
+msgstr ""
+
+msgid "Empty PPD file!"
+msgstr ""
+
+#, c-format
+msgid "Unable to set Windows printer driver (%d)!"
+msgstr ""
+
+#, c-format
+msgid "Unable to run \"%s\": %s\n"
+msgstr ""
+
+#, c-format
+msgid "Job #%d is already canceled - can't cancel."
+msgstr ""
+
+#, c-format
+msgid "Bad notify-recipient URI \"%s\"!"
+msgstr ""
+
+#, c-format
+msgid "notify-recipient URI \"%s\" uses unknown scheme!"
+msgstr ""
+
+#, c-format
+msgid "Bad notify-pull-method \"%s\"!"
+msgstr ""
+
+#, c-format
+msgid ""
+" **FAIL** %s must be 1284DeviceID!\n"
+" REF: Page 72, section 5.5\n"
+msgstr ""
+
+#, c-format
+msgid "lpoptions: Unable to get PPD file for %s: %s\n"
+msgstr ""
+
#
# End of "$Id$".
msgstr ""
"Project-Id-Version: CUPS 1.2\n"
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
-"POT-Creation-Date: 2006-04-14 14:35-0400\n"
+"POT-Creation-Date: 2007-01-23 09:19-0500\n"
"PO-Revision-Date: 2006-07-17 19:55+0200\n"
"Last-Translator: Bernd Krumböck <b.krumboeck@rewe-group.at>\n"
"Language-Team: Deutsch\n"
msgid "Auto"
msgstr "Automatisch"
-msgid "Enter your username and password or the root username and password to access this page."
-msgstr "Für Zugang Benutzername und Passwort (oder Benutzername und Passwort für root) eingeben."
+msgid ""
+"Enter your username and password or the root username and password to access "
+"this page."
+msgstr ""
+"Für Zugang Benutzername und Passwort (oder Benutzername und Passwort für "
+"root) eingeben."
msgid "You must use a https: URL to access this page."
msgstr "Eine https:-URL ist für den Zugriff erforderlich."
msgid "The printer or class was not found."
msgstr "Drucker oder Klasse nicht gefunden."
-msgid "The printer-uri must be of the form \"ipp://HOSTNAME/classes/CLASSNAME\"."
-msgstr "Die printer-uri muss in der Form \"ipp://HOSTNAME/classes/KLASSENNAME\" sein."
+msgid ""
+"The printer-uri must be of the form \"ipp://HOSTNAME/classes/CLASSNAME\"."
+msgstr ""
+"Die printer-uri muss in der Form \"ipp://HOSTNAME/classes/KLASSENNAME\" sein."
#, c-format
msgid "The printer-uri \"%s\" contains invalid characters."
msgid "The notify-user-data value is too large (%d > 63 octets)!"
msgstr "Der Wert von notify-user-data ist zu groß (%d > 63 Oktette)!"
-msgid "The notify-lease-duration attribute cannot be used with job subscriptions."
-msgstr "notify-lease-duration kann nicht bei Auftragssubskriptionen verwendet werden."
+msgid ""
+"The notify-lease-duration attribute cannot be used with job subscriptions."
+msgstr ""
+"notify-lease-duration kann nicht bei Auftragssubskriptionen verwendet werden."
-msgid "The printer-uri must be of the form \"ipp://HOSTNAME/printers/PRINTERNAME\"."
-msgstr "Die printer-uri muss in der Form \"ipp://HOSTNAME/printers/DRUCKERNAME\" sein."
+msgid ""
+"The printer-uri must be of the form \"ipp://HOSTNAME/printers/PRINTERNAME\"."
+msgstr ""
+"Die printer-uri muss in der Form \"ipp://HOSTNAME/printers/DRUCKERNAME\" "
+"sein."
#, c-format
msgid "A class named \"%s\" already exists!"
msgstr "Eine Klasse namens \"%s\" existiert bereits!"
#, c-format
-msgid "File device URIs have been disabled! To enable, see the FileDevice directive in \"%s/cupsd.conf\"."
-msgstr "Ausgabe auf Dateien gesperrt! Gegebenenfalls FileDevice-Einstellung in \"%s/cupsd.conf\" ändern."
+msgid ""
+"File device URIs have been disabled! To enable, see the FileDevice directive "
+"in \"%s/cupsd.conf\"."
+msgstr ""
+"Ausgabe auf Dateien gesperrt! Gegebenenfalls FileDevice-Einstellung in \"%s/"
+"cupsd.conf\" ändern."
#, c-format
msgid "Bad device-uri \"%s\"!"
#, c-format
msgid "You are not authorized to restart job id %d owned by \"%s\"!"
-msgstr "Sie sind nicht berechtigt den Auftrag mit der ID %d von \"%s\" neu zu starten!"
+msgstr ""
+"Sie sind nicht berechtigt den Auftrag mit der ID %d von \"%s\" neu zu "
+"starten!"
#, c-format
msgid "You are not authorized to send document for job #%d owned by \"%s\"!"
-msgstr "Sie sind nicht berechtigt ein Dokument für den Auftrag #%d von \"%s\" zu senden!"
+msgstr ""
+"Sie sind nicht berechtigt ein Dokument für den Auftrag #%d von \"%s\" zu "
+"senden!"
#, c-format
msgid "Bad document-format \"%s\"!"
#, c-format
msgid "You are not authorized to alter job id %d owned by \"%s\"!"
-msgstr "Sie sind nicht berechtigt den Aufrag mit der ID %d von \"%s\" abzuändern."
+msgstr ""
+"Sie sind nicht berechtigt den Aufrag mit der ID %d von \"%s\" abzuändern."
#, c-format
msgid "%s cannot be changed."
msgstr "lpq: Unbekanntes Ziel \"%s\"!\n"
#, c-format
-msgid "lp: error - %s environment variable names non-existent destination \"%s\"!\n"
-msgstr "lp: Fehler - Umgebungsvariable %s enhält nicht vorhandenes Ziel \"%s\"!\n"
+msgid ""
+"lp: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr ""
+"lp: Fehler - Umgebungsvariable %s enhält nicht vorhandenes Ziel \"%s\"!\n"
msgid "lpq: error - no default destination available.\n"
msgstr "lpq: Fehler - kein Standardziel verfügbar.\n"
msgid "lpq: get-jobs failed: %s\n"
msgstr "lpq: get-jobs fehlgeschlagen: %s\n"
-msgid "Rank Owner Pri Job Files Total Size\n"
-msgstr "Rang Besitzer Pri Auftrag Dateien Gesamtgröße\n"
+msgid ""
+"Rank Owner Pri Job Files Total Size\n"
+msgstr ""
+"Rang Besitzer Pri Auftrag Dateien Gesamtgröße\n"
msgid "Rank Owner Job File(s) Total Size\n"
msgstr "Rang Besitz Auftrag Datei(en) Gesamtgröße\n"
msgstr "lpr: Fehler - Es wird ein Wert hinter dem Parameter -%c erwartet!\n"
#, c-format
-msgid "lpr: warning - '%c' format modifier not supported - output may not be correct!\n"
-msgstr "lpr: Warnung - Formatangabe '%c' nicht unterstützt - Ausgabe evtl. fehlerhaft!\n"
+msgid ""
+"lpr: warning - '%c' format modifier not supported - output may not be "
+"correct!\n"
+msgstr ""
+"lpr: Warnung - Formatangabe '%c' nicht unterstützt - Ausgabe evtl. "
+"fehlerhaft!\n"
msgid "lpr: error - expected option=value after -o option!\n"
msgstr "lpr: Fehler - Erwarte Parameter=Wert hinter dem Parameter -o!\n"
msgid "lpr: warning - email notification is not currently supported!\n"
-msgstr "lpr: Warnung - Email Benachrichtigung wird zurzeit nicht unterstützt!\n"
+msgstr ""
+"lpr: Warnung - Email Benachrichtigung wird zurzeit nicht unterstützt!\n"
msgid "lpr: error - expected destination after -P option!\n"
msgstr "lpr: Fehler - Erwarte Ziel hinter dem Parameter -P!\n"
msgstr "lpr: Fehler - Zu viele Dateien \"%s\"\n"
#, c-format
-msgid "lpr: error - %s environment variable names non-existent destination \"%s\"!\n"
-msgstr "lpr: Fehler - Die Umgebungsvariable %s beinhaltet das nicht vorhandene Ziel \"%s\"!\n"
+msgid ""
+"lpr: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr ""
+"lpr: Fehler - Die Umgebungsvariable %s beinhaltet das nicht vorhandene Ziel "
+"\"%s\"!\n"
msgid "lpr: error - no default destination available.\n"
msgstr "lpr: Fehler - Kein Standardziel verfügbar.\n"
#, c-format
msgid "lpr: error - unable to write to temporary file \"%s\" - %s\n"
-msgstr "lpr: Fehler - Kann nicht in die temporäre Datei \"%s\" schreiben - %s\n"
+msgstr ""
+"lpr: Fehler - Kann nicht in die temporäre Datei \"%s\" schreiben - %s\n"
msgid "lpr: error - stdin is empty, so no job has been sent.\n"
msgstr "lpr: Fehler - stdin ist leer, kein Auftrag gesendet.\n"
#, c-format
msgid "cupsaddsmb: Unable to copy Windows 2000 printer driver files (%d)!\n"
-msgstr "cupsaddsmb: Kann Windows 2000 Druckertreiberdateien (%d) nicht kopieren!\n"
+msgstr ""
+"cupsaddsmb: Kann Windows 2000 Druckertreiberdateien (%d) nicht kopieren!\n"
#, c-format
msgid "cupsaddsmb: Unable to copy CUPS printer driver files (%d)!\n"
#, c-format
msgid "cupsaddsmb: Unable to install Windows 2000 printer driver files (%d)!\n"
-msgstr "cupsaddsmb: Kann Windows 2000 Druckertreiberdateien (%d) nicht installieren!\n"
+msgstr ""
+"cupsaddsmb: Kann Windows 2000 Druckertreiberdateien (%d) nicht "
+"installieren!\n"
#, c-format
msgid "cupsaddsmb: Unable to copy Windows 9x printer driver files (%d)!\n"
-msgstr "cupsaddsmb: Kann Windows 9x Druckertreiberdateien (%d) nicht kopieren!\n"
+msgstr ""
+"cupsaddsmb: Kann Windows 9x Druckertreiberdateien (%d) nicht kopieren!\n"
#, c-format
msgid "cupsaddsmb: Unable to install Windows 9x printer driver files (%d)!\n"
-msgstr "cupsaddsmb: Kann Windows 9x Druckertreiberdateien (%d) nicht installieren!\n"
+msgstr ""
+"cupsaddsmb: Kann Windows 9x Druckertreiberdateien (%d) nicht installieren!\n"
#, c-format
msgid "cupsaddsmb: Unable to set Windows printer driver (%d)!\n"
" -v Zusätzliche Ausgaben einschalten (zeige Kommandos)\n"
msgid "cupstestppd: The -q option is incompatible with the -v option.\n"
-msgstr "cupstestppd: Der Parameter -q ist nicht kompatibel mit dem Parameter -v.\n"
+msgstr ""
+"cupstestppd: Der Parameter -q ist nicht kompatibel mit dem Parameter -v.\n"
msgid "cupstestppd: The -v option is incompatible with the -q option.\n"
-msgstr "cupstestppd: Der Parameter -v ist nicht kompatibel mit dem Parameter -d.\n"
+msgstr ""
+"cupstestppd: Der Parameter -v ist nicht kompatibel mit dem Parameter -d.\n"
#, c-format
msgid ""
" **FAIL** BAD ModelName - \"%c\" not allowed in string.\n"
" REF: Pages 59-60, section 5.3.\n"
msgstr ""
-" **FEHLGESCHLAGEN** FALSCH ModelName - \"%c\" nicht in Zeichenkette erlaubt.\n"
+" **FEHLGESCHLAGEN** FALSCH ModelName - \"%c\" nicht in Zeichenkette "
+"erlaubt.\n"
" REF: Seiten 59-60, Kapitel 5.3.\n"
msgid " PASS ModelName\n"
#, c-format
msgid ""
-" WARN Duplex option keyword %s should be named Duplex or JCLDuplex!\n"
+" WARN Duplex option keyword %s should be named Duplex or "
+"JCLDuplex!\n"
" REF: Page 122, section 5.17\n"
msgstr ""
-" WARNUNG Schlüsselwort für Duplexparameter %s sollte Duplex oder JCLDuplex heißen!\n"
+" WARNUNG Schlüsselwort für Duplexparameter %s sollte Duplex oder "
+"JCLDuplex heißen!\n"
" REF: Seite 122, Kapitel 5.17\n"
msgid " WARN Default choices conflicting!\n"
" WARN PCFileName longer than 8.3 in violation of PPD spec.\n"
" REF: Pages 61-62, section 5.3.\n"
msgstr ""
-" WARNUNG PCFileName länger als 8.3 ist eine Verletzung der PPD Spez.\n"
+" WARNUNG PCFileName länger als 8.3 ist eine Verletzung der PPD "
+"Spez.\n"
" REF: Seiten 61-62, Kapitel 5.3.\n"
msgid ""
" WARN Protocols contains PJL but JCL attributes are not set.\n"
" REF: Pages 78-79, section 5.7.\n"
msgstr ""
-" WARNUNG Protokoll enthält PJL jedoch sind keine JCL Eigenschaften gesetzt.\n"
+" WARNUNG Protokoll enthält PJL jedoch sind keine JCL Eigenschaften "
+"gesetzt.\n"
" REF: Seiten 78-79, Kapitel 5.7.\n"
#, c-format
" (Beschränkung=\"%s %s %s %s\")\n"
msgid ""
-"Usage: cupstestppd [-q] [-r] [-v[v]] filename1.ppd[.gz] [... filenameN.ppd[.gz]]\n"
+"Usage: cupstestppd [-q] [-r] [-v[v]] filename1.ppd[.gz] [... filenameN.ppd[."
+"gz]]\n"
" program | cupstestppd [-q] [-r] [-v[v]] -\n"
msgstr ""
-"Benutzung: cupstestppd [-q] [-r] [-v[v]] Dateiname1.ppd[.gz] [... DateinameN.ppd[.gz]]\n"
+"Benutzung: cupstestppd [-q] [-r] [-v[v]] Dateiname1.ppd[.gz] [... DateinameN."
+"ppd[.gz]]\n"
" Programm | cupstestppd [-q] [-r] [-v[v]] -\n"
msgid "lpstat: Need \"completed\" or \"not-completed\" after -W!\n"
msgstr "System Standardziel: %s\n"
#, c-format
-msgid "lpstat: error - %s environment variable names non-existent destination \"%s\"!\n"
-msgstr "lpstat: Fehler - Umgebungsvariable %s enthält das nicht vorhandene Ziel \"%s\"!\n"
+msgid ""
+"lpstat: error - %s environment variable names non-existent destination \"%s"
+"\"!\n"
+msgstr ""
+"lpstat: Fehler - Umgebungsvariable %s enthält das nicht vorhandene Ziel \"%s"
+"\"!\n"
msgid "no system default destination\n"
msgstr "Kein systemweites Standardziel\n"
#, c-format
msgid "Output for printer %s is sent to remote printer %s on %s\n"
-msgstr "Ausgabe für Drucker %s wurde gesendet an entfernten Drucker %s auf %s\n"
+msgstr ""
+"Ausgabe für Drucker %s wurde gesendet an entfernten Drucker %s auf %s\n"
#, c-format
msgid "Output for printer %s is sent to %s\n"
#, c-format
msgid "Output for printer %s/%s is sent to remote printer %s on %s\n"
-msgstr "Ausgabe für Drucker %s/%s wurde gesendet an entfernten Drucker %s auf %s\n"
+msgstr ""
+"Ausgabe für Drucker %s/%s wurde gesendet an entfernten Drucker %s auf %s\n"
#, c-format
msgid "Output for printer %s/%s is sent to %s\n"
msgstr "lpadmin: Klasse wird hinter dem Parameter '-r' erwartet!\n"
msgid "lpadmin: Expected allow/deny:userlist after '-u' option!\n"
-msgstr "lpadmin: Benutzerliste für Erlaubt/Verweigert wird nach dem Parameter '-u' erwartet!\n"
+msgstr ""
+"lpadmin: Benutzerliste für Erlaubt/Verweigert wird nach dem Parameter '-u' "
+"erwartet!\n"
#, c-format
msgid "lpadmin: Unknown allow/deny option \"%s\"!\n"
msgstr "lpadmin: Erwarte Geräte URI hinter dem Parameter '-v'!\n"
msgid "lpadmin: Expected printer or class after '-x' option!\n"
-msgstr "lpadmin: Drucker oder Klasse wird hinter dem Parameter '-x' erwartet!\n"
+msgstr ""
+"lpadmin: Drucker oder Klasse wird hinter dem Parameter '-x' erwartet!\n"
msgid ""
"lpadmin: Unable to set the printer description:\n"
msgstr "lpadmin: Beschreibung wird hinter dem Parameter '-D' erwartet!\n"
msgid "lpadmin: Expected file type(s) after '-I' option!\n"
-msgstr "lpadmin: Dateityp(en) wird bzw. werden hinter dem Parameter '-I' erwartet!\n"
+msgstr ""
+"lpadmin: Dateityp(en) wird bzw. werden hinter dem Parameter '-I' erwartet!\n"
msgid "lpadmin: Warning - content type list ignored!\n"
msgstr "lpadmin: Warnung - Datentypliste ignoriert!\n"
"\n"
" lpadmin [-h Server] -d Ziel\n"
" lpadmin [-h Server] -x Ziel\n"
-" lpadmin [-h Server] -p Drucker [-c hinzuzufügende-Klasse] [-i Interface] [-m Modell]\n"
-" [-r zu-löschende-Klasse] [-v Gerät] [-D Beschreibung]\n"
+" lpadmin [-h Server] -p Drucker [-c hinzuzufügende-Klasse] [-i Interface] "
+"[-m Modell]\n"
+" [-r zu-löschende-Klasse] [-v Gerät] [-D "
+"Beschreibung]\n"
" [-P PPD-Datei] [-o Name=Wert]\n"
-" [-u allow:Benutzer,Benutzer] [-u deny:Benutzer,Benutzer]\n"
+" [-u allow:Benutzer,Benutzer] [-u deny:Benutzer,"
+"Benutzer]\n"
"\n"
#, c-format
#, c-format
msgid "lpadmin: add-printer (set description) failed: %s\n"
-msgstr "lpadmin: Drucker hinzufügen (Setzen der Beschreibung) fehlgeschlagen: %s\n"
+msgstr ""
+"lpadmin: Drucker hinzufügen (Setzen der Beschreibung) fehlgeschlagen: %s\n"
#, c-format
msgid "lpadmin: add-printer (set location) failed: %s\n"
msgstr "lp: Auftrags ID wird hinter dem Parameter -i erwartet!\n"
msgid "lp: Error - cannot print files and alter jobs simultaneously!\n"
-msgstr "lp: Fehler - Kann nicht gleichzeitig Dateien drucken und Aufträge abändern!\n"
+msgstr ""
+"lp: Fehler - Kann nicht gleichzeitig Dateien drucken und Aufträge abändern!\n"
msgid "lp: Error - bad job ID!\n"
msgstr "lp: Fehler - Falsche Auftrags ID!\n"
msgid "lp: Unknown option '%c'!\n"
msgstr "lp: Unbekannter Parameter '%c'!\n"
-msgid "lp: Error - cannot print from stdin if files or a job ID are provided!\n"
-msgstr "lp: Fehler - Kann nicht von stdin drucken wenn Dateien oder eine Auftrags ID übergeben wurde!\n"
+msgid ""
+"lp: Error - cannot print from stdin if files or a job ID are provided!\n"
+msgstr ""
+"lp: Fehler - Kann nicht von stdin drucken wenn Dateien oder eine Auftrags ID "
+"übergeben wurde!\n"
#, c-format
msgid "lp: Unable to access \"%s\" - %s\n"
"your username, and must contain at least one letter and number.\n"
msgstr ""
"lppasswd: Bedaure, Passwort zurückgewiesen.\n"
-"Ihr Passwort muss zumindest 6 Zeichen lang sein, darf nicht den Benutzernamen\n"
+"Ihr Passwort muss zumindest 6 Zeichen lang sein, darf nicht den "
+"Benutzernamen\n"
"enthalten, und muss mindestens einen Buchstaben und eine Zahl enthalten.\n"
msgid "lppasswd: Password file busy!\n"
msgid "Add Class"
msgstr "Klasse hinzufügen"
-msgid "The class name may only contain up to 127 printable characters and may not contain spaces, slashes (/), or the pound sign (#)."
-msgstr "Der Klassenname darf nur bis zu 127 druckbare Zeichen und keine Leerzeichen, Slashes (/), oder das Rautezeichen (#) enthalten."
+msgid ""
+"The class name may only contain up to 127 printable characters and may not "
+"contain spaces, slashes (/), or the pound sign (#)."
+msgstr ""
+"Der Klassenname darf nur bis zu 127 druckbare Zeichen und keine Leerzeichen, "
+"Slashes (/), oder das Rautezeichen (#) enthalten."
msgid "Unable to modify class:"
msgstr "Kann Klasse nicht ändern:"
msgid "Add Printer"
msgstr "Drucker hinzufügen"
-msgid "The printer name may only contain up to 127 printable characters and may not contain spaces, slashes (/), or the pound sign (#)."
-msgstr "Der Druckername darf nur bis zu 127 druckbare Zeichen und keine Leerzeichen, Slashes (/), oder das Rautezeichen (#) enthalten."
+msgid ""
+"The printer name may only contain up to 127 printable characters and may not "
+"contain spaces, slashes (/), or the pound sign (#)."
+msgstr ""
+"Der Druckername darf nur bis zu 127 druckbare Zeichen und keine Leerzeichen, "
+"Slashes (/), oder das Rautezeichen (#) enthalten."
msgid "Unable to get list of printer drivers:"
msgstr "Holen der Druckertreiberliste nicht möglich:"
msgstr "cupsaddsmb abgestürzt mit Signal %d"
msgid "A Samba username is required to export printer drivers!"
-msgstr "Ein Samba Benutzername wird benötigt um Drucker für Samba bereitzustellen!"
+msgstr ""
+"Ein Samba Benutzername wird benötigt um Drucker für Samba bereitzustellen!"
msgid "A Samba password is required to export printer drivers!"
msgstr "Ein Samba Passwort wird benötigt um Druckertreiber bereitzustellen!"
msgstr "Benutzung: lpmove Auftrag/Quelle Ziel\n"
msgid "lpstat: Need \"completed\", \"not-completed\", or \"all\" after -W!\n"
-msgstr "lpstat: Brauche \"completed\", \"not-completed\", oder \"all\" hinter dem Parameter -W!\n"
+msgstr ""
+"lpstat: Brauche \"completed\", \"not-completed\", oder \"all\" hinter dem "
+"Parameter -W!\n"
#, c-format
msgid "%s accepting requests since %s\n"
msgstr "%s: Fehler - Hostname wird hinter dem Parameter '-h' erwartet!\n"
#, c-format
-msgid "%s: error - %s environment variable names non-existent destination \"%s\"!\n"
-msgstr "%s: Fehler - Die Umgebungsvariable %s enthält das nicht existierende Ziel \"%s\"!\n"
+msgid ""
+"%s: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr ""
+"%s: Fehler - Die Umgebungsvariable %s enthält das nicht existierende Ziel \"%"
+"s\"!\n"
#, c-format
msgid "%s: error - no default destination available.\n"
msgstr "%s: Fehler - Kein Standardziel verfügbar.\n"
-msgid "Usage: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]\n"
-msgstr "Benutzung: lpq [-P Ziel] [-U Benutzername] [-h Hostname[:Port]] [-l] [+Intervall]\n"
+msgid ""
+"Usage: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]\n"
+msgstr ""
+"Benutzung: lpq [-P Ziel] [-U Benutzername] [-h Hostname[:Port]] [-l] "
+"[+Intervall]\n"
#, c-format
msgid "%s: Error - expected hostname after '-H' option!\n"
msgstr "%s: Fehler - Wert wird hinter dem Paramter '-%c' erwartet!\n"
#, c-format
-msgid "%s: Warning - '%c' format modifier not supported - output may not be correct!\n"
-msgstr "%s: Warnung - Formatangabe '%c' nicht unterstützt - Ausgabe ist möglicherweise falsch!\n"
+msgid ""
+"%s: Warning - '%c' format modifier not supported - output may not be "
+"correct!\n"
+msgstr ""
+"%s: Warnung - Formatangabe '%c' nicht unterstützt - Ausgabe ist "
+"möglicherweise falsch!\n"
#, c-format
msgid "%s: error - expected option=value after '-o' option!\n"
msgstr "%s: Fehler - Zu viele Dateien - \"%s\"\n"
#, c-format
-msgid "%s: Error - %s environment variable names non-existent destination \"%s\"!\n"
-msgstr "%s: Fehler - Die Umgebungsvariable %s enthält das nicht existierende Ziel \"%s\"!\n"
+msgid ""
+"%s: Error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr ""
+"%s: Fehler - Die Umgebungsvariable %s enthält das nicht existierende Ziel \"%"
+"s\"!\n"
#, c-format
msgid "%s: Error - no default destination available.\n"
#, c-format
msgid "%s: Error - expected reason text after '-r' option!\n"
-msgstr "%s: Fehler - Begründungstext wird hinter dem Parameter '-r' erwartet!\n"
+msgstr ""
+"%s: Fehler - Begründungstext wird hinter dem Parameter '-r' erwartet!\n"
#, c-format
msgid "%s: Error - expected username after '-u' option!\n"
#, c-format
msgid "%s: Error - cannot print files and alter jobs simultaneously!\n"
-msgstr "%s: Fehler - Kann nicht gleichzeitig Dateien drucken und Aufträge abändern!\n"
+msgstr ""
+"%s: Fehler - Kann nicht gleichzeitig Dateien drucken und Aufträge abändern!\n"
#, c-format
msgid "%s: Error - bad job ID!\n"
#, c-format
msgid "%s: Error - expected option string after '-o' option!\n"
-msgstr "%s: Fehler - Zeichenkette mit Parametern wird hinter dem Parameter '-o' erwartet!\n"
+msgstr ""
+"%s: Fehler - Zeichenkette mit Parametern wird hinter dem Parameter '-o' "
+"erwartet!\n"
#, c-format
msgid "%s: Error - expected priority after '-%c' option!\n"
#, c-format
msgid "%s: Error - expected hold name after '-H' option!\n"
-msgstr "%s: Fehler - Haltebezeichnung wird hinter dem Parameter '-H' erwartet!\n"
+msgstr ""
+"%s: Fehler - Haltebezeichnung wird hinter dem Parameter '-H' erwartet!\n"
#, c-format
msgid "%s: Need job ID ('-i jobid') before '-H restart'!\n"
msgstr "%s: Warnung - Parameter für Inhaltstyp ignoriert!\n"
#, c-format
-msgid "%s: Error - cannot print from stdin if files or a job ID are provided!\n"
-msgstr "%s: Fehler - Kann nicht von stdin drucken wenn Dateien oder eine Autrags ID übergeben wurde!\n"
+msgid ""
+"%s: Error - cannot print from stdin if files or a job ID are provided!\n"
+msgstr ""
+"%s: Fehler - Kann nicht von stdin drucken wenn Dateien oder eine Autrags ID "
+"übergeben wurde!\n"
#, c-format
-msgid "%s: Error - need \"completed\", \"not-completed\", or \"all\" after '-W' option!\n"
-msgstr "%s: Fehler - Brauche \"completed\", \"not-completed\", oder \"all\" hinter dem Parameter '-W'!\n"
+msgid ""
+"%s: Error - need \"completed\", \"not-completed\", or \"all\" after '-W' "
+"option!\n"
+msgstr ""
+"%s: Fehler - Brauche \"completed\", \"not-completed\", oder \"all\" hinter "
+"dem Parameter '-W'!\n"
#, c-format
msgid "%s: Error - expected destination after '-b' option!\n"
msgstr "Auftragssubkription kann nicht erneuert werden!"
msgid "cupsd: Expected config filename after \"-c\" option!\n"
-msgstr "cupsd: Konfigurationsdateiname wird hinter dem Paramter \"-c\" erwartet!\n"
+msgstr ""
+"cupsd: Konfigurationsdateiname wird hinter dem Paramter \"-c\" erwartet!\n"
msgid "cupsd: launchd(8) support not compiled in, running in normal mode.\n"
-msgstr "cupsd: launchd(8)-unterstützung wurde nicht kompiliert, laufe im normalen Modus.\n"
+msgstr ""
+"cupsd: launchd(8)-unterstützung wurde nicht kompiliert, laufe im normalen "
+"Modus.\n"
#, c-format
msgid "cupsd: Unknown option \"%c\" - aborting!\n"
msgid " WARN Line %d only contains whitespace!\n"
msgstr " WARNUNG Zeile %d enthält nur Whitespace!\n"
-msgid " WARN File contains a mix of CR, LF, and CR LF line endings!\n"
-msgstr " WARNUNG Datei enthält gemischt CR, LF und CR LF als Zeilenende!\n"
+msgid ""
+" WARN File contains a mix of CR, LF, and CR LF line endings!\n"
+msgstr ""
+" WARNUNG Datei enthält gemischt CR, LF und CR LF als Zeilenende!\n"
-msgid " WARN Non-Windows PPD files should use lines ending with only LF, not CR LF!\n"
-msgstr " WARNUNG Nicht-Windows PPD Dateien sollten nur das Zeilenende LF benutzen, nicht CR LF!\n"
+msgid ""
+" WARN Non-Windows PPD files should use lines ending with only LF, "
+"not CR LF!\n"
+msgstr ""
+" WARNUNG Nicht-Windows PPD Dateien sollten nur das Zeilenende LF "
+"benutzen, nicht CR LF!\n"
msgid "Printer Maintenance"
msgstr "Druckerwartung"
#, c-format
msgid " **FAIL** Missing \"%s\" translation string for option %s!\n"
-msgstr " **FEHLGESCHLAGEN** Vermisse \"%s\" Übersetzung für Parameter %s!\n"
+msgstr ""
+" **FEHLGESCHLAGEN** Vermisse \"%s\" Übersetzung für Parameter %s!\n"
#, c-format
-msgid " **FAIL** Default translation string for option %s contains 8-bit characters!\n"
-msgstr " **FEHLGESCHLAGEN** Standardübersetzung für Parameter %s enthält 8-bit Zeichen!\n"
+msgid ""
+" **FAIL** Default translation string for option %s contains 8-bit "
+"characters!\n"
+msgstr ""
+" **FEHLGESCHLAGEN** Standardübersetzung für Parameter %s enthält 8-bit "
+"Zeichen!\n"
#, c-format
-msgid " **FAIL** Missing \"%s\" translation string for option %s, choice %s!\n"
-msgstr " **FEHLGESCHLAGEN** Vermisse \"%s\" Übersetzung für Parameter %s, Auswahl %s!\n"
+msgid ""
+" **FAIL** Missing \"%s\" translation string for option %s, choice %s!\n"
+msgstr ""
+" **FEHLGESCHLAGEN** Vermisse \"%s\" Übersetzung für Parameter %s, "
+"Auswahl %s!\n"
#, c-format
-msgid " **FAIL** Default translation string for option %s choice %s contains 8-bit characters!\n"
-msgstr " **FEHLGESCHLAGEN** Standardübersetzung für Parameter %s Auswahl %s enthält 8-bit Zeichen!\n"
+msgid ""
+" **FAIL** Default translation string for option %s choice %s contains "
+"8-bit characters!\n"
+msgstr ""
+" **FEHLGESCHLAGEN** Standardübersetzung für Parameter %s Auswahl %s "
+"enthält 8-bit Zeichen!\n"
#, c-format
msgid " **FAIL** Bad cupsFilter value \"%s\"!\n"
msgstr "Auftrag #%d wurde bereits beendet - abbrechen nicht möglich."
#, c-format
-msgid "You must access this page using the URL <A HREF=\"https://%s:%d%s\">https://%s:%d%s</A>."
-msgstr "Um auf diese Seite zuzugreifen müssen Sie die URL <A HREF=\"https://%s:%d%s\">https://%s:%d%s</A> verwenden."
+msgid ""
+"You must access this page using the URL <A HREF=\"https://%s:%d%s\">https://%"
+"s:%d%s</A>."
+msgstr ""
+"Um auf diese Seite zuzugreifen müssen Sie die URL <A HREF=\"https://%s:%d%s"
+"\">https://%s:%d%s</A> verwenden."
#, c-format
msgid "Unsupported format '%s'!"
"\n"
" -h Show program usage\n"
"\n"
-" Note: this program only validates the DSC comments, not the PostScript itself.\n"
+" Note: this program only validates the DSC comments, not the PostScript "
+"itself.\n"
msgstr ""
"Benutzung: cupstestdsc [Parameter] Dateiname.ps [... Dateiname.ps]\n"
" cupstestdsc [Parameter] -\n"
"\n"
" -h Zeige Gebrauchsanleitung\n"
"\n"
-" Notiz: Dieses Programm validiert nur die DSC Kommentare, nicht das PostScript selbst.\n"
+" Notiz: Dieses Programm validiert nur die DSC Kommentare, nicht das "
+"PostScript selbst.\n"
#, c-format
msgid "Password for %s on %s? "
msgstr ""
" **FEHLGESCHLAGEN** 1284DeviceId muss 1284DeviceID sein!\n"
" REF: Seite 72, Kapitel 5.5\n"
+
+#, fuzzy, c-format
+msgid "Missing value on line %d!"
+msgstr "Vermisse Wert in Zeile %d!\n"
+
+#, fuzzy, c-format
+msgid "Missing double quote on line %d!"
+msgstr "Vermisse doppelte Anführungszeichen in Zeile %d!\n"
+
+#, fuzzy, c-format
+msgid "Bad option + choice on line %d!"
+msgstr "Falscher Parameter + Auswahl in Zeile %d!\n"
+
+#, fuzzy
+msgid "Empty PPD file!"
+msgstr "Kann PPD Datei nicht kopieren!"
+
+#, fuzzy, c-format
+msgid "Unable to set Windows printer driver (%d)!"
+msgstr "Kann Windows Druckertreiber nicht setzen (%d)!\n"
+
+#, fuzzy, c-format
+msgid "Unable to run \"%s\": %s\n"
+msgstr "cupsaddsmb: Kann \"%s\" nicht ausführen: %s\n"
+
+#, fuzzy, c-format
+msgid "Job #%d is already canceled - can't cancel."
+msgstr "Auftrag #%d wurde bereits abgebrochen - abbrechen nicht möglich."
+
+#, c-format
+msgid "Bad notify-recipient URI \"%s\"!"
+msgstr ""
+
+#, c-format
+msgid "notify-recipient URI \"%s\" uses unknown scheme!"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "Bad notify-pull-method \"%s\"!"
+msgstr "Falscher port-monitor \"%s\"!"
+
+#, fuzzy, c-format
+msgid ""
+" **FAIL** %s must be 1284DeviceID!\n"
+" REF: Page 72, section 5.5\n"
+msgstr ""
+" **FEHLGESCHLAGEN** 1284DeviceId muss 1284DeviceID sein!\n"
+" REF: Seite 72, Kapitel 5.5\n"
+
+#, fuzzy, c-format
+msgid "lpoptions: Unable to get PPD file for %s: %s\n"
+msgstr "lpoptions: Kann PPD für %s nicht öffnen!\n"
msgstr ""
"Project-Id-Version: CUPS 1.2\n"
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
-"POT-Creation-Date: 2006-05-21 10:07-0400\n"
-"PO-Revision-Date: 2006-06-12 19:01+0100\n"
+"POT-Creation-Date: 2007-01-23 09:19-0500\n"
+"PO-Revision-Date: 2007-01-29 22:15+0100\n"
"Last-Translator: Juan Pablo González Riopedre <riopedre@tiscali.es>\n"
"Language-Team: Spanish\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Bookmarks: -1,-1,-1,-1,-1,693,-1,-1,-1,-1\n"
msgid "Options Installed"
msgstr "Opciones instaladas"
" **FALLO** 1284DeviceId debe ser 1284DeviceID.\n"
" REF: Página 72, sección 5.5\n"
+#, c-format
+msgid "Missing value on line %d!"
+msgstr "Falta un valor en la línea %d."
+
+#, c-format
+msgid "Missing double quote on line %d!"
+msgstr "Faltan dobles comillas en línea %d."
+
+#, c-format
+msgid "Bad option + choice on line %d!"
+msgstr "Opción incorrecta + preferencia en línea %d."
+
+msgid "Empty PPD file!"
+msgstr "Archivo PPD vacío."
+
+#, c-format
+msgid "Unable to set Windows printer driver (%d)!"
+msgstr "No se ha podido configurar el controlador de impresora de Windows (%d)."
+
+#, c-format
+msgid "Unable to run \"%s\": %s\n"
+msgstr "No se ha podido ejecutar \"%s\": %s\n"
+
+#, c-format
+msgid "Job #%d is already canceled - can't cancel."
+msgstr "El trabajo #%d ya está cancelado - no se puede cancelar."
+
+#, c-format
+msgid "Bad notify-recipient URI \"%s\"!"
+msgstr "URI notify-recipient \"%s\" incorrecto."
+
+#, c-format
+msgid "notify-recipient URI \"%s\" uses unknown scheme!"
+msgstr "El URI notify-recipient \"%s\" usa un esquema desconocido."
+
+#, c-format
+msgid "Bad notify-pull-method \"%s\"!"
+msgstr "notify-pull-method \"%s\" incorrecto."
+
+#, c-format
+msgid ""
+" **FAIL** %s must be 1284DeviceID!\n"
+" REF: Page 72, section 5.5\n"
+msgstr ""
+" **FALLO** %s debe ser 1284DeviceID.\n"
+" REF: Página 72, sección 5.5\n"
+
+#, c-format
+msgid "lpoptions: Unable to get PPD file for %s: %s\n"
+msgstr "lpoptions: No se ha podido obtener el archivo PPD para %s: %s\n"
+
msgstr ""
"Project-Id-Version: CUPS 1.2\n"
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
-"POT-Creation-Date: 2006-05-21 10:07-0400\n"
+"POT-Creation-Date: 2007-01-23 09:19-0500\n"
"PO-Revision-Date: 2006-09-93 01:41+0200\n"
"Last-Translator: Marek Laane <bald@starman.ee>\n"
"Language-Team: Estonian <et@li.org>\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "Options Installed"
msgid "Auto"
msgstr "Automaatne"
-msgid "Enter your username and password or the root username and password to access this page."
-msgstr "Selle lehekülje avamiseks andke enda või administraatori (root) kasutajanimi ja parool."
+msgid ""
+"Enter your username and password or the root username and password to access "
+"this page."
+msgstr ""
+"Selle lehekülje avamiseks andke enda või administraatori (root) kasutajanimi "
+"ja parool."
msgid "You must use a https: URL to access this page."
msgstr "Selle lehekülje avamiseks tuleb kasutada https: URL-i."
msgid "The printer or class was not found."
msgstr "Printerit või klassi ei leitud."
-msgid "The printer-uri must be of the form \"ipp://HOSTNAME/classes/CLASSNAME\"."
+msgid ""
+"The printer-uri must be of the form \"ipp://HOSTNAME/classes/CLASSNAME\"."
msgstr "printer-uri peab olema kujul \"ipp://MASINANIMI/classes/KLASSINIMI\"."
#, c-format
msgid "The notify-user-data value is too large (%d > 63 octets)!"
msgstr "notify-user-data väärtus on liiga suur (%d > 63 oktetti)!"
-msgid "The notify-lease-duration attribute cannot be used with job subscriptions."
+msgid ""
+"The notify-lease-duration attribute cannot be used with job subscriptions."
msgstr "notify-lease-duration atribuuti ei saa kasutada töötellimuste korral."
-msgid "The printer-uri must be of the form \"ipp://HOSTNAME/printers/PRINTERNAME\"."
-msgstr "printer-uri peab olema kujul \"ipp://MASINANIMI/printers/PRINTERINIMI\"."
+msgid ""
+"The printer-uri must be of the form \"ipp://HOSTNAME/printers/PRINTERNAME\"."
+msgstr ""
+"printer-uri peab olema kujul \"ipp://MASINANIMI/printers/PRINTERINIMI\"."
#, c-format
msgid "A class named \"%s\" already exists!"
msgstr "Klass nimega \"%s\" on juba olemas!"
#, c-format
-msgid "File device URIs have been disabled! To enable, see the FileDevice directive in \"%s/cupsd.conf\"."
+msgid ""
+"File device URIs have been disabled! To enable, see the FileDevice directive "
+"in \"%s/cupsd.conf\"."
msgstr ""
-"Failiseadme URI-d on keelatud! Nende lubamiseks vaadake FileDevice direktiivi failis "
-"\"%s/cupsd.conf\"."
+"Failiseadme URI-d on keelatud! Nende lubamiseks vaadake FileDevice "
+"direktiivi failis \"%s/cupsd.conf\"."
#, c-format
msgid "Bad device-uri \"%s\"!"
msgstr "lpq: tundmatu sihtkoht \"%s\"!\n"
#, c-format
-msgid "lp: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgid ""
+"lp: error - %s environment variable names non-existent destination \"%s\"!\n"
msgstr "lp: viga - %s keskkonnamuutuja nimetab olematu sihtkoha \"%s\"!\n"
msgid "lpq: error - no default destination available.\n"
msgid "lpq: get-jobs failed: %s\n"
msgstr "lpq: get-jobs ebaõnnestus: %s\n"
-msgid "Rank Owner Pri Job Files Total Size\n"
-msgstr "Järk Omanik Prio Töö Failid Kogusuurus\n"
+msgid ""
+"Rank Owner Pri Job Files Total Size\n"
+msgstr ""
+"Järk Omanik Prio Töö Failid Kogusuurus\n"
msgid "Rank Owner Job File(s) Total Size\n"
msgstr "Järk Omanik Töö Failid Kogusuurus\n"
msgstr "lpr: viga - oodati väärust pärast võtit -%c!\n"
#, c-format
-msgid "lpr: warning - '%c' format modifier not supported - output may not be correct!\n"
-msgstr "lpr: hoiatus - '%c' vormingus modifikaator pole toetatud - väljund võib olla vigane!\n"
+msgid ""
+"lpr: warning - '%c' format modifier not supported - output may not be "
+"correct!\n"
+msgstr ""
+"lpr: hoiatus - '%c' vormingus modifikaator pole toetatud - väljund võib olla "
+"vigane!\n"
msgid "lpr: error - expected option=value after -o option!\n"
msgstr "lpr: viga - oodati võti=väärtus pärast võtit -o!\n"
msgstr "lpr: viga - liiga palju faile - \"%s\"\n"
#, c-format
-msgid "lpr: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgid ""
+"lpr: error - %s environment variable names non-existent destination \"%s\"!\n"
msgstr "lpr: viga - %s keskkonnamuutuja nimetab olematu sihtkoha \"%s\"!\n"
msgid "lpr: error - no default destination available.\n"
#, c-format
msgid "cupsaddsmb: Unable to copy Windows 2000 printer driver files (%d)!\n"
-msgstr "cupsaddsmb: ei õnnestunud kopeerida Windows 2000 printeridraiverifaile (%d)!\n"
+msgstr ""
+"cupsaddsmb: ei õnnestunud kopeerida Windows 2000 printeridraiverifaile (%"
+"d)!\n"
#, c-format
msgid "cupsaddsmb: Unable to copy CUPS printer driver files (%d)!\n"
-msgstr "cupsaddsmb: ei õnnestunud kopeerida CUPS-i printeridraiverifaile (%d)!\n"
+msgstr ""
+"cupsaddsmb: ei õnnestunud kopeerida CUPS-i printeridraiverifaile (%d)!\n"
#, c-format
msgid "cupsaddsmb: Unable to install Windows 2000 printer driver files (%d)!\n"
-msgstr "cupsaddsmb: ei õnnestunud paigaldada Windows 2000 printeridraiverifaile (%d)!\n"
+msgstr ""
+"cupsaddsmb: ei õnnestunud paigaldada Windows 2000 printeridraiverifaile (%"
+"d)!\n"
#, c-format
msgid "cupsaddsmb: Unable to copy Windows 9x printer driver files (%d)!\n"
-msgstr "cupsaddsmb: ei õnnestunud kopeerida Windows 9x printeridraiverifaile (%d)!\n"
+msgstr ""
+"cupsaddsmb: ei õnnestunud kopeerida Windows 9x printeridraiverifaile (%d)!\n"
#, c-format
msgid "cupsaddsmb: Unable to install Windows 9x printer driver files (%d)!\n"
-msgstr "cupsaddsmb: ei õnnestunud paigaldada Windows 9x printeridraiverifaile (%d)!\n"
+msgstr ""
+"cupsaddsmb: ei õnnestunud paigaldada Windows 9x printeridraiverifaile (%d)!\n"
#, c-format
msgid "cupsaddsmb: Unable to set Windows printer driver (%d)!\n"
msgid " PASS DefaultPaperDimension\n"
msgstr " SOORITATUD DefaultPaperDimension\n"
-#, c-format
+#, fuzzy, c-format
msgid ""
" **FAIL** BAD Default%s %s\n"
-" Viide: Page 40, section 4.5.\n"
+" REF: Page 40, section 4.5.\n"
msgstr ""
" **EBAÕNN** VIGANE Default%s %s\n"
" Viide: lk 40, sektsioon 4.5.\n"
#, c-format
msgid ""
-" WARN Duplex option keyword %s should be named Duplex or JCLDuplex!\n"
+" WARN Duplex option keyword %s should be named Duplex or "
+"JCLDuplex!\n"
" REF: Page 122, section 5.17\n"
msgstr ""
-" HOIATUS Dupleksi võtme võtmesõna %s peab olema nimega Duplex või JCLDuplex!\n"
+" HOIATUS Dupleksi võtme võtmesõna %s peab olema nimega Duplex või "
+"JCLDuplex!\n"
" Viide: lk 122, sektsioon 5.17\n"
msgid " WARN Default choices conflicting!\n"
" WARN LanguageEncoding required by PPD 4.3 spec.\n"
" REF: Pages 56-57, section 5.3.\n"
msgstr ""
-" HOIATUS LanguageEncoding on PPD 4.3 spetsifikatsiooni järgi nõutav.\n"
+" HOIATUS LanguageEncoding on PPD 4.3 spetsifikatsiooni järgi "
+"nõutav.\n"
" Viide: lk 56-57, sektsioon 5.3.\n"
msgid ""
" WARN PCFileName longer than 8.3 in violation of PPD spec.\n"
" REF: Pages 61-62, section 5.3.\n"
msgstr ""
-" HOIATUS PCFileName pikem kui 8.3 läheb vastuollu PPD spetsifikatsiooniga.\n"
+" HOIATUS PCFileName pikem kui 8.3 läheb vastuollu PPD "
+"spetsifikatsiooniga.\n"
" Viide: lk 61-62, sektsioon 5.3.\n"
msgid ""
" WARN Protocols contains PJL but JCL attributes are not set.\n"
" REF: Pages 78-79, section 5.7.\n"
msgstr ""
-" HOIATUS Protocols sisaldab PJL, kuid JCL atribuudid pole määratud.\n"
+" HOIATUS Protocols sisaldab PJL, kuid JCL atribuudid pole "
+"määratud.\n"
" Viide: lk 78-79, sektsioon 5.7.\n"
#, c-format
" (constraint=\"%s %s %s %s\")\n"
msgid ""
-"Usage: cupstestppd [-q] [-r] [-v[v]] filename1.ppd[.gz] [... filenameN.ppd[.gz]]\n"
+"Usage: cupstestppd [-q] [-r] [-v[v]] filename1.ppd[.gz] [... filenameN.ppd[."
+"gz]]\n"
" program | cupstestppd [-q] [-r] [-v[v]] -\n"
msgstr ""
-"Kasutamine: cupstestppd [-q] [-r] [-v[v]] failinimi1.ppd[.gz] [... failinimiN.ppd[.gz]]\n"
+"Kasutamine: cupstestppd [-q] [-r] [-v[v]] failinimi1.ppd[.gz] [... "
+"failinimiN.ppd[.gz]]\n"
" program | cupstestppd [-q] [-r] [-v[v]] -\n"
msgid "lpstat: Need \"completed\" or \"not-completed\" after -W!\n"
msgstr "süsteemi vaikimisi sihtkoht: %s\n"
#, c-format
-msgid "lpstat: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgid ""
+"lpstat: error - %s environment variable names non-existent destination \"%s"
+"\"!\n"
msgstr "lpstat: viga - %s keskkonnamuutuja nimetab olematu sihtkoha \"%s\"!\n"
msgid "no system default destination\n"
" lpadmin [-h server] -p printer [-c add-class] [-i liides] [-m mudel]\n"
" [-r remove-class] [-v seade] [-D kirjeldus]\n"
" [-P ppd-fail] [-o nimi=väärtus]\n"
-" [-u allow:kasutaja,kasutaja] [-u deny:kasutaja,kasutaja]\n"
+" [-u allow:kasutaja,kasutaja] [-u deny:kasutaja,"
+"kasutaja]\n"
#, c-format
msgid "lpadmin: Unable to create temporary file: %s\n"
msgid "lp: Unknown option '%c'!\n"
msgstr "lp: tundmatu võti '%c'!\n"
-msgid "lp: Error - cannot print from stdin if files or a job ID are provided!\n"
-msgstr "lp: viga - standardsisendist ei saa trükkida, kui on antud failid või töö ID!\n"
+msgid ""
+"lp: Error - cannot print from stdin if files or a job ID are provided!\n"
+msgstr ""
+"lp: viga - standardsisendist ei saa trükkida, kui on antud failid või töö "
+"ID!\n"
#, c-format
msgid "lp: Unable to access \"%s\" - %s\n"
" lpoptions [-h server] [-E] -x printer\n"
msgid "lppasswd: Only root can add or delete passwords!\n"
-msgstr "lppasswd: ainult administraator (root) võib paroole lisada või kustutada!\n"
+msgstr ""
+"lppasswd: ainult administraator (root) võib paroole lisada või kustutada!\n"
msgid "Enter old password:"
msgstr "Vana parool:"
msgid "Add Class"
msgstr "Klassi lisamine"
-msgid "The class name may only contain up to 127 printable characters and may not contain spaces, slashes (/), or the pound sign (#)."
+msgid ""
+"The class name may only contain up to 127 printable characters and may not "
+"contain spaces, slashes (/), or the pound sign (#)."
msgstr ""
-"Klassi nimes tohib olla ainult kuni 127 trükitavat märki ning selles ei tohi sisalduda tühikuid, "
-"kaldkriipse (/) ega trelle (#)."
+"Klassi nimes tohib olla ainult kuni 127 trükitavat märki ning selles ei tohi "
+"sisalduda tühikuid, kaldkriipse (/) ega trelle (#)."
msgid "Unable to modify class:"
msgstr "Klassi muutmine ebaõnnestus:"
msgid "Add Printer"
msgstr "Printeri lisamine"
-msgid "The printer name may only contain up to 127 printable characters and may not contain spaces, slashes (/), or the pound sign (#)."
+msgid ""
+"The printer name may only contain up to 127 printable characters and may not "
+"contain spaces, slashes (/), or the pound sign (#)."
msgstr ""
-"Printeri nimes tohib olla ainult kuni 127 trükitavat märki ning selles ei tohi sisalduda tühikuid, "
-"kaldkriipse (/) ega trelle (#)."
+"Printeri nimes tohib olla ainult kuni 127 trükitavat märki ning selles ei "
+"tohi sisalduda tühikuid, kaldkriipse (/) ega trelle (#)."
msgid "Unable to get list of printer drivers:"
msgstr "Printeridraiverite loendi hankimine ebaõnnestus:"
msgstr "cupsaddsmb: ühtegi Windowsi printeridraiverit pole paigaldatud!\n"
msgid "cupsaddsmb: Warning, no Windows 2000 printer drivers are installed!\n"
-msgstr "cupsaddsmb: hoiatus - ühtegi Windows 2000 printeridraiverit pole paigaldatud!\n"
+msgstr ""
+"cupsaddsmb: hoiatus - ühtegi Windows 2000 printeridraiverit pole "
+"paigaldatud!\n"
#, c-format
msgid "lpadmin: Printer %s is already a member of class %s.\n"
msgstr "Kasutamine: lpmove töö/lähtekoht sihtkoht\n"
msgid "lpstat: Need \"completed\", \"not-completed\", or \"all\" after -W!\n"
-msgstr "lpstat: pärast -W on vajalik \"completed\", \"not-completed\" või \"all\"!\n"
+msgstr ""
+"lpstat: pärast -W on vajalik \"completed\", \"not-completed\" või \"all\"!\n"
#, c-format
msgid "%s accepting requests since %s\n"
msgstr "%s: viga - võtme '-h' järel oodati masinanime!\n"
#, c-format
-msgid "%s: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgid ""
+"%s: error - %s environment variable names non-existent destination \"%s\"!\n"
msgstr "%s: viga - %s keskkonnamuutuja nimetab olematu sihtkoha \"%s\"!\n"
#, c-format
msgid "%s: error - no default destination available.\n"
msgstr "%s: viga - vaikimisi sihtkoht pole saadaval.\n"
-msgid "Usage: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]\n"
-msgstr "Kasutamine: lpq [-P sihtkoht] [-U kasutajanimi] [-h masinanimi[:port]] [-l] [+intervall]\n"
+msgid ""
+"Usage: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]\n"
+msgstr ""
+"Kasutamine: lpq [-P sihtkoht] [-U kasutajanimi] [-h masinanimi[:port]] [-l] "
+"[+intervall]\n"
#, c-format
msgid "%s: Error - expected hostname after '-H' option!\n"
msgstr "%s: viga - võtme '-%c' järel oodati väärtust!\n"
#, c-format
-msgid "%s: Warning - '%c' format modifier not supported - output may not be correct!\n"
-msgstr "%s: hoiatus - '%c' vormingus modifikaator pole toetatud - väljund võib olla vigane!\n"
+msgid ""
+"%s: Warning - '%c' format modifier not supported - output may not be "
+"correct!\n"
+msgstr ""
+"%s: hoiatus - '%c' vormingus modifikaator pole toetatud - väljund võib olla "
+"vigane!\n"
#, c-format
msgid "%s: error - expected option=value after '-o' option!\n"
msgstr "%s: viga - liiga palju faile - \"%s\"\n"
#, c-format
-msgid "%s: Error - %s environment variable names non-existent destination \"%s\"!\n"
+msgid ""
+"%s: Error - %s environment variable names non-existent destination \"%s\"!\n"
msgstr "%s: viga - %s keskkonnamuutuja nimetab olematu sihtkoha \"%s\"!\n"
#, c-format
msgstr "%s: hoiatus - sisu tüübi võtit ignoreeritakse!\n"
#, c-format
-msgid "%s: Error - cannot print from stdin if files or a job ID are provided!\n"
-msgstr "%s: viga - standardsisendist ei saa trükkida, kui antud on failid või töö ID!\n"
+msgid ""
+"%s: Error - cannot print from stdin if files or a job ID are provided!\n"
+msgstr ""
+"%s: viga - standardsisendist ei saa trükkida, kui antud on failid või töö "
+"ID!\n"
#, c-format
-msgid "%s: Error - need \"completed\", \"not-completed\", or \"all\" after '-W' option!\n"
-msgstr "%s: viga - võtme '-W' järel on vajalik \"completed\", \"not-completed\" või \"all\"!\n"
+msgid ""
+"%s: Error - need \"completed\", \"not-completed\", or \"all\" after '-W' "
+"option!\n"
+msgstr ""
+"%s: viga - võtme '-W' järel on vajalik \"completed\", \"not-completed\" või "
+"\"all\"!\n"
#, c-format
msgid "%s: Error - expected destination after '-b' option!\n"
msgstr "cupsd: võtme \"-c\" järel oodati seadistustefaili nime!\n"
msgid "cupsd: launchd(8) support not compiled in, running in normal mode.\n"
-msgstr "cupsd: launchd(8) toetus pole kompileeritud, käivitatakse tavarežiimis.\n"
+msgstr ""
+"cupsd: launchd(8) toetus pole kompileeritud, käivitatakse tavarežiimis.\n"
#, c-format
msgid "cupsd: Unknown option \"%c\" - aborting!\n"
msgid " WARN Line %d only contains whitespace!\n"
msgstr " HOIATUS Rida %d sisaldab ainult tühikut!\n"
-msgid " WARN File contains a mix of CR, LF, and CR LF line endings!\n"
+msgid ""
+" WARN File contains a mix of CR, LF, and CR LF line endings!\n"
msgstr " HOIATUS Fail sisaldab CR. LF ja CR LF reavahetuste segu!\n"
-msgid " WARN Non-Windows PPD files should use lines ending with only LF, not CR LF!\n"
-msgstr " HOIATUS Mitte-Windowsi PPD-failid peavad kasutama ainult LF, mitte CR LF reavahetusi!\n"
+msgid ""
+" WARN Non-Windows PPD files should use lines ending with only LF, "
+"not CR LF!\n"
+msgstr ""
+" HOIATUS Mitte-Windowsi PPD-failid peavad kasutama ainult LF, "
+"mitte CR LF reavahetusi!\n"
msgid "Printer Maintenance"
msgstr "Printeri hooldus"
msgstr " **EBAÕNN** Puudub \"%s\" tõlkestring võtmele %s!\n"
#, c-format
-msgid " **FAIL** Default translation string for option %s contains 8-bit characters!\n"
-msgstr " **EBAÕNN** Vaikimisi tõlkestring võtmele %s sisaldab 8-bitiseid märke!\n"
+msgid ""
+" **FAIL** Default translation string for option %s contains 8-bit "
+"characters!\n"
+msgstr ""
+" **EBAÕNN** Vaikimisi tõlkestring võtmele %s sisaldab 8-bitiseid "
+"märke!\n"
#, c-format
-msgid " **FAIL** Missing \"%s\" translation string for option %s, choice %s!\n"
+msgid ""
+" **FAIL** Missing \"%s\" translation string for option %s, choice %s!\n"
msgstr " **EBAÕNN** Puudub \"%s\" tõlkestring võtmele %s, valikule %s!\n"
#, c-format
-msgid " **FAIL** Default translation string for option %s choice %s contains 8-bit characters!\n"
-msgstr " **EBAÕNN** Vaikimisi tõlkestring võtmele %s, valikule %s sisaldab 8-bitiseid märke!\n"
+msgid ""
+" **FAIL** Default translation string for option %s choice %s contains "
+"8-bit characters!\n"
+msgstr ""
+" **EBAÕNN** Vaikimisi tõlkestring võtmele %s, valikule %s sisaldab 8-"
+"bitiseid märke!\n"
#, c-format
msgid " **FAIL** Bad cupsFilter value \"%s\"!\n"
msgstr "Töö nr %d on juba lõpetatud - enam ei saa katkestada."
#, c-format
-msgid "You must access this page using the URL <A HREF=\"https://%s:%d%s\">https://%s:%d%s</A>."
-msgstr "Sellele leheküljele pääseb URL-iga <A HREF=\"https://%s:%d%s\">https://%s:%d%s</A>."
+msgid ""
+"You must access this page using the URL <A HREF=\"https://%s:%d%s\">https://%"
+"s:%d%s</A>."
+msgstr ""
+"Sellele leheküljele pääseb URL-iga <A HREF=\"https://%s:%d%s\">https://%s:%d%"
+"s</A>."
#, c-format
msgid "Unsupported format '%s'!"
"\n"
" -h Show program usage\n"
"\n"
-" Note: this program only validates the DSC comments, not the PostScript itself.\n"
+" Note: this program only validates the DSC comments, not the PostScript "
+"itself.\n"
msgstr ""
"Kasutamine: cupstestdsc [võtmed] failinimi.ps [... failinimi.ps]\n"
" cupstestdsc [võtmed] -\n"
"\n"
" -h Programmi kasutamise näitamine\n"
"\n"
-" Märkus: see programm kontrollib ainult DSC kommentaare, mitte PostScripti ennast.\n"
+" Märkus: see programm kontrollib ainult DSC kommentaare, mitte "
+"PostScripti ennast.\n"
#, c-format
msgid "Password for %s on %s? "
" **EBAÕNN** 1284DeviceId peab olema 1284DeviceID!\n"
" Viide: lk 72, sektsioon 5.5\n"
+#, fuzzy, c-format
+msgid "Missing value on line %d!"
+msgstr "Puudub väärtus real %d!\n"
+
+#, fuzzy, c-format
+msgid "Missing double quote on line %d!"
+msgstr "Puuduvad topeltjutumärgid real %d!\n"
+
+#, fuzzy, c-format
+msgid "Bad option + choice on line %d!"
+msgstr "Vigane võti + valik real %d!\n"
+
+#, fuzzy
+msgid "Empty PPD file!"
+msgstr "PPD-faili kopeerimine ebaõnnestus!"
+
+#, fuzzy, c-format
+msgid "Unable to set Windows printer driver (%d)!"
+msgstr "Ei õnnestu määrata Windowsi printeridraiverit (%d)!\n"
+
+#, fuzzy, c-format
+msgid "Unable to run \"%s\": %s\n"
+msgstr "cupsaddsmb: \"%s\" käivitamine ebaõnnestus: %s\n"
+
+#, fuzzy, c-format
+msgid "Job #%d is already canceled - can't cancel."
+msgstr "Töö nr %d on juba katkestatud - enam ei saa katkestada."
+
+#, c-format
+msgid "Bad notify-recipient URI \"%s\"!"
+msgstr ""
+
+#, c-format
+msgid "notify-recipient URI \"%s\" uses unknown scheme!"
+msgstr ""
+#, fuzzy, c-format
+msgid "Bad notify-pull-method \"%s\"!"
+msgstr "Vigane port-monitor \"%s\"!"
+
+#, fuzzy, c-format
+msgid ""
+" **FAIL** %s must be 1284DeviceID!\n"
+" REF: Page 72, section 5.5\n"
+msgstr ""
+" **EBAÕNN** 1284DeviceId peab olema 1284DeviceID!\n"
+" Viide: lk 72, sektsioon 5.5\n"
+
+#, fuzzy, c-format
+msgid "lpoptions: Unable to get PPD file for %s: %s\n"
+msgstr "lpoptions: ei õnnestu avada PPD-faili %s jaoks!\n"
--- /dev/null
+#
+# "$Id$"
+#
+# Message catalog template for the Common UNIX Printing System (CUPS).
+#
+# Copyright 2005-2006 by Easy Software Products.
+#
+# These coded instructions, statements, and computer programs are the
+# property of Easy Software Products and are protected by Federal
+# copyright law. Distribution and use rights are outlined in the file
+# "LICENSE.txt" which should have been included with this file. If this
+# file is missing or damaged please contact Easy Software Products
+# at:
+#
+# Attn: CUPS Licensing Information
+# Easy Software Products
+# 44141 Airport View Drive, Suite 204
+# Hollywood, Maryland 20636 USA
+#
+# Voice: (301) 373-9600
+# EMail: cups-info@cups.org
+# WWW: http://www.cups.org
+#
+#
+# NDT: I did not translate the messages used in conformance, DSC and PPD tests,
+# because they are destined to developers only, as far as I understand.
+#
+
+msgid ""
+msgstr ""
+"Project-Id-Version: CUPS 1.2\n"
+"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
+"POT-Creation-Date: 2006-05-21 10:08-0400\n"
+"PO-Revision-Date: 2007-01-25 19:55+0200\n"
+"Last-Translator: Philippe Combes <Philippe.Combes@ens-lyon.fr>\n"
+"Language-Team: Français\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Options Installed"
+msgstr "Options Installées"
+
+msgid "Class"
+msgstr "Classe"
+
+msgid "Printer"
+msgstr "Imprimante"
+
+msgid "Extra"
+msgstr "Supplémentaire"
+
+msgid "General"
+msgstr "Généralités"
+
+msgid "Media Size"
+msgstr "Taille du support"
+
+msgid "Media Type"
+msgstr "Type de support"
+
+msgid "Media Source"
+msgstr "Source du support"
+
+msgid "Output Mode"
+msgstr "Mode de sortie"
+
+msgid "Resolution"
+msgstr "Résolution"
+
+msgid "Variable"
+msgstr "Variable"
+
+msgid "Yes"
+msgstr "Oui"
+
+msgid "No"
+msgstr "Non"
+
+msgid "Auto"
+msgstr "Auto"
+
+msgid "Enter your username and password or the root username and password to access this page."
+msgstr "Entrez votre nom d'utilisateur et votre mot de passe UNIX ou bien identifiez-vous en tant que « root » pour accéder à cette page."
+
+msgid "You must use a https: URL to access this page."
+msgstr "Vous devez utiliser une URL https: pour accéder à cette page."
+
+#, c-format
+msgid "Bad request version number %d.%d!"
+msgstr "La requête a un numéro de version erroné : %d.%d !"
+
+msgid "No attributes in request!"
+msgstr "Aucun attribut dans la requête !"
+
+#, c-format
+msgid "Attribute groups are out of order (%x < %x)!"
+msgstr "Les groupes d'attributs ne sont pas dans le bon ordre (%x < %x) !"
+
+msgid "Missing required attributes!"
+msgstr "Il manque des attributs indispensables !"
+
+#, c-format
+msgid "%s not supported!"
+msgstr "%s: opération non gérée !"
+
+msgid "The printer or class was not found."
+msgstr "L'imprimante ou la classe n'a pas été trouvée."
+
+msgid "The printer-uri must be of the form \"ipp://HOSTNAME/classes/CLASSNAME\"."
+msgstr "L'URI de l'imprimante doit suivre le format « ipp://NOM_MACHINE/classes/NOM_CLASSE »."
+
+#, c-format
+msgid "The printer-uri \"%s\" contains invalid characters."
+msgstr "L'URI de l'imprimante « %s » contient des caractères ."
+
+#, c-format
+msgid "A printer named \"%s\" already exists!"
+msgstr "Il existe déjà une imprimante appelée « %s » !"
+
+#, c-format
+msgid "Attempt to set %s printer-state to bad value %d!"
+msgstr "Tentative de donner une valeur erronée au paramètre « printer-state » : %d !"
+
+#, c-format
+msgid "add_class: Unknown printer-op-policy \"%s\"."
+msgstr "add_class: L'attribut « printer-op-policy » a une valeur non comprise : « %s »."
+
+#, c-format
+msgid "add_class: Unknown printer-error-policy \"%s\"."
+msgstr "add_class: L'attribut « printer-error-policy » a une valeur non comprise : « %s »."
+
+msgid "Unable to allocate memory for file types!"
+msgstr "Impossible d'allouer de la mémoire pour les types de fichiers !"
+
+#, c-format
+msgid "Character set \"%s\" not supported!"
+msgstr "Jeu de caractères « %s » non géré !"
+
+#, c-format
+msgid "Language \"%s\" not supported!"
+msgstr "Langue « %s » non gérée !"
+
+#, c-format
+msgid "The notify-user-data value is too large (%d > 63 octets)!"
+msgstr "La valeur de l'attribut « notify-user-data » est trop grande ( %d > 63 octets ) !"
+
+msgid "The notify-lease-duration attribute cannot be used with job subscriptions."
+msgstr "L'attribut « notify-lease-duration » ne peut pas être utilisé dans une souscription de tâche."
+
+msgid "The printer-uri must be of the form \"ipp://HOSTNAME/printers/PRINTERNAME\"."
+msgstr "L'URI de l'imprimante doit suivre le format « ipp://NOM_MACHINE/printers/NOM_CLASSE »."
+
+#, c-format
+msgid "A class named \"%s\" already exists!"
+msgstr ""Il existe déjà une classe appelée « %s » !"
+
+#, c-format
+msgid "File device URIs have been disabled! To enable, see the FileDevice directive in \"%s/cupsd.conf\"."
+msgstr "L'impression dans un fichier a été désactivée ! Pour l'activer, cf. la directive « FileDevice » dans « %s/cupsd.conf »."
+
+#, c-format
+msgid "Bad device-uri \"%s\"!"
+msgstr "Valeur erronée pour le paramètre « device-uri » : « %s » !"
+
+#, c-format
+msgid "Bad port-monitor \"%s\"!"
+msgstr "Valeur erronée pour le paramètre « port-monitor » : « %s » !"
+
+#, c-format
+msgid "Bad printer-state value %d!"
+msgstr "Valeur erronée pour le paramètre « printer-state » : « %s » !"
+
+#, c-format
+msgid "Unknown printer-op-policy \"%s\"."
+msgstr "L'attribut « printer-op-policy » a une valeur non comprise : « %s »."
+
+#, c-format
+msgid "Unknown printer-error-policy \"%s\"."
+msgstr "L'attribut « printer-error-policy » a une valeur non comprise : « %s »."
+
+#, c-format
+msgid "Unable to copy interface script - %s!"
+msgstr "Impossible de copier le « script » d'interface - « %s » !"
+
+#, c-format
+msgid "Unable to copy PPD file - %s!"
+msgstr "Impossible de copier le fichier PPD - « %s » !"
+
+msgid "Unable to copy PPD file!"
+msgstr "Impossible de copier le fichier PPD !"
+
+msgid "Got a printer-uri attribute but no job-id!"
+msgstr "Attribut « printer-uri » trouvé mais pas de « job-id »"
+
+#, c-format
+msgid "Bad job-uri attribute \"%s\"!"
+msgstr "Valeur erronée pour l'attribut « job-uri » : « %s » !"
+
+#, c-format
+msgid "Job #%d doesn't exist!"
+msgstr "La tâche n°%d n'existe pas !"
+
+#, c-format
+msgid "Job #%d is not held for authentication!"
+msgstr "La tâche n°%d n'est pas en attente d'authentification !"
+
+#, c-format
+msgid "You are not authorized to authenticate job #%d owned by \"%s\"!"
+msgstr "Vous n'avez pas l'autorisation d'authentifier la tâche n°%d appartenant à « %s » !"
+
+msgid "The printer-uri attribute is required!"
+msgstr "L'attribut « printer-uri » est indispensable !"
+
+msgid "Missing requesting-user-name attribute!"
+msgstr "Il manque l'attribut « requesting-user-name » !"
+
+#, c-format
+msgid "The printer-uri \"%s\" is not valid."
+msgstr "L'attribut « printer-uri » est incorrect : « %s »."
+
+#, c-format
+msgid "No active jobs on %s!"
+msgstr "Il n'y a pas de tâche en cours sur « %s » !"
+
+#, c-format
+msgid "You are not authorized to delete job #%d owned by \"%s\"!"
+msgstr "Vous n'avez pas l'autorisation de supprimer la tâche n°%d appartenant à « %s » !"
+
+#, c-format
+msgid "Job #%d is already %s - can't cancel."
+msgstr "La tâche n°%d est déjà « %s » - impossible de l'annuler."
+
+msgid "The printer or class is not shared!"
+msgstr "L'imprimante ou la classe n'est pas partagée !"
+
+#, c-format
+msgid "Destination \"%s\" is not accepting jobs."
+msgstr "La destination « %s » n'accepte aucune tâche."
+
+#, c-format
+msgid "Bad copies value %d."
+msgstr "Nombre de copies erroné : %d."
+
+#, c-format
+msgid "Bad page-ranges values %d-%d."
+msgstr "Intervalle de pages erroné : %d-%d."
+
+msgid "Too many active jobs."
+msgstr "Trop de tâches en cours."
+
+msgid "Quota limit reached."
+msgstr "Quota atteint."
+
+#, c-format
+msgid "Unable to add job for destination \"%s\"!"
+msgstr "Impossible d'ajouter une tâche pour la destination « %s » !"
+
+msgid "No subscription attributes in request!"
+msgstr "Pas d'attribut de souscription dans la requête !"
+
+msgid "notify-events not specified!"
+msgstr "Attribut « notify-events » non renseigné !"
+
+#, c-format
+msgid "Job %d not found!"
+msgstr "La tâche n°%d n'a pas été trouvée !"
+
+msgid "No default printer"
+msgstr "Pas d'imprimante par défaut"
+
+msgid "cups-deviced failed to execute."
+msgstr "L'exécution de « cups-deviced » a échouée."
+
+msgid "cups-driverd failed to execute."
+msgstr "L'exécution de « cups-driverd » a échouée."
+
+msgid "No destinations added."
+msgstr "Aucune destination ajoutée."
+
+#, c-format
+msgid "notify-subscription-id %d no good!"
+msgstr "Valeur erronée pour l'attribut « notify-subscription-id » : %d !"
+
+#, c-format
+msgid "Job #%s does not exist!"
+msgstr "La tâche n°%s n'existe pas !"
+
+#, c-format
+msgid "Job #%d does not exist!"
+msgstr "La tâche n°%d n'existe pas !"
+
+msgid "No subscriptions found."
+msgstr "Aucune souscription trouvée."
+
+#, c-format
+msgid "Not authorized to hold job #%d owned by \"%s\"!"
+msgstr "Vous n'avez pas l'autorisation de retenir la tâche n°%d appartenant à « %s » !"
+
+#, c-format
+msgid "Job #%d is finished and cannot be altered!"
+msgstr "La tâche n°%d est terminée et ne peut plus être modifiée !"
+
+#, c-format
+msgid "You are not authorized to move job #%d owned by \"%s\"!"
+msgstr "Vous n'avez pas l'autorisation de transférer la tâche n°%d appartenant à « %s » !"
+
+msgid "job-printer-uri attribute missing!"
+msgstr "Il manque l'attribut « job-printer-uri » !"
+
+#, c-format
+msgid "Unsupported compression \"%s\"!"
+msgstr "La compression « %s » n'est pas gérée !"
+
+msgid "No file!?!"
+msgstr "Pas de fichier !?!"
+
+#, c-format
+msgid "Could not scan type \"%s\"!"
+msgstr "Impossible de comprendre le format « %s » !"
+
+#, c-format
+msgid "Unsupported format '%s/%s'!"
+msgstr "Le format « %s » n'est pas géré !"
+
+msgid "Printer not shared!"
+msgstr "L'imprimante n'est pas partagée !"
+
+#, c-format
+msgid "Too many jobs - %d jobs, max jobs is %d."
+msgstr "Trop de tâches - %d tâches pour un maximum de %d."
+
+#, c-format
+msgid "Job #%d is not held!"
+msgstr "La tâche n°%d n'est pas retenue !"
+
+#, c-format
+msgid "You are not authorized to release job id %d owned by \"%s\"!"
+msgstr "Vous n'avez pas l'autorisation de libérer la tâche n°%d appartenant à « %s » !"
+
+#, c-format
+msgid "Job #%d is not complete!"
+msgstr "La tâche n°%d n'est pas terminée !"
+
+#, c-format
+msgid "Job #%d cannot be restarted - no files!"
+msgstr "La tâche n°%d ne peut être redémarrée - aucun fichier !"
+
+#, c-format
+msgid "You are not authorized to restart job id %d owned by \"%s\"!"
+msgstr "Vous n'avez pas l'autorisation de redémarrer la tâche n°%d appartenant à « %s » !"
+
+#, c-format
+msgid "You are not authorized to send document for job #%d owned by \"%s\"!"
+msgstr "Vous n'avez pas l'autorisation d'envoyer un document pour la tâche n°%d appartenant à « %s » !"
+
+#, c-format
+msgid "Bad document-format \"%s\"!"
+msgstr "Format de document erroné : « %s » !"
+
+#, c-format
+msgid "You are not authorized to alter job id %d owned by \"%s\"!"
+msgstr "Vous n'avez pas l'autorisation de modifier la tâche n°%d appartenant à « %s » !"
+
+#, c-format
+msgid "%s cannot be changed."
+msgstr "Impossible de modifier « %s »"
+
+msgid "Bad job-priority value!"
+msgstr "Valeur erronée pour l'attribut « job-priority » !"
+
+msgid "Job is completed and cannot be changed."
+msgstr "La tâche est terminée et ne peut être modifiée."
+
+msgid "Bad job-state value!"
+msgstr "Valeur erronée pour l'attribut « job-state » !"
+
+msgid "Job state cannot be changed."
+msgstr "L'état de la tâche ne peut être modifié."
+
+#, c-format
+msgid "Unsupported compression attribute %s!"
+msgstr "L'attribute de compression %s n'est pas géré !"
+
+#, c-format
+msgid "Unsupported format \"%s\"!"
+msgstr "Le format « %s » n'est pas géré !"
+
+#, c-format
+msgid "%s is not implemented by the CUPS version of lpc.\n"
+msgstr "« %s » n'est pas implanté dans la version CUPS de lpc.\n"
+
+msgid ""
+"Commands may be abbreviated. Commands are:\n"
+"\n"
+"exit help quit status ?\n"
+msgstr ""
+"Les commandes peuvent être abrégée. Elles sont:\n"
+"\n"
+"exit help quit status ?\n"
+
+msgid "help\t\tget help on commands\n"
+msgstr "help\t\tobtenir de l'aide sur les commandes\n"
+
+msgid "status\t\tshow status of daemon and queue\n"
+msgstr "status\t\taffiche l'état du démon et de la file\n"
+
+msgid "?Invalid help command unknown\n"
+msgstr "?Commande d'aide inconnue\n"
+
+#, c-format
+msgid "\tprinter is on device '%s' speed -1\n"
+msgstr "\tl'imprimante est sur le périphérique '%s', vitesse -1\n"
+
+msgid "\tqueuing is enabled\n"
+msgstr "\tla mise en file d'attente est permise\n"
+
+msgid "\tqueuing is disabled\n"
+msgstr "\tla mise en file d'attente est refusée\n"
+
+msgid "\tprinting is enabled\n"
+msgstr "\tl'impression est permise\n"
+
+msgid "\tprinting is disabled\n"
+msgstr "\tl'impression est refusée\n"
+
+msgid "\tno entries\n"
+msgstr "\taucune entrée\n"
+
+#, c-format
+msgid "\t%d entries\n"
+msgstr "\t%d entrées\n"
+
+msgid "\tdaemon present\n"
+msgstr "\tdémon présent\n"
+
+msgid "lpq: Unable to contact server!\n"
+msgstr "lpq: Impossible de contacter le serveur !\n"
+
+#, c-format
+msgid "%s: Sorry, no encryption support compiled in!\n"
+msgstr "%s: Désolé, la gestion du cryptage n'a pas été compilée !\n"
+
+#, c-format
+msgid "lpq: Unknown destination \"%s/%s\"!\n"
+msgstr lpq: Destination « %s/%s » inconnue !\n""
+
+#, c-format
+msgid "lpq: Unknown destination \"%s\"!\n"
+msgstr "lpq: Destination « %s » inconnue !\n"
+
+#, c-format
+msgid "lp: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr "lp: erreur - la variable d'environnement %s désigne une destination inexistente « %s » !\n"
+
+msgid "lpq: error - no default destination available.\n"
+msgstr "lpq: erreur - aucune destination par défaut n'est disponible.\n"
+
+#, c-format
+msgid "lpq: get-jobs failed: %s\n"
+msgstr "lpq: « get-jobs » a échoué: %s\n"
+
+msgid "Rank Owner Pri Job Files Total Size\n"
+msgstr "Rang Propr. Prio Tâche Fichiers Taille totale\n"
+
+msgid "Rank Owner Job File(s) Total Size\n"
+msgstr "Rang Propr. Tâche Fichiers Taille totale\n"
+
+#, c-format
+msgid "%s: %-33.33s [job %d localhost]\n"
+msgstr "%s: %-33.33s [tâche %d localhost]\n"
+
+#, c-format
+msgid " %-39.39s %.0f bytes\n"
+msgstr " %-39.39s %.0f octets\n"
+
+#, c-format
+msgid "%-6s %-10.10s %-4d %-10d %-27.27s %.0f bytes\n"
+msgstr "%-6s %-10.10s %-4d %-10d %-27.27s %.0f octets\n"
+
+#, c-format
+msgid "%-7s %-7.7s %-7d %-31.31s %.0f bytes\n"
+msgstr "%-7s %-7.7s %-7d %-31.31s %.0f octets\n"
+
+msgid "no entries\n"
+msgstr "aucune entrée\n"
+
+#, c-format
+msgid "lpq: get-printer-attributes failed: %s\n"
+msgstr "lpq: get-printer-attributes a échoué : %s\n"
+
+#, c-format
+msgid "%s is ready\n"
+msgstr "%s est prête\n"
+
+#, c-format
+msgid "%s is ready and printing\n"
+msgstr "%s est prête et en cours d'impression\n"
+
+#, c-format
+msgid "%s is not ready\n"
+msgstr "%s n'est pas prête\n"
+
+msgid "Usage: lpq [-P dest] [-l] [+interval]\n"
+msgstr "Utilisation : lpq [-P dest] [-l] [+intervalle]\n"
+
+#, c-format
+msgid "lpr: error - expected value after -%c option!\n"
+msgstr "lpr: erreur - il faut une valeur après l'option '-%c' !\n"
+
+#, c-format
+msgid "lpr: warning - '%c' format modifier not supported - output may not be correct!\n"
+msgstr "lpr: attention - le modificateur de format '%c' n'est pas géré - l'affichage pourrait être incorrect !\n"
+
+msgid "lpr: error - expected option=value after -o option!\n"
+msgstr "lpr: erreur - il faut un argument du type option=valeur après l'option '-o' !\n"
+
+msgid "lpr: warning - email notification is not currently supported!\n"
+msgstr "lpr: attention - la notification par courriel n'est pas encore gérée !\n"
+
+msgid "lpr: error - expected destination after -P option!\n"
+msgstr "lpr: erreur - il faut une destination après l'option '-P' !\n"
+
+msgid "lpr: error - expected copy count after -# option!\n"
+msgstr "lpr: erreur - il faut un nombre de copies après l'option '-#' !\n"
+
+#, c-format
+msgid "lpr: error - expected name after -%c option!\n"
+msgstr "lpr: erreur - il faut un nom après l'option '-%c' !\n"
+
+msgid "lpr: error - expected username after -U option!\n"
+msgstr "lpr: erreur - il faut un nom d'utilisateur après l'option '-U' !\n"
+
+#, c-format
+msgid "lpr: error - unknown option '%c'!\n"
+msgstr "lpr: erreur - option '%c' inconnue !\n"
+
+#, c-format
+msgid "lpr: error - unable to access \"%s\" - %s\n"
+msgstr "lpr: erreur - impossible d'accéder à « %s » - %s\n"
+
+#, c-format
+msgid "lpr: error - too many files - \"%s\"\n"
+msgstr "lpr: erreur - trop de fichiers - « %s »\n"
+
+#, c-format
+msgid "lpr: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr "lpr: erreur - la variable d'environnement %s désigne une destination inexistente « %s » !\n"
+
+msgid "lpr: error - no default destination available.\n"
+msgstr "lpr: erreur - aucune destination par défaut n'est disponible.\n"
+
+msgid "lpr: error - scheduler not responding!\n"
+msgstr "lpr: erreur - l'ordonnanceur ne répond pas !\n"
+
+#, c-format
+msgid "lpr: error - unable to create temporary file \"%s\" - %s\n"
+msgstr "lpr: erreur - impossible de créer le fichier temporaire « %s » - %s\n"
+
+#, c-format
+msgid "lpr: error - unable to write to temporary file \"%s\" - %s\n"
+msgstr "lpr: erreur - impossible d'écrire dans le fichier temporaire « %s » - %s\n"
+
+msgid "lpr: error - stdin is empty, so no job has been sent.\n"
+msgstr "lpr: erreur - stdin est vide, donc aucune tâche n'a été envoyée.\n"
+
+#, c-format
+msgid "lpr: error - unable to print file: %s\n"
+msgstr "lpr: erreur - impossible d'imprimer le fichier : %s\n"
+
+msgid "lprm: Unable to contact server!\n"
+msgstr "lprm: Impossible de contacter le serveur !\n"
+
+#, c-format
+msgid "lprm: Unknown destination \"%s\"!\n"
+msgstr "lprm: Destination « %s » inconnue !\n"
+
+#, c-format
+msgid "lprm: Unknown option '%c'!\n"
+msgstr "lprm: Option '%c' inconnue !\n"
+
+msgid "lprm: Job or printer not found!\n"
+msgstr "lprm: La tâche ou l'imprimante n'a pas été trouvée !\n"
+
+msgid "lprm: Not authorized to lprm job(s)!\n"
+msgstr "lprm: Vous n'avez pas l'autorisation de supprimer cette(ces) tâche(s) !\n"
+
+#, c-format
+msgid "lprm: You don't own job ID %d!\n"
+msgstr lprm: La tâche n°%d ne vous appartient pas !\n""
+
+msgid "lprm: Unable to lprm job(s)!\n"
+msgstr "lprm: Impossible de supprimer cette(ces) tâche(s) !\n"
+
+msgid "lprm: Unable to cancel job(s)!\n"
+msgstr "lprm: Impossible d'annuler cette(ces) tâche(s) !\n"
+
+#, c-format
+msgid "%s: Don't know what to do!\n"
+msgstr "%s: Je ne sais que faire !"
+
+#, c-format
+msgid "%s: Expected server name after -h!\n"
+msgstr "%s: Il faut un nom de serveur après l'option '-h' !\n"
+
+#, c-format
+msgid "%s: Expected reason text after -r!\n"
+msgstr "%s: Il faut le texte de la raison après l'option '-r' !\n"
+
+#, c-format
+msgid "%s: Unknown option '%c'!\n"
+msgstr "%s: Option '%c' inconnue !\n"
+
+#, c-format
+msgid "%s: Unable to connect to server: %s\n"
+msgstr "%s: Impossible de se connecter au serveur : %s\n"
+
+#, c-format
+msgid "%s: Operation failed: %s\n"
+msgstr "%s: L'opération a échoué : %s\n"
+
+msgid "cancel: Error - expected hostname after '-h' option!\n"
+msgstr "annulation: erreur - il faut un nom de machine après l'option '-h' !\n"
+
+msgid "cancel: Error - expected username after '-u' option!\n"
+msgstr "annulation: erreur - il faut un nom d'utilisateur après l'option '-u' !\n"
+
+#, c-format
+msgid "cancel: Unknown option '%c'!\n"
+msgstr "annulation: Option '%c' inconnue !"
+
+#, c-format
+msgid "cancel: Unknown destination \"%s\"!\n"
+msgstr "annulation: Destination inconnue « %s » !"
+
+msgid "cancel: Unable to contact server!\n"
+msgstr "annulation: Impossible de contacter le serveur !\n"
+
+#, c-format
+msgid "cancel: %s failed: %s\n"
+msgstr "annulation: %s a échoué :%s\n"
+
+#, c-format
+msgid "cupsaddsmb: Missing value on line %d!\n"
+msgstr "cupsaddsmb: Il manque une valeur à la ligne n°%d !\n"
+
+#, c-format
+msgid "cupsaddsmb: Missing double quote on line %d!\n"
+msgstr "cupsaddsmb: Il manque un \" à la ligne n°%d !\n"
+
+#, c-format
+msgid "cupsaddsmb: Bad option + choice on line %d!\n"
+msgstr "cupsaddsmb: Option et choix erronés à la ligne n°%d !\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to connect to server \"%s\" for %s - %s\n"
+msgstr "cupsaddsmb: Impossible de se connecter au serveur « %s » pour %s - %s\n"
+
+#, c-format
+msgid "cupsaddsmb: No PPD file for printer \"%s\" - skipping!\n"
+msgstr "cupsaddsmb: Aucun fichier PPD pour l'imprimante « %s » - ignorée !\n"
+
+#, c-format
+msgid "cupsaddsmb: get-printer-attributes failed for \"%s\": %s\n"
+msgstr "cupsaddsmb: get-printer-attributes a échoué pour « %s » : %s\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to convert PPD file for %s - %s\n"
+msgstr "cupsaddsmb: Impossible de convertir le fichier PPD pour %s - %s\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to copy Windows 2000 printer driver files (%d)!\n"
+msgstr "cupsaddsmb: Impossible de copier les fichiers du pilote d'impression pour Windows 2000 (%d) !\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to copy CUPS printer driver files (%d)!\n"
+msgstr "cupsaddsmb: Impossible de copier les fichiers du pilote d'impression pour CUPS (%d) !\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to install Windows 2000 printer driver files (%d)!\n"
+msgstr "cupsaddsmb: Impossible d'installer les fichiers du pilote d'impression pour Windows 2000 (%d) !\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to copy Windows 9x printer driver files (%d)!\n"
+msgstr "cupsaddsmb: Impossible de copier les fichiers du pilote d'impression pour Windows 9x (%d) !\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to install Windows 9x printer driver files (%d)!\n"
+msgstr "cupsaddsmb: Impossible d'installer les fichiers du pilote d'impression pour Windows 9x (%d) !\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to set Windows printer driver (%d)!\n"
+msgstr "cupsaddsmb: Impossible de paramétrer le pilote d'impression pour Windows (%d) !\n"
+
+msgid ""
+"Usage: cupsaddsmb [options] printer1 ... printerN\n"
+" cupsaddsmb [options] -a\n"
+"\n"
+"Options:\n"
+" -H samba-server Use the named SAMBA server\n"
+" -U samba-user Authenticate using the named SAMBA user\n"
+" -a Export all printers\n"
+" -h cups-server Use the named CUPS server\n"
+" -v Be verbose (show commands)\n"
+msgstr ""
+"Utilisation : cupsaddsmb [options] imprimante1 ... imprimanteN\n"
+" cupsaddsmb [options] -a\n"
+"\n"
+"Options:\n"
+" -H serveur-samba Utiliser le serveur SAMBA désigné\n"
+" -U utilisateur-samba S'authentifier avec l'utilisateur SAMBA désigné\n"
+" -a Exporter toutes les imprimantes\n"
+" -h serveur-CUPS Utiliser le serveur CUPS désigné\n"
+" -v Être locace ( afficher les commandes )\n"
+
+msgid "cupstestppd: The -q option is incompatible with the -v option.\n"
+msgstr "cupstestppd: L'option est -q incomptaible avec l'option -v.\n"
+
+msgid "cupstestppd: The -v option is incompatible with the -q option.\n"
+msgstr "cupstestppd: L'option est -v incomptaible avec l'option -q.\n"
+
+#, c-format
+msgid ""
+" FAIL\n"
+" **FAIL** Unable to open PPD file - %s\n"
+msgstr ""
+" FAIL\n"
+" **FAIL** Unable to open PPD file - %s\n"
+
+#, c-format
+msgid ""
+" FAIL\n"
+" **FAIL** Unable to open PPD file - %s on line %d.\n"
+msgstr ""
+" FAIL\n"
+" **FAIL** Unable to open PPD file - %s on line %d.\n"
+
+msgid " REF: Page 42, section 5.2.\n"
+msgstr " REF: Page 42, section 5.2.\n"
+
+msgid " REF: Page 20, section 3.4.\n"
+msgstr " REF: Page 20, section 3.4.\n"
+
+msgid " REF: Pages 45-46, section 5.2.\n"
+msgstr " REF: Pages 45-46, section 5.2.\n"
+
+msgid " REF: Pages 42-45, section 5.2.\n"
+msgstr " REF: Pages 42-45, section 5.2.\n"
+
+msgid " REF: Pages 48-49, section 5.2.\n"
+msgstr " REF: Pages 48-49, section 5.2.\n"
+
+msgid " REF: Pages 52-54, section 5.2.\n"
+msgstr " REF: Pages 52-54, section 5.2.\n"
+
+msgid " REF: Page 15, section 3.2.\n"
+msgstr " REF: Page 15, section 3.2.\n"
+
+msgid " REF: Page 15, section 3.1.\n"
+msgstr " REF: Page 15, section 3.1.\n"
+
+msgid " REF: Pages 16-17, section 3.2.\n"
+msgstr " REF: Pages 16-17, section 3.2.\n"
+
+msgid " REF: Page 19, section 3.3.\n"
+msgstr " REF: Page 19, section 3.3.\n"
+
+msgid " REF: Page 27, section 3.5.\n"
+msgstr " REF: Page 27, section 3.5.\n"
+
+msgid ""
+"\n"
+" DETAILED CONFORMANCE TEST RESULTS\n"
+msgstr ""
+"\n"
+" DETAILED CONFORMANCE TEST RESULTS\n"
+
+#, c-format
+msgid " WARN %s has no corresponding options!\n"
+msgstr " WARN %s has no corresponding options!\n"
+
+msgid " FAIL\n"
+msgstr " FAIL\n"
+
+msgid ""
+" **FAIL** REQUIRED DefaultImageableArea\n"
+" REF: Page 102, section 5.15.\n"
+msgstr ""
+" **FAIL** REQUIRED DefaultImageableArea\n"
+" REF: Page 102, section 5.15.\n"
+
+#, c-format
+msgid ""
+" **FAIL** BAD DefaultImageableArea %s!\n"
+" REF: Page 102, section 5.15.\n"
+msgstr ""
+" **FAIL** BAD DefaultImageableArea %s!\n"
+" REF: Page 102, section 5.15.\n"
+
+msgid " PASS DefaultImageableArea\n"
+msgstr " PASS DefaultImageableArea\n"
+
+msgid ""
+" **FAIL** REQUIRED DefaultPaperDimension\n"
+" REF: Page 103, section 5.15.\n"
+msgstr ""
+" **FAIL** REQUIRED DefaultPaperDimension\n"
+" REF: Page 103, section 5.15.\n"
+
+#, c-format
+msgid ""
+" **FAIL** BAD DefaultPaperDimension %s!\n"
+" REF: Page 103, section 5.15.\n"
+msgstr ""
+" **FAIL** BAD DefaultPaperDimension %s!\n"
+" REF: Page 103, section 5.15.\n"
+
+msgid " PASS DefaultPaperDimension\n"
+msgstr " PASS DefaultPaperDimension\n"
+
+#, c-format
+msgid ""
+" **FAIL** BAD Default%s %s\n"
+" REF: Page 40, section 4.5.\n"
+msgstr ""
+" **FAIL** BAD Default%s %s\n"
+" REF: Page 40, section 4.5.\n"
+
+#, c-format
+msgid " PASS Default%s\n"
+msgstr " PASS Default%s\n"
+
+#, c-format
+msgid ""
+" **FAIL** REQUIRED Default%s\n"
+" REF: Page 40, section 4.5.\n"
+msgstr ""
+" **FAIL** REQUIRED Default%s\n"
+" REF: Page 40, section 4.5.\n"
+
+msgid " PASS FileVersion\n"
+msgstr " PASS FileVersion\n"
+
+msgid ""
+" **FAIL** REQUIRED FileVersion\n"
+" REF: Page 56, section 5.3.\n"
+msgstr ""
+" **FAIL** REQUIRED FileVersion\n"
+" REF: Page 56, section 5.3.\n"
+
+msgid " PASS FormatVersion\n"
+msgstr " PASS FormatVersion\n"
+
+msgid ""
+" **FAIL** REQUIRED FormatVersion\n"
+" REF: Page 56, section 5.3.\n"
+msgstr ""
+" **FAIL** REQUIRED FormatVersion\n"
+" REF: Page 56, section 5.3.\n"
+
+msgid " PASS LanguageEncoding\n"
+msgstr " PASS LanguageEncoding\n"
+
+msgid ""
+" **FAIL** REQUIRED LanguageEncoding\n"
+" REF: Pages 56-57, section 5.3.\n"
+msgstr ""
+" **FAIL** REQUIRED LanguageEncoding\n"
+" REF: Pages 56-57, section 5.3.\n"
+
+msgid " PASS LanguageVersion\n"
+msgstr " PASS LanguageVersion\n"
+
+msgid ""
+" **FAIL** REQUIRED LanguageVersion\n"
+" REF: Pages 57-58, section 5.3.\n"
+msgstr ""
+" **FAIL** REQUIRED LanguageVersion\n"
+" REF: Pages 57-58, section 5.3.\n"
+
+msgid ""
+" **FAIL** BAD Manufacturer (should be \"HP\")\n"
+" REF: Page 211, table D.1.\n"
+msgstr ""
+" **FAIL** BAD Manufacturer (should be \"HP\")\n"
+" REF: Page 211, table D.1.\n"
+
+msgid " PASS Manufacturer\n"
+msgstr " PASS Manufacturer\n"
+
+msgid ""
+" **FAIL** REQUIRED Manufacturer\n"
+" REF: Pages 58-59, section 5.3.\n"
+msgstr ""
+" **FAIL** REQUIRED Manufacturer\n"
+" REF: Pages 58-59, section 5.3.\n"
+
+#, c-format
+msgid ""
+" **FAIL** BAD ModelName - \"%c\" not allowed in string.\n"
+" REF: Pages 59-60, section 5.3.\n"
+msgstr ""
+" **FAIL** BAD ModelName - \"%c\" not allowed in string.\n"
+" REF: Pages 59-60, section 5.3.\n"
+
+msgid " PASS ModelName\n"
+msgstr " PASS ModelName\n"
+
+msgid ""
+" **FAIL** REQUIRED ModelName\n"
+" REF: Pages 59-60, section 5.3.\n"
+msgstr ""
+" **FAIL** REQUIRED ModelName\n"
+" REF: Pages 59-60, section 5.3.\n"
+
+msgid " PASS NickName\n"
+msgstr " PASS NickName\n"
+
+msgid ""
+" **FAIL** REQUIRED NickName\n"
+" REF: Page 60, section 5.3.\n"
+msgstr ""
+" **FAIL** REQUIRED NickName\n"
+" REF: Page 60, section 5.3.\n"
+
+msgid " PASS PageSize\n"
+msgstr " PASS PageSize\n"
+
+msgid ""
+" **FAIL** REQUIRED PageSize\n"
+" REF: Pages 99-100, section 5.14.\n"
+msgstr ""
+" **FAIL** REQUIRED PageSize\n"
+" REF: Pages 99-100, section 5.14.\n"
+
+msgid " PASS PageRegion\n"
+msgstr " PASS PageRegion\n"
+
+msgid ""
+" **FAIL** REQUIRED PageRegion\n"
+" REF: Page 100, section 5.14.\n"
+msgstr ""
+" **FAIL** REQUIRED PageRegion\n"
+" REF: Page 100, section 5.14.\n"
+
+msgid " PASS PCFileName\n"
+msgstr " PASS PCFileName\n"
+
+msgid ""
+" **FAIL** REQUIRED PCFileName\n"
+" REF: Pages 61-62, section 5.3.\n"
+msgstr ""
+" **FAIL** REQUIRED PCFileName\n"
+" REF: Pages 61-62, section 5.3.\n"
+
+msgid ""
+" **FAIL** BAD Product - not \"(string)\".\n"
+" REF: Page 62, section 5.3.\n"
+msgstr ""
+" **FAIL** BAD Product - not \"(string)\".\n"
+" REF: Page 62, section 5.3.\n"
+
+msgid " PASS Product\n"
+msgstr " PASS Product\n"
+
+msgid ""
+" **FAIL** REQUIRED Product\n"
+" REF: Page 62, section 5.3.\n"
+msgstr ""
+" **FAIL** REQUIRED Product\n"
+" REF: Page 62, section 5.3.\n"
+
+msgid ""
+" **FAIL** BAD PSVersion - not \"(string) int\".\n"
+" REF: Pages 62-64, section 5.3.\n"
+msgstr ""
+" **FAIL** BAD PSVersion - not \"(string) int\".\n"
+" REF: Pages 62-64, section 5.3.\n"
+
+msgid " PASS PSVersion\n"
+msgstr " PASS PSVersion\n"
+
+msgid ""
+" **FAIL** REQUIRED PSVersion\n"
+" REF: Pages 62-64, section 5.3.\n"
+msgstr ""
+" **FAIL** REQUIRED PSVersion\n"
+" REF: Pages 62-64, section 5.3.\n"
+
+msgid ""
+" **FAIL** BAD ShortNickName - longer than 31 chars.\n"
+" REF: Pages 64-65, section 5.3.\n"
+msgstr ""
+" **FAIL** BAD ShortNickName - longer than 31 chars.\n"
+" REF: Pages 64-65, section 5.3.\n"
+
+msgid " PASS ShortNickName\n"
+msgstr " PASS ShortNickName\n"
+
+msgid ""
+" **FAIL** REQUIRED ShortNickName\n"
+" REF: Page 64-65, section 5.3.\n"
+msgstr ""
+" **FAIL** REQUIRED ShortNickName\n"
+" REF: Page 64-65, section 5.3.\n"
+
+msgid ""
+" **FAIL** BAD JobPatchFile attribute in file\n"
+" REF: Page 24, section 3.4.\n"
+msgstr ""
+" **FAIL** BAD JobPatchFile attribute in file\n"
+" REF: Page 24, section 3.4.\n"
+
+msgid ""
+" **FAIL** REQUIRED PageSize\n"
+" REF: Page 41, section 5.\n"
+" REF: Page 99, section 5.14.\n"
+msgstr ""
+" **FAIL** REQUIRED PageSize\n"
+" REF: Page 41, section 5.\n"\n"
+" REF: Page 99, section 5.14.\n"
+
+#, c-format
+msgid ""
+" **FAIL** REQUIRED ImageableArea for PageSize %s\n"
+" REF: Page 41, section 5.\n"
+" REF: Page 102, section 5.15.\n"
+msgstr ""
+" **FAIL** REQUIRED ImageableArea for PageSize %s\n"
+" REF: Page 41, section 5.\n"
+" REF: Page 102, section 5.15.\n"
+
+#, c-format
+msgid ""
+" **FAIL** REQUIRED PaperDimension for PageSize %s\n"
+" REF: Page 41, section 5.\n"
+" REF: Page 103, section 5.15.\n"
+msgstr ""
+" **FAIL** REQUIRED PaperDimension for PageSize %s\n"
+" REF: Page 41, section 5.\n"
+" REF: Page 103, section 5.15.\n"
+
+#, c-format
+msgid ""
+" **FAIL** Bad %s choice %s!\n"
+" REF: Page 84, section 5.9\n"
+msgstr ""
+" **FAIL** Bad %s choice %s!\n"
+" REF: Page 84, section 5.9\n"
+
+#, c-format
+msgid ""
+" **FAIL** REQUIRED %s does not define choice None!\n"
+" REF: Page 122, section 5.17\n"
+msgstr ""
+" **FAIL** REQUIRED %s does not define choice None!\n"
+" REF: Page 122, section 5.17\n"
+
+#, c-format
+msgid ""
+" **FAIL** Bad %s choice %s!\n"
+" REF: Page 122, section 5.17\n"
+msgstr ""
+" **FAIL** Bad %s choice %s!\n"
+" REF: Page 122, section 5.17\n"
+
+msgid " PASS\n"
+msgstr " PASS\n"
+
+#, c-format
+msgid ""
+" WARN Duplex option keyword %s should be named Duplex or JCLDuplex!\n"
+" REF: Page 122, section 5.17\n"
+msgstr ""
+" WARN Duplex option keyword %s should be named Duplex or JCLDuplex!\n"
+" REF: Page 122, section 5.17\n"
+
+msgid " WARN Default choices conflicting!\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" WARN Obsolete PPD version %.1f!\n"
+" REF: Page 42, section 5.2.\n"
+msgstr ""
+" WARN Obsolete PPD version %.1f!\n"
+" REF: Page 42, section 5.2.\n"
+
+msgid ""
+" WARN LanguageEncoding required by PPD 4.3 spec.\n"
+" REF: Pages 56-57, section 5.3.\n"
+msgstr ""
+" WARN LanguageEncoding required by PPD 4.3 spec.\n"
+" REF: Pages 56-57, section 5.3.\n"
+
+msgid ""
+" WARN Manufacturer required by PPD 4.3 spec.\n"
+" REF: Pages 58-59, section 5.3.\n"
+msgstr ""
+" WARN Manufacturer required by PPD 4.3 spec.\n"
+" REF: Pages 58-59, section 5.3.\n"
+
+msgid ""
+" WARN PCFileName longer than 8.3 in violation of PPD spec.\n"
+" REF: Pages 61-62, section 5.3.\n"
+msgstr ""
+" WARN PCFileName longer than 8.3 in violation of PPD spec.\n"
+" REF: Pages 61-62, section 5.3.\n"
+
+msgid ""
+" WARN ShortNickName required by PPD 4.3 spec.\n"
+" REF: Pages 64-65, section 5.3.\n"
+msgstr ""
+" WARN ShortNickName required by PPD 4.3 spec.\n"
+" REF: Pages 64-65, section 5.3.\n"
+
+msgid ""
+" WARN Protocols contains both PJL and BCP; expected TBCP.\n"
+" REF: Pages 78-79, section 5.7.\n"
+msgstr ""
+" WARN Protocols contains both PJL and BCP; expected TBCP.\n"
+" REF: Pages 78-79, section 5.7.\n"
+
+msgid ""
+" WARN Protocols contains PJL but JCL attributes are not set.\n"
+" REF: Pages 78-79, section 5.7.\n"
+msgstr ""
+" WARN Protocols contains PJL but JCL attributes are not set.\n"
+" REF: Pages 78-79, section 5.7.\n"
+
+#, c-format
+msgid ""
+" WARN %s shares a common prefix with %s\n"
+" REF: Page 15, section 3.2.\n"
+msgstr ""
+" WARN %s shares a common prefix with %s\n"
+" REF: Page 15, section 3.2.\n"
+
+#, c-format
+msgid " %d ERROR%s FOUND\n"
+msgstr " %d ERROR%s FOUND\n"
+
+msgid " NO ERRORS FOUND\n"
+msgstr " NO ERRORS FOUND\n"
+
+#, c-format
+msgid ""
+" WARN \"%s %s\" conflicts with \"%s %s\"\n"
+" (constraint=\"%s %s %s %s\")\n"
+msgstr ""
+" WARN \"%s %s\" conflicts with \"%s %s\"\n"
+" (constraint=\"%s %s %s %s\")\n"
+msgid ""
+"Usage: cupstestppd [-q] [-r] [-v[v]] filename1.ppd[.gz] [... filenameN.ppd[.gz]]\n"
+" program | cupstestppd [-q] [-r] [-v[v]] -\n"
+msgstr ""
+"Utilisation : cupstestppd [-q] [-r] [-v[v]] fichier1.ppd[.gz] [... fichierN.ppd[.gz]]\n"
+" programme | cupstestppd [-q] [-r] [-v[v]] -\n"
+
+msgid "lpstat: Need \"completed\" or \"not-completed\" after -W!\n"
+msgstr "lpstat: Il faut « completed » ou « not-completed » après l'option -W !\n"
+
+msgid "lpstat: The -b option requires a destination argument.\n"
+msgstr "lpstat: Il faut une destination après l'option '-b' !\n"
+
+msgid "Error: need hostname after '-h' option!\n"
+msgstr "Erreur : Il faut un nom d'hôte après l'option '-h' !\n"
+
+#, c-format
+msgid "lpstat: Unknown option '%c'!\n"
+msgstr "lpstat: Option '%c inconnue !\n"
+
+#, c-format
+msgid "lpstat: Invalid destination name in list \"%s\"!\n"
+msgstr "lpstat: Nom de destination incorrect dans la liste « %s » !\n"
+
+#, c-format
+msgid "lpstat: Unknown destination \"%s\"!\n"
+msgstr "lpstat: Destination « %s » inconnue !\n"
+
+#, c-format
+msgid "lpstat: Unable to connect to server %s on port %d: %s\n"
+msgstr "lpstat: Impossible de se connecter au serveur « %s » sur le port %d : %s\n"
+
+#, c-format
+msgid "lpstat: get-printers failed: %s\n"
+msgstr "lpstat: get-printers a échoué: %s\n"
+
+#, c-format
+msgid "%s accepting requests since Jan 01 00:00\n"
+msgstr "%s accepte les requêtes depuis le Jan 01 00:00\n"
+
+#, c-format
+msgid ""
+"%s not accepting requests since Jan 01 00:00 -\n"
+"\t%s\n"
+msgstr ""
+"%s n'accepte pas les requêtes depuis le Jan 01 00:00 -\n"
+"\t%s\n"
+
+#, c-format
+msgid "%s/%s accepting requests since Jan 01 00:00\n"
+msgstr "%s/%s accepte les requêtes depuis le Jan 01 00:00\n"
+
+#, c-format
+msgid ""
+"%s/%s not accepting requests since Jan 01 00:00 -\n"
+"\t%s\n"
+msgstr ""
+"%s/%s n'accepte pas les requêtes depuis le Jan 01 00:00 -\n"
+"\t%s\n"
+
+#, c-format
+msgid "lpstat: get-classes failed: %s\n"
+msgstr "lpstat: get-classes a échoué : %s !\n"
+
+#, c-format
+msgid "members of class %s:\n"
+msgstr "membres de la classe %s :\n"
+
+#, c-format
+msgid "system default destination: %s/%s\n"
+msgstr "destination par défaut du système : %s/%s\n"
+
+#, c-format
+msgid "system default destination: %s\n"
+msgstr "destination par défaut du système : %s\n"
+
+#, c-format
+msgid "lpstat: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr ""
+"lpstat: erreur - la variable d'environnement désigne une destination\n"
+" inexistente « %s » !\n"
+
+msgid "no system default destination\n"
+msgstr "le système n'a pas de destination par défaut\n"
+
+#, c-format
+msgid "Output for printer %s is sent to remote printer %s on %s\n"
+msgstr ""
+"Ce qui est envoyé à l'imprimante %s est redirigé vers l'imprimante\n"
+"distante %s sur %s\n"
+
+#, c-format
+msgid "Output for printer %s is sent to %s\n"
+msgstr "Ce qui est envoyé à l'imprimante %s est redirigé vers %s\n"
+
+#, c-format
+msgid "Output for printer %s/%s is sent to remote printer %s on %s\n"
+msgstr ""
+"Ce qui est envoyé à l'imprimante %s/%s est redirigé vers l'imprimante\n"
+"distante %s sur %s\n"
+
+#, c-format
+msgid "Output for printer %s/%s is sent to %s\n"
+msgstr "Ce qui est envoyé à l'imprimante %s/%s est redirigé vers %s\n"
+
+#, c-format
+msgid "device for %s: %s\n"
+msgstr "périphérique pour %s : %s\n"
+
+#, c-format
+msgid "device for %s/%s: %s\n"
+msgstr "périphérique pour %s/%s : %s \n"
+
+#, c-format
+msgid "lpstat: get-jobs failed: %s\n"
+msgstr "lpstat: get-jobs a échoué : %s !\n"
+
+#, c-format
+msgid "\tqueued for %s\n"
+msgstr "\tmis en file d'attente pour %s\n"
+
+#, c-format
+msgid "printer %s is idle. enabled since %s\n"
+msgstr "l'imprimante %s ne fait rien ; elle est activée depuis le %s\n"
+
+#, c-format
+msgid "printer %s now printing %s-%d. enabled since %s\n"
+msgstr "l'imprimante %s est en train d'imprimer %s-%d ; elle est activée depuis le %s\n""
+
+#, c-format
+msgid "printer %s disabled since %s -\n"
+msgstr "l'imprimante %s est désactivée depuis le %s -\n"
+
+msgid "\treason unknown\n"
+msgstr "\traison inconnue\n"
+
+msgid ""
+"\tForm mounted:\n"
+"\tContent types: any\n"
+"\tPrinter types: unknown\n"
+msgstr ""
+"\tFormat monté :\n"
+"\tTypes de contenu : any\n"
+"\tTypes d'imprimante : unknown\n"
+
+#, c-format
+msgid "\tDescription: %s\n"
+msgstr "\tDescription : %s\n"
+
+msgid "\tAlerts:"
+msgstr "\tAlertes :"
+
+#, c-format
+msgid "\tLocation: %s\n"
+msgstr "\tLieu : %s\n"
+
+msgid "\tConnection: remote\n"
+msgstr "\tConnexion : distante\n"
+
+#, c-format
+msgid "\tInterface: %s.ppd\n"
+msgstr "\tInterface : %s.ppd\n"
+
+msgid "\tConnection: direct\n"
+msgstr "\tConnexion : directe\n"
+
+#, c-format
+msgid "\tInterface: %s/interfaces/%s\n"
+msgstr "\tInterface : %s/interfaces/%s\n"
+
+#, c-format
+msgid "\tInterface: %s/ppd/%s.ppd\n"
+msgstr "\tInterface : %s/ppd/%s.ppd\n"
+
+msgid "\tOn fault: no alert\n"
+msgstr "\tEn cas d'erreur : pas d'alerte\n"
+
+msgid "\tAfter fault: continue\n"
+msgstr "\tAprès une erreur : poursuivre\n"
+
+msgid "\tUsers allowed:\n"
+msgstr "\tUtilisateurs autorisés :\n"
+
+msgid "\tUsers denied:\n"
+msgstr "\tUtilisateurs refusés :\n"
+
+msgid "\t\t(all)\n"
+msgstr "\t\t( tous )\n"
+
+msgid "\tForms allowed:\n"
+msgstr "\tFormats autorisés :\n"
+
+msgid "\t\t(none)\n"
+msgstr "\t\t( aucun )\n"
+
+msgid "\tBanner required\n"
+msgstr "\tBannière requise\n"
+
+msgid "\tCharset sets:\n"
+msgstr "\tJeux de caractères :\n"
+
+msgid "\tDefault pitch:\n"
+msgstr "\t« pitch » par défaut :\n"
+
+msgid "\tDefault page size:\n"
+msgstr "\tTaille de papier par défaut :\n"
+
+msgid "\tDefault port settings:\n"
+msgstr "\tParamètres par défaut du port :\n"
+
+#, c-format
+msgid "printer %s/%s is idle. enabled since %s\n"
+msgstr "l'imprimante %s/%s ne fait rien ; elle est activée depuis le %s\n"
+
+#, c-format
+msgid "printer %s/%s now printing %s-%d. enabled since %s\n"
+msgstr "l'imprimante %s/%s est en train d'imprimer %s-%d ; elle est activée depuis le %s\n""
+
+#, c-format
+msgid "printer %s/%s disabled since %s -\n"
+msgstr "l'imprimante %s/%s est désactivée depuis le %s -\n"
+
+msgid "scheduler is running\n"
+msgstr "l'ordonnanceur tourne\n"
+
+msgid "scheduler is not running\n"
+msgstr "l'ordonnanceur est arrêté\n"
+
+#, c-format
+msgid "lpadmin: Unable to connect to server: %s\n"
+msgstr "lpadmin: Impossible de se connecter au serveur « %s » !\n"
+
+msgid ""
+"lpadmin: Unable to add a printer to the class:\n"
+" You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: Impossible d'ajouter une imprimante à la classe :\n"
+" Vous devez d'abord préciser un nom d'imprimante !\n"
+
+msgid "lpadmin: Expected class name after '-c' option!\n"
+msgstr "lpadmin: Il faut un nom de classe après l'option '-c' !\n"
+
+msgid "lpadmin: Class name can only contain printable characters!\n"
+msgstr "lpadmin: Un nom de classe ne peut comporter que des caractères imprimables !\n"
+
+msgid "lpadmin: Expected printer name after '-d' option!\n"
+msgstr "lpadmin: Il faut un nom d'imprimante après l'option '-d' !\n"
+
+msgid "lpadmin: Printer name can only contain printable characters!\n"
+msgstr "lpadmin: Un nom d'imprimante ne peut comporter que des caractères imprimables !\n"
+
+msgid "lpadmin: Expected hostname after '-h' option!\n"
+msgstr "lpadmin: Il faut un nom d'hôte après l'option 'h' !\n"
+
+msgid ""
+"lpadmin: Unable to set the interface script:\n"
+" You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: Impossible de définir le script d'interface :\n"
+" Vous devez d'abord préciser un nom d'imprimante !\n"
+
+msgid "lpadmin: Expected interface after '-i' option!\n"
+msgstr "lpadmin: Il faut une interface après l'option '-i' !\n"
+
+msgid ""
+"lpadmin: Unable to set the interface script or PPD file:\n"
+" You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: Impossible de définir le script d'interface ou le fichier PPD :\n"
+" Vous devez d'abord préciser un nom d'imprimante !\n"
+
+msgid "lpadmin: Expected model after '-m' option!\n"
+msgstr "lpadmin: Il faut un modèle après l'option '-m' !\n"
+
+msgid "lpadmin: Expected name=value after '-o' option!\n"
+msgstr "lpadmin: Il faut un argument du type option=valeur après l'option '-o' !\n"
+
+msgid "lpadmin: Expected printer after '-p' option!\n"
+msgstr "lpadmin: Il faut une imprimante après l'option '-p' !\n"
+
+msgid ""
+"lpadmin: Unable to remove a printer from the class:\n"
+" You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: Impossible de supprimer une imprimante de la classe :\n"
+" Vous devez d'abord préciser un nom d'imprimante !\n"
+
+msgid "lpadmin: Expected class after '-r' option!\n"
+msgstr "lpadmin: Il faut une classe après l'option '-r' !\n"
+
+msgid "lpadmin: Expected allow/deny:userlist after '-u' option!\n"
+msgstr ""
+"lpadmin: Il faut un argument du type allow/deny:liste_utilisateurs\n"
+" après l'option '-u' !\n"
+
+#, c-format
+msgid "lpadmin: Unknown allow/deny option \"%s\"!\n"
+msgstr "lpadmin: Option allow/deny « %s » inconnue !\n"
+
+msgid ""
+"lpadmin: Unable to set the device URI:\n"
+" You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: Impossible de définir l'URI du périphérique :\n"
+" Vous devez d'abord préciser un nom d'imprimante !\n"
+
+msgid "lpadmin: Expected device URI after '-v' option!\n"
+msgstr "lpadmin: Il faut un URI de périphérique après l'option '-v' !\n"
+
+msgid "lpadmin: Expected printer or class after '-x' option!\n"
+msgstr "lpadmin: Il faut une imprimante ou une classe après l'option '-x' !\n"
+
+msgid ""
+"lpadmin: Unable to set the printer description:\n"
+" You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: Impossible de définir la description de l'imprimante :\n"
+" Vous devez d'abord préciser un nom d'imprimante !\n"
+
+msgid "lpadmin: Expected description after '-D' option!\n"
+msgstr "lpadmin: Il faut une description après l'option '-D' !\n"
+
+msgid "lpadmin: Expected file type(s) after '-I' option!\n"
+msgstr "lpadmin: Il faut un ou plusieurs types de fichier après l'option '-I' !\n"
+
+msgid "lpadmin: Warning - content type list ignored!\n"
+msgstr "lpadmin: Attention - les types de contenu sont ignorés !\n"
+
+msgid ""
+"lpadmin: Unable to set the printer location:\n"
+" You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: Impossible de définir le lieu de l'imprimante :\n"
+" Vous devez d'abord préciser un nom d'imprimante !\n"
+
+msgid "lpadmin: Expected location after '-L' option!\n"
+msgstr "lpadmin: Il faut un lieu après l'option '-L' !\n"
+
+msgid ""
+"lpadmin: Unable to set the PPD file:\n"
+" You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: Impossible de définir le fichier PPD :\n"
+" Vous devez d'abord préciser un nom d'imprimante !\n"
+
+msgid "lpadmin: Expected PPD after '-P' option!\n"
+msgstr "lpadmin: Il faut un fichier PPD après l'option '-P' !\n"
+
+#, c-format
+msgid "lpadmin: Unknown option '%c'!\n"
+msgstr "lpadmin: Option '%c' inconnue !\n"
+
+#, c-format
+msgid "lpadmin: Unknown argument '%s'!\n"
+msgstr "lpadmin: Argument « %s » inconnu !\n"
+
+msgid ""
+"lpadmin: Unable to set the printer options:\n"
+" You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: Impossible de définir les options de l'imprimante :\n"
+" Vous devez d'abord préciser un nom d'imprimante !\n"
+
+msgid ""
+"Usage:\n"
+"\n"
+" lpadmin [-h server] -d destination\n"
+" lpadmin [-h server] -x destination\n"
+" lpadmin [-h server] -p printer [-c add-class] [-i interface] [-m model]\n"
+" [-r remove-class] [-v device] [-D description]\n"
+" [-P ppd-file] [-o name=value]\n"
+" [-u allow:user,user] [-u deny:user,user]\n"
+"\n"
+msgstr ""
+"Utilisation :\n"
+"\n"
+" lpadmin [-h serveur] -d destination\n"
+" lpadmin [-h serveur] -x destination\n"
+" lpadmin [-h serveur] -p imprimante [-c classe] [-i interface] [-m modèle]\n"
+" [-r classe] [-v URI] [-D description]\n"
+" [-P fichier-ppd] [-o option=valeur]\n"
+" [-u allow:util.,util.] [-u deny:util.,util.]\n"
+"\n"
+
+#, c-format
+msgid "lpadmin: Unable to create temporary file: %s\n"
+msgstr "lpadmin: Impossible de créer un fichier temporaire : %s\n"
+
+#, c-format
+msgid "lpadmin: Unable to open file \"%s\": %s\n"
+msgstr "lpadmin: Impossible d'ouvrir le fichier « %s » : %s\n"
+
+#, c-format
+msgid "lpadmin: add-printer (set model) failed: %s\n"
+msgstr "lpadmin: add-printer ( définition du modèle ) a échoué : %s\n"
+
+#, c-format
+msgid "lpadmin: add-printer (set description) failed: %s\n"
+msgstr "lpadmin: add-printer ( définition de la description ) a échoué : %s\n"
+
+#, c-format
+msgid "lpadmin: add-printer (set location) failed: %s\n"
+msgstr "lpadmin: add-printer ( définition du lieu ) a échoué : %s\n"
+
+#, c-format
+msgid "lpadmin: Unable to create temporary file - %s\n"
+msgstr "lpadmin: Impossible de créer un fichier temporaire : %s\n"
+
+#, c-format
+msgid "lpadmin: Unable to open PPD file \"%s\" - %s\n"
+msgstr "lpadmin: Impossible d'ouvrir le fichier PPD « %s » : %s\n"
+
+#, c-format
+msgid "lpadmin: %s failed: %s\n"
+msgstr "lpadmin: %s a échoué : %s\n"
+
+msgid "lp: Expected destination after -d option!\n"
+msgstr "lp: Il faut une destination après l'option '-d' !\n"
+
+msgid "lp: Expected form after -f option!\n"
+msgstr "lp: Il faut un format après l'option '-f' !\n"
+
+msgid "lp: Expected hostname after -h option!\n"
+msgstr "lp: Il faut un nom d'hôte après l'option '-h' !\n"
+
+msgid "lp: Expected job ID after -i option!\n"
+msgstr "lp: Il faut un numéro de tâche après l'option '-i' !\n"
+
+msgid "lp: Error - cannot print files and alter jobs simultaneously!\n"
+msgstr "lp: Erreur - impossible d'imprimer et modifier les tâches en même temps !\n"
+
+msgid "lp: Error - bad job ID!\n"
+msgstr "lp: Erreur - numéro de tâche incorrect !\n"
+
+msgid "lp: Expected copies after -n option!\n"
+msgstr "lp: Il faut un nombre de copies après l'option '-n' !\n"
+
+msgid "lp: Expected option string after -o option!\n"
+msgstr "lp: Il faut une chaîne d'option \"nom=valeur\" après l'option '-o' !\n"
+
+#, c-format
+msgid "lp: Expected priority after -%c option!\n"
+msgstr "lp: Il faut une priorité après l'option '-%c' !\n"
+
+msgid "lp: Priority must be between 1 and 100.\n"
+msgstr "lp: La priorité doit être comprise entre 1 et 100.\n"
+
+msgid "lp: Expected title after -t option!\n"
+msgstr "lp: Il faut un titre après l'option '-t' !\n"
+
+msgid "lp: Expected mode list after -y option!\n"
+msgstr "lp: Il faut une liste de modes après l'option '-y' !\n"
+
+msgid "lp: Warning - mode option ignored!\n"
+msgstr "lp: Attention - l'option « mode » est ignorée !\n"
+
+msgid "lp: Expected hold name after -H option!\n"
+msgstr "lp: Il faut un code de retenue après l'option '-H' !\n"
+
+msgid "lp: Need job ID (-i) before \"-H restart\"!\n"
+msgstr "lp: Il faut un numéro de tâche ( '-i' ) avant '-H restart' !\n"
+
+msgid "lp: Expected page list after -P option!\n"
+msgstr "lp: Il faut une liste de pages après l'option '-P' !\n"
+
+msgid "lp: Expected character set after -S option!\n"
+msgstr "lp: Il faut un jeu de caractères après l'option '-S' !\n"
+
+msgid "lp: Warning - character set option ignored!\n"
+msgstr "lp: Attention - l'option « jeu de caractères » est ignorée !\n"
+
+msgid "lp: Expected content type after -T option!\n"
+msgstr "lp: Il faut un type de contenu après l'option '-T' !\n"
+
+msgid "lp: Warning - content type option ignored!\n"
+msgstr "lp: Attention - l'option « type de contenu » est ignorée !\n"
+
+#, c-format
+msgid "lp: Unknown option '%c'!\n"
+msgstr "lp: Option '%c' inconnue !\n"
+
+msgid "lp: Error - cannot print from stdin if files or a job ID are provided!\n"
+msgstr ""
+"lp: Erreur - impossible d'imprimer depuis l'entrée standard si un fichier\n"
+" ou un numéro de tâche est spécifié !\n"
+
+#, c-format
+msgid "lp: Unable to access \"%s\" - %s\n"
+msgstr "lp: Impossible d'accéder à « %s » - %s\n"
+
+#, c-format
+msgid "lp: Too many files - \"%s\"\n"
+msgstr "lp: Trop de fichiers - « %s »\n"
+
+msgid "lp: error - no default destination available.\n"
+msgstr "lp: Erreur - aucune destination par défaut n'est disponible.\n"
+
+msgid "lp: error - scheduler not responding!\n"
+msgstr "lp: Erreur - l'odonnanceur ne répond pas !\n"
+
+#, c-format
+msgid "lp: Error - unable to create temporary file \"%s\" - %s\n"
+msgstr "lp: Erreur - impossible de créer le fichier temporaire « %s » - %s\n"
+
+#, c-format
+msgid "lp: error - unable to write to temporary file \"%s\" - %s\n"
+msgstr "lp: Erreur - impossible d'écrire dans le fichier temporaire « %s » - %s\n"
+
+msgid "lp: stdin is empty, so no job has been sent.\n"
+msgstr "lp: l'entrée standard est vide, donc aucune tâche n'a été envoyée.\n"
+
+#, c-format
+msgid "lp: unable to print file: %s\n"
+msgstr "lp: impossible d'imprimer le fichier - %s\n"
+
+#, c-format
+msgid "request id is %s-%d (%d file(s))\n"
+msgstr "l'identifiant de requête est %s-%d ( %d fichier(s) )\n"
+
+#, c-format
+msgid "lp: restart-job failed: %s\n"
+msgstr "lp: restart-job a échoué : %s\n"
+
+#, c-format
+msgid "lp: set-job-attributes failed: %s\n"
+msgstr "lp: set-job-attributes a échoué : %s\n"
+
+#, c-format
+msgid "lpinfo: Unable to connect to server: %s\n"
+msgstr "lpinfo: Impossible de se connecter au serveur : %s\n"
+
+#, c-format
+msgid "lpinfo: Unknown option '%c'!\n"
+msgstr "lpinfo: Option '%c' inconnue !\n"
+
+#, c-format
+msgid "lpinfo: Unknown argument '%s'!\n"
+msgstr "lpinfo: Argument '%s' inconnu !\n"
+
+#, c-format
+msgid "lpinfo: cups-get-devices failed: %s\n"
+msgstr "lpinfo: cups-get-devices a échoué : %s\n"
+
+#, c-format
+msgid ""
+"Device: uri = %s\n"
+" class = %s\n"
+" info = %s\n"
+" make-and-model = %s\n"
+msgstr ""
+"Matériel : URI = %s\n"
+" classe = %s\n"
+" info = %s\n"
+" marque/modèle = %s\n"
+
+#, c-format
+msgid "lpinfo: cups-get-ppds failed: %s\n"
+msgstr "lpinfo: cups-get-ppds a échoué : %s\n"
+
+#, c-format
+msgid ""
+"Model: name = %s\n"
+" natural_language = %s\n"
+" make-and-model = %s\n"
+msgstr ""
+"Modèle : nom = %s\n"
+" langue naturelle = %s\n"
+" marque/modèle = %s\n"
+
+#, c-format
+msgid "lpmove: Unknown option '%c'!\n"
+msgstr "lpmove: Option '%c' inconnue !\n"
+
+#, c-format
+msgid "lpmove: Unknown argument '%s'!\n"
+msgstr "lpmove: Argument '%s' inconnu !\n"
+
+msgid "Usage: lpmove job dest\n"
+msgstr "Utilisation : lpmove tâche destination\n"
+
+#, c-format
+msgid "lpmove: Unable to connect to server: %s\n"
+msgstr "lpmove: Impossible de se connecter au serveur : %s\n"
+
+#, c-format
+msgid "lpmove: move-job failed: %s\n"
+msgstr "lpmove: move-job a échoué : %s\n""
+
+msgid "lpoptions: Unknown printer or class!\n"
+msgstr "lpoptions: Imprimante ou classe inconnue !\n"
+
+msgid "lpoptions: No printers!?!\n"
+msgstr "lpoptions: Pas d'imprimante !?!\n"
+
+#, c-format
+msgid "lpoptions: Unable to add printer or instance: %s\n"
+msgstr "lpoptions: Impossible d'ajouter l'imprimante ou l'instance : %s\n"
+
+#, c-format
+msgid "lpoptions: Destination %s has no PPD file!\n"
+msgstr "lpoptions: La destination %s n'a pas de fichier PPD !\n"
+
+#, c-format
+msgid "lpoptions: Unable to open PPD file for %s!\n"
+msgstr "lpoptions: Impossible d'ouvrir le fichier PPD pour %s !\n"
+
+msgid ""
+"Usage: lpoptions [-h server] [-E] -d printer\n"
+" lpoptions [-h server] [-E] [-p printer] -l\n"
+" lpoptions [-h server] [-E] -p printer -o option[=value] ...\n"
+" lpoptions [-h server] [-E] -x printer\n"
+msgstr ""
+"Utilisation : lpoptions [-h serveur] [-E] -d imprimante\n"
+" lpoptions [-h serveur] [-E] [-p imprimante] -l\n"
+" lpoptions [-h serveur] [-E] -p imprimante -o option[=valeur] ...\n"
+" lpoptions [-h serveur] [-E] -x imprimante\n"
+
+msgid "lppasswd: Only root can add or delete passwords!\n"
+msgstr "lppasswd: Seul l'utilisateur « root » peut ajouter ou supprimer des mots de passe !\n"
+
+msgid "Enter old password:"
+msgstr "Ancien mot de passe :"
+
+#, c-format
+msgid "lppasswd: Unable to copy password string: %s\n"
+msgstr "lppasswd: Impossible de copier le mot de passe : %s\n"
+
+msgid "Enter password:"
+msgstr "Entrez le nouveau mot de passe :"
+
+msgid "Enter password again:"
+msgstr "Confirmez le nouveau mot de passe :"
+
+msgid "lppasswd: Sorry, passwords don't match!\n"
+msgstr "lppasswd: Désolé, les mots de passe sont différents !\n"
+
+msgid ""
+"lppasswd: Sorry, password rejected.\n"
+"Your password must be at least 6 characters long, cannot contain\n"
+"your username, and must contain at least one letter and number.\n"
+msgstr ""
+"lppasswd: Désolé, mot de passe refusé.\n"
+"Votre mot de passe doit comporter au moins 6 caractères, au moins une lettre\n"
+"et un nombre, et ne peut contenir votre nom d'utilisateur.\n"
+
+msgid "lppasswd: Password file busy!\n"
+msgstr "lppasswd: Le fichier des mots de passe exidte déjà !\n"
+
+#, c-format
+msgid "lppasswd: Unable to open password file: %s\n"
+msgstr "lppasswd: Impossible d'ouvrir le fichier des mots de passe: %s\n"
+
+#, c-format
+msgid "lppasswd: Unable to write to password file: %s\n"
+msgstr "lppasswd: Impossible d'écrire dans le fichier des mots de passe : %s\n"
+
+#, c-format
+msgid "lppasswd: user \"%s\" and group \"%s\" do not exist.\n"
+msgstr "lppasswd: l'utilisateur « %s » et/ou le groupe « %s » n'existe(nt) pas !\n"
+
+msgid "lppasswd: Sorry, password doesn't match!\n"
+msgstr "lppasswd: Désolé, le mot de passe est erroné !\n"
+
+msgid "lppasswd: Password file not updated!\n"
+msgstr "lppasswd: Le fichier des mots de passe n'a pas été mis-à-jour !\n"
+
+#, c-format
+msgid "lppasswd: failed to backup old password file: %s\n"
+msgstr "lppasswd: impossible de sauvegarder l'ancien fichier des mots de passe : %s\n"
+
+#, c-format
+msgid "lppasswd: failed to rename password file: %s\n"
+msgstr "lppasswd: impossible de renommer le fichier des mots de passe : %s\n"
+
+msgid "Usage: lppasswd [-g groupname]\n"
+msgstr "Utilisation : lppasswd [-g nom_groupe]\n"
+
+msgid ""
+"Usage: lppasswd [-g groupname] [username]\n"
+" lppasswd [-g groupname] -a [username]\n"
+" lppasswd [-g groupname] -x [username]\n"
+msgstr ""
+"Utilisation : lppasswd [-g nom_groupe] [nom_utilisateur]\n"
+" lppasswd [-g nom_groupe] -a [nom_utilisateur]\n"
+" lppasswd [-g nom_groupe] -x [nom_utilisateur]\n"
+
+msgid "Start Printer"
+msgstr "Démarrer l'imprimante"
+
+msgid "Stop Printer"
+msgstr "Arrêter l'imprimante"
+
+msgid "Start Class"
+msgstr "Démarrer la classe"
+
+msgid "Stop Class"
+msgstr "Arrêter la classe"
+
+msgid "Accept Jobs"
+msgstr "Accepter les tâches"
+
+msgid "Reject Jobs"
+msgstr "Refuser les tâches"
+
+msgid "Purge Jobs"
+msgstr "Effacer les tâches"
+
+msgid "Set As Default"
+msgstr "Choisir par défaut"
+
+msgid "Administration"
+msgstr "Administration"
+
+msgid "Modify Class"
+msgstr "Modifier la classe"
+
+msgid "Add Class"
+msgstr "Ajouter une classe"
+
+msgid "The class name may only contain up to 127 printable characters and may not contain spaces, slashes (/), or the pound sign (#)."
+msgstr "Le nom de classe doit comporter au plus 127 caractères, tous imprimables, sans espace, '/' ni '#'."
+
+msgid "Unable to modify class:"
+msgstr "Impossible de modifier la classe :"
+
+msgid "Unable to add class:"
+msgstr "Impossible d'ajouter la classe :"
+
+msgid "Modify Printer"
+msgstr "Modifier l'imprimante"
+
+msgid "Add Printer"
+msgstr "Ajouter une imprimante"
+
+msgid "The printer name may only contain up to 127 printable characters and may not contain spaces, slashes (/), or the pound sign (#)."
+msgstr "Le nom d'imprimante doit comporter au plus 127 caractères, tous imprimables, sans espace, '/' ni '#'."
+
+msgid "Unable to get list of printer drivers:"
+msgstr "Impossible d'obtenir la liste des pilotes pour l'imprimante:"
+
+msgid "Unable to modify printer:"
+msgstr "Impossible de modifier l'imprimante :"
+
+msgid "Unable to add printer:"
+msgstr "Impossible d'ajouter l'imprimante :"
+
+msgid "Set Printer Options"
+msgstr "Définir les options de l'imprimante"
+
+msgid "Missing form variable!"
+msgstr "Un champ du formulaire HTML n'a pas été rempli !"
+
+msgid "Unable to get PPD file!"
+msgstr "Impossible de trouver le fichier PPD !"
+
+msgid "Unable to open PPD file:"
+msgstr "Impossible d'ouvrir le fichier PPD :"
+
+msgid "Banners"
+msgstr "Bannières"
+
+msgid "Starting Banner"
+msgstr "Début de la bannière"
+
+msgid "Ending Banner"
+msgstr "Fin de la bannière"
+
+msgid "Policies"
+msgstr "Politiques"
+
+msgid "Error Policy"
+msgstr "Politique d'erreur"
+
+msgid "Operation Policy"
+msgstr "Politique des opérations"
+
+msgid "PS Binary Protocol"
+msgstr "Protocole binaire PS"
+
+msgid "None"
+msgstr "Auncun(e)"
+
+msgid "Unable to set options:"
+msgstr "Impossible de définir les options :"
+
+msgid "Change Settings"
+msgstr "Modifier les paramètres"
+
+msgid "Unable to change server settings:"
+msgstr "Impossible de modifier les paramètres du serveur :"
+
+msgid "Unable to upload cupsd.conf file:"
+msgstr "Impossible de transmettre le fichier cupsd.conf :"
+
+msgid "Edit Configuration File"
+msgstr "Éditer le fichier de configuration"
+
+msgid "Unable to create temporary file:"
+msgstr "Impossible de créer le fichier temporaire :"
+
+msgid "Unable to access cupsd.conf file:"
+msgstr "Impossible d'accéder au fichier cupsd.conf :"
+
+msgid "Unable to edit cupsd.conf files larger than 1MB!"
+msgstr "Impossible d'éditer des fichiers cupsd.conf de taille supérieure à 1Mo !"
+
+msgid "Delete Class"
+msgstr "Supprimer la classe"
+
+msgid "Unable to delete class:"
+msgstr "Impossible de supprimer la classe :"
+
+msgid "Delete Printer"
+msgstr "Supprimer l'imprimante"
+
+msgid "Unable to delete printer:"
+msgstr "Impossible de supprimer l'imprimante :"
+
+msgid "Export Printers to Samba"
+msgstr "Exporter les imprimantes vers SAMBA"
+
+msgid "Unable to fork process!"
+msgstr "Impossible de faire un « fork » !"
+
+msgid "Unable to connect to server!"
+msgstr "Impossible de se connecter au serveur !"
+
+msgid "Unable to get printer attributes!"
+msgstr "Impossible de récupérer les attributs de l'imprimante !"
+
+msgid "Unable to convert PPD file!"
+msgstr "Impossible de convertir le fichier PPD !"
+
+msgid "Unable to copy Windows 2000 printer driver files!"
+msgstr "Impossible de copier les fichiers de pilote d'impression pour Windows 2000 !"
+
+msgid "Unable to install Windows 2000 printer driver files!"
+msgstr "Impossible d'installer les fichiers de pilote d'impression pour Windows 2000 !"
+
+msgid "Unable to copy Windows 9x printer driver files!"
+msgstr "Impossible de copier les fichiers de pilote d'impression pour Windows 9x !"
+
+msgid "Unable to install Windows 9x printer driver files!"
+msgstr "Impossible d'installer les fichiers de pilote d'impression pour Windows 9x !"
+
+msgid "Unable to set Windows printer driver!"
+msgstr "Impossible d'installer les fichiers de pilote d'impression pour Windows !"
+
+msgid "No printer drivers found!"
+msgstr "Aucun pilote trouvé pour l'imprimante !"
+
+msgid "Unable to execute cupsaddsmb command!"
+msgstr "Impossible d'exécuter la commande cupsaddsmb !"
+
+#, c-format
+msgid "cupsaddsmb failed with status %d"
+msgstr "cupsaddsmb a échoué avec le statut %d"
+
+#, c-format
+msgid "cupsaddsmb crashed on signal %d"
+msgstr "cupsaddsmb s'est terminé inopinément sur réception du signal %d"
+
+msgid "A Samba username is required to export printer drivers!"
+msgstr "Il faut un nom d'utilisateur SAMBA pour exporter les pilotes d'imprimante !"
+
+msgid "A Samba password is required to export printer drivers!"
+msgstr "Il faut un mot de passe SAMBA pour exporter les pilotes d'imprimante !"
+
+msgid "Unable to open cupsd.conf file:"
+msgstr "Impossible d'ouvrir le fichier cupsd.conf :"
+
+msgid "Unable to change printer:"
+msgstr "Impossible de modifier l'imprimante :"
+
+msgid "Set Allowed Users"
+msgstr "Définir les autorisations"
+
+msgid "Unable to get printer attributes:"
+msgstr "Impossible de récupérer les attributs de l'imprimante :"
+
+msgid "Set Publishing"
+msgstr "Publier"
+
+msgid "Unable to change printer-is-shared attribute:"
+msgstr "Impossible de modifier l'attribut « printer-is-shared » :"
+
+msgid "Classes"
+msgstr "Classes"
+
+msgid "Unable to get class list:"
+msgstr "Impossible d'obtenir la liste des classes :"
+
+msgid "Unable to get class status:"
+msgstr "Impossible d'obtenir l'état de la classe :"
+
+msgid "Move Job"
+msgstr "Transférer la tâche"
+
+msgid "Unable to find destination for job!"
+msgstr "Impossible de trouver la destination de la tâche !"
+
+msgid "Move All Jobs"
+msgstr "Transférer toutes les tâches"
+
+msgid "Unable to move job"
+msgstr "Impossible de transférer la tâche !"
+
+msgid "Unable to move jobs"
+msgstr "Impossible de transférer les tâches !"
+
+msgid "Print Test Page"
+msgstr "Imprimer la page de test"
+
+msgid "Unable to print test page:"
+msgstr "Impossible d'imprimer la page de test :"
+
+msgid "Jobs"
+msgstr "Tâches"
+
+msgid "Job operation failed:"
+msgstr "L'opération sur la tâche a échoué :"
+
+msgid "Printers"
+msgstr "Imprimantes"
+
+msgid "Unable to get printer list:"
+msgstr "Impossible d'obtenir la liste des imprimantes :"
+
+msgid "Unable to get printer status:"
+msgstr "Impossible d'obtenir l'état de l'imprimante :"
+
+msgid "OK"
+msgstr "OK"
+
+msgid "Unable to open PPD file"
+msgstr "Impossible d'ouvrir le fichier PPD !"
+
+msgid "NULL PPD file pointer"
+msgstr "Pointeur de fichier PPD NUL !"
+
+msgid "Memory allocation error"
+msgstr "Problème d'allocation de mémoire"
+
+msgid "Missing PPD-Adobe-4.x header"
+msgstr "Il manque l'entête PPD-Adobe-4.x"
+
+msgid "Missing value string"
+msgstr "Il manque la valeur"
+
+msgid "Internal error"
+msgstr "Erreur interne"
+
+msgid "Bad OpenGroup"
+msgstr "OpenGroup erroné"
+
+msgid "OpenGroup without a CloseGroup first"
+msgstr "OpenGroup sans de CloseGroup d'abord"
+
+msgid "Bad OpenUI/JCLOpenUI"
+msgstr "OpenUI/JCLOpenUI erroné"
+
+msgid "OpenUI/JCLOpenUI without a CloseUI/JCLCloseUI first"
+msgstr "OpenUI/JCLOpenUI sans de CloseUI/JCLCloseUI d'abord"
+
+msgid "Bad OrderDependency"
+msgstr "OrderDependency erroné"
+
+msgid "Bad UIConstraints"
+msgstr "UIConstraints erroné"
+
+msgid "Missing asterisk in column 1"
+msgstr "Il manque un astérisque à la colonne 1"
+
+msgid "Line longer than the maximum allowed (255 characters)"
+msgstr "Ligne plus longue que les 255 caractères autorisés"
+
+msgid "Illegal control character"
+msgstr "Caractère de contrôle incorrect"
+
+msgid "Illegal main keyword string"
+msgstr "Mot-clé essentiel incorrect"
+
+msgid "Illegal option keyword string"
+msgstr "Mot-clé d'option incorrect"
+
+msgid "Illegal translation string"
+msgstr "Traduction incorrecte"
+
+msgid "Illegal whitespace character"
+msgstr "Caractère « espace blanc » incorrect"
+
+msgid "Bad custom parameter"
+msgstr "Paramètre de personnalisation incorrect"
+
+msgid "Unknown"
+msgstr "Inconnu(e)"
+
+msgid "Custom"
+msgstr "Personnalisation"
+
+msgid "JCL"
+msgstr "JCL ( Langage de contrôle de tâche )"
+
+msgid "No authentication information provided!"
+msgstr "Pas d'information d'authentification !"
+
+#, c-format
+msgid "Password for %s required to access %s via SAMBA: "
+msgstr "Il faut un mot de passe à %s pour accéder à %s via SAMBA : "
+
+#, c-format
+msgid "Running command: %s %s -N -U '%s%%%s' -c '%s'\n"
+msgstr "Exécute la commande : %s %s -N -U '%s%%%s' -c '%s'\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to run \"%s\": %s\n"
+msgstr "cupsaddsmb: Impossible d'exécuter « %s » : %s\n"
+
+msgid "cupsaddsmb: No Windows printer drivers are installed!\n"
+msgstr "cupsaddsmb: Aucun pilote d'impression pour Windows n'est installé !\n"
+
+msgid "cupsaddsmb: Warning, no Windows 2000 printer drivers are installed!\n"
+msgstr "cupsaddsmb: Attention, aucun pilote d'impression pour Windows 2000 n'est installé !\n"
+
+#, c-format
+msgid "lpadmin: Printer %s is already a member of class %s.\n"
+msgstr "lpadmin: L'imprimante %s est déjà membre de la classe %s.\n"
+
+msgid "lpadmin: No member names were seen!\n"
+msgstr "lpadmin: Aucun nom de membre trouvé !\n"
+
+#, c-format
+msgid "lpadmin: Printer %s is not a member of class %s.\n"
+msgstr "lpadmin: L'imprimante %s n'est pas membre de la classe %s.\n"
+
+#, c-format
+msgid ""
+"Device: uri = %s\n"
+" class = %s\n"
+" info = %s\n"
+" make-and-model = %s\n"
+" device-id = %s\n"
+msgstr ""
+"Matériel : URI = %s\n"
+" classe = %s\n"
+" info = %s\n"
+" marque/modèle = %s\n"
+" ID matériel = %s\n"
+
+#, c-format
+msgid ""
+"Model: name = %s\n"
+" natural_language = %s\n"
+" make-and-model = %s\n"
+" device-id = %s\n"
+msgstr ""
+"Modèle : nom = %s\n"
+" langue naturelle = %s\n"
+" marque/modèle = %s\n"
+" ID matériel = %s\n"
+
+
+msgid "Usage: lpmove job/src dest\n"
+msgstr "Utilisation : lpmove tâche/source destination\n"
+
+msgid "lpstat: Need \"completed\", \"not-completed\", or \"all\" after -W!\n"
+msgstr "lpstat: Il faut « completed » ou « not-completed » après l'option -W !\n"
+
+#, c-format
+msgid "%s accepting requests since %s\n"
+msgstr "%s accepte les requêtes depuis le %s\n"
+
+#, c-format
+msgid ""
+"%s not accepting requests since %s -\n"
+"\t%s\n"
+msgstr ""
+"%s n'accepte pas les requêtes depuis le %s -\n"
+"\t%s\n"
+
+#, c-format
+msgid "%s/%s accepting requests since %s\n"
+msgstr "%s/%s accepte les requêtes depuis le %s\n"
+
+#, c-format
+msgid ""
+"%s/%s not accepting requests since %s -\n"
+"\t%s\n"
+msgstr ""
+"%s/%s n'accepte pas les requêtes depuis le %s -\n"
+"\t%s\n"
+
+msgid "lpc> "
+msgstr "lpc> "
+
+#, c-format
+msgid "%s: Unable to contact server!\n"
+msgstr "%s: Impossible de contacter le serveur !\n"
+
+#, c-format
+msgid "%s: Error - expected username after '-U' option!\n"
+msgstr "%s: Erreur - il faut un nom d'utilisateur après l'option '-U' !\n"
+
+#, c-format
+msgid "%s: Error - unknown destination \"%s/%s\"!\n"
+msgstr "%s: Erreur - destination « %s/%s » inconnue !\n"
+
+#, c-format
+msgid "%s: Unknown destination \"%s\"!\n"
+msgstr "%s: Destination « %s » inconnue !\n"
+
+#, c-format
+msgid "%s: Error - expected hostname after '-h' option!\n"
+msgstr "%s: Erreur - il faut un nom de machine après l'option '-h' !\n"
+
+#, c-format
+msgid "%s: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr "%s: Erreur - la variable d'environnement %s désigne une destination inexistente « %s » !\n"
+
+#, c-format
+msgid "%s: error - no default destination available.\n"
+msgstr "%s: Erreur - aucune destination par défaut n'est disponible.\n"
+
+msgid "Usage: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]\n"
+msgstr "Utilisation : lpq [-P dest] [-U nom_utilisateur] [-h nom_machine[:port]] [-l] [+intervalle]\n"
+
+#, c-format
+msgid "%s: Error - expected hostname after '-H' option!\n"
+msgstr "%s: Erreur - il faut un nom de machine après l'option '-H' !\n"
+
+#, c-format
+msgid "%s: Error - expected value after '-%c' option!\n"
+msgstr "%s: Erreur - il faut une valeur après l'option '-%c' !\n"
+
+#, c-format
+msgid "%s: Warning - '%c' format modifier not supported - output may not be correct!\n"
+msgstr "%s: Attention - le modificateur de format '%c' n'est pas géré - l'affichage pourrait être incorrect !\n"
+
+#, c-format
+msgid "%s: error - expected option=value after '-o' option!\n"
+msgstr "%s: Erreur - il faut un argument du type option=valeur après l'option '-o' !\n"
+
+#, c-format
+msgid "%s: Error - expected destination after '-P' option!\n"
+msgstr "%s: Erreur - il faut une destination après l'option '-P' !\n"
+
+#, c-format
+msgid "%s: Error - expected copy count after '-#' option!\n"
+msgstr "%s: Erreur - il faut un nombre de copies après l'option '-#' !\n"
+
+#, c-format
+msgid "%s: Error - expected name after '-%c' option!\n"
+msgstr "%s: Erreur - il faut un nom après l'option '-%c' !\n"
+
+#, c-format
+msgid "%s: Error - unknown option '%c'!\n"
+msgstr "%s: Erreur - option '%c' inconnue !\n"
+
+#, c-format
+msgid "%s: Error - unable to access \"%s\" - %s\n"
+msgstr "%s: Erreur - impossible d'accéder à « %s » - %s\n"
+
+#, c-format
+msgid "%s: Error - too many files - \"%s\"\n"
+msgstr "%s: Erreur - trop de fichiers - « %s »\n"
+
+#, c-format
+msgid "%s: Error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr "%s: Erreur - la variable d'environnement %s désigne une destination inexistente « %s » !\n"
+
+#, c-format
+msgid "%s: Error - no default destination available.\n"
+msgstr "%s: Erreur - aucune destination par défaut n'est disponible.\n"
+
+#, c-format
+msgid "%s: Error - scheduler not responding!\n"
+msgstr "%s: Erreur - l'ordonnanceur ne répond pas !\n"
+
+#, c-format
+msgid "%s: Error - unable to create temporary file \"%s\" - %s\n"
+msgstr "%s: Erreur - impossible de créer le fichier temporaire « %s » - %s\n"
+
+#, c-format
+msgid "%s: Error - unable to write to temporary file \"%s\" - %s\n"
+msgstr "%s: Erreur - impossible d'écrire dans le fichier temporaire « %s » - %s\n"
+
+#, c-format
+msgid "%s: Error - stdin is empty, so no job has been sent.\n"
+msgstr "%s: Erreur - stdin est vide, donc aucune tâche n'a été envoyée.\n"
+
+#, c-format
+msgid "%s: Error - unknown destination \"%s\"!\n"
+msgstr "%s: Erreur - destination « %s » inconnue !\n"
+
+#, c-format
+msgid "%s: Error - expected reason text after '-r' option!\n"
+msgstr "%s: Erreur - il faut le texte de la raison après l'option '-r' !\n"
+
+#, c-format
+msgid "%s: Error - expected username after '-u' option!\n"
+msgstr "%s: Erreur - il faut un nom d'utilisateur après l'option '-u' !\n"
+
+#, c-format
+msgid "%s: %s failed: %s\n"
+msgstr ""%s: %s a échoué : %s"
+
+#, c-format
+msgid "%s: Error - expected destination after '-d' option!\n"
+msgstr "%s: Erreur - il faut une destination après l'option '-d' !\n"
+
+#, c-format
+msgid "%s: Error - expected form after '-f' option!\n"
+msgstr "%s: Erreur - il faut un format après l'option '-f' !\n"
+
+#, c-format
+msgid "%s: Warning - form option ignored!\n"
+msgstr "%s: Attention - l'option « format » est ignorée !\n"
+
+#, c-format
+msgid "%s: Expected job ID after '-i' option!\n"
+msgstr "%s: Il faut un numéro de tâche après l'option '-i' !\n"
+
+#, c-format
+msgid "%s: Error - cannot print files and alter jobs simultaneously!\n"
+msgstr "%s: Erreur - impossible d'imprimer et modifier les tâches en même temps !\n"
+
+#, c-format
+msgid "%s: Error - bad job ID!\n"
+msgstr "%s: Erreur - numéro de tâche incorrect !\n"
+
+#, c-format
+msgid "%s: Error - expected copies after '-n' option!\n"
+msgstr "%s: Erreur - il faut un nombre de copies après l'option '-n' !\n"
+
+#, c-format
+msgid "%s: Error - expected option string after '-o' option!\n"
+msgstr "%s: Erreur - il faut une chaîne d'option \"nom=valeur\" après l'option '-o' !\n"
+
+#, c-format
+msgid "%s: Error - expected priority after '-%c' option!\n"
+msgstr "%s: Erreur - il faut une priorité après l'option '-%c' !\n"
+
+#, c-format
+msgid "%s: Error - priority must be between 1 and 100.\n"
+msgstr "%s: Erreur - la priorité doit être comprise entre 1 et 100.\n"
+
+#, c-format
+msgid "%s: Error - expected title after '-t' option!\n"
+msgstr "%s: Erreur - il faut un titre après l'option '-t' !\n"
+
+#, c-format
+msgid "%s: Error - expected mode list after '-y' option!\n"
+msgstr "%s: Erreur - il faut une liste de modes après l'option '-y' !\n"
+
+#, c-format
+msgid "%s: Warning - mode option ignored!\n"
+msgstr "%s: Attention - l'option « mode » est ignorée !\n"
+
+#, c-format
+msgid "%s: Error - expected hold name after '-H' option!\n"
+msgstr "%s: Erreur - il faut un code de retenue après l'option '-H' !\n"
+
+#, c-format
+msgid "%s: Need job ID ('-i jobid') before '-H restart'!\n"
+msgstr "%s: Il faut un numéro de tâche ( '-i' ) avant '-H restart' !\n"
+
+#, c-format
+msgid "%s: Error - expected page list after '-P' option!\n"
+msgstr "%s: Erreur - il faut une liste de pages après l'option '-P' !\n"
+
+#, c-format
+msgid "%s: Error - expected character set after '-S' option!\n"
+msgstr "%s: Erreur - il faut un jeu de caractères après l'option '-S' !\n"
+
+#, c-format
+msgid "%s: Warning - character set option ignored!\n"
+msgstr "%s: Attention - l'option « jeu de caractères » est ignorée !\n"
+
+#, c-format
+msgid "%s: Error - expected content type after '-T' option!\n"
+msgstr "%s: Erreur - il faut un type de contenu après l'option '-T' !\n"
+
+#, c-format
+msgid "%s: Warning - content type option ignored!\n"
+msgstr "%s: Attention - l'option « type de contenu » est ignorée !\n"
+
+#, c-format
+msgid "%s: Error - cannot print from stdin if files or a job ID are provided!\n"
+msgstr ""
+"%s: Erreur - impossible d'imprimer depuis l'entrée standard si un fichier\n"
+" ou un numéro de tâche est spécifié !\n"
+
+#, c-format
+msgid "%s: Error - need \"completed\", \"not-completed\", or \"all\" after '-W' option!\n"
+msgstr "%s: Erreur - il faut « completed », « not-completed », ou « all » après l'option -W !\n"
+
+#, c-format
+msgid "%s: Error - expected destination after '-b' option!\n"
+msgstr "%s: Erreur - il faut une destination après l'option '-b' !\n"
+
+#, c-format
+msgid "%s: Invalid destination name in list \"%s\"!\n"
+msgstr "%s: Erreur - nom de destination incorrect dans la liste « %s » !\n"
+
+#, c-format
+msgid "%s: Unable to connect to server\n"
+msgstr "%s: Impossible de se connecter au serveur !\n"
+
+msgid "Print Job:"
+msgstr "Imprimer la tâche :"
+
+msgid "pending"
+msgstr "en attente"
+
+msgid "held"
+msgstr "retenue"
+
+msgid "processing"
+msgstr "en cours"
+
+msgid "stopped"
+msgstr "arrêtée"
+
+msgid "canceled"
+msgstr "annulée"
+
+msgid "aborted"
+msgstr "abandonnée"
+
+msgid "completed"
+msgstr "terminée"
+
+msgid "unknown"
+msgstr "inconnue"
+
+msgid "untitled"
+msgstr "sans titre"
+
+msgid "Printer:"
+msgstr "Imprimante :"
+
+msgid "idle"
+msgstr "inactive"
+
+msgid "Missing notify-subscription-ids attribute!"
+msgstr "Il manque l'attibut notify-subscription-ids"
+
+msgid "Job subscriptions cannot be renewed!"
+msgstr "Les souscriptions de tâche ne peuvent être renouvelées !"
+
+
+I AM HERE
+
+
+msgid "cupsd: Expected config filename after \"-c\" option!\n"
+msgstr "cupsd: Il faut un nom de fichier de configuration après l'option '-c' !\n"
+
+msgid "cupsd: launchd(8) support not compiled in, running in normal mode.\n"
+msgstr "cupsd: la gestion de launchd(8) n'a pas été compilée - exécution en mode normal.\n"
+
+#, c-format
+msgid "cupsd: Unknown option \"%c\" - aborting!\n"
+msgstr "cupsd: Option « %c » inconnue - abandon !\n"
+
+#, c-format
+msgid "cupsd: Unknown argument \"%s\" - aborting!\n"
+msgstr "cupsd: Argument « %s » inconnu - abandon !\n"
+
+msgid ""
+"Usage: cupsd [-c config-file] [-f] [-F] [-h] [-l]\n"
+"\n"
+"-c config-file Load alternate configuration file\n"
+"-f Run in the foreground\n"
+"-F Run in the foreground but detach\n"
+"-h Show this usage message\n"
+"-l Run cupsd from launchd(8)\n"
+msgstr ""
+"Utilisation : cupsd [-c fichier-config] [-f] [-F] [-h] [-l]\n"
+"\n"
+"-c fichier-config Charge un autre fichier de configuration\n"
+"-f Exécution au premier plan\n"
+"-F Exécution au premier plan mais détaché\n"
+"-h Affiche the message d'aide\n"
+"-l Exécute cupsd depuis launchd(8)\n"
+
+#, c-format
+msgid " WARN Line %d only contains whitespace!\n"
+msgstr " WARN Line %d only contains whitespace!\n"
+
+msgid " WARN File contains a mix of CR, LF, and CR LF line endings!\n"
+msgstr " WARN File contains a mix of CR, LF, and CR LF line endings!\n"
+
+msgid " WARN Non-Windows PPD files should use lines ending with only LF, not CR LF!\n"
+msgstr " WARN Non-Windows PPD files should use lines ending with only LF, not CR LF!\n"
+
+msgid "Printer Maintenance"
+msgstr "Maintenance de l'imprimante"
+
+msgid "Unable to send maintenance job:"
+msgstr "Impossible d'envoyer la tâche de maintenance :"
+
+#, c-format
+msgid "cupsaddsmb: No PPD file for printer \"%s\" - %s\n"
+msgstr "cupsaddsmb: Pas de fichier PPD pour l'imprimante « %s » - %s\n"
+
+#, c-format
+msgid " **FAIL** %s %s does not exist!\n"
+msgstr " **FAIL** %s %s does not exist!\n"
+
+#, c-format
+msgid " **FAIL** Bad language \"%s\"!\n"
+msgstr " **FAIL** Bad language \"%s\"!\n"
+
+#, c-format
+msgid " **FAIL** Missing \"%s\" translation string for option %s!\n"
+msgstr " **FAIL** Missing \"%s\" translation string for option %s!\n"
+
+#, c-format
+msgid " **FAIL** Default translation string for option %s contains 8-bit characters!\n"
+msgstr " **FAIL** Default translation string for option %s contains 8-bit characters!\n"
+
+#, c-format
+msgid " **FAIL** Missing \"%s\" translation string for option %s, choice %s!\n"
+msgstr " **FAIL** Missing \"%s\" translation string for option %s, choice %s!\n"
+
+#, c-format
+msgid " **FAIL** Default translation string for option %s choice %s contains 8-bit characters!\n"
+msgstr " **FAIL** Default translation string for option %s choice %s contains 8-bit characters!\n"
+
+#, c-format
+msgid " **FAIL** Bad cupsFilter value \"%s\"!\n"
+msgstr " **FAIL** Bad cupsFilter value \"%s\"!\n"
+
+msgid "Help"
+msgstr "Aide"
+
+#, c-format
+msgid "Missing value on line %d!\n"
+msgstr "Il manque une valeur à la ligne %d !\n"
+
+#, c-format
+msgid "Missing double quote on line %d!\n"
+msgstr "Il manque un \" à la ligne %d !\n"
+
+#, c-format
+msgid "Bad option + choice on line %d!\n"
+msgstr "Couple option + choix incorrect à la ligne %d !\n"
+
+#, c-format
+msgid "Unable to copy Windows 2000 printer driver files (%d)!\n"
+msgstr "Impossible de copier les fichiers de pilote d'impression pour Windows 2000 ( %d ) !\n"
+
+#, c-format
+msgid "Unable to copy CUPS printer driver files (%d)!\n"
+msgstr "Impossible de copier les fichiers de pilote d'impression pour CUPS ( %d ) !\n"
+
+#, c-format
+msgid "Unable to install Windows 2000 printer driver files (%d)!\n"
+msgstr "Impossible d'installer les fichiers de pilote d'impression pour Windows 2000 ( %d ) !\n"
+
+#, c-format
+msgid "Unable to copy Windows 9x printer driver files (%d)!\n"
+msgstr "Impossible de copier les fichiers de pilote d'impression pour Windows 9x ( %d ) !\n"
+
+#, c-format
+msgid "Unable to install Windows 9x printer driver files (%d)!\n"
+msgstr "Impossible d'installer les fichiers de pilote d'impression pour Windows 9x ( %d ) !\n"
+
+msgid "No Windows printer drivers are installed!\n"
+msgstr "Aucun pilote d'impression pour Windows n'est installé !\n"
+
+msgid "Warning, no Windows 2000 printer drivers are installed!\n"
+msgstr "Attention, aucun pilote d'impression pour Windows 2000 n'est installé !\n"
+
+#, c-format
+msgid "Unable to set Windows printer driver (%d)!\n"
+msgstr "Impossible d'installer les fichiers de pilote d'impression pour Windows ( %d ) !\n""
+
+msgid ""
+"Usage: cupsaddsmb [options] printer1 ... printerN\n"
+" cupsaddsmb [options] -a\n"
+"\n"
+"Options:\n"
+" -E Encrypt the connection to the server\n"
+" -H samba-server Use the named SAMBA server\n"
+" -U samba-user Authenticate using the named SAMBA user\n"
+" -a Export all printers\n"
+" -h cups-server Use the named CUPS server\n"
+" -v Be verbose (show commands)\n"
+msgstr ""
+"Utilisation : cupsaddsmb [options] imprimante1 ... imprimanteN\n"
+" cupsaddsmb [options] -a\n"
+"\n"
+"Options:\n"
+" -E Crypter la connexion au serveur\n"
+" -H serveur-samba Utiliser le serveur SAMBA désigné\n"
+" -U utilisateur-samba S'authentifier avec l'utilisateur SAMBA désigné\n"
+" -a Exporter toutes les imprimantes\n"
+" -h serveur-CUPS Utiliser le serveur CUPS désigné\n"
+" -v Être locace ( afficher les commandes )\n"
+
+#, c-format
+msgid "Unable to copy Windows 2000 printer driver files (%d)!"
+msgstr "Impossible de copier les fichiers de pilote d'impression pour Windows 2000 ( %d ) !"
+
+#, c-format
+msgid "Unable to copy CUPS printer driver files (%d)!"
+msgstr "Impossible de copier les fichiers de pilote d'impression pour CUPS ( %d ) !"
+
+#, c-format
+msgid "Unable to install Windows 2000 printer driver files (%d)!"
+msgstr "Impossible d'installer les fichiers de pilote d'impression pour Windows 2000 ( %d ) !"
+
+#, c-format
+msgid "Unable to copy Windows 9x printer driver files (%d)!"
+msgstr "Impossible de copier les fichiers de pilote d'impression pour Windows 9x ( %d ) !"
+
+#, c-format
+msgid "Unable to install Windows 9x printer driver files (%d)!"
+msgstr "Impossible d'installer les fichiers de pilote d'impression pour Windows 9x ( %d ) !"
+
+msgid "No Windows printer drivers are installed!"
+msgstr "Aucun pilote d'impression pour Windows n'est installé !"
+
+msgid "Warning, no Windows 2000 printer drivers are installed!"
+msgstr "Attention, aucun pilote d'impression pour Windows 2000 n'est installé !"
+
+#, c-format
+msgid "open of %s failed: %s"
+msgstr "l'ouverture de %s a échoué : %s"
+
+#, c-format
+msgid "Running command: %s %s -N -A %s -c '%s'\n"
+msgstr "Exécution de la commande : %s %s -N -A %s -c '%s'\n"
+
+#, c-format
+msgid "stat of %s failed: %s"
+msgstr "stat sur %s a échoué : %s"
+
+#, c-format
+msgid "Job #%d is already cancelled - can't cancel."
+msgstr "La tâche n°%d est déjà annulée - impossible de l'annuler."
+
+#, c-format
+msgid "Job #%d is already aborted - can't cancel."
+msgstr "La tâche n°%d est déjà abandonnée - impossible de l'annuler."
+
+#, c-format
+msgid "Job #%d is already completed - can't cancel."
+msgstr "La tâche n°%d est déjà terminée - impossible de l'annuler."
+
+#, c-format
+msgid "You must access this page using the URL <A HREF=\"https://%s:%d%s\">https://%s:%d%s</A>."
+msgstr "Vous devez accéder à cette page avec l'URL <A HREF=\"https://%s:%d%s\">https://%s:%d%s</A>."
+
+#, c-format
+msgid "Unsupported format '%s'!"
+msgstr "Format non géré '%s' !"
+
+msgid "FAIL\n"
+msgstr "ÉCHEC"
+
+#, c-format
+msgid ""
+" Line %d is longer than 255 characters (%d)!\n"
+" REF: Page 25, Line Length\n"
+msgstr ""
+" Line %d is longer than 255 characters (%d)!\n"
+" REF: Page 25, Line Length\n"
+
+msgid ""
+" Missing %!PS-Adobe-3.0 on first line!\n"
+" REF: Page 17, 3.1 Conforming Documents\n"
+msgstr ""
+" Missing %!PS-Adobe-3.0 on first line!\n"
+" REF: Page 17, 3.1 Conforming Documents\n"
+
+#, c-format
+msgid ""
+" Bad %%%%Pages: on line %d!\n"
+" REF: Page 43, %%%%Pages:\n"
+msgstr ""
+" Bad %%%%Pages: on line %d!\n"
+" REF: Page 43, %%%%Pages:\n"
+
+#, c-format
+msgid ""
+" Bad %%%%BoundingBox: on line %d!\n"
+" REF: Page 39, %%%%BoundingBox:\n"
+msgstr ""
+" Bad %%%%BoundingBox: on line %d!\n"
+" REF: Page 39, %%%%BoundingBox:\n"
+
+#, c-format
+msgid ""
+" Bad %%%%Page: on line %d!\n"
+" REF: Page 53, %%%%Page:\n"
+msgstr ""
+" Bad %%%%Page: on line %d!\n"
+" REF: Page 53, %%%%Page:\n"
+
+#, c-format
+msgid ""
+" Missing or bad %%BoundingBox: comment!\n"
+" REF: Page 39, %%BoundingBox:\n"
+msgstr ""
+" Missing or bad %%BoundingBox: comment!\n"
+" REF: Page 39, %%BoundingBox:\n"
+
+#, c-format
+msgid ""
+" Missing or bad %%Pages: comment!\n"
+" REF: Page 43, %%Pages:\n"
+msgstr ""
+" Missing or bad %%Pages: comment!\n"
+" REF: Page 43, %%Pages:\n"
+
+#, c-format
+msgid ""
+" Missing %%EndComments comment!\n"
+" REF: Page 41, %%EndComments\n"
+msgstr ""
+" Missing %%EndComments comment!\n"
+" REF: Page 41, %%EndComments\n"
+
+#, c-format
+msgid ""
+" Missing or bad %%Page: comments!\n"
+" REF: Page 53, %%Page:\n"
+msgstr ""
+" Missing or bad %%Page: comments!\n"
+" REF: Page 53, %%Page:\n"
+
+#, c-format
+msgid " Too many %%EndDocument comments!\n"
+msgstr " Too many %%EndDocument comments!\n"
+
+#, c-format
+msgid " Too many %%BeginDocument comments!\n"
+msgstr " Too many %%BeginDocument comments!\n"
+
+#, c-format
+msgid " Saw %d lines that exceeded 255 characters!\n"
+msgstr " Saw %d lines that exceeded 255 characters!\n"
+
+msgid "PASS\n"
+msgstr "OK"
+
+msgid " Warning: file contains binary data!\n"
+msgstr " Warning: file contains binary data!\n"
+
+#, c-format
+msgid " Warning: obsolete DSC version %.1f in file!\n"
+msgstr " Warning: obsolete DSC version %.1f in file!\n"
+
+#, c-format
+msgid " Warning: no %%EndComments comment in file!\n"
+msgstr " Warning: no %%EndComments comment in file!\n"
+
+msgid ""
+"Usage: cupstestdsc [options] filename.ps [... filename.ps]\n"
+" cupstestdsc [options] -\n"
+"\n"
+"Options:\n"
+"\n"
+" -h Show program usage\n"
+"\n"
+" Note: this program only validates the DSC comments, not the PostScript itself.\n"
+msgstr ""
+"Usage: cupstestdsc [options] filename.ps [... filename.ps]\n"
+" cupstestdsc [options] -\n"
+"\n"
+"Options:\n"
+"\n"
+" -h Show program usage\n"
+"\n"
+" Note: this program only validates the DSC comments, not the PostScript itself.\n"
+
+
+#, c-format
+msgid "Password for %s on %s? "
+msgstr "Mot de passe pour %s sur %s? "
+
+msgid ""
+" **FAIL** 1284DeviceId must be 1284DeviceID!\n"
+" REF: Page 72, section 5.5\n"
+msgstr ""
+" **FAIL** 1284DeviceId must be 1284DeviceID!\n"
+" REF: Page 72, section 5.5\n"
+
+
+#
+# End of "$Id$".
+#
+#
+# "$Id$"
+#
+# Message catalog template for the Common UNIX Printing System (CUPS).
+#
+# Copyright 2005-2006 by Easy Software Products.
+#
+# These coded instructions, statements, and computer programs are the
+# property of Easy Software Products and are protected by Federal
+# copyright law. Distribution and use rights are outlined in the file
+# "LICENSE.txt" which should have been included with this file. If this
+# file is missing or damaged please contact Easy Software Products
+# at:
+#
+# Attn: CUPS Licensing Information
+# Easy Software Products
+# 44141 Airport View Drive, Suite 204
+# Hollywood, Maryland 20636 USA
+#
+# Voice: (301) 373-9600
+# EMail: cups-info@cups.org
+# WWW: http://www.cups.org
+#
+#
+# NDT: I did not translate the messages used in conformance, DSC and PPD tests,
+# because they are destined to developers only, as far as I understand.
+#
+
+msgid ""
+msgstr ""
+"Project-Id-Version: CUPS 1.2\n"
+"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
+"POT-Creation-Date: 2006-05-21 10:08-0400\n"
+"PO-Revision-Date: 2007-01-25 19:55+0200\n"
+"Last-Translator: Philippe Combes <Philippe.Combes@ens-lyon.fr>\n"
+"Language-Team: Français\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Options Installed"
+msgstr "Options Installées"
+
+msgid "Class"
+msgstr "Classe"
+
+msgid "Printer"
+msgstr "Imprimante"
+
+msgid "Extra"
+msgstr "Supplémentaire"
+
+msgid "General"
+msgstr "Généralités"
+
+msgid "Media Size"
+msgstr "Taille du support"
+
+msgid "Media Type"
+msgstr "Type de support"
+
+msgid "Media Source"
+msgstr "Source du support"
+
+msgid "Output Mode"
+msgstr "Mode de sortie"
+
+msgid "Resolution"
+msgstr "Résolution"
+
+msgid "Variable"
+msgstr "Variable"
+
+msgid "Yes"
+msgstr "Oui"
+
+msgid "No"
+msgstr "Non"
+
+msgid "Auto"
+msgstr "Auto"
+
+msgid "Enter your username and password or the root username and password to access this page."
+msgstr "Entrez votre nom d'utilisateur et votre mot de passe UNIX ou bien identifiez-vous en tant que « root » pour accéder à cette page."
+
+msgid "You must use a https: URL to access this page."
+msgstr "Vous devez utiliser une URL https: pour accéder à cette page."
+
+#, c-format
+msgid "Bad request version number %d.%d!"
+msgstr "La requête a un numéro de version erroné : %d.%d !"
+
+msgid "No attributes in request!"
+msgstr "Aucun attribut dans la requête !"
+
+#, c-format
+msgid "Attribute groups are out of order (%x < %x)!"
+msgstr "Les groupes d'attributs ne sont pas dans le bon ordre (%x < %x) !"
+
+msgid "Missing required attributes!"
+msgstr "Il manque des attributs indispensables !"
+
+#, c-format
+msgid "%s not supported!"
+msgstr "%s: opération non gérée !"
+
+msgid "The printer or class was not found."
+msgstr "L'imprimante ou la classe n'a pas été trouvée."
+
+msgid "The printer-uri must be of the form \"ipp://HOSTNAME/classes/CLASSNAME\"."
+msgstr "L'URI de l'imprimante doit suivre le format « ipp://NOM_MACHINE/classes/NOM_CLASSE »."
+
+#, c-format
+msgid "The printer-uri \"%s\" contains invalid characters."
+msgstr "L'URI de l'imprimante « %s » contient des caractères ."
+
+#, c-format
+msgid "A printer named \"%s\" already exists!"
+msgstr "Il existe déjà une imprimante appelée « %s » !"
+
+#, c-format
+msgid "Attempt to set %s printer-state to bad value %d!"
+msgstr "Tentative de donner une valeur erronée au paramètre « printer-state » : %d !"
+
+#, c-format
+msgid "add_class: Unknown printer-op-policy \"%s\"."
+msgstr "add_class: L'attribut « printer-op-policy » a une valeur non comprise : « %s »."
+
+#, c-format
+msgid "add_class: Unknown printer-error-policy \"%s\"."
+msgstr "add_class: L'attribut « printer-error-policy » a une valeur non comprise : « %s »."
+
+msgid "Unable to allocate memory for file types!"
+msgstr "Impossible d'allouer de la mémoire pour les types de fichiers !"
+
+#, c-format
+msgid "Character set \"%s\" not supported!"
+msgstr "Jeu de caractères « %s » non géré !"
+
+#, c-format
+msgid "Language \"%s\" not supported!"
+msgstr "Langue « %s » non gérée !"
+
+#, c-format
+msgid "The notify-user-data value is too large (%d > 63 octets)!"
+msgstr "La valeur de l'attribut « notify-user-data » est trop grande ( %d > 63 octets ) !"
+
+msgid "The notify-lease-duration attribute cannot be used with job subscriptions."
+msgstr "L'attribut « notify-lease-duration » ne peut pas être utilisé dans une souscription de tâche."
+
+msgid "The printer-uri must be of the form \"ipp://HOSTNAME/printers/PRINTERNAME\"."
+msgstr "L'URI de l'imprimante doit suivre le format « ipp://NOM_MACHINE/printers/NOM_CLASSE »."
+
+#, c-format
+msgid "A class named \"%s\" already exists!"
+msgstr ""Il existe déjà une classe appelée « %s » !"
+
+#, c-format
+msgid "File device URIs have been disabled! To enable, see the FileDevice directive in \"%s/cupsd.conf\"."
+msgstr "L'impression dans un fichier a été désactivée ! Pour l'activer, cf. la directive « FileDevice » dans « %s/cupsd.conf »."
+
+#, c-format
+msgid "Bad device-uri \"%s\"!"
+msgstr "Valeur erronée pour le paramètre « device-uri » : « %s » !"
+
+#, c-format
+msgid "Bad port-monitor \"%s\"!"
+msgstr "Valeur erronée pour le paramètre « port-monitor » : « %s » !"
+
+#, c-format
+msgid "Bad printer-state value %d!"
+msgstr "Valeur erronée pour le paramètre « printer-state » : « %s » !"
+
+#, c-format
+msgid "Unknown printer-op-policy \"%s\"."
+msgstr "L'attribut « printer-op-policy » a une valeur non comprise : « %s »."
+
+#, c-format
+msgid "Unknown printer-error-policy \"%s\"."
+msgstr "L'attribut « printer-error-policy » a une valeur non comprise : « %s »."
+
+#, c-format
+msgid "Unable to copy interface script - %s!"
+msgstr "Impossible de copier le « script » d'interface - « %s » !"
+
+#, c-format
+msgid "Unable to copy PPD file - %s!"
+msgstr "Impossible de copier le fichier PPD - « %s » !"
+
+msgid "Unable to copy PPD file!"
+msgstr "Impossible de copier le fichier PPD !"
+
+msgid "Got a printer-uri attribute but no job-id!"
+msgstr "Attribut « printer-uri » trouvé mais pas de « job-id »"
+
+#, c-format
+msgid "Bad job-uri attribute \"%s\"!"
+msgstr "Valeur erronée pour l'attribut « job-uri » : « %s » !"
+
+#, c-format
+msgid "Job #%d doesn't exist!"
+msgstr "La tâche n°%d n'existe pas !"
+
+#, c-format
+msgid "Job #%d is not held for authentication!"
+msgstr "La tâche n°%d n'est pas en attente d'authentification !"
+
+#, c-format
+msgid "You are not authorized to authenticate job #%d owned by \"%s\"!"
+msgstr "Vous n'avez pas l'autorisation d'authentifier la tâche n°%d appartenant à « %s » !"
+
+msgid "The printer-uri attribute is required!"
+msgstr "L'attribut « printer-uri » est indispensable !"
+
+msgid "Missing requesting-user-name attribute!"
+msgstr "Il manque l'attribut « requesting-user-name » !"
+
+#, c-format
+msgid "The printer-uri \"%s\" is not valid."
+msgstr "L'attribut « printer-uri » est incorrect : « %s »."
+
+#, c-format
+msgid "No active jobs on %s!"
+msgstr "Il n'y a pas de tâche en cours sur « %s » !"
+
+#, c-format
+msgid "You are not authorized to delete job #%d owned by \"%s\"!"
+msgstr "Vous n'avez pas l'autorisation de supprimer la tâche n°%d appartenant à « %s » !"
+
+#, c-format
+msgid "Job #%d is already %s - can't cancel."
+msgstr "La tâche n°%d est déjà « %s » - impossible de l'annuler."
+
+msgid "The printer or class is not shared!"
+msgstr "L'imprimante ou la classe n'est pas partagée !"
+
+#, c-format
+msgid "Destination \"%s\" is not accepting jobs."
+msgstr "La destination « %s » n'accepte aucune tâche."
+
+#, c-format
+msgid "Bad copies value %d."
+msgstr "Nombre de copies erroné : %d."
+
+#, c-format
+msgid "Bad page-ranges values %d-%d."
+msgstr "Intervalle de pages erroné : %d-%d."
+
+msgid "Too many active jobs."
+msgstr "Trop de tâches en cours."
+
+msgid "Quota limit reached."
+msgstr "Quota atteint."
+
+#, c-format
+msgid "Unable to add job for destination \"%s\"!"
+msgstr "Impossible d'ajouter une tâche pour la destination « %s » !"
+
+msgid "No subscription attributes in request!"
+msgstr "Pas d'attribut de souscription dans la requête !"
+
+msgid "notify-events not specified!"
+msgstr "Attribut « notify-events » non renseigné !"
+
+#, c-format
+msgid "Job %d not found!"
+msgstr "La tâche n°%d n'a pas été trouvée !"
+
+msgid "No default printer"
+msgstr "Pas d'imprimante par défaut"
+
+msgid "cups-deviced failed to execute."
+msgstr "L'exécution de « cups-deviced » a échouée."
+
+msgid "cups-driverd failed to execute."
+msgstr "L'exécution de « cups-driverd » a échouée."
+
+msgid "No destinations added."
+msgstr "Aucune destination ajoutée."
+
+#, c-format
+msgid "notify-subscription-id %d no good!"
+msgstr "Valeur erronée pour l'attribut « notify-subscription-id » : %d !"
+
+#, c-format
+msgid "Job #%s does not exist!"
+msgstr "La tâche n°%s n'existe pas !"
+
+#, c-format
+msgid "Job #%d does not exist!"
+msgstr "La tâche n°%d n'existe pas !"
+
+msgid "No subscriptions found."
+msgstr "Aucune souscription trouvée."
+
+#, c-format
+msgid "Not authorized to hold job #%d owned by \"%s\"!"
+msgstr "Vous n'avez pas l'autorisation de retenir la tâche n°%d appartenant à « %s » !"
+
+#, c-format
+msgid "Job #%d is finished and cannot be altered!"
+msgstr "La tâche n°%d est terminée et ne peut plus être modifiée !"
+
+#, c-format
+msgid "You are not authorized to move job #%d owned by \"%s\"!"
+msgstr "Vous n'avez pas l'autorisation de transférer la tâche n°%d appartenant à « %s » !"
+
+msgid "job-printer-uri attribute missing!"
+msgstr "Il manque l'attribut « job-printer-uri » !"
+
+#, c-format
+msgid "Unsupported compression \"%s\"!"
+msgstr "La compression « %s » n'est pas gérée !"
+
+msgid "No file!?!"
+msgstr "Pas de fichier !?!"
+
+#, c-format
+msgid "Could not scan type \"%s\"!"
+msgstr "Impossible de comprendre le format « %s » !"
+
+#, c-format
+msgid "Unsupported format '%s/%s'!"
+msgstr "Le format « %s » n'est pas géré !"
+
+msgid "Printer not shared!"
+msgstr "L'imprimante n'est pas partagée !"
+
+#, c-format
+msgid "Too many jobs - %d jobs, max jobs is %d."
+msgstr "Trop de tâches - %d tâches pour un maximum de %d."
+
+#, c-format
+msgid "Job #%d is not held!"
+msgstr "La tâche n°%d n'est pas retenue !"
+
+#, c-format
+msgid "You are not authorized to release job id %d owned by \"%s\"!"
+msgstr "Vous n'avez pas l'autorisation de libérer la tâche n°%d appartenant à « %s » !"
+
+#, c-format
+msgid "Job #%d is not complete!"
+msgstr "La tâche n°%d n'est pas terminée !"
+
+#, c-format
+msgid "Job #%d cannot be restarted - no files!"
+msgstr "La tâche n°%d ne peut être redémarrée - aucun fichier !"
+
+#, c-format
+msgid "You are not authorized to restart job id %d owned by \"%s\"!"
+msgstr "Vous n'avez pas l'autorisation de redémarrer la tâche n°%d appartenant à « %s » !"
+
+#, c-format
+msgid "You are not authorized to send document for job #%d owned by \"%s\"!"
+msgstr "Vous n'avez pas l'autorisation d'envoyer un document pour la tâche n°%d appartenant à « %s » !"
+
+#, c-format
+msgid "Bad document-format \"%s\"!"
+msgstr "Format de document erroné : « %s » !"
+
+#, c-format
+msgid "You are not authorized to alter job id %d owned by \"%s\"!"
+msgstr "Vous n'avez pas l'autorisation de modifier la tâche n°%d appartenant à « %s » !"
+
+#, c-format
+msgid "%s cannot be changed."
+msgstr "Impossible de modifier « %s »"
+
+msgid "Bad job-priority value!"
+msgstr "Valeur erronée pour l'attribut « job-priority » !"
+
+msgid "Job is completed and cannot be changed."
+msgstr "La tâche est terminée et ne peut être modifiée."
+
+msgid "Bad job-state value!"
+msgstr "Valeur erronée pour l'attribut « job-state » !"
+
+msgid "Job state cannot be changed."
+msgstr "L'état de la tâche ne peut être modifié."
+
+#, c-format
+msgid "Unsupported compression attribute %s!"
+msgstr "L'attribute de compression %s n'est pas géré !"
+
+#, c-format
+msgid "Unsupported format \"%s\"!"
+msgstr "Le format « %s » n'est pas géré !"
+
+#, c-format
+msgid "%s is not implemented by the CUPS version of lpc.\n"
+msgstr "« %s » n'est pas implanté dans la version CUPS de lpc.\n"
+
+msgid ""
+"Commands may be abbreviated. Commands are:\n"
+"\n"
+"exit help quit status ?\n"
+msgstr ""
+"Les commandes peuvent être abrégée. Elles sont:\n"
+"\n"
+"exit help quit status ?\n"
+
+msgid "help\t\tget help on commands\n"
+msgstr "help\t\tobtenir de l'aide sur les commandes\n"
+
+msgid "status\t\tshow status of daemon and queue\n"
+msgstr "status\t\taffiche l'état du démon et de la file\n"
+
+msgid "?Invalid help command unknown\n"
+msgstr "?Commande d'aide inconnue\n"
+
+#, c-format
+msgid "\tprinter is on device '%s' speed -1\n"
+msgstr "\tl'imprimante est sur le périphérique '%s', vitesse -1\n"
+
+msgid "\tqueuing is enabled\n"
+msgstr "\tla mise en file d'attente est permise\n"
+
+msgid "\tqueuing is disabled\n"
+msgstr "\tla mise en file d'attente est refusée\n"
+
+msgid "\tprinting is enabled\n"
+msgstr "\tl'impression est permise\n"
+
+msgid "\tprinting is disabled\n"
+msgstr "\tl'impression est refusée\n"
+
+msgid "\tno entries\n"
+msgstr "\taucune entrée\n"
+
+#, c-format
+msgid "\t%d entries\n"
+msgstr "\t%d entrées\n"
+
+msgid "\tdaemon present\n"
+msgstr "\tdémon présent\n"
+
+msgid "lpq: Unable to contact server!\n"
+msgstr "lpq: Impossible de contacter le serveur !\n"
+
+#, c-format
+msgid "%s: Sorry, no encryption support compiled in!\n"
+msgstr "%s: Désolé, la gestion du cryptage n'a pas été compilée !\n"
+
+#, c-format
+msgid "lpq: Unknown destination \"%s/%s\"!\n"
+msgstr lpq: Destination « %s/%s » inconnue !\n""
+
+#, c-format
+msgid "lpq: Unknown destination \"%s\"!\n"
+msgstr "lpq: Destination « %s » inconnue !\n"
+
+#, c-format
+msgid "lp: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr "lp: erreur - la variable d'environnement %s désigne une destination inexistente « %s » !\n"
+
+msgid "lpq: error - no default destination available.\n"
+msgstr "lpq: erreur - aucune destination par défaut n'est disponible.\n"
+
+#, c-format
+msgid "lpq: get-jobs failed: %s\n"
+msgstr "lpq: « get-jobs » a échoué: %s\n"
+
+msgid "Rank Owner Pri Job Files Total Size\n"
+msgstr "Rang Propr. Prio Tâche Fichiers Taille totale\n"
+
+msgid "Rank Owner Job File(s) Total Size\n"
+msgstr "Rang Propr. Tâche Fichiers Taille totale\n"
+
+#, c-format
+msgid "%s: %-33.33s [job %d localhost]\n"
+msgstr "%s: %-33.33s [tâche %d localhost]\n"
+
+#, c-format
+msgid " %-39.39s %.0f bytes\n"
+msgstr " %-39.39s %.0f octets\n"
+
+#, c-format
+msgid "%-6s %-10.10s %-4d %-10d %-27.27s %.0f bytes\n"
+msgstr "%-6s %-10.10s %-4d %-10d %-27.27s %.0f octets\n"
+
+#, c-format
+msgid "%-7s %-7.7s %-7d %-31.31s %.0f bytes\n"
+msgstr "%-7s %-7.7s %-7d %-31.31s %.0f octets\n"
+
+msgid "no entries\n"
+msgstr "aucune entrée\n"
+
+#, c-format
+msgid "lpq: get-printer-attributes failed: %s\n"
+msgstr "lpq: get-printer-attributes a échoué : %s\n"
+
+#, c-format
+msgid "%s is ready\n"
+msgstr "%s est prête\n"
+
+#, c-format
+msgid "%s is ready and printing\n"
+msgstr "%s est prête et en cours d'impression\n"
+
+#, c-format
+msgid "%s is not ready\n"
+msgstr "%s n'est pas prête\n"
+
+msgid "Usage: lpq [-P dest] [-l] [+interval]\n"
+msgstr "Utilisation : lpq [-P dest] [-l] [+intervalle]\n"
+
+#, c-format
+msgid "lpr: error - expected value after -%c option!\n"
+msgstr "lpr: erreur - il faut une valeur après l'option '-%c' !\n"
+
+#, c-format
+msgid "lpr: warning - '%c' format modifier not supported - output may not be correct!\n"
+msgstr "lpr: attention - le modificateur de format '%c' n'est pas géré - l'affichage pourrait être incorrect !\n"
+
+msgid "lpr: error - expected option=value after -o option!\n"
+msgstr "lpr: erreur - il faut un argument du type option=valeur après l'option '-o' !\n"
+
+msgid "lpr: warning - email notification is not currently supported!\n"
+msgstr "lpr: attention - la notification par courriel n'est pas encore gérée !\n"
+
+msgid "lpr: error - expected destination after -P option!\n"
+msgstr "lpr: erreur - il faut une destination après l'option '-P' !\n"
+
+msgid "lpr: error - expected copy count after -# option!\n"
+msgstr "lpr: erreur - il faut un nombre de copies après l'option '-#' !\n"
+
+#, c-format
+msgid "lpr: error - expected name after -%c option!\n"
+msgstr "lpr: erreur - il faut un nom après l'option '-%c' !\n"
+
+msgid "lpr: error - expected username after -U option!\n"
+msgstr "lpr: erreur - il faut un nom d'utilisateur après l'option '-U' !\n"
+
+#, c-format
+msgid "lpr: error - unknown option '%c'!\n"
+msgstr "lpr: erreur - option '%c' inconnue !\n"
+
+#, c-format
+msgid "lpr: error - unable to access \"%s\" - %s\n"
+msgstr "lpr: erreur - impossible d'accéder à « %s » - %s\n"
+
+#, c-format
+msgid "lpr: error - too many files - \"%s\"\n"
+msgstr "lpr: erreur - trop de fichiers - « %s »\n"
+
+#, c-format
+msgid "lpr: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr "lpr: erreur - la variable d'environnement %s désigne une destination inexistente « %s » !\n"
+
+msgid "lpr: error - no default destination available.\n"
+msgstr "lpr: erreur - aucune destination par défaut n'est disponible.\n"
+
+msgid "lpr: error - scheduler not responding!\n"
+msgstr "lpr: erreur - l'ordonnanceur ne répond pas !\n"
+
+#, c-format
+msgid "lpr: error - unable to create temporary file \"%s\" - %s\n"
+msgstr "lpr: erreur - impossible de créer le fichier temporaire « %s » - %s\n"
+
+#, c-format
+msgid "lpr: error - unable to write to temporary file \"%s\" - %s\n"
+msgstr "lpr: erreur - impossible d'écrire dans le fichier temporaire « %s » - %s\n"
+
+msgid "lpr: error - stdin is empty, so no job has been sent.\n"
+msgstr "lpr: erreur - stdin est vide, donc aucune tâche n'a été envoyée.\n"
+
+#, c-format
+msgid "lpr: error - unable to print file: %s\n"
+msgstr "lpr: erreur - impossible d'imprimer le fichier : %s\n"
+
+msgid "lprm: Unable to contact server!\n"
+msgstr "lprm: Impossible de contacter le serveur !\n"
+
+#, c-format
+msgid "lprm: Unknown destination \"%s\"!\n"
+msgstr "lprm: Destination « %s » inconnue !\n"
+
+#, c-format
+msgid "lprm: Unknown option '%c'!\n"
+msgstr "lprm: Option '%c' inconnue !\n"
+
+msgid "lprm: Job or printer not found!\n"
+msgstr "lprm: La tâche ou l'imprimante n'a pas été trouvée !\n"
+
+msgid "lprm: Not authorized to lprm job(s)!\n"
+msgstr "lprm: Vous n'avez pas l'autorisation de supprimer cette(ces) tâche(s) !\n"
+
+#, c-format
+msgid "lprm: You don't own job ID %d!\n"
+msgstr lprm: La tâche n°%d ne vous appartient pas !\n""
+
+msgid "lprm: Unable to lprm job(s)!\n"
+msgstr "lprm: Impossible de supprimer cette(ces) tâche(s) !\n"
+
+msgid "lprm: Unable to cancel job(s)!\n"
+msgstr "lprm: Impossible d'annuler cette(ces) tâche(s) !\n"
+
+#, c-format
+msgid "%s: Don't know what to do!\n"
+msgstr "%s: Je ne sais que faire !"
+
+#, c-format
+msgid "%s: Expected server name after -h!\n"
+msgstr "%s: Il faut un nom de serveur après l'option '-h' !\n"
+
+#, c-format
+msgid "%s: Expected reason text after -r!\n"
+msgstr "%s: Il faut le texte de la raison après l'option '-r' !\n"
+
+#, c-format
+msgid "%s: Unknown option '%c'!\n"
+msgstr "%s: Option '%c' inconnue !\n"
+
+#, c-format
+msgid "%s: Unable to connect to server: %s\n"
+msgstr "%s: Impossible de se connecter au serveur : %s\n"
+
+#, c-format
+msgid "%s: Operation failed: %s\n"
+msgstr "%s: L'opération a échoué : %s\n"
+
+msgid "cancel: Error - expected hostname after '-h' option!\n"
+msgstr "annulation: erreur - il faut un nom de machine après l'option '-h' !\n"
+
+msgid "cancel: Error - expected username after '-u' option!\n"
+msgstr "annulation: erreur - il faut un nom d'utilisateur après l'option '-u' !\n"
+
+#, c-format
+msgid "cancel: Unknown option '%c'!\n"
+msgstr "annulation: Option '%c' inconnue !"
+
+#, c-format
+msgid "cancel: Unknown destination \"%s\"!\n"
+msgstr "annulation: Destination inconnue « %s » !"
+
+msgid "cancel: Unable to contact server!\n"
+msgstr "annulation: Impossible de contacter le serveur !\n"
+
+#, c-format
+msgid "cancel: %s failed: %s\n"
+msgstr "annulation: %s a échoué :%s\n"
+
+#, c-format
+msgid "cupsaddsmb: Missing value on line %d!\n"
+msgstr "cupsaddsmb: Il manque une valeur à la ligne n°%d !\n"
+
+#, c-format
+msgid "cupsaddsmb: Missing double quote on line %d!\n"
+msgstr "cupsaddsmb: Il manque un \" à la ligne n°%d !\n"
+
+#, c-format
+msgid "cupsaddsmb: Bad option + choice on line %d!\n"
+msgstr "cupsaddsmb: Option et choix erronés à la ligne n°%d !\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to connect to server \"%s\" for %s - %s\n"
+msgstr "cupsaddsmb: Impossible de se connecter au serveur « %s » pour %s - %s\n"
+
+#, c-format
+msgid "cupsaddsmb: No PPD file for printer \"%s\" - skipping!\n"
+msgstr "cupsaddsmb: Aucun fichier PPD pour l'imprimante « %s » - ignorée !\n"
+
+#, c-format
+msgid "cupsaddsmb: get-printer-attributes failed for \"%s\": %s\n"
+msgstr "cupsaddsmb: get-printer-attributes a échoué pour « %s » : %s\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to convert PPD file for %s - %s\n"
+msgstr "cupsaddsmb: Impossible de convertir le fichier PPD pour %s - %s\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to copy Windows 2000 printer driver files (%d)!\n"
+msgstr "cupsaddsmb: Impossible de copier les fichiers du pilote d'impression pour Windows 2000 (%d) !\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to copy CUPS printer driver files (%d)!\n"
+msgstr "cupsaddsmb: Impossible de copier les fichiers du pilote d'impression pour CUPS (%d) !\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to install Windows 2000 printer driver files (%d)!\n"
+msgstr "cupsaddsmb: Impossible d'installer les fichiers du pilote d'impression pour Windows 2000 (%d) !\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to copy Windows 9x printer driver files (%d)!\n"
+msgstr "cupsaddsmb: Impossible de copier les fichiers du pilote d'impression pour Windows 9x (%d) !\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to install Windows 9x printer driver files (%d)!\n"
+msgstr "cupsaddsmb: Impossible d'installer les fichiers du pilote d'impression pour Windows 9x (%d) !\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to set Windows printer driver (%d)!\n"
+msgstr "cupsaddsmb: Impossible de paramétrer le pilote d'impression pour Windows (%d) !\n"
+
+msgid ""
+"Usage: cupsaddsmb [options] printer1 ... printerN\n"
+" cupsaddsmb [options] -a\n"
+"\n"
+"Options:\n"
+" -H samba-server Use the named SAMBA server\n"
+" -U samba-user Authenticate using the named SAMBA user\n"
+" -a Export all printers\n"
+" -h cups-server Use the named CUPS server\n"
+" -v Be verbose (show commands)\n"
+msgstr ""
+"Utilisation : cupsaddsmb [options] imprimante1 ... imprimanteN\n"
+" cupsaddsmb [options] -a\n"
+"\n"
+"Options:\n"
+" -H serveur-samba Utiliser le serveur SAMBA désigné\n"
+" -U utilisateur-samba S'authentifier avec l'utilisateur SAMBA désigné\n"
+" -a Exporter toutes les imprimantes\n"
+" -h serveur-CUPS Utiliser le serveur CUPS désigné\n"
+" -v Être locace ( afficher les commandes )\n"
+
+msgid "cupstestppd: The -q option is incompatible with the -v option.\n"
+msgstr "cupstestppd: L'option est -q incomptaible avec l'option -v.\n"
+
+msgid "cupstestppd: The -v option is incompatible with the -q option.\n"
+msgstr "cupstestppd: L'option est -v incomptaible avec l'option -q.\n"
+
+#, c-format
+msgid ""
+" FAIL\n"
+" **FAIL** Unable to open PPD file - %s\n"
+msgstr ""
+" FAIL\n"
+" **FAIL** Unable to open PPD file - %s\n"
+
+#, c-format
+msgid ""
+" FAIL\n"
+" **FAIL** Unable to open PPD file - %s on line %d.\n"
+msgstr ""
+" FAIL\n"
+" **FAIL** Unable to open PPD file - %s on line %d.\n"
+
+msgid " REF: Page 42, section 5.2.\n"
+msgstr " REF: Page 42, section 5.2.\n"
+
+msgid " REF: Page 20, section 3.4.\n"
+msgstr " REF: Page 20, section 3.4.\n"
+
+msgid " REF: Pages 45-46, section 5.2.\n"
+msgstr " REF: Pages 45-46, section 5.2.\n"
+
+msgid " REF: Pages 42-45, section 5.2.\n"
+msgstr " REF: Pages 42-45, section 5.2.\n"
+
+msgid " REF: Pages 48-49, section 5.2.\n"
+msgstr " REF: Pages 48-49, section 5.2.\n"
+
+msgid " REF: Pages 52-54, section 5.2.\n"
+msgstr " REF: Pages 52-54, section 5.2.\n"
+
+msgid " REF: Page 15, section 3.2.\n"
+msgstr " REF: Page 15, section 3.2.\n"
+
+msgid " REF: Page 15, section 3.1.\n"
+msgstr " REF: Page 15, section 3.1.\n"
+
+msgid " REF: Pages 16-17, section 3.2.\n"
+msgstr " REF: Pages 16-17, section 3.2.\n"
+
+msgid " REF: Page 19, section 3.3.\n"
+msgstr " REF: Page 19, section 3.3.\n"
+
+msgid " REF: Page 27, section 3.5.\n"
+msgstr " REF: Page 27, section 3.5.\n"
+
+msgid ""
+"\n"
+" DETAILED CONFORMANCE TEST RESULTS\n"
+msgstr ""
+"\n"
+" DETAILED CONFORMANCE TEST RESULTS\n"
+
+#, c-format
+msgid " WARN %s has no corresponding options!\n"
+msgstr " WARN %s has no corresponding options!\n"
+
+msgid " FAIL\n"
+msgstr " FAIL\n"
+
+msgid ""
+" **FAIL** REQUIRED DefaultImageableArea\n"
+" REF: Page 102, section 5.15.\n"
+msgstr ""
+" **FAIL** REQUIRED DefaultImageableArea\n"
+" REF: Page 102, section 5.15.\n"
+
+#, c-format
+msgid ""
+" **FAIL** BAD DefaultImageableArea %s!\n"
+" REF: Page 102, section 5.15.\n"
+msgstr ""
+" **FAIL** BAD DefaultImageableArea %s!\n"
+" REF: Page 102, section 5.15.\n"
+
+msgid " PASS DefaultImageableArea\n"
+msgstr " PASS DefaultImageableArea\n"
+
+msgid ""
+" **FAIL** REQUIRED DefaultPaperDimension\n"
+" REF: Page 103, section 5.15.\n"
+msgstr ""
+" **FAIL** REQUIRED DefaultPaperDimension\n"
+" REF: Page 103, section 5.15.\n"
+
+#, c-format
+msgid ""
+" **FAIL** BAD DefaultPaperDimension %s!\n"
+" REF: Page 103, section 5.15.\n"
+msgstr ""
+" **FAIL** BAD DefaultPaperDimension %s!\n"
+" REF: Page 103, section 5.15.\n"
+
+msgid " PASS DefaultPaperDimension\n"
+msgstr " PASS DefaultPaperDimension\n"
+
+#, c-format
+msgid ""
+" **FAIL** BAD Default%s %s\n"
+" REF: Page 40, section 4.5.\n"
+msgstr ""
+" **FAIL** BAD Default%s %s\n"
+" REF: Page 40, section 4.5.\n"
+
+#, c-format
+msgid " PASS Default%s\n"
+msgstr " PASS Default%s\n"
+
+#, c-format
+msgid ""
+" **FAIL** REQUIRED Default%s\n"
+" REF: Page 40, section 4.5.\n"
+msgstr ""
+" **FAIL** REQUIRED Default%s\n"
+" REF: Page 40, section 4.5.\n"
+
+msgid " PASS FileVersion\n"
+msgstr " PASS FileVersion\n"
+
+msgid ""
+" **FAIL** REQUIRED FileVersion\n"
+" REF: Page 56, section 5.3.\n"
+msgstr ""
+" **FAIL** REQUIRED FileVersion\n"
+" REF: Page 56, section 5.3.\n"
+
+msgid " PASS FormatVersion\n"
+msgstr " PASS FormatVersion\n"
+
+msgid ""
+" **FAIL** REQUIRED FormatVersion\n"
+" REF: Page 56, section 5.3.\n"
+msgstr ""
+" **FAIL** REQUIRED FormatVersion\n"
+" REF: Page 56, section 5.3.\n"
+
+msgid " PASS LanguageEncoding\n"
+msgstr " PASS LanguageEncoding\n"
+
+msgid ""
+" **FAIL** REQUIRED LanguageEncoding\n"
+" REF: Pages 56-57, section 5.3.\n"
+msgstr ""
+" **FAIL** REQUIRED LanguageEncoding\n"
+" REF: Pages 56-57, section 5.3.\n"
+
+msgid " PASS LanguageVersion\n"
+msgstr " PASS LanguageVersion\n"
+
+msgid ""
+" **FAIL** REQUIRED LanguageVersion\n"
+" REF: Pages 57-58, section 5.3.\n"
+msgstr ""
+" **FAIL** REQUIRED LanguageVersion\n"
+" REF: Pages 57-58, section 5.3.\n"
+
+msgid ""
+" **FAIL** BAD Manufacturer (should be \"HP\")\n"
+" REF: Page 211, table D.1.\n"
+msgstr ""
+" **FAIL** BAD Manufacturer (should be \"HP\")\n"
+" REF: Page 211, table D.1.\n"
+
+msgid " PASS Manufacturer\n"
+msgstr " PASS Manufacturer\n"
+
+msgid ""
+" **FAIL** REQUIRED Manufacturer\n"
+" REF: Pages 58-59, section 5.3.\n"
+msgstr ""
+" **FAIL** REQUIRED Manufacturer\n"
+" REF: Pages 58-59, section 5.3.\n"
+
+#, c-format
+msgid ""
+" **FAIL** BAD ModelName - \"%c\" not allowed in string.\n"
+" REF: Pages 59-60, section 5.3.\n"
+msgstr ""
+" **FAIL** BAD ModelName - \"%c\" not allowed in string.\n"
+" REF: Pages 59-60, section 5.3.\n"
+
+msgid " PASS ModelName\n"
+msgstr " PASS ModelName\n"
+
+msgid ""
+" **FAIL** REQUIRED ModelName\n"
+" REF: Pages 59-60, section 5.3.\n"
+msgstr ""
+" **FAIL** REQUIRED ModelName\n"
+" REF: Pages 59-60, section 5.3.\n"
+
+msgid " PASS NickName\n"
+msgstr " PASS NickName\n"
+
+msgid ""
+" **FAIL** REQUIRED NickName\n"
+" REF: Page 60, section 5.3.\n"
+msgstr ""
+" **FAIL** REQUIRED NickName\n"
+" REF: Page 60, section 5.3.\n"
+
+msgid " PASS PageSize\n"
+msgstr " PASS PageSize\n"
+
+msgid ""
+" **FAIL** REQUIRED PageSize\n"
+" REF: Pages 99-100, section 5.14.\n"
+msgstr ""
+" **FAIL** REQUIRED PageSize\n"
+" REF: Pages 99-100, section 5.14.\n"
+
+msgid " PASS PageRegion\n"
+msgstr " PASS PageRegion\n"
+
+msgid ""
+" **FAIL** REQUIRED PageRegion\n"
+" REF: Page 100, section 5.14.\n"
+msgstr ""
+" **FAIL** REQUIRED PageRegion\n"
+" REF: Page 100, section 5.14.\n"
+
+msgid " PASS PCFileName\n"
+msgstr " PASS PCFileName\n"
+
+msgid ""
+" **FAIL** REQUIRED PCFileName\n"
+" REF: Pages 61-62, section 5.3.\n"
+msgstr ""
+" **FAIL** REQUIRED PCFileName\n"
+" REF: Pages 61-62, section 5.3.\n"
+
+msgid ""
+" **FAIL** BAD Product - not \"(string)\".\n"
+" REF: Page 62, section 5.3.\n"
+msgstr ""
+" **FAIL** BAD Product - not \"(string)\".\n"
+" REF: Page 62, section 5.3.\n"
+
+msgid " PASS Product\n"
+msgstr " PASS Product\n"
+
+msgid ""
+" **FAIL** REQUIRED Product\n"
+" REF: Page 62, section 5.3.\n"
+msgstr ""
+" **FAIL** REQUIRED Product\n"
+" REF: Page 62, section 5.3.\n"
+
+msgid ""
+" **FAIL** BAD PSVersion - not \"(string) int\".\n"
+" REF: Pages 62-64, section 5.3.\n"
+msgstr ""
+" **FAIL** BAD PSVersion - not \"(string) int\".\n"
+" REF: Pages 62-64, section 5.3.\n"
+
+msgid " PASS PSVersion\n"
+msgstr " PASS PSVersion\n"
+
+msgid ""
+" **FAIL** REQUIRED PSVersion\n"
+" REF: Pages 62-64, section 5.3.\n"
+msgstr ""
+" **FAIL** REQUIRED PSVersion\n"
+" REF: Pages 62-64, section 5.3.\n"
+
+msgid ""
+" **FAIL** BAD ShortNickName - longer than 31 chars.\n"
+" REF: Pages 64-65, section 5.3.\n"
+msgstr ""
+" **FAIL** BAD ShortNickName - longer than 31 chars.\n"
+" REF: Pages 64-65, section 5.3.\n"
+
+msgid " PASS ShortNickName\n"
+msgstr " PASS ShortNickName\n"
+
+msgid ""
+" **FAIL** REQUIRED ShortNickName\n"
+" REF: Page 64-65, section 5.3.\n"
+msgstr ""
+" **FAIL** REQUIRED ShortNickName\n"
+" REF: Page 64-65, section 5.3.\n"
+
+msgid ""
+" **FAIL** BAD JobPatchFile attribute in file\n"
+" REF: Page 24, section 3.4.\n"
+msgstr ""
+" **FAIL** BAD JobPatchFile attribute in file\n"
+" REF: Page 24, section 3.4.\n"
+
+msgid ""
+" **FAIL** REQUIRED PageSize\n"
+" REF: Page 41, section 5.\n"
+" REF: Page 99, section 5.14.\n"
+msgstr ""
+" **FAIL** REQUIRED PageSize\n"
+" REF: Page 41, section 5.\n"\n"
+" REF: Page 99, section 5.14.\n"
+
+#, c-format
+msgid ""
+" **FAIL** REQUIRED ImageableArea for PageSize %s\n"
+" REF: Page 41, section 5.\n"
+" REF: Page 102, section 5.15.\n"
+msgstr ""
+" **FAIL** REQUIRED ImageableArea for PageSize %s\n"
+" REF: Page 41, section 5.\n"
+" REF: Page 102, section 5.15.\n"
+
+#, c-format
+msgid ""
+" **FAIL** REQUIRED PaperDimension for PageSize %s\n"
+" REF: Page 41, section 5.\n"
+" REF: Page 103, section 5.15.\n"
+msgstr ""
+" **FAIL** REQUIRED PaperDimension for PageSize %s\n"
+" REF: Page 41, section 5.\n"
+" REF: Page 103, section 5.15.\n"
+
+#, c-format
+msgid ""
+" **FAIL** Bad %s choice %s!\n"
+" REF: Page 84, section 5.9\n"
+msgstr ""
+" **FAIL** Bad %s choice %s!\n"
+" REF: Page 84, section 5.9\n"
+
+#, c-format
+msgid ""
+" **FAIL** REQUIRED %s does not define choice None!\n"
+" REF: Page 122, section 5.17\n"
+msgstr ""
+" **FAIL** REQUIRED %s does not define choice None!\n"
+" REF: Page 122, section 5.17\n"
+
+#, c-format
+msgid ""
+" **FAIL** Bad %s choice %s!\n"
+" REF: Page 122, section 5.17\n"
+msgstr ""
+" **FAIL** Bad %s choice %s!\n"
+" REF: Page 122, section 5.17\n"
+
+msgid " PASS\n"
+msgstr " PASS\n"
+
+#, c-format
+msgid ""
+" WARN Duplex option keyword %s should be named Duplex or JCLDuplex!\n"
+" REF: Page 122, section 5.17\n"
+msgstr ""
+" WARN Duplex option keyword %s should be named Duplex or JCLDuplex!\n"
+" REF: Page 122, section 5.17\n"
+
+msgid " WARN Default choices conflicting!\n"
+msgstr ""
+
+#, c-format
+msgid ""
+" WARN Obsolete PPD version %.1f!\n"
+" REF: Page 42, section 5.2.\n"
+msgstr ""
+" WARN Obsolete PPD version %.1f!\n"
+" REF: Page 42, section 5.2.\n"
+
+msgid ""
+" WARN LanguageEncoding required by PPD 4.3 spec.\n"
+" REF: Pages 56-57, section 5.3.\n"
+msgstr ""
+" WARN LanguageEncoding required by PPD 4.3 spec.\n"
+" REF: Pages 56-57, section 5.3.\n"
+
+msgid ""
+" WARN Manufacturer required by PPD 4.3 spec.\n"
+" REF: Pages 58-59, section 5.3.\n"
+msgstr ""
+" WARN Manufacturer required by PPD 4.3 spec.\n"
+" REF: Pages 58-59, section 5.3.\n"
+
+msgid ""
+" WARN PCFileName longer than 8.3 in violation of PPD spec.\n"
+" REF: Pages 61-62, section 5.3.\n"
+msgstr ""
+" WARN PCFileName longer than 8.3 in violation of PPD spec.\n"
+" REF: Pages 61-62, section 5.3.\n"
+
+msgid ""
+" WARN ShortNickName required by PPD 4.3 spec.\n"
+" REF: Pages 64-65, section 5.3.\n"
+msgstr ""
+" WARN ShortNickName required by PPD 4.3 spec.\n"
+" REF: Pages 64-65, section 5.3.\n"
+
+msgid ""
+" WARN Protocols contains both PJL and BCP; expected TBCP.\n"
+" REF: Pages 78-79, section 5.7.\n"
+msgstr ""
+" WARN Protocols contains both PJL and BCP; expected TBCP.\n"
+" REF: Pages 78-79, section 5.7.\n"
+
+msgid ""
+" WARN Protocols contains PJL but JCL attributes are not set.\n"
+" REF: Pages 78-79, section 5.7.\n"
+msgstr ""
+" WARN Protocols contains PJL but JCL attributes are not set.\n"
+" REF: Pages 78-79, section 5.7.\n"
+
+#, c-format
+msgid ""
+" WARN %s shares a common prefix with %s\n"
+" REF: Page 15, section 3.2.\n"
+msgstr ""
+" WARN %s shares a common prefix with %s\n"
+" REF: Page 15, section 3.2.\n"
+
+#, c-format
+msgid " %d ERROR%s FOUND\n"
+msgstr " %d ERROR%s FOUND\n"
+
+msgid " NO ERRORS FOUND\n"
+msgstr " NO ERRORS FOUND\n"
+
+#, c-format
+msgid ""
+" WARN \"%s %s\" conflicts with \"%s %s\"\n"
+" (constraint=\"%s %s %s %s\")\n"
+msgstr ""
+" WARN \"%s %s\" conflicts with \"%s %s\"\n"
+" (constraint=\"%s %s %s %s\")\n"
+msgid ""
+"Usage: cupstestppd [-q] [-r] [-v[v]] filename1.ppd[.gz] [... filenameN.ppd[.gz]]\n"
+" program | cupstestppd [-q] [-r] [-v[v]] -\n"
+msgstr ""
+"Utilisation : cupstestppd [-q] [-r] [-v[v]] fichier1.ppd[.gz] [... fichierN.ppd[.gz]]\n"
+" programme | cupstestppd [-q] [-r] [-v[v]] -\n"
+
+msgid "lpstat: Need \"completed\" or \"not-completed\" after -W!\n"
+msgstr "lpstat: Il faut « completed » ou « not-completed » après l'option -W !\n"
+
+msgid "lpstat: The -b option requires a destination argument.\n"
+msgstr "lpstat: Il faut une destination après l'option '-b' !\n"
+
+msgid "Error: need hostname after '-h' option!\n"
+msgstr "Erreur : Il faut un nom d'hôte après l'option '-h' !\n"
+
+#, c-format
+msgid "lpstat: Unknown option '%c'!\n"
+msgstr "lpstat: Option '%c inconnue !\n"
+
+#, c-format
+msgid "lpstat: Invalid destination name in list \"%s\"!\n"
+msgstr "lpstat: Nom de destination incorrect dans la liste « %s » !\n"
+
+#, c-format
+msgid "lpstat: Unknown destination \"%s\"!\n"
+msgstr "lpstat: Destination « %s » inconnue !\n"
+
+#, c-format
+msgid "lpstat: Unable to connect to server %s on port %d: %s\n"
+msgstr "lpstat: Impossible de se connecter au serveur « %s » sur le port %d : %s\n"
+
+#, c-format
+msgid "lpstat: get-printers failed: %s\n"
+msgstr "lpstat: get-printers a échoué: %s\n"
+
+#, c-format
+msgid "%s accepting requests since Jan 01 00:00\n"
+msgstr "%s accepte les requêtes depuis le Jan 01 00:00\n"
+
+#, c-format
+msgid ""
+"%s not accepting requests since Jan 01 00:00 -\n"
+"\t%s\n"
+msgstr ""
+"%s n'accepte pas les requêtes depuis le Jan 01 00:00 -\n"
+"\t%s\n"
+
+#, c-format
+msgid "%s/%s accepting requests since Jan 01 00:00\n"
+msgstr "%s/%s accepte les requêtes depuis le Jan 01 00:00\n"
+
+#, c-format
+msgid ""
+"%s/%s not accepting requests since Jan 01 00:00 -\n"
+"\t%s\n"
+msgstr ""
+"%s/%s n'accepte pas les requêtes depuis le Jan 01 00:00 -\n"
+"\t%s\n"
+
+#, c-format
+msgid "lpstat: get-classes failed: %s\n"
+msgstr "lpstat: get-classes a échoué : %s !\n"
+
+#, c-format
+msgid "members of class %s:\n"
+msgstr "membres de la classe %s :\n"
+
+#, c-format
+msgid "system default destination: %s/%s\n"
+msgstr "destination par défaut du système : %s/%s\n"
+
+#, c-format
+msgid "system default destination: %s\n"
+msgstr "destination par défaut du système : %s\n"
+
+#, c-format
+msgid "lpstat: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr ""
+"lpstat: erreur - la variable d'environnement désigne une destination\n"
+" inexistente « %s » !\n"
+
+msgid "no system default destination\n"
+msgstr "le système n'a pas de destination par défaut\n"
+
+#, c-format
+msgid "Output for printer %s is sent to remote printer %s on %s\n"
+msgstr ""
+"Ce qui est envoyé à l'imprimante %s est redirigé vers l'imprimante\n"
+"distante %s sur %s\n"
+
+#, c-format
+msgid "Output for printer %s is sent to %s\n"
+msgstr "Ce qui est envoyé à l'imprimante %s est redirigé vers %s\n"
+
+#, c-format
+msgid "Output for printer %s/%s is sent to remote printer %s on %s\n"
+msgstr ""
+"Ce qui est envoyé à l'imprimante %s/%s est redirigé vers l'imprimante\n"
+"distante %s sur %s\n"
+
+#, c-format
+msgid "Output for printer %s/%s is sent to %s\n"
+msgstr "Ce qui est envoyé à l'imprimante %s/%s est redirigé vers %s\n"
+
+#, c-format
+msgid "device for %s: %s\n"
+msgstr "périphérique pour %s : %s\n"
+
+#, c-format
+msgid "device for %s/%s: %s\n"
+msgstr "périphérique pour %s/%s : %s \n"
+
+#, c-format
+msgid "lpstat: get-jobs failed: %s\n"
+msgstr "lpstat: get-jobs a échoué : %s !\n"
+
+#, c-format
+msgid "\tqueued for %s\n"
+msgstr "\tmis en file d'attente pour %s\n"
+
+#, c-format
+msgid "printer %s is idle. enabled since %s\n"
+msgstr "l'imprimante %s ne fait rien ; elle est activée depuis le %s\n"
+
+#, c-format
+msgid "printer %s now printing %s-%d. enabled since %s\n"
+msgstr "l'imprimante %s est en train d'imprimer %s-%d ; elle est activée depuis le %s\n""
+
+#, c-format
+msgid "printer %s disabled since %s -\n"
+msgstr "l'imprimante %s est désactivée depuis le %s -\n"
+
+msgid "\treason unknown\n"
+msgstr "\traison inconnue\n"
+
+msgid ""
+"\tForm mounted:\n"
+"\tContent types: any\n"
+"\tPrinter types: unknown\n"
+msgstr ""
+"\tFormat monté :\n"
+"\tTypes de contenu : any\n"
+"\tTypes d'imprimante : unknown\n"
+
+#, c-format
+msgid "\tDescription: %s\n"
+msgstr "\tDescription : %s\n"
+
+msgid "\tAlerts:"
+msgstr "\tAlertes :"
+
+#, c-format
+msgid "\tLocation: %s\n"
+msgstr "\tLieu : %s\n"
+
+msgid "\tConnection: remote\n"
+msgstr "\tConnexion : distante\n"
+
+#, c-format
+msgid "\tInterface: %s.ppd\n"
+msgstr "\tInterface : %s.ppd\n"
+
+msgid "\tConnection: direct\n"
+msgstr "\tConnexion : directe\n"
+
+#, c-format
+msgid "\tInterface: %s/interfaces/%s\n"
+msgstr "\tInterface : %s/interfaces/%s\n"
+
+#, c-format
+msgid "\tInterface: %s/ppd/%s.ppd\n"
+msgstr "\tInterface : %s/ppd/%s.ppd\n"
+
+msgid "\tOn fault: no alert\n"
+msgstr "\tEn cas d'erreur : pas d'alerte\n"
+
+msgid "\tAfter fault: continue\n"
+msgstr "\tAprès une erreur : poursuivre\n"
+
+msgid "\tUsers allowed:\n"
+msgstr "\tUtilisateurs autorisés :\n"
+
+msgid "\tUsers denied:\n"
+msgstr "\tUtilisateurs refusés :\n"
+
+msgid "\t\t(all)\n"
+msgstr "\t\t( tous )\n"
+
+msgid "\tForms allowed:\n"
+msgstr "\tFormats autorisés :\n"
+
+msgid "\t\t(none)\n"
+msgstr "\t\t( aucun )\n"
+
+msgid "\tBanner required\n"
+msgstr "\tBannière requise\n"
+
+msgid "\tCharset sets:\n"
+msgstr "\tJeux de caractères :\n"
+
+msgid "\tDefault pitch:\n"
+msgstr "\t« pitch » par défaut :\n"
+
+msgid "\tDefault page size:\n"
+msgstr "\tTaille de papier par défaut :\n"
+
+msgid "\tDefault port settings:\n"
+msgstr "\tParamètres par défaut du port :\n"
+
+#, c-format
+msgid "printer %s/%s is idle. enabled since %s\n"
+msgstr "l'imprimante %s/%s ne fait rien ; elle est activée depuis le %s\n"
+
+#, c-format
+msgid "printer %s/%s now printing %s-%d. enabled since %s\n"
+msgstr "l'imprimante %s/%s est en train d'imprimer %s-%d ; elle est activée depuis le %s\n""
+
+#, c-format
+msgid "printer %s/%s disabled since %s -\n"
+msgstr "l'imprimante %s/%s est désactivée depuis le %s -\n"
+
+msgid "scheduler is running\n"
+msgstr "l'ordonnanceur tourne\n"
+
+msgid "scheduler is not running\n"
+msgstr "l'ordonnanceur est arrêté\n"
+
+#, c-format
+msgid "lpadmin: Unable to connect to server: %s\n"
+msgstr "lpadmin: Impossible de se connecter au serveur « %s » !\n"
+
+msgid ""
+"lpadmin: Unable to add a printer to the class:\n"
+" You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: Impossible d'ajouter une imprimante à la classe :\n"
+" Vous devez d'abord préciser un nom d'imprimante !\n"
+
+msgid "lpadmin: Expected class name after '-c' option!\n"
+msgstr "lpadmin: Il faut un nom de classe après l'option '-c' !\n"
+
+msgid "lpadmin: Class name can only contain printable characters!\n"
+msgstr "lpadmin: Un nom de classe ne peut comporter que des caractères imprimables !\n"
+
+msgid "lpadmin: Expected printer name after '-d' option!\n"
+msgstr "lpadmin: Il faut un nom d'imprimante après l'option '-d' !\n"
+
+msgid "lpadmin: Printer name can only contain printable characters!\n"
+msgstr "lpadmin: Un nom d'imprimante ne peut comporter que des caractères imprimables !\n"
+
+msgid "lpadmin: Expected hostname after '-h' option!\n"
+msgstr "lpadmin: Il faut un nom d'hôte après l'option 'h' !\n"
+
+msgid ""
+"lpadmin: Unable to set the interface script:\n"
+" You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: Impossible de définir le script d'interface :\n"
+" Vous devez d'abord préciser un nom d'imprimante !\n"
+
+msgid "lpadmin: Expected interface after '-i' option!\n"
+msgstr "lpadmin: Il faut une interface après l'option '-i' !\n"
+
+msgid ""
+"lpadmin: Unable to set the interface script or PPD file:\n"
+" You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: Impossible de définir le script d'interface ou le fichier PPD :\n"
+" Vous devez d'abord préciser un nom d'imprimante !\n"
+
+msgid "lpadmin: Expected model after '-m' option!\n"
+msgstr "lpadmin: Il faut un modèle après l'option '-m' !\n"
+
+msgid "lpadmin: Expected name=value after '-o' option!\n"
+msgstr "lpadmin: Il faut un argument du type option=valeur après l'option '-o' !\n"
+
+msgid "lpadmin: Expected printer after '-p' option!\n"
+msgstr "lpadmin: Il faut une imprimante après l'option '-p' !\n"
+
+msgid ""
+"lpadmin: Unable to remove a printer from the class:\n"
+" You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: Impossible de supprimer une imprimante de la classe :\n"
+" Vous devez d'abord préciser un nom d'imprimante !\n"
+
+msgid "lpadmin: Expected class after '-r' option!\n"
+msgstr "lpadmin: Il faut une classe après l'option '-r' !\n"
+
+msgid "lpadmin: Expected allow/deny:userlist after '-u' option!\n"
+msgstr ""
+"lpadmin: Il faut un argument du type allow/deny:liste_utilisateurs\n"
+" après l'option '-u' !\n"
+
+#, c-format
+msgid "lpadmin: Unknown allow/deny option \"%s\"!\n"
+msgstr "lpadmin: Option allow/deny « %s » inconnue !\n"
+
+msgid ""
+"lpadmin: Unable to set the device URI:\n"
+" You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: Impossible de définir l'URI du périphérique :\n"
+" Vous devez d'abord préciser un nom d'imprimante !\n"
+
+msgid "lpadmin: Expected device URI after '-v' option!\n"
+msgstr "lpadmin: Il faut un URI de périphérique après l'option '-v' !\n"
+
+msgid "lpadmin: Expected printer or class after '-x' option!\n"
+msgstr "lpadmin: Il faut une imprimante ou une classe après l'option '-x' !\n"
+
+msgid ""
+"lpadmin: Unable to set the printer description:\n"
+" You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: Impossible de définir la description de l'imprimante :\n"
+" Vous devez d'abord préciser un nom d'imprimante !\n"
+
+msgid "lpadmin: Expected description after '-D' option!\n"
+msgstr "lpadmin: Il faut une description après l'option '-D' !\n"
+
+msgid "lpadmin: Expected file type(s) after '-I' option!\n"
+msgstr "lpadmin: Il faut un ou plusieurs types de fichier après l'option '-I' !\n"
+
+msgid "lpadmin: Warning - content type list ignored!\n"
+msgstr "lpadmin: Attention - les types de contenu sont ignorés !\n"
+
+msgid ""
+"lpadmin: Unable to set the printer location:\n"
+" You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: Impossible de définir le lieu de l'imprimante :\n"
+" Vous devez d'abord préciser un nom d'imprimante !\n"
+
+msgid "lpadmin: Expected location after '-L' option!\n"
+msgstr "lpadmin: Il faut un lieu après l'option '-L' !\n"
+
+msgid ""
+"lpadmin: Unable to set the PPD file:\n"
+" You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: Impossible de définir le fichier PPD :\n"
+" Vous devez d'abord préciser un nom d'imprimante !\n"
+
+msgid "lpadmin: Expected PPD after '-P' option!\n"
+msgstr "lpadmin: Il faut un fichier PPD après l'option '-P' !\n"
+
+#, c-format
+msgid "lpadmin: Unknown option '%c'!\n"
+msgstr "lpadmin: Option '%c' inconnue !\n"
+
+#, c-format
+msgid "lpadmin: Unknown argument '%s'!\n"
+msgstr "lpadmin: Argument « %s » inconnu !\n"
+
+msgid ""
+"lpadmin: Unable to set the printer options:\n"
+" You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: Impossible de définir les options de l'imprimante :\n"
+" Vous devez d'abord préciser un nom d'imprimante !\n"
+
+msgid ""
+"Usage:\n"
+"\n"
+" lpadmin [-h server] -d destination\n"
+" lpadmin [-h server] -x destination\n"
+" lpadmin [-h server] -p printer [-c add-class] [-i interface] [-m model]\n"
+" [-r remove-class] [-v device] [-D description]\n"
+" [-P ppd-file] [-o name=value]\n"
+" [-u allow:user,user] [-u deny:user,user]\n"
+"\n"
+msgstr ""
+"Utilisation :\n"
+"\n"
+" lpadmin [-h serveur] -d destination\n"
+" lpadmin [-h serveur] -x destination\n"
+" lpadmin [-h serveur] -p imprimante [-c classe] [-i interface] [-m modèle]\n"
+" [-r classe] [-v URI] [-D description]\n"
+" [-P fichier-ppd] [-o option=valeur]\n"
+" [-u allow:util.,util.] [-u deny:util.,util.]\n"
+"\n"
+
+#, c-format
+msgid "lpadmin: Unable to create temporary file: %s\n"
+msgstr "lpadmin: Impossible de créer un fichier temporaire : %s\n"
+
+#, c-format
+msgid "lpadmin: Unable to open file \"%s\": %s\n"
+msgstr "lpadmin: Impossible d'ouvrir le fichier « %s » : %s\n"
+
+#, c-format
+msgid "lpadmin: add-printer (set model) failed: %s\n"
+msgstr "lpadmin: add-printer ( définition du modèle ) a échoué : %s\n"
+
+#, c-format
+msgid "lpadmin: add-printer (set description) failed: %s\n"
+msgstr "lpadmin: add-printer ( définition de la description ) a échoué : %s\n"
+
+#, c-format
+msgid "lpadmin: add-printer (set location) failed: %s\n"
+msgstr "lpadmin: add-printer ( définition du lieu ) a échoué : %s\n"
+
+#, c-format
+msgid "lpadmin: Unable to create temporary file - %s\n"
+msgstr "lpadmin: Impossible de créer un fichier temporaire : %s\n"
+
+#, c-format
+msgid "lpadmin: Unable to open PPD file \"%s\" - %s\n"
+msgstr "lpadmin: Impossible d'ouvrir le fichier PPD « %s » : %s\n"
+
+#, c-format
+msgid "lpadmin: %s failed: %s\n"
+msgstr "lpadmin: %s a échoué : %s\n"
+
+msgid "lp: Expected destination after -d option!\n"
+msgstr "lp: Il faut une destination après l'option '-d' !\n"
+
+msgid "lp: Expected form after -f option!\n"
+msgstr "lp: Il faut un format après l'option '-f' !\n"
+
+msgid "lp: Expected hostname after -h option!\n"
+msgstr "lp: Il faut un nom d'hôte après l'option '-h' !\n"
+
+msgid "lp: Expected job ID after -i option!\n"
+msgstr "lp: Il faut un numéro de tâche après l'option '-i' !\n"
+
+msgid "lp: Error - cannot print files and alter jobs simultaneously!\n"
+msgstr "lp: Erreur - impossible d'imprimer et modifier les tâches en même temps !\n"
+
+msgid "lp: Error - bad job ID!\n"
+msgstr "lp: Erreur - numéro de tâche incorrect !\n"
+
+msgid "lp: Expected copies after -n option!\n"
+msgstr "lp: Il faut un nombre de copies après l'option '-n' !\n"
+
+msgid "lp: Expected option string after -o option!\n"
+msgstr "lp: Il faut une chaîne d'option \"nom=valeur\" après l'option '-o' !\n"
+
+#, c-format
+msgid "lp: Expected priority after -%c option!\n"
+msgstr "lp: Il faut une priorité après l'option '-%c' !\n"
+
+msgid "lp: Priority must be between 1 and 100.\n"
+msgstr "lp: La priorité doit être comprise entre 1 et 100.\n"
+
+msgid "lp: Expected title after -t option!\n"
+msgstr "lp: Il faut un titre après l'option '-t' !\n"
+
+msgid "lp: Expected mode list after -y option!\n"
+msgstr "lp: Il faut une liste de modes après l'option '-y' !\n"
+
+msgid "lp: Warning - mode option ignored!\n"
+msgstr "lp: Attention - l'option « mode » est ignorée !\n"
+
+msgid "lp: Expected hold name after -H option!\n"
+msgstr "lp: Il faut un code de retenue après l'option '-H' !\n"
+
+msgid "lp: Need job ID (-i) before \"-H restart\"!\n"
+msgstr "lp: Il faut un numéro de tâche ( '-i' ) avant '-H restart' !\n"
+
+msgid "lp: Expected page list after -P option!\n"
+msgstr "lp: Il faut une liste de pages après l'option '-P' !\n"
+
+msgid "lp: Expected character set after -S option!\n"
+msgstr "lp: Il faut un jeu de caractères après l'option '-S' !\n"
+
+msgid "lp: Warning - character set option ignored!\n"
+msgstr "lp: Attention - l'option « jeu de caractères » est ignorée !\n"
+
+msgid "lp: Expected content type after -T option!\n"
+msgstr "lp: Il faut un type de contenu après l'option '-T' !\n"
+
+msgid "lp: Warning - content type option ignored!\n"
+msgstr "lp: Attention - l'option « type de contenu » est ignorée !\n"
+
+#, c-format
+msgid "lp: Unknown option '%c'!\n"
+msgstr "lp: Option '%c' inconnue !\n"
+
+msgid "lp: Error - cannot print from stdin if files or a job ID are provided!\n"
+msgstr ""
+"lp: Erreur - impossible d'imprimer depuis l'entrée standard si un fichier\n"
+" ou un numéro de tâche est spécifié !\n"
+
+#, c-format
+msgid "lp: Unable to access \"%s\" - %s\n"
+msgstr "lp: Impossible d'accéder à « %s » - %s\n"
+
+#, c-format
+msgid "lp: Too many files - \"%s\"\n"
+msgstr "lp: Trop de fichiers - « %s »\n"
+
+msgid "lp: error - no default destination available.\n"
+msgstr "lp: Erreur - aucune destination par défaut n'est disponible.\n"
+
+msgid "lp: error - scheduler not responding!\n"
+msgstr "lp: Erreur - l'odonnanceur ne répond pas !\n"
+
+#, c-format
+msgid "lp: Error - unable to create temporary file \"%s\" - %s\n"
+msgstr "lp: Erreur - impossible de créer le fichier temporaire « %s » - %s\n"
+
+#, c-format
+msgid "lp: error - unable to write to temporary file \"%s\" - %s\n"
+msgstr "lp: Erreur - impossible d'écrire dans le fichier temporaire « %s » - %s\n"
+
+msgid "lp: stdin is empty, so no job has been sent.\n"
+msgstr "lp: l'entrée standard est vide, donc aucune tâche n'a été envoyée.\n"
+
+#, c-format
+msgid "lp: unable to print file: %s\n"
+msgstr "lp: impossible d'imprimer le fichier - %s\n"
+
+#, c-format
+msgid "request id is %s-%d (%d file(s))\n"
+msgstr "l'identifiant de requête est %s-%d ( %d fichier(s) )\n"
+
+#, c-format
+msgid "lp: restart-job failed: %s\n"
+msgstr "lp: restart-job a échoué : %s\n"
+
+#, c-format
+msgid "lp: set-job-attributes failed: %s\n"
+msgstr "lp: set-job-attributes a échoué : %s\n"
+
+#, c-format
+msgid "lpinfo: Unable to connect to server: %s\n"
+msgstr "lpinfo: Impossible de se connecter au serveur : %s\n"
+
+#, c-format
+msgid "lpinfo: Unknown option '%c'!\n"
+msgstr "lpinfo: Option '%c' inconnue !\n"
+
+#, c-format
+msgid "lpinfo: Unknown argument '%s'!\n"
+msgstr "lpinfo: Argument '%s' inconnu !\n"
+
+#, c-format
+msgid "lpinfo: cups-get-devices failed: %s\n"
+msgstr "lpinfo: cups-get-devices a échoué : %s\n"
+
+#, c-format
+msgid ""
+"Device: uri = %s\n"
+" class = %s\n"
+" info = %s\n"
+" make-and-model = %s\n"
+msgstr ""
+"Matériel : URI = %s\n"
+" classe = %s\n"
+" info = %s\n"
+" marque/modèle = %s\n"
+
+#, c-format
+msgid "lpinfo: cups-get-ppds failed: %s\n"
+msgstr "lpinfo: cups-get-ppds a échoué : %s\n"
+
+#, c-format
+msgid ""
+"Model: name = %s\n"
+" natural_language = %s\n"
+" make-and-model = %s\n"
+msgstr ""
+"Modèle : nom = %s\n"
+" langue naturelle = %s\n"
+" marque/modèle = %s\n"
+
+#, c-format
+msgid "lpmove: Unknown option '%c'!\n"
+msgstr "lpmove: Option '%c' inconnue !\n"
+
+#, c-format
+msgid "lpmove: Unknown argument '%s'!\n"
+msgstr "lpmove: Argument '%s' inconnu !\n"
+
+msgid "Usage: lpmove job dest\n"
+msgstr "Utilisation : lpmove tâche destination\n"
+
+#, c-format
+msgid "lpmove: Unable to connect to server: %s\n"
+msgstr "lpmove: Impossible de se connecter au serveur : %s\n"
+
+#, c-format
+msgid "lpmove: move-job failed: %s\n"
+msgstr "lpmove: move-job a échoué : %s\n""
+
+msgid "lpoptions: Unknown printer or class!\n"
+msgstr "lpoptions: Imprimante ou classe inconnue !\n"
+
+msgid "lpoptions: No printers!?!\n"
+msgstr "lpoptions: Pas d'imprimante !?!\n"
+
+#, c-format
+msgid "lpoptions: Unable to add printer or instance: %s\n"
+msgstr "lpoptions: Impossible d'ajouter l'imprimante ou l'instance : %s\n"
+
+#, c-format
+msgid "lpoptions: Destination %s has no PPD file!\n"
+msgstr "lpoptions: La destination %s n'a pas de fichier PPD !\n"
+
+#, c-format
+msgid "lpoptions: Unable to open PPD file for %s!\n"
+msgstr "lpoptions: Impossible d'ouvrir le fichier PPD pour %s !\n"
+
+msgid ""
+"Usage: lpoptions [-h server] [-E] -d printer\n"
+" lpoptions [-h server] [-E] [-p printer] -l\n"
+" lpoptions [-h server] [-E] -p printer -o option[=value] ...\n"
+" lpoptions [-h server] [-E] -x printer\n"
+msgstr ""
+"Utilisation : lpoptions [-h serveur] [-E] -d imprimante\n"
+" lpoptions [-h serveur] [-E] [-p imprimante] -l\n"
+" lpoptions [-h serveur] [-E] -p imprimante -o option[=valeur] ...\n"
+" lpoptions [-h serveur] [-E] -x imprimante\n"
+
+msgid "lppasswd: Only root can add or delete passwords!\n"
+msgstr "lppasswd: Seul l'utilisateur « root » peut ajouter ou supprimer des mots de passe !\n"
+
+msgid "Enter old password:"
+msgstr "Ancien mot de passe :"
+
+#, c-format
+msgid "lppasswd: Unable to copy password string: %s\n"
+msgstr "lppasswd: Impossible de copier le mot de passe : %s\n"
+
+msgid "Enter password:"
+msgstr "Entrez le nouveau mot de passe :"
+
+msgid "Enter password again:"
+msgstr "Confirmez le nouveau mot de passe :"
+
+msgid "lppasswd: Sorry, passwords don't match!\n"
+msgstr "lppasswd: Désolé, les mots de passe sont différents !\n"
+
+msgid ""
+"lppasswd: Sorry, password rejected.\n"
+"Your password must be at least 6 characters long, cannot contain\n"
+"your username, and must contain at least one letter and number.\n"
+msgstr ""
+"lppasswd: Désolé, mot de passe refusé.\n"
+"Votre mot de passe doit comporter au moins 6 caractères, au moins une lettre\n"
+"et un nombre, et ne peut contenir votre nom d'utilisateur.\n"
+
+msgid "lppasswd: Password file busy!\n"
+msgstr "lppasswd: Le fichier des mots de passe exidte déjà !\n"
+
+#, c-format
+msgid "lppasswd: Unable to open password file: %s\n"
+msgstr "lppasswd: Impossible d'ouvrir le fichier des mots de passe: %s\n"
+
+#, c-format
+msgid "lppasswd: Unable to write to password file: %s\n"
+msgstr "lppasswd: Impossible d'écrire dans le fichier des mots de passe : %s\n"
+
+#, c-format
+msgid "lppasswd: user \"%s\" and group \"%s\" do not exist.\n"
+msgstr "lppasswd: l'utilisateur « %s » et/ou le groupe « %s » n'existe(nt) pas !\n"
+
+msgid "lppasswd: Sorry, password doesn't match!\n"
+msgstr "lppasswd: Désolé, le mot de passe est erroné !\n"
+
+msgid "lppasswd: Password file not updated!\n"
+msgstr "lppasswd: Le fichier des mots de passe n'a pas été mis-à-jour !\n"
+
+#, c-format
+msgid "lppasswd: failed to backup old password file: %s\n"
+msgstr "lppasswd: impossible de sauvegarder l'ancien fichier des mots de passe : %s\n"
+
+#, c-format
+msgid "lppasswd: failed to rename password file: %s\n"
+msgstr "lppasswd: impossible de renommer le fichier des mots de passe : %s\n"
+
+msgid "Usage: lppasswd [-g groupname]\n"
+msgstr "Utilisation : lppasswd [-g nom_groupe]\n"
+
+msgid ""
+"Usage: lppasswd [-g groupname] [username]\n"
+" lppasswd [-g groupname] -a [username]\n"
+" lppasswd [-g groupname] -x [username]\n"
+msgstr ""
+"Utilisation : lppasswd [-g nom_groupe] [nom_utilisateur]\n"
+" lppasswd [-g nom_groupe] -a [nom_utilisateur]\n"
+" lppasswd [-g nom_groupe] -x [nom_utilisateur]\n"
+
+msgid "Start Printer"
+msgstr "Démarrer l'imprimante"
+
+msgid "Stop Printer"
+msgstr "Arrêter l'imprimante"
+
+msgid "Start Class"
+msgstr "Démarrer la classe"
+
+msgid "Stop Class"
+msgstr "Arrêter la classe"
+
+msgid "Accept Jobs"
+msgstr "Accepter les tâches"
+
+msgid "Reject Jobs"
+msgstr "Refuser les tâches"
+
+msgid "Purge Jobs"
+msgstr "Effacer les tâches"
+
+msgid "Set As Default"
+msgstr "Choisir par défaut"
+
+msgid "Administration"
+msgstr "Administration"
+
+msgid "Modify Class"
+msgstr "Modifier la classe"
+
+msgid "Add Class"
+msgstr "Ajouter une classe"
+
+msgid "The class name may only contain up to 127 printable characters and may not contain spaces, slashes (/), or the pound sign (#)."
+msgstr "Le nom de classe doit comporter au plus 127 caractères, tous imprimables, sans espace, '/' ni '#'."
+
+msgid "Unable to modify class:"
+msgstr "Impossible de modifier la classe :"
+
+msgid "Unable to add class:"
+msgstr "Impossible d'ajouter la classe :"
+
+msgid "Modify Printer"
+msgstr "Modifier l'imprimante"
+
+msgid "Add Printer"
+msgstr "Ajouter une imprimante"
+
+msgid "The printer name may only contain up to 127 printable characters and may not contain spaces, slashes (/), or the pound sign (#)."
+msgstr "Le nom d'imprimante doit comporter au plus 127 caractères, tous imprimables, sans espace, '/' ni '#'."
+
+msgid "Unable to get list of printer drivers:"
+msgstr "Impossible d'obtenir la liste des pilotes pour l'imprimante:"
+
+msgid "Unable to modify printer:"
+msgstr "Impossible de modifier l'imprimante :"
+
+msgid "Unable to add printer:"
+msgstr "Impossible d'ajouter l'imprimante :"
+
+msgid "Set Printer Options"
+msgstr "Définir les options de l'imprimante"
+
+msgid "Missing form variable!"
+msgstr "Un champ du formulaire HTML n'a pas été rempli !"
+
+msgid "Unable to get PPD file!"
+msgstr "Impossible de trouver le fichier PPD !"
+
+msgid "Unable to open PPD file:"
+msgstr "Impossible d'ouvrir le fichier PPD :"
+
+msgid "Banners"
+msgstr "Bannières"
+
+msgid "Starting Banner"
+msgstr "Début de la bannière"
+
+msgid "Ending Banner"
+msgstr "Fin de la bannière"
+
+msgid "Policies"
+msgstr "Politiques"
+
+msgid "Error Policy"
+msgstr "Politique d'erreur"
+
+msgid "Operation Policy"
+msgstr "Politique des opérations"
+
+msgid "PS Binary Protocol"
+msgstr "Protocole binaire PS"
+
+msgid "None"
+msgstr "Auncun(e)"
+
+msgid "Unable to set options:"
+msgstr "Impossible de définir les options :"
+
+msgid "Change Settings"
+msgstr "Modifier les paramètres"
+
+msgid "Unable to change server settings:"
+msgstr "Impossible de modifier les paramètres du serveur :"
+
+msgid "Unable to upload cupsd.conf file:"
+msgstr "Impossible de transmettre le fichier cupsd.conf :"
+
+msgid "Edit Configuration File"
+msgstr "Éditer le fichier de configuration"
+
+msgid "Unable to create temporary file:"
+msgstr "Impossible de créer le fichier temporaire :"
+
+msgid "Unable to access cupsd.conf file:"
+msgstr "Impossible d'accéder au fichier cupsd.conf :"
+
+msgid "Unable to edit cupsd.conf files larger than 1MB!"
+msgstr "Impossible d'éditer des fichiers cupsd.conf de taille supérieure à 1Mo !"
+
+msgid "Delete Class"
+msgstr "Supprimer la classe"
+
+msgid "Unable to delete class:"
+msgstr "Impossible de supprimer la classe :"
+
+msgid "Delete Printer"
+msgstr "Supprimer l'imprimante"
+
+msgid "Unable to delete printer:"
+msgstr "Impossible de supprimer l'imprimante :"
+
+msgid "Export Printers to Samba"
+msgstr "Exporter les imprimantes vers SAMBA"
+
+msgid "Unable to fork process!"
+msgstr "Impossible de faire un « fork » !"
+
+msgid "Unable to connect to server!"
+msgstr "Impossible de se connecter au serveur !"
+
+msgid "Unable to get printer attributes!"
+msgstr "Impossible de récupérer les attributs de l'imprimante !"
+
+msgid "Unable to convert PPD file!"
+msgstr "Impossible de convertir le fichier PPD !"
+
+msgid "Unable to copy Windows 2000 printer driver files!"
+msgstr "Impossible de copier les fichiers de pilote d'impression pour Windows 2000 !"
+
+msgid "Unable to install Windows 2000 printer driver files!"
+msgstr "Impossible d'installer les fichiers de pilote d'impression pour Windows 2000 !"
+
+msgid "Unable to copy Windows 9x printer driver files!"
+msgstr "Impossible de copier les fichiers de pilote d'impression pour Windows 9x !"
+
+msgid "Unable to install Windows 9x printer driver files!"
+msgstr "Impossible d'installer les fichiers de pilote d'impression pour Windows 9x !"
+
+msgid "Unable to set Windows printer driver!"
+msgstr "Impossible d'installer les fichiers de pilote d'impression pour Windows !"
+
+msgid "No printer drivers found!"
+msgstr "Aucun pilote trouvé pour l'imprimante !"
+
+msgid "Unable to execute cupsaddsmb command!"
+msgstr "Impossible d'exécuter la commande cupsaddsmb !"
+
+#, c-format
+msgid "cupsaddsmb failed with status %d"
+msgstr "cupsaddsmb a échoué avec le statut %d"
+
+#, c-format
+msgid "cupsaddsmb crashed on signal %d"
+msgstr "cupsaddsmb s'est terminé inopinément sur réception du signal %d"
+
+msgid "A Samba username is required to export printer drivers!"
+msgstr "Il faut un nom d'utilisateur SAMBA pour exporter les pilotes d'imprimante !"
+
+msgid "A Samba password is required to export printer drivers!"
+msgstr "Il faut un mot de passe SAMBA pour exporter les pilotes d'imprimante !"
+
+msgid "Unable to open cupsd.conf file:"
+msgstr "Impossible d'ouvrir le fichier cupsd.conf :"
+
+msgid "Unable to change printer:"
+msgstr "Impossible de modifier l'imprimante :"
+
+msgid "Set Allowed Users"
+msgstr "Définir les autorisations"
+
+msgid "Unable to get printer attributes:"
+msgstr "Impossible de récupérer les attributs de l'imprimante :"
+
+msgid "Set Publishing"
+msgstr "Publier"
+
+msgid "Unable to change printer-is-shared attribute:"
+msgstr "Impossible de modifier l'attribut « printer-is-shared » :"
+
+msgid "Classes"
+msgstr "Classes"
+
+msgid "Unable to get class list:"
+msgstr "Impossible d'obtenir la liste des classes :"
+
+msgid "Unable to get class status:"
+msgstr "Impossible d'obtenir l'état de la classe :"
+
+msgid "Move Job"
+msgstr "Transférer la tâche"
+
+msgid "Unable to find destination for job!"
+msgstr "Impossible de trouver la destination de la tâche !"
+
+msgid "Move All Jobs"
+msgstr "Transférer toutes les tâches"
+
+msgid "Unable to move job"
+msgstr "Impossible de transférer la tâche !"
+
+msgid "Unable to move jobs"
+msgstr "Impossible de transférer les tâches !"
+
+msgid "Print Test Page"
+msgstr "Imprimer la page de test"
+
+msgid "Unable to print test page:"
+msgstr "Impossible d'imprimer la page de test :"
+
+msgid "Jobs"
+msgstr "Tâches"
+
+msgid "Job operation failed:"
+msgstr "L'opération sur la tâche a échoué :"
+
+msgid "Printers"
+msgstr "Imprimantes"
+
+msgid "Unable to get printer list:"
+msgstr "Impossible d'obtenir la liste des imprimantes :"
+
+msgid "Unable to get printer status:"
+msgstr "Impossible d'obtenir l'état de l'imprimante :"
+
+msgid "OK"
+msgstr "OK"
+
+msgid "Unable to open PPD file"
+msgstr "Impossible d'ouvrir le fichier PPD !"
+
+msgid "NULL PPD file pointer"
+msgstr "Pointeur de fichier PPD NUL !"
+
+msgid "Memory allocation error"
+msgstr "Problème d'allocation de mémoire"
+
+msgid "Missing PPD-Adobe-4.x header"
+msgstr "Il manque l'entête PPD-Adobe-4.x"
+
+msgid "Missing value string"
+msgstr "Il manque la valeur"
+
+msgid "Internal error"
+msgstr "Erreur interne"
+
+msgid "Bad OpenGroup"
+msgstr "OpenGroup erroné"
+
+msgid "OpenGroup without a CloseGroup first"
+msgstr "OpenGroup sans de CloseGroup d'abord"
+
+msgid "Bad OpenUI/JCLOpenUI"
+msgstr "OpenUI/JCLOpenUI erroné"
+
+msgid "OpenUI/JCLOpenUI without a CloseUI/JCLCloseUI first"
+msgstr "OpenUI/JCLOpenUI sans de CloseUI/JCLCloseUI d'abord"
+
+msgid "Bad OrderDependency"
+msgstr "OrderDependency erroné"
+
+msgid "Bad UIConstraints"
+msgstr "UIConstraints erroné"
+
+msgid "Missing asterisk in column 1"
+msgstr "Il manque un astérisque à la colonne 1"
+
+msgid "Line longer than the maximum allowed (255 characters)"
+msgstr "Ligne plus longue que les 255 caractères autorisés"
+
+msgid "Illegal control character"
+msgstr "Caractère de contrôle incorrect"
+
+msgid "Illegal main keyword string"
+msgstr "Mot-clé essentiel incorrect"
+
+msgid "Illegal option keyword string"
+msgstr "Mot-clé d'option incorrect"
+
+msgid "Illegal translation string"
+msgstr "Traduction incorrecte"
+
+msgid "Illegal whitespace character"
+msgstr "Caractère « espace blanc » incorrect"
+
+msgid "Bad custom parameter"
+msgstr "Paramètre de personnalisation incorrect"
+
+msgid "Unknown"
+msgstr "Inconnu(e)"
+
+msgid "Custom"
+msgstr "Personnalisation"
+
+msgid "JCL"
+msgstr "JCL ( Langage de contrôle de tâche )"
+
+msgid "No authentication information provided!"
+msgstr "Pas d'information d'authentification !"
+
+#, c-format
+msgid "Password for %s required to access %s via SAMBA: "
+msgstr "Il faut un mot de passe à %s pour accéder à %s via SAMBA : "
+
+#, c-format
+msgid "Running command: %s %s -N -U '%s%%%s' -c '%s'\n"
+msgstr "Exécute la commande : %s %s -N -U '%s%%%s' -c '%s'\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to run \"%s\": %s\n"
+msgstr "cupsaddsmb: Impossible d'exécuter « %s » : %s\n"
+
+msgid "cupsaddsmb: No Windows printer drivers are installed!\n"
+msgstr "cupsaddsmb: Aucun pilote d'impression pour Windows n'est installé !\n"
+
+msgid "cupsaddsmb: Warning, no Windows 2000 printer drivers are installed!\n"
+msgstr "cupsaddsmb: Attention, aucun pilote d'impression pour Windows 2000 n'est installé !\n"
+
+#, c-format
+msgid "lpadmin: Printer %s is already a member of class %s.\n"
+msgstr "lpadmin: L'imprimante %s est déjà membre de la classe %s.\n"
+
+msgid "lpadmin: No member names were seen!\n"
+msgstr "lpadmin: Aucun nom de membre trouvé !\n"
+
+#, c-format
+msgid "lpadmin: Printer %s is not a member of class %s.\n"
+msgstr "lpadmin: L'imprimante %s n'est pas membre de la classe %s.\n"
+
+#, c-format
+msgid ""
+"Device: uri = %s\n"
+" class = %s\n"
+" info = %s\n"
+" make-and-model = %s\n"
+" device-id = %s\n"
+msgstr ""
+"Matériel : URI = %s\n"
+" classe = %s\n"
+" info = %s\n"
+" marque/modèle = %s\n"
+" ID matériel = %s\n"
+
+#, c-format
+msgid ""
+"Model: name = %s\n"
+" natural_language = %s\n"
+" make-and-model = %s\n"
+" device-id = %s\n"
+msgstr ""
+"Modèle : nom = %s\n"
+" langue naturelle = %s\n"
+" marque/modèle = %s\n"
+" ID matériel = %s\n"
+
+
+msgid "Usage: lpmove job/src dest\n"
+msgstr "Utilisation : lpmove tâche/source destination\n"
+
+msgid "lpstat: Need \"completed\", \"not-completed\", or \"all\" after -W!\n"
+msgstr "lpstat: Il faut « completed » ou « not-completed » après l'option -W !\n"
+
+#, c-format
+msgid "%s accepting requests since %s\n"
+msgstr "%s accepte les requêtes depuis le %s\n"
+
+#, c-format
+msgid ""
+"%s not accepting requests since %s -\n"
+"\t%s\n"
+msgstr ""
+"%s n'accepte pas les requêtes depuis le %s -\n"
+"\t%s\n"
+
+#, c-format
+msgid "%s/%s accepting requests since %s\n"
+msgstr "%s/%s accepte les requêtes depuis le %s\n"
+
+#, c-format
+msgid ""
+"%s/%s not accepting requests since %s -\n"
+"\t%s\n"
+msgstr ""
+"%s/%s n'accepte pas les requêtes depuis le %s -\n"
+"\t%s\n"
+
+msgid "lpc> "
+msgstr "lpc> "
+
+#, c-format
+msgid "%s: Unable to contact server!\n"
+msgstr "%s: Impossible de contacter le serveur !\n"
+
+#, c-format
+msgid "%s: Error - expected username after '-U' option!\n"
+msgstr "%s: Erreur - il faut un nom d'utilisateur après l'option '-U' !\n"
+
+#, c-format
+msgid "%s: Error - unknown destination \"%s/%s\"!\n"
+msgstr "%s: Erreur - destination « %s/%s » inconnue !\n"
+
+#, c-format
+msgid "%s: Unknown destination \"%s\"!\n"
+msgstr "%s: Destination « %s » inconnue !\n"
+
+#, c-format
+msgid "%s: Error - expected hostname after '-h' option!\n"
+msgstr "%s: Erreur - il faut un nom de machine après l'option '-h' !\n"
+
+#, c-format
+msgid "%s: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr "%s: Erreur - la variable d'environnement %s désigne une destination inexistente « %s » !\n"
+
+#, c-format
+msgid "%s: error - no default destination available.\n"
+msgstr "%s: Erreur - aucune destination par défaut n'est disponible.\n"
+
+msgid "Usage: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]\n"
+msgstr "Utilisation : lpq [-P dest] [-U nom_utilisateur] [-h nom_machine[:port]] [-l] [+intervalle]\n"
+
+#, c-format
+msgid "%s: Error - expected hostname after '-H' option!\n"
+msgstr "%s: Erreur - il faut un nom de machine après l'option '-H' !\n"
+
+#, c-format
+msgid "%s: Error - expected value after '-%c' option!\n"
+msgstr "%s: Erreur - il faut une valeur après l'option '-%c' !\n"
+
+#, c-format
+msgid "%s: Warning - '%c' format modifier not supported - output may not be correct!\n"
+msgstr "%s: Attention - le modificateur de format '%c' n'est pas géré - l'affichage pourrait être incorrect !\n"
+
+#, c-format
+msgid "%s: error - expected option=value after '-o' option!\n"
+msgstr "%s: Erreur - il faut un argument du type option=valeur après l'option '-o' !\n"
+
+#, c-format
+msgid "%s: Error - expected destination after '-P' option!\n"
+msgstr "%s: Erreur - il faut une destination après l'option '-P' !\n"
+
+#, c-format
+msgid "%s: Error - expected copy count after '-#' option!\n"
+msgstr "%s: Erreur - il faut un nombre de copies après l'option '-#' !\n"
+
+#, c-format
+msgid "%s: Error - expected name after '-%c' option!\n"
+msgstr "%s: Erreur - il faut un nom après l'option '-%c' !\n"
+
+#, c-format
+msgid "%s: Error - unknown option '%c'!\n"
+msgstr "%s: Erreur - option '%c' inconnue !\n"
+
+#, c-format
+msgid "%s: Error - unable to access \"%s\" - %s\n"
+msgstr "%s: Erreur - impossible d'accéder à « %s » - %s\n"
+
+#, c-format
+msgid "%s: Error - too many files - \"%s\"\n"
+msgstr "%s: Erreur - trop de fichiers - « %s »\n"
+
+#, c-format
+msgid "%s: Error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr "%s: Erreur - la variable d'environnement %s désigne une destination inexistente « %s » !\n"
+
+#, c-format
+msgid "%s: Error - no default destination available.\n"
+msgstr "%s: Erreur - aucune destination par défaut n'est disponible.\n"
+
+#, c-format
+msgid "%s: Error - scheduler not responding!\n"
+msgstr "%s: Erreur - l'ordonnanceur ne répond pas !\n"
+
+#, c-format
+msgid "%s: Error - unable to create temporary file \"%s\" - %s\n"
+msgstr "%s: Erreur - impossible de créer le fichier temporaire « %s » - %s\n"
+
+#, c-format
+msgid "%s: Error - unable to write to temporary file \"%s\" - %s\n"
+msgstr "%s: Erreur - impossible d'écrire dans le fichier temporaire « %s » - %s\n"
+
+#, c-format
+msgid "%s: Error - stdin is empty, so no job has been sent.\n"
+msgstr "%s: Erreur - stdin est vide, donc aucune tâche n'a été envoyée.\n"
+
+#, c-format
+msgid "%s: Error - unknown destination \"%s\"!\n"
+msgstr "%s: Erreur - destination « %s » inconnue !\n"
+
+#, c-format
+msgid "%s: Error - expected reason text after '-r' option!\n"
+msgstr "%s: Erreur - il faut le texte de la raison après l'option '-r' !\n"
+
+#, c-format
+msgid "%s: Error - expected username after '-u' option!\n"
+msgstr "%s: Erreur - il faut un nom d'utilisateur après l'option '-u' !\n"
+
+#, c-format
+msgid "%s: %s failed: %s\n"
+msgstr ""%s: %s a échoué : %s"
+
+#, c-format
+msgid "%s: Error - expected destination after '-d' option!\n"
+msgstr "%s: Erreur - il faut une destination après l'option '-d' !\n"
+
+#, c-format
+msgid "%s: Error - expected form after '-f' option!\n"
+msgstr "%s: Erreur - il faut un format après l'option '-f' !\n"
+
+#, c-format
+msgid "%s: Warning - form option ignored!\n"
+msgstr "%s: Attention - l'option « format » est ignorée !\n"
+
+#, c-format
+msgid "%s: Expected job ID after '-i' option!\n"
+msgstr "%s: Il faut un numéro de tâche après l'option '-i' !\n"
+
+#, c-format
+msgid "%s: Error - cannot print files and alter jobs simultaneously!\n"
+msgstr "%s: Erreur - impossible d'imprimer et modifier les tâches en même temps !\n"
+
+#, c-format
+msgid "%s: Error - bad job ID!\n"
+msgstr "%s: Erreur - numéro de tâche incorrect !\n"
+
+#, c-format
+msgid "%s: Error - expected copies after '-n' option!\n"
+msgstr "%s: Erreur - il faut un nombre de copies après l'option '-n' !\n"
+
+#, c-format
+msgid "%s: Error - expected option string after '-o' option!\n"
+msgstr "%s: Erreur - il faut une chaîne d'option \"nom=valeur\" après l'option '-o' !\n"
+
+#, c-format
+msgid "%s: Error - expected priority after '-%c' option!\n"
+msgstr "%s: Erreur - il faut une priorité après l'option '-%c' !\n"
+
+#, c-format
+msgid "%s: Error - priority must be between 1 and 100.\n"
+msgstr "%s: Erreur - la priorité doit être comprise entre 1 et 100.\n"
+
+#, c-format
+msgid "%s: Error - expected title after '-t' option!\n"
+msgstr "%s: Erreur - il faut un titre après l'option '-t' !\n"
+
+#, c-format
+msgid "%s: Error - expected mode list after '-y' option!\n"
+msgstr "%s: Erreur - il faut une liste de modes après l'option '-y' !\n"
+
+#, c-format
+msgid "%s: Warning - mode option ignored!\n"
+msgstr "%s: Attention - l'option « mode » est ignorée !\n"
+
+#, c-format
+msgid "%s: Error - expected hold name after '-H' option!\n"
+msgstr "%s: Erreur - il faut un code de retenue après l'option '-H' !\n"
+
+#, c-format
+msgid "%s: Need job ID ('-i jobid') before '-H restart'!\n"
+msgstr "%s: Il faut un numéro de tâche ( '-i' ) avant '-H restart' !\n"
+
+#, c-format
+msgid "%s: Error - expected page list after '-P' option!\n"
+msgstr "%s: Erreur - il faut une liste de pages après l'option '-P' !\n"
+
+#, c-format
+msgid "%s: Error - expected character set after '-S' option!\n"
+msgstr "%s: Erreur - il faut un jeu de caractères après l'option '-S' !\n"
+
+#, c-format
+msgid "%s: Warning - character set option ignored!\n"
+msgstr "%s: Attention - l'option « jeu de caractères » est ignorée !\n"
+
+#, c-format
+msgid "%s: Error - expected content type after '-T' option!\n"
+msgstr "%s: Erreur - il faut un type de contenu après l'option '-T' !\n"
+
+#, c-format
+msgid "%s: Warning - content type option ignored!\n"
+msgstr "%s: Attention - l'option « type de contenu » est ignorée !\n"
+
+#, c-format
+msgid "%s: Error - cannot print from stdin if files or a job ID are provided!\n"
+msgstr ""
+"%s: Erreur - impossible d'imprimer depuis l'entrée standard si un fichier\n"
+" ou un numéro de tâche est spécifié !\n"
+
+#, c-format
+msgid "%s: Error - need \"completed\", \"not-completed\", or \"all\" after '-W' option!\n"
+msgstr "%s: Erreur - il faut « completed », « not-completed », ou « all » après l'option -W !\n"
+
+#, c-format
+msgid "%s: Error - expected destination after '-b' option!\n"
+msgstr "%s: Erreur - il faut une destination après l'option '-b' !\n"
+
+#, c-format
+msgid "%s: Invalid destination name in list \"%s\"!\n"
+msgstr "%s: Erreur - nom de destination incorrect dans la liste « %s » !\n"
+
+#, c-format
+msgid "%s: Unable to connect to server\n"
+msgstr "%s: Impossible de se connecter au serveur !\n"
+
+msgid "Print Job:"
+msgstr "Imprimer la tâche :"
+
+msgid "pending"
+msgstr "en attente"
+
+msgid "held"
+msgstr "retenue"
+
+msgid "processing"
+msgstr "en cours"
+
+msgid "stopped"
+msgstr "arrêtée"
+
+msgid "canceled"
+msgstr "annulée"
+
+msgid "aborted"
+msgstr "abandonnée"
+
+msgid "completed"
+msgstr "terminée"
+
+msgid "unknown"
+msgstr "inconnue"
+
+msgid "untitled"
+msgstr "sans titre"
+
+msgid "Printer:"
+msgstr "Imprimante :"
+
+msgid "idle"
+msgstr "inactive"
+
+msgid "Missing notify-subscription-ids attribute!"
+msgstr "Il manque l'attibut notify-subscription-ids"
+
+msgid "Job subscriptions cannot be renewed!"
+msgstr "Les souscriptions de tâche ne peuvent être renouvelées !"
+
+
+I AM HERE
+
+
+msgid "cupsd: Expected config filename after \"-c\" option!\n"
+msgstr "cupsd: Il faut un nom de fichier de configuration après l'option '-c' !\n"
+
+msgid "cupsd: launchd(8) support not compiled in, running in normal mode.\n"
+msgstr "cupsd: la gestion de launchd(8) n'a pas été compilée - exécution en mode normal.\n"
+
+#, c-format
+msgid "cupsd: Unknown option \"%c\" - aborting!\n"
+msgstr "cupsd: Option « %c » inconnue - abandon !\n"
+
+#, c-format
+msgid "cupsd: Unknown argument \"%s\" - aborting!\n"
+msgstr "cupsd: Argument « %s » inconnu - abandon !\n"
+
+msgid ""
+"Usage: cupsd [-c config-file] [-f] [-F] [-h] [-l]\n"
+"\n"
+"-c config-file Load alternate configuration file\n"
+"-f Run in the foreground\n"
+"-F Run in the foreground but detach\n"
+"-h Show this usage message\n"
+"-l Run cupsd from launchd(8)\n"
+msgstr ""
+"Utilisation : cupsd [-c fichier-config] [-f] [-F] [-h] [-l]\n"
+"\n"
+"-c fichier-config Charge un autre fichier de configuration\n"
+"-f Exécution au premier plan\n"
+"-F Exécution au premier plan mais détaché\n"
+"-h Affiche the message d'aide\n"
+"-l Exécute cupsd depuis launchd(8)\n"
+
+#, c-format
+msgid " WARN Line %d only contains whitespace!\n"
+msgstr " WARN Line %d only contains whitespace!\n"
+
+msgid " WARN File contains a mix of CR, LF, and CR LF line endings!\n"
+msgstr " WARN File contains a mix of CR, LF, and CR LF line endings!\n"
+
+msgid " WARN Non-Windows PPD files should use lines ending with only LF, not CR LF!\n"
+msgstr " WARN Non-Windows PPD files should use lines ending with only LF, not CR LF!\n"
+
+msgid "Printer Maintenance"
+msgstr "Maintenance de l'imprimante"
+
+msgid "Unable to send maintenance job:"
+msgstr "Impossible d'envoyer la tâche de maintenance :"
+
+#, c-format
+msgid "cupsaddsmb: No PPD file for printer \"%s\" - %s\n"
+msgstr "cupsaddsmb: Pas de fichier PPD pour l'imprimante « %s » - %s\n"
+
+#, c-format
+msgid " **FAIL** %s %s does not exist!\n"
+msgstr " **FAIL** %s %s does not exist!\n"
+
+#, c-format
+msgid " **FAIL** Bad language \"%s\"!\n"
+msgstr " **FAIL** Bad language \"%s\"!\n"
+
+#, c-format
+msgid " **FAIL** Missing \"%s\" translation string for option %s!\n"
+msgstr " **FAIL** Missing \"%s\" translation string for option %s!\n"
+
+#, c-format
+msgid " **FAIL** Default translation string for option %s contains 8-bit characters!\n"
+msgstr " **FAIL** Default translation string for option %s contains 8-bit characters!\n"
+
+#, c-format
+msgid " **FAIL** Missing \"%s\" translation string for option %s, choice %s!\n"
+msgstr " **FAIL** Missing \"%s\" translation string for option %s, choice %s!\n"
+
+#, c-format
+msgid " **FAIL** Default translation string for option %s choice %s contains 8-bit characters!\n"
+msgstr " **FAIL** Default translation string for option %s choice %s contains 8-bit characters!\n"
+
+#, c-format
+msgid " **FAIL** Bad cupsFilter value \"%s\"!\n"
+msgstr " **FAIL** Bad cupsFilter value \"%s\"!\n"
+
+msgid "Help"
+msgstr "Aide"
+
+#, c-format
+msgid "Missing value on line %d!\n"
+msgstr "Il manque une valeur à la ligne %d !\n"
+
+#, c-format
+msgid "Missing double quote on line %d!\n"
+msgstr "Il manque un \" à la ligne %d !\n"
+
+#, c-format
+msgid "Bad option + choice on line %d!\n"
+msgstr "Couple option + choix incorrect à la ligne %d !\n"
+
+#, c-format
+msgid "Unable to copy Windows 2000 printer driver files (%d)!\n"
+msgstr "Impossible de copier les fichiers de pilote d'impression pour Windows 2000 ( %d ) !\n"
+
+#, c-format
+msgid "Unable to copy CUPS printer driver files (%d)!\n"
+msgstr "Impossible de copier les fichiers de pilote d'impression pour CUPS ( %d ) !\n"
+
+#, c-format
+msgid "Unable to install Windows 2000 printer driver files (%d)!\n"
+msgstr "Impossible d'installer les fichiers de pilote d'impression pour Windows 2000 ( %d ) !\n"
+
+#, c-format
+msgid "Unable to copy Windows 9x printer driver files (%d)!\n"
+msgstr "Impossible de copier les fichiers de pilote d'impression pour Windows 9x ( %d ) !\n"
+
+#, c-format
+msgid "Unable to install Windows 9x printer driver files (%d)!\n"
+msgstr "Impossible d'installer les fichiers de pilote d'impression pour Windows 9x ( %d ) !\n"
+
+msgid "No Windows printer drivers are installed!\n"
+msgstr "Aucun pilote d'impression pour Windows n'est installé !\n"
+
+msgid "Warning, no Windows 2000 printer drivers are installed!\n"
+msgstr "Attention, aucun pilote d'impression pour Windows 2000 n'est installé !\n"
+
+#, c-format
+msgid "Unable to set Windows printer driver (%d)!\n"
+msgstr "Impossible d'installer les fichiers de pilote d'impression pour Windows ( %d ) !\n""
+
+msgid ""
+"Usage: cupsaddsmb [options] printer1 ... printerN\n"
+" cupsaddsmb [options] -a\n"
+"\n"
+"Options:\n"
+" -E Encrypt the connection to the server\n"
+" -H samba-server Use the named SAMBA server\n"
+" -U samba-user Authenticate using the named SAMBA user\n"
+" -a Export all printers\n"
+" -h cups-server Use the named CUPS server\n"
+" -v Be verbose (show commands)\n"
+msgstr ""
+"Utilisation : cupsaddsmb [options] imprimante1 ... imprimanteN\n"
+" cupsaddsmb [options] -a\n"
+"\n"
+"Options:\n"
+" -E Crypter la connexion au serveur\n"
+" -H serveur-samba Utiliser le serveur SAMBA désigné\n"
+" -U utilisateur-samba S'authentifier avec l'utilisateur SAMBA désigné\n"
+" -a Exporter toutes les imprimantes\n"
+" -h serveur-CUPS Utiliser le serveur CUPS désigné\n"
+" -v Être locace ( afficher les commandes )\n"
+
+#, c-format
+msgid "Unable to copy Windows 2000 printer driver files (%d)!"
+msgstr "Impossible de copier les fichiers de pilote d'impression pour Windows 2000 ( %d ) !"
+
+#, c-format
+msgid "Unable to copy CUPS printer driver files (%d)!"
+msgstr "Impossible de copier les fichiers de pilote d'impression pour CUPS ( %d ) !"
+
+#, c-format
+msgid "Unable to install Windows 2000 printer driver files (%d)!"
+msgstr "Impossible d'installer les fichiers de pilote d'impression pour Windows 2000 ( %d ) !"
+
+#, c-format
+msgid "Unable to copy Windows 9x printer driver files (%d)!"
+msgstr "Impossible de copier les fichiers de pilote d'impression pour Windows 9x ( %d ) !"
+
+#, c-format
+msgid "Unable to install Windows 9x printer driver files (%d)!"
+msgstr "Impossible d'installer les fichiers de pilote d'impression pour Windows 9x ( %d ) !"
+
+msgid "No Windows printer drivers are installed!"
+msgstr "Aucun pilote d'impression pour Windows n'est installé !"
+
+msgid "Warning, no Windows 2000 printer drivers are installed!"
+msgstr "Attention, aucun pilote d'impression pour Windows 2000 n'est installé !"
+
+#, c-format
+msgid "open of %s failed: %s"
+msgstr "l'ouverture de %s a échoué : %s"
+
+#, c-format
+msgid "Running command: %s %s -N -A %s -c '%s'\n"
+msgstr "Exécution de la commande : %s %s -N -A %s -c '%s'\n"
+
+#, c-format
+msgid "stat of %s failed: %s"
+msgstr "stat sur %s a échoué : %s"
+
+#, c-format
+msgid "Job #%d is already cancelled - can't cancel."
+msgstr "La tâche n°%d est déjà annulée - impossible de l'annuler."
+
+#, c-format
+msgid "Job #%d is already aborted - can't cancel."
+msgstr "La tâche n°%d est déjà abandonnée - impossible de l'annuler."
+
+#, c-format
+msgid "Job #%d is already completed - can't cancel."
+msgstr "La tâche n°%d est déjà terminée - impossible de l'annuler."
+
+#, c-format
+msgid "You must access this page using the URL <A HREF=\"https://%s:%d%s\">https://%s:%d%s</A>."
+msgstr "Vous devez accéder à cette page avec l'URL <A HREF=\"https://%s:%d%s\">https://%s:%d%s</A>."
+
+#, c-format
+msgid "Unsupported format '%s'!"
+msgstr "Format non géré '%s' !"
+
+msgid "FAIL\n"
+msgstr "ÉCHEC"
+
+#, c-format
+msgid ""
+" Line %d is longer than 255 characters (%d)!\n"
+" REF: Page 25, Line Length\n"
+msgstr ""
+" Line %d is longer than 255 characters (%d)!\n"
+" REF: Page 25, Line Length\n"
+
+msgid ""
+" Missing %!PS-Adobe-3.0 on first line!\n"
+" REF: Page 17, 3.1 Conforming Documents\n"
+msgstr ""
+" Missing %!PS-Adobe-3.0 on first line!\n"
+" REF: Page 17, 3.1 Conforming Documents\n"
+
+#, c-format
+msgid ""
+" Bad %%%%Pages: on line %d!\n"
+" REF: Page 43, %%%%Pages:\n"
+msgstr ""
+" Bad %%%%Pages: on line %d!\n"
+" REF: Page 43, %%%%Pages:\n"
+
+#, c-format
+msgid ""
+" Bad %%%%BoundingBox: on line %d!\n"
+" REF: Page 39, %%%%BoundingBox:\n"
+msgstr ""
+" Bad %%%%BoundingBox: on line %d!\n"
+" REF: Page 39, %%%%BoundingBox:\n"
+
+#, c-format
+msgid ""
+" Bad %%%%Page: on line %d!\n"
+" REF: Page 53, %%%%Page:\n"
+msgstr ""
+" Bad %%%%Page: on line %d!\n"
+" REF: Page 53, %%%%Page:\n"
+
+#, c-format
+msgid ""
+" Missing or bad %%BoundingBox: comment!\n"
+" REF: Page 39, %%BoundingBox:\n"
+msgstr ""
+" Missing or bad %%BoundingBox: comment!\n"
+" REF: Page 39, %%BoundingBox:\n"
+
+#, c-format
+msgid ""
+" Missing or bad %%Pages: comment!\n"
+" REF: Page 43, %%Pages:\n"
+msgstr ""
+" Missing or bad %%Pages: comment!\n"
+" REF: Page 43, %%Pages:\n"
+
+#, c-format
+msgid ""
+" Missing %%EndComments comment!\n"
+" REF: Page 41, %%EndComments\n"
+msgstr ""
+" Missing %%EndComments comment!\n"
+" REF: Page 41, %%EndComments\n"
+
+#, c-format
+msgid ""
+" Missing or bad %%Page: comments!\n"
+" REF: Page 53, %%Page:\n"
+msgstr ""
+" Missing or bad %%Page: comments!\n"
+" REF: Page 53, %%Page:\n"
+
+#, c-format
+msgid " Too many %%EndDocument comments!\n"
+msgstr " Too many %%EndDocument comments!\n"
+
+#, c-format
+msgid " Too many %%BeginDocument comments!\n"
+msgstr " Too many %%BeginDocument comments!\n"
+
+#, c-format
+msgid " Saw %d lines that exceeded 255 characters!\n"
+msgstr " Saw %d lines that exceeded 255 characters!\n"
+
+msgid "PASS\n"
+msgstr "OK"
+
+msgid " Warning: file contains binary data!\n"
+msgstr " Warning: file contains binary data!\n"
+
+#, c-format
+msgid " Warning: obsolete DSC version %.1f in file!\n"
+msgstr " Warning: obsolete DSC version %.1f in file!\n"
+
+#, c-format
+msgid " Warning: no %%EndComments comment in file!\n"
+msgstr " Warning: no %%EndComments comment in file!\n"
+
+msgid ""
+"Usage: cupstestdsc [options] filename.ps [... filename.ps]\n"
+" cupstestdsc [options] -\n"
+"\n"
+"Options:\n"
+"\n"
+" -h Show program usage\n"
+"\n"
+" Note: this program only validates the DSC comments, not the PostScript itself.\n"
+msgstr ""
+"Usage: cupstestdsc [options] filename.ps [... filename.ps]\n"
+" cupstestdsc [options] -\n"
+"\n"
+"Options:\n"
+"\n"
+" -h Show program usage\n"
+"\n"
+" Note: this program only validates the DSC comments, not the PostScript itself.\n"
+
+
+#, c-format
+msgid "Password for %s on %s? "
+msgstr "Mot de passe pour %s sur %s? "
+
+msgid ""
+" **FAIL** 1284DeviceId must be 1284DeviceID!\n"
+" REF: Page 72, section 5.5\n"
+msgstr ""
+" **FAIL** 1284DeviceId must be 1284DeviceID!\n"
+" REF: Page 72, section 5.5\n"
+
+
+#
+# End of "$Id$".
+#
msgstr ""
"Project-Id-Version: cups_it\n"
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
-"POT-Creation-Date: 2006-05-21 10:08-0400\n"
+"POT-Creation-Date: 2007-01-23 09:19-0500\n"
"PO-Revision-Date: 2006-11-16 00:34+0100\n"
"Last-Translator: Vincenzo Reale <smart2128@baslug.org>\n"
"Language-Team: Italian <kde-i18n-it@mail.kde.org>\n"
msgid "Auto"
msgstr "Auto"
-msgid "Enter your username and password or the root username and password to access this page."
-msgstr "Inserisci il tuo nome utente e la tua password o il nome utente e la password di root per accedere a questa pagina."
+msgid ""
+"Enter your username and password or the root username and password to access "
+"this page."
+msgstr ""
+"Inserisci il tuo nome utente e la tua password o il nome utente e la "
+"password di root per accedere a questa pagina."
msgid "You must use a https: URL to access this page."
msgstr "Devi usare un URL https: per accedere a questa pagina."
msgid "The printer or class was not found."
msgstr "La stampante o la classe non è stata trovata."
-msgid "The printer-uri must be of the form \"ipp://HOSTNAME/classes/CLASSNAME\"."
-msgstr "printer-uri deve essere nella forma \"ipp://NOMEHOST/classes/NOMECLASSE\"."
+msgid ""
+"The printer-uri must be of the form \"ipp://HOSTNAME/classes/CLASSNAME\"."
+msgstr ""
+"printer-uri deve essere nella forma \"ipp://NOMEHOST/classes/NOMECLASSE\"."
#, c-format
msgid "The printer-uri \"%s\" contains invalid characters."
msgid "The notify-user-data value is too large (%d > 63 octets)!"
msgstr "Il valore notify-user-data è troppo grande (%d > 63 ottetti)!"
-msgid "The notify-lease-duration attribute cannot be used with job subscriptions."
-msgstr "L'attributo notify-lease-duration non può essere usato con le sottoscrizioni delle operazioni."
+msgid ""
+"The notify-lease-duration attribute cannot be used with job subscriptions."
+msgstr ""
+"L'attributo notify-lease-duration non può essere usato con le sottoscrizioni "
+"delle operazioni."
-msgid "The printer-uri must be of the form \"ipp://HOSTNAME/printers/PRINTERNAME\"."
-msgstr "printer-uri deve essere nella forma \"ipp://NOMEHOST/printers/NOMESTAMPANTE\"."
+msgid ""
+"The printer-uri must be of the form \"ipp://HOSTNAME/printers/PRINTERNAME\"."
+msgstr ""
+"printer-uri deve essere nella forma \"ipp://NOMEHOST/printers/NOMESTAMPANTE"
+"\"."
#, c-format
msgid "A class named \"%s\" already exists!"
msgstr "Una classe con nome \"%s\" già esiste!"
#, c-format
-msgid "File device URIs have been disabled! To enable, see the FileDevice directive in \"%s/cupsd.conf\"."
-msgstr "Gli URI del file di dispositivo sono stati disabilitati! Per abilitarli, vedere la direttiva FileDevice in \"%s/cupsd.conf\"."
+msgid ""
+"File device URIs have been disabled! To enable, see the FileDevice directive "
+"in \"%s/cupsd.conf\"."
+msgstr ""
+"Gli URI del file di dispositivo sono stati disabilitati! Per abilitarli, "
+"vedere la direttiva FileDevice in \"%s/cupsd.conf\"."
#, c-format
msgid "Bad device-uri \"%s\"!"
#, c-format
msgid "You are not authorized to authenticate job #%d owned by \"%s\"!"
-msgstr "Non sei autorizzato ad autenticare l'operazione #%d di proprietà di \"%s\"!"
+msgstr ""
+"Non sei autorizzato ad autenticare l'operazione #%d di proprietà di \"%s\"!"
msgid "The printer-uri attribute is required!"
msgstr "L'attributo printer-uri è richiesto!"
#, c-format
msgid "You are not authorized to delete job #%d owned by \"%s\"!"
-msgstr "Non sei autorizzato ad eliminare l'operazione #%d di proprietà di \"%s\"!"
+msgstr ""
+"Non sei autorizzato ad eliminare l'operazione #%d di proprietà di \"%s\"!"
#, c-format
msgid "Job #%d is already %s - can't cancel."
#, c-format
msgid "You are not authorized to move job #%d owned by \"%s\"!"
-msgstr "Non sei autorizzato a spostare l'operazione #%d di proprietà di \"%s\"!"
+msgstr ""
+"Non sei autorizzato a spostare l'operazione #%d di proprietà di \"%s\"!"
msgid "job-printer-uri attribute missing!"
msgstr "attributo job-printer-uri mancante!"
#, c-format
msgid "You are not authorized to release job id %d owned by \"%s\"!"
-msgstr "Non sei autorizzata a rilasciare l'operazione con id %d di proprietà di \"%s\"!"
+msgstr ""
+"Non sei autorizzata a rilasciare l'operazione con id %d di proprietà di \"%s"
+"\"!"
#, c-format
msgid "Job #%d is not complete!"
#, c-format
msgid "You are not authorized to restart job id %d owned by \"%s\"!"
-msgstr "Non sei autorizzato a riavviare l'operazione con id %d di proprietà di \"%s\"!"
+msgstr ""
+"Non sei autorizzato a riavviare l'operazione con id %d di proprietà di \"%s"
+"\"!"
#, c-format
msgid "You are not authorized to send document for job #%d owned by \"%s\"!"
-msgstr "Non sei autorizzato a inviare il documento per l'operazione #%d di proprietà di \"%s\"!"
+msgstr ""
+"Non sei autorizzato a inviare il documento per l'operazione #%d di proprietà "
+"di \"%s\"!"
#, c-format
msgid "Bad document-format \"%s\"!"
#, c-format
msgid "You are not authorized to alter job id %d owned by \"%s\"!"
-msgstr "Non sei autorizzato a modificare l'operazione con id %d di proprietà di \"%s\"!"
+msgstr ""
+"Non sei autorizzato a modificare l'operazione con id %d di proprietà di \"%s"
+"\"!"
#, c-format
msgid "%s cannot be changed."
msgstr "lpq: Destinazione \"%s\" sconosciuta!\n"
#, c-format
-msgid "lp: error - %s environment variable names non-existent destination \"%s\"!\n"
-msgstr "lp: errore - i nomi della variabile d'ambiente %s non esistono nella destinazione \"%s\"!\n"
+msgid ""
+"lp: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr ""
+"lp: errore - i nomi della variabile d'ambiente %s non esistono nella "
+"destinazione \"%s\"!\n"
msgid "lpq: error - no default destination available.\n"
msgstr "lpq: errore - nessuna destinazione predefinita disponibile.\n"
msgid "lpq: get-jobs failed: %s\n"
msgstr "lpq: get-jobs fallito: %s\n"
-msgid "Rank Owner Pri Job Files Total Size\n"
+msgid ""
+"Rank Owner Pri Job Files Total Size\n"
msgstr "Posiz. Proprietario Stamp. Operaz. File Dim. totali\n"
msgid "Rank Owner Job File(s) Total Size\n"
msgstr "lpr: errore - valore atteso dopo l'opzione -%c!\n"
#, c-format
-msgid "lpr: warning - '%c' format modifier not supported - output may not be correct!\n"
-msgstr "lpr: attenzione - il modificatore di formato '%c' non è supportato - il risultato potrebbe non essere corretto!\n"
+msgid ""
+"lpr: warning - '%c' format modifier not supported - output may not be "
+"correct!\n"
+msgstr ""
+"lpr: attenzione - il modificatore di formato '%c' non è supportato - il "
+"risultato potrebbe non essere corretto!\n"
msgid "lpr: error - expected option=value after -o option!\n"
msgstr "lpr: errore - attesa opzione=valore dopo l'opzione -o !\n"
msgid "lpr: warning - email notification is not currently supported!\n"
-msgstr "lpr: attenzione - le notifiche via email non sono al momento supportate!\n"
+msgstr ""
+"lpr: attenzione - le notifiche via email non sono al momento supportate!\n"
msgid "lpr: error - expected destination after -P option!\n"
msgstr "lpr: errore - destinazione attesa dopo l'opzione -P!\n"
msgstr "lpr: errore - troppi file - \"%s\"\n"
#, c-format
-msgid "lpr: error - %s environment variable names non-existent destination \"%s\"!\n"
-msgstr "lpr: errore - i nomi della variabile d'ambiente %s non esistono nella destinazione \"%s\"!\n"
+msgid ""
+"lpr: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr ""
+"lpr: errore - i nomi della variabile d'ambiente %s non esistono nella "
+"destinazione \"%s\"!\n"
msgid "lpr: error - no default destination available.\n"
msgstr "lpr: errore - nessuna destinazione predefinita disponibile.\n"
#, c-format
msgid "cupsaddsmb: Unable to copy Windows 2000 printer driver files (%d)!\n"
-msgstr "cupsaddsmb: Impossibile copiare i file del driver di stampa di Windows 2000 (%d)!\n"
+msgstr ""
+"cupsaddsmb: Impossibile copiare i file del driver di stampa di Windows 2000 "
+"(%d)!\n"
#, c-format
msgid "cupsaddsmb: Unable to copy CUPS printer driver files (%d)!\n"
-msgstr "cupsaddsmb: Impossibile copiare i file del driver di stampa di CUPS (%d)!\n"
+msgstr ""
+"cupsaddsmb: Impossibile copiare i file del driver di stampa di CUPS (%d)!\n"
#, c-format
msgid "cupsaddsmb: Unable to install Windows 2000 printer driver files (%d)!\n"
-msgstr "cupsaddsmb: Impossibile installare i file del driver di stampa di Windows 2000 (%d)!\n"
+msgstr ""
+"cupsaddsmb: Impossibile installare i file del driver di stampa di Windows "
+"2000 (%d)!\n"
#, c-format
msgid "cupsaddsmb: Unable to copy Windows 9x printer driver files (%d)!\n"
-msgstr "cupsaddsmb: Impossibile copiare i file del driver di stampa di Windows 9x (%d)!\n"
+msgstr ""
+"cupsaddsmb: Impossibile copiare i file del driver di stampa di Windows 9x (%"
+"d)!\n"
#, c-format
msgid "cupsaddsmb: Unable to install Windows 9x printer driver files (%d)!\n"
-msgstr "cupsaddsmb: Impossibile installare i file del driver di stampa di Windows 9x (%d)!\n"
+msgstr ""
+"cupsaddsmb: Impossibile installare i file del driver di stampa di Windows 9x "
+"(%d)!\n"
#, c-format
msgid "cupsaddsmb: Unable to set Windows printer driver (%d)!\n"
-msgstr "cupsaddsmb: Impossibile configurare i file del driver di stampa di Windows (%d)!\n"
+msgstr ""
+"cupsaddsmb: Impossibile configurare i file del driver di stampa di Windows (%"
+"d)!\n"
msgid ""
"Usage: cupsaddsmb [options] printer1 ... printerN\n"
#, c-format
msgid ""
-" WARN Duplex option keyword %s should be named Duplex or JCLDuplex!\n"
+" WARN Duplex option keyword %s should be named Duplex or "
+"JCLDuplex!\n"
" REF: Page 122, section 5.17\n"
msgstr ""
-" WARN La parola chiave Duplex %s dovrebbe essere Duplex o JCLDuplex!\n"
+" WARN La parola chiave Duplex %s dovrebbe essere Duplex o "
+"JCLDuplex!\n"
" RIF: Pagina 122, sezione 5.17\n"
msgid " WARN Default choices conflicting!\n"
" WARN PCFileName longer than 8.3 in violation of PPD spec.\n"
" REF: Pages 61-62, section 5.3.\n"
msgstr ""
-" WARN PCFileName maggiore di 8.3 in violazione della specifica PPD.\n"
+" WARN PCFileName maggiore di 8.3 in violazione della specifica "
+"PPD.\n"
" RIF: Pagine 61-62, sezione 5.3.\n"
msgid ""
" WARN Protocols contains PJL but JCL attributes are not set.\n"
" REF: Pages 78-79, section 5.7.\n"
msgstr ""
-" WARN Protocols contiene PJL, ma gli attributi JCL non sono impostati.\n"
+" WARN Protocols contiene PJL, ma gli attributi JCL non sono "
+"impostati.\n"
" RIF: Pagine 78-79, sezione 5.7.\n"
#, c-format
" WARN %s condivide un prefisso comune con %s\n"
" RIF: Pagina 15, sezione 3.2.\n"
-#, c-format
-#, fuzzy
+#, fuzzy, c-format
msgid " %d ERROR%s FOUND\n"
msgstr " %d ERROR%s TROVATI\n"
" (restrizione=\"%s %s %s %s\")\n"
msgid ""
-"Usage: cupstestppd [-q] [-r] [-v[v]] filename1.ppd[.gz] [... filenameN.ppd[.gz]]\n"
+"Usage: cupstestppd [-q] [-r] [-v[v]] filename1.ppd[.gz] [... filenameN.ppd[."
+"gz]]\n"
" program | cupstestppd [-q] [-r] [-v[v]] -\n"
msgstr ""
-"Uso: cupstestppd [-q] [-r] [-v[v]] nomefile1.ppd[.gz] [... nomefileN.ppd[.gz]]\n"
+"Uso: cupstestppd [-q] [-r] [-v[v]] nomefile1.ppd[.gz] [... nomefileN.ppd[."
+"gz]]\n"
" programma | cupstestppd [-q] [-r] [-v[v]] -\n"
msgid "lpstat: Need \"completed\" or \"not-completed\" after -W!\n"
msgstr "destinazione predefinita di sistema: %s\n"
#, c-format
-msgid "lpstat: error - %s environment variable names non-existent destination \"%s\"!\n"
-msgstr "lpstat: errore - i nomi della variabile d'ambiente %s non esistono nella destinazione \"%s\"!\n"
+msgid ""
+"lpstat: error - %s environment variable names non-existent destination \"%s"
+"\"!\n"
+msgstr ""
+"lpstat: errore - i nomi della variabile d'ambiente %s non esistono nella "
+"destinazione \"%s\"!\n"
msgid "no system default destination\n"
msgstr "nessuna destinazione predefinita di sistema\n"
#, c-format
msgid "Output for printer %s is sent to remote printer %s on %s\n"
-msgstr "L'uscita per la stampante %s è inviata alla stampante remota %s su %s\n"
+msgstr ""
+"L'uscita per la stampante %s è inviata alla stampante remota %s su %s\n"
#, c-format
msgid "Output for printer %s is sent to %s\n"
#, c-format
msgid "Output for printer %s/%s is sent to remote printer %s on %s\n"
-msgstr "L'uscita per la stampante %s/%s è inviata alla stampante remota %s su %s\n"
+msgstr ""
+"L'uscita per la stampante %s/%s è inviata alla stampante remota %s su %s\n"
#, c-format
msgid "Output for printer %s/%s is sent to %s\n"
msgstr "lpadmin: Atteso nome classe dopo l'opzione '-c'!\n"
msgid "lpadmin: Class name can only contain printable characters!\n"
-msgstr "lpadmin: Il nome della classe può contenere solo caratteri stampabili!\n"
+msgstr ""
+"lpadmin: Il nome della classe può contenere solo caratteri stampabili!\n"
msgid "lpadmin: Expected printer name after '-d' option!\n"
msgstr "lpadmin: Atteso nome stampante dopo l'opzione '-d'!\n"
msgid "lpadmin: Printer name can only contain printable characters!\n"
-msgstr "lpadmin: Il nome della stampante può contenere solo caratteri stampabili!\n"
+msgstr ""
+"lpadmin: Il nome della stampante può contenere solo caratteri stampabili!\n"
msgid "lpadmin: Expected hostname after '-h' option!\n"
msgstr "lpadmin: Atteso nome host dopo l'opzione '-h'!\n"
"\n"
" lpadmin [-h server] -d destinazione\n"
" lpadmin [-h server] -x destinazione\n"
-" lpadmin [-h server] -p stampante [-c aggiungi-classe] [-i interfaccia] [-m modello]\n"
-" [-r rimuovi-classe] [-v dispositivo] [-D descrizione]\n"
+" lpadmin [-h server] -p stampante [-c aggiungi-classe] [-i interfaccia] [-"
+"m modello]\n"
+" [-r rimuovi-classe] [-v dispositivo] [-D "
+"descrizione]\n"
" [-P file-ppd] [-o nome=valore]\n"
" [-u allow:user,user] [-u deny:user,user]\n"
"\n"
msgstr "lp: Atteso ID dell'operazione dopo l'opzione -i!\n"
msgid "lp: Error - cannot print files and alter jobs simultaneously!\n"
-msgstr "lp: Errore- impossibile stampare file e modificare operazioni simultaneamente!\n"
+msgstr ""
+"lp: Errore- impossibile stampare file e modificare operazioni "
+"simultaneamente!\n"
msgid "lp: Error - bad job ID!\n"
msgstr "lp: Errore - ID dell'operazione errato!\n"
msgid "lp: Unknown option '%c'!\n"
msgstr "lp: Opzione '%c' sconosciuta!\n"
-msgid "lp: Error - cannot print from stdin if files or a job ID are provided!\n"
-msgstr "lp: Errore - impossibile stampare da stdin senza file o ID dell'operazione!\n"
+msgid ""
+"lp: Error - cannot print from stdin if files or a job ID are provided!\n"
+msgstr ""
+"lp: Errore - impossibile stampare da stdin senza file o ID dell'operazione!\n"
#, c-format
msgid "lp: Unable to access \"%s\" - %s\n"
#, c-format
msgid "lppasswd: failed to backup old password file: %s\n"
-msgstr "lppasswd: copia di sicurezza del vecchio file delle password fallita: %s\n"
+msgstr ""
+"lppasswd: copia di sicurezza del vecchio file delle password fallita: %s\n"
#, c-format
msgid "lppasswd: failed to rename password file: %s\n"
msgid "Add Class"
msgstr "Aggiungi classe"
-msgid "The class name may only contain up to 127 printable characters and may not contain spaces, slashes (/), or the pound sign (#)."
-msgstr "Il nome della classe può contenere fino a 127 caratteri stampabili e non può contenere spazi, barre (/), o cancelletti (#)."
+msgid ""
+"The class name may only contain up to 127 printable characters and may not "
+"contain spaces, slashes (/), or the pound sign (#)."
+msgstr ""
+"Il nome della classe può contenere fino a 127 caratteri stampabili e non può "
+"contenere spazi, barre (/), o cancelletti (#)."
msgid "Unable to modify class:"
msgstr "Impossibile modificare la classe:"
msgid "Add Printer"
msgstr "Aggiungi stampante"
-msgid "The printer name may only contain up to 127 printable characters and may not contain spaces, slashes (/), or the pound sign (#)."
-msgstr "Il nome della stampante può contenere fino a 127 caratteri stampabili e non può contenere spazi, barre (/), o cancelletti (#)."
+msgid ""
+"The printer name may only contain up to 127 printable characters and may not "
+"contain spaces, slashes (/), or the pound sign (#)."
+msgstr ""
+"Il nome della stampante può contenere fino a 127 caratteri stampabili e non "
+"può contenere spazi, barre (/), o cancelletti (#)."
msgid "Unable to get list of printer drivers:"
msgstr "Impossibile ottenere l'elenco dei driver della stampante:"
msgstr "cupsaddsmb: Nessun driver di stampa di Windows è installato!\n"
msgid "cupsaddsmb: Warning, no Windows 2000 printer drivers are installed!\n"
-msgstr "cupsaddsmb: Attenzione, nessun driver di stampa di Windows 2000 è installato!\n"
+msgstr ""
+"cupsaddsmb: Attenzione, nessun driver di stampa di Windows 2000 è "
+"installato!\n"
#, c-format
msgid "lpadmin: Printer %s is already a member of class %s.\n"
msgstr "%s: Errore - atteso nome host dopo l'opzione '-h'!\n"
#, c-format
-msgid "%s: error - %s environment variable names non-existent destination \"%s\"!\n"
-msgstr "%s: errore - i nomi della variabile d'ambiente %s non esistono nella destinazione \"%s\"!\n"
+msgid ""
+"%s: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr ""
+"%s: errore - i nomi della variabile d'ambiente %s non esistono nella "
+"destinazione \"%s\"!\n"
#, c-format
msgid "%s: error - no default destination available.\n"
msgstr "%s: errore - nessuna destinazione predefinita disponibile.\n"
-msgid "Usage: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]\n"
-msgstr "Uso: lpq [-P dest] [-U nomeutente] [-h nomehost[:porta]] [-l] [+intervallo]\n"
+msgid ""
+"Usage: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]\n"
+msgstr ""
+"Uso: lpq [-P dest] [-U nomeutente] [-h nomehost[:porta]] [-l] [+intervallo]\n"
#, c-format
msgid "%s: Error - expected hostname after '-H' option!\n"
msgstr "%s: Errore - atteso valore dopo l'opzione '-%c'!\n"
#, c-format
-msgid "%s: Warning - '%c' format modifier not supported - output may not be correct!\n"
-msgstr "%s: Attenzione - Modificatore di formato '%c' non supportato - il risultato potrebbe non essere corretto!\n"
+msgid ""
+"%s: Warning - '%c' format modifier not supported - output may not be "
+"correct!\n"
+msgstr ""
+"%s: Attenzione - Modificatore di formato '%c' non supportato - il risultato "
+"potrebbe non essere corretto!\n"
#, c-format
msgid "%s: error - expected option=value after '-o' option!\n"
msgstr "%s: Errore - troppi file - \"%s\"\n"
#, c-format
-msgid "%s: Error - %s environment variable names non-existent destination \"%s\"!\n"
-msgstr "%s: Errore - i nomi della variabile d'ambiente %s non esistono nella destinazione \"%s\"!\n"
+msgid ""
+"%s: Error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr ""
+"%s: Errore - i nomi della variabile d'ambiente %s non esistono nella "
+"destinazione \"%s\"!\n"
#, c-format
msgid "%s: Error - no default destination available.\n"
#, c-format
msgid "%s: Error - cannot print files and alter jobs simultaneously!\n"
-msgstr "%s: Errore - impossibile stampare file e modificare operazioni contemporaneamente!\n"
+msgstr ""
+"%s: Errore - impossibile stampare file e modificare operazioni "
+"contemporaneamente!\n"
#, c-format
msgid "%s: Error - bad job ID!\n"
#, c-format
msgid "%s: Need job ID ('-i jobid') before '-H restart'!\n"
-msgstr "%s: Usare l'ID dell'operazione ('-i idoperazione') prima di '-H restart'!\n"
+msgstr ""
+"%s: Usare l'ID dell'operazione ('-i idoperazione') prima di '-H restart'!\n"
#, c-format
msgid "%s: Error - expected page list after '-P' option!\n"
msgstr "%s: Attenzione - opzione del tipo di contenuto ignorata!\n"
#, c-format
-msgid "%s: Error - cannot print from stdin if files or a job ID are provided!\n"
-msgstr "%s: Errore - impossibile stampare da stdin senza file o ID dell'operazione!\n"
+msgid ""
+"%s: Error - cannot print from stdin if files or a job ID are provided!\n"
+msgstr ""
+"%s: Errore - impossibile stampare da stdin senza file o ID dell'operazione!\n"
#, c-format
-msgid "%s: Error - need \"completed\", \"not-completed\", or \"all\" after '-W' option!\n"
-msgstr "%s: Errore - usare \"completed\", \"not-completed\", o \"all\" dopo l'opzione '-W'!\n"
+msgid ""
+"%s: Error - need \"completed\", \"not-completed\", or \"all\" after '-W' "
+"option!\n"
+msgstr ""
+"%s: Errore - usare \"completed\", \"not-completed\", o \"all\" dopo "
+"l'opzione '-W'!\n"
#, c-format
msgid "%s: Error - expected destination after '-b' option!\n"
msgstr "cupsd: Atteso nome file di configurazione dopo l'opzione \"-c\"!\n"
msgid "cupsd: launchd(8) support not compiled in, running in normal mode.\n"
-msgstr "cupsd: supporto launchd(8) non compilato, esecuzione in modalità normale.\n"
+msgstr ""
+"cupsd: supporto launchd(8) non compilato, esecuzione in modalità normale.\n"
#, c-format
msgid "cupsd: Unknown option \"%c\" - aborting!\n"
msgid " WARN Line %d only contains whitespace!\n"
msgstr " WARN La riga %d contiene solamente spazi bianchi!\n"
-msgid " WARN File contains a mix of CR, LF, and CR LF line endings!\n"
-msgstr " WARN Il file contiene un misto di interruzioni di riga CR, LF, e CR LF!\n"
+msgid ""
+" WARN File contains a mix of CR, LF, and CR LF line endings!\n"
+msgstr ""
+" WARN Il file contiene un misto di interruzioni di riga CR, LF, e "
+"CR LF!\n"
-msgid " WARN Non-Windows PPD files should use lines ending with only LF, not CR LF!\n"
-msgstr " WARN I file PPD per sistemi diversi da Windows dovrebbero usare solo interruzioni di riga LF, non CR LF!\n"
+msgid ""
+" WARN Non-Windows PPD files should use lines ending with only LF, "
+"not CR LF!\n"
+msgstr ""
+" WARN I file PPD per sistemi diversi da Windows dovrebbero usare "
+"solo interruzioni di riga LF, non CR LF!\n"
msgid "Printer Maintenance"
msgstr "Manutenzione stampanti"
#, c-format
msgid " **FAIL** Missing \"%s\" translation string for option %s!\n"
-msgstr " **FAIL** Stringa di traduzione \"%s\" mancante per l'opzione %s!\n"
+msgstr ""
+" **FAIL** Stringa di traduzione \"%s\" mancante per l'opzione %s!\n"
#, c-format
-msgid " **FAIL** Default translation string for option %s contains 8-bit characters!\n"
-msgstr " **FAIL** La stringa di traduzione predefinita per l'opzione %s contiene caratteri di 8-bit!\n"
+msgid ""
+" **FAIL** Default translation string for option %s contains 8-bit "
+"characters!\n"
+msgstr ""
+" **FAIL** La stringa di traduzione predefinita per l'opzione %s "
+"contiene caratteri di 8-bit!\n"
#, c-format
-msgid " **FAIL** Missing \"%s\" translation string for option %s, choice %s!\n"
-msgstr " **FAIL** Stringa di traduzione \"%s\" mancante per l'opzione %s, scelta %s!\n"
+msgid ""
+" **FAIL** Missing \"%s\" translation string for option %s, choice %s!\n"
+msgstr ""
+" **FAIL** Stringa di traduzione \"%s\" mancante per l'opzione %s, "
+"scelta %s!\n"
#, c-format
-msgid " **FAIL** Default translation string for option %s choice %s contains 8-bit characters!\n"
-msgstr " **FAIL** La stringa di traduzione predefinita per l'opzione %s scelta %s contiene caratteri di 8-bit!\n"
+msgid ""
+" **FAIL** Default translation string for option %s choice %s contains "
+"8-bit characters!\n"
+msgstr ""
+" **FAIL** La stringa di traduzione predefinita per l'opzione %s scelta "
+"%s contiene caratteri di 8-bit!\n"
#, c-format
msgid " **FAIL** Bad cupsFilter value \"%s\"!\n"
#, c-format
msgid "Unable to copy Windows 2000 printer driver files (%d)!\n"
-msgstr "Impossibile copiare i file dei driver di stampa di Windows 2000 (%d)!\n"
+msgstr ""
+"Impossibile copiare i file dei driver di stampa di Windows 2000 (%d)!\n"
#, c-format
msgid "Unable to copy CUPS printer driver files (%d)!\n"
#, c-format
msgid "Unable to install Windows 2000 printer driver files (%d)!\n"
-msgstr "Impossibile installare i file dei driver di stampa di Windows 2000 (%d)!\n"
+msgstr ""
+"Impossibile installare i file dei driver di stampa di Windows 2000 (%d)!\n"
#, c-format
msgid "Unable to copy Windows 9x printer driver files (%d)!\n"
#, c-format
msgid "Unable to install Windows 9x printer driver files (%d)!\n"
-msgstr "Impossibile installare i file dei driver di stampa di Windows 9x (%d)!\n"
+msgstr ""
+"Impossibile installare i file dei driver di stampa di Windows 9x (%d)!\n"
msgid "No Windows printer drivers are installed!\n"
msgstr "Nessun driver di stampa di Windows è installato!\n"
#, c-format
msgid "Unable to install Windows 2000 printer driver files (%d)!"
-msgstr "Impossibile installare i file dei driver di stampa di Windows 2000 (%d)!"
+msgstr ""
+"Impossibile installare i file dei driver di stampa di Windows 2000 (%d)!"
#, c-format
msgid "Unable to copy Windows 9x printer driver files (%d)!"
msgstr "L'operazione #%d è già completata - impossibile annullare."
#, c-format
-msgid "You must access this page using the URL <A HREF=\"https://%s:%d%s\">https://%s:%d%s</A>."
-msgstr "Devi accedere a questa pagina usando l'URL <A HREF=\"https://%s:%d%s\">https://%s:%d%s</A>."
+msgid ""
+"You must access this page using the URL <A HREF=\"https://%s:%d%s\">https://%"
+"s:%d%s</A>."
+msgstr ""
+"Devi accedere a questa pagina usando l'URL <A HREF=\"https://%s:%d%s"
+"\">https://%s:%d%s</A>."
#, c-format
msgid "Unsupported format '%s'!"
"\n"
" -h Show program usage\n"
"\n"
-" Note: this program only validates the DSC comments, not the PostScript itself.\n"
+" Note: this program only validates the DSC comments, not the PostScript "
+"itself.\n"
msgstr ""
"Uso: cupstestdsc [opzioni] nomefile.ps [... nomefile.ps]\n"
" cupstestdsc [opzioni] -\n"
"\n"
" -h Mostra l'utilizzo del programma\n"
"\n"
-" Nota: questo programma valida solo i commenti DSC, non il PostScript stesso.\n"
+" Nota: questo programma valida solo i commenti DSC, non il PostScript "
+"stesso.\n"
#, c-format
msgid "Password for %s on %s? "
" **FAIL** 1284DeviceId deve essere 1284DeviceID!\n"
" RIF: Pagina 72, sezione 5.5\n"
+#, fuzzy, c-format
+msgid "Missing value on line %d!"
+msgstr "Valore mancante alla riga %d!\n"
+
+#, fuzzy, c-format
+msgid "Missing double quote on line %d!"
+msgstr "Doppi apici mancanti alla riga %d!\n"
+
+#, fuzzy, c-format
+msgid "Bad option + choice on line %d!"
+msgstr "Opzione + scelta errata alla riga %d!\n"
+
+#, fuzzy
+msgid "Empty PPD file!"
+msgstr "Impossibile copiare il file PPD!"
+
+#, fuzzy, c-format
+msgid "Unable to set Windows printer driver (%d)!"
+msgstr "Impossibile configurare il driver di stampa di Windows (%d)!\n"
+
+#, fuzzy, c-format
+msgid "Unable to run \"%s\": %s\n"
+msgstr "cupsaddsmb: Impossibile eseguire \"%s\": %s\n"
+
+#, fuzzy, c-format
+msgid "Job #%d is already canceled - can't cancel."
+msgstr "L'operazione #%d è già annullata - impossibile annullare."
+
+#, c-format
+msgid "Bad notify-recipient URI \"%s\"!"
+msgstr ""
+
+#, c-format
+msgid "notify-recipient URI \"%s\" uses unknown scheme!"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "Bad notify-pull-method \"%s\"!"
+msgstr "port-monitor \"%s\" errato!"
+
+#, fuzzy, c-format
+msgid ""
+" **FAIL** %s must be 1284DeviceID!\n"
+" REF: Page 72, section 5.5\n"
+msgstr ""
+" **FAIL** 1284DeviceId deve essere 1284DeviceID!\n"
+" RIF: Pagina 72, sezione 5.5\n"
+
+#, fuzzy, c-format
+msgid "lpoptions: Unable to get PPD file for %s: %s\n"
+msgstr "lpoptions: Impossibile aprire il file PPD per %s!\n"
msgstr ""
"Project-Id-Version: CUPS 1.2\n"
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
-"POT-Creation-Date: 2006-05-21 10:08-0400\n"
-"PO-Revision-Date: 2006-06-27 22:55+0900\n"
+"POT-Creation-Date: 2007-01-23 09:19-0500\n"
+"PO-Revision-Date: 2007-01-27 13:43+0900\n"
"Last-Translator: Kenshi Muto <kmuto@debian.org>\n"
"Language-Team: Japanese <LL@li.org>\n"
"MIME-Version: 1.0\n"
msgstr ""
" **FAIL** 1284DeviceId は 1284DeviceID でなければなりません!\n"
" REF: 72 ページ、セクション 5.5\n"
+
+#, c-format
+msgid "Missing value on line %d!"
+msgstr "%d 行に値がありません!"
+
+#, c-format
+msgid "Missing double quote on line %d!"
+msgstr "%d 行に二重引用符がありません!"
+
+#, c-format
+msgid "Bad option + choice on line %d!"
+msgstr "%d 行に不正なオプションと選択があります!"
+
+msgid "Empty PPD file!"
+msgstr "PPD ファイルが空です!"
+
+#, c-format
+msgid "Unable to set Windows printer driver (%d)!"
+msgstr "Windows プリンタドライバを設定できません (%d)!"
+
+#, c-format
+msgid "Unable to run \"%s\": %s\n"
+msgstr "\"%s\" を実行できません: %s\n"
+
+#, c-format
+msgid "Job #%d is already canceled - can't cancel."
+msgstr "ジョブ #%d はすでにキャンセルされています - キャンセルできません。"
+
+#, c-format
+msgid "Bad notify-recipient URI \"%s\"!"
+msgstr "\"%s\" は不正な notify-recipient URI です!"
+
+#, c-format
+msgid "notify-recipient URI \"%s\" uses unknown scheme!"
+msgstr "notify-recipient URI \"%s\" には未知のスキームが使われています!"
+
+#, c-format
+msgid "Bad notify-pull-method \"%s\"!"
+msgstr "\"%s\" は無効な notify-pull-method です!"
+
+#, c-format
+msgid ""
+" **FAIL** %s must be 1284DeviceID!\n"
+" REF: Page 72, section 5.5\n"
+msgstr ""
+" **FAIL** %s は 1284DeviceID でなければなりません!\n"
+" REF: 72 ページ、セクション 5.5\n"
+
+#, c-format
+msgid "lpoptions: Unable to get PPD file for %s: %s\n"
+msgstr "lpoptions: %s の PPD ファイルを開くことができません!: %s\n"
msgstr ""
"Project-Id-Version: CUPS 1.2\n"
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
-"POT-Creation-Date: 2006-05-21 10:08-0400\n"
+"POT-Creation-Date: 2007-01-23 09:19-0500\n"
"PO-Revision-Date: 2006-05-09 17:20+0200\n"
"Last-Translator: Piotr Drąg <raven@pmail.pl>\n"
"Language-Team: Polish <pl@li.org>\n"
msgstr ""
" **ZAWIÓDŁ** Błędny %s wybór %s!\n"
" REF: strona 122, sekcja 5.17\n"
+
+#, fuzzy, c-format
+msgid "Missing value on line %d!"
+msgstr "Brakująca wartość w wierszu %d!\n"
+
+#, fuzzy, c-format
+msgid "Missing double quote on line %d!"
+msgstr "Brakujący cudzysłów w wierszu %d!\n"
+
+#, fuzzy, c-format
+msgid "Bad option + choice on line %d!"
+msgstr "Błędna opcja + wybór w wierszu %d!\n"
+
+#, fuzzy
+msgid "Empty PPD file!"
+msgstr "Nie można skopiować pliku PPD!"
+
+#, fuzzy, c-format
+msgid "Unable to set Windows printer driver (%d)!"
+msgstr "Nie można ustawić sterownika drukarki Windows (%d)!\n"
+
+#, fuzzy, c-format
+msgid "Unable to run \"%s\": %s\n"
+msgstr "cupsaddsmb: nie można uruchomić \"%s\": %s\n"
+
+#, fuzzy, c-format
+msgid "Job #%d is already canceled - can't cancel."
+msgstr "Zadanie #%d zostało już anulowane - nie można anulować."
+
+#, c-format
+msgid "Bad notify-recipient URI \"%s\"!"
+msgstr ""
+
+#, c-format
+msgid "notify-recipient URI \"%s\" uses unknown scheme!"
+msgstr ""
+
+#, fuzzy, c-format
+msgid "Bad notify-pull-method \"%s\"!"
+msgstr "Błędne \"%s\" port-monitor!"
+
+#, fuzzy, c-format
+msgid ""
+" **FAIL** %s must be 1284DeviceID!\n"
+" REF: Page 72, section 5.5\n"
+msgstr ""
+" **ZAWIÓDŁ** Błędny %s wybór %s!\n"
+" REF: strona 122, sekcja 5.17\n"
+
+#, fuzzy, c-format
+msgid "lpoptions: Unable to get PPD file for %s: %s\n"
+msgstr "lpoptions: nie można otworzyć pliku PPD dla %s!\n"
# WWW: http://www.cups.org
#
# Translated by:
-# Daniel Nylander <po@danielnylander.se>, 2006.
+# Daniel Nylander <po@danielnylander.se>, 2006, 2007.
msgid ""
msgstr ""
"Project-Id-Version: CUPS 1.2\n"
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
-"POT-Creation-Date: 2006-05-21 10:08-0400\n"
-"PO-Revision-Date: 2006-04-16 00:55+0100\n"
+"POT-Creation-Date: 2007-01-23 09:19-0500\n"
+"PO-Revision-Date: 2007-01-23 16:23+0100\n"
"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"MIME-Version: 1.0\n"
msgid "Auto"
msgstr "Auto"
-msgid ""
-"Enter your username and password or the root username and password to access "
-"this page."
-msgstr ""
-"Ange ditt användarnamn och lösenord eller root-användnamnet och lösenord för "
-"att komma åt denna sida."
+msgid "Enter your username and password or the root username and password to access this page."
+msgstr "Ange ditt användarnamn och lösenord eller root-användnamnet och lösenord för att komma åt denna sida."
msgid "You must use a https: URL to access this page."
msgstr "Du måste använda en https:-url för att komma åt denna sida."
msgid "The printer or class was not found."
msgstr "Skrivaren eller klassen hittades inte."
-msgid ""
-"The printer-uri must be of the form \"ipp://HOSTNAME/classes/CLASSNAME\"."
-msgstr ""
-"Printer-uri måste vara i formatet \"ipp://VÄRDNAMN/classes/KLASSNAMN\"."
+msgid "The printer-uri must be of the form \"ipp://HOSTNAME/classes/CLASSNAME\"."
+msgstr "Printer-uri måste vara i formatet \"ipp://VÄRDNAMN/classes/KLASSNAMN\"."
#, c-format
msgid "The printer-uri \"%s\" contains invalid characters."
msgid "The notify-user-data value is too large (%d > 63 octets)!"
msgstr "Värdet för notify-user-data är för stort (%d > 63 okteter)!"
-msgid ""
-"The notify-lease-duration attribute cannot be used with job subscriptions."
-msgstr ""
-"Attributet notify-lease-duration kan inte användas med jobbprenumerationer."
+msgid "The notify-lease-duration attribute cannot be used with job subscriptions."
+msgstr "Attributet notify-lease-duration kan inte användas med jobbprenumerationer."
-msgid ""
-"The printer-uri must be of the form \"ipp://HOSTNAME/printers/PRINTERNAME\"."
-msgstr ""
-"Printer-uri måste vara i formatet \"ipp://VÄRDNAMN/printers/SKRIVARNAMN\"."
+msgid "The printer-uri must be of the form \"ipp://HOSTNAME/printers/PRINTERNAME\"."
+msgstr "Printer-uri måste vara i formatet \"ipp://VÄRDNAMN/printers/SKRIVARNAMN\"."
#, c-format
msgid "A class named \"%s\" already exists!"
msgstr "En klass med namnet \"%s\" finns redan!"
#, c-format
-msgid ""
-"File device URIs have been disabled! To enable, see the FileDevice directive "
-"in \"%s/cupsd.conf\"."
-msgstr ""
-"Felenhets URI:er har blivit inaktiverat! För att aktivera, se direktivet "
-"FileDevice i \"%s/cupsd.conf\"."
+msgid "File device URIs have been disabled! To enable, see the FileDevice directive in \"%s/cupsd.conf\"."
+msgstr "Felenhets URI:er har blivit inaktiverat! För att aktivera, se direktivet FileDevice i \"%s/cupsd.conf\"."
#, c-format
msgid "Bad device-uri \"%s\"!"
msgstr "lpq: Okänt mål \"%s\"!\n"
#, c-format
-msgid ""
-"lp: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgid "lp: error - %s environment variable names non-existent destination \"%s\"!\n"
msgstr "lp: fel - miljövariabeln %s namnger icke-existerande mål \"%s\"!\n"
msgid "lpq: error - no default destination available.\n"
msgid "lpq: get-jobs failed: %s\n"
msgstr "lpq: get-jobs misslyckades: %s\n"
-msgid ""
-"Rank Owner Pri Job Files Total Size\n"
-msgstr ""
-"Rank Ägare Pri Jobb Filer Total storlek\n"
+msgid "Rank Owner Pri Job Files Total Size\n"
+msgstr "Rank Ägare Pri Jobb Filer Total storlek\n"
msgid "Rank Owner Job File(s) Total Size\n"
-msgstr ""
-"Rank Ägare Jobb Fil(er) Total storlek\n"
+msgstr "Rank Ägare Jobb Fil(er) Total storlek\n"
#, c-format
msgid "%s: %-33.33s [job %d localhost]\n"
msgstr "lpr: fel - förväntade värde efter flaggan -%c!\n"
#, c-format
-msgid ""
-"lpr: warning - '%c' format modifier not supported - output may not be "
-"correct!\n"
-msgstr ""
-"lpr: varning - \"%c\"-formatmodifierare stöds inte - utmatning kanske inte "
-"blir korrekt!\n"
+msgid "lpr: warning - '%c' format modifier not supported - output may not be correct!\n"
+msgstr "lpr: varning - \"%c\"-formatmodifierare stöds inte - utmatning kanske inte blir korrekt!\n"
msgid "lpr: error - expected option=value after -o option!\n"
msgstr "lpr: fel - förväntade alternativ=värde efter flaggan -o!\n"
msgstr "lpr: fel - för många filer - \"%s\"\n"
#, c-format
-msgid ""
-"lpr: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgid "lpr: error - %s environment variable names non-existent destination \"%s\"!\n"
msgstr "lpr: fel - miljövariabeln %s namnger icke-existerande mål \"%s\"!\n"
msgid "lpr: error - no default destination available.\n"
#, c-format
msgid "cupsaddsmb: Missing double quote on line %d!\n"
-msgstr "cupsaddsmb: Saknar citattecken på rad %d!\n"
+msgstr "cupsaddsmb: Saknar citationstecken på rad %d!\n"
#, c-format
msgid "cupsaddsmb: Bad option + choice on line %d!\n"
#, c-format
msgid "cupsaddsmb: Unable to copy Windows 2000 printer driver files (%d)!\n"
-msgstr ""
-"cupsaddsmb: Kunde inte kopiera filer för Windows 2000-skrivardrivrutin (%"
-"d)!\n"
+msgstr "cupsaddsmb: Kunde inte kopiera filer för Windows 2000-skrivardrivrutin (%d)!\n"
#, c-format
msgid "cupsaddsmb: Unable to copy CUPS printer driver files (%d)!\n"
#, c-format
msgid "cupsaddsmb: Unable to install Windows 2000 printer driver files (%d)!\n"
-msgstr ""
-"cupsaddsmb: Kunde inte installera filer för Windows 2000-skrivardrivrutin (%"
-"d)!\n"
+msgstr "cupsaddsmb: Kunde inte installera filer för Windows 2000-skrivardrivrutin (%d)!\n"
#, c-format
msgid "cupsaddsmb: Unable to copy Windows 9x printer driver files (%d)!\n"
-msgstr ""
-"cupsaddsmb: Kunde inte kopiera filer för Windows 9x-skrivardrivrutin (%d)!\n"
+msgstr "cupsaddsmb: Kunde inte kopiera filer för Windows 9x-skrivardrivrutin (%d)!\n"
#, c-format
msgid "cupsaddsmb: Unable to install Windows 9x printer driver files (%d)!\n"
-msgstr ""
-"cupsaddsmb: Kunde inte installera filer för Windows 9x-skrivardrivrutin (%"
-"d)!\n"
+msgstr "cupsaddsmb: Kunde inte installera filer för Windows 9x-skrivardrivrutin (%d)!\n"
#, c-format
msgid "cupsaddsmb: Unable to set Windows printer driver (%d)!\n"
#, c-format
msgid ""
-" WARN Duplex option keyword %s should be named Duplex or "
-"JCLDuplex!\n"
+" WARN Duplex option keyword %s should be named Duplex or JCLDuplex!\n"
" REF: Page 122, section 5.17\n"
msgstr ""
-" VARN Nyckelord för Duplex-alternativet %s bör vara Duplex eller "
-"JCLDuplex!\n"
+" VARN Nyckelord för Duplex-alternativet %s bör vara Duplex eller JCLDuplex!\n"
" REF: Sida 122, sektion 5.17\n"
msgid " WARN Default choices conflicting!\n"
" WARN Protocols contains PJL but JCL attributes are not set.\n"
" REF: Pages 78-79, section 5.7.\n"
msgstr ""
-" VARN Protokollen innehåller PJL men JCL-attributen är inte "
-"inställda.\n"
+" VARN Protokollen innehåller PJL men JCL-attributen är inte inställda.\n"
" REF: Sidorna 78-79, sektion 5.7.\n"
#, c-format
" (begränsare=\"%s %s %s %s\")\n"
msgid ""
-"Usage: cupstestppd [-q] [-r] [-v[v]] filename1.ppd[.gz] [... filenameN.ppd[."
-"gz]]\n"
+"Usage: cupstestppd [-q] [-r] [-v[v]] filename1.ppd[.gz] [... filenameN.ppd[.gz]]\n"
" program | cupstestppd [-q] [-r] [-v[v]] -\n"
msgstr ""
-"Användning: cupstestppd [-q] [-r] [-v[v]] filnamn1.ppd[.gz] [... filnamnN.ppd"
-"[.gz]]\n"
+"Användning: cupstestppd [-q] [-r] [-v[v]] filnamn1.ppd[.gz] [... filnamnN.ppd[.gz]]\n"
" program | cupstestppd [-q] [-r] [-v[v]] -\n"
msgid "lpstat: Need \"completed\" or \"not-completed\" after -W!\n"
msgstr "systemstandardmål: %s\n"
#, c-format
-msgid ""
-"lpstat: error - %s environment variable names non-existent destination \"%s"
-"\"!\n"
+msgid "lpstat: error - %s environment variable names non-existent destination \"%s\"!\n"
msgstr "lpstat: fel - miljövariabeln %s namnger icke-existerande mål \"%s\"!\n"
msgid "no system default destination\n"
msgid "\tCharset sets:\n"
msgstr "\tTeckenkodningar:\n"
-# Pitch är ett svårt att kort förklara..
+# Pitch är ett svårt att kort förklara..
msgid "\tDefault pitch:\n"
msgstr "\tStandardavstånd mellan bildpunkter:\n"
"\n"
" lpadmin [-h server] -d mål\n"
" lpadmin [-h server] -x mål\n"
-" lpadmin [-h server] -p skrivare [-c lägg-till-klass] [-i gränssnitt] [-m "
-"modell]\n"
+" lpadmin [-h server] -p skrivare [-c lägg-till-klass] [-i gränssnitt] [-m modell]\n"
" [-r ta-bort-klass] [-v enhet] [-D beskrivning]\n"
" [-P ppd-fil] [-o namn=värde]\n"
-" [-u allow:användare,användare] [-u deny:användare,"
-"användare]\n"
+" [-u allow:användare,användare] [-u deny:användare,användare]\n"
"\n"
#, c-format
msgid "lp: Unknown option '%c'!\n"
msgstr "lp: Okänd flagga \"%c\"!\n"
-msgid ""
-"lp: Error - cannot print from stdin if files or a job ID are provided!\n"
-msgstr ""
-"lp: Fel - kan inte skriva ut från standard in om filer eller ett jobb-id "
-"anges!\n"
+msgid "lp: Error - cannot print from stdin if files or a job ID are provided!\n"
+msgstr "lp: Fel - kan inte skriva ut från standard in om filer eller ett jobb-id anges!\n"
#, c-format
msgid "lp: Unable to access \"%s\" - %s\n"
#, c-format
msgid "lppasswd: failed to backup old password file: %s\n"
-msgstr ""
-"lppasswd: misslyckades med att säkerhetskopiera gamla lösenordsfilen: %s\n"
+msgstr "lppasswd: misslyckades med att säkerhetskopiera gamla lösenordsfilen: %s\n"
#, c-format
msgid "lppasswd: failed to rename password file: %s\n"
msgid "Add Class"
msgstr "Lägg till klass"
-msgid ""
-"The class name may only contain up to 127 printable characters and may not "
-"contain spaces, slashes (/), or the pound sign (#)."
-msgstr ""
-"Klassnamnet får endast innehålla upp till 127 skrivbara tecken och får inte "
-"innehålla blanksteg, snedstreck (/) eller fyrkantstecknet (#)."
+msgid "The class name may only contain up to 127 printable characters and may not contain spaces, slashes (/), or the pound sign (#)."
+msgstr "Klassnamnet får endast innehålla upp till 127 skrivbara tecken och får inte innehålla blanksteg, snedstreck (/) eller fyrkantstecknet (#)."
msgid "Unable to modify class:"
msgstr "Kunde inte ändra klass:"
msgid "Add Printer"
msgstr "Lägg till skrivare"
-msgid ""
-"The printer name may only contain up to 127 printable characters and may not "
-"contain spaces, slashes (/), or the pound sign (#)."
-msgstr ""
-"Skrivarnamnet får endast innehålla upp till 127 skrivbara tecken och får "
-"inte innehålla blanksteg, snedstreck (/) eller fyrkantstecknet (#)."
+msgid "The printer name may only contain up to 127 printable characters and may not contain spaces, slashes (/), or the pound sign (#)."
+msgstr "Skrivarnamnet får endast innehålla upp till 127 skrivbara tecken och får inte innehålla blanksteg, snedstreck (/) eller fyrkantstecknet (#)."
msgid "Unable to get list of printer drivers:"
msgstr "Kunde inte få tag på listan av skrivardrivrutiner:"
msgstr "cupsaddsmb: Inga Windows-skrivardrivrutiner är installerade!\n"
msgid "cupsaddsmb: Warning, no Windows 2000 printer drivers are installed!\n"
-msgstr ""
-"cupsaddsmb: Varning, inga Windows 2000-skrivardrivrutiner är installerade!\n"
+msgstr "cupsaddsmb: Varning, inga Windows 2000-skrivardrivrutiner är installerade!\n"
#, c-format
msgid "lpadmin: Printer %s is already a member of class %s.\n"
msgstr "Användning: lpmove jobb/källa mål\n"
msgid "lpstat: Need \"completed\", \"not-completed\", or \"all\" after -W!\n"
-msgstr ""
-"lpstat: Behöver \"completed\", \"not-completed\" eller \"all\" efter -W!\n"
+msgstr "lpstat: Behöver \"completed\", \"not-completed\" eller \"all\" efter -W!\n"
#, c-format
msgid "%s accepting requests since %s\n"
msgstr "%s: Fel - förväntade värdnamn efter flaggan \"-h\"!\n"
#, c-format
-msgid ""
-"%s: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgid "%s: error - %s environment variable names non-existent destination \"%s\"!\n"
msgstr "%s: fel - miljövariabeln %s namnger icke-existerande mål \"%s\"!\n"
#, c-format
msgid "%s: error - no default destination available.\n"
msgstr "%s: fel - inget standardmål tillgängligt.\n"
-msgid ""
-"Usage: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]\n"
-msgstr ""
-"Användning: lpq [-P mål] [-U användarnamn] [-h värdnamn[:port]] [-l] "
-"[+intervall]\n"
+msgid "Usage: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]\n"
+msgstr "Användning: lpq [-P mål] [-U användarnamn] [-h värdnamn[:port]] [-l] [+intervall]\n"
#, c-format
msgid "%s: Error - expected hostname after '-H' option!\n"
msgstr "%s: Fel - förväntade värde efter flaggan \"-%c\"!\n"
#, c-format
-msgid ""
-"%s: Warning - '%c' format modifier not supported - output may not be "
-"correct!\n"
-msgstr ""
-"%s: Varning - \"'%c\"- formatmodifieraren stöds inte - utmatning kanske inte "
-"blir korrekt!\n"
+msgid "%s: Warning - '%c' format modifier not supported - output may not be correct!\n"
+msgstr "%s: Varning - \"'%c\"- formatmodifieraren stöds inte - utmatning kanske inte blir korrekt!\n"
#, c-format
msgid "%s: error - expected option=value after '-o' option!\n"
msgstr "%s: Fel - för många filer - \"%s\"\n"
#, c-format
-msgid ""
-"%s: Error - %s environment variable names non-existent destination \"%s\"!\n"
+msgid "%s: Error - %s environment variable names non-existent destination \"%s\"!\n"
msgstr "%s: Fel - miljövariabeln %s namnger icke-existerande mål \"%s\"!\n"
#, c-format
msgstr "%s: Varning - flagga för innehållstyp ignorerades!\n"
#, c-format
-msgid ""
-"%s: Error - cannot print from stdin if files or a job ID are provided!\n"
-msgstr ""
-"%s: Fel - kan inte skriva ut från standard in om filer eller ett jobb-id "
-"anges!\n"
+msgid "%s: Error - cannot print from stdin if files or a job ID are provided!\n"
+msgstr "%s: Fel - kan inte skriva ut från standard in om filer eller ett jobb-id anges!\n"
#, c-format
-msgid ""
-"%s: Error - need \"completed\", \"not-completed\", or \"all\" after '-W' "
-"option!\n"
-msgstr ""
-"%s: Fel - behöver \"completed\", \"not-completed\" eller \"all\" efter "
-"flaggan \"-W\"!\n"
+msgid "%s: Error - need \"completed\", \"not-completed\", or \"all\" after '-W' option!\n"
+msgstr "%s: Fel - behöver \"completed\", \"not-completed\" eller \"all\" efter flaggan \"-W\"!\n"
#, c-format
msgid "%s: Error - expected destination after '-b' option!\n"
msgid " WARN Line %d only contains whitespace!\n"
msgstr " VARN Rad %d innehåller endast blanktecken!\n"
-msgid ""
-" WARN File contains a mix of CR, LF, and CR LF line endings!\n"
-msgstr ""
-" VARN Filen innehåller en blandning av CR, LF och CR LF-radslut!\n"
+msgid " WARN File contains a mix of CR, LF, and CR LF line endings!\n"
+msgstr " VARN Filen innehåller en blandning av CR, LF och CR LF-radslut!\n"
-msgid ""
-" WARN Non-Windows PPD files should use lines ending with only LF, "
-"not CR LF!\n"
-msgstr ""
-" VARN Icke-Windows PPD-filer bör använda radslut med endast LF, "
-"inte CR LF!\n"
+msgid " WARN Non-Windows PPD files should use lines ending with only LF, not CR LF!\n"
+msgstr " VARN Icke-Windows PPD-filer bör använda radslut med endast LF, inte CR LF!\n"
msgid "Printer Maintenance"
msgstr "Skrivarunderhåll"
msgstr " **FEL** Saknar översättningssträng \"%s\" för flaggan %s!\n"
#, c-format
-msgid ""
-" **FAIL** Default translation string for option %s contains 8-bit "
-"characters!\n"
-msgstr ""
-" **FEL** Standardöversättningssträng för flaggan %s innehåller 8-"
-"bitars tecken!\n"
+msgid " **FAIL** Default translation string for option %s contains 8-bit characters!\n"
+msgstr " **FEL** Standardöversättningssträng för flaggan %s innehåller 8-bitars tecken!\n"
#, c-format
-msgid ""
-" **FAIL** Missing \"%s\" translation string for option %s, choice %s!\n"
-msgstr ""
-" **FEL** Saknar översättningssträng \"%s\" för flaggan %s, val %s!\n"
+msgid " **FAIL** Missing \"%s\" translation string for option %s, choice %s!\n"
+msgstr " **FEL** Saknar översättningssträng \"%s\" för flaggan %s, val %s!\n"
#, c-format
-msgid ""
-" **FAIL** Default translation string for option %s choice %s contains "
-"8-bit characters!\n"
-msgstr ""
-" **FEL** Standardöversättningssträng för flaggan %s val %s innehåller "
-"8-bitars tecken!\n"
+msgid " **FAIL** Default translation string for option %s choice %s contains 8-bit characters!\n"
+msgstr " **FEL** Standardöversättningssträng för flaggan %s val %s innehåller 8-bitars tecken!\n"
#, c-format
msgid " **FAIL** Bad cupsFilter value \"%s\"!\n"
#, c-format
msgid "Missing double quote on line %d!\n"
-msgstr "Saknar citattecken på rad %d!\n"
+msgstr "Saknar citationstecken på rad %d!\n"
#, c-format
msgid "Bad option + choice on line %d!\n"
#, c-format
msgid "Unable to install Windows 2000 printer driver files (%d)!\n"
-msgstr ""
-"Kunde inte installera filer för Windows 2000-skrivardrivrutiner (%d)!\n"
+msgstr "Kunde inte installera filer för Windows 2000-skrivardrivrutiner (%d)!\n"
#, c-format
msgid "Unable to copy Windows 9x printer driver files (%d)!\n"
msgstr "Jobb #%d är redan färdigt - kan inte avbryta."
#, c-format
-msgid ""
-"You must access this page using the URL <A HREF=\"https://%s:%d%s\">https://%"
-"s:%d%s</A>."
-msgstr ""
-"Du måste komma åt sidan med url:en <A HREF=\"https://%s:%d%s\">https://%s:%d%"
-"s</A>."
+msgid "You must access this page using the URL <A HREF=\"https://%s:%d%s\">https://%s:%d%s</A>."
+msgstr "Du måste komma åt sidan med url:en <A HREF=\"https://%s:%d%s\">https://%s:%d%s</A>."
#, c-format
msgid "Unsupported format '%s'!"
"\n"
" -h Show program usage\n"
"\n"
-" Note: this program only validates the DSC comments, not the PostScript "
-"itself.\n"
+" Note: this program only validates the DSC comments, not the PostScript itself.\n"
msgstr ""
"Användning: cupstestdsc [flaggor] filnamn.ps [... filnamn.ps]\n"
" cupstestdsc [flaggor] -\n"
"\n"
" -h Visa programanvändning\n"
"\n"
-" Notera: detta program validerar endast DSC-kommentarer, inte själva "
-"PostScript.\n"
+" Notera: detta program validerar endast DSC-kommentarer, inte själva PostScript.\n"
#, c-format
msgid "Password for %s on %s? "
-msgstr ""
+msgstr "Lösenord för %s på %s? "
-#, fuzzy
msgid ""
" **FAIL** 1284DeviceId must be 1284DeviceID!\n"
" REF: Page 72, section 5.5\n"
msgstr ""
-" **FEL** Felaktigt %s val %s!\n"
-" REF: Sida 122, sektion 5.17\n"
+" **FEL** 1284DeviceId måste vara 1284DeviceID!\n"
+" REF: Sida 72, sektion 5.5\n"
+
+#, c-format
+msgid "Missing value on line %d!"
+msgstr "Saknar värde på rad %d!"
+
+#, c-format
+msgid "Missing double quote on line %d!"
+msgstr "Saknar citationstecken på rad %d!\n"
+
+#, c-format
+msgid "Bad option + choice on line %d!"
+msgstr "Felaktigt alternativ + val på rad %d!"
+
+msgid "Empty PPD file!"
+msgstr "Tom PPD-fil!"
+
+#, c-format
+msgid "Unable to set Windows printer driver (%d)!"
+msgstr "Kunde inte ställa in Windows-skrivardrivrutin (%d)!"
+
+#, c-format
+msgid "Unable to run \"%s\": %s\n"
+msgstr "Kunde inte köra \"%s\": %s\n"
+
+#, c-format
+msgid "Job #%d is already canceled - can't cancel."
+msgstr "Jobb #%d är redan avbrutet - kan inte avbryta."
+
+#, c-format
+msgid "Bad notify-recipient URI \"%s\"!"
+msgstr "Felaktig URI för notify-recipient \"%s\"!"
+
+#, c-format
+msgid "notify-recipient URI \"%s\" uses unknown scheme!"
+msgstr "URI för notify-recipient \"%s\" använder okänt schema!"
+
+#, c-format
+msgid "Bad notify-pull-method \"%s\"!"
+msgstr "Felaktig notify-pull-method \"%s\"!"
+
+#, c-format
+msgid ""
+" **FAIL** %s must be 1284DeviceID!\n"
+" REF: Page 72, section 5.5\n"
+msgstr ""
+" **FEL** %s måste vara 1284DeviceID!\n"
+" REF: Sida 72, sektion 5.5\n"
+
+#, c-format
+msgid "lpoptions: Unable to get PPD file for %s: %s\n"
+msgstr "lpoptions: Kunde inte hämta PPD-fil för %s: %s\n"
+
#
-# "$Id: cups.list.in 6118 2006-11-16 13:34:44Z mike $"
+# "$Id: cups.list.in 6234 2007-02-05 20:25:50Z mike $"
#
# ESP Package Manager (EPM) file list for the Common UNIX Printing
# System (CUPS).
#
-# Copyright 1997-2006 by Easy Software Products, all rights reserved.
+# Copyright 1997-2007 by Easy Software Products, all rights reserved.
#
# These coded instructions, statements, and computer programs are the
# property of Easy Software Products and are protected by Federal
# Product information
%product Common UNIX Printing System
-%copyright 1993-2006 by Easy Software Products, All Rights Reserved.
+%copyright 1993-2007 by Easy Software Products, All Rights Reserved.
%vendor Easy Software Products
-%license LICENSE.txt
-%readme packaging/cups.readme
+#%license LICENSE.txt
+%readme LICENSE.txt
%format rpm
# Red Hat and their epochs...
%version 1:@CUPS_VERSION@
%subpackage et
%description Estonian support
+%subpackage fr
+%description French support
+
%subpackage it
%description Italian support
f 0644 root sys $LOCALEDIR/es/cups_es.po locale/cups_es.po
%subpackage et
f 0644 root sys $LOCALEDIR/et/cups_et.po locale/cups_et.po
+%subpackage fr
+f 0644 root sys $LOCALEDIR/fr/cups_fr.po locale/cups_fr.po
%subpackage it
f 0644 root sys $LOCALEDIR/it/cups_it.po locale/cups_it.po
%subpackage ja
%subpackage et
d 0755 root sys $DATADIR/templates/et
f 0644 root sys $DATADIR/templates/et templates/et/*.tmpl
+%subpackage fr
+d 0755 root sys $DATADIR/templates/fr
+f 0644 root sys $DATADIR/templates/fr templates/fr/*.tmpl
%subpackage it
d 0755 root sys $DATADIR/templates/it
f 0644 root sys $DATADIR/templates/it templates/it/*.tmpl
f 0644 root sys $DOCDIR/et doc/et/*.html
d 0755 root sys $DOCDIR/et/images -
f 0644 root sys $DOCDIR/et/images doc/et/images/*.gif
+%subpackage fr
+d 0755 root sys $DOCDIR/fr
+f 0644 root sys $DOCDIR/fr doc/fr/*.html
+d 0755 root sys $DOCDIR/fr/images -
+f 0644 root sys $DOCDIR/fr/images doc/fr/images/*.gif
%subpackage it
d 0755 root sys $DOCDIR/it
f 0644 root sys $DOCDIR/it doc/it/*.html
%subpackage
#
-# End of "$Id: cups.list.in 6118 2006-11-16 13:34:44Z mike $".
+# End of "$Id: cups.list.in 6234 2007-02-05 20:25:50Z mike $".
#
#
-# "$Id: cups.spec.in 6118 2006-11-16 13:34:44Z mike $"
+# "$Id: cups.spec.in 6240 2007-02-06 16:09:05Z mike $"
#
# RPM "spec" file for the Common UNIX Printing System (CUPS).
#
Group: System Environment/Daemons
Requires: %{name} = %{epoch}:%{version}
+%package fr
+Summary: Common UNIX Printing System - French support
+Group: System Environment/Daemons
+Requires: %{name} = %{epoch}:%{version}
+
%package it
Summary: Common UNIX Printing System - Italian support
Group: System Environment/Daemons
The Common UNIX Printing System provides a portable printing layer for
UNIX® operating systems. This package provides Estonian support.
+%description fr
+The Common UNIX Printing System provides a portable printing layer for
+UNIX® operating systems. This package provides French support.
+
%description it
The Common UNIX Printing System provides a portable printing layer for
UNIX® operating systems. This package provides Italian support.
/usr/share/cups/templates/et/*
/usr/share/locale/et/cups_et.po
+%files fr
+%defattr(-,root,root)
+%dir /usr/share/doc/cups/fr
+/usr/share/doc/cups/fr/index.html
+%dir /usr/share/doc/cups/fr/images
+/usr/share/doc/cups/fr/images/*
+%dir /usr/share/cups/templates/fr
+/usr/share/cups/templates/fr/*
+/usr/share/locale/fr/cups_fr.po
+
%files it
%defattr(-,root,root)
%dir /usr/share/doc/cups/it
#
-# End of "$Id: cups.spec.in 6118 2006-11-16 13:34:44Z mike $".
+# End of "$Id: cups.spec.in 6240 2007-02-06 16:09:05Z mike $".
#
break;
}
+ // Tell CUPS pstops filter not to do its own rotation...
+ writePSFmt("%%cupsRotation: %d\n", pageRotate);
+
writePSFmt("%%Producer: xpdf/pdftops %s\n", xpdfVersion);
xref->getDocInfo(&info);
if (info.isDict() && info.dictLookup("Creator", &obj1)->isString()) {
} else {
rotate = (360 - state->getRotate()) % 360;
if (rotate == 0 || rotate == 180) {
- if (width > height && width > imgWidth) {
+ if ((width > height && imgWidth < imgHeight) ||
+ (height > width && imgHeight < imgWidth)) {
rotate += 90;
landscape = gTrue;
} else {
landscape = gFalse;
}
} else { // rotate == 90 || rotate == 270
- if (height > width && height > imgWidth) {
+ if ((width > height && imgWidth < imgHeight) ||
+ (height > width && imgHeight < imgWidth)) {
rotate = 270 - rotate;
landscape = gTrue;
} else {
/*
- * "$Id: client.c 6111 2006-11-15 20:28:39Z mike $"
+ * "$Id: client.c 6247 2007-02-07 20:54:37Z mike $"
*
* Client routines for the Common UNIX Printing System (CUPS) scheduler.
*
* cupsdWriteClient() - Write data to a client as needed.
* check_if_modified() - Decode an "If-Modified-Since" line.
* encrypt_client() - Enable encryption for the client...
- * get_cdsa_server_certs() - Convert a keychain name into the CFArrayRef
+ * get_cdsa_certificate() - Convert a keychain name into the CFArrayRef
* required by SSLSetCertificate.
* get_file() - Get a filename and state info.
* install_conf_file() - Install a configuration file.
#ifdef HAVE_CDSASSL
# include <Security/Security.h>
+# ifdef HAVE_SECIDENTITYSEARCHPRIV_H
+# include <Security/SecIdentitySearchPriv.h>
+# else /* Declare prototype for function in that header... */
+extern OSStatus SecIdentitySearchCreateWithPolicy(SecPolicyRef policy,
+ CFStringRef idString, CSSM_KEYUSE keyUsage,
+ CFTypeRef keychainOrArray,
+ Boolean returnOnlyValidIdentities,
+ SecIdentitySearchRef* searchRef);
+# endif /* HAVE_SECIDENTITYSEARCHPRIV_H */
+# ifdef HAVE_SECPOLICYPRIV_H
+# include <Security/SecPolicyPriv.h>
+# else /* Declare prototype for function in that header... */
+extern OSStatus SecPolicySetValue(SecPolicyRef policyRef,
+ const CSSM_DATA *value);
+# endif /* HAVE_SECPOLICYPRIV_H */
# ifdef HAVE_SECBASEPRIV_H
# include <Security/SecBasePriv.h>
-# else
- extern const char *cssmErrorString(int error);
+# else /* Declare prototype for function in that header... */
+extern const char *cssmErrorString(int error);
# endif /* HAVE_SECBASEPRIV_H */
#endif /* HAVE_CDSASSL */
+
#ifdef HAVE_GNUTLS
# include <gnutls/x509.h>
#endif /* HAVE_GNUTLS */
static int encrypt_client(cupsd_client_t *con);
#endif /* HAVE_SSL */
#ifdef HAVE_CDSASSL
-static CFArrayRef get_cdsa_server_certs(void);
+static CFArrayRef get_cdsa_certificate(cupsd_client_t *con);
#endif /* HAVE_CDSASSL */
static char *get_file(cupsd_client_t *con, struct stat *filestats,
char *filename, int len);
struct stat *filestats, mime_type_t *type);
static int is_path_absolute(const char *path);
#ifdef HAVE_SSL
-static int make_certificate(void);
+static int make_certificate(cupsd_client_t *con);
#endif /* HAVE_SSL */
static int pipe_command(cupsd_client_t *con, int infile, int *outfile,
char *command, char *options, int root);
cupsdClearString(&con->filename);
cupsdClearString(&con->command);
cupsdClearString(&con->options);
+ cupsdClearString(&con->query_string);
if (con->request)
{
cupsdClearString(&con->command);
cupsdClearString(&con->options);
+ cupsdClearString(&con->query_string);
if (con->request)
{
con->servername, con->serverport, con->uri);
snprintf(redirect, sizeof(redirect),
- "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"3;https://%s:%d%s\">\n",
+ "<META HTTP-EQUIV=\"Refresh\" "
+ "CONTENT=\"3;URL=https://%s:%d%s\">\n",
con->servername, con->serverport, con->uri);
}
else
cupsdClearString(&con->command);
cupsdClearString(&con->options);
+ cupsdClearString(&con->query_string);
if (!con->http.keep_alive)
{
* Nope, make a self-signed certificate...
*/
- if (!make_certificate())
+ if (!make_certificate(con))
return (0);
}
* Nope, make a self-signed certificate...
*/
- if (!make_certificate())
+ if (!make_certificate(con))
return (0);
}
error = 0;
conn->session = NULL;
- conn->certsArray = get_cdsa_server_certs();
+ conn->certsArray = get_cdsa_certificate(con);
if (!conn->certsArray)
{
* No keychain (yet), make a self-signed certificate...
*/
- if (make_certificate())
- conn->certsArray = get_cdsa_server_certs();
+ if (make_certificate(con))
+ conn->certsArray = get_cdsa_certificate(con);
}
if (!conn->certsArray)
#ifdef HAVE_CDSASSL
/*
- * 'get_cdsa_server_certs()' - Convert a keychain name into the CFArrayRef
- * required by SSLSetCertificate.
- *
- * For now we assumes that there is exactly one SecIdentity in the
- * keychain - i.e. there is exactly one matching cert/private key pair.
- * In the future we will search a keychain for a SecIdentity matching a
- * specific criteria. We also skip the operation of adding additional
- * non-signing certs from the keychain to the CFArrayRef.
- *
- * To create a self-signed certificate for testing use the certtool.
- * Executing the following as root will do it:
- *
- * certtool c k=/Library/Keychains/System.keychain
+ * 'get_cdsa_certificate()' - Get a SSL/TLS certificate from the System keychain.
*/
-static CFArrayRef /* O - Array of certificates */
-get_cdsa_server_certs(void)
+static CFArrayRef /* O - Array of certificates */
+get_cdsa_certificate(cupsd_client_t *con) /* I - Client connection */
{
OSStatus err; /* Error info */
- SecKeychainRef kcRef; /* Keychain reference */
- SecIdentitySearchRef srchRef; /* Search reference */
+ SecKeychainRef keychain; /* Keychain reference */
+ SecIdentitySearchRef search; /* Search reference */
SecIdentityRef identity; /* Identity */
- CFArrayRef ca; /* Certificate array */
+ CFArrayRef certificates = NULL;
+ /* Certificate array */
- kcRef = NULL;
- srchRef = NULL;
- identity = NULL;
- ca = NULL;
- err = SecKeychainOpen(ServerCertificate, &kcRef);
+ if ((err = SecKeychainOpen(ServerCertificate, &keychain)))
+ {
+ cupsdLogMessage(CUPSD_LOG_ERROR, "Cannot open keychain \"%s\", %s",
+ ServerCertificate, cssmErrorString(err));
+ return (NULL);
+ }
- if (err)
- cupsdLogMessage(CUPSD_LOG_ERROR, "Cannot open keychain \"%s\", error %d.",
- ServerCertificate, (int)err);
- else
+# if HAVE_SECIDENTITYSEARCHCREATEWITHPOLICY
+ /*
+ * Use a policy to search for valid certificates who's common name matches the
+ * servername...
+ */
+
+ SecPolicySearchRef policy_search; /* Policy search ref */
+ SecPolicyRef policy; /* Policy ref */
+ CSSM_DATA options; /* Policy options */
+ CSSM_APPLE_TP_SSL_OPTIONS
+ ssl_options; /* SSL Option for hostname */
+
+
+ if ((err = SecPolicySearchCreate(CSSM_CERT_X_509v3, &CSSMOID_APPLE_TP_SSL,
+ NULL, &policy_search)))
{
- /*
- * Search for "any" identity matching specified key use;
- * in this app, we expect there to be exactly one.
- */
+ cupsdLogMessage(CUPSD_LOG_ERROR, "Cannot create a policy search reference");
+ CFRelease(keychain);
+ return (NULL);
+ }
- err = SecIdentitySearchCreate(kcRef, CSSM_KEYUSE_SIGN, &srchRef);
+ if ((err = SecPolicySearchCopyNext(policy_search, &policy)))
+ {
+ cupsdLogMessage(CUPSD_LOG_ERROR,
+ "Cannot find a policy to use for searching");
+ CFRelease(keychain);
+ CFRelease(policy_search);
+ return (NULL);
+ }
- if (err)
- cupsdLogMessage(CUPSD_LOG_DEBUG2,
- "Cannot find signing key in keychain \"%s\", error %d",
- ServerCertificate, (int)err);
- else
- {
- err = SecIdentitySearchCopyNext(srchRef, &identity);
+ memset(&ssl_options, 0, sizeof(ssl_options));
+ ssl_options.Version = CSSM_APPLE_TP_SSL_OPTS_VERSION;
+ ssl_options.ServerName = con->servername;
+ ssl_options.ServerNameLen = strlen(con->servername);
- if (err)
- cupsdLogMessage(CUPSD_LOG_DEBUG2,
+ options.Data = (uint8 *)&ssl_options;
+ options.Length = sizeof(ssl_options);
+
+ if ((err = SecPolicySetValue(policy, &options)))
+ {
+ cupsdLogMessage(CUPSD_LOG_ERROR,
+ "Cannot set policy value to use for searching");
+ CFRelease(keychain);
+ CFRelease(policy_search);
+ return (NULL);
+ }
+
+ err = SecIdentitySearchCreateWithPolicy(policy, NULL, CSSM_KEYUSE_SIGN,
+ keychain, FALSE, &search);
+# else
+ /*
+ * Assume there is exactly one SecIdentity in the keychain...
+ */
+
+ err = SecIdentitySearchCreate(keychain, CSSM_KEYUSE_SIGN, &search);
+# endif /* HAVE_SECIDENTITYSEARCHCREATEWITHPOLICY */
+
+ if (err)
+ cupsdLogMessage(CUPSD_LOG_DEBUG,
+ "Cannot create keychain search reference: %s",
+ cssmErrorString(err));
+ else
+ {
+ if ((err = SecIdentitySearchCopyNext(search, &identity)))
+ {
+ cupsdLogMessage(CUPSD_LOG_DEBUG,
"Cannot find signing key in keychain \"%s\", error %d",
ServerCertificate, (int)err);
+ }
+ else
+ {
+ if (CFGetTypeID(identity) != SecIdentityGetTypeID())
+ cupsdLogMessage(CUPSD_LOG_ERROR,
+ "SecIdentitySearchCopyNext CFTypeID failure!");
else
{
- if (CFGetTypeID(identity) != SecIdentityGetTypeID())
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "SecIdentitySearchCopyNext CFTypeID failure!");
- else
- {
- /*
- * Found one. Place it in a CFArray.
- * TBD: snag other (non-identity) certs from keychain and add them
- * to array as well.
- */
-
- ca = CFArrayCreate(NULL, (const void **)&identity, 1, &kCFTypeArrayCallBacks);
-
- if (ca == nil)
- cupsdLogMessage(CUPSD_LOG_ERROR, "CFArrayCreate error");
- }
-
- CFRelease(identity);
+ if ((certificates = CFArrayCreate(NULL, (const void **)&identity,
+ 1, &kCFTypeArrayCallBacks)) == NULL)
+ cupsdLogMessage(CUPSD_LOG_ERROR, "Cannot create certificate array");
}
- CFRelease(srchRef);
+ CFRelease(identity);
}
- CFRelease(kcRef);
+ CFRelease(search);
}
- return (ca);
+# if HAVE_SECIDENTITYSEARCHCREATEWITHPOLICY
+ CFRelease(policy);
+ CFRelease(policy_search);
+# endif /* HAVE_SECIDENTITYSEARCHCREATEWITHPOLICY */
+
+ return (certificates);
}
#endif /* HAVE_CDSASSL */
*/
if ((options = strchr(con->uri, '?')) != NULL)
+ {
options ++;
+ if (strchr(options, '='))
+ cupsdSetStringf(&(con->query_string), "QUERY_STRING=%s", options);
+ }
+
/*
* Check for known types...
*/
*/
static int /* O - 1 on success, 0 on failure */
-make_certificate(void)
+make_certificate(cupsd_client_t *con) /* I - Client connection */
{
#if defined(HAVE_LIBSSL) && defined(HAVE_WAITPID)
int pid, /* Process ID of command */
return (1);
#elif defined(HAVE_CDSASSL) && defined(HAVE_WAITPID)
- int pid, /* Process ID of command */
- status; /* Status of command */
- char command[1024], /* Command */
- keychain[1024], /* Keychain argument */
- *argv[5], /* Command-line arguments */
- *envp[MAX_ENV]; /* Environment variables */
+ int pid, /* Process ID of command */
+ status; /* Status of command */
+ char command[1024], /* Command */
+ *argv[4], /* Command-line arguments */
+ *envp[MAX_ENV + 1], /* Environment variables */
+ keychain[1024], /* Keychain argument */
+ infofile[1024]; /* Type-in information for cert */
+ cups_file_t *fp; /* Seed/info file */
+ int infofd; /* Info file descriptor */
/*
- * Run the "certtool" command to generate a self-signed certificate:
- *
- * certtool c Z k=ServerCertificate
+ * Run the "certtool" command to generate a self-signed certificate...
*/
if (!cupsFileFind("certtool", getenv("PATH"), 1, command, sizeof(command)))
return (0);
}
+ /*
+ * Create a file with the certificate information fields...
+ *
+ * Note: This assumes that the default questions are asked by the certtool
+ * command...
+ */
+
+ if ((fp = cupsTempFile2(infofile, sizeof(infofile))) == NULL)
+ {
+ cupsdLogMessage(CUPSD_LOG_ERROR,
+ "Unable to create certificate information file %s - %s",
+ infofile, strerror(errno));
+ return (0);
+ }
+
+ cupsFilePrintf(fp, "%s\nr\n\ny\nb\ns\ny\n%s\n\n\n\n\n%s\ny\n",
+ con->servername, con->servername, ServerAdmin);
+ cupsFileClose(fp);
+
cupsdLogMessage(CUPSD_LOG_INFO,
"Generating SSL server key and certificate...");
argv[0] = "certtool";
argv[1] = "c";
- argv[2] = "Z";
- argv[3] = keychain;
- argv[4] = NULL;
+ argv[2] = keychain;
+ argv[3] = NULL;
cupsdLoadEnv(envp, MAX_ENV);
- if (!cupsdStartProcess(command, argv, envp, -1, -1, -1, -1, 1, &pid))
+ infofd = open(infofile, O_RDONLY);
+
+ if (!cupsdStartProcess(command, argv, envp, infofd, -1, -1, -1, 1, &pid))
+ {
+ close(infofd);
+ unlink(infofile);
return (0);
+ }
+
+ close(infofd);
+ unlink(infofile);
while (waitpid(pid, &status, 0) < 0)
if (errno != EINTR)
http_user_agent[1024], /* HTTP_USER_AGENT environment variable */
lang[1024], /* LANG environment variable */
path_info[1024], /* PATH_INFO environment variable */
- *query_string, /* QUERY_STRING env variable */
remote_addr[1024], /* REMOTE_ADDR environment variable */
remote_host[1024], /* REMOTE_HOST environment variable */
remote_user[1024], /* REMOTE_USER environment variable */
"pipe_command: command=\"%s\", options=\"%s\"",
command, options ? options : "(null)");
- argv[0] = command;
- query_string = NULL;
+ argv[0] = command;
if (options)
strlcpy(argbuf, options, sizeof(argbuf));
path_info[0] = '\0';
}
- if (*commptr == '?' && con->operation == HTTP_GET)
+ cupsdLogMessage(CUPSD_LOG_INFO, "commptr=\"%s\"", commptr);
+
+ if (*commptr == '?' && con->operation == HTTP_GET && !con->query_string)
{
commptr ++;
- cupsdSetStringf(&query_string, "QUERY_STRING=%s", commptr);
+ cupsdSetStringf(&(con->query_string), "QUERY_STRING=%s", commptr);
}
argc = 1;
if (con->operation == HTTP_GET)
{
- for (i = 0; i < argc; i ++)
- cupsdLogMessage(CUPSD_LOG_DEBUG2, "argv[%d] = \"%s\"", i, argv[i]);
-
envp[envc ++] = "REQUEST_METHOD=GET";
- if (query_string)
+ if (con->query_string)
{
/*
* Add GET form variables after ?...
*/
- envp[envc ++] = query_string;
+ envp[envc ++] = con->query_string;
}
}
else
if (cupsdOpenPipe(fds))
{
- cupsdClearString(&query_string);
-
cupsdLogMessage(CUPSD_LOG_ERROR, "Unable to create pipes for CGI %s - %s",
argv[0], strerror(errno));
return (0);
close(fds[1]);
}
- cupsdClearString(&query_string);
-
return (pid);
}
/*
- * End of "$Id: client.c 6111 2006-11-15 20:28:39Z mike $".
+ * End of "$Id: client.c 6247 2007-02-07 20:54:37Z mike $".
*/
/*
- * "$Id: client.h 5932 2006-09-11 14:21:23Z mike $"
+ * "$Id: client.h 6205 2007-01-22 22:04:43Z mike $"
*
* Client definitions for the Common UNIX Printing System (CUPS) scheduler.
*
/* Localized URL/URI for GET/PUT */
*filename, /* Filename of output file */
*command, /* Command to run */
- *options; /* Options for command */
+ *options, /* Options for command */
+ *query_string; /* QUERY_STRING environment variable */
int file; /* Input/output file */
int file_ready; /* Input ready on file/pipe? */
int pipe_pid; /* Pipe process ID (or 0 if not a pipe) */
/*
- * End of "$Id: client.h 5932 2006-09-11 14:21:23Z mike $".
+ * End of "$Id: client.h 6205 2007-01-22 22:04:43Z mike $".
*/
/*
- * "$Id: conf.c 5905 2006-08-29 20:48:59Z mike $"
+ * "$Id: conf.c 6205 2007-01-22 22:04:43Z mike $"
*
* Configuration routines for the Common UNIX Printing System (CUPS).
*
* Get the address...
*/
- ip[0] = ip[1] = ip[2] = ip[2] = 0x00000000;
+ ip[0] = ip[1] = ip[2] = ip[3] = 0x00000000;
mask[0] = mask[1] = mask[2] = mask[3] = 0xffffffff;
if ((maskval = strchr(value, '/')) != NULL)
cupsdLogMessage(CUPSD_LOG_DEBUG2,
"get_addr_and_mask(value=\"%s\", "
- "ip=[%08x:%08x:%08x:%08x], mask=[%08x:%08x:%08x:%08x]",
+ "ip=[%08x:%08x:%08x:%08x], mask=[%08x:%08x:%08x:%08x])",
value, ip[0], ip[1], ip[2], ip[3], mask[0], mask[1], mask[2],
mask[3]);
protocols |= BROWSE_DNSSD;
else if (!strcasecmp(valstart, "all"))
protocols |= BROWSE_ALL;
- else
+ else if (strcasecmp(valstart, "none"))
return (-1);
for (valstart = valend; *valstart; valstart ++)
/*
- * End of "$Id: conf.c 5905 2006-08-29 20:48:59Z mike $".
+ * End of "$Id: conf.c 6205 2007-01-22 22:04:43Z mike $".
*/
/*
- * "$Id: cups-driverd.c 5422 2006-04-18 15:16:00Z mike $"
+ * "$Id: cups-driverd.c 6214 2007-01-23 17:01:48Z mike $"
*
* PPD/driver support for the Common UNIX Printing System (CUPS).
*
size_t size) /* I - File size */
{
ppd_info_t *ppd; /* PPD */
+ char *recommended; /* Foomatic driver string */
/*
sizeof(ppd->record.make_and_model));
strlcpy(ppd->record.device_id, device_id, sizeof(ppd->record.device_id));
+ /*
+ * Strip confusing (and often wrong) "recommended" suffix added by
+ * Foomatic drivers...
+ */
+
+ if ((recommended = strstr(ppd->record.make_and_model, " (recommended)")) != NULL)
+ *recommended = '\0';
+
/*
* Return the new PPD pointer...
*/
/*
- * End of "$Id: cups-driverd.c 5422 2006-04-18 15:16:00Z mike $".
+ * End of "$Id: cups-driverd.c 6214 2007-01-23 17:01:48Z mike $".
*/
/*
- * "$Id: dirsvc.c 6090 2006-11-14 16:35:27Z mike $"
+ * "$Id: dirsvc.c 6205 2007-01-22 22:04:43Z mike $"
*
* Directory services routines for the Common UNIX Printing System (CUPS).
*
- * Copyright 1997-2006 by Easy Software Products, all rights reserved.
+ * Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
* Don't load the cache if the CUPS remote protocol is disabled...
*/
- if (!(BrowseRemoteProtocols & BROWSE_CUPS))
+ if (!Browsing || !(BrowseRemoteProtocols & BROWSE_CUPS))
{
cupsdLogMessage(CUPSD_LOG_DEBUG,
"cupsdLoadRemoteCache: Not loading remote cache.");
/*
- * End of "$Id: dirsvc.c 6090 2006-11-14 16:35:27Z mike $".
+ * End of "$Id: dirsvc.c 6205 2007-01-22 22:04:43Z mike $".
*/
/*
- * "$Id: ipp.c 6052 2006-10-20 20:35:41Z mike $"
+ * "$Id: ipp.c 6145 2006-12-06 20:10:16Z mike $"
*
* IPP routines for the Common UNIX Printing System (CUPS) scheduler.
*
return;
}
else
+ {
+ dtype &= CUPS_PRINTER_CLASS;
dmask = CUPS_PRINTER_CLASS;
+ }
/*
* Check policy...
/*
- * End of "$Id: ipp.c 6052 2006-10-20 20:35:41Z mike $".
+ * End of "$Id: ipp.c 6145 2006-12-06 20:10:16Z mike $".
*/
/*
- * "$Id: job.c 6061 2006-10-23 00:26:52Z mike $"
+ * "$Id: job.c 6234 2007-02-05 20:25:50Z mike $"
*
* Job management routines for the Common UNIX Printing System (CUPS).
*
pclass = printer;
- if (!(pclass->type & CUPS_PRINTER_REMOTE))
- {
- if (pclass->state != IPP_PRINTER_STOPPED)
- printer = cupsdFindAvailablePrinter(job->dest);
- else
- printer = NULL;
- }
+ if (!(pclass->type & CUPS_PRINTER_REMOTE) &&
+ pclass->state != IPP_PRINTER_STOPPED)
+ printer = cupsdFindAvailablePrinter(job->dest);
+ else
+ printer = NULL;
}
if (!printer && !pclass)
*/
if (job->hold_until < curtime)
- job->hold_until += 24 * 60 * 60 * 60;
+ job->hold_until += 24 * 60 * 60;
}
cupsdLogMessage(CUPSD_LOG_DEBUG2, "cupsdSetJobHoldUntil: hold_until = %d",
/*
- * End of "$Id: job.c 6061 2006-10-23 00:26:52Z mike $".
+ * End of "$Id: job.c 6234 2007-02-05 20:25:50Z mike $".
*/
--- /dev/null
+package com.easysw.cups;
+
+/**
+* A Base64 Encoder/Decoder.
+*
+* <p>
+* This class is used to encode and decode data in Base64 format as described in RFC 1521.
+*
+* <p>
+* This is "Open Source" software and released under the <a href="http://www.gnu.org/licenses/lgpl.html">GNU/LGPL</a> license.<br>
+* It is provided "as is" without warranty of any kind.<br>
+* Copyright 2003: Christian d'Heureuse, Inventec Informatik AG, Switzerland.<br>
+* Home page: <a href="http://www.source-code.biz">www.source-code.biz</a><br>
+*
+* <p>
+* Version history:<br>
+* 2003-07-22 Christian d'Heureuse (chdh): Module created.<br>
+* 2005-08-11 chdh: Lincense changed from GPL to LGPL.<br>
+* 2006-11-21 chdh:<br>
+* Method encode(String) renamed to encodeString(String).<br>
+* Method decode(String) renamed to decodeString(String).<br>
+* New method encode(byte[],int) added.<br>
+* New method decode(String) added.<br>
+*/
+
+public class Base64Coder {
+
+// Mapping table from 6-bit nibbles to Base64 characters.
+private static char[] map1 = new char[64];
+ static {
+ int i=0;
+ for (char c='A'; c<='Z'; c++) map1[i++] = c;
+ for (char c='a'; c<='z'; c++) map1[i++] = c;
+ for (char c='0'; c<='9'; c++) map1[i++] = c;
+ map1[i++] = '+'; map1[i++] = '/'; }
+
+// Mapping table from Base64 characters to 6-bit nibbles.
+private static byte[] map2 = new byte[128];
+ static {
+ for (int i=0; i<map2.length; i++) map2[i] = -1;
+ for (int i=0; i<64; i++) map2[map1[i]] = (byte)i; }
+
+/**
+* Encodes a string into Base64 format.
+* No blanks or line breaks are inserted.
+* @param s a String to be encoded.
+* @return A String with the Base64 encoded data.
+*/
+public static String encodeString (String s) {
+ return new String(encode(s.getBytes())); }
+
+/**
+* Encodes a byte array into Base64 format.
+* No blanks or line breaks are inserted.
+* @param in an array containing the data bytes to be encoded.
+* @return A character array with the Base64 encoded data.
+*/
+public static char[] encode (byte[] in) {
+ return encode(in,in.length); }
+
+/**
+* Encodes a byte array into Base64 format.
+* No blanks or line breaks are inserted.
+* @param in an array containing the data bytes to be encoded.
+* @param iLen number of bytes to process in <code>in</code>.
+* @return A character array with the Base64 encoded data.
+*/
+public static char[] encode (byte[] in, int iLen) {
+ int oDataLen = (iLen*4+2)/3; // output length without padding
+ int oLen = ((iLen+2)/3)*4; // output length including padding
+ char[] out = new char[oLen];
+ int ip = 0;
+ int op = 0;
+ while (ip < iLen) {
+ int i0 = in[ip++] & 0xff;
+ int i1 = ip < iLen ? in[ip++] & 0xff : 0;
+ int i2 = ip < iLen ? in[ip++] & 0xff : 0;
+ int o0 = i0 >>> 2;
+ int o1 = ((i0 & 3) << 4) | (i1 >>> 4);
+ int o2 = ((i1 & 0xf) << 2) | (i2 >>> 6);
+ int o3 = i2 & 0x3F;
+ out[op++] = map1[o0];
+ out[op++] = map1[o1];
+ out[op] = op < oDataLen ? map1[o2] : '='; op++;
+ out[op] = op < oDataLen ? map1[o3] : '='; op++; }
+ return out; }
+
+/**
+* Decodes a string from Base64 format.
+* @param s a Base64 String to be decoded.
+* @return A String containing the decoded data.
+* @throws IllegalArgumentException if the input is not valid Base64 encoded data.
+*/
+public static String decodeString (String s) {
+ return new String(decode(s)); }
+
+/**
+* Decodes a byte array from Base64 format.
+* @param s a Base64 String to be decoded.
+* @return An array containing the decoded data bytes.
+* @throws IllegalArgumentException if the input is not valid Base64 encoded data.
+*/
+public static byte[] decode (String s) {
+ return decode(s.toCharArray()); }
+
+/**
+* Decodes a byte array from Base64 format.
+* No blanks or line breaks are allowed within the Base64 encoded data.
+* @param in a character array containing the Base64 encoded data.
+* @return An array containing the decoded data bytes.
+* @throws IllegalArgumentException if the input is not valid Base64 encoded data.
+*/
+public static byte[] decode (char[] in) {
+ int iLen = in.length;
+ if (iLen%4 != 0) throw new IllegalArgumentException ("Length of Base64 encoded input string is not a multiple of 4.");
+ while (iLen > 0 && in[iLen-1] == '=') iLen--;
+ int oLen = (iLen*3) / 4;
+ byte[] out = new byte[oLen];
+ int ip = 0;
+ int op = 0;
+ while (ip < iLen) {
+ int i0 = in[ip++];
+ int i1 = in[ip++];
+ int i2 = ip < iLen ? in[ip++] : 'A';
+ int i3 = ip < iLen ? in[ip++] : 'A';
+ if (i0 > 127 || i1 > 127 || i2 > 127 || i3 > 127)
+ throw new IllegalArgumentException ("Illegal character in Base64 encoded data.");
+ int b0 = map2[i0];
+ int b1 = map2[i1];
+ int b2 = map2[i2];
+ int b3 = map2[i3];
+ if (b0 < 0 || b1 < 0 || b2 < 0 || b3 < 0)
+ throw new IllegalArgumentException ("Illegal character in Base64 encoded data.");
+ int o0 = ( b0 <<2) | (b1>>>4);
+ int o1 = ((b1 & 0xf)<<4) | (b2>>>2);
+ int o2 = ((b2 & 3)<<6) | b3;
+ out[op++] = (byte)o0;
+ if (op<oLen) out[op++] = (byte)o1;
+ if (op<oLen) out[op++] = (byte)o2; }
+ return out; }
+
+// Dummy constructor.
+private Base64Coder() {}
+
+} // end class Base64Coder
-package com.easysw.cups;
-
-/**
- * @version 1.00 06-NOV-2002
- * @author Easy Software Products
- *
- * Internet Printing Protocol definitions for the Common UNIX Printing
- * System (CUPS).
- *
- * Copyright 1997-2002 by Easy Software Products.
- *
- * These coded instructions, statements, and computer programs are the
- * property of Easy Software Products and are protected by Federal
- * copyright law. Distribution and use rights are outlined in the file
- * "LICENSE.txt" which should have been included with this file. If this
- * file is missing or damaged please contact Easy Software Products
- * at:
- *
- * Attn: CUPS Licensing Information
- * Easy Software Products
- * 44141 Airport View Drive, Suite 204
- * Hollywood, Maryland 20636-3111 USA
- *
- * Voice: (301) 373-9603
- * EMail: cups-info@cups.org
- * WWW: http://www.cups.org
- */
-
-/**
- * The <code>IPPBase64Encoder</code> overrides part of the sun encoder.
- *
- * @author TDB
- * @version 1.0
- * @since JDK1.3
- */
-
-
-class IPPBase64Encoder extends sun.misc.BASE64Encoder
-{
- protected void encodeLineSuffix(java.io.OutputStream out)
- throws java.io.IOException
- {
- // do nothing.
- }
-}
-
package com.easysw.cups;
/**
- * @version 1.00 06-NOV-2002
+ * @version 1.1 23-JAN-2007
* @author Easy Software Products
*
* Internet Printing Protocol definitions for the Common UNIX Printing
* System (CUPS).
*
- * Copyright 1997-2002 by Easy Software Products.
+ * Copyright 1997-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
* Attn: CUPS Licensing Information
* Easy Software Products
* 44141 Airport View Drive, Suite 204
- * Hollywood, Maryland 20636-3111 USA
+ * Hollywood, Maryland 20636 USA
*
- * Voice: (301) 373-9603
+ * Voice: (301) 373-9600
* EMail: cups-info@cups.org
- * WWW: http://www.cups.org
+ * WWW: http://www.cups.org/
*/
/**
* server, and processing responses.
*
* @author TDB
- * @version 1.0
+ * @version 1.1
* @since JDK1.3
*/
if (auth_type.compareTo("basic") == 0)
{
s1 = user + ":" + passwd;
- IPPBase64Encoder encoder = new IPPBase64Encoder();
- String auth_string = encoder.encode(s1.getBytes());
+ String auth_string = Base64Coder.encodeString(s1);
s1 = "Authorization: Basic " + auth_string + "\r\n";
os.write(s1.getBytes(), 0, s1.length());
}
-IPPBase64Encoder
+Base64Coder
IPPDefs
IPPError
IPPStatus
/*
- * "$Id: lpoptions.c 5926 2006-09-05 20:45:47Z mike $"
+ * "$Id: lpoptions.c 6205 2007-01-22 22:04:43Z mike $"
*
* Printer option program for the Common UNIX Printing System (CUPS).
*
if ((filename = cupsGetPPD(dest->name)) == NULL)
{
_cupsLangPrintf(stderr,
- _("lpoptions: Destination %s has no PPD file!\n"),
- dest->name);
+ _("lpoptions: Unable to get PPD file for %s: %s\n"),
+ dest->name, cupsLastErrorString());
return;
}
/*
- * End of "$Id: lpoptions.c 5926 2006-09-05 20:45:47Z mike $".
+ * End of "$Id: lpoptions.c 6205 2007-01-22 22:04:43Z mike $".
*/
</HEAD>
<BODY>
<TABLE WIDTH="100%" STYLE="height: 100%;" BORDER="0" CELLSPACING="0" CELLPADDING="0" SUMMARY="{title}">
-<TR CLASS="HEADER">
+<TR CLASS="header">
<TD VALIGN="TOP" WIDTH="15" ROWSPAN="2"><IMG SRC="/images/top-left.gif" WIDTH="15" HEIGHT="80" ALT=""></TD>
<TD VALIGN="TOP" WIDTH="55" ROWSPAN="2"><IMG SRC="/images/top-middle.gif" WIDTH="55" HEIGHT="80" ALT=""></TD>
<TD WIDTH="100%" HEIGHT="60"><H1>{title}</H1></TD>
<TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="15" ROWSPAN="2"><IMG
SRC="/images/top-right.gif" WIDTH="15" HEIGHT="15" ALT=""></TD>
</TR>
-<TR CLASS="HEADER"><TD WIDTH="100%" VALIGN="BOTTOM" NOWRAP>
+<TR CLASS="header"><TD WIDTH="100%" VALIGN="BOTTOM" NOWRAP>
<A CLASS="unsel" HREF="/"><IMG SRC="/images/tab-left.gif"
WIDTH="4" HEIGHT="4" ALIGN="TOP" BORDER="0"
<TD>{?job_name=?Unbekannt:{job_name}} </TD>
<TD>{job_originating_user_name} </TD>
<TD>{job_k_octets}k </TD>
-<TD>{job_media_sheets_completed=0?Unbekannt:{?job_media_sheets_completed}}</TD>
+<TD>{job_media_sheets_completed=0?Unbekannt:{?job_media_sheets_completed}} </TD>
<TD>{job_state=3?schwebend seit<BR>{time_at_creation}:{job_state=4?angehalten seit<BR>{time_at_creation}:
{job_state=5?verarbeitet seit<BR>{time_at_processing}:{job_state=6?gestoppt um<BR>{time_at_completed}:
{job_state=7?abgebrochen um<BR>{time_at_completed}:{job_state=8?aborted:beendet um<BR>{time_at_completed}}}}}}} </TD>
</HEAD>
<BODY>
<TABLE WIDTH="100%" STYLE="height: 100%;" BORDER="0" CELLSPACING="0" CELLPADDING="0" SUMMARY="{title}">
-<TR CLASS="HEADER">
+<TR CLASS="header">
<TD VALIGN="TOP" WIDTH="15" ROWSPAN="2"><IMG SRC="/images/top-left.gif" WIDTH="15" HEIGHT="80" ALT=""></TD>
<TD VALIGN="TOP" WIDTH="55" ROWSPAN="2"><IMG SRC="/images/top-middle.gif" WIDTH="55" HEIGHT="80" ALT=""></TD>
<TD WIDTH="100%" HEIGHT="60"><H1>{title}</H1></TD>
<TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="15" ROWSPAN="2"><IMG
SRC="/images/top-right.gif" WIDTH="15" HEIGHT="15" ALT=""></TD>
</TR>
-<TR CLASS="HEADER"><TD WIDTH="100%" VALIGN="BOTTOM" NOWRAP>
+<TR CLASS="header"><TD WIDTH="100%" VALIGN="BOTTOM" NOWRAP>
<A CLASS="unsel" HREF="/"><IMG SRC="/images/tab-left.gif"
WIDTH="4" HEIGHT="4" ALIGN="TOP" BORDER="0"
<TD>{?job_name=?Desconocido:{job_name}} </TD>
<TD>{job_originating_user_name} </TD>
<TD>{job_k_octets}k </TD>
-<TD>{job_media_sheets_completed=0?Desconocido:{?job_media_sheets_completed}}</TD>
+<TD>{job_media_sheets_completed=0?Desconocido:{?job_media_sheets_completed}} </TD>
<TD>{job_state=3?pendiente desde<BR>{time_at_creation}:{job_state=4?retenido desde<BR>{time_at_creation}:
{job_state=5?en proceso desde<BR>{time_at_processing}:{job_state=6?parado:
{job_state=7?cancelado el<BR>{time_at_completed}:{job_state=8?abandonado:completado el<BR>{time_at_completed}}}}}}} </TD>
</HEAD>
<BODY>
<TABLE WIDTH="100%" STYLE="height: 100%;" BORDER="0" CELLSPACING="0" CELLPADDING="0" SUMMARY="{title}">
-<TR CLASS="HEADER">
+<TR CLASS="header">
<TD VALIGN="TOP" WIDTH="15" ROWSPAN="2"><IMG SRC="/images/top-left.gif" WIDTH="15" HEIGHT="80" ALT=""></TD>
<TD VALIGN="TOP" WIDTH="55" ROWSPAN="2"><IMG SRC="/images/top-middle.gif" WIDTH="55" HEIGHT="80" ALT=""></TD>
<TD WIDTH="100%" HEIGHT="60"><H1>{title}</H1></TD>
<TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="15" ROWSPAN="2"><IMG
SRC="/images/top-right.gif" WIDTH="15" HEIGHT="15" ALT=""></TD>
</TR>
-<TR CLASS="HEADER"><TD WIDTH="100%" VALIGN="BOTTOM" NOWRAP>
+<TR CLASS="header"><TD WIDTH="100%" VALIGN="BOTTOM" NOWRAP>
<A CLASS="unsel" HREF="/"><IMG SRC="/images/tab-left.gif"
WIDTH="4" HEIGHT="4" ALIGN="TOP" BORDER="0"
<TD>{?job_name=?Teadmata:{job_name}} </TD>
<TD>{job_originating_user_name} </TD>
<TD>{job_k_octets}k </TD>
-<TD>{job_media_sheets_completed=0?Teadmata:{?job_media_sheets_completed}}</TD>
+<TD>{job_media_sheets_completed=0?Teadmata:{?job_media_sheets_completed}} </TD>
<TD>{job_state=3?ootel alates<BR>{time_at_creation}:{job_state=4?hoitakse alates<BR>{time_at_creation}:
{job_state=5?töötluses alates<BR>{time_at_processing}:{job_state=6?peatatud:
{job_state=7?katkestatud<BR>{time_at_completed}:{job_state=8?loobutud:lõpetatud<BR>{time_at_completed}}}}}}} </TD>
--- /dev/null
+<FORM METHOD="POST" ACTION="/admin">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+
+<H2 CLASS="title">Ajouter une classe</H2>
+
+<TABLE>
+<TR>
+<TH CLASS="label">Nom :</TH>
+<TD><INPUT TYPE="TEXT" NAME="PRINTER_NAME" SIZE="40" MAXLENGTH="127"></TD>
+</TR>
+<TR>
+<TH CLASS="label">Lieu :</TH>
+<TD><INPUT TYPE="TEXT" NAME="PRINTER_LOCATION" SIZE="40" MAXLENGTH="127"></TD>
+</TR>
+<TR>
+<TH CLASS="label">Description :</TH>
+<TD><INPUT TYPE="TEXT" NAME="PRINTER_INFO" SIZE="40" MAXLENGTH="127"></TD>
+</TR>
+<TR>
+<TH CLASS="label">Membres :</TH>
+<TD>
+<SELECT NAME="MEMBER_URIS" SIZE="10" MULTIPLE>
+{[member_uris]<OPTION VALUE="{member_uris}" {?member_selected}>{member_names}}
+</SELECT>
+</TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-add-class.gif" ALT="Ajouter une classe"></TD>
+</TR>
+</TABLE>
+
+</FORM>
+<FORM METHOD="POST" ACTION="/admin">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+
+<H2 CLASS="title">Ajouter une classe</H2>
+
+<TABLE>
+<TR>
+<TH CLASS="label">Nom :</TH>
+<TD><INPUT TYPE="TEXT" NAME="PRINTER_NAME" SIZE="40" MAXLENGTH="127"></TD>
+</TR>
+<TR>
+<TH CLASS="label">Lieu :</TH>
+<TD><INPUT TYPE="TEXT" NAME="PRINTER_LOCATION" SIZE="40" MAXLENGTH="127"></TD>
+</TR>
+<TR>
+<TH CLASS="label">Description :</TH>
+<TD><INPUT TYPE="TEXT" NAME="PRINTER_INFO" SIZE="40" MAXLENGTH="127"></TD>
+</TR>
+<TR>
+<TH CLASS="label">Membres :</TH>
+<TD>
+<SELECT NAME="MEMBER_URIS" SIZE="10" MULTIPLE>
+{[member_uris]<OPTION VALUE="{member_uris}" {?member_selected}>{member_names}}
+</SELECT>
+</TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-add-class.gif" ALT="Ajouter une classe"></TD>
+</TR>
+</TABLE>
+
+</FORM>
--- /dev/null
+<FORM METHOD="POST" ACTION="/admin">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+
+<H2 CLASS="title">Ajouter une nouvelle imprimante</H2>
+
+<TABLE>
+<TR>
+<TH CLASS="label">Nom :</TH>
+<TD><INPUT TYPE="TEXT" NAME="PRINTER_NAME" SIZE="40" MAXLENGTH="127"><BR>
+<SMALL>( Peut comporter tout caractère imprimable, "/", "#", et espace exceptés )</SMALL></TD>
+</TR>
+<TR>
+<TH CLASS="label">Lieu :</TH>
+<TD><INPUT TYPE="TEXT" NAME="PRINTER_LOCATION" SIZE="40" MAXLENGTH="127"><BR>
+<SMALL>( Lieu compréhensible pour un utilisateur, comme "Labo 1" )</SMALL></TD>
+</TR>
+<TR>
+<TH CLASS="label">Description :</TH>
+<TD><INPUT TYPE="TEXT" NAME="PRINTER_INFO" SIZE="40" MAXLENGTH="127"><BR>
+<SMALL>( Description compréhensible pour un utilisateur, comme "HP LaserJet recto/verso" )</SMALL></TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-continue.gif" ALT="Poursuivre"></TD>
+</TR>
+</TABLE>
+
+</FORM>
+<FORM METHOD="POST" ACTION="/admin">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+
+<H2 CLASS="title">Ajouter une nouvelle imprimante</H2>
+
+<TABLE>
+<TR>
+<TH CLASS="label">Nom :</TH>
+<TD><INPUT TYPE="TEXT" NAME="PRINTER_NAME" SIZE="40" MAXLENGTH="127"><BR>
+<SMALL>( Peut comporter tout caractère imprimable, "/", "#", et espace exceptés )</SMALL></TD>
+</TR>
+<TR>
+<TH CLASS="label">Lieu :</TH>
+<TD><INPUT TYPE="TEXT" NAME="PRINTER_LOCATION" SIZE="40" MAXLENGTH="127"><BR>
+<SMALL>( Lieu compréhensible pour un utilisateur, comme "Labo 1" )</SMALL></TD>
+</TR>
+<TR>
+<TH CLASS="label">Description :</TH>
+<TD><INPUT TYPE="TEXT" NAME="PRINTER_INFO" SIZE="40" MAXLENGTH="127"><BR>
+<SMALL>( Description compréhensible pour un utilisateur, comme "HP LaserJet recto/verso" )</SMALL></TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-continue.gif" ALT="Poursuivre"></TD>
+</TR>
+</TABLE>
+
+</FORM>
--- /dev/null
+<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" SUMMARY="Tâches d'administration">
+<TR><TD VALIGN="TOP" NOWRAP>
+
+<H2 CLASS="title">Imprimantes</H2>
+
+<P>
+<A HREF="/admin?op=add-printer"><IMG
+SRC="/images/button-add-printer.gif" ALT="Ajouter une imprimante" CLASS="button"></A>
+<A HREF="/printers/"><IMG SRC="/images/button-manage-printers.gif"
+ALT="Administrer les imprimantes" CLASS="button"></A>
+{have_samba?<A HREF="/admin/?op=export-samba"><IMG
+SRC="/images/button-export-samba.gif" ALT="Exporter les imprimantes vers SAMBA"
+CLASS="button"></A>:}
+</P>
+
+{#device_uri=0?:<P><B>Nouvelles imprimantes détectées:</B></P><UL>{[device_uri]
+<LI><A HREF="/admin?op=add-printer&{device_options}"><IMG
+SRC="/images/button-add-this-printer.gif" ALT="Ajouter cette imprimante" CLASS="button"
+ALIGN="MIDDLE"></A>
+{device_make_and_model} ({device_info})</LI>
+}</UL>}
+
+<H2 CLASS="title">Classes</H2>
+
+<P>
+<A HREF="/admin?op=add-class"><IMG SRC="/images/button-add-class.gif"
+ALT="Ajouter une classe" CLASS="button"></A>
+<A HREF="/classes/"><IMG SRC="/images/button-manage-classes.gif"
+ALT="Administrer les classes" CLASS="button"></A>
+</P>
+
+<H2 CLASS="title">Tâches d'impression</H2>
+
+<P>
+<A HREF="/jobs/"><IMG SRC="/images/button-manage-jobs.gif" ALT="Administrer les
+tâches" CLASS="button"></A>
+</P>
+
+</TD><TD> </TD><TD VALIGN="TOP">
+
+<H2 CLASS="title">Serveur</H2>
+
+<P>
+<A HREF="/admin?op=config-server"><IMG
+SRC="/images/button-edit-configuration-file.gif" ALT="Éditer le fichier de
+configuration" CLASS="button"></A>
+<A HREF="/admin/log/access_log" TARGET="_blank"><IMG
+SRC="/images/button-view-access-log.gif" ALT="Liste des accès"
+CLASS="button"></A>
+<A HREF="/admin/log/error_log" TARGET="_blank"><IMG
+SRC="/images/button-view-error-log.gif" ALT="Liste des erreurs"
+CLASS="button"></A>
+<A HREF="/admin/log/page_log" TARGET="_blank"><IMG
+SRC="/images/button-view-page-log.gif" ALT="Liste des pages"
+CLASS="button"></A>
+</P>
+
+{SETTINGS_ERROR?<P>{SETTINGS_MESSAGE}</P>
+<BLOCKQUOTE>{SETTINGS_ERROR}</BLOCKQUOTE>:
+
+<FORM METHOD="POST" ACTION="/admin">
+
+<P><B>Paramètres de base du serveur :</B></P>
+
+<P><INPUT TYPE="HIDDEN" NAME="OP" VALUE="config-server">
+<INPUT TYPE="CHECKBOX" NAME="REMOTE_PRINTERS" {?remote_printers}> Afficher les
+imprimantes partagées par d'autres systèmes<BR>
+<INPUT TYPE="CHECKBOX" NAME="SHARE_PRINTERS" {?share_printers}> Partager les
+imprimantes publiques connectées à ce système<BR>
+<INPUT TYPE="CHECKBOX" NAME="REMOTE_ADMIN" {?remote_admin}> Autoriser
+l'administration à distance<BR>
+<INPUT TYPE="CHECKBOX" NAME="USER_CANCEL_ANY" {?user_cancel_any}> Autoriser les
+utilisateurs à annuler n'importe quelle tâche ( pas seulement les leurs )<BR>
+<INPUT TYPE="CHECKBOX" NAME="DEBUG_LOGGING" {?debug_logging}> Enregistrer les
+informations de <I>debug</I> pour la résolution de problèmes</P>
+
+<P><INPUT TYPE="IMAGE" SRC="/images/button-change-settings.gif" ALT="Modifier
+les paramètres"></P>
+
+</FORM>}
+
+</TD></TR>
+</TABLE>
+<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" SUMMARY="Tâches d'administration">
+<TR><TD VALIGN="TOP" NOWRAP>
+
+<H2 CLASS="title">Imprimantes</H2>
+
+<P>
+<A HREF="/admin?op=add-printer"><IMG
+SRC="/images/button-add-printer.gif" ALT="Ajouter une imprimante" CLASS="button"></A>
+<A HREF="/printers/"><IMG SRC="/images/button-manage-printers.gif"
+ALT="Administrer les imprimantes" CLASS="button"></A>
+{have_samba?<A HREF="/admin/?op=export-samba"><IMG
+SRC="/images/button-export-samba.gif" ALT="Exporter les imprimantes vers SAMBA"
+CLASS="button"></A>:}
+</P>
+
+{#device_uri=0?:<P><B>Nouvelles imprimantes détectées:</B></P><UL>{[device_uri]
+<LI><A HREF="/admin?op=add-printer&{device_options}"><IMG
+SRC="/images/button-add-this-printer.gif" ALT="Ajouter cette imprimante" CLASS="button"
+ALIGN="MIDDLE"></A>
+{device_make_and_model} ({device_info})</LI>
+}</UL>}
+
+<H2 CLASS="title">Classes</H2>
+
+<P>
+<A HREF="/admin?op=add-class"><IMG SRC="/images/button-add-class.gif"
+ALT="Ajouter une classe" CLASS="button"></A>
+<A HREF="/classes/"><IMG SRC="/images/button-manage-classes.gif"
+ALT="Administrer les classes" CLASS="button"></A>
+</P>
+
+<H2 CLASS="title">Tâches d'impression</H2>
+
+<P>
+<A HREF="/jobs/"><IMG SRC="/images/button-manage-jobs.gif" ALT="Administrer les
+tâches" CLASS="button"></A>
+</P>
+
+</TD><TD> </TD><TD VALIGN="TOP">
+
+<H2 CLASS="title">Serveur</H2>
+
+<P>
+<A HREF="/admin?op=config-server"><IMG
+SRC="/images/button-edit-configuration-file.gif" ALT="Éditer le fichier de
+configuration" CLASS="button"></A>
+<A HREF="/admin/log/access_log" TARGET="_blank"><IMG
+SRC="/images/button-view-access-log.gif" ALT="Liste des accès"
+CLASS="button"></A>
+<A HREF="/admin/log/error_log" TARGET="_blank"><IMG
+SRC="/images/button-view-error-log.gif" ALT="Liste des erreurs"
+CLASS="button"></A>
+<A HREF="/admin/log/page_log" TARGET="_blank"><IMG
+SRC="/images/button-view-page-log.gif" ALT="Liste des pages"
+CLASS="button"></A>
+</P>
+
+{SETTINGS_ERROR?<P>{SETTINGS_MESSAGE}</P>
+<BLOCKQUOTE>{SETTINGS_ERROR}</BLOCKQUOTE>:
+
+<FORM METHOD="POST" ACTION="/admin">
+
+<P><B>Paramètres de base du serveur :</B></P>
+
+<P><INPUT TYPE="HIDDEN" NAME="OP" VALUE="config-server">
+<INPUT TYPE="CHECKBOX" NAME="REMOTE_PRINTERS" {?remote_printers}> Afficher les
+imprimantes partagées par d'autres systèmes<BR>
+<INPUT TYPE="CHECKBOX" NAME="SHARE_PRINTERS" {?share_printers}> Partager les
+imprimantes publiques connectées à ce système<BR>
+<INPUT TYPE="CHECKBOX" NAME="REMOTE_ADMIN" {?remote_admin}> Autoriser
+l'administration à distance<BR>
+<INPUT TYPE="CHECKBOX" NAME="USER_CANCEL_ANY" {?user_cancel_any}> Autoriser les
+utilisateurs à annuler n'importe quelle tâche ( pas seulement les leurs )<BR>
+<INPUT TYPE="CHECKBOX" NAME="DEBUG_LOGGING" {?debug_logging}> Enregistrer les
+informations de <I>debug</I> pour la résolution de problèmes</P>
+
+<P><INPUT TYPE="IMAGE" SRC="/images/button-change-settings.gif" ALT="Modifier
+les paramètres"></P>
+
+</FORM>}
+
+</TD></TR>
+</TABLE>
--- /dev/null
+<FORM METHOD="POST" ACTION="/admin">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_LOCATION" VALUE="{?printer_location}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_INFO" VALUE="{?printer_info}">
+<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE_AND_MODEL" VALUE="{?current_make_and_model}">
+
+<H2 CLASS="title">Matériel pour {printer_name}</H2>
+
+<TABLE>
+<TR>
+<TH CLASS="label">Matériel :</TH>
+<TD>
+<SELECT NAME="DEVICE_URI">
+{[device_uri]<OPTION VALUE="{device_uri}{?device_make_and_model!Unknown?|{device_make_and_model}:}" {?current_device_uri={device_uri}?SELECTED:{current_device_scheme={device_uri}?SELECTED:}}>
+{device_info} {?device_make_and_model!Unknown?({device_make_and_model}):}</OPTION>
+}</SELECT>
+</TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-continue.gif" ALT="Poursuivre"></TD>
+</TR>
+</TABLE>
+
+</FORM>
+<FORM METHOD="POST" ACTION="/admin">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_LOCATION" VALUE="{?printer_location}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_INFO" VALUE="{?printer_info}">
+<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE_AND_MODEL" VALUE="{?current_make_and_model}">
+
+<H2 CLASS="title">Matériel pour {printer_name}</H2>
+
+<TABLE>
+<TR>
+<TH CLASS="label">Matériel :</TH>
+<TD>
+<SELECT NAME="DEVICE_URI">
+{[device_uri]<OPTION VALUE="{device_uri}{?device_make_and_model!Unknown?|{device_make_and_model}:}" {?current_device_uri={device_uri}?SELECTED:{current_device_scheme={device_uri}?SELECTED:}}>
+{device_info} {?device_make_and_model!Unknown?({device_make_and_model}):}</OPTION>
+}</SELECT>
+</TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-continue.gif" ALT="Poursuivre"></TD>
+</TR>
+</TABLE>
+
+</FORM>
--- /dev/null
+<FORM METHOD="POST" ACTION="/admin" ENCTYPE="multipart/form-data">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_LOCATION" VALUE="{?printer_location}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_INFO" VALUE="{?printer_info}">
+<INPUT TYPE="HIDDEN" NAME="DEVICE_URI" VALUE="{device_uri}">
+<INPUT TYPE="HIDDEN" NAME="BAUDRATE" VALUE="{?baudrate}">
+<INPUT TYPE="HIDDEN" NAME="BITS" VALUE="{?bits}">
+<INPUT TYPE="HIDDEN" NAME="PARITY" VALUE="{?parity}">
+<INPUT TYPE="HIDDEN" NAME="FLOW" VALUE="{?flow}">
+
+<H2 CLASS="title">Marque/Fabricant pour {printer_name}</H2>
+
+<TABLE>
+<TR>
+<TH CLASS="label">Marque :</TH>
+<TD>
+<SELECT NAME="PPD_MAKE" SIZE="10">
+{[ppd_make]<OPTION VALUE="{ppd_make}" {?current_make={ppd_make}?SELECTED:}>{ppd_make}}
+</SELECT>
+</TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-continue.gif" ALT="Poursuivre"></TD>
+</TR>
+<TR>
+<TD></TD>
+<TD> </TD>
+</TR>
+<TR>
+<TH CLASS="label">Ou donnez un fichier PPD :</TH>
+<TD><INPUT TYPE="HIDDEN" NAME="MAX_FILE_SIZE" VALUE="262144"><INPUT
+TYPE="FILE" NAME="PPD_FILE"></TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-{op}.gif" ALT="{op=add-printer?Ajouter une imprimante:Modifier l'imprimante}"></TD>
+</TR>
+</TABLE>
+
+</FORM>
+<FORM METHOD="POST" ACTION="/admin" ENCTYPE="multipart/form-data">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_LOCATION" VALUE="{?printer_location}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_INFO" VALUE="{?printer_info}">
+<INPUT TYPE="HIDDEN" NAME="DEVICE_URI" VALUE="{device_uri}">
+<INPUT TYPE="HIDDEN" NAME="BAUDRATE" VALUE="{?baudrate}">
+<INPUT TYPE="HIDDEN" NAME="BITS" VALUE="{?bits}">
+<INPUT TYPE="HIDDEN" NAME="PARITY" VALUE="{?parity}">
+<INPUT TYPE="HIDDEN" NAME="FLOW" VALUE="{?flow}">
+
+<H2 CLASS="title">Marque/Fabricant pour {printer_name}</H2>
+
+<TABLE>
+<TR>
+<TH CLASS="label">Marque :</TH>
+<TD>
+<SELECT NAME="PPD_MAKE" SIZE="10">
+{[ppd_make]<OPTION VALUE="{ppd_make}" {?current_make={ppd_make}?SELECTED:}>{ppd_make}}
+</SELECT>
+</TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-continue.gif" ALT="Poursuivre"></TD>
+</TR>
+<TR>
+<TD></TD>
+<TD> </TD>
+</TR>
+<TR>
+<TH CLASS="label">Ou donnez un fichier PPD :</TH>
+<TD><INPUT TYPE="HIDDEN" NAME="MAX_FILE_SIZE" VALUE="262144"><INPUT
+TYPE="FILE" NAME="PPD_FILE"></TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-{op}.gif" ALT="{op=add-printer?Ajouter une imprimante:Modifier l'imprimante}"></TD>
+</TR>
+</TABLE>
+
+</FORM>
--- /dev/null
+<FORM METHOD="POST" ACTION="/admin" ENCTYPE="multipart/form-data">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_LOCATION" VALUE="{?printer_location}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_INFO" VALUE="{?printer_info}">
+<INPUT TYPE="HIDDEN" NAME="DEVICE_URI" VALUE="{device_uri}">
+<INPUT TYPE="HIDDEN" NAME="BAUDRATE" VALUE="{?baudrate}">
+<INPUT TYPE="HIDDEN" NAME="BITS" VALUE="{?bits}">
+<INPUT TYPE="HIDDEN" NAME="PARITY" VALUE="{?parity}">
+<INPUT TYPE="HIDDEN" NAME="FLOW" VALUE="{?flow}">
+
+<H2 CLASS="title">Modèle/Pilote pour {printer_name}</H2>
+
+<TABLE>
+<TR>
+<TH CLASS="label">Modèle:</TH>
+<TD>
+<SELECT NAME="PPD_NAME" SIZE="10">
+{[ppd_name]<OPTION VALUE="{ppd_name}" {?current_make_and_model={ppd_make_and_model}?SELECTED:}>{ppd_make_and_model} ({ppd_natural_language})
+}</SELECT>
+</TD>
+</TR>
+<TR>
+<TH CLASS="label">Ou donnez un fichier PPD :</TH>
+<TD><INPUT TYPE="HIDDEN" NAME="MAX_FILE_SIZE" VALUE="262144"><INPUT
+TYPE="FILE" NAME="PPD_FILE"></TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-{op}.gif" ALT="{op=add-printer?Ajouter une imprimante:Modifier l'imprimante}"></TD>
+</TR>
+</TABLE>
+
+</FORM>
+<FORM METHOD="POST" ACTION="/admin" ENCTYPE="multipart/form-data">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_LOCATION" VALUE="{?printer_location}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_INFO" VALUE="{?printer_info}">
+<INPUT TYPE="HIDDEN" NAME="DEVICE_URI" VALUE="{device_uri}">
+<INPUT TYPE="HIDDEN" NAME="BAUDRATE" VALUE="{?baudrate}">
+<INPUT TYPE="HIDDEN" NAME="BITS" VALUE="{?bits}">
+<INPUT TYPE="HIDDEN" NAME="PARITY" VALUE="{?parity}">
+<INPUT TYPE="HIDDEN" NAME="FLOW" VALUE="{?flow}">
+
+<H2 CLASS="title">Modèle/Pilote pour {printer_name}</H2>
+
+<TABLE>
+<TR>
+<TH CLASS="label">Modèle:</TH>
+<TD>
+<SELECT NAME="PPD_NAME" SIZE="10">
+{[ppd_name]<OPTION VALUE="{ppd_name}" {?current_make_and_model={ppd_make_and_model}?SELECTED:}>{ppd_make_and_model} ({ppd_natural_language})
+}</SELECT>
+</TD>
+</TR>
+<TR>
+<TH CLASS="label">Ou donnez un fichier PPD :</TH>
+<TD><INPUT TYPE="HIDDEN" NAME="MAX_FILE_SIZE" VALUE="262144"><INPUT
+TYPE="FILE" NAME="PPD_FILE"></TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-{op}.gif" ALT="{op=add-printer?Ajouter une imprimante:Modifier l'imprimante}"></TD>
+</TR>
+</TABLE>
+
+</FORM>
--- /dev/null
+<FORM METHOD="POST" ACTION="/admin">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_LOCATION" VALUE="{?printer_location}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_INFO" VALUE="{?printer_info}">
+<INPUT TYPE="HIDDEN" NAME="DEVICE_URI" VALUE="{device_uri}">
+
+<H2 CLASS="title">Paramètres du port série pour {printer_name}</H2>
+
+<TABLE>
+<TR>
+<TH CLASS="label">Baud/s :</TH>
+<TD><SELECT NAME="BAUDRATE">
+{[baudrates]<OPTION {?baudrate={baudrates}?SELECTED:}>{baudrates}}
+</SELECT></TD>
+</TR>
+<TR>
+<TH CLASS="label">Parité :</TH>
+<TD><SELECT NAME="PARITY">
+<OPTION VALUE="none" {?parity=none?SELECTED:}>Aucune
+<OPTION VALUE="even" {?parity=even?SELECTED:}>Paire
+<OPTION VALUE="odd" {?parity=odd?SELECTED:}>Impaire
+</SELECT></TD>
+</TR>
+<TR>
+<TH CLASS="label">Bits données :</TH>
+<TD><SELECT NAME="BITS">
+<OPTION {?bits=8?SELECTED:}>8
+<OPTION {?bits=7?SELECTED:}>7
+</SELECT></TD>
+</TR>
+<TR>
+<TH CLASS="label">Contrôle de flux :</TH>
+<TD><SELECT NAME="FLOW">
+<OPTION VALUE="none" {?flow=none?SELECTED:}>Auncun
+<OPTION VALUE="soft" {?flow=soft?SELECTED:}>XON/XOFF ( Logiciel )
+<OPTION VALUE="hard" {?flow=hard?SELECTED:}>RTS/CTS ( Matériel )
+<OPTION VALUE="dtrdsr" {?flow=dtrdsr?SELECTED:}>DTR/DSR ( Matériel )
+</SELECT></TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-continue.gif" ALT="Poursuivre"></TD>
+</TR>
+</TABLE>
+
+</FORM>
+<FORM METHOD="POST" ACTION="/admin">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_LOCATION" VALUE="{?printer_location}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_INFO" VALUE="{?printer_info}">
+<INPUT TYPE="HIDDEN" NAME="DEVICE_URI" VALUE="{device_uri}">
+
+<H2 CLASS="title">Paramètres du port série pour {printer_name}</H2>
+
+<TABLE>
+<TR>
+<TH CLASS="label">Baud/s :</TH>
+<TD><SELECT NAME="BAUDRATE">
+{[baudrates]<OPTION {?baudrate={baudrates}?SELECTED:}>{baudrates}}
+</SELECT></TD>
+</TR>
+<TR>
+<TH CLASS="label">Parité :</TH>
+<TD><SELECT NAME="PARITY">
+<OPTION VALUE="none" {?parity=none?SELECTED:}>Aucune
+<OPTION VALUE="even" {?parity=even?SELECTED:}>Paire
+<OPTION VALUE="odd" {?parity=odd?SELECTED:}>Impaire
+</SELECT></TD>
+</TR>
+<TR>
+<TH CLASS="label">Bits données :</TH>
+<TD><SELECT NAME="BITS">
+<OPTION {?bits=8?SELECTED:}>8
+<OPTION {?bits=7?SELECTED:}>7
+</SELECT></TD>
+</TR>
+<TR>
+<TH CLASS="label">Contrôle de flux :</TH>
+<TD><SELECT NAME="FLOW">
+<OPTION VALUE="none" {?flow=none?SELECTED:}>Auncun
+<OPTION VALUE="soft" {?flow=soft?SELECTED:}>XON/XOFF ( Logiciel )
+<OPTION VALUE="hard" {?flow=hard?SELECTED:}>RTS/CTS ( Matériel )
+<OPTION VALUE="dtrdsr" {?flow=dtrdsr?SELECTED:}>DTR/DSR ( Matériel )
+</SELECT></TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-continue.gif" ALT="Poursuivre"></TD>
+</TR>
+</TABLE>
+
+</FORM>
--- /dev/null
+<FORM METHOD="POST" ACTION="/admin">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_LOCATION" VALUE="{?printer_location}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_INFO" VALUE="{?printer_info}">
+<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE_AND_MODEL" VALUE="{?current_make_and_model}">
+
+<H2 CLASS="title">URI du matériel pour {printer_name}</H2>
+
+<TABLE>
+<TR>
+<TH CLASS="label">URI du matériel :</TH>
+<TD><INPUT TYPE="TEXT" SIZE="60" MAXLENGTH="1024" NAME="DEVICE_URI" VALUE="{device_uri}"></TD>
+</TR>
+<TR>
+<TD></TD>
+<TD>Exemples :
+<PRE>
+ http://nom_machine:631/ipp/
+ http://nom_machine:631/ipp/port1
+
+ ipp://nom_machine/ipp/
+ ipp://nom_machine/ipp/port1
+
+ lpd://nom_machine/queue
+
+ socket://nom_machine
+ socket://nom_machine:9100
+</PRE>
+
+<P>cf. <A HREF="/help/network.html" TARGET="_blank">"Network
+Printers"</A> pour construire l'URI à employer avec votre imprimante.</P>
+
+</TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-continue.gif" ALT="Poursuivre"></TD>
+</TR>
+</TABLE>
+
+</FORM>
+<FORM METHOD="POST" ACTION="/admin">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_LOCATION" VALUE="{?printer_location}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_INFO" VALUE="{?printer_info}">
+<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE_AND_MODEL" VALUE="{?current_make_and_model}">
+
+<H2 CLASS="title">URI du matériel pour {printer_name}</H2>
+
+<TABLE>
+<TR>
+<TH CLASS="label">URI du matériel :</TH>
+<TD><INPUT TYPE="TEXT" SIZE="60" MAXLENGTH="1024" NAME="DEVICE_URI" VALUE="{device_uri}"></TD>
+</TR>
+<TR>
+<TD></TD>
+<TD>Exemples :
+<PRE>
+ http://nom_machine:631/ipp/
+ http://nom_machine:631/ipp/port1
+
+ ipp://nom_machine/ipp/
+ ipp://nom_machine/ipp/port1
+
+ lpd://nom_machine/queue
+
+ socket://nom_machine
+ socket://nom_machine:9100
+</PRE>
+
+<P>cf. <A HREF="/help/network.html" TARGET="_blank">"Network
+Printers"</A> pour construire l'URI à employer avec votre imprimante.</P>
+
+</TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-continue.gif" ALT="Poursuivre"></TD>
+</TR>
+</TABLE>
+
+</FORM>
--- /dev/null
+<P>La classe <A HREF="/classes/{printer_name}">{printer_name}</A> a bien été ajoutée.
+<P>La classe <A HREF="/classes/{printer_name}">{printer_name}</A> a bien été ajoutée.
--- /dev/null
+<P><B>Attention :</B> Êtes vous sûr(e) de vouloir supprimer la classe
+{printer_name}?</P>
+
+<P ALIGN="CENTER"><A
+HREF="/admin?op=delete-class&printer_name={printer_name}&confirm=yes"><IMG
+SRC="/images/button-delete-class.gif" ALT="Supprimer la classe"
+CLASS="button"></A></P>
+<P><B>Attention :</B> Êtes vous sûr(e) de vouloir supprimer la classe
+{printer_name}?</P>
+
+<P ALIGN="CENTER"><A
+HREF="/admin?op=delete-class&printer_name={printer_name}&confirm=yes"><IMG
+SRC="/images/button-delete-class.gif" ALT="Supprimer la classe"
+CLASS="button"></A></P>
--- /dev/null
+<P>La classe {printer_name} a bien été supprimée.
+<P>La classe {printer_name} a bien été supprimée.
--- /dev/null
+<H3 CLASS="title">Tâches d'impression</H3>
+<H3 CLASS="title">Tâches d'impression</H3>
--- /dev/null
+<P>La classe <A HREF="/classes/{printer_name}">{printer_name}</A> a bien été modifiée.
+<P>La classe <A HREF="/classes/{printer_name}">{printer_name}</A> a bien été modifiée.
--- /dev/null
+<P ALIGN="CENTER">{total=0?Aucune classe:Affichage de {#printer_name} classe{#printer_name=1?:s} sur {total}}.</P>
+<P ALIGN="CENTER">{total=0?Aucune classe:Affichage de {#printer_name} classe{#printer_name=1?:s} sur {total}}.</P>
--- /dev/null
+{#printer_name=0?:
+{[printer_name]
+<H2 CLASS="title"><A HREF="{printer_uri_supported}">{printer_name}</A>{default_name={printer_name}? ( Imprimante par défaut ) :}
+{?printer_state_message=?:<SPAN CLASS="message">"{printer_state_message}"</SPAN>}</H2>
+
+<TABLE WIDTH="100%" CLASS="button" CELLSPACING="0" CELLPADDING="0" SUMMARY="{printer_name}">
+<TR>
+<TD VALIGN=TOP><A HREF="{printer_uri_supported}">
+<IMG SRC="/images/classes.gif" CLASS="button" ALT=""></A></TD>
+<TD VALIGN=TOP><B>Description :</B> {printer_info}<BR>
+<B>Lieu :</B> {printer_location}<BR>
+<B>État de la classe:</B> {printer_state=3?ne fait rien:{printer_state=4?en cours d'impression:arrêtée}},
+{printer_is_accepting_jobs=0?rejette les tâches:accepte les tâches}, {printer_is_shared=0?cachée:publique}.
+{?member_uris=?:<BR>Membres : {member_uris}}
+
+<P>
+<A HREF="{printer_uri_supported}?op=print-test-page">
+<IMG SRC="/images/button-print-test-page.gif" ALT="Imprimer une page de test" CLASS="button"></A>
+{printer_state=5?
+<A HREF="{admin_uri}?op=start-class&printer_name={%printer_name}&is_class=Y">
+<IMG SRC="/images/button-start-class.gif" ALT="Démarrer la classe" CLASS="button"></A>
+:
+<A HREF="{admin_uri}?op=stop-class&printer_name={%printer_name}&is_class=Y">
+<IMG SRC="/images/button-stop-class.gif" ALT="Arrêter la classe" CLASS="button"></A>
+}
+{printer_is_accepting_jobs=0?
+<A HREF="{admin_uri}?op=accept-jobs&printer_name={%printer_name}&is_class=Y">
+<IMG SRC="/images/button-accept-jobs.gif" ALT="Accepter les tâches" CLASS="button"></A>
+:
+<A HREF="{admin_uri}?op=reject-jobs&printer_name={%printer_name}&is_class=Y">
+<IMG SRC="/images/button-reject-jobs.gif" ALT="Rejeter les tâches" CLASS="button"></A>
+}
+<A HREF="{admin_uri}?op=purge-jobs&printer_name={%printer_name}&is_class=Y">
+<IMG SRC="/images/button-cancel-all-jobs.gif" ALT="Annuler toutes les tâches" CLASS="button"></A>
+{printer_is_shared=0?
+<A HREF="{admin_uri}?op=set-sharing&printer_name={%printer_name}&shared=1&is_class=Y">
+<IMG SRC="/images/button-publish-printer.gif" ALT="Publier l'imprimante" CLASS="button"></A>
+:
+<A HREF="{admin_uri}?op=set-sharing&printer_name={%printer_name}&shared=0&is_class=Y">
+<IMG SRC="/images/button-unpublish-printer.gif" ALT="Cacher l'imprimante" CLASS="button"></A>
+}
+<A HREF="{admin_uri}?op=modify-class&printer_name={%printer_name}">
+<IMG SRC="/images/button-modify-class.gif" ALT="Modifier la classe" CLASS="button"></A>
+<A HREF="{admin_uri}?op=delete-class&printer_name={%printer_name}">
+<IMG SRC="/images/button-delete-class.gif" ALT="Supprimer la classe" CLASS="button"></A>
+<A HREF="{admin_uri}?op=set-as-default&printer_name={%printer_name}&is_class=Y">
+<IMG SRC="/images/button-set-as-default.gif" ALT="Choisir par défaut" CLASS="button"></A>
+<A HREF="{admin_uri}?op=set-allowed-users&printer_name={%printer_name}&is_class=Y">
+<IMG SRC="/images/button-set-allowed-users.gif" ALT="Définir les autorisations" CLASS="button"></A>
+</P>
+</TD>
+</TR>
+</TABLE>
+}}
+{#printer_name=0?:
+{[printer_name]
+<H2 CLASS="title"><A HREF="{printer_uri_supported}">{printer_name}</A>{default_name={printer_name}? ( Imprimante par défaut ) :}
+{?printer_state_message=?:<SPAN CLASS="message">"{printer_state_message}"</SPAN>}</H2>
+
+<TABLE WIDTH="100%" CLASS="button" CELLSPACING="0" CELLPADDING="0" SUMMARY="{printer_name}">
+<TR>
+<TD VALIGN=TOP><A HREF="{printer_uri_supported}">
+<IMG SRC="/images/classes.gif" CLASS="button" ALT=""></A></TD>
+<TD VALIGN=TOP><B>Description :</B> {printer_info}<BR>
+<B>Lieu :</B> {printer_location}<BR>
+<B>État de la classe:</B> {printer_state=3?ne fait rien:{printer_state=4?en cours d'impression:arrêtée}},
+{printer_is_accepting_jobs=0?rejette les tâches:accepte les tâches}, {printer_is_shared=0?cachée:publique}.
+{?member_uris=?:<BR>Membres : {member_uris}}
+
+<P>
+<A HREF="{printer_uri_supported}?op=print-test-page">
+<IMG SRC="/images/button-print-test-page.gif" ALT="Imprimer une page de test" CLASS="button"></A>
+{printer_state=5?
+<A HREF="{admin_uri}?op=start-class&printer_name={%printer_name}&is_class=Y">
+<IMG SRC="/images/button-start-class.gif" ALT="Démarrer la classe" CLASS="button"></A>
+:
+<A HREF="{admin_uri}?op=stop-class&printer_name={%printer_name}&is_class=Y">
+<IMG SRC="/images/button-stop-class.gif" ALT="Arrêter la classe" CLASS="button"></A>
+}
+{printer_is_accepting_jobs=0?
+<A HREF="{admin_uri}?op=accept-jobs&printer_name={%printer_name}&is_class=Y">
+<IMG SRC="/images/button-accept-jobs.gif" ALT="Accepter les tâches" CLASS="button"></A>
+:
+<A HREF="{admin_uri}?op=reject-jobs&printer_name={%printer_name}&is_class=Y">
+<IMG SRC="/images/button-reject-jobs.gif" ALT="Rejeter les tâches" CLASS="button"></A>
+}
+<A HREF="{admin_uri}?op=purge-jobs&printer_name={%printer_name}&is_class=Y">
+<IMG SRC="/images/button-cancel-all-jobs.gif" ALT="Annuler toutes les tâches" CLASS="button"></A>
+{printer_is_shared=0?
+<A HREF="{admin_uri}?op=set-sharing&printer_name={%printer_name}&shared=1&is_class=Y">
+<IMG SRC="/images/button-publish-printer.gif" ALT="Publier l'imprimante" CLASS="button"></A>
+:
+<A HREF="{admin_uri}?op=set-sharing&printer_name={%printer_name}&shared=0&is_class=Y">
+<IMG SRC="/images/button-unpublish-printer.gif" ALT="Cacher l'imprimante" CLASS="button"></A>
+}
+<A HREF="{admin_uri}?op=modify-class&printer_name={%printer_name}">
+<IMG SRC="/images/button-modify-class.gif" ALT="Modifier la classe" CLASS="button"></A>
+<A HREF="{admin_uri}?op=delete-class&printer_name={%printer_name}">
+<IMG SRC="/images/button-delete-class.gif" ALT="Supprimer la classe" CLASS="button"></A>
+<A HREF="{admin_uri}?op=set-as-default&printer_name={%printer_name}&is_class=Y">
+<IMG SRC="/images/button-set-as-default.gif" ALT="Choisir par défaut" CLASS="button"></A>
+<A HREF="{admin_uri}?op=set-allowed-users&printer_name={%printer_name}&is_class=Y">
+<IMG SRC="/images/button-set-allowed-users.gif" ALT="Définir les autorisations" CLASS="button"></A>
+</P>
+</TD>
+</TR>
+</TABLE>
+}}
--- /dev/null
+<SCRIPT TYPE="text/javascript">
+function reset_config()
+{
+ document.cups.CUPSDCONF.value =
+"# Écrire des informations générales dans error_log - changez \\"info\\" en \\"debug\\"\\n" +
+"# pour la résolution de problème...\\n" +
+"LogLevel info\\n" +
+"\\n" +
+"\\n" +
+"# Groupe des utilisateurs UNIX pour les administrateurs CUPS...\\n" +
+"SystemGroup @CUPS_SYSTEM_GROUPS@\\n" +
+"\\n" +
+"\\n" +
+"# N'accepter que les connexions de la machine locale.\\n" +
+"Listen localhost:@DEFAULT_IPP_PORT@\\n" +
+"@CUPS_LISTEN_DOMAINSOCKET@\\n" +
+"\\n" +
+"\\n" +
+"# Publier les imprimantes partagées sur le réseau local.\\n" +
+"Browsing On\\n" +
+"BrowseOrder allow,deny\\n" +
+"BrowseAllow @LOCAL\\n" +
+"\\n" +
+"\\n" +
+"# S'authentifier par défaut via les comptes UNIX...\\n" +
+"DefaultAuthType Basic\\n" +
+"\\n" +
+"# Restreindre l'accès au serveur...\\n" +
+"<Location />\\n" +
+" Order allow,deny\\n" +
+" Allow localhost\\n" +
+"</Location>\\n" +
+"\\n" +
+"# Restreindre l'accès aux pages d'administration...\\n" +
+"<Location /admin>\\n" +
+"@ENCRYPTION_REQUIRED@\\n" +
+" Order allow,deny\\n" +
+" Allow localhost\\n" +
+"</Location>\\n" +
+"\\n" +
+"# Restreindre l'accès au ficher de configuration...\\n" +
+"<Location /admin/conf>\\n" +
+" AuthType Basic\\n" +
+" Require user @SYSTEM\\n" +
+" Order allow,deny\\n" +
+" Allow localhost\\n" +
+"</Location>\\n" +
+"\\n" +
+"# Définir la politique par défaut des tâches d'impression...\\n" +
+"<Policy default>\\n" +
+" # Les opérations sur les tâches doivent être faites par leur propriétaire ou un adminstrateur...\\n" +
+" <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job CUPS-Move-Job>\\n" +
+" Require user @OWNER @SYSTEM\\n" +
+" Order deny,allow\\n" +
+" </Limit>\\n" +
+"\\n" +
+" # Toutes les opérations d'administration nécessite l'authentification d'un adminstrateur...\\n" +
+" <Limit Pause-Printer Resume-Printer Set-Printer-Attributes Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After CUPS-Add-Printer CUPS-Delete-Printer CUPS-Add-Class CUPS-Delete-Class CUPS-Accept-Jobs CUPS-Reject-Jobs CUPS-Set-Default>\\n" +
+" AuthType Basic\\n" +
+" Require user @SYSTEM\\n" +
+" Order deny,allow\\n" +
+" </Limit>\\n" +
+"\\n" +
+" # Seuls le propriétaire et un administrateur peuvent annuler ou authentifier une tâche...\\n" +
+" <Limit Cancel-Job CUPS-Authenticate-Job>\\n" +
+" Require user @OWNER @SYSTEM\\n" +
+" Order deny,allow\\n" +
+" </Limit>\\n" +
+"\\n" +
+" <Limit All>\\n" +
+" Order deny,allow\\n" +
+" </Limit>\\n" +
+"</Policy>\\n";
+}
+</SCRIPT>
+
+<H2 CLASS="title">Ficher de configuration du serveur</H2>
+
+<FORM NAME="cups" METHOD="POST" ACTION="/admin/">
+
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="config-server">
+
+<TEXTAREA NAME="CUPSDCONF" COLS="80" ROWS="25">{CUPSDCONF}</TEXTAREA>
+
+<P><INPUT TYPE="IMAGE" SRC="/images/button-save-changes.gif"
+ALT="Enregistrer les modifications"> <A
+HREF="javascript:reset_config();"><IMG
+SRC="/images/button-use-default-config.gif" CLASS="button"
+ALT="Utiliser la configuration par défaut"></A></P>
+
+</FORM>
+<SCRIPT TYPE="text/javascript">
+function reset_config()
+{
+ document.cups.CUPSDCONF.value =
+"# Écrire des informations générales dans error_log - changez \\"info\\" en \\"debug\\"\\n" +
+"# pour la résolution de problème...\\n" +
+"LogLevel info\\n" +
+"\\n" +
+"\\n" +
+"# Groupe des utilisateurs UNIX pour les administrateurs CUPS...\\n" +
+"SystemGroup @CUPS_SYSTEM_GROUPS@\\n" +
+"\\n" +
+"\\n" +
+"# N'accepter que les connexions de la machine locale.\\n" +
+"Listen localhost:@DEFAULT_IPP_PORT@\\n" +
+"@CUPS_LISTEN_DOMAINSOCKET@\\n" +
+"\\n" +
+"\\n" +
+"# Publier les imprimantes partagées sur le réseau local.\\n" +
+"Browsing On\\n" +
+"BrowseOrder allow,deny\\n" +
+"BrowseAllow @LOCAL\\n" +
+"\\n" +
+"\\n" +
+"# S'authentifier par défaut via les comptes UNIX...\\n" +
+"DefaultAuthType Basic\\n" +
+"\\n" +
+"# Restreindre l'accès au serveur...\\n" +
+"<Location />\\n" +
+" Order allow,deny\\n" +
+" Allow localhost\\n" +
+"</Location>\\n" +
+"\\n" +
+"# Restreindre l'accès aux pages d'administration...\\n" +
+"<Location /admin>\\n" +
+"@ENCRYPTION_REQUIRED@\\n" +
+" Order allow,deny\\n" +
+" Allow localhost\\n" +
+"</Location>\\n" +
+"\\n" +
+"# Restreindre l'accès au ficher de configuration...\\n" +
+"<Location /admin/conf>\\n" +
+" AuthType Basic\\n" +
+" Require user @SYSTEM\\n" +
+" Order allow,deny\\n" +
+" Allow localhost\\n" +
+"</Location>\\n" +
+"\\n" +
+"# Définir la politique par défaut des tâches d'impression...\\n" +
+"<Policy default>\\n" +
+" # Les opérations sur les tâches doivent être faites par leur propriétaire ou un adminstrateur...\\n" +
+" <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job CUPS-Move-Job>\\n" +
+" Require user @OWNER @SYSTEM\\n" +
+" Order deny,allow\\n" +
+" </Limit>\\n" +
+"\\n" +
+" # Toutes les opérations d'administration nécessite l'authentification d'un adminstrateur...\\n" +
+" <Limit Pause-Printer Resume-Printer Set-Printer-Attributes Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After CUPS-Add-Printer CUPS-Delete-Printer CUPS-Add-Class CUPS-Delete-Class CUPS-Accept-Jobs CUPS-Reject-Jobs CUPS-Set-Default>\\n" +
+" AuthType Basic\\n" +
+" Require user @SYSTEM\\n" +
+" Order deny,allow\\n" +
+" </Limit>\\n" +
+"\\n" +
+" # Seuls le propriétaire et un administrateur peuvent annuler ou authentifier une tâche...\\n" +
+" <Limit Cancel-Job CUPS-Authenticate-Job>\\n" +
+" Require user @OWNER @SYSTEM\\n" +
+" Order deny,allow\\n" +
+" </Limit>\\n" +
+"\\n" +
+" <Limit All>\\n" +
+" Order deny,allow\\n" +
+" </Limit>\\n" +
+"</Policy>\\n";
+}
+</SCRIPT>
+
+<H2 CLASS="title">Ficher de configuration du serveur</H2>
+
+<FORM NAME="cups" METHOD="POST" ACTION="/admin/">
+
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="config-server">
+
+<TEXTAREA NAME="CUPSDCONF" COLS="80" ROWS="25">{CUPSDCONF}</TEXTAREA>
+
+<P><INPUT TYPE="IMAGE" SRC="/images/button-save-changes.gif"
+ALT="Enregistrer les modifications"> <A
+HREF="javascript:reset_config();"><IMG
+SRC="/images/button-use-default-config.gif" CLASS="button"
+ALT="Utiliser la configuration par défaut"></A></P>
+
+</FORM>
--- /dev/null
+<P>Erreur :</P>
+
+<BLOCKQUOTE>Opération inconnue : "{op}"!</BLOCKQUOTE>
+<P>Erreur :</P>
+
+<BLOCKQUOTE>Opération inconnue : "{op}"!</BLOCKQUOTE>
--- /dev/null
+<P>{?message?{message}:Erreur :}</P>
+
+<BLOCKQUOTE>{error}</BLOCKQUOTE>
+<P>{?message?{message}:Erreur :}</P>
+
+<BLOCKQUOTE>{error}</BLOCKQUOTE>
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+<HTML>
+<HEAD>
+ <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+ <TITLE>{title} - CUPS @CUPS_VERSION@@CUPS_REVISION@</TITLE>
+ <!-- Prevent caching of CGI content -->
+ <META HTTP-EQUIV="Expires" CONTENT="now">
+ <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
+ {refresh_page?<META HTTP-EQUIV="Refresh" CONTENT="{refresh_page}">:}
+ <LINK REL="STYLESHEET" TYPE="text/css" HREF="/cups.css">
+ <LINK REL="SHORTCUT ICON" HREF="/favicon.ico" TYPE="image/x-icon">
+</HEAD>
+<BODY>
+<TABLE WIDTH="100%" STYLE="height: 100%;" BORDER="0" CELLSPACING="0" CELLPADDING="0" SUMMARY="{title}">
+<TR CLASS="HEADER">
+<TD VALIGN="TOP" WIDTH="15" ROWSPAN="2"><IMG SRC="/images/top-left.gif" WIDTH="15" HEIGHT="80" ALT=""></TD>
+<TD VALIGN="TOP" WIDTH="55" ROWSPAN="2"><IMG SRC="/images/top-middle.gif" WIDTH="55" HEIGHT="80" ALT=""></TD>
+<TD WIDTH="100%" HEIGHT="60"><H1>{title}</H1></TD>
+<TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="15" ROWSPAN="2"><IMG
+SRC="/images/top-right.gif" WIDTH="15" HEIGHT="15" ALT=""></TD>
+</TR>
+<TR CLASS="HEADER"><TD WIDTH="100%" VALIGN="BOTTOM" NOWRAP>
+
+<A CLASS="unsel" HREF="/"><IMG SRC="/images/tab-left.gif"
+WIDTH="4" HEIGHT="4" ALIGN="TOP" BORDER="0"
+ALT=""> Accueil <IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+ <A CLASS="{SECTION=admin?:un}sel" HREF="/admin"><IMG
+SRC="/images/tab-left.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""> Administration <IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+ <A CLASS="{SECTION=classes?:un}sel" HREF="/classes/"><IMG
+SRC="/images/tab-left.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""> Classes <IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+ <A CLASS="{SECTION=help?:un}sel" HREF="/help/"><IMG
+SRC="/images/tab-left.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""> Documentation/Aide <IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+ <A CLASS="{SECTION=jobs?:un}sel" HREF="/jobs/"><IMG
+SRC="/images/tab-left.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""> Tâches <IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+ <A CLASS="{SECTION=printers?:un}sel" HREF="/printers/"><IMG
+SRC="/images/tab-left.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""> Imprimantes <IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+</TD></TR>
+<TR CLASS="page">
+<TD WIDTH="15"> </TD>
+<TD COLSPAN="2" WIDTH="100%" STYLE="height: 100%;" VALIGN="TOP" CLASS="page">
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+<HTML>
+<HEAD>
+ <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+ <TITLE>{title} - CUPS @CUPS_VERSION@@CUPS_REVISION@</TITLE>
+ <!-- Prevent caching of CGI content -->
+ <META HTTP-EQUIV="Expires" CONTENT="now">
+ <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
+ {refresh_page?<META HTTP-EQUIV="Refresh" CONTENT="{refresh_page}">:}
+ <LINK REL="STYLESHEET" TYPE="text/css" HREF="/cups.css">
+ <LINK REL="SHORTCUT ICON" HREF="/favicon.ico" TYPE="image/x-icon">
+</HEAD>
+<BODY>
+<TABLE WIDTH="100%" STYLE="height: 100%;" BORDER="0" CELLSPACING="0" CELLPADDING="0" SUMMARY="{title}">
+<TR CLASS="HEADER">
+<TD VALIGN="TOP" WIDTH="15" ROWSPAN="2"><IMG SRC="/images/top-left.gif" WIDTH="15" HEIGHT="80" ALT=""></TD>
+<TD VALIGN="TOP" WIDTH="55" ROWSPAN="2"><IMG SRC="/images/top-middle.gif" WIDTH="55" HEIGHT="80" ALT=""></TD>
+<TD WIDTH="100%" HEIGHT="60"><H1>{title}</H1></TD>
+<TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="15" ROWSPAN="2"><IMG
+SRC="/images/top-right.gif" WIDTH="15" HEIGHT="15" ALT=""></TD>
+</TR>
+<TR CLASS="HEADER"><TD WIDTH="100%" VALIGN="BOTTOM" NOWRAP>
+
+<A CLASS="unsel" HREF="/"><IMG SRC="/images/tab-left.gif"
+WIDTH="4" HEIGHT="4" ALIGN="TOP" BORDER="0"
+ALT=""> Accueil <IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+ <A CLASS="{SECTION=admin?:un}sel" HREF="/admin"><IMG
+SRC="/images/tab-left.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""> Administration <IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+ <A CLASS="{SECTION=classes?:un}sel" HREF="/classes/"><IMG
+SRC="/images/tab-left.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""> Classes <IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+ <A CLASS="{SECTION=help?:un}sel" HREF="/help/"><IMG
+SRC="/images/tab-left.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""> Documentation/Aide <IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+ <A CLASS="{SECTION=jobs?:un}sel" HREF="/jobs/"><IMG
+SRC="/images/tab-left.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""> Tâches <IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+ <A CLASS="{SECTION=printers?:un}sel" HREF="/printers/"><IMG
+SRC="/images/tab-left.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""> Imprimantes <IMG
+SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
+BORDER="0" ALT=""></A>
+
+</TD></TR>
+<TR CLASS="page">
+<TD WIDTH="15"> </TD>
+<TD COLSPAN="2" WIDTH="100%" STYLE="height: 100%;" VALIGN="TOP" CLASS="page">
--- /dev/null
+<FORM ACTION="/help/{?HELPFILE}" METHOD="GET">
+{TOPIC?<INPUT TYPE="HIDDEN" NAME="TOPIC" VALUE="{TOPIC}">:}
+
+<P ALIGN="CENTER"><B>Rechercher dans
+{HELPTITLE?{HELPTITLE}:{TOPIC?{TOPIC}:Tous les Documents}}:</B> <INPUT
+TYPE="TEXT" NAME="QUERY" VALUE="{?QUERY}" SIZE="60"> <INPUT
+TYPE="IMAGE" SRC="/images/button-search.gif" ALT="Search">
+<A HREF="/help/{?HELPFILE}{QUERY?{TOPIC??TOPIC={TOPIC}:}:}"><IMG
+SRC="/images/button-clear.gif" ALT="Clear" CLASS="button"></A></P>
+
+</FORM>
+
+<!-- Bookmarks -->
+<DIV CLASS="sidebar">
+<H3 CLASS="title">Documents d'aide en ligne</H3>
+
+<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>
+}
+</DIV>
+
+{QUERY?<P>Résultats de la recherche dans {HELPFILE?{HELPTITLE}:{TOPIC?{TOPIC}:Tous les Documents}}\:</P>
+{QTEXT?<UL>
+{[QTEXT]<LI><A HREF="{QLINK}">{QTEXT}</A>{QPTEXT? (in <I><A HREF="{QPLINK}">{QPTEXT}</A></I>):}</LI>}
+{QTEXT?</UL>:}
+:<P>Aucun résultat.</P>}
+<HR NOSHADE>:}
+{HELPTITLE?<H1>{HELPTITLE}
+<A HREF="/help/{HELPFILE}?PRINTABLE=YES" TARGET="_blank"><IMG
+SRC="/images/button-view-printable-version.gif" ALT="Version imprimable"
+CLASS="button"></A></H1>:<H1>Pages d'aide de CUPS</H1>
+
+<P>Voici l'interface d'aide en ligne de CUPS. Entrez ci-dessus les mots à rechercher
+ou cliquez sur un lien ci-contre pour afficher l'ade en ligne du document.</P>
+
+<P><SMALL><B>NDT:</B> Cette interface n'a pas été traduite en Français. Si vous souhaitez vous
+atteler à cette tâche, merci d'aller au préalable sur le forum <A
+HREF="http://www.cups.org/newsgroups.php?gcups.development">cups.development</A>
+pour en informer les développeurs.</SMALL></P>
+
+<P>Si vous êtes un nouvel utilisateur de CUPS, lisez la page "<a
+href="overview.html">Overview of CUPS</a>". Il est conseillé aux utilisateurs
+habitués de lire la page "<a href="whatsnew.html">What's New in CUPS
+1.2</a>".</P>
+
+<P>La <A HREF="http://www.cups.org/">page d'accueil de CUPS</A> donne aussi
+accès à de nombreuses ressources, comme des forums de discussion pour les
+utilisateurs, des réponses aux questions fréquentes, et un formulaire pour
+soumettre des rapports de <I>bug</I> ou des demandes pour de nouvelles
+fonctionnalités.</P>}
+<FORM ACTION="/help/{?HELPFILE}" METHOD="GET">
+{TOPIC?<INPUT TYPE="HIDDEN" NAME="TOPIC" VALUE="{TOPIC}">:}
+
+<P ALIGN="CENTER"><B>Rechercher dans
+{HELPTITLE?{HELPTITLE}:{TOPIC?{TOPIC}:Tous les Documents}}:</B> <INPUT
+TYPE="TEXT" NAME="QUERY" VALUE="{?QUERY}" SIZE="60"> <INPUT
+TYPE="IMAGE" SRC="/images/button-search.gif" ALT="Search">
+<A HREF="/help/{?HELPFILE}{QUERY?{TOPIC??TOPIC={TOPIC}:}:}"><IMG
+SRC="/images/button-clear.gif" ALT="Clear" CLASS="button"></A></P>
+
+</FORM>
+
+<!-- Bookmarks -->
+<DIV CLASS="sidebar">
+<H3 CLASS="title">Documents d'aide en ligne</H3>
+
+<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>
+}
+</DIV>
+
+{QUERY?<P>Résultats de la recherche dans {HELPFILE?{HELPTITLE}:{TOPIC?{TOPIC}:Tous les Documents}}\:</P>
+{QTEXT?<UL>
+{[QTEXT]<LI><A HREF="{QLINK}">{QTEXT}</A>{QPTEXT? (in <I><A HREF="{QPLINK}">{QPTEXT}</A></I>):}</LI>}
+{QTEXT?</UL>:}
+:<P>Aucun résultat.</P>}
+<HR NOSHADE>:}
+{HELPTITLE?<H1>{HELPTITLE}
+<A HREF="/help/{HELPFILE}?PRINTABLE=YES" TARGET="_blank"><IMG
+SRC="/images/button-view-printable-version.gif" ALT="Version imprimable"
+CLASS="button"></A></H1>:<H1>Pages d'aide de CUPS</H1>
+
+<P>Voici l'interface d'aide en ligne de CUPS. Entrez ci-dessus les mots à rechercher
+ou cliquez sur un lien ci-contre pour afficher l'ade en ligne du document.</P>
+
+<P><SMALL><B>NDT:</B> Cette interface n'a pas été traduite en Français. Si vous souhaitez vous
+atteler à cette tâche, merci d'aller au préalable sur le forum <A
+HREF="http://www.cups.org/newsgroups.php?gcups.development">cups.development</A>
+pour en informer les développeurs.</SMALL></P>
+
+<P>Si vous êtes un nouvel utilisateur de CUPS, lisez la page "<a
+href="overview.html">Overview of CUPS</a>". Il est conseillé aux utilisateurs
+habitués de lire la page "<a href="whatsnew.html">What's New in CUPS
+1.2</a>".</P>
+
+<P>La <A HREF="http://www.cups.org/">page d'accueil de CUPS</A> donne aussi
+accès à de nombreuses ressources, comme des forums de discussion pour les
+utilisateurs, des réponses aux questions fréquentes, et un formulaire pour
+soumettre des rapports de <I>bug</I> ou des demandes pour de nouvelles
+fonctionnalités.</P>}
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+<HTML>
+<HEAD>
+ <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+ <TITLE>{HELPTITLE}</TITLE>
+ <LINK REL="STYLESHEET" TYPE="text/css" HREF="/cups-printable.css">
+ <LINK REL="SHORTCUT ICON" HREF="/favicon.ico" TYPE="image/x-icon">
+</HEAD>
+<BODY>
+
+<H1>{HELPTITLE}</H1>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+<HTML>
+<HEAD>
+ <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
+ <TITLE>{HELPTITLE}</TITLE>
+ <LINK REL="STYLESHEET" TYPE="text/css" HREF="/cups-printable.css">
+ <LINK REL="SHORTCUT ICON" HREF="/favicon.ico" TYPE="image/x-icon">
+</HEAD>
+<BODY>
+
+<H1>{HELPTITLE}</H1>
--- /dev/null
+<P><A HREF="{job_printer_uri}">La tâche n°{job_id}</A> a été annulée.
+<P><A HREF="{job_printer_uri}">La tâche n°{job_id}</A> a été annulée.
--- /dev/null
+<P><A HREF="{job_printer_uri}">La tâche n°{job_id}</A> est retenue en attente.
+<P><A HREF="{job_printer_uri}">La tâche n°{job_id}</A> est retenue en attente.
--- /dev/null
+<FORM METHOD="POST" ACTION="/{SECTION}/{job_id?:{printer_name}}">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+{job_id?<INPUT TYPE="HIDDEN" NAME="JOB_ID" VALUE="{job_id}">:}
+
+<H2 CLASS="title">{job_id?Transférer la tâche n°{job_id}:Transférer toutes les tâches}</H2>
+
+<TABLE>
+<TR>
+<TH CLASS="label">Nouvelle destination :</TH>
+<TD>
+<SELECT NAME="JOB_PRINTER_URI" SIZE="10">
+{[job_printer_uri]<OPTION VALUE="{job_printer_uri}">{job_printer_name}}
+</SELECT>
+</TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-move-job{job_id?:s}.gif" ALT="Transférer {job_id?la tâche:les tâches}"></TD>
+</TR>
+</TABLE>
+
+</FORM>
+<FORM METHOD="POST" ACTION="/{SECTION}/{job_id?:{printer_name}}">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+{job_id?<INPUT TYPE="HIDDEN" NAME="JOB_ID" VALUE="{job_id}">:}
+
+<H2 CLASS="title">{job_id?Transférer la tâche n°{job_id}:Transférer toutes les tâches}</H2>
+
+<TABLE>
+<TR>
+<TH CLASS="label">Nouvelle destination :</TH>
+<TD>
+<SELECT NAME="JOB_PRINTER_URI" SIZE="10">
+{[job_printer_uri]<OPTION VALUE="{job_printer_uri}">{job_printer_name}}
+</SELECT>
+</TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-move-job{job_id?:s}.gif" ALT="Transférer {job_id?la tâche:les tâches}"></TD>
+</TR>
+</TABLE>
+
+</FORM>
--- /dev/null
+<P>{job_id?<A HREF="/jobs/{job_id}">La tâche n°{job_id}</A>:Toutes les tâches}
+ont été transférées vers <A HREF="{job_printer_uri}">{job_printer_name}</A>.</P>
+<P>{job_id?<A HREF="/jobs/{job_id}">La tâche n°{job_id}</A>:Toutes les tâches}
+ont été transférées vers <A HREF="{job_printer_uri}">{job_printer_name}</A>.</P>
--- /dev/null
+<P><A HREF="{job_printer_uri}">La tâche n°{job_id}</A> a été libérée pour l'impression.
+<P><A HREF="{job_printer_uri}">La tâche n°{job_id}</A> a été libérée pour l'impression.
--- /dev/null
+<P><A HREF="{job_printer_uri}">La tâche n°{job_id}</A> a été redémarrée.
+<P><A HREF="{job_printer_uri}">La tâche n°{job_id}</A> a été redémarrée.
--- /dev/null
+<P>{?which_jobs=?<A
+HREF="{?printer_name=?/jobs:{printer_uri_supported}}?which_jobs=completed"><IMG
+SRC="/images/button-show-completed.gif" CLASS="button" ALT="Montrer les tâches terminées"></A>
+<A HREF="{?printer_name=?/jobs:{printer_uri_supported}}?which_jobs=all"><IMG
+SRC="/images/button-show-all.gif" CLASS="button" ALT="Montrer toutes les tâches">:{which_jobs=all?<A
+HREF="{?printer_name=?/jobs:{printer_uri_supported}}?which_jobs=completed"><IMG
+SRC="/images/button-show-completed.gif" CLASS="button" ALT="Montrer les tâches terminées"></A>
+<A HREF="{?printer_name=?/jobs:{printer_uri_supported}}"><IMG
+SRC="/images/button-show-active.gif" CLASS="button" ALT="Montrer les tâches en cours">:<A
+HREF="{?printer_name=?/jobs:{printer_uri_supported}}"><IMG
+SRC="/images/button-show-active.gif" CLASS="button" ALT="Montrer les tâches en cours"></A>
+<A HREF="{?printer_name=?/jobs:{printer_uri_supported}}?which_jobs=all"><IMG
+SRC="/images/button-show-all.gif" CLASS="button" ALT="Montrer toutes les tâches">}}</A></P>
+
+<P ALIGN="CENTER">{total=0?Aucune tâche:Affichage de {#job_id}
+tâche{#job_id=1?:s} {?which_jobs=?en cours:{which_jobs=all?:terminée{#job_id=1?:s}}} sur {total}}.</P>
+<P>{?which_jobs=?<A
+HREF="{?printer_name=?/jobs:{printer_uri_supported}}?which_jobs=completed"><IMG
+SRC="/images/button-show-completed.gif" CLASS="button" ALT="Montrer les tâches terminées"></A>
+<A HREF="{?printer_name=?/jobs:{printer_uri_supported}}?which_jobs=all"><IMG
+SRC="/images/button-show-all.gif" CLASS="button" ALT="Montrer toutes les tâches">:{which_jobs=all?<A
+HREF="{?printer_name=?/jobs:{printer_uri_supported}}?which_jobs=completed"><IMG
+SRC="/images/button-show-completed.gif" CLASS="button" ALT="Montrer les tâches terminées"></A>
+<A HREF="{?printer_name=?/jobs:{printer_uri_supported}}"><IMG
+SRC="/images/button-show-active.gif" CLASS="button" ALT="Montrer les tâches en cours">:<A
+HREF="{?printer_name=?/jobs:{printer_uri_supported}}"><IMG
+SRC="/images/button-show-active.gif" CLASS="button" ALT="Montrer les tâches en cours"></A>
+<A HREF="{?printer_name=?/jobs:{printer_uri_supported}}?which_jobs=all"><IMG
+SRC="/images/button-show-all.gif" CLASS="button" ALT="Montrer toutes les tâches">}}</A></P>
+
+<P ALIGN="CENTER">{total=0?Aucune tâche:Affichage de {#job_id}
+tâche{#job_id=1?:s} {?which_jobs=?en cours:{which_jobs=all?:terminée{#job_id=1?:s}}} sur {total}}.</P>
--- /dev/null
+{#job_id=0?:
+<TABLE CELLPADDING="0" CELLSPACING="0" CLASS="button" WIDTH="100%" SUMMARY="Liste de tâches">
+<TR CLASS="data">
+<TH>N° </TH>
+<TH>Nom </TH>
+<TH>Utilisateur </TH>
+<TH>Taille </TH>
+<TH>Pages </TH>
+<TH>État </TH>
+<TH>Contrôle </TH>
+</TR>
+
+{[job_id]
+<TR CLASS="data" VALIGN="TOP">
+<TD><A HREF="{job_printer_uri}">{job_printer_name}</A>-{job_id} </TD>
+<TD>{?job_name=?Inconnue:{job_name}} </TD>
+<TD>{job_originating_user_name} </TD>
+<TD>{job_k_octets}ko </TD>
+<TD>{job_media_sheets_completed=0?Inconnue:{?job_media_sheets_completed}} </TD>
+<TD>{job_state=3?en attente depuis le<BR>{time_at_creation}:{job_state=4?retenue depuis le<BR>{time_at_creation}:
+{job_state=5?en cours depuis le<BR>{time_at_processing}:{job_state=6?arrêtée:
+{job_state=7?annulée le<BR>{time_at_completed}:{job_state=8?abandonnée:terminée le<BR>{time_at_completed}}}}}}} </TD>
+<TD>
+{job_preserved>0?
+<A HREF="/jobs/?op=restart-job&job_id={job_id}&job_printer_uri={job_printer_uri}">
+<IMG SRC="/images/button-restart-job.gif" ALT="Redémarrer la tâche" CLASS="button"></A>:}
+{job_state=4?
+<A HREF="/jobs/?op=release-job&job_id={job_id}&job_printer_uri={job_printer_uri}">
+<IMG SRC="/images/button-release-job.gif" ALT="Libérer la tâche" CLASS="button"></A>:}
+{job_state=3?
+<A HREF="/jobs/?op=hold-job&job_id={job_id}&job_printer_uri={job_printer_uri}">
+<IMG SRC="/images/button-hold-job.gif" ALT="Retenir la tâche" CLASS="button"></A>:}
+{job_state<7?
+<A HREF="/jobs/?op=cancel-job&job_id={job_id}&job_printer_uri={job_printer_uri}">
+<IMG SRC="/images/button-cancel-job.gif" ALT="Annuler la tâche" CLASS="button"></A>
+<A HREF="/jobs/?op=move-job&job_id={job_id}"><IMG
+SRC="/images/button-move-job.gif" ALT="Transférer la tâche" CLASS="button"></A>:}
+ </TD>
+</TR>
+}
+</TABLE>
+}
+{#job_id=0?:
+<TABLE CELLPADDING="0" CELLSPACING="0" CLASS="button" WIDTH="100%" SUMMARY="Liste de tâches">
+<TR CLASS="data">
+<TH>N° </TH>
+<TH>Nom </TH>
+<TH>Utilisateur </TH>
+<TH>Taille </TH>
+<TH>Pages </TH>
+<TH>État </TH>
+<TH>Contrôle </TH>
+</TR>
+
+{[job_id]
+<TR CLASS="data" VALIGN="TOP">
+<TD><A HREF="{job_printer_uri}">{job_printer_name}</A>-{job_id} </TD>
+<TD>{?job_name=?Inconnue:{job_name}} </TD>
+<TD>{job_originating_user_name} </TD>
+<TD>{job_k_octets}ko </TD>
+<TD>{job_media_sheets_completed=0?Inconnue:{?job_media_sheets_completed}}</TD>
+<TD>{job_state=3?en attente depuis le<BR>{time_at_creation}:{job_state=4?retenue depuis le<BR>{time_at_creation}:
+{job_state=5?en cours depuis le<BR>{time_at_processing}:{job_state=6?arrêtée:
+{job_state=7?annulée le<BR>{time_at_completed}:{job_state=8?abandonnée:terminée le<BR>{time_at_completed}}}}}}} </TD>
+<TD>
+{job_preserved>0?
+<A HREF="/jobs/?op=restart-job&job_id={job_id}&job_printer_uri={job_printer_uri}">
+<IMG SRC="/images/button-restart-job.gif" ALT="Redémarrer la tâche" CLASS="button"></A>:}
+{job_state=4?
+<A HREF="/jobs/?op=release-job&job_id={job_id}&job_printer_uri={job_printer_uri}">
+<IMG SRC="/images/button-release-job.gif" ALT="Libérer la tâche" CLASS="button"></A>:}
+{job_state=3?
+<A HREF="/jobs/?op=hold-job&job_id={job_id}&job_printer_uri={job_printer_uri}">
+<IMG SRC="/images/button-hold-job.gif" ALT="Retenir la tâche" CLASS="button"></A>:}
+{job_state<7?
+<A HREF="/jobs/?op=cancel-job&job_id={job_id}&job_printer_uri={job_printer_uri}">
+<IMG SRC="/images/button-cancel-job.gif" ALT="Annuler la tâche" CLASS="button"></A>
+<A HREF="/jobs/?op=move-job&job_id={job_id}"><IMG
+SRC="/images/button-move-job.gif" ALT="Transférer la tâche" CLASS="button"></A>:}
+ </TD>
+</TR>
+}
+</TABLE>
+}
--- /dev/null
+<P>Les commandes de maintenance ont été envoyées ; l'identifiant de tâche est <A
+HREF="/printers/{printer_name}"> {printer_name}-{job_id}</A>.</P>
+<P>Les commandes de maintenance ont été envoyées ; l'identifiant de tâche est <A
+HREF="/printers/{printer_name}"> {printer_name}-{job_id}</A>.</P>
--- /dev/null
+<FORM METHOD="POST" ACTION="/admin">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+
+<H2 CLASS="title">Modifier la classe {printer_name}</H2>
+
+<TABLE>
+<TR>
+<TH CLASS="label">Nom :</TH>
+<TD><INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
+{printer_name}</TD>
+</TR>
+<TR>
+<TH CLASS="label">Lieu :</TH>
+<TD><INPUT TYPE="TEXT" NAME="PRINTER_LOCATION" VALUE="{?printer_location}" SIZE="40" MAXLENGTH="127"></TD>
+</TR>
+<TR>
+<TH CLASS="label">Description :</TH>
+<TD><INPUT TYPE="TEXT" NAME="PRINTER_INFO" VALUE="{?printer_info}" SIZE="40" MAXLENGTH="127"></TD>
+</TR>
+<TR>
+<TH CLASS="label">Membres :</TH>
+<TD>
+<SELECT NAME="MEMBER_URIS" SIZE="10" MULTIPLE>
+{[member_uris]<OPTION VALUE="{member_uris}" {?member_selected}>{member_names}}
+</SELECT>
+</TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-modify-class.gif" ALT="Modifier la classe"></TD>
+</TR>
+</TABLE>
+
+</FORM>
+<FORM METHOD="POST" ACTION="/admin">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+
+<H2 CLASS="title">Modifier la classe {printer_name}</H2>
+
+<TABLE>
+<TR>
+<TH CLASS="label">Nom :</TH>
+<TD><INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
+{printer_name}</TD>
+</TR>
+<TR>
+<TH CLASS="label">Lieu :</TH>
+<TD><INPUT TYPE="TEXT" NAME="PRINTER_LOCATION" VALUE="{?printer_location}" SIZE="40" MAXLENGTH="127"></TD>
+</TR>
+<TR>
+<TH CLASS="label">Description :</TH>
+<TD><INPUT TYPE="TEXT" NAME="PRINTER_INFO" VALUE="{?printer_info}" SIZE="40" MAXLENGTH="127"></TD>
+</TR>
+<TR>
+<TH CLASS="label">Membres :</TH>
+<TD>
+<SELECT NAME="MEMBER_URIS" SIZE="10" MULTIPLE>
+{[member_uris]<OPTION VALUE="{member_uris}" {?member_selected}>{member_names}}
+</SELECT>
+</TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-modify-class.gif" ALT="Modifier la classe"></TD>
+</TR>
+</TABLE>
+
+</FORM>
--- /dev/null
+<FORM METHOD="POST" ACTION="/admin">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+{?device_uri=?:<INPUT TYPE="HIDDEN" NAME="CURRENT_DEVICE_URI" VALUE="{device_uri}">}
+{?printer_make_and_model=?:<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE_AND_MODEL" VALUE="{printer_make_and_model}">}
+
+<H2 CLASS="title">Modifier l'imprimante {printer_name}</H2>
+
+<TABLE>
+<TR>
+<TH CLASS="label">Nom :</TH>
+<TD><INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">{printer_name}</TD>
+</TR>
+<TR>
+<TH CLASS="label">Lieu :</TH>
+<TD><INPUT TYPE="TEXT" NAME="PRINTER_LOCATION" VALUE="{?printer_location}" SIZE="40" MAXLENGTH="127"><BR>
+<SMALL>( Lieu compréhensible pour un utilisateur, comme "Labo 1" )</SMALL></TD>
+</TR>
+<TR>
+<TH CLASS="label">Description :</TH>
+<TD><INPUT TYPE="TEXT" NAME="PRINTER_INFO" VALUE="{?printer_info}" SIZE="40" MAXLENGTH="127"><BR>
+<SMALL>( Description compréhensible pour un utilisateur, comme "HP LaserJet recto/verso" )</SMALL></TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-continue.gif" ALT="Poursuivre"></TD>
+</TR>
+</TABLE>
+
+</FORM>
+<FORM METHOD="POST" ACTION="/admin">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+{?device_uri=?:<INPUT TYPE="HIDDEN" NAME="CURRENT_DEVICE_URI" VALUE="{device_uri}">}
+{?printer_make_and_model=?:<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE_AND_MODEL" VALUE="{printer_make_and_model}">}
+
+<H2 CLASS="title">Modifier l'imprimante {printer_name}</H2>
+
+<TABLE>
+<TR>
+<TH CLASS="label">Nom :</TH>
+<TD><INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">{printer_name}</TD>
+</TR>
+<TR>
+<TH CLASS="label">Lieu :</TH>
+<TD><INPUT TYPE="TEXT" NAME="PRINTER_LOCATION" VALUE="{?printer_location}" SIZE="40" MAXLENGTH="127"><BR>
+<SMALL>( Lieu compréhensible pour un utilisateur, comme "Labo 1" )</SMALL></TD>
+</TR>
+<TR>
+<TH CLASS="label">Description :</TH>
+<TD><INPUT TYPE="TEXT" NAME="PRINTER_INFO" VALUE="{?printer_info}" SIZE="40" MAXLENGTH="127"><BR>
+<SMALL>( Description compréhensible pour un utilisateur, comme "HP LaserJet recto/verso" )</SMALL></TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-continue.gif" ALT="Poursuivre"></TD>
+</TR>
+</TABLE>
+
+</FORM>
--- /dev/null
+<p>Le serveur n'a pas été redémarré parce que la configuration n'a pas été modifiée...</p>
+<p>Le serveur n'a pas été redémarré parce que la configuration n'a pas été modifiée...</p>
--- /dev/null
+<TR>
+<TH CLASS="label"{conflicted=1? CLASS="conflict":}><A
+NAME="{keyword}">{keytext}</A> :</TH>
+<TD>
+{[choices]<INPUT TYPE="RADIO" NAME="{keyword}" {choices={defchoice}?CHECKED:} VALUE="{choices}">{text}}
+</TD>
+</TR>
+<TR>
+<TH CLASS="label"{conflicted=1? CLASS="conflict":}><A
+NAME="{keyword}">{keytext}</A> :</TH>
+<TD>
+{[choices]<INPUT TYPE="RADIO" NAME="{keyword}" {choices={defchoice}?CHECKED:} VALUE="{choices}">{text}}
+</TD>
+</TR>
--- /dev/null
+<P><B>Erreur :</B> Les options suivantes sont incompatibles entre elles :</P>
+
+<UL>
+{[ckeyword]<LI><A HREF="#{ckeyword}">{ckeytext}</A></LI>
+}</UL>
+
+<P>Veuillez modifier une ou plusieurs des ces options pour résoudre les conflits.</P>
+<P><B>Erreur :</B> Les options suivantes sont incompatibles entre elles :</P>
+
+<UL>
+{[ckeyword]<LI><A HREF="#{ckeyword}">{ckeytext}</A></LI>
+}</UL>
+
+<P>Veuillez modifier une ou plusieurs des ces options pour résoudre les conflits.</P>
--- /dev/null
+<H2 CLASS="title">{printer_name} : {group}</H2>
+
+<TABLE>
+<H2 CLASS="title">{printer_name} : {group}</H2>
+
+<TABLE>
--- /dev/null
+<TR>
+<TH CLASS="label"{conflicted=1? CLASS="conflict":}><A
+NAME="{keyword}">{keytext}</A> :</TH>
+<TD><SELECT NAME="{keyword}" MULTIPLE SIZE="10">
+{[choices]<OPTION {choices={defchoice}?SELECTED:} VALUE="{choices}">{text}}
+</SELECT></TD>
+</TR>
+<TR>
+<TH CLASS="label"{conflicted=1? CLASS="conflict":}><A
+NAME="{keyword}">{keytext}</A> :</TH>
+<TD><SELECT NAME="{keyword}" MULTIPLE SIZE="10">
+{[choices]<OPTION {choices={defchoice}?SELECTED:} VALUE="{choices}">{text}}
+</SELECT></TD>
+</TR>
--- /dev/null
+<TR>
+<TH CLASS="label"{conflicted=1? CLASS="conflict":}><A
+NAME="{keyword}">{keytext}</A> :</TH>
+<TD><SELECT NAME="{keyword}">
+{[choices]<OPTION {choices={defchoice}?SELECTED:} VALUE="{choices}">{text}}
+</SELECT></TD>
+</TR>
+<TR>
+<TH CLASS="label"{conflicted=1? CLASS="conflict":}><A
+NAME="{keyword}">{keytext}</A> :</TH>
+<TD><SELECT NAME="{keyword}">
+{[choices]<OPTION {choices={defchoice}?SELECTED:} VALUE="{choices}">{text}}
+</SELECT></TD>
+</TR>
--- /dev/null
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-set-printer-options.gif"
+ALT="Définir les options de l'imprimante"></TD>
+</TR>
+</TABLE>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-set-printer-options.gif"
+ALT="Définir les options de l'imprimante"></TD>
+</TR>
+</TABLE>
--- /dev/null
+<TABLE WIDTH="100%" CLASS="pager" SUMMARY="Mise en page">
+<TR>
+ <TD WIDTH="33%">{PREVURL?<A HREF="{PREVURL}"><IMG
+ SRC="/images/button-show-previous.gif" ALT="Montrer les précédentes" CLASS="button"></A>: }</TD>
+ <TD WIDTH="34%" ALIGN="CENTER">{ORDER=dec?<A
+ HREF="{THISURL}&ORDER=asc"><IMG
+ SRC="/images/button-sort-ascending.gif" ALT="Par ordre croissant" CLASS="button"></A>:<A HREF="{THISURL}&ORDER=dec"><IMG SRC="/images/button-sort-descending.gif" ALT="Par ordre décroissant" CLASS="button"></A>}</TD>
+ <TD WIDTH="33%" ALIGN="RIGHT">{NEXTURL?<A HREF="{NEXTURL}"><IMG
+ SRC="/images/button-show-next.gif" ALT="Montrer les suivantes" CLASS="button"></A>: }</TD>
+</TR>
+</TABLE>
+<TABLE WIDTH="100%" CLASS="pager" SUMMARY="Mise en page">
+<TR>
+ <TD WIDTH="33%">{PREVURL?<A HREF="{PREVURL}"><IMG
+ SRC="/images/button-show-previous.gif" ALT="Montrer les précédentes" CLASS="button"></A>: }</TD>
+ <TD WIDTH="34%" ALIGN="CENTER">{ORDER=dec?<A
+ HREF="{THISURL}&ORDER=asc"><IMG
+ SRC="/images/button-sort-ascending.gif" ALT="Par ordre croissant" CLASS="button"></A>:<A HREF="{THISURL}&ORDER=dec"><IMG SRC="/images/button-sort-descending.gif" ALT="Par ordre décroissant" CLASS="button"></A>}</TD>
+ <TD WIDTH="33%" ALIGN="RIGHT">{NEXTURL?<A HREF="{NEXTURL}"><IMG
+ SRC="/images/button-show-next.gif" ALT="Montrer les suivantes" CLASS="button"></A>: }</TD>
+</TR>
+</TABLE>
--- /dev/null
+<P>{is_class?Class:Printer} <A
+HREF="/{is_class?classes:printers}/{printer_name}">{printer_name}</A>
+accepte désormais les tâches d'impression.</P>
+<P>{is_class?Class:Printer} <A
+HREF="/{is_class?classes:printers}/{printer_name}">{printer_name}</A>
+accepte désormais les tâches d'impression.</P>
--- /dev/null
+<P>L'imprimante <A HREF="/printers/{printer_name}">{printer_name}</A> a bien été ajoutée.
+<P>L'imprimante <A HREF="/printers/{printer_name}">{printer_name}</A> a bien été ajoutée.
--- /dev/null
+<P>L'imprimante <A HREF="/printers/{printer_name}">{printer_name}</A> a bien été configurée.
+<P>L'imprimante <A HREF="/printers/{printer_name}">{printer_name}</A> a bien été configurée.
--- /dev/null
+<P><B>Attention :</B> Êtes-vous sûr(e) de vouloir supprimer l'imprimante
+{printer_name} ?</P>
+
+<P ALIGN="CENTER"><A
+HREF="/admin?op=delete-printer&printer_name={printer_name}&confirm=yes"><IMG
+SRC="/images/button-delete-printer.gif" ALT="Supprimer l'imprimante"
+CLASS="button"></A></P>
+<P><B>Attention :</B> Êtes-vous sûr(e) de vouloir supprimer l'imprimante
+{printer_name} ?</P>
+
+<P ALIGN="CENTER"><A
+HREF="/admin?op=delete-printer&printer_name={printer_name}&confirm=yes"><IMG
+SRC="/images/button-delete-printer.gif" ALT="Supprimer l'imprimante"
+CLASS="button"></A></P>
--- /dev/null
+<P>{is_class?La classe:L'imprimante} <A
+HREF="/{is_class?classes:printers}/{printer_name}">{printer_name}</A>
+a été définie comme imprimante par défaut sur le serveur.</P>
+
+<BLOCKQUOTE><B>NB:</B> Pour un utilisateur qui a défini un paramètre par défaut
+via la commande <TT>lpoptions</TT>, le paramètre du serveur sera
+ignoré.</BLOCKQUOTE>
+<P>{is_class?La classe:L'imprimante} <A
+HREF="/{is_class?classes:printers}/{printer_name}">{printer_name}</A>
+a été définie comme imprimante par défaut sur le serveur.</P>
+
+<BLOCKQUOTE><B>NB:</B> Pour un utilisateur qui a défini un paramètre par défaut
+via la commande <TT>lpoptions</TT>, le paramètre du serveur sera
+ignoré.</BLOCKQUOTE>
--- /dev/null
+<P>L'imprimante {printer_name} a bien été supprimée.
+<P>L'imprimante {printer_name} a bien été supprimée.
--- /dev/null
+<H3 CLASS="title">Tâches d'impression</H3>
+<H3 CLASS="title">Tâches d'impression</H3>
--- /dev/null
+<P>L'imprimante <A HREF="/printers/{printer_name}">{printer_name}</A> a bien été modifiée.
+<P>L'imprimante <A HREF="/printers/{printer_name}">{printer_name}</A> a bien été modifiée.
--- /dev/null
+<P>{is_class?La classe:L'imprimante} <A
+HREF="/{is_class?classes:printers}/{printer_name}">{printer_name}</A>
+a été nettoyée de toute tâche... d'impression !</P>
+<P>{is_class?La classe:L'imprimante} <A
+HREF="/{is_class?classes:printers}/{printer_name}">{printer_name}</A>
+a été nettoyée de toute tâche... d'impression !</P>
--- /dev/null
+<P>{is_class?La classe:L'imprimante} <A
+HREF="/{is_class?classes:printers}/{printer_name}">{printer_name}</A>
+n'accepte plus les tâches d'impression.</P>
+<P>{is_class?La classe:L'imprimante} <A
+HREF="/{is_class?classes:printers}/{printer_name}">{printer_name}</A>
+n'accepte plus les tâches d'impression.</P>
--- /dev/null
+<P>{is_class?La classe:L'imprimante} <A
+HREF="/{is_class?classes:printers}/{printer_name}">{printer_name}</A>
+a été démarrée.</P>
+<P>{is_class?La classe:L'imprimante} <A
+HREF="/{is_class?classes:printers}/{printer_name}">{printer_name}</A>
+a été démarrée.</P>
--- /dev/null
+<P>{is_class?La classe:L'imprimante} <A
+HREF="/{is_class?classes:printers}/{printer_name}">{printer_name}</A>
+a été arrêtée.</P>
+<P>{is_class?La classe:L'imprimante} <A
+HREF="/{is_class?classes:printers}/{printer_name}">{printer_name}</A>
+a été arrêtée.</P>
--- /dev/null
+<P ALIGN="CENTER">{total=0?Aucune imprimante:Affichage de {#printer_name} imprimante{#printer_name=1?:s}} sur {total}.</P>
+<P ALIGN="CENTER">{total=0?Aucune imprimante:Affichage de {#printer_name} imprimante{#printer_name=1?:s}} sur {total}.</P>
--- /dev/null
+{printer_type?:}{#printer_name=0?:
+{[printer_name]
+<H2 CLASS="title"><A
+HREF="{printer_uri_supported}">{printer_name}</A>{default_name={printer_name}? (
+imprimante par défaut ) :}
+{?printer_state_message=?:<SPAN CLASS="message">"{printer_state_message}"</SPAN>}</H2>
+
+<TABLE WIDTH="100%" CLASS="button" CELLSPACING="0" CELLPADDING="0" SUMMARY="{printer_name}">
+<TR>
+<TD VALIGN="TOP"><A HREF="{printer_uri_supported}">
+<IMG SRC="/images/printer-{printer_state=3?idle:{printer_state=4?processing:stopped}}.gif" CLASS="button" ALT=""></A>
+</TD>
+<TD VALIGN="TOP"><B>Description :</B> {printer_info}<BR>
+<B>Lieu :</B> {printer_location}<BR>
+<B>Marque et modèle :</B> {printer_make_and_model}<BR>
+<B>État de l'imprimante :</B> {printer_state=3?ne fait rien:{printer_state=4?en cours d'impression:arrêtée}},
+{printer_is_accepting_jobs=0?rejette les tâches:accepte les tâches}, {printer_is_shared=0?cachée:publique}.
+{?device_uri=?:<BR><B>URI du matériel :</B> {device_uri}}
+
+<P>
+<A HREF="{printer_uri_supported}?op=print-test-page">
+<IMG SRC="/images/button-print-test-page.gif" ALT="Imprimer la page de test CUPS" CLASS="button"></A>
+{?cupscommand=1?<A HREF="{printer_uri_supported}?op=clean-print-heads">
+<IMG SRC="/images/button-clean-print-heads.gif" ALT="Nettoyer les têtes d'impression" CLASS="button"></A>
+<A HREF="{printer_uri_supported}?op=print-self-test-page">
+<IMG SRC="/images/button-print-self-test-page.gif" ALT="Imprimer la page de test de l'imprimante" CLASS="button"></A>:}
+{printer_state=5?
+<A HREF="{admin_uri}?op=start-printer&printer_name={%printer_name}">
+<IMG SRC="/images/button-start-printer.gif" ALT="Démarrer l'imprimante" CLASS="button"></A>
+:
+<A HREF="{admin_uri}?op=stop-printer&printer_name={%printer_name}">
+<IMG SRC="/images/button-stop-printer.gif" ALT="Arrêter l'imprimante" CLASS="button"></A>
+}
+{printer_is_accepting_jobs=0?
+<A HREF="{admin_uri}?op=accept-jobs&printer_name={%printer_name}">
+<IMG SRC="/images/button-accept-jobs.gif" ALT="Accepter les tâches" CLASS="button"></A>
+:
+<A HREF="{admin_uri}?op=reject-jobs&printer_name={%printer_name}">
+<IMG SRC="/images/button-reject-jobs.gif" ALT="Rejeter les tâches" CLASS="button"></A>
+}
+<A HREF="{printer_uri_supported}?op=move-jobs&printer_name={%printer_name}">
+<IMG SRC="/images/button-move-jobs.gif" ALT="Transférer toutes les tâches" CLASS="button"></A>
+<A HREF="{admin_uri}?op=purge-jobs&printer_name={%printer_name}">
+<IMG SRC="/images/button-cancel-all-jobs.gif" ALT="Annuler toutes les tâches" CLASS="button"></A>
+{printer_is_shared=0?
+<A HREF="{admin_uri}?op=set-sharing&printer_name={%printer_name}&shared=1">
+<IMG SRC="/images/button-publish-printer.gif" ALT="Publier l'imprimante" CLASS="button"></A>
+:
+<A HREF="{admin_uri}?op=set-sharing&printer_name={%printer_name}&shared=0">
+<IMG SRC="/images/button-unpublish-printer.gif" ALT="Cacher l'imprimante" CLASS="button"></A>
+}
+<A HREF="{admin_uri}?op=modify-printer&printer_name={%printer_name}">
+<IMG SRC="/images/button-modify-printer.gif" ALT="Modifier l'imprimante" CLASS="button"></A>
+<A HREF="{admin_uri}?op=set-printer-options&printer_name={%printer_name}">
+<IMG SRC="/images/button-set-printer-options.gif" ALT="Définir les options de l'imprimante" CLASS="button"></A>
+<A HREF="{admin_uri}?op=delete-printer&printer_name={%printer_name}">
+<IMG SRC="/images/button-delete-printer.gif" ALT="Supprimer l'imprimante" CLASS="button"></A>
+<A HREF="{admin_uri}?op=set-as-default&printer_name={%printer_name}">
+<IMG SRC="/images/button-set-as-default.gif" ALT="Définir par défaut" CLASS="button"></A>
+<A HREF="{admin_uri}?op=set-allowed-users&printer_name={%printer_name}">
+<IMG SRC="/images/button-set-allowed-users.gif" ALT="Définir les autorisations" CLASS="button"></A>
+</P>
+</TD>
+</TR>
+</TABLE>
+}}
+{printer_type?:}{#printer_name=0?:
+{[printer_name]
+<H2 CLASS="title"><A
+HREF="{printer_uri_supported}">{printer_name}</A>{default_name={printer_name}? (
+imprimante par défaut ) :}
+{?printer_state_message=?:<SPAN CLASS="message">"{printer_state_message}"</SPAN>}</H2>
+
+<TABLE WIDTH="100%" CLASS="button" CELLSPACING="0" CELLPADDING="0" SUMMARY="{printer_name}">
+<TR>
+<TD VALIGN="TOP"><A HREF="{printer_uri_supported}">
+<IMG SRC="/images/printer-{printer_state=3?idle:{printer_state=4?processing:stopped}}.gif" CLASS="button" ALT=""></A>
+</TD>
+<TD VALIGN="TOP"><B>Description :</B> {printer_info}<BR>
+<B>Lieu :</B> {printer_location}<BR>
+<B>Marque et modèle :</B> {printer_make_and_model}<BR>
+<B>État de l'imprimante :</B> {printer_state=3?ne fait rien:{printer_state=4?en cours d'impression:arrêtée}},
+{printer_is_accepting_jobs=0?rejette les tâches:accepte les tâches}, {printer_is_shared=0?cachée:publique}.
+{?device_uri=?:<BR><B>URI du matériel :</B> {device_uri}}
+
+<P>
+<A HREF="{printer_uri_supported}?op=print-test-page">
+<IMG SRC="/images/button-print-test-page.gif" ALT="Imprimer la page de test CUPS" CLASS="button"></A>
+{?cupscommand=1?<A HREF="{printer_uri_supported}?op=clean-print-heads">
+<IMG SRC="/images/button-clean-print-heads.gif" ALT="Nettoyer les têtes d'impression" CLASS="button"></A>
+<A HREF="{printer_uri_supported}?op=print-self-test-page">
+<IMG SRC="/images/button-print-self-test-page.gif" ALT="Imprimer la page de test de l'imprimante" CLASS="button"></A>:}
+{printer_state=5?
+<A HREF="{admin_uri}?op=start-printer&printer_name={%printer_name}">
+<IMG SRC="/images/button-start-printer.gif" ALT="Démarrer l'imprimante" CLASS="button"></A>
+:
+<A HREF="{admin_uri}?op=stop-printer&printer_name={%printer_name}">
+<IMG SRC="/images/button-stop-printer.gif" ALT="Arrêter l'imprimante" CLASS="button"></A>
+}
+{printer_is_accepting_jobs=0?
+<A HREF="{admin_uri}?op=accept-jobs&printer_name={%printer_name}">
+<IMG SRC="/images/button-accept-jobs.gif" ALT="Accepter les tâches" CLASS="button"></A>
+:
+<A HREF="{admin_uri}?op=reject-jobs&printer_name={%printer_name}">
+<IMG SRC="/images/button-reject-jobs.gif" ALT="Rejeter les tâches" CLASS="button"></A>
+}
+<A HREF="{printer_uri_supported}?op=move-jobs&printer_name={%printer_name}">
+<IMG SRC="/images/button-move-jobs.gif" ALT="Transférer toutes les tâches" CLASS="button"></A>
+<A HREF="{admin_uri}?op=purge-jobs&printer_name={%printer_name}">
+<IMG SRC="/images/button-cancel-all-jobs.gif" ALT="Annuler toutes les tâches" CLASS="button"></A>
+{printer_is_shared=0?
+<A HREF="{admin_uri}?op=set-sharing&printer_name={%printer_name}&shared=1">
+<IMG SRC="/images/button-publish-printer.gif" ALT="Publier l'imprimante" CLASS="button"></A>
+:
+<A HREF="{admin_uri}?op=set-sharing&printer_name={%printer_name}&shared=0">
+<IMG SRC="/images/button-unpublish-printer.gif" ALT="Cacher l'imprimante" CLASS="button"></A>
+}
+<A HREF="{admin_uri}?op=modify-printer&printer_name={%printer_name}">
+<IMG SRC="/images/button-modify-printer.gif" ALT="Modifier l'imprimante" CLASS="button"></A>
+<A HREF="{admin_uri}?op=set-printer-options&printer_name={%printer_name}">
+<IMG SRC="/images/button-set-printer-options.gif" ALT="Définir les options de l'imprimante" CLASS="button"></A>
+<A HREF="{admin_uri}?op=delete-printer&printer_name={%printer_name}">
+<IMG SRC="/images/button-delete-printer.gif" ALT="Supprimer l'imprimante" CLASS="button"></A>
+<A HREF="{admin_uri}?op=set-as-default&printer_name={%printer_name}">
+<IMG SRC="/images/button-set-as-default.gif" ALT="Définir par défaut" CLASS="button"></A>
+<A HREF="{admin_uri}?op=set-allowed-users&printer_name={%printer_name}">
+<IMG SRC="/images/button-set-allowed-users.gif" ALT="Définir les autorisations" CLASS="button"></A>
+</P>
+</TD>
+</TR>
+</TABLE>
+}}
--- /dev/null
+<p>Attendez s'il vous plaît, que le serveur redémarre...</p>
+<p>Attendez s'il vous plaît, que le serveur redémarre...</p>
--- /dev/null
+<SCRIPT TYPE="text/javascript"><!--
+function select_printers() {
+ var list = document.export_samba.EXPORT_NAME;
+ var sel = document.export_samba.EXPORT_ALL.checked;
+
+ for (i = 0; i < list.length; i ++) {
+ list.options[i].selected = sel;
+ }
+}
+--></SCRIPT>
+
+<FORM METHOD="POST" ACTION="/admin/" NAME="export_samba">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="export-samba">
+
+<H2 CLASS="title">Exporter des imprimantes vers SAMBA</H2>
+
+{error?<P>Impossible d'exporter les imprimantes vers SAMBA \:</P>
+<BLOCKQUOTE>{error}</BLOCKQUOTE>
+<P>Regardez le fichier <A HREF="/admin/log/error_log"
+TARGET="_blank">error_log</A> pour plus d'informations.</P>:
+<P>Cette page vous permet d'exporter des imprimantes vers SAMBA de sorte que des
+clients Windows puissent y accéder via l'icône <VAR>Voisinage réseau</VAR> ou
+<VAR>Favoris réseau</VAR> du bureau. Vous devez au préalable installer les
+pilotes Windows d'imprimante PostScript : cf. la page <i>man</i> <A
+HREF="/help/man-cupsaddsmb.html" TARGET="_blank">cupsaddsmb(8)</A>.</P>}
+
+<TABLE>
+<TR>
+<TH CLASS="label">Imprimantes :</TH>
+<TD>
+<SELECT NAME="EXPORT_NAME" SIZE="10" MULTIPLE>
+{[printer_name]<OPTION VALUE="{printer_name}"{export_all? SELECTED:{printer_export? SELECTED:}}>{printer_name}}
+</SELECT><BR>
+<INPUT TYPE="CHECKBOX" NAME="EXPORT_ALL"{export_all? CHECKED:}
+onChange="select_printers()"> Exporter toutes les imprimantes
+</TD>
+</TR>
+<TR>
+<TH CLASS="label">Utilisateur SAMBA :</TH>
+<TD><INPUT TYPE="TEXT" NAME="USERNAME" VALUE="{?USERNAME}"> ( indispensable )</TD>
+</TR>
+<TR>
+<TH CLASS="label">Mot-de-passe SAMBA :</TH>
+<TD><INPUT TYPE="PASSWORD" NAME="PASSWORD" VALUE=""> ( indispensable )</TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-export-samba.gif"
+ALT="Exporter les imprimantes vers SAMBA"></TD>
+</TR>
+</TABLE>
+
+</FORM>
+<SCRIPT TYPE="text/javascript"><!--
+function select_printers() {
+ var list = document.export_samba.EXPORT_NAME;
+ var sel = document.export_samba.EXPORT_ALL.checked;
+
+ for (i = 0; i < list.length; i ++) {
+ list.options[i].selected = sel;
+ }
+}
+--></SCRIPT>
+
+<FORM METHOD="POST" ACTION="/admin/" NAME="export_samba">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="export-samba">
+
+<H2 CLASS="title">Exporter des imprimantes vers SAMBA</H2>
+
+{error?<P>Impossible d'exporter les imprimantes vers SAMBA \:</P>
+<BLOCKQUOTE>{error}</BLOCKQUOTE>
+<P>Regardez le fichier <A HREF="/admin/log/error_log"
+TARGET="_blank">error_log</A> pour plus d'informations.</P>:
+<P>Cette page vous permet d'exporter des imprimantes vers SAMBA de sorte que des
+clients Windows puissent y accéder via l'icône <VAR>Voisinage réseau</VAR> ou
+<VAR>Favoris réseau</VAR> du bureau. Vous devez au préalable installer les
+pilotes Windows d'imprimante PostScript : cf. la page <i>man</i> <A
+HREF="/help/man-cupsaddsmb.html" TARGET="_blank">cupsaddsmb(8)</A>.</P>}
+
+<TABLE>
+<TR>
+<TH CLASS="label">Imprimantes :</TH>
+<TD>
+<SELECT NAME="EXPORT_NAME" SIZE="10" MULTIPLE>
+{[printer_name]<OPTION VALUE="{printer_name}"{export_all? SELECTED:{printer_export? SELECTED:}}>{printer_name}}
+</SELECT><BR>
+<INPUT TYPE="CHECKBOX" NAME="EXPORT_ALL"{export_all? CHECKED:}
+onChange="select_printers()"> Exporter toutes les imprimantes
+</TD>
+</TR>
+<TR>
+<TH CLASS="label">Utilisateur SAMBA :</TH>
+<TD><INPUT TYPE="TEXT" NAME="USERNAME" VALUE="{?USERNAME}"> ( indispensable )</TD>
+</TR>
+<TR>
+<TH CLASS="label">Mot-de-passe SAMBA :</TH>
+<TD><INPUT TYPE="PASSWORD" NAME="PASSWORD" VALUE=""> ( indispensable )</TD>
+</TR>
+<TR>
+<TD></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-export-samba.gif"
+ALT="Exporter les imprimantes vers SAMBA"></TD>
+</TR>
+</TABLE>
+
+</FORM>
--- /dev/null
+<P>Les imprimantes ont bien été exportées vers SAMBA.</P>
+<P>Les imprimantes ont bien été exportées vers SAMBA.</P>
--- /dev/null
+<FORM ACTION="/{SECTION}/{?SEARCH_DEST}" METHOD="GET">
+{WHICH_JOBS?<INPUT TYPE="HIDDEN" NAME="WHICH_JOBS" VALUE="{WHICH_JOBS}">:}
+{ORDER?<INPUT TYPE="HIDDEN" NAME="ORDER" VALUE="{ORDER}">:}
+
+<P ALIGN="CENTER"><B>Rechercher dans
+{SEARCH_DEST?{SEARCH_DEST}:{SECTION=classes?les classes:{SECTION=jobs?les tâches:les imprimantes}}} :</B>
+<INPUT TYPE="TEXT" NAME="QUERY" VALUE="{?QUERY}" SIZE="60"> <INPUT
+TYPE="IMAGE" SRC="/images/button-search.gif" ALT="Rechercher">
+<A
+HREF="/{SECTION}/{?SEARCH_DEST}{WHICH_JOBS??WHICH_JOBS={WHICH_JOBS}{ORDER?&ORDER={ORDER}:}:{ORDER??ORDER={ORDER}:}}"><IMG
+SRC="/images/button-clear.gif" ALT="Nettoyer" CLASS="button"></A></P>
+
+</FORM>
+<FORM ACTION="/{SECTION}/{?SEARCH_DEST}" METHOD="GET">
+{WHICH_JOBS?<INPUT TYPE="HIDDEN" NAME="WHICH_JOBS" VALUE="{WHICH_JOBS}">:}
+{ORDER?<INPUT TYPE="HIDDEN" NAME="ORDER" VALUE="{ORDER}">:}
+
+<P ALIGN="CENTER"><B>Rechercher dans
+{SEARCH_DEST?{SEARCH_DEST}:{SECTION=classes?les classes:{SECTION=jobs?les tâches:les imprimantes}}} :</B>
+<INPUT TYPE="TEXT" NAME="QUERY" VALUE="{?QUERY}" SIZE="60"> <INPUT
+TYPE="IMAGE" SRC="/images/button-search.gif" ALT="Rechercher">
+<A
+HREF="/{SECTION}/{?SEARCH_DEST}{WHICH_JOBS??WHICH_JOBS={WHICH_JOBS}{ORDER?&ORDER={ORDER}:}:{ORDER??ORDER={ORDER}:}}"><IMG
+SRC="/images/button-clear.gif" ALT="Nettoyer" CLASS="button"></A></P>
+
+</FORM>
--- /dev/null
+<FORM METHOD="POST" ACTION="/admin">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
+<FORM METHOD="POST" ACTION="/admin">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
--- /dev/null
+</FORM>
+</FORM>
--- /dev/null
+<P>La page de test a été envoyée ; l'identifiant de la tâche est <A HREF="/{SECTION}/{printer_name}">
+{printer_name}-{job_id}</A>.</P>
+<P>La page de test a été envoyée ; l'identifiant de la tâche est <A HREF="/{SECTION}/{printer_name}">
+{printer_name}-{job_id}</A>.</P>
--- /dev/null
+</TD>
+<TD WIDTH="15"> </TD>
+</TR>
+<TR CLASS="trailer">
+<TD VALIGN="BOTTOM" WIDTH="15"><IMG SRC="/images/bottom-left.gif"
+WIDTH="15" HEIGHT="15" ALT=""></TD>
+<TD COLSPAN="2" WIDTH="100%" STYLE="padding: 5;">
+
+<P><SMALL>Le logiciel CUPS ( Common UNIX Printing System ) et son logo sont
+propriété commerciale de <A HREF="http://www.easysw.com">Easy Software
+Products</A>. CUPS est sous copyright 1997-2006 par Easy Software Products, Tous
+Droits Réservés.</SMALL></P>
+
+</TD>
+
+<TD ALIGN="RIGHT" VALIGN="BOTTOM" WIDTH="15"><IMG SRC="/images/bottom-right.gif"
+WIDTH="15" HEIGHT="15" ALT=""></TD>
+</TR>
+</TABLE>
+</BODY>
+</HTML>
+</TD>
+<TD WIDTH="15"> </TD>
+</TR>
+<TR CLASS="trailer">
+<TD VALIGN="BOTTOM" WIDTH="15"><IMG SRC="/images/bottom-left.gif"
+WIDTH="15" HEIGHT="15" ALT=""></TD>
+<TD COLSPAN="2" WIDTH="100%" STYLE="padding: 5;">
+
+<P><SMALL>Le logiciel CUPS ( Common UNIX Printing System ) et son logo sont
+propriété commerciale de <A HREF="http://www.easysw.com">Easy Software
+Products</A>. CUPS est sous copyright 1997-2006 par Easy Software Products, Tous
+Droits Réservés.</SMALL></P>
+
+</TD>
+
+<TD ALIGN="RIGHT" VALIGN="BOTTOM" WIDTH="15"><IMG SRC="/images/bottom-right.gif"
+WIDTH="15" HEIGHT="15" ALT=""></TD>
+</TR>
+</TABLE>
+</BODY>
+</HTML>
--- /dev/null
+<FORM METHOD="POST" ACTION="/admin">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{OP}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
+{IS_CLASS?<INPUT TYPE="HIDDEN" NAME="IS_CLASS" VALUE="{IS_CLASS}">:}
+
+<H2 CLASS="title">Utilisateurs autorisés à utiliser {printer_name}</H2>
+
+<TABLE>
+<TR>
+<TH CLASS="label">Utilisateurs :</TH>
+<TD>
+<INPUT TYPE='TEXT' NAME='users' SIZE='60' VALUE='{?requesting_user_name_allowed}{?requesting_user_name_denied}'>
+<BR>
+<INPUT TYPE='RADIO' NAME='type' VALUE='requesting-user-name-allowed' {requesting_user_name_allowed?checked:}>Autoriser ces utilisateurs à imprimer
+<INPUT TYPE='RADIO' NAME='type' VALUE='requesting-user-name-denied' {requesting_user_name_denied?checked:}>Empêcher ces utilisateurs d'imprimer
+</TD>
+</TR>
+<TR>
+<TD></TD>
+<TD>
+<INPUT TYPE="IMAGE" SRC="/images/button-set-allowed-users.gif" ALT="Définir les autorisations">
+</TD>
+</TR>
+</TABLE>
+
+</FORM>
+<FORM METHOD="POST" ACTION="/admin">
+<INPUT TYPE="HIDDEN" NAME="OP" VALUE="{OP}">
+<INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
+{IS_CLASS?<INPUT TYPE="HIDDEN" NAME="IS_CLASS" VALUE="{IS_CLASS}">:}
+
+<H2 CLASS="title">Utilisateurs autorisés à utiliser {printer_name}</H2>
+
+<TABLE>
+<TR>
+<TH CLASS="label">Utilisateurs :</TH>
+<TD>
+<INPUT TYPE='TEXT' NAME='users' SIZE='60' VALUE='{?requesting_user_name_allowed}{?requesting_user_name_denied}'>
+<BR>
+<INPUT TYPE='RADIO' NAME='type' VALUE='requesting-user-name-allowed' {requesting_user_name_allowed?checked:}>Autoriser ces utilisateurs à imprimer
+<INPUT TYPE='RADIO' NAME='type' VALUE='requesting-user-name-denied' {requesting_user_name_denied?checked:}>Empêcher ces utilisateurs d'imprimer
+</TD>
+</TR>
+<TR>
+<TD></TD>
+<TD>
+<INPUT TYPE="IMAGE" SRC="/images/button-set-allowed-users.gif" ALT="Définir les autorisations">
+</TD>
+</TR>
+</TABLE>
+
+</FORM>
</HEAD>
<BODY>
<TABLE WIDTH="100%" STYLE="height: 100%;" BORDER="0" CELLSPACING="0" CELLPADDING="0" SUMMARY="{title}">
-<TR CLASS="HEADER">
+<TR CLASS="header">
<TD VALIGN="TOP" WIDTH="15" ROWSPAN="2"><IMG SRC="/images/top-left.gif" WIDTH="15" HEIGHT="80" ALT=""></TD>
<TD VALIGN="TOP" WIDTH="55" ROWSPAN="2"><IMG SRC="/images/top-middle.gif" WIDTH="55" HEIGHT="80" ALT=""></TD>
<TD WIDTH="100%" HEIGHT="60"><H1>{title}</H1></TD>
<TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="15" ROWSPAN="2"><IMG
SRC="/images/top-right.gif" WIDTH="15" HEIGHT="15" ALT=""></TD>
</TR>
-<TR CLASS="HEADER"><TD WIDTH="100%" VALIGN="BOTTOM" NOWRAP>
+<TR CLASS="header"><TD WIDTH="100%" VALIGN="BOTTOM" NOWRAP>
<A CLASS="unsel" HREF="/"><IMG SRC="/images/tab-left.gif"
WIDTH="4" HEIGHT="4" ALIGN="TOP" BORDER="0"
</HEAD>
<BODY>
<TABLE WIDTH="100%" STYLE="height: 100%;" BORDER="0" CELLSPACING="0" CELLPADDING="0" SUMMARY="{title}">
-<TR CLASS="HEADER">
+<TR CLASS="header">
<TD VALIGN="TOP" WIDTH="15" ROWSPAN="2"><IMG SRC="/images/top-left.gif" WIDTH="15" HEIGHT="80" ALT=""></TD>
<TD VALIGN="TOP" WIDTH="55" ROWSPAN="2"><IMG SRC="/images/top-middle.gif" WIDTH="55" HEIGHT="80" ALT=""></TD>
<TD WIDTH="100%" HEIGHT="60"><H1>{title}</H1></TD>
<TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="15" ROWSPAN="2"><IMG
SRC="/images/top-right.gif" WIDTH="15" HEIGHT="15" ALT=""></TD>
</TR>
-<TR CLASS="HEADER"><TD WIDTH="100%" VALIGN="BOTTOM" NOWRAP>
+<TR CLASS="header"><TD WIDTH="100%" VALIGN="BOTTOM" NOWRAP>
<A CLASS="unsel" HREF="/"><IMG SRC="/images/tab-left.gif"
WIDTH="4" HEIGHT="4" ALIGN="TOP" BORDER="0"
<TD>{?job_name=?Sconosciuto:{job_name}} </TD>
<TD>{job_originating_user_name} </TD>
<TD>{job_k_octets}k </TD>
-<TD>{job_media_sheets_completed=0?Sconosciuto:{?job_media_sheets_completed}}</TD>
+<TD>{job_media_sheets_completed=0?Sconosciuto:{?job_media_sheets_completed}} </TD>
<TD>{job_state=3?in sospeso da<BR>{time_at_creation}:{job_state=4?bloccata da<BR>{time_at_creation}:
{job_state=5?elaborazione in corso da<BR>{time_at_processing}:{job_state=6?fermata:
{job_state=7?annullata a<BR>{time_at_completed}:{job_state=8?interrotta:completata a<BR>{time_at_completed}}}}}}} </TD>
</HEAD>
<BODY>
<TABLE WIDTH="100%" STYLE="height: 100%;" BORDER="0" CELLSPACING="0" CELLPADDING="0" SUMMARY="{title}">
-<TR CLASS="HEADER">
+<TR CLASS="header">
<TD VALIGN="TOP" WIDTH="15" ROWSPAN="2"><IMG SRC="/images/top-left.gif" WIDTH="15" HEIGHT="80" ALT=""></TD>
<TD VALIGN="TOP" WIDTH="55" ROWSPAN="2"><IMG SRC="/images/top-middle.gif" WIDTH="55" HEIGHT="80" ALT=""></TD>
<TD WIDTH="100%" HEIGHT="60"><H1>{title}</H1></TD>
<TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="15" ROWSPAN="2"><IMG
SRC="/images/top-right.gif" WIDTH="15" HEIGHT="15" ALT=""></TD>
</TR>
-<TR CLASS="HEADER"><TD WIDTH="100%" VALIGN="BOTTOM" NOWRAP>
+<TR CLASS="header"><TD WIDTH="100%" VALIGN="BOTTOM" NOWRAP>
<A CLASS="unsel" HREF="/"><IMG SRC="/images/tab-left.gif"
WIDTH="4" HEIGHT="4" ALIGN="TOP" BORDER="0"
<TD>{?job_name=?未知:{job_name}} </TD>
<TD>{job_originating_user_name} </TD>
<TD>{job_k_octets}k </TD>
-<TD>{job_media_sheets_completed=0?不明:{?job_media_sheets_completed}}</TD>
+<TD>{job_media_sheets_completed=0?不明:{?job_media_sheets_completed}} </TD>
<TD>{job_state=3?{time_at_creation}<BR>から保留中:{job_state=4?{time_at_creation}<BR>からホールド中:
{job_state=5?{time_at_processing}<BR>から処理中:{job_state=6?に停止:
{job_state=7?{time_at_completed}<BR>にキャンセル:{time_at_completed}<BR>{job_state=8?に中断:に完了}}}}}} </TD>
<TD>{?job_name=?Unknown:{job_name}} </TD>
<TD>{job_originating_user_name} </TD>
<TD>{job_k_octets}k </TD>
-<TD>{job_media_sheets_completed=0?Unknown:{?job_media_sheets_completed}}</TD>
+<TD>{job_media_sheets_completed=0?Unknown:{?job_media_sheets_completed}} </TD>
<TD>{job_state=3?pending since<BR>{time_at_creation}:{job_state=4?held since<BR>{time_at_creation}:
{job_state=5?processing since<BR>{time_at_processing}:{job_state=6?stopped:
{job_state=7?canceled at<BR>{time_at_completed}:{job_state=8?aborted:completed at<BR>{time_at_completed}}}}}}} </TD>
</HEAD>
<BODY>
<TABLE WIDTH="100%" STYLE="height: 100%;" BORDER="0" CELLSPACING="0" CELLPADDING="0" SUMMARY="{title}">
-<TR CLASS="HEADER">
+<TR CLASS="header">
<TD VALIGN="TOP" WIDTH="15" ROWSPAN="2"><IMG SRC="/images/top-left.gif" WIDTH="15" HEIGHT="80" ALT=""></TD>
<TD VALIGN="TOP" WIDTH="55" ROWSPAN="2"><IMG SRC="/images/top-middle.gif" WIDTH="55" HEIGHT="80" ALT=""></TD>
<TD WIDTH="100%" HEIGHT="60"><H1>{title}</H1></TD>
<TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="15" ROWSPAN="2"><IMG
SRC="/images/top-right.gif" WIDTH="15" HEIGHT="15" ALT=""></TD>
</TR>
-<TR CLASS="HEADER"><TD WIDTH="100%" VALIGN="BOTTOM" NOWRAP>
+<TR CLASS="header"><TD WIDTH="100%" VALIGN="BOTTOM" NOWRAP>
<A CLASS="unsel" HREF="/"><IMG SRC="/images/tab-left.gif"
WIDTH="4" HEIGHT="4" ALIGN="TOP" BORDER="0"
<TD>{?job_name=?Nieznane:{job_name}} </TD>
<TD>{job_originating_user_name} </TD>
<TD>{job_k_octets}k </TD>
-<TD>{job_media_sheets_completed=0?Nieznane:{?job_media_sheets_completed}}</TD>
+<TD>{job_media_sheets_completed=0?Nieznane:{?job_media_sheets_completed}} </TD>
<TD>{job_state=3?oczekiwanie od<BR>{time_at_creation}:{job_state=4?wstrzymane od<BR>{time_at_creation}:
{job_state=5?przetwarzanie od<BR>{time_at_processing}:{job_state=6?zatrzymane:
{job_state=7?anulowane o<BR>{time_at_completed}:{job_state=8?przerwane:zakończone o<BR>{time_at_completed}}}}}}} </TD>
</HEAD>
<BODY>
<TABLE WIDTH="100%" STYLE="height: 100%;" BORDER="0" CELLSPACING="0" CELLPADDING="0" SUMMARY="{title}">
-<TR CLASS="HEADER">
+<TR CLASS="header">
<TD VALIGN="TOP" WIDTH="15" ROWSPAN="2"><IMG SRC="/images/top-left.gif" WIDTH="15" HEIGHT="80" ALT=""></TD>
<TD VALIGN="TOP" WIDTH="55" ROWSPAN="2"><IMG SRC="/images/top-middle.gif" WIDTH="55" HEIGHT="80" ALT=""></TD>
<TD WIDTH="100%" HEIGHT="60"><H1>{title}</H1></TD>
<TD ALIGN="RIGHT" VALIGN="TOP" WIDTH="15" ROWSPAN="2"><IMG
SRC="/images/top-right.gif" WIDTH="15" HEIGHT="15" ALT=""></TD>
</TR>
-<TR CLASS="HEADER"><TD WIDTH="100%" VALIGN="BOTTOM" NOWRAP>
+<TR CLASS="header"><TD WIDTH="100%" VALIGN="BOTTOM" NOWRAP>
<A CLASS="unsel" HREF="/"><IMG SRC="/images/tab-left.gif"
WIDTH="4" HEIGHT="4" ALIGN="TOP" BORDER="0"
<TD>{?job_name=?Okänt:{job_name}} </TD>
<TD>{job_originating_user_name} </TD>
<TD>{job_k_octets}k </TD>
-<TD>{job_media_sheets_completed=0?Okänt:{?job_media_sheets_completed}}</TD>
+<TD>{job_media_sheets_completed=0?Okänt:{?job_media_sheets_completed}} </TD>
<TD>{job_state=3?väntar sedan<BR>{time_at_creation}:{job_state=4?hålls kvar sedan<BR>{time_at_creation}:
{job_state=5?behandlas sedan<BR>{time_at_processing}:{job_state=6?stoppad:
{job_state=7?cancelled at<BR>{time_at_completed}:{job_state=8?aborted:färdig kl<BR>{time_at_completed}}}}}}} </TD>
<P><SMALL>The Common UNIX Printing System, CUPS, and the CUPS logo are the
trademark property of <A HREF="http://www.easysw.com">Easy Software
-Products</A>. CUPS is copyright 1997-2006 by Easy Software Products,
+Products</A>. CUPS is copyright 1997-2007 by Easy Software Products,
All Rights Reserved.</SMALL></P>
</TD>
--- /dev/null
+#!/bin/sh
+#
+# Check .po files to see if there are untranslated or fuzzy strings.
+#
+# Usage: checkpo filename.po [ ... filenameN.po]
+#
+
+if test $# = 1; then
+ echo Usage: checkpo filename.po ... filenameN.po
+ exit 1
+fi
+
+echo "Catalog Untrans Fuzzy"
+echo "-------------------- ------- -------"
+
+for file in $*; do
+ untranslated=`msgattrib --untranslated $file | grep 'msgid "..*"' | wc -l`
+ fuzzy=`grep fuzzy $file | wc -l`
+
+ printf "%-20.20s %7d %7d\n" $file $untranslated $fuzzy
+done
+
/*
- * "$Id: config.h 4828 2005-11-11 12:53:38Z mike $"
+ * "$Id: config.h 6189 2007-01-10 16:30:34Z mike $"
*
* Configuration file for the Common UNIX Printing System (CUPS).
*
- * Copyright 1997-2005 by Easy Software Products.
+ * Copyright 1997-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
* Version of software...
*/
-#define CUPS_SVERSION "CUPS v1.2svn"
-#define CUPS_MINIMAL "CUPS/1.2svn"
+#define CUPS_SVERSION "CUPS v1.2.8"
+#define CUPS_MINIMAL "CUPS/1.2.8"
/*
- * Default user and group...
+ * Default user and groups...
*/
-#define CUPS_DEFAULT_USER "lp"
-#define CUPS_DEFAULT_GROUP "sys"
+#define CUPS_DEFAULT_USER "lp"
+#define CUPS_DEFAULT_GROUP "lp"
+#define CUPS_DEFAULT_SYSTEM_GROUPS "sys root"
+
+
+/*
+ * Default file permissions...
+ */
+
+#define CUPS_DEFAULT_CONFIG_FILE_PERM 0640
+#define CUPS_DEFAULT_LOG_FILE_PERM 0644
+
+
+/*
+ * Default browsing settings...
+ */
+
+#define CUPS_DEFAULT_BROWSING 1
+#define CUPS_DEFAULT_BROWSE_LOCAL_PROTOCOLS "CUPS"
+#define CUPS_DEFAULT_BROWSE_REMOTE_PROTOCOLS "CUPS"
+#define CUPS_DEFAULT_BROWSE_SHORT_NAMES 1
+#define CUPS_DEFAULT_DEFAULT_SHARED 1
+#define CUPS_DEFAULT_IMPLICIT_CLASSES 1
+#define CUPS_DEFAULT_USE_NETWORK_DEFAULT 1
/*
#undef HAVE_CRYPT_H
+/*
+ * Do we have <scsi/sg.h>?
+ */
+
+#undef HAVE_SCSI_SG_H
+
+
/*
* Use <string.h>, <strings.h>, and/or <bstring.h>?
*/
#undef HAVE_MALLOC_H
+/*
+ * Do we have the POSIX ACL functions?
+ */
+
+#undef HAVE_ACL_INIT
+
+
/*
* Do we have the langinfo.h header file?
*/
#undef HAVE_CDSASSL
#undef HAVE_GNUTLS
-#undef HAVE_LIBSSL
-#undef HAVE_SSL
+#define HAVE_LIBSSL 1
+#define HAVE_SSL 1
/*
#undef HAVE_LIBSLP
+/*
+ * Do we have an LDAP library?
+ */
+
+#undef HAVE_LDAP
+#undef HAVE_OPENLDAP
+
+
/*
* Do we have libpaper?
*/
#undef HAVE_PTHREAD_H
+/*
+ * Do we have launchd support?
+ */
+
+/* #undef HAVE_LAUNCH_H */
+/* #undef HAVE_LAUNCHD */
+#define CUPS_DEFAULT_LAUNCHD_CONF ""
+
+
/*
* Various scripting languages...
*/
#define CUPS_PYTHON "/usr/bin/python"
+/*
+ * Do we have Darwin's CoreFoundation and SystemConfiguration frameworks?
+ */
+
+/* #undef HAVE_COREFOUNDATION */
+/* #undef HAVE_SYSTEMCONFIGURATION */
+
+
+/*
+ * Do we have CoreFoundation public and private headers?
+ */
+
+/* #undef HAVE_COREFOUNDATION_H */
+/* #undef HAVE_CFPRIV_H */
+/* #undef HAVE_CFBUNDLEPRIV_H */
+
+
+/*
+ * Do we have CFLocaleCreateCanonicalLocaleIdentifierFromString()?
+ */
+
+/* #undef HAVE_CF_LOCALE_ID */
+
+
+/*
+ * Do we have MacOSX 10.4's mbr_XXX functions()?
+ */
+
+/* #undef HAVE_MEMBERSHIP_H */
+/* #undef HAVE_MBR_UID_TO_UUID */
+
+
+/*
+ * Do we have Darwin's notify_post() header and function?
+ */
+
+/* #undef HAVE_NOTIFY_H */
+/* #undef HAVE_NOTIFY_POST */
+
+
+/*
+ * Do we have DBUS?
+ */
+
+/* #undef HAVE_DBUS */
+/* #undef HAVE_DBUS_MESSAGE_ITER_INIT_APPEND */
+
+
+/*
+ * Do we have the AppleTalk/at_proto.h header?
+ */
+
+/* #undef HAVE_APPLETALK_AT_PROTO_H */
+
+
#endif /* !_CUPS_CONFIG_H_ */
/*
- * End of "$Id: config.h 4828 2005-11-11 12:53:38Z mike $".
+ * End of "$Id: config.h 6189 2007-01-10 16:30:34Z mike $".
*/
ProjectSection(ProjectDependencies) = postProject\r
EndProjectSection\r
EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testfile", "testfile.vcproj", "{CE75FC5F-E0CF-45DC-AD27-84666D3FBA30}"\r
+ ProjectSection(ProjectDependencies) = postProject\r
+ {CB4AA6F2-3E84-45BE-B505-95CD375E8BE3} = {CB4AA6F2-3E84-45BE-B505-95CD375E8BE3}\r
+ EndProjectSection\r
+EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testhttp", "testhttp.vcproj", "{CE75FC5F-E0CF-45DC-AD27-84666D3FBA30}"\r
+ ProjectSection(ProjectDependencies) = postProject\r
+ {CB4AA6F2-3E84-45BE-B505-95CD375E8BE3} = {CB4AA6F2-3E84-45BE-B505-95CD375E8BE3}\r
+ EndProjectSection\r
+EndProject\r
Global\r
GlobalSection(SolutionConfiguration) = preSolution\r
Debug = Debug\r
Release = Release\r
EndGlobalSection\r
+ GlobalSection(ProjectDependencies) = postSolution\r
+ EndGlobalSection\r
GlobalSection(ProjectConfiguration) = postSolution\r
{CB4AA6F2-3E84-45BE-B505-95CD375E8BE3}.Debug.ActiveCfg = Debug|Win32\r
{CB4AA6F2-3E84-45BE-B505-95CD375E8BE3}.Debug.Build.0 = Debug|Win32\r
{CB4AA6F2-3E84-45BE-B505-95CD375E8BE3}.Release.ActiveCfg = Release|Win32\r
{CB4AA6F2-3E84-45BE-B505-95CD375E8BE3}.Release.Build.0 = Release|Win32\r
+ {CE75FC5F-E0CF-45DC-AD27-84666D3FBA30}.Debug.ActiveCfg = Debug|Win32\r
+ {CE75FC5F-E0CF-45DC-AD27-84666D3FBA30}.Debug.Build.0 = Debug|Win32\r
+ {CE75FC5F-E0CF-45DC-AD27-84666D3FBA30}.Release.ActiveCfg = Release|Win32\r
+ {CE75FC5F-E0CF-45DC-AD27-84666D3FBA30}.Release.Build.0 = Release|Win32\r
+ {CE75FC5F-E0CF-45DC-AD27-84666D3FBA30}.Debug.ActiveCfg = Debug|Win32\r
+ {CE75FC5F-E0CF-45DC-AD27-84666D3FBA30}.Debug.Build.0 = Debug|Win32\r
+ {CE75FC5F-E0CF-45DC-AD27-84666D3FBA30}.Release.ActiveCfg = Release|Win32\r
+ {CE75FC5F-E0CF-45DC-AD27-84666D3FBA30}.Release.Build.0 = Release|Win32\r
EndGlobalSection\r
GlobalSection(ExtensibilityGlobals) = postSolution\r
EndGlobalSection\r
LIBRARY libcups2
-VERSION 2.6
+VERSION 2.7
EXPORTS
+_cupsAdminGetServerSettings
+_cupsAdminSetServerSettings
+_cupsCharmapFlush
+_cupsCharmapFree
+_cupsCharmapGet
+_cupsEncodingName
+_cupsGetPassword
+_cupsGlobals
+_cupsLangPrintf
+_cupsLangPuts
+_cupsLangString
+_cupsMD5Append
+_cupsMD5Finish
+_cupsMD5Init
+_cupsMessageFree
+_cupsMessageLoad
+_cupsMessageLookup
+_cupsSetError
+_cupsSetLocale
+_cupsStrAlloc
+_cupsStrFlush
+_cupsStrFormatd
+_cupsStrFree
+_cupsStrScand
+_cupsStrStatistics
+_cups_snprintf
+_cups_strcpy
+_cups_strlcat
+_cups_strlcpy
+_cups_vsnprintf
+_ippAddAttr
+_ippFindOption
+_ippFreeAttr
+_ppdGetEncoding
cupsAddDest
cupsAddOption
+cupsAdminCreateWindowsPPD
+cupsAdminExportSamba
cupsArrayAdd
cupsArrayClear
cupsArrayCount
cupsArrayDup
cupsArrayFind
cupsArrayFirst
+cupsArrayIndex
+cupsArrayInsert
cupsArrayLast
cupsArrayNew
cupsArrayNext
cupsArrayRemove
cupsArrayRestore
cupsArraySave
-cupsBackchannelRead
-cupsBackchannelWrite
+cupsArrayUserData
+cupsBackChannelRead
+cupsBackChannelWrite
+cupsBackendDeviceURI
cupsCancelJob
-cupsCharmapFlush
-cupsCharmapFree
-cupsCharmapGet
cupsCharsetToUTF8
cupsDirClose
cupsDirOpen
cupsDirRewind
cupsDoAuthentication
cupsDoFileRequest
+cupsDoRequest
cupsEncodeOptions
cupsEncodeOptions2
-cupsEncodingName
cupsEncryption
cupsFileClose
cupsFileCompression
cupsFileEOF
+cupsFileFind
cupsFileFlush
cupsFileGetChar
cupsFileGetConf
+cupsFileGetLine
cupsFileGets
cupsFileLock
cupsFileNumber
cupsFileRead
cupsFileRewind
cupsFileSeek
+cupsFileStderr
+cupsFileStdin
+cupsFileStdout
cupsFileTell
cupsFileUnlock
cupsFileWrite
cupsGetJobs
cupsGetJobs2
cupsGetOption
-cupsGetPassword
cupsGetPPD
cupsGetPPD2
+cupsGetPassword
cupsGetPrinters
+cupsLangDefault
cupsLangEncoding
cupsLangFlush
cupsLangFree
cupsLangGet
-cupsLangPrintf
-cupsLangPuts
cupsLastError
+cupsLastErrorString
cupsMarkOptions
-_cups_md5_append
-_cups_md5_finish
-_cups_md5_init
-cupsNormalizeMapsFlush
-cupsNormalizeMapsFree
-cupsNormalizeMapsGet
+cupsNotifySubject
+cupsNotifyText
cupsParseOptions
cupsPrintFile
cupsPrintFile2
cupsPrintFiles2
cupsPutFd
cupsPutFile
-_cupsRestoreLocale
-_cupsSaveLocale
+cupsRemoveOption
cupsServer
cupsSetDests
cupsSetDests2
cupsSetPasswordCB
cupsSetServer
cupsSetUser
-_cups_strcpy
-_cups_strlcat
-_cups_strlcpy
cupsTempFd
cupsTempFile
cupsTempFile2
-cupsUser
-cupsUTF16ToUTF32
-cupsUTF16ToUTF8
-cupsUTF32CaseFold
-cupsUTF32CharacterProperty
-cupsUTF32CompareCaseless
-cupsUTF32CompareIdentifier
-cupsUTF32Normalize
-cupsUTF32ToUTF16
cupsUTF32ToUTF8
-cupsUTF8CaseFold
-cupsUTF8CompareCaseless
-cupsUTF8CompareIdentifier
-cupsUTF8Normalize
cupsUTF8ToCharset
-cupsUTF8ToUTF16
cupsUTF8ToUTF32
+cupsUser
httpAddrAny
httpAddrConnect
httpAddrEqual
httpAddrString
httpAssembleURI
httpAssembleURIf
+httpBlocking
httpCheck
httpClearCookie
+httpClearFields
httpClose
httpConnect
httpConnectEncrypt
httpEncode64
httpEncode64_2
httpEncryption
+httpError
httpFlush
httpFlushWrite
httpGet
+httpGetBlocking
+httpGetCookie
httpGetDateString
httpGetDateString2
httpGetDateTime
+httpGetFd
+httpGetField
httpGetHostByName
httpGetHostname
httpGetLength
httpGetLength2
-httpGets
+httpGetStatus
httpGetSubField
httpGetSubField2
+httpGets
httpHead
httpInitialize
httpMD5
httpPrintf
httpPut
httpRead
+httpRead2
httpReconnect
httpSeparate
httpSeparate2
httpSeparateURI
httpSetCookie
+httpSetExpect
httpSetField
httpSetLength
httpStatus
httpUpdate
httpWait
httpWrite
-_ipp_add_attr
+httpWrite2
ippAddBoolean
ippAddBooleans
ippAddCollection
ippAddDate
ippAddInteger
ippAddIntegers
+ippAddOctetString
ippAddRange
ippAddRanges
ippAddResolution
ippErrorValue
ippFindAttribute
ippFindNextAttribute
-_ipp_free_attr
ippLength
ippNew
+ippNewRequest
ippOpString
ippOpValue
ippPort
ippWriteIO
ppdClose
ppdCollect
+ppdCollect2
ppdConflicts
ppdEmit
+ppdEmitAfterOrder
ppdEmitFd
ppdEmitJCL
ppdEmitJCLEnd
+ppdEmitString
ppdErrorString
ppdFindAttr
ppdFindChoice
+ppdFindCustomOption
+ppdFindCustomParam
ppdFindMarkedChoice
ppdFindNextAttr
ppdFindOption
+ppdFirstCustomParam
+ppdFirstOption
ppdIsMarked
ppdLastError
+ppdLocalize
ppdMarkDefaults
ppdMarkOption
+ppdNextCustomParam
+ppdNextOption
ppdOpen
ppdOpen2
ppdOpenFd
Name="VCCustomBuildTool"/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="ws2_32.lib"\r
- OutputFile="$(OutDir)/libcups2.dll"\r
+ AdditionalDependencies="ssleay32.lib libeay32.lib ws2_32.lib"\r
+ OutputFile="Debug\libcups2.dll"\r
LinkIncremental="2"\r
ModuleDefinitionFile="..\vcnet\libcups2.def"\r
GenerateDebugInformation="TRUE"\r
- ProgramDatabaseFile="$(OutDir)/libcups2.pdb"\r
+ ProgramDatabaseFile="Debug\libcups2.pdb"\r
SubSystem="2"\r
- ImportLibrary="$(OutDir)/libcups2.lib"\r
+ ImportLibrary="Debug\libcups2.lib"\r
TargetMachine="1"/>\r
<Tool\r
Name="VCMIDLTool"/>\r
Name="VCCustomBuildTool"/>\r
<Tool\r
Name="VCLinkerTool"\r
- AdditionalDependencies="ws2_32.lib"\r
- OutputFile="$(OutDir)/libcups2.dll"\r
+ AdditionalDependencies="ssleay32.lib libeay32.lib ws2_32.lib"\r
+ OutputFile="libcups2.dll"\r
LinkIncremental="1"\r
ModuleDefinitionFile="..\vcnet\libcups2.def"\r
GenerateDebugInformation="TRUE"\r
+ ProgramDatabaseFile="libcups2.pdb"\r
SubSystem="2"\r
OptimizeReferences="2"\r
EnableCOMDATFolding="2"\r
- ImportLibrary="$(OutDir)/libcups2.lib"\r
+ ImportLibrary="libcups2.lib"\r
TargetMachine="1"/>\r
<Tool\r
Name="VCMIDLTool"/>\r
Name="Source Files"\r
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">\r
+ <File\r
+ RelativePath="..\cups\adminutil.c">\r
+ </File>\r
<File\r
RelativePath="..\cups\array.c">\r
+ <FileConfiguration\r
+ Name="Debug|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
+ <FileConfiguration\r
+ Name="Release|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
</File>\r
<File\r
RelativePath="..\cups\attr.c">\r
+ <FileConfiguration\r
+ Name="Debug|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
+ <FileConfiguration\r
+ Name="Release|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
</File>\r
<File\r
RelativePath="..\cups\auth.c">\r
+ <FileConfiguration\r
+ Name="Debug|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
+ <FileConfiguration\r
+ Name="Release|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
</File>\r
<File\r
RelativePath="..\cups\backchannel.c">\r
+ <FileConfiguration\r
+ Name="Debug|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
+ <FileConfiguration\r
+ Name="Release|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
+ </File>\r
+ <File\r
+ RelativePath="..\cups\backend.c">\r
+ </File>\r
+ <File\r
+ RelativePath="..\cups\custom.c">\r
</File>\r
<File\r
RelativePath="..\cups\dest.c">\r
+ <FileConfiguration\r
+ Name="Debug|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
+ <FileConfiguration\r
+ Name="Release|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
</File>\r
<File\r
RelativePath="..\cups\dir.c">\r
+ <FileConfiguration\r
+ Name="Debug|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
+ <FileConfiguration\r
+ Name="Release|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
</File>\r
<File\r
RelativePath="..\cups\emit.c">\r
+ <FileConfiguration\r
+ Name="Debug|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
+ <FileConfiguration\r
+ Name="Release|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
</File>\r
<File\r
RelativePath="..\cups\encode.c">\r
+ <FileConfiguration\r
+ Name="Debug|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
+ <FileConfiguration\r
+ Name="Release|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
</File>\r
<File\r
RelativePath="..\cups\file.c">\r
+ <FileConfiguration\r
+ Name="Debug|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
+ <FileConfiguration\r
+ Name="Release|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
</File>\r
<File\r
RelativePath="..\cups\getputfile.c">\r
+ <FileConfiguration\r
+ Name="Debug|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
+ <FileConfiguration\r
+ Name="Release|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
</File>\r
<File\r
RelativePath="..\cups\globals.c">\r
+ <FileConfiguration\r
+ Name="Debug|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
+ <FileConfiguration\r
+ Name="Release|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
</File>\r
<File\r
RelativePath="..\cups\http-addr.c">\r
+ <FileConfiguration\r
+ Name="Debug|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
+ <FileConfiguration\r
+ Name="Release|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
</File>\r
<File\r
RelativePath="..\cups\http-addrlist.c">\r
+ <FileConfiguration\r
+ Name="Debug|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
+ <FileConfiguration\r
+ Name="Release|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
</File>\r
<File\r
RelativePath="..\cups\http-support.c">\r
+ <FileConfiguration\r
+ Name="Debug|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
+ <FileConfiguration\r
+ Name="Release|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
</File>\r
<File\r
RelativePath="..\cups\http.c">\r
+ <FileConfiguration\r
+ Name="Debug|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
+ <FileConfiguration\r
+ Name="Release|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
</File>\r
<File\r
RelativePath="..\cups\ipp-support.c">\r
+ <FileConfiguration\r
+ Name="Debug|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
+ <FileConfiguration\r
+ Name="Release|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
</File>\r
<File\r
RelativePath="..\cups\ipp.c">\r
+ <FileConfiguration\r
+ Name="Debug|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
+ <FileConfiguration\r
+ Name="Release|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
</File>\r
<File\r
RelativePath="..\cups\langprintf.c">\r
+ <FileConfiguration\r
+ Name="Debug|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
+ <FileConfiguration\r
+ Name="Release|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
</File>\r
<File\r
RelativePath="..\cups\language.c">\r
+ <FileConfiguration\r
+ Name="Debug|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
+ <FileConfiguration\r
+ Name="Release|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
+ </File>\r
+ <File\r
+ RelativePath="..\cups\localize.c">\r
</File>\r
<File\r
RelativePath="..\cups\mark.c">\r
+ <FileConfiguration\r
+ Name="Debug|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
+ <FileConfiguration\r
+ Name="Release|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
</File>\r
<File\r
RelativePath="..\cups\md5.c">\r
+ <FileConfiguration\r
+ Name="Debug|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
+ <FileConfiguration\r
+ Name="Release|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
</File>\r
<File\r
RelativePath="..\cups\md5passwd.c">\r
+ <FileConfiguration\r
+ Name="Debug|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
+ <FileConfiguration\r
+ Name="Release|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
</File>\r
<File\r
- RelativePath="..\cups\normalize.c">\r
+ RelativePath="..\cups\notify.c">\r
</File>\r
<File\r
RelativePath="..\cups\options.c">\r
+ <FileConfiguration\r
+ Name="Debug|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
+ <FileConfiguration\r
+ Name="Release|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
</File>\r
<File\r
RelativePath="..\cups\page.c">\r
+ <FileConfiguration\r
+ Name="Debug|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
+ <FileConfiguration\r
+ Name="Release|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
</File>\r
<File\r
RelativePath="..\cups\ppd.c">\r
+ <FileConfiguration\r
+ Name="Debug|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
+ <FileConfiguration\r
+ Name="Release|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
+ </File>\r
+ <File\r
+ RelativePath="..\cups\request.c">\r
</File>\r
<File\r
RelativePath="..\cups\snprintf.c">\r
+ <FileConfiguration\r
+ Name="Debug|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
+ <FileConfiguration\r
+ Name="Release|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
</File>\r
<File\r
RelativePath="..\cups\string.c">\r
+ <FileConfiguration\r
+ Name="Debug|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
+ <FileConfiguration\r
+ Name="Release|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
</File>\r
<File\r
RelativePath="..\cups\tempfile.c">\r
+ <FileConfiguration\r
+ Name="Debug|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
+ <FileConfiguration\r
+ Name="Release|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
</File>\r
<File\r
RelativePath="..\cups\transcode.c">\r
+ <FileConfiguration\r
+ Name="Debug|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
+ <FileConfiguration\r
+ Name="Release|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
</File>\r
<File\r
RelativePath="..\cups\usersys.c">\r
+ <FileConfiguration\r
+ Name="Debug|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
+ <FileConfiguration\r
+ Name="Release|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
</File>\r
<File\r
RelativePath="..\cups\util.c">\r
+ <FileConfiguration\r
+ Name="Debug|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
+ <FileConfiguration\r
+ Name="Release|Win32">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ PreprocessorDefinitions="WIN32"/>\r
+ </FileConfiguration>\r
</File>\r
</Filter>\r
<Filter\r
Name="Header Files"\r
Filter="h;hpp;hxx;hm;inl;inc;xsd"\r
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">\r
+ <File\r
+ RelativePath="..\cups\adminutil.h">\r
+ </File>\r
<File\r
RelativePath="..\cups\array.h">\r
</File>\r
<File\r
RelativePath="..\cups\http.h">\r
</File>\r
+ <File\r
+ RelativePath="..\cups\i18n.h">\r
+ </File>\r
+ <File\r
+ RelativePath="..\cups\ipp-private.h">\r
+ </File>\r
<File\r
RelativePath="..\cups\ipp.h">\r
</File>\r
--- /dev/null
+<?xml version="1.0" encoding="Windows-1252"?>\r
+<VisualStudioProject\r
+ ProjectType="Visual C++"\r
+ Version="7.10"\r
+ Name="testfile"\r
+ ProjectGUID="{CE75FC5F-E0CF-45DC-AD27-84666D3FBA30}"\r
+ Keyword="Win32Proj">\r
+ <Platforms>\r
+ <Platform\r
+ Name="Win32"/>\r
+ </Platforms>\r
+ <Configurations>\r
+ <Configuration\r
+ Name="Debug|Win32"\r
+ OutputDirectory="Debug"\r
+ IntermediateDirectory="Debug"\r
+ ConfigurationType="1"\r
+ CharacterSet="2">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ Optimization="0"\r
+ AdditionalIncludeDirectories="..\vcnet;.."\r
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"\r
+ MinimalRebuild="TRUE"\r
+ BasicRuntimeChecks="3"\r
+ RuntimeLibrary="5"\r
+ UsePrecompiledHeader="0"\r
+ WarningLevel="3"\r
+ Detect64BitPortabilityProblems="TRUE"\r
+ DebugInformationFormat="4"/>\r
+ <Tool\r
+ Name="VCCustomBuildTool"/>\r
+ <Tool\r
+ Name="VCLinkerTool"\r
+ OutputFile="Debug\testfile.exe"\r
+ LinkIncremental="2"\r
+ GenerateDebugInformation="TRUE"\r
+ ProgramDatabaseFile="$(OutDir)/testfile.pdb"\r
+ SubSystem="1"\r
+ TargetMachine="1"/>\r
+ <Tool\r
+ Name="VCMIDLTool"/>\r
+ <Tool\r
+ Name="VCPostBuildEventTool"/>\r
+ <Tool\r
+ Name="VCPreBuildEventTool"/>\r
+ <Tool\r
+ Name="VCPreLinkEventTool"/>\r
+ <Tool\r
+ Name="VCResourceCompilerTool"/>\r
+ <Tool\r
+ Name="VCWebServiceProxyGeneratorTool"/>\r
+ <Tool\r
+ Name="VCXMLDataGeneratorTool"/>\r
+ <Tool\r
+ Name="VCWebDeploymentTool"/>\r
+ <Tool\r
+ Name="VCManagedWrapperGeneratorTool"/>\r
+ <Tool\r
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>\r
+ </Configuration>\r
+ <Configuration\r
+ Name="Release|Win32"\r
+ OutputDirectory="Release"\r
+ IntermediateDirectory="Release"\r
+ ConfigurationType="1"\r
+ CharacterSet="2">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ AdditionalIncludeDirectories="..\vcnet;.."\r
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"\r
+ RuntimeLibrary="0"\r
+ UsePrecompiledHeader="0"\r
+ WarningLevel="3"\r
+ Detect64BitPortabilityProblems="TRUE"\r
+ DebugInformationFormat="0"/>\r
+ <Tool\r
+ Name="VCCustomBuildTool"/>\r
+ <Tool\r
+ Name="VCLinkerTool"\r
+ OutputFile="testfile.exe"\r
+ LinkIncremental="1"\r
+ GenerateDebugInformation="TRUE"\r
+ SubSystem="1"\r
+ OptimizeReferences="2"\r
+ EnableCOMDATFolding="2"\r
+ TargetMachine="1"/>\r
+ <Tool\r
+ Name="VCMIDLTool"/>\r
+ <Tool\r
+ Name="VCPostBuildEventTool"/>\r
+ <Tool\r
+ Name="VCPreBuildEventTool"/>\r
+ <Tool\r
+ Name="VCPreLinkEventTool"/>\r
+ <Tool\r
+ Name="VCResourceCompilerTool"/>\r
+ <Tool\r
+ Name="VCWebServiceProxyGeneratorTool"/>\r
+ <Tool\r
+ Name="VCXMLDataGeneratorTool"/>\r
+ <Tool\r
+ Name="VCWebDeploymentTool"/>\r
+ <Tool\r
+ Name="VCManagedWrapperGeneratorTool"/>\r
+ <Tool\r
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>\r
+ </Configuration>\r
+ </Configurations>\r
+ <References>\r
+ </References>\r
+ <Files>\r
+ <Filter\r
+ Name="Source Files"\r
+ Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">\r
+ <File\r
+ RelativePath="..\cups\testfile.c">\r
+ </File>\r
+ </Filter>\r
+ <Filter\r
+ Name="Header Files"\r
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"\r
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">\r
+ </Filter>\r
+ <Filter\r
+ Name="Resource Files"\r
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"\r
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">\r
+ </Filter>\r
+ </Files>\r
+ <Globals>\r
+ </Globals>\r
+</VisualStudioProject>\r
--- /dev/null
+<?xml version="1.0" encoding="Windows-1252"?>\r
+<VisualStudioProject\r
+ ProjectType="Visual C++"\r
+ Version="7.10"\r
+ Name="testhttp"\r
+ ProjectGUID="{CE75FC5F-E0CF-45DC-AD27-84666D3FBA30}"\r
+ Keyword="Win32Proj">\r
+ <Platforms>\r
+ <Platform\r
+ Name="Win32"/>\r
+ </Platforms>\r
+ <Configurations>\r
+ <Configuration\r
+ Name="Debug|Win32"\r
+ OutputDirectory="Debug"\r
+ IntermediateDirectory="Debug"\r
+ ConfigurationType="1"\r
+ CharacterSet="2">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ Optimization="0"\r
+ AdditionalIncludeDirectories="..\vcnet;.."\r
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"\r
+ MinimalRebuild="TRUE"\r
+ BasicRuntimeChecks="3"\r
+ RuntimeLibrary="5"\r
+ UsePrecompiledHeader="0"\r
+ WarningLevel="3"\r
+ Detect64BitPortabilityProblems="TRUE"\r
+ DebugInformationFormat="4"/>\r
+ <Tool\r
+ Name="VCCustomBuildTool"/>\r
+ <Tool\r
+ Name="VCLinkerTool"\r
+ OutputFile="Debug\testhttp.exe"\r
+ LinkIncremental="2"\r
+ GenerateDebugInformation="TRUE"\r
+ ProgramDatabaseFile="$(OutDir)/testhttp.pdb"\r
+ SubSystem="1"\r
+ TargetMachine="1"/>\r
+ <Tool\r
+ Name="VCMIDLTool"/>\r
+ <Tool\r
+ Name="VCPostBuildEventTool"/>\r
+ <Tool\r
+ Name="VCPreBuildEventTool"/>\r
+ <Tool\r
+ Name="VCPreLinkEventTool"/>\r
+ <Tool\r
+ Name="VCResourceCompilerTool"/>\r
+ <Tool\r
+ Name="VCWebServiceProxyGeneratorTool"/>\r
+ <Tool\r
+ Name="VCXMLDataGeneratorTool"/>\r
+ <Tool\r
+ Name="VCWebDeploymentTool"/>\r
+ <Tool\r
+ Name="VCManagedWrapperGeneratorTool"/>\r
+ <Tool\r
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>\r
+ </Configuration>\r
+ <Configuration\r
+ Name="Release|Win32"\r
+ OutputDirectory="Release"\r
+ IntermediateDirectory="Release"\r
+ ConfigurationType="1"\r
+ CharacterSet="2">\r
+ <Tool\r
+ Name="VCCLCompilerTool"\r
+ AdditionalIncludeDirectories="..\vcnet;.."\r
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"\r
+ RuntimeLibrary="0"\r
+ UsePrecompiledHeader="0"\r
+ WarningLevel="3"\r
+ Detect64BitPortabilityProblems="TRUE"\r
+ DebugInformationFormat="0"/>\r
+ <Tool\r
+ Name="VCCustomBuildTool"/>\r
+ <Tool\r
+ Name="VCLinkerTool"\r
+ OutputFile="testhttp.exe"\r
+ LinkIncremental="1"\r
+ GenerateDebugInformation="TRUE"\r
+ SubSystem="1"\r
+ OptimizeReferences="2"\r
+ EnableCOMDATFolding="2"\r
+ TargetMachine="1"/>\r
+ <Tool\r
+ Name="VCMIDLTool"/>\r
+ <Tool\r
+ Name="VCPostBuildEventTool"/>\r
+ <Tool\r
+ Name="VCPreBuildEventTool"/>\r
+ <Tool\r
+ Name="VCPreLinkEventTool"/>\r
+ <Tool\r
+ Name="VCResourceCompilerTool"/>\r
+ <Tool\r
+ Name="VCWebServiceProxyGeneratorTool"/>\r
+ <Tool\r
+ Name="VCXMLDataGeneratorTool"/>\r
+ <Tool\r
+ Name="VCWebDeploymentTool"/>\r
+ <Tool\r
+ Name="VCManagedWrapperGeneratorTool"/>\r
+ <Tool\r
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>\r
+ </Configuration>\r
+ </Configurations>\r
+ <References>\r
+ </References>\r
+ <Files>\r
+ <Filter\r
+ Name="Source Files"\r
+ Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">\r
+ <File\r
+ RelativePath="..\cups\testhttp.c">\r
+ </File>\r
+ </Filter>\r
+ <Filter\r
+ Name="Header Files"\r
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"\r
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">\r
+ </Filter>\r
+ <Filter\r
+ Name="Resource Files"\r
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"\r
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">\r
+ </Filter>\r
+ </Files>\r
+ <Globals>\r
+ </Globals>\r
+</VisualStudioProject>\r