From b86bc4cf571c35972a94a634ea884baff9799fa9 Mon Sep 17 00:00:00 2001 From: jlovell Date: Wed, 14 Feb 2007 19:18:46 +0000 Subject: [PATCH] Load cups into easysw/current. git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@266 a1ca3aef-8c08-0410-bb20-df032aa958be --- CHANGES.txt | 88 +- CREDITS.txt | 3 +- INSTALL.txt | 2 +- LICENSE.txt | 2 +- Makefile | 9 +- README.txt | 4 +- backend/ipp.c | 6 +- backend/parallel.c | 12 +- backend/runloop.c | 8 +- backend/snmp.c | 18 +- backend/usb-unix.c | 8 +- cgi-bin/ipp-var.c | 6 +- config-scripts/cups-3264.m4 | 149 + config-scripts/cups-common.m4 | 6 +- config-scripts/cups-compiler.m4 | 122 +- config-scripts/cups-defaults.m4 | 10 +- config-scripts/cups-opsys.m4 | 7 +- config-scripts/cups-sharedlibs.m4 | 37 +- config-scripts/cups-ssl.m4 | 42 +- config.h.in | 18 +- configure.in | 5 +- cups/adminutil.c | 307 +- cups/auth.c | 20 +- cups/backchannel.c | 16 +- cups/cups.h | 17 +- cups/dest.c | 8 +- cups/emit.c | 14 +- cups/encode.c | 12 +- cups/file.c | 85 +- cups/file.h | 12 +- cups/http-addrlist.c | 12 +- cups/http-private.h | 56 +- cups/http-support.c | 10 +- cups/http.c | 100 +- cups/http.h | 11 +- cups/ipp.c | 41 +- cups/langprintf.c | 10 +- cups/language.c | 8 +- cups/mark.c | 44 +- cups/page.c | 98 +- cups/ppd.c | 62 +- cups/request.c | 8 +- cups/snprintf.c | 18 +- cups/string.c | 49 +- cups/testfile.c | 34 +- cups/testppd.c | 73 +- cups/transcode.c | 16 +- cups/util.c | 7 +- desktop/cups.desktop | 4 +- doc/de/index.html.in | 2 +- doc/es/index.html.in | 2 +- doc/et/index.html.in | 2 +- doc/fr/images/button-accept-jobs.gif | Bin 0 -> 668 bytes doc/fr/images/button-add-class.gif | Bin 0 -> 628 bytes doc/fr/images/button-add-printer.gif | Bin 0 -> 679 bytes doc/fr/images/button-add-this-printer.gif | Bin 0 -> 715 bytes doc/fr/images/button-cancel-all-jobs.gif | Bin 0 -> 725 bytes doc/fr/images/button-cancel-job.gif | Bin 0 -> 568 bytes doc/fr/images/button-change-settings.gif | Bin 0 -> 732 bytes doc/fr/images/button-clean-print-heads.gif | Bin 0 -> 856 bytes doc/fr/images/button-clear.gif | Bin 0 -> 466 bytes doc/fr/images/button-continue.gif | Bin 0 -> 482 bytes doc/fr/images/button-delete-class.gif | Bin 0 -> 636 bytes doc/fr/images/button-delete-printer.gif | Bin 0 -> 645 bytes .../images/button-edit-configuration-file.gif | Bin 0 -> 810 bytes doc/fr/images/button-export-samba.gif | Bin 0 -> 958 bytes doc/fr/images/button-help.gif | Bin 0 -> 361 bytes doc/fr/images/button-hold-job.gif | Bin 0 -> 565 bytes doc/fr/images/button-manage-classes.gif | Bin 0 -> 702 bytes doc/fr/images/button-manage-jobs.gif | Bin 0 -> 694 bytes doc/fr/images/button-manage-printers.gif | Bin 0 -> 760 bytes doc/fr/images/button-manage-server.gif | Bin 0 -> 891 bytes doc/fr/images/button-modify-class.gif | Bin 0 -> 618 bytes doc/fr/images/button-modify-printer.gif | Bin 0 -> 644 bytes doc/fr/images/button-move-job.gif | Bin 0 -> 610 bytes doc/fr/images/button-move-jobs.gif | Bin 0 -> 785 bytes doc/fr/images/button-print-self-test-page.gif | Bin 0 -> 946 bytes doc/fr/images/button-print-test-page.gif | Bin 0 -> 859 bytes doc/fr/images/button-publish-printer.gif | Bin 0 -> 616 bytes doc/fr/images/button-reject-jobs.gif | Bin 0 -> 632 bytes doc/fr/images/button-release-job.gif | Bin 0 -> 574 bytes doc/fr/images/button-restart-job.gif | Bin 0 -> 601 bytes doc/fr/images/button-save-changes.gif | Bin 0 -> 775 bytes doc/fr/images/button-search.gif | Bin 0 -> 482 bytes doc/fr/images/button-set-allowed-users.gif | Bin 0 -> 702 bytes doc/fr/images/button-set-as-default.gif | Bin 0 -> 624 bytes doc/fr/images/button-set-printer-options.gif | Bin 0 -> 867 bytes doc/fr/images/button-show-active.gif | Bin 0 -> 781 bytes doc/fr/images/button-show-all.gif | Bin 0 -> 756 bytes doc/fr/images/button-show-completed.gif | Bin 0 -> 802 bytes doc/fr/images/button-show-next.gif | Bin 0 -> 685 bytes doc/fr/images/button-show-previous.gif | Bin 0 -> 730 bytes doc/fr/images/button-sort-ascending.gif | Bin 0 -> 707 bytes doc/fr/images/button-sort-descending.gif | Bin 0 -> 764 bytes doc/fr/images/button-start-class.gif | Bin 0 -> 635 bytes doc/fr/images/button-start-printer.gif | Bin 0 -> 646 bytes doc/fr/images/button-stop-class.gif | Bin 0 -> 608 bytes doc/fr/images/button-stop-printer.gif | Bin 0 -> 635 bytes doc/fr/images/button-unpublish-printer.gif | Bin 0 -> 620 bytes doc/fr/images/button-use-default-config.gif | Bin 0 -> 880 bytes doc/fr/images/button-view-access-log.gif | Bin 0 -> 568 bytes doc/fr/images/button-view-error-log.gif | Bin 0 -> 569 bytes doc/fr/images/button-view-page-log.gif | Bin 0 -> 580 bytes .../images/button-view-printable-version.gif | Bin 0 -> 637 bytes doc/fr/index.html.in | 278 + doc/help/api-raster.html | 143 +- doc/help/license.html | 2 +- doc/help/network.html | 519 +- doc/help/options.html | 25 +- doc/help/ref-cupsd-conf.html | 2 +- doc/help/spec-ppd.html | 338 +- doc/idd.shtml | 1445 ----- doc/index.html.in | 2 +- doc/it/index.html.in | 2 +- doc/ja/index.html.in | 2 +- doc/pl/index.html.in | 2 +- doc/sdd.shtml | 564 -- doc/sps.shtml | 457 -- doc/sv/index.html.in | 2 +- filter/Dependencies | 888 +-- filter/Makefile | 10 +- filter/image-pnm.c | 6 +- filter/image-private.h | 9 +- filter/image-sun.c | 14 +- filter/interpret.c | 1329 +++- filter/libcupsimage_s.exp | 1 + filter/pstops.c | 341 +- filter/raster.h | 104 +- filter/rastertolabel.c | 20 +- filter/testraster.c | 851 ++- locale/cups.pot | 51 +- locale/cups_de.po | 363 +- locale/cups_es.po | 56 +- locale/cups_et.po | 267 +- locale/cups_fr.po | 5690 +++++++++++++++++ locale/cups_it.po | 364 +- locale/cups_ja.po | 55 +- locale/cups_pl.po | 54 +- locale/cups_sv.po | 289 +- packaging/cups.list.in | 25 +- packaging/cups.spec.in | 23 +- pdftops/PSOutputDev.cxx | 9 +- scheduler/client.c | 282 +- scheduler/client.h | 7 +- scheduler/conf.c | 10 +- scheduler/cups-driverd.c | 13 +- scheduler/dirsvc.c | 8 +- scheduler/ipp.c | 7 +- scheduler/job.c | 18 +- .../java/src/com/easysw/cups/Base64Coder.java | 145 + .../src/com/easysw/cups/IPPBase64Encoder.java | 46 - .../java/src/com/easysw/cups/IPPHttp.java | 15 +- scripting/java/src/com/easysw/cups/class.list | 2 +- systemv/lpoptions.c | 8 +- templates/de/header.tmpl.in | 4 +- templates/de/jobs.tmpl | 2 +- templates/es/header.tmpl.in | 4 +- templates/es/jobs.tmpl | 2 +- templates/et/header.tmpl.in | 4 +- templates/et/jobs.tmpl | 2 +- templates/fr/add-class.tmpl | 66 + templates/fr/add-printer.tmpl | 56 + templates/fr/admin.tmpl | 166 + templates/fr/choose-device.tmpl | 52 + templates/fr/choose-make.tmpl | 84 + templates/fr/choose-model.tmpl | 68 + templates/fr/choose-serial.tmpl | 94 + templates/fr/choose-uri.tmpl | 84 + templates/fr/class-added.tmpl | 2 + templates/fr/class-confirm.tmpl | 14 + templates/fr/class-deleted.tmpl | 2 + templates/fr/class-jobs-header.tmpl | 2 + templates/fr/class-modified.tmpl | 2 + templates/fr/classes-header.tmpl | 2 + templates/fr/classes.tmpl | 108 + templates/fr/edit-config.tmpl.in | 182 + templates/fr/error-op.tmpl | 6 + templates/fr/error.tmpl | 6 + templates/fr/header.tmpl.in | 126 + templates/fr/help-header.tmpl | 104 + templates/fr/help-printable.tmpl | 22 + templates/fr/job-cancel.tmpl | 2 + templates/fr/job-hold.tmpl | 2 + templates/fr/job-move.tmpl | 44 + templates/fr/job-moved.tmpl | 4 + templates/fr/job-release.tmpl | 2 + templates/fr/job-restart.tmpl | 2 + templates/fr/jobs-header.tmpl | 32 + templates/fr/jobs.tmpl | 84 + templates/fr/maintenance.tmpl | 4 + templates/fr/modify-class.tmpl | 68 + templates/fr/modify-printer.tmpl | 58 + templates/fr/norestart.tmpl | 2 + templates/fr/option-boolean.tmpl | 14 + templates/fr/option-conflict.tmpl | 14 + templates/fr/option-header.tmpl | 6 + templates/fr/option-pickmany.tmpl | 14 + templates/fr/option-pickone.tmpl | 14 + templates/fr/option-trailer.tmpl | 12 + templates/fr/pager.tmpl | 22 + templates/fr/printer-accept.tmpl | 6 + templates/fr/printer-added.tmpl | 2 + templates/fr/printer-configured.tmpl | 2 + templates/fr/printer-confirm.tmpl | 14 + templates/fr/printer-default.tmpl | 14 + templates/fr/printer-deleted.tmpl | 2 + templates/fr/printer-jobs-header.tmpl | 2 + templates/fr/printer-modified.tmpl | 2 + templates/fr/printer-purge.tmpl | 6 + templates/fr/printer-reject.tmpl | 6 + templates/fr/printer-start.tmpl | 6 + templates/fr/printer-stop.tmpl | 6 + templates/fr/printers-header.tmpl | 2 + templates/fr/printers.tmpl | 132 + templates/fr/restart.tmpl | 2 + templates/fr/samba-export.tmpl | 106 + templates/fr/samba-exported.tmpl | 2 + templates/fr/search.tmpl | 26 + templates/fr/set-printer-options-header.tmpl | 6 + templates/fr/set-printer-options-trailer.tmpl | 2 + templates/fr/test-page.tmpl | 4 + templates/fr/trailer.tmpl | 42 + templates/fr/users.tmpl | 52 + templates/header.tmpl.in | 4 +- templates/it/header.tmpl.in | 4 +- templates/it/jobs.tmpl | 2 +- templates/ja/header.tmpl.in | 4 +- templates/ja/jobs.tmpl | 2 +- templates/jobs.tmpl | 2 +- templates/pl/header.tmpl.in | 4 +- templates/pl/jobs.tmpl | 2 +- templates/sv/header.tmpl.in | 4 +- templates/sv/jobs.tmpl | 2 +- templates/trailer.tmpl | 2 +- tools/checkpo | 22 + vcnet/config.h | 128 +- vcnet/cups.sln | 20 + vcnet/libcups2.def | 118 +- vcnet/libcups2.vcproj | 413 +- vcnet/testfile.vcproj | 134 + vcnet/testhttp.vcproj | 134 + 241 files changed, 15145 insertions(+), 4849 deletions(-) create mode 100644 config-scripts/cups-3264.m4 create mode 100644 doc/fr/images/button-accept-jobs.gif create mode 100644 doc/fr/images/button-add-class.gif create mode 100644 doc/fr/images/button-add-printer.gif create mode 100644 doc/fr/images/button-add-this-printer.gif create mode 100644 doc/fr/images/button-cancel-all-jobs.gif create mode 100644 doc/fr/images/button-cancel-job.gif create mode 100644 doc/fr/images/button-change-settings.gif create mode 100644 doc/fr/images/button-clean-print-heads.gif create mode 100644 doc/fr/images/button-clear.gif create mode 100644 doc/fr/images/button-continue.gif create mode 100644 doc/fr/images/button-delete-class.gif create mode 100644 doc/fr/images/button-delete-printer.gif create mode 100644 doc/fr/images/button-edit-configuration-file.gif create mode 100644 doc/fr/images/button-export-samba.gif create mode 100644 doc/fr/images/button-help.gif create mode 100644 doc/fr/images/button-hold-job.gif create mode 100644 doc/fr/images/button-manage-classes.gif create mode 100644 doc/fr/images/button-manage-jobs.gif create mode 100644 doc/fr/images/button-manage-printers.gif create mode 100644 doc/fr/images/button-manage-server.gif create mode 100644 doc/fr/images/button-modify-class.gif create mode 100644 doc/fr/images/button-modify-printer.gif create mode 100644 doc/fr/images/button-move-job.gif create mode 100644 doc/fr/images/button-move-jobs.gif create mode 100644 doc/fr/images/button-print-self-test-page.gif create mode 100644 doc/fr/images/button-print-test-page.gif create mode 100644 doc/fr/images/button-publish-printer.gif create mode 100644 doc/fr/images/button-reject-jobs.gif create mode 100644 doc/fr/images/button-release-job.gif create mode 100644 doc/fr/images/button-restart-job.gif create mode 100644 doc/fr/images/button-save-changes.gif create mode 100644 doc/fr/images/button-search.gif create mode 100644 doc/fr/images/button-set-allowed-users.gif create mode 100644 doc/fr/images/button-set-as-default.gif create mode 100644 doc/fr/images/button-set-printer-options.gif create mode 100644 doc/fr/images/button-show-active.gif create mode 100644 doc/fr/images/button-show-all.gif create mode 100644 doc/fr/images/button-show-completed.gif create mode 100644 doc/fr/images/button-show-next.gif create mode 100644 doc/fr/images/button-show-previous.gif create mode 100644 doc/fr/images/button-sort-ascending.gif create mode 100644 doc/fr/images/button-sort-descending.gif create mode 100644 doc/fr/images/button-start-class.gif create mode 100644 doc/fr/images/button-start-printer.gif create mode 100644 doc/fr/images/button-stop-class.gif create mode 100644 doc/fr/images/button-stop-printer.gif create mode 100644 doc/fr/images/button-unpublish-printer.gif create mode 100644 doc/fr/images/button-use-default-config.gif create mode 100644 doc/fr/images/button-view-access-log.gif create mode 100644 doc/fr/images/button-view-error-log.gif create mode 100644 doc/fr/images/button-view-page-log.gif create mode 100644 doc/fr/images/button-view-printable-version.gif create mode 100644 doc/fr/index.html.in delete mode 100644 doc/idd.shtml delete mode 100644 doc/sdd.shtml delete mode 100644 doc/sps.shtml create mode 100644 locale/cups_fr.po create mode 100644 scripting/java/src/com/easysw/cups/Base64Coder.java create mode 100644 templates/fr/add-class.tmpl create mode 100644 templates/fr/add-printer.tmpl create mode 100644 templates/fr/admin.tmpl create mode 100644 templates/fr/choose-device.tmpl create mode 100644 templates/fr/choose-make.tmpl create mode 100644 templates/fr/choose-model.tmpl create mode 100644 templates/fr/choose-serial.tmpl create mode 100644 templates/fr/choose-uri.tmpl create mode 100644 templates/fr/class-added.tmpl create mode 100644 templates/fr/class-confirm.tmpl create mode 100644 templates/fr/class-deleted.tmpl create mode 100644 templates/fr/class-jobs-header.tmpl create mode 100644 templates/fr/class-modified.tmpl create mode 100644 templates/fr/classes-header.tmpl create mode 100644 templates/fr/classes.tmpl create mode 100644 templates/fr/edit-config.tmpl.in create mode 100644 templates/fr/error-op.tmpl create mode 100644 templates/fr/error.tmpl create mode 100644 templates/fr/header.tmpl.in create mode 100644 templates/fr/help-header.tmpl create mode 100644 templates/fr/help-printable.tmpl create mode 100644 templates/fr/job-cancel.tmpl create mode 100644 templates/fr/job-hold.tmpl create mode 100644 templates/fr/job-move.tmpl create mode 100644 templates/fr/job-moved.tmpl create mode 100644 templates/fr/job-release.tmpl create mode 100644 templates/fr/job-restart.tmpl create mode 100644 templates/fr/jobs-header.tmpl create mode 100644 templates/fr/jobs.tmpl create mode 100644 templates/fr/maintenance.tmpl create mode 100644 templates/fr/modify-class.tmpl create mode 100644 templates/fr/modify-printer.tmpl create mode 100644 templates/fr/norestart.tmpl create mode 100644 templates/fr/option-boolean.tmpl create mode 100644 templates/fr/option-conflict.tmpl create mode 100644 templates/fr/option-header.tmpl create mode 100644 templates/fr/option-pickmany.tmpl create mode 100644 templates/fr/option-pickone.tmpl create mode 100644 templates/fr/option-trailer.tmpl create mode 100644 templates/fr/pager.tmpl create mode 100644 templates/fr/printer-accept.tmpl create mode 100644 templates/fr/printer-added.tmpl create mode 100644 templates/fr/printer-configured.tmpl create mode 100644 templates/fr/printer-confirm.tmpl create mode 100644 templates/fr/printer-default.tmpl create mode 100644 templates/fr/printer-deleted.tmpl create mode 100644 templates/fr/printer-jobs-header.tmpl create mode 100644 templates/fr/printer-modified.tmpl create mode 100644 templates/fr/printer-purge.tmpl create mode 100644 templates/fr/printer-reject.tmpl create mode 100644 templates/fr/printer-start.tmpl create mode 100644 templates/fr/printer-stop.tmpl create mode 100644 templates/fr/printers-header.tmpl create mode 100644 templates/fr/printers.tmpl create mode 100644 templates/fr/restart.tmpl create mode 100644 templates/fr/samba-export.tmpl create mode 100644 templates/fr/samba-exported.tmpl create mode 100644 templates/fr/search.tmpl create mode 100644 templates/fr/set-printer-options-header.tmpl create mode 100644 templates/fr/set-printer-options-trailer.tmpl create mode 100644 templates/fr/test-page.tmpl create mode 100644 templates/fr/trailer.tmpl create mode 100644 templates/fr/users.tmpl create mode 100755 tools/checkpo create mode 100644 vcnet/testfile.vcproj create mode 100644 vcnet/testhttp.vcproj diff --git a/CHANGES.txt b/CHANGES.txt index 49fe7d702..4dd18bf0c 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,6 +1,92 @@ -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) diff --git a/CREDITS.txt b/CREDITS.txt index cfd4fcd33..c839ba1e4 100644 --- a/CREDITS.txt +++ b/CREDITS.txt @@ -1,4 +1,4 @@ -CREDITS.txt - 2006-10-02 +CREDITS.txt - 2007-02-05 ------------------------ Few projects are completed by one person, and CUPS is no exception. We'd @@ -6,6 +6,7 @@ like to thank the following individuals for their contributions: 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. diff --git a/INSTALL.txt b/INSTALL.txt index d6f9a0179..b9636837c 100644 --- a/INSTALL.txt +++ b/INSTALL.txt @@ -1,4 +1,4 @@ -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 diff --git a/LICENSE.txt b/LICENSE.txt index b15a77b77..4a3e913c3 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,6 +1,6 @@ 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 diff --git a/Makefile b/Makefile index 45dd92c05..3d96ec143 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ # -# "$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). # @@ -237,7 +237,7 @@ check: all 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: @@ -246,6 +246,9 @@ 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 @@ -260,5 +263,5 @@ dist: all # -# End of "$Id: Makefile 5902 2006-08-29 15:51:19Z mike $". +# End of "$Id: Makefile 6128 2006-12-05 16:07:23Z mike $". # diff --git a/README.txt b/README.txt index d8b6b0fb0..8d555a2f3 100644 --- a/README.txt +++ b/README.txt @@ -1,4 +1,4 @@ -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" @@ -170,7 +170,7 @@ PRINTING FILES 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. diff --git a/backend/ipp.c b/backend/ipp.c index eb631b866..693911c65 100644 --- a/backend/ipp.c +++ b/backend/ipp.c @@ -1,5 +1,5 @@ /* - * "$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). * @@ -1380,7 +1380,7 @@ report_printer_state(ipp_t *ipp) /* I - IPP response */ strlcat(state, reason, sizeof(state)); prefix = ","; - message = NULL; + message = ""; if (!strncmp(reason, "media-needed", 12)) message = "Media tray needs to be filled."; @@ -1666,5 +1666,5 @@ sigterm_handler(int sig) /* I - Signal */ /* - * 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 $". */ diff --git a/backend/parallel.c b/backend/parallel.c index 627c6227f..c33fc10d2 100644 --- a/backend/parallel.c +++ b/backend/parallel.c @@ -1,5 +1,5 @@ /* - * "$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). * @@ -189,10 +189,10 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */ 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); @@ -206,7 +206,7 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */ } else use_bc = 1; -#endif /* __linux */ +#endif /* __linux || __FreeBSD__ */ if (device_fd == -1) { @@ -598,5 +598,5 @@ list_devices(void) /* - * 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 $". */ diff --git a/backend/runloop.c b/backend/runloop.c index 82673a447..f613c0540 100644 --- a/backend/runloop.c +++ b/backend/runloop.c @@ -1,5 +1,5 @@ /* - * "$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). * @@ -206,7 +206,7 @@ backendRunLoop(int print_fd, /* I - Print file descriptor */ 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; } } @@ -229,7 +229,7 @@ backendRunLoop(int print_fd, /* I - Print file descriptor */ { if (paperout) { - fputs("STATUS: -media-tray-empty-error\n", stderr); + fputs("STATE: -media-empty-error\n", stderr); paperout = 0; } @@ -258,5 +258,5 @@ backendRunLoop(int print_fd, /* I - Print file descriptor */ /* - * 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 $". */ diff --git a/backend/snmp.c b/backend/snmp.c index b76283aa2..fd7d3922e 100644 --- a/backend/snmp.c +++ b/backend/snmp.c @@ -1,5 +1,5 @@ /* - * "$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). * @@ -1471,6 +1471,8 @@ fix_make_model( } 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); @@ -1729,14 +1731,16 @@ probe_device(snmp_cache_t *device) /* I - Device */ 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; @@ -1769,9 +1773,9 @@ probe_device(snmp_cache_t *device) /* I - Device */ 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", @@ -2455,5 +2459,5 @@ update_cache(snmp_cache_t *device, /* I - Device */ /* - * 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 $". */ diff --git a/backend/usb-unix.c b/backend/usb-unix.c index 4a4cbe259..7e78a3f27 100644 --- a/backend/usb-unix.c +++ b/backend/usb-unix.c @@ -1,5 +1,5 @@ /* - * "$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). * @@ -84,7 +84,9 @@ print_device(const char *uri, /* I - Device URI */ * 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) { @@ -524,5 +526,5 @@ open_device(const char *uri, /* I - Device URI */ /* - * 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 $". */ diff --git a/cgi-bin/ipp-var.c b/cgi-bin/ipp-var.c index c312d8bff..4639643de 100644 --- a/cgi-bin/ipp-var.c +++ b/cgi-bin/ipp-var.c @@ -1,5 +1,5 @@ /* - * "$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). * @@ -914,7 +914,7 @@ cgiSetIPPObjectVars( snprintf(valptr, sizeof(value) - (valptr - value), "%s", url, - strrchr(url, '/') + 1); + strrchr(attr->values[i].string.text, '/') + 1); } else cgiRewriteURL(attr->values[i].string.text, valptr, @@ -1280,5 +1280,5 @@ cgiText(const char *message) /* I - Message */ /* - * 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 $". */ diff --git a/config-scripts/cups-3264.m4 b/config-scripts/cups-3264.m4 new file mode 100644 index 000000000..1ce80df9d --- /dev/null +++ b/config-scripts/cups-3264.m4 @@ -0,0 +1,149 @@ +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 diff --git a/config-scripts/cups-common.m4 b/config-scripts/cups-common.m4 index 7e54767fe..8610523ba 100644 --- a/config-scripts/cups-common.m4 +++ b/config-scripts/cups-common.m4 @@ -1,5 +1,5 @@ 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 @@ -29,7 +29,7 @@ dnl Set the name of the config header file... 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) @@ -264,5 +264,5 @@ AC_SUBST(DEFAULT_IPP_PORT) 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 diff --git a/config-scripts/cups-compiler.m4 b/config-scripts/cups-compiler.m4 index f265d2ca0..9a15cb535 100644 --- a/config-scripts/cups-compiler.m4 +++ b/config-scripts/cups-compiler.m4 @@ -1,5 +1,5 @@ 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 @@ -46,41 +46,15 @@ fi 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]) @@ -129,6 +103,42 @@ if test -n "$GCC"; then 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... @@ -137,11 +147,6 @@ if test -n "$GCC"; 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 @@ -159,11 +164,6 @@ if test -n "$GCC"; 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 @@ -183,14 +183,6 @@ if test -n "$GCC"; 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 @@ -208,14 +200,6 @@ if test -n "$GCC"; 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 @@ -235,11 +219,6 @@ if test -n "$GCC"; 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 @@ -257,11 +236,6 @@ if test -n "$GCC"; 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 @@ -323,11 +297,6 @@ else 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 @@ -345,11 +314,6 @@ else 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 @@ -388,11 +352,6 @@ else # 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 @@ -412,11 +371,6 @@ else 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 @@ -481,5 +435,5 @@ case $uname in 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 diff --git a/config-scripts/cups-defaults.m4 b/config-scripts/cups-defaults.m4 index 66810f9e5..48b3aea5f 100644 --- a/config-scripts/cups-defaults.m4 +++ b/config-scripts/cups-defaults.m4 @@ -1,10 +1,10 @@ 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 @@ -24,11 +24,11 @@ dnl WWW: http://www.cups.org 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 @@ -252,5 +252,5 @@ fi 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 diff --git a/config-scripts/cups-opsys.m4 b/config-scripts/cups-opsys.m4 index b47f473a7..8d510da91 100644 --- a/config-scripts/cups-opsys.m4 +++ b/config-scripts/cups-opsys.m4 @@ -1,5 +1,5 @@ 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 @@ -22,9 +22,10 @@ dnl EMail: cups-info@cups.org 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/*) @@ -39,5 +40,5 @@ case "$uname" in 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 diff --git a/config-scripts/cups-sharedlibs.m4 b/config-scripts/cups-sharedlibs.m4 index 86d93e1a1..ca695aa13 100644 --- a/config-scripts/cups-sharedlibs.m4 +++ b/config-scripts/cups-sharedlibs.m4 @@ -1,5 +1,5 @@ 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 @@ -36,10 +36,20 @@ if test x$enable_shared != xno; then 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" @@ -126,9 +136,18 @@ if test "$DSO" != ":"; then 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" ;; @@ -173,5 +192,5 @@ AC_SUBST(IMGLIBS) 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 diff --git a/config-scripts/cups-ssl.m4 b/config-scripts/cups-ssl.m4 index ce6ea0859..2522e9b16 100644 --- a/config-scripts/cups-ssl.m4 +++ b/config-scripts/cups-ssl.m4 @@ -1,9 +1,9 @@ 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 @@ -42,15 +42,33 @@ if test x$enable_ssl != xno; then 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 @@ -115,5 +133,5 @@ AC_SUBST(EXPORT_SSLLIBS) 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 diff --git a/config.h.in b/config.h.in index ae2fb9dc7..bad25cb09 100644 --- a/config.h.in +++ b/config.h.in @@ -1,9 +1,9 @@ /* - * "$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 @@ -268,10 +268,20 @@ /* - * Do we have ? + * 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 /* @@ -461,5 +471,5 @@ #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 $". */ diff --git a/configure.in b/configure.in index 07909d7e1..b96b42272 100644 --- a/configure.in +++ b/configure.in @@ -1,5 +1,5 @@ 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 @@ -29,6 +29,7 @@ sinclude(config-scripts/cups-common.m4) 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) @@ -83,5 +84,5 @@ AC_OUTPUT(Makedefs packaging/cups.list init/cups.sh init/cups-lpd cups-config 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 diff --git a/cups/adminutil.c b/cups/adminutil.c index edef4f909..e697e6a1d 100644 --- a/cups/adminutil.c +++ b/cups/adminutil.c @@ -1,5 +1,5 @@ /* - * "$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). @@ -7,7 +7,7 @@ * 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 @@ -48,9 +48,12 @@ #include "debug.h" #include #include -#include #include -#include +#ifdef WIN32 +#else +# include +# include +#endif /* WIN32 */ /* @@ -243,7 +246,7 @@ cupsAdminCreateWindowsPPD( 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); @@ -262,7 +265,7 @@ cupsAdminCreateWindowsPPD( { 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); @@ -281,7 +284,7 @@ cupsAdminCreateWindowsPPD( { 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); @@ -324,6 +327,21 @@ cupsAdminCreateWindowsPPD( 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... */ @@ -656,7 +674,7 @@ cupsAdminExportSamba( { 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); @@ -985,6 +1003,11 @@ _cupsAdminSetServerSettings( 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 */ @@ -1017,39 +1040,134 @@ _cupsAdminSetServerSettings( 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... @@ -1101,13 +1219,14 @@ _cupsAdminSetServerSettings( 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); @@ -1125,26 +1244,30 @@ _cupsAdminSetServerSettings( 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 @@ -1154,10 +1277,10 @@ _cupsAdminSetServerSettings( 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 @@ -1168,7 +1291,7 @@ _cupsAdminSetServerSettings( } } } - else if (!strcasecmp(line, "LogLevel")) + else if (!strcasecmp(line, "LogLevel") && debug_logging >= 0) { wrote_loglevel = 1; @@ -1231,13 +1354,13 @@ _cupsAdminSetServerSettings( { 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"); @@ -1247,7 +1370,7 @@ _cupsAdminSetServerSettings( else cupsFilePuts(temp, " Allow localhost\n"); } - else if (in_conf_location) + else if (in_conf_location && remote_admin >= 0) { wrote_conf_location = 1; @@ -1265,23 +1388,23 @@ _cupsAdminSetServerSettings( 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"); @@ -1304,7 +1427,7 @@ _cupsAdminSetServerSettings( indent += 2; - if (!strcasecmp(value, "cancel-job")) + if (!strcasecmp(value, "cancel-job") && user_cancel_any >= 0) { /* * Don't write anything for this limit section... @@ -1323,7 +1446,7 @@ _cupsAdminSetServerSettings( if (*valptr) *valptr++ = '\0'; - if (!strcasecmp(value, "cancel-job")) + if (!strcasecmp(value, "cancel-job") && user_cancel_any >= 0) { /* * Write everything except for this definition... @@ -1359,7 +1482,9 @@ _cupsAdminSetServerSettings( 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; @@ -1424,13 +1549,13 @@ _cupsAdminSetServerSettings( * 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"); @@ -1438,10 +1563,10 @@ _cupsAdminSetServerSettings( 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 @@ -1451,7 +1576,7 @@ _cupsAdminSetServerSettings( } } - if (!wrote_loglevel) + if (!wrote_loglevel && debug_logging >= 0) { if (debug_logging) { @@ -1465,9 +1590,9 @@ _cupsAdminSetServerSettings( } } - 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()); @@ -1485,14 +1610,14 @@ _cupsAdminSetServerSettings( #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"); @@ -1500,7 +1625,7 @@ _cupsAdminSetServerSettings( cupsFilePuts(temp, "\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"); @@ -1508,7 +1633,7 @@ _cupsAdminSetServerSettings( cupsFilePuts(temp, "\n"); } - if (!wrote_admin_location) + if (!wrote_admin_location && remote_admin >= 0) { if (remote_admin) cupsFilePuts(temp, "# Allow remote administration...\n"); @@ -1526,7 +1651,7 @@ _cupsAdminSetServerSettings( cupsFilePuts(temp, "\n"); } - if (!wrote_conf_location) + if (!wrote_conf_location && remote_admin >= 0) { if (remote_admin) cupsFilePuts(temp, @@ -1547,7 +1672,7 @@ _cupsAdminSetServerSettings( cupsFilePuts(temp, "\n"); } - if (!wrote_policy) + if (!wrote_policy && user_cancel_any >= 0) { cupsFilePuts(temp, "\n" " # Job-related operations must be done by the owner " @@ -1626,21 +1751,50 @@ _cupsAdminSetServerSettings( * 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... @@ -1681,6 +1835,10 @@ do_samba_command(const char *command, /* I - Command to run */ 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 */ @@ -1739,6 +1897,7 @@ do_samba_command(const char *command, /* I - Command to run */ return (WEXITSTATUS(status)); else return (-WTERMSIG(status)); +#endif /* WIN32 */ } @@ -1756,7 +1915,9 @@ get_cupsd_conf( 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 */ @@ -1773,6 +1934,7 @@ get_cupsd_conf( snprintf(name, namesize, "%s/cupsd.conf", cg->cups_serverroot); *remote = 0; +#ifndef WIN32 if (!strcasecmp(host, "localhost") && !access(name, R_OK)) { /* @@ -1799,6 +1961,7 @@ get_cupsd_conf( status = HTTP_OK; } else +#endif /* !WIN32 */ { /* * Read cupsd.conf via a HTTP GET request... @@ -1965,5 +2128,5 @@ write_option(cups_file_t *dstfp, /* I - PPD file */ /* - * 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 $". */ diff --git a/cups/auth.c b/cups/auth.c index 4c7318ce7..fc87d2ba5 100644 --- a/cups/auth.c +++ b/cups/auth.c @@ -1,9 +1,9 @@ /* - * "$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 @@ -75,6 +75,7 @@ cupsDoAuthentication(http_t *http, /* I - HTTP connection to server */ 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", @@ -114,8 +115,15 @@ cupsDoAuthentication(http_t *http, /* I - HTTP connection to server */ * 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; @@ -144,7 +152,7 @@ cupsDoAuthentication(http_t *http, /* I - HTTP connection to server */ */ httpEncode64_2(encode, sizeof(encode), http->userpass, - strlen(http->userpass)); + (int)strlen(http->userpass)); snprintf(http->authstring, sizeof(http->authstring), "Basic %s", encode); } else @@ -251,5 +259,5 @@ cups_local_auth(http_t *http) /* I - HTTP connection to server */ /* - * 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 $". */ diff --git a/cups/backchannel.c b/cups/backchannel.c index 09833fe46..2164ed750 100644 --- a/cups/backchannel.c +++ b/cups/backchannel.c @@ -1,9 +1,9 @@ /* - * "$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 @@ -95,7 +95,11 @@ cupsBackChannelRead(char *buffer, /* I - Buffer to read */ * Read bytes from the pipe... */ +#ifdef WIN32 + return ((ssize_t)read(3, buffer, (unsigned)bytes)); +#else return (read(3, buffer, bytes)); +#endif /* WIN32 */ } @@ -153,7 +157,11 @@ cupsBackChannelWrite( * 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) { @@ -175,7 +183,7 @@ cupsBackChannelWrite( } } - return (bytes); + return ((ssize_t)bytes); } @@ -197,5 +205,5 @@ cups_setup(fd_set *set, /* I - Set for select() */ /* - * 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 $". */ diff --git a/cups/cups.h b/cups/cups.h index 9ae366298..96fe9afba 100644 --- a/cups/cups.h +++ b/cups/cups.h @@ -1,9 +1,9 @@ /* - * "$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 @@ -31,6 +31,13 @@ * Include necessary headers... */ +# include +# 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" @@ -61,10 +68,10 @@ extern "C" { * 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 @@ -244,5 +251,5 @@ extern cups_file_t *cupsTempFile2(char *filename, int len); #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 $". */ diff --git a/cups/dest.c b/cups/dest.c index 289456370..f94aaaff5 100644 --- a/cups/dest.c +++ b/cups/dest.c @@ -1,10 +1,10 @@ /* - * "$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 @@ -500,7 +500,9 @@ cupsSetDests2(http_t *http, /* I - HTTP connection */ 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 */ @@ -1083,5 +1085,5 @@ cups_get_sdests(http_t *http, /* I - HTTP connection */ /* - * 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 $". */ diff --git a/cups/emit.c b/cups/emit.c index c62cbf6ab..08ad83178 100644 --- a/cups/emit.c +++ b/cups/emit.c @@ -1,9 +1,9 @@ /* - * "$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 @@ -291,7 +291,11 @@ ppdEmitFd(ppd_file_t *ppd, /* I - PPD file record */ 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; @@ -725,7 +729,7 @@ ppdEmitString(ppd_file_t *ppd, /* I - PPD file record */ else pos = 4; - values[pos] = orientation; + values[pos] = (float)orientation; for (pos = 0; pos < 5; pos ++) { @@ -811,7 +815,7 @@ ppdEmitString(ppd_file_t *ppd, /* I - PPD file record */ 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; @@ -942,5 +946,5 @@ ppd_sort(ppd_choice_t **c1, /* I - First choice */ /* - * 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 $". */ diff --git a/cups/encode.c b/cups/encode.c index b3cc28831..b691e8656 100644 --- a/cups/encode.c +++ b/cups/encode.c @@ -1,9 +1,9 @@ /* - * "$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 @@ -82,7 +82,7 @@ static const _ipp_option_t ipp_options[] = { "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 }, @@ -265,7 +265,7 @@ cupsEncodeOptions2( int namelen; /* Length of name */ - namelen = strlen(option->name); + namelen = (int)strlen(option->name); if (namelen < 9 || strcmp(option->name + namelen - 8, "-default")) { @@ -500,7 +500,7 @@ cupsEncodeOptions2( * 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", @@ -567,5 +567,5 @@ compare_ipp_options(_ipp_option_t *a, /* I - First option */ /* - * 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 $". */ diff --git a/cups/file.c b/cups/file.c index f4bbf34e0..b2a831157 100644 --- a/cups/file.c +++ b/cups/file.c @@ -1,5 +1,5 @@ /* - * "$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). * @@ -8,7 +8,7 @@ * 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 @@ -94,6 +94,16 @@ #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... */ @@ -332,7 +342,11 @@ cupsFileFind(const char *filename, /* I - File to find */ 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++ = '/'; @@ -344,7 +358,10 @@ cupsFileFind(const char *filename, /* I - File to find */ #else if (!access(buffer, executable ? X_OK : 0)) #endif /* WIN32 */ + { + DEBUG_printf(("cupsFileFind: Returning \"%s\"\n", buffer)); return (buffer); + } bufptr = buffer; } @@ -364,9 +381,15 @@ cupsFileFind(const char *filename, /* I - File to find */ 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); + } } @@ -392,7 +415,7 @@ cupsFileFlush(cups_file_t *fp) /* I - CUPS file */ return (-1); } - bytes = fp->ptr - fp->buf; + bytes = (ssize_t)(fp->ptr - fp->buf); DEBUG_printf((" Flushing %ld bytes...\n", (long)bytes)); @@ -427,7 +450,10 @@ cupsFileGetChar(cups_file_t *fp) /* I - CUPS file */ */ 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... @@ -435,12 +461,17 @@ cupsFileGetChar(cups_file_t *fp) /* I - CUPS file */ 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); } @@ -780,15 +811,15 @@ cupsFileOpen(const char *filename, /* I - Name of file */ 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 */ @@ -1104,7 +1135,7 @@ cupsFilePuts(cups_file_t *fp, /* I - CUPS file */ * Write the string... */ - bytes = strlen(s); + bytes = (int)strlen(s); if (fp->mode == 's') { @@ -1179,14 +1210,14 @@ cupsFileRead(cups_file_t *fp, /* I - CUPS file */ 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; @@ -1206,7 +1237,7 @@ cupsFileRead(cups_file_t *fp, /* I - CUPS file */ DEBUG_printf((" total=%d\n", total)); - return (total); + return ((ssize_t)total); } @@ -1328,7 +1359,7 @@ cupsFileSeek(cups_file_t *fp, /* I - CUPS file */ */ if (fp->ptr) - bytes = fp->end - fp->buf; + bytes = (ssize_t)(fp->end - fp->buf); else bytes = 0; @@ -1582,16 +1613,16 @@ cupsFileWrite(cups_file_t *fp, /* I - CUPS file */ 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)) { @@ -1606,7 +1637,7 @@ cupsFileWrite(cups_file_t *fp, /* I - CUPS file */ { memcpy(fp->ptr, buf, bytes); fp->ptr += bytes; - return (bytes); + return ((ssize_t)bytes); } } @@ -1687,7 +1718,7 @@ cups_fill(cups_file_t *fp) /* I - CUPS file */ */ 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)); @@ -1995,10 +2026,17 @@ cups_read(cups_file_t *fp, /* I - CUPS file */ 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; @@ -2044,10 +2082,17 @@ cups_write(cups_file_t *fp, /* I - CUPS file */ 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) { @@ -2076,10 +2121,10 @@ cups_write(cups_file_t *fp, /* I - CUPS file */ * 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 $". */ diff --git a/cups/file.h b/cups/file.h index b36aa0577..fd9eca731 100644 --- a/cups/file.h +++ b/cups/file.h @@ -1,5 +1,5 @@ /* - * "$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). * @@ -8,7 +8,7 @@ * 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 @@ -36,11 +36,11 @@ */ # include - -# 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 */ /* @@ -109,5 +109,5 @@ extern ssize_t cupsFileWrite(cups_file_t *fp, const char *buf, size_t bytes); #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 $". */ diff --git a/cups/http-addrlist.c b/cups/http-addrlist.c index 6700e567d..4e369d30c 100644 --- a/cups/http-addrlist.c +++ b/cups/http-addrlist.c @@ -1,9 +1,9 @@ /* - * "$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 @@ -62,7 +62,7 @@ httpAddrConnect( * 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 @@ -248,7 +248,7 @@ httpAddrGetList(const char *hostname, /* I - Hostname, IP address, or NULL for p */ 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; @@ -268,7 +268,7 @@ httpAddrGetList(const char *hostname, /* I - Hostname, IP address, or NULL for p */ 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; @@ -605,5 +605,5 @@ httpAddrGetList(const char *hostname, /* I - Hostname, IP address, or NULL for p /* - * 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 $". */ diff --git a/cups/http-private.h b/cups/http-private.h index d5b030d28..3e405d585 100644 --- a/cups/http-private.h +++ b/cups/http-private.h @@ -1,9 +1,9 @@ /* - * "$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 @@ -138,21 +138,22 @@ extern const char *hstrerror(int error); * Some OS's don't have getifaddrs() and freeifaddrs()... */ -# include -# ifdef HAVE_GETIFADDRS -# include -# else -# include -# ifdef HAVE_SYS_SOCKIO_H -# include -# 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 +# ifdef HAVE_GETIFADDRS +# include +# else +# include +# ifdef HAVE_SYS_SOCKIO_H +# include +# 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 ****/ { @@ -170,21 +171,22 @@ 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 $". */ diff --git a/cups/http-support.c b/cups/http-support.c index b4fec03da..7214d08cd 100644 --- a/cups/http-support.c +++ b/cups/http-support.c @@ -1,9 +1,9 @@ /* - * "$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 @@ -549,7 +549,7 @@ char * /* O - Encoded string */ 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))); } @@ -1112,7 +1112,7 @@ httpSeparateURI( 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); } } @@ -1327,5 +1327,5 @@ http_copy_encode(char *dst, /* O - Destination buffer */ /* - * 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 $". */ diff --git a/cups/http.c b/cups/http.c index 3e0fef0ed..7449596df 100644 --- a/cups/http.c +++ b/cups/http.c @@ -1,9 +1,9 @@ /* - * "$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 @@ -694,8 +694,18 @@ httpGetLength2(http_t *http) /* I - HTTP connection */ * 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); @@ -920,7 +930,11 @@ httpGets(char *line, /* I - Line to read into */ 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); } @@ -996,7 +1010,7 @@ httpGets(char *line, /* I - Line to read into */ *lineptr++ = *bufptr++; } - http->used -= bufptr - http->buffer; + http->used -= (int)(bufptr - http->buffer); if (http->used > 0) memmove(http->buffer, bufptr, http->used); @@ -1269,8 +1283,8 @@ httpRead2(http_t *http, /* I - HTTP connection */ 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) { @@ -1325,15 +1339,15 @@ httpRead2(http_t *http, /* I - HTTP connection */ 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); @@ -1344,7 +1358,7 @@ httpRead2(http_t *http, /* I - HTTP connection */ 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 @@ -1354,9 +1368,13 @@ httpRead2(http_t *http, /* I - HTTP connection */ 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)); } @@ -2004,8 +2022,8 @@ httpWrite2(http_t *http, /* I - HTTP connection */ 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 { @@ -2016,9 +2034,9 @@ httpWrite2(http_t *http, /* I - HTTP connection */ 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)); } @@ -2226,7 +2244,11 @@ static int /* O - Bytes written */ 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 */ } @@ -2252,7 +2274,12 @@ http_bio_read(BIO *h, /* I - BIO data */ if (!http_wait(http, 10000, 0)) { +#ifdef WIN32 + http->error = WSAETIMEDOUT; +#else http->error = ETIMEDOUT; +#endif /* WIN32 */ + return (-1); } } @@ -2730,43 +2757,30 @@ http_upgrade(http_t *http) /* I - HTTP connection */ * 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... @@ -3013,7 +3027,7 @@ http_write_chunk(http_t *http, /* I - HTTP connection */ */ 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); @@ -3088,5 +3102,5 @@ http_write_ssl(http_t *http, /* I - HTTP connection */ /* - * 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 $". */ diff --git a/cups/http.h b/cups/http.h index 2f8a28d73..1971bc3ed 100644 --- a/cups/http.h +++ b/cups/http.h @@ -1,10 +1,10 @@ /* - * "$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 @@ -36,6 +36,11 @@ # include # include # 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 # include # else @@ -508,5 +513,5 @@ extern ssize_t httpWrite2(http_t *http, const char *buffer, #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 $". */ diff --git a/cups/ipp.c b/cups/ipp.c index 148fc702d..dcd4b651d 100644 --- a/cups/ipp.c +++ b/cups/ipp.c @@ -1,10 +1,10 @@ /* - * "$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 @@ -1054,7 +1054,7 @@ ippReadIO(void *src, /* I - Data source */ 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); } /* @@ -1098,8 +1098,11 @@ ippReadIO(void *src, /* I - Data source */ 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)); @@ -2156,10 +2159,10 @@ ippWriteIO(void *dst, /* I - Destination */ 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); @@ -2562,7 +2565,7 @@ ipp_length(ipp_t *ipp, /* I - IPP message or collection */ 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 */ @@ -2594,7 +2597,7 @@ ipp_length(ipp_t *ipp, /* I - IPP message or collection */ 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 : @@ -2618,10 +2621,10 @@ ipp_length(ipp_t *ipp, /* I - IPP message or collection */ 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; @@ -2629,7 +2632,7 @@ ipp_length(ipp_t *ipp, /* I - IPP message or collection */ 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 : @@ -2678,7 +2681,7 @@ ipp_read_http(http_t *http, /* I - Client connection */ * 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)); @@ -2691,8 +2694,8 @@ ipp_read_http(http_t *http, /* I - Client connection */ * 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; @@ -2783,7 +2786,11 @@ ipp_read_file(int *fd, /* I - File descriptor */ 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 */ } @@ -2796,7 +2803,11 @@ ipp_write_file(int *fd, /* I - File descriptor */ 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 */ } @@ -2824,5 +2835,5 @@ _ipp_free_attr(ipp_attribute_t *attr) /* I - Attribute to free */ /* - * 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 $". */ diff --git a/cups/langprintf.c b/cups/langprintf.c index da835dc28..ebdccf244 100644 --- a/cups/langprintf.c +++ b/cups/langprintf.c @@ -1,10 +1,10 @@ /* - * "$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 @@ -88,7 +88,7 @@ _cupsLangPrintf(FILE *fp, /* I - File to write to */ */ if (bytes > 0) - return (fwrite(output, 1, bytes, fp)); + return ((int)fwrite(output, 1, bytes, fp)); else return (bytes); } @@ -133,7 +133,7 @@ _cupsLangPuts(FILE *fp, /* I - File to write to */ */ if (bytes > 0) - return (fwrite(output, 1, bytes, fp)); + return ((int)fwrite(output, 1, bytes, fp)); else return (bytes); } @@ -224,5 +224,5 @@ _cupsSetLocale(char *argv[]) /* IO - Command-line arguments */ /* - * 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 $". */ diff --git a/cups/language.c b/cups/language.c index 891c96d84..e8cf5bed6 100644 --- a/cups/language.c +++ b/cups/language.c @@ -1,9 +1,9 @@ /* - * "$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 @@ -887,7 +887,7 @@ _cupsMessageLoad(const char *filename) /* I - Message catalog to load */ * 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) @@ -1326,5 +1326,5 @@ cups_unquote(char *d, /* O - Unquoted string */ /* - * 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 $". */ diff --git a/cups/mark.c b/cups/mark.c index 2e9cbee55..c3013999d 100644 --- a/cups/mark.c +++ b/cups/mark.c @@ -1,9 +1,9 @@ /* - * "$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 @@ -409,26 +409,27 @@ ppdMarkOption(ppd_file_t *ppd, /* I - PPD file record */ 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; @@ -485,26 +486,27 @@ ppdMarkOption(ppd_file_t *ppd, /* I - PPD file record */ 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; @@ -677,5 +679,5 @@ ppd_defaults(ppd_file_t *ppd, /* I - PPD file */ /* - * 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 $". */ diff --git a/cups/page.c b/cups/page.c index f8b79832f..66b64eeae 100644 --- a/cups/page.c +++ b/cups/page.c @@ -1,9 +1,9 @@ /* - * "$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 @@ -50,9 +50,12 @@ ppdPageSize(ppd_file_t *ppd, /* I - PPD file record */ 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) @@ -66,11 +69,11 @@ ppdPageSize(ppd_file_t *ppd, /* I - PPD file record */ * 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); /* @@ -83,52 +86,65 @@ ppdPageSize(ppd_file_t *ppd, /* I - PPD file record */ */ 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 { @@ -136,9 +152,9 @@ ppdPageSize(ppd_file_t *ppd, /* I - PPD file record */ * 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 @@ -147,9 +163,9 @@ ppdPageSize(ppd_file_t *ppd, /* I - PPD file record */ * 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); @@ -193,5 +209,5 @@ ppdPageLength(ppd_file_t *ppd, /* I - PPD file */ /* - * 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 $". */ diff --git a/cups/ppd.c b/cups/ppd.c index 9facfe6b9..37d0f8d6b 100644 --- a/cups/ppd.c +++ b/cups/ppd.c @@ -1,9 +1,9 @@ /* - * "$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 @@ -819,17 +819,17 @@ ppdOpen2(cups_file_t *fp) /* I - File to read from */ 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")) { @@ -928,8 +928,8 @@ ppdOpen2(cups_file_t *fp) /* I - File to read from */ 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")) { @@ -940,8 +940,8 @@ ppdOpen2(cups_file_t *fp) /* I - File to read from */ 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")) { @@ -958,14 +958,14 @@ ppdOpen2(cups_file_t *fp) /* I - File to read from */ 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")) { @@ -1001,7 +1001,7 @@ ppdOpen2(cups_file_t *fp) /* I - File to read from */ 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")) { @@ -1400,7 +1400,7 @@ ppdOpen2(cups_file_t *fp) /* I - File to read from */ 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) { @@ -1728,8 +1728,8 @@ ppdOpen2(cups_file_t *fp) /* I - File to read from */ 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; @@ -1750,10 +1750,10 @@ ppdOpen2(cups_file_t *fp) /* I - File to read from */ 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; @@ -2370,7 +2370,7 @@ ppd_get_cparam(ppd_coption_t *opt, /* I - PPD file */ 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... @@ -3046,5 +3046,5 @@ ppd_read(cups_file_t *fp, /* I - File to read from */ /* - * 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 $". */ diff --git a/cups/request.c b/cups/request.c index 329cce881..6c2924385 100644 --- a/cups/request.c +++ b/cups/request.c @@ -1,9 +1,9 @@ /* - * "$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 @@ -285,7 +285,7 @@ cupsDoFileRequest(http_t *http, /* I - HTTP connection to server */ #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) @@ -479,5 +479,5 @@ _cupsSetError(ipp_status_t status, /* I - IPP status code */ /* - * 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 $". */ diff --git a/cups/snprintf.c b/cups/snprintf.c index 683551b05..313102b86 100644 --- a/cups/snprintf.c +++ b/cups/snprintf.c @@ -1,9 +1,9 @@ /* - * "$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 @@ -195,7 +195,7 @@ _cups_vsnprintf(char *buffer, /* O - Output buffer */ sprintf(temp, tformat, va_arg(ap, double)); - bytes += strlen(temp); + bytes += (int)strlen(temp); if (bufptr) { @@ -225,7 +225,7 @@ _cups_vsnprintf(char *buffer, /* O - Output buffer */ sprintf(temp, tformat, va_arg(ap, int)); - bytes += strlen(temp); + bytes += (int)strlen(temp); if (bufptr) { @@ -248,7 +248,7 @@ _cups_vsnprintf(char *buffer, /* O - Output buffer */ sprintf(temp, tformat, va_arg(ap, void *)); - bytes += strlen(temp); + bytes += (int)strlen(temp); if (bufptr) { @@ -275,7 +275,7 @@ _cups_vsnprintf(char *buffer, /* O - Output buffer */ else { if ((bufptr + width) > bufend) - width = bufend - bufptr; + width = (int)(bufend - bufptr); memcpy(bufptr, va_arg(ap, char *), (size_t)width); bufptr += width; @@ -287,7 +287,7 @@ _cups_vsnprintf(char *buffer, /* O - Output buffer */ if ((s = va_arg(ap, char *)) == NULL) s = "(null)"; - slen = strlen(s); + slen = (int)strlen(s); if (slen > width && prec != width) width = slen; @@ -296,7 +296,7 @@ _cups_vsnprintf(char *buffer, /* O - Output buffer */ if (bufptr) { if ((bufptr + width) > bufend) - width = bufend - bufptr; + width = (int)(bufend - bufptr); if (slen > width) slen = width; @@ -368,6 +368,6 @@ _cups_snprintf(char *buffer, /* O - Output buffer */ /* - * 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 $". */ diff --git a/cups/string.c b/cups/string.c index 733304a82..98cd344dc 100644 --- a/cups/string.c +++ b/cups/string.c @@ -1,9 +1,9 @@ /* - * "$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 @@ -243,7 +243,7 @@ _cupsStrFormatd(char *buf, /* I - String */ if (loc && loc->decimal_point) { dec = loc->decimal_point; - declen = strlen(dec); + declen = (int)strlen(dec); } else { @@ -439,6 +439,47 @@ _cupsStrScand(const char *buf, /* I - Pointer to number */ } } + 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... */ @@ -702,5 +743,5 @@ compare_sp_items(_cups_sp_item_t *a, /* I - First item */ /* - * 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 $". */ diff --git a/cups/testfile.c b/cups/testfile.c index 7bd0c2b14..c4d6d90f5 100644 --- a/cups/testfile.c +++ b/cups/testfile.c @@ -1,9 +1,9 @@ /* - * "$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 @@ -86,8 +86,13 @@ main(int argc, /* I - Number of command-line arguments */ */ 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 { @@ -165,7 +170,12 @@ read_write_tests(int compression) /* I - Use compression? */ * 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(); @@ -362,14 +372,28 @@ read_write_tests(int compression) /* I - Use compression? */ } /* - * 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"); @@ -444,5 +468,5 @@ read_write_tests(int compression) /* I - Use compression? */ /* - * 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 $". */ diff --git a/cups/testppd.c b/cups/testppd.c index 37032ff62..a587acedf 100644 --- a/cups/testppd.c +++ b/cups/testppd.c @@ -1,5 +1,5 @@ /* - * "$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). * @@ -195,6 +195,8 @@ main(int argc, /* I - Number of command-line arguments */ 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 */ @@ -221,6 +223,73 @@ main(int argc, /* I - Number of command-line arguments */ 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; + } + } + } } } @@ -239,5 +308,5 @@ main(int argc, /* I - Number of command-line arguments */ /* - * 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 $". */ diff --git a/cups/transcode.c b/cups/transcode.c index dc9d4dcb1..9955d2e35 100644 --- a/cups/transcode.c +++ b/cups/transcode.c @@ -1,9 +1,9 @@ /* - * "$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 @@ -292,7 +292,7 @@ cupsCharsetToUTF8( encoding < 0 || encoding >= CUPS_ENCODING_VBCS_END) { strlcpy((char *)dest, src, maxout); - return (strlen((char *)dest)); + return ((int)strlen((char *)dest)); } /* @@ -324,7 +324,7 @@ cupsCharsetToUTF8( *destptr = '\0'; - return (destptr - dest); + return ((int)(destptr - dest)); } /* @@ -392,7 +392,7 @@ cupsUTF8ToCharset( encoding < 0 || encoding >= CUPS_ENCODING_VBCS_END) { strlcpy(dest, (char *)src, maxout); - return (strlen(dest)); + return ((int)strlen(dest)); } /* @@ -431,7 +431,7 @@ cupsUTF8ToCharset( *destptr = '\0'; - return (destptr - dest); + return ((int)(destptr - dest)); } /* @@ -968,7 +968,7 @@ conv_utf8_to_vbcs( if (unichar < 0x80) { - *dest++ = (cups_vbcs_t)unichar; + *dest++ = (cups_sbcs_t)unichar; continue; } @@ -1655,5 +1655,5 @@ get_vbcs_charmap( /* - * 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 $" */ diff --git a/cups/util.c b/cups/util.c index 1082ceb24..623c22057 100644 --- a/cups/util.c +++ b/cups/util.c @@ -1,5 +1,5 @@ /* - * "$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). * @@ -1649,7 +1649,8 @@ cups_get_printer_uri( 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'; @@ -1659,5 +1660,5 @@ cups_get_printer_uri( /* - * 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 $". */ diff --git a/desktop/cups.desktop b/desktop/cups.desktop index 0bb1c4620..bec77346a 100644 --- a/desktop/cups.desktop +++ b/desktop/cups.desktop @@ -21,7 +21,9 @@ Name[es]=Administrar impresión 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 diff --git a/doc/de/index.html.in b/doc/de/index.html.in index bd7ec21c8..1fbedf113 100644 --- a/doc/de/index.html.in +++ b/doc/de/index.html.in @@ -130,7 +130,7 @@ WIDTH="15" HEIGHT="15" ALT="">

Das Common UNIX Printing System, CUPS, und das CUPS Logo sind Warenzeichen der Easy Software -Products. CUPS ist urheberrechtlich geschützt 1997-2006 von Easy Software Products, +Products. CUPS ist urheberrechtlich geschützt 1997-2007 von Easy Software Products, Alle Rechte vorbehalten.

diff --git a/doc/es/index.html.in b/doc/es/index.html.in index e14c40267..735c99378 100644 --- a/doc/es/index.html.in +++ b/doc/es/index.html.in @@ -133,7 +133,7 @@ WIDTH="15" HEIGHT="15" ALT="">

Common UNIX Printing System, CUPS, y el logo de CUPS son marcas registradas de Easy Software -Products. Los derechos de copia de CUPS 1997-2006 son de Easy Software Products. +Products. Los derechos de copia de CUPS 1997-2007 son de Easy Software Products. Todos los derechos reservados.

diff --git a/doc/et/index.html.in b/doc/et/index.html.in index 8399134d0..3e20bbdad 100644 --- a/doc/et/index.html.in +++ b/doc/et/index.html.in @@ -128,7 +128,7 @@ WIDTH="15" HEIGHT="15" ALT="">

Common UNIX Printing System, CUPS ja CUPS-i logo on firma Easy Software -Products kaubamärgid. CUPS-i autoriõigus 1997-2006: Easy Software Products, +Products kaubamärgid. CUPS-i autoriõigus 1997-2007: Easy Software Products, kõik õigused kaitstud.

diff --git a/doc/fr/images/button-accept-jobs.gif b/doc/fr/images/button-accept-jobs.gif new file mode 100644 index 0000000000000000000000000000000000000000..76596039d995632eacf98fc76a4c919459eafede GIT binary patch literal 668 zc-nLKbhEHboWvl)&?3OVFq45{F0a^9N##}APMaLUx3~xI4$eE8*Lt>L>Xj+W?kwN_ zXxoL?=k9;H_x$V2-~WF7ClM(AlW;CdO;spJEK&%_$jr$sC`eUs&d*IsEoM;s$->CR zAi$u*00bcSFtGkpQ0Ws8WN}!vF6Z^W0-f_Ex!ctp-ziu9Kd_*{gXe<_>!P5a5&vfS zIV4W+iOLN~Z#ej2@1}DvJ<2L%*6DsIUg0Of(>bH+W;d%;dz(1#jO3e+b*@TAEIbT6 zELx15e0=E)J$(}xIr#Xw?9!%lYVgkwm^yu?=IpG6(`MMU@mJ_92w>u#&&{McsefrD zKM(Wvl}i}btTRwG;$~xDo&0p2Avg#!VbcwXbpBSe1G4{6kGXw%a$f z6FSv7xt?Br#C4gY{pzzDFJBv~8M0V72p(wEW#Fq>>v3XHqf_HjKE8qnzO9Ev1b)lZ zOns!(&{JVnR1zpK*GZKBUkyvcBf%$(6ZQR$crd(f++kZ=aIIz1C$aNorrMKU3y0ib zV&|RI>*JUpwj#*t_EfD~A}cS=um~5qqanb0xK-Wy(3KfUivk#Uk8veghOshsc?+(x zW_+scwKC(jQERv8F(a`PUoOseKYNRz@}{58i?$C-5|3na%KI%$aA?@B`{tYQ0tT)f zo9E5|zjMXc1t@NHxgLvMMchuBi#=XpfveHF@&Xf>kTJwr!ht;Na?Gr*>Ss zbmZZK>#trt`0(+~pZ~xAlL!?5NjMj!rYaO97AXW|WaeZR6r?IR=jSG+7BeXRWMSlD z5Ma<@00NME7+C))sPqXaGGwe;m-BjGfzJ67U4az4d8P0FA4mvTAS~K)Vu{e#h*MlU zlh?mo!?iL@yhOy>hR-u6OjB-s*~ViF1p8jsb6mU|#eLh#y|DZk23)SQfGxISj++jZ)&&|@#^ONh_ zf{6~*GMuS%o;V4e@KnAQSrX&e%Fx`S!J$)d!GWJ)rb%vJOYq~l&Sgz2&M+V7^HgS3 z2{zdv;q&z3lKs;TIdH6b*4eMcBN21dUyFB{X3p9LqCV3Z;-n=NE-Z6c;T(O0tsr}s zlWz2igAbZ!uU>S^ZQ=bVL78F>+FXa)7+*|{o_L_!M*9uR>tv09Gt;wHR2F~n`*I&PS_~GN5zyE*#ClM(A6L&63O;spJEK&%_$jr$sC`eUs&d*IsWl;Rd!pOxS zz@Wnb1R&=yu>Mm}=@U?7$XK;5=k>kE3z6q1GqWEXlEuAx&qkm!t$JEI)rY_sGf|adjXM*VAH00< zi2v;Qj$4=CByqiZs8Po_kL%O@p9z7R)A-srC75MoxE?S}oz|uyvItCA zG=FhS%%)5c&6A6~<#~K><-Rmw;;D0LePzPo9Ks+ZR~6yCJY-@>{-+czuSpGCn55UZ z9>2Ka)LNhEW*Qp=^kR0JK3n9lZP5&eG^RO;$qfn(46G^atE3SY zcROq9k`<*}MOLKD`MJaO$|UJC&4>BszCV2Mv4G+aR>rxHj#m52OZbQyy*aqPU%#0} r^w*Ei#y^c7?fdti;nD$l{->-N3+gIVxD5|EvYU0x=ksh~V6X-Nxp6=u literal 0 Hc-jL100001 diff --git a/doc/fr/images/button-add-this-printer.gif b/doc/fr/images/button-add-this-printer.gif new file mode 100644 index 0000000000000000000000000000000000000000..92d3d83a0664e9ce3fadf06eb2aea22c9f4571cc GIT binary patch literal 715 zc-nLKbhEHb+{z%r&?3N)k!p~WWmQ`2Qd=9?*%2{mO8)ez$x9bDu3I~4$IgYvPwlvN z>Bz$e*I&PS_~GN5zyE*#ClM(AlW;CdO;spJEK&%_$jr$sC`eUs&d*IsEoM;s$->CR zAi$u*00bcSFtGkpQ0Ws;WXM>xF6Z^W0-f_Ex%W3XO!!mr=)i&k4;?O6+ldEHEY4* z>({N_#K6qm$8EoB?~(~y4O9)e*%{cmTQoQiGjVhFtV-uN+;(Fcm%Y{%W~TdhnC{)Y zr1|2N_D(Kl#^g_58m3*n-t+MF1wsoCjqj1pgS5IeuVcjBn_E3;; z!dq!(7FN+Kx!V)&H8j_TE--Fynw@z?D)0!~1FHj>YjXa+tX|by7{Sh()179$``gdWK$c0k6l$-ac9!ji%v(w3T`mXSRt*} z|MyR~tizorH{)mQ7ZjZ0$uhZ~W!HlEMw1VE7u!YWD!fqe=HF-NBq|t|@lZIyr{ZCo e4BJFSe#SD5MIBsficT)d%XTc}^K4;Yum%9@#8u4z literal 0 Hc-jL100001 diff --git a/doc/fr/images/button-cancel-all-jobs.gif b/doc/fr/images/button-cancel-all-jobs.gif new file mode 100644 index 0000000000000000000000000000000000000000..6ee51b7d11c507613e88b5d06bd381fd74566977 GIT binary patch literal 725 zc-nLKbhEHb+|D4v&?3OVz{nsaEv})Z;pgv>l9rrbm{(O(+1cGOede?!%NB3gv~K6_ z9VgG6xO)BaqbCo4|NZ%&M4=$tRfyU6E3Q1;23adq+hOG7!9md}oxuuOA4|3VFBUVc6nop}p1 zw`|)nXB`6**HUhKhWWMACrz2Av0)R#-t7jehFm*XxZ*g~*^(yQWw^h3br9Pz298x5 zkFQzJ#mLCb{&d2(7wWGy_`Dfc%?WrCynK~>L;cPWlM_V_*BFx-U$uT_%X?tQz$UoQ zfYJGYe4V|V%xjZNaq4yF{xQ{v+sDEP4k}7N zJI|u{h(*GxDK0@q@AtmG@+HN4?z56ftGbeAFgI(jFnhb|!E5COhs1iOc7@3p#b%JNRT{nYi;efqF-xmD$I zx5j9x0#U0ti>QMyibEKAYDCQpG8fv4vUx3a_{yMA_Lk`=_nUdG4!Z9XgA3{z?%V#| z{Bo&}@&fOfU%!4&{U%p;Mf1|pMh-QL6$z#S3ELht3%FG{E3tWHJZzQN*5KMEQ^t`f k=~bces3V}kqp4YC*$O3Y5w(RZUE0S^EadZSVPLQZ0J;}SbN~PV literal 0 Hc-jL100001 diff --git a/doc/fr/images/button-cancel-job.gif b/doc/fr/images/button-cancel-job.gif new file mode 100644 index 0000000000000000000000000000000000000000..bbffe120b5381aa46d324ed12ff4fbd5125e9835 GIT binary patch literal 568 zc-nLKbhEHbtYHvgXc1swU}TVz7T3^H_w#p6NlPv)DyXil>gws7I(^Er6-&2n-*Wuq zvGW(t-G6xR_1jl}|Nr?t)@qpS0gj`g8Nb^+$5u%!`Ebs-Nd^TUYc5^(CE1y4>U?{GCyt z!0@3#4UcLXOOqb!-hTdB(zASS9#EK9(Q+;)Q$V=YVZukAeHS{Ju6IR=IQvB>9B^xz za!ib~v$FSjivrdMFOMyr+^1X8q4Y9T!aR;AN>C%i%acjMCd1*u8brv_Yzy=}&-6&kbqkm&d0eGdv%@YPJ@M@P bOzX)BJiAIJoN(=#V0N}@d4`}O1A{dH2}c8A literal 0 Hc-jL100001 diff --git a/doc/fr/images/button-change-settings.gif b/doc/fr/images/button-change-settings.gif new file mode 100644 index 0000000000000000000000000000000000000000..3d6e59a36fc1a474e25ec7a54f973eac662dbdef GIT binary patch literal 732 zc-nLKbhEHbT+JZD&?3N)k!p~gWmQ`2TvHR!*%38qO2PE0$*WiPZre8Rz`@nWPHw+; z>F|U5*IvDR@c!eQzyE*#ClM(AlW;CdO;spJEK&%_$jr$sC`eUs&d*IsEoM;s$->CR zAi$u*00bcSFtGkpQ0Ws;WXM>xF6Z^W0-f_Ex%ZhI-#xDUe_%m@#~;oLCFhM_BSdA+ zCX{%t<>IwoYAV`m#I<6j?;c%d0j|$n)>XDrtJx&o>R8%}OTRV*Jngp4i`Qi3srS)t zH|eSh>v41!C~4J<4`k%z6<`w|U~!%W<@>CX=) zzI*?Sc?M@9mtEac?oXUw82DHj*}i-}>=(O(fk|kIVk-a9gDu>dCxw?f$T6|~{PtDY z`Lz3O(q5+n7go+L{X6Xt*AKNjJ6id#@0}g)Arg2e>e7>!pQih6=R5juq1H43 ze|tAsF^h%U3M?*lSf)+$-r<-YJwJAj+8NdP3?;A5+|5hhVa71!6PruP$B6g?t)k2} zH$x3n93FPKI;pSuwY~76aqVJ;IvLkbPZK$7CjWlfsPE6|(3!P*ujGtF_VuSFr|@2{ zwr8&@y)=#6@c-A&qtEY^H6Jujs6Bnaeu1+x&%F;G&AlB4(k&u~!WCO4dK5iuyH$8Y sfitQ?<55T221BO~m1QfG1k~OcJnS+!G(%BHX@E&?3N)k!p~gWmQ_@T3Z{`(H=d0YVzc1MQc{|Zre8h;Gs3gPHww) z>F~n`*I&JS@c!eQzyE*#ClM(AlW;CdO;spJEK&%_$jr$sC`eUs&d*IsEoM;s$->CR zAi$u*00bcSFtGkpQ0Ws;WXM>xF6Z^W0-f_Ex%VsdxLIEItIsX)(2?ptG3SB0mdgAM z>?K{3g4S4ZqvXD*+NCk7?bkA2wH%z_akn(AJ|n^*kBhw| zurs#Fu$Q6Vtg(5DmbXA4BQJBE1|tU_KUWI>(x7EwjGTOYoGCnPn#_ER^A|1-W#`RW zxnNNW0~-%NZ%4_pdHZ&(IJy16p(Dq%R`K((PoA)IHxCQj?KuJ3C`)SV(;3zOKSi)SeIp6@3!2-saD;SoA&D_DUCW7JUfsF>q)3Q!%)3~&2 zM^_TV`i=ACSU3eZvYGc39-KRMcGCyDT`_lGo#k%M=?=MbZ=qJ`)icZqHJAU|hNKo< zb)CFcAmYIS$2FF9HtjsUNhL2Yml)iS<&7#!y}HhKyV~05O}V$6_LZFNxn}rbQp8=R zgoXpzF^|g^Nckr^R4zYsA=G5XymMBcc5T*e{uW*OyZe>)h5gQRzV6_D7s{`)p(x?t zX-2Mnuf;PjWb9(UbfrALPEl8Bfg8)I-Am?ibubnv)cv-d@xYsVS;}RmhovevTm4rm zC~|S_5`ARnT3T_pn#E))Q=8_CPY1&Ig2a-wKHD1j8=Tv^<80=|mp>k5-urXnkZJr5 z4&{k+3zRB2i_6b(Y!_>nj0~l03E{j}9?y=*(0ToH*xX6UT>z zg$+Sj$2y&76}4S$n{{MK#PfL-A2gXcV}5A9SkQ9lz%hq0;a@wku0yYMMObpflsF{-V literal 0 Hc-jL100001 diff --git a/doc/fr/images/button-clear.gif b/doc/fr/images/button-clear.gif new file mode 100644 index 0000000000000000000000000000000000000000..bbf4fe34bdb4f36d7c1373b14308840077c0b5ab GIT binary patch literal 466 zc-nLKbhEHb^kEQTXc1t@NHxgLvMMchuB{E~>WG{^HF?VPk~ORPwryW<@X(rLC$?R? zbmZZK>#tru`0(+~-~Ye=lL!?5NjMj!rYaO97AXW|WaeZR6r?IR=jSG+7BeXRWMSlD z5Ma<@00NME7+C))sPqXaGGwe;m-BjGftEmu?YzQu?{_71v(78VGLvAWr*#(cGD|@`9v7+g&j8! zY8*MraYEyjPOt9kxti>pVXGOLMHUp82Sn%wEXtc2w1r>Tq47=JnFUjm7^k`N_b^%% zvUY3&^bl*oV-$+X{py?Hx34C02?*a*#H0l literal 0 Hc-jL100001 diff --git a/doc/fr/images/button-continue.gif b/doc/fr/images/button-continue.gif new file mode 100644 index 0000000000000000000000000000000000000000..c203ca7c49fc26ed6527cf197c6ce9857a5a21b7 GIT binary patch literal 482 zc-nLKbhEHb3}+BwXc1t@NHxgLvMMQds;LR+XpfjaHF@&X!qqFgw{4$)@X(s$r*>Sq zbojyjYp-5D`0(+~-~Ye=lL!?5NjMj!rYaO97AXW|WaeZR6r?IR=jSG+7BeXRWMSlD z5Ma<@00NME7+C))sPqXaGGwe;m-BjG!5l7@%>LzT-q)<>G7miHt|JxBdi%qP65ClG zmtH%TY7|{q!*A}&Da5sQ27Akad2uBQ4+~V7G)iphGHiIi9ZQ_&WY5AE(ZIxC>d(l* z$In%uubOV0!NJYM#LZDt({0Je#>mV$lcA1*vs#0F#%ztr%-IX|)g~~+Co=FcYcTUI zs*9-FS*x{#nYVzEcW1rk$+$iG5q_cJg}sbR4lUMV=H}yN+gro^fNfjR;*gg<&oy`K zI?vzRvPhHd!>1c;JPbT6i+C?4vBVtg6IJz|@k5bA!GY0Cge&Hz^TC9~!|hdKDb8CD zTxE#X%QzFYvF((!2#bq^&4teb4D+TwU|14U`5^J^j9VcRNe!D_dkr0qcSuNV$>=vq o>(RPvlyvgaa)U_|3b?jraji7(h~n)s>EMWrZoI@H#Kd3?05m_+1cGOb^4UWOBZd}w0`&A zU1!gqxq17>)8~(W|NZr!M4=$tQk%f`I2fBD=02No1a+~{OGyyVkY0ki2F zWjHxm?N+aR?cbg1>AJ!B@xy?C-7nS{zkReTEn3Z0k5VPAtu0n54lzTZ?@O2CWfaE?)tIXuDl}B+N!$8 zftht((GH`uQzZhvW~JrN{Eo)GT(wTZ;G?J`dtiKv@5Tf7c1+^oIpDoPX9iOde*nkrVr*Y}^mRNngd&2sm-+{BcChK;^GVGAsw?tz7y?ot*0}>2Vd^Uytlo8-)c`;id zy42a-#GtJ)K-@pUHeXdG{mF^L4by>-Ms!iQ1j`hk(Z>EVIY}a1D wsr|grgVT#Q&s5sG>#IV1U(Ee;e_hLjj_vLizjx=v#1D@zs~=2MVPUWa0F&t{5dZ)H literal 0 Hc-jL100001 diff --git a/doc/fr/images/button-delete-printer.gif b/doc/fr/images/button-delete-printer.gif new file mode 100644 index 0000000000000000000000000000000000000000..d3328a608d7fc6cfe82bfe6c7cacd037eda029d3 GIT binary patch literal 645 zc-nLKbhEHbT+JZD&?3OVz{nseDW=$tRfy?@Z*-Q&vt2No1~{9&zFSY9>vYHf2^+Z+8vrgq-P9*Dq({>g2NH-x$Te zd-hyIRReC$IFPwPc#`UYW_)na= zeCg@c=QlN`YOv3H|LKVa+nsv`Y6eU)2_F_5G_HLjcOvURx}v;1r=s12jztGoGVsZ5 zV_3Q|*{MBBqpd`#$o1I7Mb8DITpA4%co{iFmiT1yJhYf~wCL5XqudMq^vp`H$^4o; zr-8MzN~rYE=I66#GTvwi>2P8=ydWajtbt<+>+v=6tK(v=CdV){IhsqhYHwE*CKNHB>dDLL-TJz|d0y4m$*ck&6_oC9 zy-fa7G2z*{+kFCk7FMONPq=3sJGb}ubOX;l-SYccY&f4jxx6}Ek)yNh%j?I*=Nna6 G7_0#m95WXH literal 0 Hc-jL100001 diff --git a/doc/fr/images/button-edit-configuration-file.gif b/doc/fr/images/button-edit-configuration-file.gif new file mode 100644 index 0000000000000000000000000000000000000000..779940919c024a6484d0e1921ccbb3ae8f284fd0 GIT binary patch literal 810 zc-nLKbhEHbyvrcM&?3N)k!p~gWmQt_Tw4>^)e$jiO2PE0$!k~lZQDM7|AAGF~n`*WbK;^x@;1zyJUIClM(AlW;CdO;spJEK&%_$jr$sC`eUs&d*IsEoM;s$->CR zAi$u*00bcSFtGkpQ0Ws;WXM>xF6Z^W0-f_Ex%VsVxLIEIFTb|H@PcIji6uoRTR7{K zm~#RPY-e1LJUFqobasP%P%nQZezrkg&#qw8k+Cih_O_hm9uQ`;CbIL+ z-n^B6dq-;|e_Q`YJk@@sesnFrGDoOs*T7NAAS4ys{*<@I^>qnY%OybXweLWn- zv2$MYrC&Q;!O&b8f2(3%&5^Tr_so}`(Rz96`(0`Io{#6feN>t&u`~WR@7{CeDJwT} z&ykobWpM9dPxOtxb4Dw6?Pjpy`;b{Vx9nYgW0cITJvYl=UG=S^Q01&Dd02CWh33;KzA_EGQ}rioV4D_G_EJ@-v1h~6=_%7PmvJTjN_a9e ZXWLEXDFGb~Q)ZW3yUD^I(89oA4FLQ>j57cL literal 0 Hc-jL100001 diff --git a/doc/fr/images/button-export-samba.gif b/doc/fr/images/button-export-samba.gif new file mode 100644 index 0000000000000000000000000000000000000000..4b63edf8c2a83e08a04d9389a402d45d31c5c145 GIT binary patch literal 958 zc-nLKbhEHbWMdRzXc1t@NHxgLvMMQduBi#^Xpf#WrC|Ehw{4qu@X(s$r*>Ss zbok!g%P(Kt|M2nkpZ~xAlL!?5NjMj!rYaO97AXW|WaeZR6r?IR=jSG+7BeXRWMSlD z5Ma<@00NME7+C))sPqXaGGwe;m-BjGfzJ7o-1`;l-fwo8aNuI6yN*=sYA|y0@hu5quP%sYMNd{)_d~W9>{3qrYGHl$ubszr$Ehau^hUZKV zc5l7K@c8MWt=dD_Ge;9)&d4bZh-|34ZMqv_;YPq zx!{LJqk7NFpqz&luNF5mG5%w#2{H6JxR`mjoMM8*(j*rx$(0XkB#p&<8F&M@JQgG@ z_n)ijQRPx-^wdjamW5}?ufppSmT5)m1UM{^>sm0OL#p-Vrx)t8#Sil7{yN06EIgXU z#NmR%?JbPFGwzi-sLIY{yL|3z?nYJvu7eKzKFNkT9u4e$?RU@qKKcGZ{siBZoCmgV zN?Q`oT+X&Fg7sbyBad|0b<5A;NA+0FsI)6AS$S=ua`4Qa4aILHN(CB(B3~O$eRMct zQww*Lgy=H{4xIvlDTT#GhbP3}*Arr8WLv)@xm|DWulb@}k2ki?wsHOWNOad6J?z4Ew~ZBfAirhc9c z^SGmVB2}VOS9Z*A^{`BtSYe*mIF(7?OhSdhYuS+}%6_XD&eX&Ry-Y3kZR==qdUN92 z<*AWT8c%&$7o|K=wA&*Z7vfaK#O1I|$^n%&yXRL6U+6zSS$uDDsFv|5>j`D) zD{Tx4(>2t4zFpGfHn2VQba{%!tVK+VRv57?E3}h5wPfC;$(hm9MHZe=N`0{E^*Ymz zgvY$wKV@}nI3iXZAw5N++hxNkGi_GRcnj^fTdpXn9X!TyF>LkQZFlw+=nCvF(|)(( WNYtkz9C;I0zuQ&u6Xc1t@NHxgLv@9)luC5N~?hKziC2#uFC$?O@ zbok+e>u=va{qX7C-~WI9lL!?5NjMj!rYaO97AXW|WaeZR6r?IR=jSG+7BeXRWMSlD z5Ma<@00NME7+6m!sPqXaGGwe;m($I~qS?PZ`~EtEZnk&K{qm<2UULRIh6Q=ZJQUz> z$=6)+P^#nDmmfk8xp){BPw-+B;b#{S^{|lZIzXr1>?*s-WK66tuPW}Z8+8sQK7#KYlE{xIco59ds#qH4zU*)IIe5?iT Syw939R_y5En8d|FoayrbjI+_~>J ztp9fY{Ljaae!Y47_uudTBm%{M63#`bsR{*&MG65KnK_vS1*rJ}fB@tk2G)NHDt!WqEDo#I<-FckpmY9yIf@aN~4TCK^<-N|jM-Rr+#(UNvPJ`T;vQ>XVYiq%(bF00^J z%*a(ZQ+v1izV&;`*B{-g<nCKK-o zt(Oe1*RPuODNC1;?~>V1hWDpGYu-EBT++{4RfqkU!5{4?qPfA*f48FY+y5`&n`4buk? zOxb7bn`yY~@={v{zLcg%%^|KKi~TprX06(yu|mS4LF~bylR<~_J2|GN7Km{lwwKei z?KsKq7{yTZ@?6%@tA1-XKW2F;>9eDNThNwQJ5EMrLc*~L%BK|!T{k^Fo!}O-?@VN2 anrx?ax8I{19UQ{4?yJQ*4|{MhSOWlL&;)q^ literal 0 Hc-jL100001 diff --git a/doc/fr/images/button-manage-classes.gif b/doc/fr/images/button-manage-classes.gif new file mode 100644 index 0000000000000000000000000000000000000000..a96ef74e17cee57a376a767861d5523a67285d2c GIT binary patch literal 702 zc-nLKbhEHbT+SfE&?3N)k!p~gWmQ`2Qd1q!(H=EvYQglW$;%eEtXn&2+qQWJ4z50S za>vz6ho3*Y`{Co8zyE*#ClM(AlW;CdO;spJEK&%_$jr$sC`eUs&d*IsEoM;s$->CR zAi$u*00bcSFtGkpQ0Ws;WXM>xF6Z^W0-f_Ex#yW2-#xDUe_%m@#}dv8rREQTIhSVm zF_=UdznOCS)|RbHSM74yAf6_BRDl18_nXxJcN~7qxY}*X*ZZ|b^?K0nY7KV*L)J=O zR!v4Oe!dJ1{tEt%NxaMxCQO|kq|r8+J&1qN1P(qQM$Tp2j7yf)XslSZhGAa0&c?nO z49q->c!uwC&uy;PkL=<#-hcf3{N-n@tISN#934dz9x#dgzM|-|T!3Mp>o19K*@;ZY7}(b^ zS=`tnc$7hdzlMc_lUqe)qS`-3i(5zhyllOjWad0+Vp3yZGzwKp*tux&UQsE*cOe^t zT7Bm@Rqk5xT&Z!za!!S_Qa6jdy;kqyFeoTk_iFm`#fLUBaEf(>t?T@8#w&5#^?yrzp zT*#HFy?}9r+Jh*s1IrIPemoYbdRmvCT}I`P@wc37GXnnz3z)_nVqLv`>#k?A6rGlQ6El}kmzt0`MAE%JO@5E&~Te8Sgj_TOnt>#`29HV4(+_#yIW?(XUD zo!l4v{_)ve@L}Zs|Nj}dlH3|t#Ae8IMo1{Gc+liJ#n7pV$4z4)58t~B_gf_NEI5Re QL#8}zXMNV-!ogq-08wd5Hvj+t literal 0 Hc-jL100001 diff --git a/doc/fr/images/button-manage-jobs.gif b/doc/fr/images/button-manage-jobs.gif new file mode 100644 index 0000000000000000000000000000000000000000..66e25cac0795adf2d46416b9086a26504eebd7f4 GIT binary patch literal 694 zc-nLKbhEHbT+ATC&?3N)k!p~WWmQ`2Qd1Mq*%38qYQglW$x9bCuUk85=dQ)aPwlvN z>F|U5*IvDR@ZsZ|zyE*#ClM(AlW;CdO;spJEK&%_$jr$sC`eUs&d*IsEoM;s$->CR zAi$u*00bcSFtGkpQ0Ws;WXM>xF6Z^W0-f_Ex%-(M-#xDUe_%m@M+;|#QuBwvoJ%v# zrC-?)td|`SZg%RH5HpV(!!y+&cf%vhAGL}D^Ac*Fg^F--ecCOaEhCkiuUl;1V%Qdy z?=E1-%EQ3Js>#U3&zDtD&(F&`i-);jCNKZ|g$%5V>lpag1Y|E}VC3ZE=Sp79u|X?f z)0S--D`vB6uMJ@4Uc+s-clx3w3pQ@vy8YlPeN{v5!|dFeoTr#h6mT&!W<7b}`CUu1_4AF=?=%qBPiJ>{EAn&fR z_qNy9H#oXn`eU(7rD1Z?^INwMnYuDAXbCl`hzk4gNW6WwhF-y=RYBX9$?fjQdBVC~ z^cF*nu)w;4YX=(_E_nRr`xl3nUf;dzZPJ*y>d?)vIns(BlrC|(Z`6u4 znk%t2LF4MRRffC@;w!fnZi+Ck)4CcZdbx3_)q(7=&6jVv7xtf3zrS86?1%b;hWt5(P7N$-k}DqYvb_tq-z4D1aX`tV=fcDm3BDQ3LW&Fw F)&S1)LmvPD literal 0 Hc-jL100001 diff --git a/doc/fr/images/button-manage-printers.gif b/doc/fr/images/button-manage-printers.gif new file mode 100644 index 0000000000000000000000000000000000000000..6c0a94675045ec5ff5f30c1c1634b2936916fc04 GIT binary patch literal 760 zc-nLKbhEHbJjo!!&?3N)k!p~WWmQ`2Qd1My*%38qO8)ez$x9bCuU|W9$BqTZPwlvR z>F~n`*I&JS@Zsa@zyJUIClM(AlW;CdO;spJEK&%_$jr$sC`eUs&d*IsEoM;s$->CR zAi$u*00bcSFtGkpQ0Ws;WXM>xF6Z^W0-f_Ex%YSI2&CB0+qs~?Lr1D#uhBn6z-~go zbz`r!w|Mq0+iW&9Dl|4`hsD2V8x~7EYOI*L@_o!5pZK%+`y(D-D7gOKtf91|$;3;* zkd=plhgFl2i=QuBgTIEqcRCOA)Ty)PFa&q;S1;sWK9z&lpOKS~pNnzj>N1VB>o;mF zUb=PREY|recWhd?%0GD8>Y1k&Fmo^Gb~rg>&hixu+czB9&2FG-$bFZcTa)u5)A^}f z%#7Ku-*zv2^@ihPFdr);GuK?r4GtV)8-gb|$O;%}F!AYdFwD2B+naE4GROK$J6U=D ze_i~dFK&+;Ba2GIiHq~NS||LIu)4#3n5Bo2FNL*$p-Zic@k9el#RB2TrStwuDKK1p zpWel`fW^Y#R1#N^h*uzos?@fTvp;Z;^t}lg5>s@-Zy)6=w0e7KmwDWoh}mCGc|7YZntraYN{C5cYGE9U zr_j>pTNg8HEO_%?>N$gi^8B*(oIk|tXJ|yT#if)h8u;Y#bZt5%ch2`?JQv%mOYz8;UR`@hORzKkBSsz;RSjcGZhTl1lp|m^q_PWIXOQUu5XiYw_*HV+E^k36J_+ Y#3Wg|y*nOEn&@NZDZ_8q!oXk+05x1=RsaA1 literal 0 Hc-jL100001 diff --git a/doc/fr/images/button-manage-server.gif b/doc/fr/images/button-manage-server.gif new file mode 100644 index 0000000000000000000000000000000000000000..bcb6e3eedfc109ad93e68f9d2dc0435b06dd75ee GIT binary patch literal 891 zc-nLKbhEHb{K_E0&?3N)k!p~gWmQ`2Qd1Mq(H=QzYQglW$;%cuuUk85>$Z6Z53MCR zAi$u*00bcSFtGkpQ0Ws;WXM>xF6Z^W0-f_Ex%Vs9-Dh(AxA=0NhmKVLi6xs<8M=6O zA1~^f6trGjyX>{mp9L3ZZ8KdqZRhDvl4qmt?^!JIsIg+_FH?5%g$RC zQ*YAQU{TkT;VWRs+Q!SO$;ideR~*{PKW#oQbLc$Y1xpyhrYvAz#lInxgD;4Ya|<`) zrY(^g+ji{IUemH~JO9qzvz-{2_?Y$|KbTy%Id$gjxvQ40TEx0&Wyuzo#E(b=g#$88Y`iD z`7!4#IsYJ+g;P|y=DO&cg}gY#(!r*hkRv(~+gSo1P$XRX?|H+Q$^8tn*4U@W+t zlY1$2t(xU?tuwlxwmq^|>Uy>1ugm(i$*-f<>=M#{cJFfKOs4sz%5rbn9=#BIF>_OR zU_(4J)2G`k!U<;UpFDe_`(&o;xjh2%wJ$U8nI$y%?AdUh>n8()s6XSbW%EQiWM@cZ zYw;$;18|=(AaWu`_um9XJrSN6SFv< zl`gj^SXMM6Lr68*`di3Z8<}aDs$A8(iqA4vT)WxC-!GE&VqvV3S2M?Z%~vlLXFB|H zQkmqD^>V4JPLT#@Lc*(;%NJZ@ILZ_P{M@9}Vg|*ZER0+X z0t`9~Kmc+N1M5EpmA(K)hKyC~a$fH%&^d3SEs|n4uk`)@0|`D0gk@Vc9PfG%z&6)G zBdF|z>~g*3lM@|0v+u`Ayk6B8*MDr4;kk8kj49P->g&rg@=hICvHyROQ(c*ci-2d1 zW{e*r7at#IAww@eA4e1e|E$>>jGVq)llVDu8ko6faocFk>*t8mSiaJREr)kK!`93l zYxx%%sCqK+vM{h@`Ejmd;^x#i#dK!IOie!yZsy)|Gr3k@)i}b)#L1;|iuv(|!z_=U zXz;NyGCyVb@afC-n_Rc`)DB%|5ZhDqD8WI8{XGwpgaL2YWHv5Vg)>jy-tJ-$4s~ET zlJ!Wp^?^WxjF@3^cbCqYDG4qQ6#B$G8RN>bG75#&vvlVOyeJN4m2t4nU8Jz#fMc`X zu`aoj&C z;!~~KH9p-9p8hFzPi5k{rH3>54Y*iuUXt^(34CuOVLp#((G%`vOF|U5*IvDR@c!eQzyJUIClM(AlW;CdO;spJEK&%_$jr$sC`eUs&d*IsEoM;s$->CR zAi$u*00bcSFtGkpQ0Ws;WXM>xF6Z^W0-f_Ex!f!(`QrR)Uuf2 zxT44_SF+^fDlV>6k$|9R2?MohTerP_@ik+O)bppW1SN_t{?MIp{M#}vorNc3l?fHa{6=4}_Jxy|@-H_~?PJ))z?v7pd7O!xQ{xuXo%Wyr4sPZt_foiQ zt5VjTe=(2i6HmhJy9sYTd|~|jRU?H}V1h%VUBmmJ8P3Zc=5h;P=F?%=@W8=|eLDkB zK?Bp{4TYKuOipMtD9Nt4%wiS?OIC+%H@&xM)-T@qRt1lq?23{|XgIjGQ25!}p9emK?|&yFlCg#% z|9B6BgmqhEvQ(n)-1)k1?{uyeiK|n%zQjg+`nuDTV`H<64-{tva6LRycY|Z%M~&m3 zI|SzJ*(vipL_)OP?{CRhMU_o4_s`jO%o4n{yIcPKquqSZo?H%}UgyH%^7X^)#}-0N G4AubYgfsX6 literal 0 Hc-jL100001 diff --git a/doc/fr/images/button-move-job.gif b/doc/fr/images/button-move-job.gif new file mode 100644 index 0000000000000000000000000000000000000000..104d044d3d8b68b080925bb12ff7340020f40dc7 GIT binary patch literal 610 zc-nLKbhEHb>|zjMXc1t@NHxgGwk|1luB{2|?1-8^HF?t1!ZoXUw{D%YZ~v;}r*>Yu zeB}Q9tFK=@{P6Mh-~Ye=lL!?5NjMj!rYaO97AXW|WaeZR6r?IR=jSG+7BeXRWMSlD z5Ma<@00NME7+C))sPqXaGGwe;m-BjGfzJ67U4az4d8P0FA4mvTAS~MA;QY9;#&GtA z=j$g}J5}=>_G;YWRm;exEFc=>zOKFMZ?4^ml}8?OWmt!EHY)~-y-O+!Xe?>gX{~iu zGVP|_2yyLVB_KEEzV(JaWzO46ZSFmIbf!(?+=Z8# zuQ@L=JY{-*nd9oG`@3)Jshuj_9Kup?q07BNeV)-puZs=~8JZX*ty+F4JUArEe0$>w zjs*|3n>o}EZJ4oaDi_n7BiCl^@knTFW{cXfHR-Si>)Bbl^A@a0{hZ=uy0&j^Ol9ze z3w<}79@=mnU~p|y*>BPjC8RmCS!%78>%)!DkFGTPSG#kX@4=v%T+1wFs~qk(RK(x% zt3Lfj>E`w_84Z?#>pERUyZh`WMwh8DZq%AmVpZ_1^O25wv*WaxPDN)N`=(cHI&AUz zk^1hczrU1@8u7@K1g(zqb!YLswjueno1@FcH@A0$PTnwS_xAU4>24qX`R>`#^}sSt WI$myf*+jvAGrYrV7kh9pSOWkmEF@R} literal 0 Hc-jL100001 diff --git a/doc/fr/images/button-move-jobs.gif b/doc/fr/images/button-move-jobs.gif new file mode 100644 index 0000000000000000000000000000000000000000..5894ce3952c514ee69efdaed4b6ff4f4aaa0a9fe GIT binary patch literal 785 zc-nLKbhEHbJjx)#&?3N)k!p~WWmQ`2Qd1My(H=E@YVzc%g=<#zZrwWfz`@nWPVKmM z>F~n`*I&JS@ZsZ|zyE*#ClM(AlW;CdO;spJEK&%_$jr$sC`eUs&d*IsEoM;s$->CR zAi$u*00bcSFtGkpQ0Ws;WXM>xF6Z^W0-f_Ex%YQy3#8c3+qs~?Lr1D#tI3$O3lC($;Q>7nlWO-C7;1rJzlSH7O?=PoS&Hsn#kmg|4a8%)YL+1NPq z{Ok>zoO@mSJDny@GMi%VC14cB&mPFY%w5dwFgK8gS%Zy-pSPxzfsuocpR00N(55Zh zGAVXX%3_j}o@m{rvXT zn(e?NhninMbVEMs-P_a0`0w$>&FzPjk4=z{o)OW`bE1oZuc~nKBdx1PM0jhsPDBc? z2w23QQ*`8cF+)&aM$;mRu0_k|ta4v1_rY=#tKXXRvL;ps(T1xMUhx4wjt!z_oqGcW zA|5Pol-N=F?8w|1<@wj+Dw)>Y?N(bqb!X{&r?=b;8}IJ#z5B{_+Vkb9hl^g??R$KE zO`~v=^=-osTe6~dr1^6@Jzk)B$%ct-d7a~~?B>gwS=6?cOSpqB zKMdk?dhxKi%QJ(uab3j4vjz_uZYVY??K;pbX>u*&aj$7df=r*yw-?HSGc!Itp5P+p w$;=rmvGU0zmqUh5lYHDXQziYrZFoE-BF)ozf_I0(#truc>m$`-~Ye=lL!?5NjMj!rYaO97AXW|WaeZR6r?IR=jSG+7BeXRWMSlD z5Ma<@00NME7+C))sPqXaGGwe;m-BjGfzJ7o-1`;l-q+{|EP3$aindh$i6uoRZMa&L zoQqdg1(aV~t+V@TRdU;ckkg^l_HQ=cCP@_nh6P1Vt-u{Cx1yEk9fsH-w)(sM3r zHgB!!X6V)K?v3p4)SRN}FVND+&dblkI(I&EBL^Qp7vs`-eRJk5Sj4l0fsu3h%GG%q z%-sC^+%BQZR;*&!v+sZgBNsm(N95M+N3~9$J%4K3kqP@Q+}y#y%EQmg-gigm>bbj@ zbS5{ho4;`VX8yzXzpk0Q@zdhnd-uD@9Z@=(J9nG7s+nbwfx-dfHaF2 zq?{iU7P~NTh?#^G6eb#YYy5Ly6`0`QXx$|iEEaK7$dzeEq*I^H%16r@x-4Dw9(NkG zo?ECPb4KRDrcmzr4uLYNH{Z<-4w2dDHs^=&GSAgf)_JT8CZ%59Ab;9N_0*x3L+mb0 z2SUvY;(=)sO?~8hB zG3U|h#Pj9#0;kn0 zzt3v?u{T_#sjhWJQ@yFjjC(DU4}?tWP>L!Q34ScPG=#xtC1ZfA>fITOeJwmyMS8Uz zu69r075up%(AkW2Vr!qRsEUVg)-}cMn2#As(-?l7;Hl#dnwb);_vgd3_P!gzJUtmr zU%Dz7#6la?pS)P1##P)`%wTe6Me>!|FTPavhBU1Ez$4Bfva3JjQ=qcOqSi(3^3%U= z*eqWc_B2wxuKk}RKaYbawBc^+q?jlhu5|}Xxsgk KKcIzy!5RRIzQI-i literal 0 Hc-jL100001 diff --git a/doc/fr/images/button-print-test-page.gif b/doc/fr/images/button-print-test-page.gif new file mode 100644 index 0000000000000000000000000000000000000000..6e90992309b0d81481542832cc15a906e76e5ba0 GIT binary patch literal 859 zc-nLKbhEHbyu~2G&?3N)k!p~gWmQt_TvHR+(H=d0YVxG1g=<#zZre8hz`@nWPwlvN z>G1t~S6;rj|Ka1CKmUIJClM(AlW;CdO;spJEK&%_$jr$sC`eUs&d*IsEoM;s$->CR zAi$u*00bcSFtGkpQ0Ws;WXM>xF6Z^W0-f_Ex%VshxLIEItIsX)(2?ptG5dkKmdgB1 z>{m4AMwPP8|2%7z)7}^v3!k=B_w|LA%j1sU(*5z33C~m=P+<{GBYxbal$RX zy8S^MD>gYWGB)V@@ch~O*72(C5jK+>#%ukru4a%D5Pr~*EhENwYTfBwrLMQ;N3QO0 zb)44PyhG#oD%)Ap*F{ww`L(uL>qqd^fD+wv&IwaoAJ--*y$=*ya6a&4?6(cs)4%92 zF!7iHKL^ZryuzCf00v+yjP`ha#?z8P=?kx{$nZRZB!$?u@k$9v%<0 zYg4{{fb(AV#;vSB_neB&DUx5kgD=71+sae%5&_)m@!XMG99!nH)Lsoa)8=dUCTB+e zb7m>#D?9&kuBcfZ^U1Arp-U`_fO<8P5!9ZTf#xRHB7P$wV$jH=?OiZIR4@ z1HrQl7WhkZTaP_^ItzE**aO z;QFgq4?cW+{qy(tfB*mdClM(AlW;CdO;spJEK&%_$jr$sC`eUs&d*IsEoM;s$->CR zAi$u*00bcSFtGkpQ0Ws;WXM>xF6Z^W0-f_Ef4Nvz_Ah_?|GyUi6*23) zpmAn_x7N%R%YC^Y#4UAs_2R3BwUF)f?bbQ#4i^w1bMf@}QxLN0OGxtoLK5y3C#fx|rEM;Kk;^X78UAaCs z)pzo81J$;&&Z3F@+nBgGj%sjlF*9ckUfwID7u0f!e|H_fdHpn0cl#CNOwAH0xxFY1Uj&W^fi^Y_t6#zQJ3{oL8Qy z$HCC|`OMV(Z zzYv=nWwAr$fIL?NljMRq%QvL^O^eltyPH*-&?wBeGizd0a#pA)x4;JP2W)dp{MhHP zN*wS%>$~pgoi5wkOB@?_=Ik_UU{!c$ysMdmCECzIqnSBR%2p`iM(Bz;>4{~!YBw+4 zJ6puHqw3A(&TZ;zK8P|M+10k-nzPG{R$uAjT&0$<`}cgOmJ0}l)o{z_IiKlxaAdM} bcw)@)H%~7lKDSd+ivRMup+JU{k--`OcWoZ4 literal 0 Hc-jL100001 diff --git a/doc/fr/images/button-reject-jobs.gif b/doc/fr/images/button-reject-jobs.gif new file mode 100644 index 0000000000000000000000000000000000000000..690bbaa3ae57873f66d5896a24c62be547a4bb69 GIT binary patch literal 632 zc-nLKbhEHbY-12%Xc1sI%fN7+iSweg-CWN{y5A2Ae_C4hyrbjIym{|8 zZuoxj;?KvAe!hA0@89qLBm%{M63#`bsR{*&MG65KnK_vS1*rJ}fB@tk2G)NHDt!WqEDo#I<-FckpmV;2mz~M+-QtA*2No1?h>N@NwSgc?DAcWyygz#IFhSCUaH-Y9V zUq(*8jQD`=UT%%Fw5pyyO@0pE#0fJdYqIk2^Rh=y)nw-8BtG-N>@x)WOpdj|Ki_3oLMS zu5(LV=kY2abN^y(u7p3!4qe&NCA3nhb(Pa99vLS_9fyFNhT}z+r|0=TR0!W~l3i>S zx?8K2X)~+Rri|50_p~&g`z@I~TP!b@p`7{2)QQS(R@iQ@bA0rr;h;Xt+AjgydM0Z< zIklf}0@rmWW093h1!}Tfx<5QQq3IH?r||xQ(3+N_*J?^lulpH;%em$G4o`S%zqV65 tp0B}0^x1{Qw`zNoS&PNTFjvMlZBCs zL4ZMr0SG|uVPO5IpwcHG$l|bSUC!%$1v=-yR12lpEh>Hg|G)z61;V0r{E9)I-fY}E zlh3}CQRDFm{VE=zQ?dRnzg1Ibc)BRlY~Q7^NiGW;I`(E;Z{BCSd-I=aCl`S--4Hfj zJ`Nj3c3yr?8~zT@-u{VsQ|dLDxcKn@NZ)3%q4H4Yfr)IXha4n1 z($+I@H7H7(Dcqix!Z_<(%8tw7O~!m|VWI`5N4Mn%dpb?En$jRUSw&qn%H=e}8rGm~ zECtfqdTtD?35Es*#||tPsg!?Hy6IFSbNGvA`=$o<3Cuq}LHW4A#(+&vPdA-PxOZkJ kJLj>v&fRP>sarD7rIdu&owX_!6uKC7dR^gS4-N)v02)9Dy#N3J literal 0 Hc-jL100001 diff --git a/doc/fr/images/button-restart-job.gif b/doc/fr/images/button-restart-job.gif new file mode 100644 index 0000000000000000000000000000000000000000..0f111a92b12ac9081c30a1112ad467f84ef4dfb2 GIT binary patch literal 601 zc-nLKbhEHbY-A8&Xc1t@NHxgGvMMQduB{F1>WG>?HF@&XqBW~}w{Dreci)QRr*>Yy zeB|EUE3aNY`0(+~pZ~xAlL!?5NjMj!rYaO97AXW|WaeZR6r?IR=jSG+7BeXRWMSlD z5Ma<@00NME7+C))sPqXaGGwe;m-BjGfzEjoZGjZKd8P0FA4u?7AS~L_z;3i6=FqJD zPVYKetg^4gH5}xyX}xsuwPT$Q+vC;xv%^$*+Kz9z6UdfTZxu~CkmyMB$lWQp#b7v*PA?DK>SB{)pvsUB8sWUoZ_fDU^oPN#o{Ke~s zIgje8`KR(_@Xlu9TdKqO({q#Ww=fo#hV@s>^0a@n7BBp8V_De$U3XtUfAqkKVIq%8 z;ngLajBM+^DApWUE#f{=e7Aj@%TlM*nL(<(olhh(*hFfWq#{@{9vo4ea*S=+h02dg zM)Pxyd^KVDpcv2~7VqNP;dHQ(`7qm*>_-YSuk~ro3UF>0ofWnqF|dU9!&KJ2BH6cR ztqwcmHF;Cc=}?sbj)q2??Grjp8de@;+`y4u$<(T}!EL6_UopEgj|zkj@$;Am#&8>n z95*OF~n`*I&JS@ZsZ|zyE*#ClM(AlW;CdO;spJEK&%_$jr$sC`eUs&d*IsEoM;s$->CR zAi$u*00bcSFtGkpQ0Ws;WXM>xF6Z^W0-f_Ex%YSI2&CB0+qs~?Lr1D#uhBon!K%Ms zU2m0^#fqRs3$LF!w;_(ff@g7%BiF@LcYEo8VW-@PJ_=n|jg` zriarC|l1dEIS((Hew?FDJ;k($O+%7Z0yVvGh1T$ys4~-`iZ1x#C lO>j|LsUqq2?ZKl-0dA3pd%Zh8OqvprHj{LzT-q-x+G7mhcUM&!ROnG&JwAMub zFr!&XeG~fMBwd&t#CT7ik4r#7;%>f{535tcYG6DSTy!<>d3?*e1 z4Nb*0b=}RaRi)*X2|Wg?1sZ7?9NbKdT$~#7nVFU(a4k$6Q9O$ZGOw5(_4M*uFCV;$%g&*hMvsaYzc=W8>VGnZ+PYz z$N#e7_0wmc;)72z@!q?5_Ve$ckceP+fd%%mfA|&!6g)UEje%KYhfo0b8Jl)y1+OhL zlEROcYZzp05pO=WOoYwlfv`zprRDBxdJ4FF~n`*I&JS@ZsZ|zyE*#ClM(AlW;CdO;spJEK&%_$jr$sC`eUs&d*IsEoM;s$->CR zAi$u*00bcSFtGkpQ0Ws;WXM>xF6Z^W0-f_Exwn}d-#xDUe_%m@#~#iKC1=5a0-LV$ zOG~_5CCg4NV49dD5)c?35i_-~KK*6sm#Q7IJT3aI7Axc$Q+M&)2>u&to2$Xd!pX;M z&|uyj+#67%<1Wyp&B4{e;m1{(H!qN%otK}dvo>K-dLZL0{y7?~Jp8<6+RWT}+;++S z^IO{aI4f&cF8A5AMPvI;^?k<}4;)&tcih z@w596A8YWjGBQ8Wj$>rvoN?^Uu?As<1jgxQyISwt$k zKI=^tUo@F{lHZ_P{M@9}Vg|*ZER0+X z0t`9~Kmc+N1M5EpmA(K)hKyC~a$fH%&^d3SBa&h_uk`)@0|~whge9x^7Z!1P?Bn27 z7fv`KJJD3r+j?rDXotw-3%;T58yXLNlvupuX@&P}j^%QV@-n#;`1&(CeMG*Ejce}f+*=gP`; z>loIo+tAj%x0gZHfX_yopNpB1gGYmN0~0srVLo=otixwdmtVcE!OOzP#M$c0_2BX& zKMwBmTsP)DdG_K})Dj~#gNot`mV!qQF6px$c9HyY?OpFdM&1Y(hZ{>28=5rOEHV=U z7>?Qsw^vS13~b$GsddStRLY{~024d!i5tNz0u0^^ED|EZCv#L+CjAL`awjwYiI8V> z(4qqs6Vw}+<>%h3ln`_{BWx~ec-3Rw!YQlGLKg`Ln7EznX7TgS1 zUx*cc-BK7FP}Ulq{o%=5(Usx7!fYJpKF034aI{w<>&6bvto31={rntkJ2IzBHpR|& zQhc#`(Y3WA%hbFt>YO@x;hKh<^x?)8-5YOpxXd}~``GNgQNO}pzDLy-!b0Ia+VOIa h&vZOFv)H|SUh?)YuVb6U1t0S7{;p}>)xyAF4FIvD8bJU6 literal 0 Hc-jL100001 diff --git a/doc/fr/images/button-set-printer-options.gif b/doc/fr/images/button-set-printer-options.gif new file mode 100644 index 0000000000000000000000000000000000000000..5223d3a45e681032d82c86964b7e1415ddbf5aa3 GIT binary patch literal 867 zc-nLKbhEHbe8(Wd&?3N)k!p~gWmQ`2Qd1My(H=QzO2PE0$!k{iZre8Rz`@nWPHw+? z>F~n`*I&JS@c!eQzyE*#ClM(AlW;CdO;spJEK&%_$jr$sC`eUs&d*IsEoM;s$->CR zAi$u*00bcSFtGkpQ0Ws;WXM>xF6Z^W0-f_Ex%Vs99cFU;xA=0NhmKVLi6ub{B9c9< z#}`|KM&*Y_emiwkvd(`l)5Ii^fatKOyR~a4zYnuow|IN>{fWOn78nRPX>zb@@iV%W zd2|+-gm#yk_3Jq1X)v;I@-Z7sikiSMH>5XXzWYK=AAvdA99+{lg1Fjiw)C;{^7G7I zkg>gZ{l<0%Rvv!d7H!6ve4K~)*@Mn5*s_G-6yKS1`*vv@Id($pR4scb;|BgsIeT88 z-;u`pZuj|%w|2a_&H7>IZf5QpZl_ysXCGsiuu9bPS`%b=fRT%Zn@z(zpm#1)Cx=9c zv$%$mxaoH zollC=T#}2IH8r?1s~p{N*@uCVGo~?US26dAP6HnuAHfA)&9O`}>yp)%ygAnA$~eb$ zqS(=mu{tITGdkMho4a0rVS2#5YVA$tif|6O1hKWZoU~;m&F+-HzkjGu-e=nuwT7s( za~RLF27G6YDb?h-uC?QuU`m;u%vv|cgvMsJbS3U$?yT*v&+KCiUs-EizVHFdO4qo3 z+jc5HF=^ee7T{A^@_cjolFZcaCDZP^&EB6^VC6bx&mX(rQ~iu=t3US#>zGB`uM8)zw`}Utq!0rOufsuUM`t(?!ycI b@~~AemsKyjbc7?RQ0vu-yl)p=I2fz}>r;y9 literal 0 Hc-jL100001 diff --git a/doc/fr/images/button-show-active.gif b/doc/fr/images/button-show-active.gif new file mode 100644 index 0000000000000000000000000000000000000000..0328159a5ddc376de83736835b9827bfbb51a93d GIT binary patch literal 781 zc-nLKbhEHbJjNix&?3N)k!p~gWmQ`2Qd<+)(H=Q{YVzc%g{xQgY}+>Pz`@nWPVTsN z`N)I&*IvDR@ZsZ|zyE*#ClM(AlW;CdO;spJEK&%_$jr$sC`eUs&d*IsEoM;s$->CR zAi$u*00bcSFtGkpQ0Ws;WXM>xF6Z^W0-f_Ex%Yo)3#8c3+qs~?Lr1D#yU{59Gb<2*Q)IQ92bo$KM%d|o^Fr3?ApjyS-xNWWm z$3Z4;j%8fTt9b5du620(g|l)lm&3k|(Fe}YXJ%$(`yo7oDVBkeQ-nu`AyCeiJ>x=g0%HT~&J`8{S5G%;CO+85nsXqy z;k+NCq>yW(2&>+_fEX5wT_G!sv_fYyRlHJqeUaTEGQ@YI@X?0#JO|Be7(&|@hTN3t zU_7qr5KyCi{o(DSs|76fg>dK;H0Whs}vrPJ2dy zf~5vu#jfye&(ro+N~@e*U9y#n*=m1f2ajOF29 z+8#!k9WGE>vs_zjfs>c{mDX$5xvthc6R%xRV|FfGtHbT6#UjmS zPqXi?H_qrvq(wZe)y!c|(&E%P!I^ZPqe79##vEn$2z!9~ck rNz7GkrHXt;Ps5W*0dAQtlWjj}Je?XLwZnzqIQ8Yy>DD@eObpfl;X7kd literal 0 Hc-jL100001 diff --git a/doc/fr/images/button-show-all.gif b/doc/fr/images/button-show-all.gif new file mode 100644 index 0000000000000000000000000000000000000000..4e6c6a8d4417c50832666bbe7bafbd3bfdc95ef1 GIT binary patch literal 756 zc-nLKbhEHb+`%Bi&?3N)k!p~gWmQ`2Qd<+)(H=Q{YVzc%g{xQgY}+>P;Gs3gPHw+; z>Bxio*IvDR@ZsZ|zyE*#ClM(AlW;CdO;spJEK&%_$jr$sC`eUs&d*IsEoM;s$->CR zAi$u*00bcSFtGkpQ0Ws;WXM>xF6Z^W0-f_Ex%W3aO!!mr=)i&k4;?X9+rWb-a;)Uf zNluA;pu70Sn%pcN0|`cn>k+bh<$6PteUiEF<|^5&^OE4lCK1HOQ(WcNY}gi* z@6ci4A&}IlSr^R6$;Zc;$iUB@&BHvKf04$VYz9USK7OuQOOqEZUOsKcTCIQ$Q&z5? z#g@&>uCsI18jZaf2exg{VCG)LZNFmriFNZeF77_M?}VOe6>t6C*%}<@nYcNYa51mo zS+b4G{>f|3%Gn5Vq%U*OpCBdCU3L7}m!m04?9 zbo&BXhQ==eA~rKNv~t?A{}W?~V94oW4q#xjP+;XVSwrv9MpOW}M#ZpQq*? znQL2ruxEuZtG|d>>>17pC7Qn3!LyhuW_@l56}OLeSXgzyQKDfM(~UprTXHpG@){?3 z?Y{OxJ0_Szr{IIG(!D*^zt>4PJ51Q*JL`tlziub}`}SQ7G7nNhGJF;}bbIl<)?ef? z!|1uy+S!wh7tC{zo}t$kWf;P&e#PnUs>rY0%xk09^ks+0+i%yK-sib9@4(S>+B)?* z<$SEnEFz*T{*Heh6qYg;xUb2RVJ&-ma(bVMo$I`Yx>-BpCR zAi$u*00bcSFtGkpQ0Ws;WXM>xF6Z^W0-f_Ex%Vsd1XAqh?Oagcp(E9A+UOtRU=`WF zTt{ndRA6h|=T}Rln0ee7o;_tdthU{Lso=|4n#q(QVv>cqEApbUvfs@_cKA(q8 zlZ~gL&aF4ta)R09MprL^ly1$A5JpZuKF(wYe)eJ>=B4~=G?o=JFmmwmb1hk)F>mwM zCEfhIEm~{VGB9(m;dYq6@ZgS>8k@Fk)7W=F`|z$y+m{EPV_{pdYU#Q==Qr-Y{QTCH zo@@H5b-XML4<0jcoMht8UdqL^sqoFtPwhN;fuyG&1^msUe?w|{G*^_%NglSEj=EHWl!5pezqiTp636# zF43VP>(Sog`C+zq?-f}dSZSF*aj(@YmY?53?O$!}xiFpC?3Y_@-J&X1{n?uxW*thY z(qd!%aQd#DE!Pjm6Wf_;HNGsLSF+2n_1Jx;7c0{r)PKy~eu%Fx;v1*-;+}8?!;C4x zk_vGZ9=uwMmkJ1rKKLUfY_h;2AUaFwlCu)G`Yem&ro);ZQ9TStW+*AyrzV}8;3Af( z!lP7D{$!GmnI?;xla=PvDIupE4vB@Ptz0@Kx2NIhw1l=yx9PSTn$KotsBLuNcUb!J N*=+qc8(cUTtO3rXa9{uc literal 0 Hc-jL100001 diff --git a/doc/fr/images/button-show-next.gif b/doc/fr/images/button-show-next.gif new file mode 100644 index 0000000000000000000000000000000000000000..4817478fccca5307200a002fb6e3794c9341aac9 GIT binary patch literal 685 zc-nLKbhEHboXa4>&?3N)k!p~gWmQt_TvHR+(H=Q{YVxG1g{xL{Z`(Ha;Gs3gPVKmM z>F|U5*IvDR@ZsZ|zyE*#ClM(AlW;CdO;spJEK&%_$jr$sC`eUs&d*IsEoM;s$->CR zAi$u*00bcSFtGkpQ0Ws;WXM>xF6Z^W0-f_ExyzXx-#xDUe_%m@M+j%dBBw&lYJ>R! zVTsFoq5{vY)>^&S*L}Tv^3?~|&N!EBU%~h75Rdbz0~yEP*#D7Qv0YZtfWJhuFp`mz zkB^fvf<2XonSpvf+;^v6pVxGwp5zS?H;W{Vh)y<@WgGjVcVy)KYa+;&LDLgd4(g9eRn4lprr2c;GYa2{Y_-w?pE zz&$Ulxoe}*rW2n8T~DO2|I^y!uyoP_V|8XJ1FnD|SB9QRH91$NEqdlT&FI+H15X|_ zFuP5)d0TRFqWZLWUuWCDtxX4**ndYv9Mx*qJkMIh^M~1C0iWt}{p}8Gt4vo<&|%m4 zxTNEe(ybL~QXHi}wQk9>zh$A41) x`{(zM_6aK{?ce`jBEILq{dyK5i3fZiLG0!6H{ZT_{NdBPzyJUIClM(AlW;CdO;spJEK&%_$jr$sC`eUs&d*IsEoM;s$->CR zAi$u*00bcSFtGkpQ0Ws;WXM>xF6Z^W0-f_Ex%XE)O!!mr=)i&k51m^qwt)vvwAjwN zaLw3C`@^&=Z%kGP$)v?ypZ0rGUmX9jF2iM8Tl2LZY0q9Ai!=4^SQ z!G3Q7=VSXVZ{Bf!VBlk8Wd6S8-h)RLYnd;sn`0|-myKgb_y^fT_1w!$Y&169vGmqb zyLWo~`gm^P>$eyqKBRUv`!f7vv)J%O`G9)VC#eM@8zxQOQ+Xrp+LYEwN13NEOKtE` z6lV1maSc_m?c#qiWvQwBmKx6x^-IjQ@pq;uY0Yo;njf(9$c!efNbmD!*8P|wcC>+& zZ_`ha)n>Ujw&q%1bp8D%XV?B3+nuf2*98uGr}*#c?J7PqgDskIy{ptuf8QvFRbOqb>zPX{FF3zU6dqvDN?S{PjhklygEcV&W_*>-1(MoG`F4i5vzgr|Od}F%9 zT(bY4_=fUN?Hg6)zU$5`<9dFokzHWj)B~pT53Af=b#C32ywKXR?Po%> uq$V}6wkx!)SRkofqw%OyL(EZ$UvSxrN8Oex2bnz#u5m2p^K4;Yum%7L0$dLO literal 0 Hc-jL100001 diff --git a/doc/fr/images/button-sort-ascending.gif b/doc/fr/images/button-sort-ascending.gif new file mode 100644 index 0000000000000000000000000000000000000000..41db4f698e444af14c7efc9ec538f15c4e066da8 GIT binary patch literal 707 zc-nLKbhEHbT+1NB&?3N)k!p~gWmQt_R8t+$+LqAW89r%h!St!gt5^1H-?8w(!PUo3 zZohiz@bhPPKYV=i=il%DBm%{M63#`bsR{*&MG65KnK_vS1*rJ}fB@tk2G)NHDt!Tp3>mA|<-FckpmV+?_x_5234bac9avD{p>vMK_Ts@4Yiws- z(0F?w`Va?8=Es$}g}aS%daNcHN^ESuwed$|;Qj43|Ex~e7&ck`e#9lhT~yH2RH9qO zU!(6Kkd~EEtH~6@%+qhr&%sy1$i>IU#aJ-Qe=a{CN6gIG42+z!xff}#o6oU$&D{A5 zn;F=6`FXeP-G5MH>h#4&m>IIN45slL+d0uPhL?qriL>!ct_~*;6B7?-!6Swz z&!)Yy=ip(U%k}tk{RfS=&tIO=;NxMDNZ@xk(8#*I^!KtpxhA$faSFGD54-SW^l$h( zahg&CvqfHrMFd;I0r#}Le{NF2PnR)zGOD{y^7*Ks>N$B&z*&=ygymfQ3V|#Er5B}+ ziz)I)E`E`E){04@vudKLiIVZEpocoCA05PeMPpmNT7R8n;M&A^-fiow(3e534vW&h zTvB?_x$6I`dp45psVBGbOJPu_Hx8^x+W_@A&`BGXz_=^>vtKV@sA8uH> z=~r;$tk}+IOLxJ}fB@tk2G)NHDt!Tp3>mA|<-FckpmV+?_x_H634bac9avD{p(7RAH19+~&N(^P z6~$hx5*24wnW@T_1#+`|+$|gDu6r!`Y@TsM&hba#Y!e#qx9rf{v-nDGW4?}^E=yx0 zOMwOx7k5or-~{(NhW3t}E*(z+{f3Ta?O3KD<^~>neh$7AMlL=+E=G-2YZ%t?^Kk@i z4PfM4!@XI1$F89L2M?dvwPp3b^&1ZdvGeltR$sYRy)1jh*{i(FWjUEM_!qXY>QC>O zwMcV`1}_U^Z+}^_4(AFc9?mU48QutA=nr>b;bGemw4i^!ln95YR)U5>qH=>h+qd81 zoDI#)jBEjaBqlxDQ`Ps6LCfVr!!@hocM&rhK6dh2i3UmC-Sf0TOjeZd2&2S>%Y1Ve zXs~@)B-|GmxWH-ZDPgSz8bNd17mH0T@?BxW64#mgSFl0cH^87yD(ktDp97O=?6!&p zXLP3TD#~PSYA%nFjyk;K!5eMXb}|T+JmbAVv&@DA+qioFStxIp zHGH!7G2c=X^}eM042&|LEza<{EzDuy-V-ewH)r#dE7`_JFDO11;jzEDPSU^eb)(L? zqh*C`2QEb=C2>7jB=7Rz&vP!F>YDh#`?a!1zt3;p*l7Gf{L}3#PXc1swn90B}msf0wgxV@C`;E3?Tik?Weg5s`pZ~xAlL!?5NjMj!rYaO97AXW|WaeZR6r?IR=jSG+7BeXRWMSlD z5Ma<@00NME7+C))sPqXavN)_-m-BjGfzJ7oT;@iH34b*199U4`!NXOx$f@vTjBUsH zWor%ub1`$ZY>^Z#+phnLYNwvt>1c+PC z?MEA5Fxg;g3mUOwDe!6dk@ zAR)ljxn*BmYmDQ^gdSnWyP-O(Lzk(#dH9vw)%yI&+k3h}tc#*S@VRDpxzu}8UM^^4 zT;vwX*Sb+Rb#orC-mM-^hx^+!g4Mlh1&_WuASM%8vbTIHD`W32hq#)F$_jF}59jf| zm}WZ9j*)9a(9`myciyYYKX0oD&&%OE$RNVQQDD}Zbd2Nv&(?*91H9Qdf6O>kVv>GV zgjMb5C20{crgQb)?PAvguC3Qt?Y?}6OXqzTW1JfTAl4*H@E%c+XqW^+?5WoT=?)}{R;;nCI)K&G?^sv literal 0 Hc-jL100001 diff --git a/doc/fr/images/button-start-printer.gif b/doc/fr/images/button-start-printer.gif new file mode 100644 index 0000000000000000000000000000000000000000..cc0f3ddb532d263d8886e71046664eea5ab8e771 GIT binary patch literal 646 zc-nLKbhEHbT*e^6&?3OVFq45{9-r6}3DY%(;al8;cL(Pk&1*VSH|^@QWp|dZzrS|Z zqwQy2pT7F`;-k-x|NQ^`pG2VePr|t zK_qcGj~3s>g~3}>%QkO+`QodFy##waS0gL?_W19{ey=A6HZmSsI4wJ{q|T+$Ldl?z zol}#YkDrsVfvuO9nYEXPS%ZlymD`SglHY<}jh?;<42ug38YWJjI(_EKWgMETR<7fp zGA(`6?78z7&RCh&-P>=V+OEySw{#vO$JUixOpNS(*VuV9rZ8UYTFE*8@%d|)8lGye z*>UC8&Fgno&ST=vy}9R|U`)~DS)`MLDv#RYHYY*NV*SrwENdVh__lY-?}YWTPuntong7B0Se-ZSl&le=$~ zB_5C4dusVHzwK&Yudo&z5N=>(`q-q~V0++4~&g#|~Ib1j%!h9&~qfo|^0}g4)y8?v0X3u)c9JOLenA^r*j<3($*fqm#tw7U) z$Hfzz1q;J>ewJ*RciSS#V^`^m>#Y-3OxnA-CWK`y5A2Cds0&JqPy$uyt(f- zZ1{2M($B|_e!hA0@89qLBm%{M63#`bsR{*&MG65KnK_vS1*rJ}fB@tk2G)NHDt!WqEDo#I<-FckpmW|tmV;$wzth|Q2Nq0FyV1#Wc**;TDO%ZV zvY&Qx8AxcX3f{5w)FNfcM~xpe`Pf@mai{#hb5C4fEJI<#**^ku`J#$OtUL@ntl1pA zJ}I3HjGTOY+#38-{Q4$L((KOhW9H`L=eE_E&X>wCcmBe~P5fn=YuESoPmC;LG2&)t zVCT-Bx#9rFB1W#P721c@kIg!u?bpiKw@-)j26; zqQb}Bemo9=SsxEf+sCMQNPFprCkqbhG3dl*UGg}tva($3ny=Ol|AqTRcx&QRIKRv` zF=sJUGLdTVZLHCr$0Yje5nE53P6_W_s~iUg|GRG(U;LUXC9nR-X6MGTLrS;uvw}4~ zL>*|1*;RI2?*o^Z(mL_h2##B~R2der^Ta7JOg&Vv=!ku!MW^X8g|)$xC3mbk<6ZpV zTnDeI6_2D_pWTY!)zg?8U%k4%q45u+$nI@#rBs&Pxp&r@b%x-sYVP{K(e1Avo@hN| TrgW&~?2`*G9~cNRF<1it15g-f literal 0 Hc-jL100001 diff --git a/doc/fr/images/button-stop-printer.gif b/doc/fr/images/button-stop-printer.gif new file mode 100644 index 0000000000000000000000000000000000000000..f4eef6ecb27fdda792b96497ff33a535a45aaa5f GIT binary patch literal 635 zc-nLKbhEHboXQ}=&?3NamVx0sE9XUN$*ZdB=bcS%IoO|%bbk;L`J}Y;d0X4-dGp?{ zU;q8$#h;HK{e1oA@4w&wNd$`jB%F&`TUZ@h=4;A%X?M7esiq-ktgNmUT{$uWv0+r^w3_Z0s*YS*6;vdu0sf zY>W^qVQpe%X8Pb|XnOSSp6c2-+01FFY9+4@iM@NIpsT+@=Qq=j)z{^Gm<%KgqBpKs z*Tpc=J}fB@tk2G)NHDt!Tp3>mA|<-FckpmV-NmYa2D|MIv04=gB{A@s(DZPDw6DO&Rb zraMmWSvAL5$LsbMzU9g{93EB}@Y(5ISotmLw$Z)p2M!!eEUvq_8+OmHGjJ0y;Ns9_ z=H}<;wq@kxD~;yhO=H&RPvv5qJXJd?h}tE_d!1j`JoW1V)TVT=k9 zVhKJMcNl+sXES|W#*N zT#kUBvU?3bHJ_|MoOrS4nQNc@hI*DRTNjteTRXl!3p47t@b3PuMs~$O*Bu`p+aKuB f=-aciSnO2kojO0;^7qP0e?sreNgtmmz+epk6C5OZ literal 0 Hc-jL100001 diff --git a/doc/fr/images/button-use-default-config.gif b/doc/fr/images/button-use-default-config.gif new file mode 100644 index 0000000000000000000000000000000000000000..cfc56599e8cf1d2712038fa84b01c0897f820b21 GIT binary patch literal 880 zc-nLKbhEHbe8V8Z&?3N)k!p~gWmQt_TvHR!-X1k+O2PE0$!k{iZr{FO|AAGF|U5*IvDR@ZsZ|zyE*#ClM(AlW;CdO;spJEK&%_$jr$sC`eUs&d*IsEoM;s$->CR zAi$u*00bcSFtGkpQ0Ws;WXM>xF6Z^W0-f_Ex%Vs9?PhZPxA=0NhmKVL36&rQ5y>9@ z)R3E6Cd;nm2u1Hz;@$tez{{>^D}x(j>A7teH*bD4AxQh+;_%&Ps`?*l@-r6HHJHS3 zlr%P*w`w?6)#m8-Sx!xBnBF#VPOqVlfI&3_|I(V8Fn-=HMh-rHt{#5&IIUo2?xoyL zT5I|E)^P6U+_Z(Chk41eB^r#J{0C|#FFD4rW0(4}nsbMbhM%ZqUw=g7I{)sRt9#F1 zJiBf~^Q~(;pF70_e$rQ6H0ey^bN$qVv^awxogYJYog)d7AveCyk=HpT*9iddJ<1K1LK)n zPKMj&L~f}*VU{3Rp549c+Oihb30qfRU(pu1XY0`wkx8eEsi&_ypgVr>v?xv zniuuJC1XQqFoT}9)ahGAYdBX=d2#1U$xeaXm#O#melIzAYOPuO*|v!cXKWHCs0b(= zNONtN`Ab;xK}BFI^N}qw3`~Mc9Hb?9FDo$kn|wTSJHx4T3O5&z%!f;j-l7r@N{x9# zg$pe!PfTu;n753{H&}sXLBl29EsCvTTmeaSHVo?VS)$7d95j#mPV`D;uif0%De!lP za{M8N%V&)FConH6Ju7pAFKd-d<*bRCpI-DEFSYo&K=+Z!NseiI3oTU{j@?ico*A-k z(o$u+9Hr%A%sl4LgUizt4<%K8(`056`t&5-zFCgZOQTgy%6Y~{jaf4nJ5NwxTQVgq s>!n~tkHO2ObIM+2a?kvC;Q8_;(`G$i=-csN%E~p{xZL@DTNoIu0p}c%Z~y=R literal 0 Hc-jL100001 diff --git a/doc/fr/images/button-view-access-log.gif b/doc/fr/images/button-view-access-log.gif new file mode 100644 index 0000000000000000000000000000000000000000..195457d8f94d76fdcf5efb0e36f6a1d5627e92dd GIT binary patch literal 568 zc-nLKbhEHbEMpL1Xc1t@NHxgLvMMQdsi_HQX^rph44*zVdGgf4HLLozZJWRUz^Y>> zw_m$-_{EERA3nbM^Y8b65`p4B3Fo5JRE2`XB87mA%$&@Ef>Z_P{M@9}Vg|*ZER0+X z0t`9~Kmc+N1M5EpmA(K)hKyC~a$fH%&^f<8V8V}zOEvHRJ4{nhH)82u&0h4=_(6|} z>SWcqzl6HgUWU#st&P{_UHIeWj=cu{x_Qgn1R^4;GHj$c4kYXIs>twjGwLvM@$+%i z);BgYl$KX&GxJpQShw3W?nWVpqU zvW?}zq@a>(fg<+IETJD?uMkP)oWUzFLDV5Q?8G9!+(hSdZdPSBRkk@@v6~Bpl9?5>)c9hq=LpWM+WAMhu$Mqf@Y4q9oiAyLzC%fzo%jak3 b^Q@j{@a+1+bJE2n!uYII8?TZg1A{dHXgC2$ literal 0 Hc-jL100001 diff --git a/doc/fr/images/button-view-error-log.gif b/doc/fr/images/button-view-error-log.gif new file mode 100644 index 0000000000000000000000000000000000000000..8f699e0fd152df739ab3b4144d45c910f844de31 GIT binary patch literal 569 zc-nLKbhEHbtY;8mXc1t@NHxgLvMMchuBi#=XpfveHF@&X!ZoY{Foub(ErDzp}}xU^imrmjJQpPkox>U4&QT~oAzXL|RR8K@TM1oN>mGIP$;E&x@!$J)fZayiAj5c?FxsYzA1|y57@dp}1C4}A_61cKgkB?R9 z<>k702PSH?^D%d@|5>u(%Y!uvPHk&8 zl%77Jb40XQG3ZEjryiqK*{*B3)!SM5%sPaF1sj7mK0dB@XHTQg&QDxIfjZe`Yf@dF eon3IWZ_P{M@9}Vg|*ZER0+X z0t`9~Kmc+N1M5EpmA(K)hKyC~a$fH%&^f;`V8V}zOEvHRJ4{zlH)82u&0ZvF@}S2= zb+YQ*sPuCeS6e;)wdZ<)_x87qmFXL$3|bBxxa9o!q633mMW({T3LPdLMlOCnj;flv z28N=NGEa_Lt}bSt3LfjGmNt#*+Io$iQUlfe5Dh+dMrJOJ7!DrhrZw7})0w7ftl!AB zdBv*DTKwC1I5l`#7@4@ZHMTNs58Ab9`O4J>YD+zjaWEg$;=P;0r^EM)Y@3ty6C?a2OO^c;K))q4GmOpooK)Q!698Sj-8}t^+M=C9G;X zoD>|J-5;#6IMCI!*JVzj0vlLO zzXz(gE;M80Xb{cg+F9bzmUa8lu~~=pE*+6j=^*%8?{A#?iFyM zk8OX~`b`~OJ%ucWJnWhr+zgyN?OYXo+_rq|jLeq;&M`6ZaK>@Bb2e))eZ-3ql9C)6l@|nnD{?DXFA@) z%-^!eLBK0xTFCOGtV^sqMKQ}FqPN!Znm$|N^(x`-uO(|r6dbCXq6PQ49f^B%=%K=Q w<+PtgPtRpeSRk}_*H_6zw}AcU_F6Z*vFfXqU;n&+q9Dh~)$z@TJvbPw0om>)aR2}S literal 0 Hc-jL100001 diff --git a/doc/fr/index.html.in b/doc/fr/index.html.in new file mode 100644 index 000000000..255facd88 --- /dev/null +++ b/doc/fr/index.html.in @@ -0,0 +1,278 @@ + + + + + Accueil - CUPS @CUPS_VERSION@@CUPS_REVISION@ + + + + + + + + + + + + + + + + + + + + + + + +

Common UNIX Printing System @CUPS_VERSION@@CUPS_REVISION@

+ +  Accueil   + +   Administration   + +   Classes   + +   Documentation/Aide   + +   Tâches   + +   Imprimantes   + +
  + +

Bienvenue !

+ +

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.

+ +

+Aide +Ajouter une classe +Ajouter une imprimante +Administrer les classes +Administrer les tâches +Administrer les imprimantes +Administrer le serveur +

+ +

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".

+ +

À propos de CUPS

+ +

+Ordinateur content et imprimante + + + +CUPS propose une interface portable pour l'impression sur les systèmes +UNIX®. Ce logiciel est développé et maintenu par Easy Software +Products afin de promouvoir une solution standard pour l'impression. CUPS +est le système d'impression standard de MacOS® X et de la +plupart des distributions Linux®.

+ +

CUPS repose sur le protocole IPP ( Internet Printing Protocol ) 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 ).

+ +

Pilotes d'imprimante et Assistance

+ +

Visitez le site officiel de CUPS pour avoir des pilotes d'imprimante ou toute +autre assistance:

+ +
+    www.cups.org
+
+ +

Vous pouvez obtenir un suivi commercial et une version améliorée de CUPS, ESP Print Pro, à l'adresse suivante:

+ +
+    www.easysw.com
+
+ +
 
+ +

Le logiciel CUPS ( Common UNIX Printing System ) et son logo sont +propriété commerciale de Easy Software +Products. CUPS est sous copyright 1997-2006 par Easy Software Products, Tous +Droits Réservés.

+ +
+ + + + + + + Accueil - CUPS @CUPS_VERSION@@CUPS_REVISION@ + + + + + + + + + + + + + + + + + + + + + + + +

Common UNIX Printing System @CUPS_VERSION@@CUPS_REVISION@

+ +  Accueil   + +   Administration   + +   Classes   + +   Documentation/Aide   + +   Tâches   + +   Imprimantes   + +
  + +

Bienvenue !

+ +

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.

+ +

+Aide +Ajouter une classe +Ajouter une imprimante +Administrer les classes +Administrer les tâches +Administrer les imprimantes +Administrer le serveur +

+ +

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".

+ +

À propos de CUPS

+ +

+Ordinateur content et imprimante + + + +CUPS propose une interface portable pour l'impression sur les systèmes +UNIX®. Ce logiciel est développé et maintenu par Easy Software +Products afin de promouvoir une solution standard pour l'impression. CUPS +est le système d'impression standard de MacOS® X et de la +plupart des distributions Linux®.

+ +

CUPS repose sur le protocole IPP ( Internet Printing Protocol ) 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 ).

+ +

Pilotes d'imprimante et Assistance

+ +

Visitez le site officiel de CUPS pour avoir des pilotes d'imprimante ou toute +autre assistance:

+ +
+    www.cups.org
+
+ +

Vous pouvez obtenir un suivi commercial et une version améliorée de CUPS, ESP Print Pro, à l'adresse suivante:

+ +
+    www.easysw.com
+
+ +
 
+ +

Le logiciel CUPS ( Common UNIX Printing System ) et son logo sont +propriété commerciale de Easy Software +Products. CUPS est sous copyright 1997-2006 par Easy Software Products, Tous +Droits Réservés.

+ +
+ + diff --git a/doc/help/api-raster.html b/doc/help/api-raster.html index 100a3d82f..26ea439f4 100644 --- a/doc/help/api-raster.html +++ b/doc/help/api-raster.html @@ -87,18 +87,11 @@ information.

cups_adv_e

Description

-

+

AdvanceMedia attribute values

Values

@@ -121,125 +114,6 @@ information.

NameDescription
CUPS_TRUE Logical true
-

cups_cspace_e

-

Description

-

-

Values

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescription
CUPS_CSPACE_CIELab  CUPS 1.1.19 CIE Lab
CUPS_CSPACE_CIEXYZ  CUPS 1.1.19 CIE XYZ
CUPS_CSPACE_CMY Cyan, magenta, yellow
CUPS_CSPACE_CMYK Cyan, magenta, yellow, black
CUPS_CSPACE_GMCK Gold, magenta, yellow, black
CUPS_CSPACE_GMCS Gold, magenta, yellow, silver
CUPS_CSPACE_GOLD Gold foil
CUPS_CSPACE_ICC1  CUPS 1.1.19 ICC-based, 1 color
CUPS_CSPACE_ICC2  CUPS 1.1.19 ICC-based, 2 colors
CUPS_CSPACE_ICC3  CUPS 1.1.19 ICC-based, 3 colors
CUPS_CSPACE_ICC4  CUPS 1.1.19 ICC-based, 4 colors
CUPS_CSPACE_ICC5  CUPS 1.1.19 ICC-based, 5 colors
CUPS_CSPACE_ICC6  CUPS 1.1.19 ICC-based, 6 colors
CUPS_CSPACE_ICC7  CUPS 1.1.19 ICC-based, 7 colors
CUPS_CSPACE_ICC8  CUPS 1.1.19 ICC-based, 8 colors
CUPS_CSPACE_ICC9  CUPS 1.1.19 ICC-based, 9 colors
CUPS_CSPACE_ICCA  CUPS 1.1.19 ICC-based, 10 colors
CUPS_CSPACE_ICCB  CUPS 1.1.19 ICC-based, 11 colors
CUPS_CSPACE_ICCC  CUPS 1.1.19 ICC-based, 12 colors
CUPS_CSPACE_ICCD  CUPS 1.1.19 ICC-based, 13 colors
CUPS_CSPACE_ICCE  CUPS 1.1.19 ICC-based, 14 colors
CUPS_CSPACE_ICCF  CUPS 1.1.19 ICC-based, 15 colors
CUPS_CSPACE_K Black
CUPS_CSPACE_KCMY Black, cyan, magenta, yellow
CUPS_CSPACE_KCMYcm Black, cyan, magenta, yellow, * -light-cyan, light-magenta
CUPS_CSPACE_RGB Red, green, blue
CUPS_CSPACE_RGBA Red, green, blue, alpha
CUPS_CSPACE_RGBW  CUPS 1.2 Red, green, blue, white
CUPS_CSPACE_SILVER Silver foil
CUPS_CSPACE_W Luminance
CUPS_CSPACE_WHITE White ink (as black)
CUPS_CSPACE_YMC Yellow, magenta, cyan
CUPS_CSPACE_YMCK Yellow, magenta, cyan, black
- -

cups_cut_e

-

Description

-

-

Values

-
- - - - - - - -
NameDescription
CUPS_CUT_FILE Cut the roll after this file
CUPS_CUT_JOB Cut the roll after this job
CUPS_CUT_NONE Never cut the roll
CUPS_CUT_PAGE Cut the roll after this page
CUPS_CUT_SET Cut the roll after this set
- -

cups_edge_e

-

Description

-

-

Values

-
- - - - - - -
NameDescription
CUPS_EDGE_BOTTOM Leading edge is the bottom of the page
CUPS_EDGE_LEFT Leading edge is the left of the page
CUPS_EDGE_RIGHT Leading edge is the right of the page
CUPS_EDGE_TOP Leading edge is the top of the page
- -

cups_jog_e

-

Description

-

-

Values

-
- - - - - - -
NameDescription
CUPS_JOG_FILE Move pages after this file
CUPS_JOG_JOB Move pages after this job
CUPS_JOG_NONE Never move pages
CUPS_JOG_SET Move pages after this set
- -

cups_mode_e

-

Description

-

Raster modes

-

Values

-
- - - - -
NameDescription
CUPS_RASTER_READ Open stream for reading
CUPS_RASTER_WRITE Open stream for writing
- -

cups_order_e

-

Description

-

-

Values

-
- - - - - -
NameDescription
CUPS_ORDER_BANDED CCC MMM YYY KKK ...
CUPS_ORDER_CHUNKED CMYK CMYK CMYK ...
CUPS_ORDER_PLANAR CCC ... MMM ... YYY ... KKK ...
- -

cups_orient_e

-

Description

-

-

Values

-
- - - - - - -
NameDescription
CUPS_ORIENT_0 Don't rotate the page
CUPS_ORIENT_180 Turn the page upside down
CUPS_ORIENT_270 Rotate the page clockwise
CUPS_ORIENT_90 Rotate the page counter-clockwise
-

Functions

  • cupsRasterClose()
  • @@ -286,6 +160,10 @@ can make changes to the cups_page_header2_t data as needed to use a 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. +

    Syntax

    @@ -585,7 +463,7 @@ factor not applied) 
     
     

    cups_page_header_s

    Description

    -

    +

    Version 1 Page Header

    Definition

     struct cups_page_header_s
    @@ -680,6 +558,7 @@ struct cups_page_header_s
     
     
    @@ -699,6 +578,14 @@ typedef int (*cups_interpret_cb_t)(cups_page_head
     typedef struct cups_page_header2_s cups_page_header2_t;
     
    +

    cups_page_header_t

    +

    Description

    +

    Version 1 Page Header

    +

    Definition

    +
    +typedef struct cups_page_header_s cups_page_header_t;
    +
    +

    cups_raster_t

    Description

    Raster stream data

    diff --git a/doc/help/license.html b/doc/help/license.html index 5b3a25713..224a39386 100644 --- a/doc/help/license.html +++ b/doc/help/license.html @@ -5,7 +5,7 @@ -

    Copyright 1997-2006 by Easy Software Products
    +

    Copyright 1997-2007 by Easy Software Products
    44141 AIRPORT VIEW DR STE 204
    HOLLYWOOD, MARYLAND 20636 USA

    diff --git a/doc/help/network.html b/doc/help/network.html index 4ae55a54f..e2cc36183 100644 --- a/doc/help/network.html +++ b/doc/help/network.html @@ -5,16 +5,267 @@ -

    Network Printer URIs

    +

    This help document describes how to discover, configure, and use TCP/IP network printers with CUPS.

    -

    Once you have set the IP address you can access the printer or -print server using the ipp, lpd, or -socket backends. The following is a list of common -network interfaces and printer servers and the settings you -should use with CUPS:

    +

    Getting the IP Address

    + +

    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 Boot Protocol (BOOTP), Dynamic Host Control Protocol (DHCP), Reverse Address Resolution Protocol (RARP), or ZeroConf.

    + +

    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 Simple Network Management Protocol (SNMP) 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.

    + + +

    Configuring the IP Address

    + +

    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.

    + +

    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.

    + +

    Configuring the IP Address Using DHCP

    + +

    The DHCP protocol is the usual way of setting the IP address of a printer on a managed network. Using the standard dhcpd(8) program supplied with UNIX you simply need to add a line to the /etc/dhcpd.conf file:

    + +
    +host hostname {
    +  hardware ethernet mac-address;
    +  fixed-address ip-address;
    +}
    +
    + +

    Make sure that the hostname you use is also listed in the /etc/hosts file or is registered with your DNS server.

    + +

    Configuring the IP Address Using BOOTP

    + +

    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 bootpd(8) program supplied with UNIX you simply need to add a line to the /etc/bootptab file; for IRIX:

    + +
    +myprinter 08:00:69:00:12:34 192.0.2.2 myprinter.boot
    +
    + +

    Newer versions of bootpd use a different format:

    + +
    +myprinter:ha=080069001234:ip=192.0.2.2:t144=myprinter.boot
    +
    + +

    The myprinter.boot file resides in the /usr/local/boot directory by default. If you do not need to provide a boot file you may leave the last part of the line blank.

    + +
    Note: Some versions of UNIX do not enable the BOOTP service by default. The /etc/inetd.conf or /etc/xinetd.d/bootp file usually contains a line for the BOOTP service that can be uncommented if needed.
    + + +

    Verifying the Printer Connection

    + +

    To test that the IP address has been successfully assigned and +that the printer is properly connected to your LAN, type:

    + +
    +ping ip-address
    +
    + +

    If the connection is working properly you will see something +like:

    + +
    +ping myprinter
    +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
    +
    + +

    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.

    + + +

    Network Protocols Supported by CUPS

    + +

    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.

    + +

    AppSocket Protocol

    + +

    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 socket URI scheme:

    + +
    +socket://ip-address-or-hostname
    +socket://ip-address-or-hostname?waiteof=false
    +socket://ip-address-or-hostname:port-number
    +socket://ip-address-or-hostname:port-number?waiteof=false
    +
    + +

    The "waiteof" option controls whether the socket backend waits for the printer to complete the printing of the job. The default is to wait.

    + +

    Internet Printing Protocol (IPP)

    + +

    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 http and ipp URI schemes:

    + +
    +http://ip-address-or-hostname:port-number/resource
    +http://ip-address-or-hostname:port-number/resource?option=value
    +http://ip-address-or-hostname:port-number/resource?option=value&option=value
    +ipp://ip-address-or-hostname/resource
    +ipp://ip-address-or-hostname/resource?option=value
    +ipp://ip-address-or-hostname/resource?option=value&option=value
    +ipp://ip-address-or-hostname:port-number/resource
    +ipp://ip-address-or-hostname:port-number/resource?option=value
    +ipp://ip-address-or-hostname:port-number/resource?option=value&option=value
    +
    + +

    The ipp backend supports many options, which are summarized in Table 2.

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Table 2: IPP URI Options
    OptionDescription
    compression=gzipSpecifies that print data should be compressed before sending.
    encryption=alwaysSpecifies that the connection to the IPP server should be encrypted using SSL.
    encryption=ifrequestedSpecifies that the connection to the IPP server should only be encrypted if the server requests it.
    encryption=neverSpecifies that the connection to the IPP server should not be encrypted.
    encryption=requiredSpecifies that the connection to the IPP server should be encrypted using TLS.
    version=1.0Specifies that version 1.0 of the IPP protocol should be used instead of the default version 1.1.
    waitjob=falseSpecifies that the IPP backend should not wait for the job to complete.
    waitprinter=falseSpecifies that the IPP backend should not wait for the printer to become idle before sending the print job.
    + +

    Line Printer Daemon (LPD) Protocol

    + +

    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 lpd URI scheme:

    + +
    +lpd://ip-address-or-hostname/queue
    +lpd://ip-address-or-hostname/queue?option=value
    +lpd://ip-address-or-hostname/queue?option=value&option=value
    +
    + +

    Table 3 summarizes the options supported by the lpd backend.

    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Table 3: LPD URI Options
    OptionDescription
    banner=onSpecifies that a banner page should be printed by the server.
    contimeout=secondsSpecifies the number of seconds to wait for the connection to the server to complete.
    format=cSpecifies that the print data is a CIF file.
    format=dSpecifies that the print data is a DVI file.
    format=fSpecifies that the print data is a plain text file.
    format=gSpecifies that the print data is a Berkeley plot file.
    format=lSpecifies that the print data is a raw (preformatted) print file.
    format=nSpecifies that the print data is a ditroff file.
    format=oSpecifies that the print data is a PostScript file.
    format=pSpecifies that the print data is a plain text file that should be "pretty" printed with a header and footer.
    format=rSpecifies that the print data is a FORTRAN carriage control file.
    format=tSpecifies that the print data is a troff Graphic Systems C/A/T phototypesetter file.
    format=vSpecifies that the print data is a Sun raster file.
    order=data,controlSpecifies that the print data files should be sent before the control file.
    reserve=noneSpecifies that the backend should not reserve a source port.
    reserve=rfc1179Specifies that the backend should reserve a source port from 721 to 731 as required by RFC 1179.
    sanitize_title=noSpecifies that the job title string should not be restricted to ASCII characters.
    sanitize_title=yesSpecifies that the job title string should be restricted to ASCII characters.
    timeout=secondsSpecifies the number of seconds to wait for LPD commands to complete.
    + + +

    Common Network Printer URIs

    + +

    Once you have set the IP address you can access the printer or print server using the ipp, lpd, or socket backends. Table 1 shows a list of common network interfaces and printer servers and the settings you should use with CUPS:

    - + @@ -131,152 +382,155 @@ should use with CUPS:

    Table 1: Common Device URIsTable 1: Common Device URIs
    Model/Manufacturer
    -

    Getting the IP Address

    -

    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.

    - -

    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.

    - -

    Configuring the IP Address Using ARP

    - -

    The easiest way to set the IP address of a network device is -to use the arp(8) command. The arp -sends an Address Resolution Protocol ("ARP") packet to the -specified Ethernet MAC address, setting the network device's IP -address:

    +

    Troubleshooting SNMP Discovery Problems

    + +

    Whenever you view the administration web page or a list of supported device URIs, the snmp 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.

    + +

    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.

    + +

    Quick Fixes

    + +

    If you don't use "public" as your community name, create a text file called /etc/cups/snmp.conf and put the following line in it:

    -arp -s ip-address ethernet-address
    -arp -s host.domain.com 08:00:69:00:12:34
    -arp -s 192.0.2.2 08:00:69:00:12:34
    +Community your community name
     
    -

    Configuring the IP Address Using RARP

    +

    If you have more than one community name, list them all on separate lines.

    -

    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.

    +

    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 SNMP enhancement request with specific 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.

    -

    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 arp command is -the way to go.

    +

    Basic Debugging

    -

    Some UNIX operating systems use a program called -rarpd(8) to manage RARP. Others, like Linux, support -this protocol in the kernel. For systems that provide the -rarpd program you will need to start it before RARP -lookups will work:

    +

    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:

    -rarpd
    +CUPS_DEBUG_LEVEL=2 /usr/lib/cups/backend/snmp 2>&1 | tee snmp.log
     
    -

    Under IRIX you can enable this functionality by default -using:

    +

    For C shell (/bin/csh) and TCsh (/bin/tcsh), use the following command instead:

    -chkconfig rarpd on
    +(setenv CUPS_DEBUG_LEVEL 2; /usr/lib/cups/backend/snmp) |& tee snmp.log
     
    -

    Both the rarpd program and kernel RARP support -read a list of Ethernet and IP addresses from the file -/etc/ethers. Each line contains the Ethernet address -(colon delimited) followed by an IP address or hostname like:

    +

    On MacOS X you'll find the SNMP backend in /usr/libexec/cups/backend instead:

    -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
     
    -

    Add a line to this file and cycle the power on the printer or -print server to set its address.

    - -

    Configuring the IP Address Using BOOTP

    - -

    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 bootpd(8) -program supplied with UNIX you simply need to add a line to the -/etc/bootptab file; for IRIX:

    - -
    -myprinter 08:00:69:00:12:34 192.0.2.2 myprinter.boot
    +

    The output will look something like this:

    + +
    + 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" ""
     
    -

    Newer versions of bootpd use a different -format:

    +

    Dissecting the Output

    -
    -myprinter:ha=080069001234:ip=192.0.2.2:t144=myprinter.boot
    -
    +

    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.

    -

    The myprinter.boot file resides in the -/usr/local/boot directory by default. If you do not -need to provide a boot file you may leave the last part of the -line blank.

    +

    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.

    -
    Note: +

    Lines 44-58 show the response to the device description query, which tells us that this is an HP LaserJet 4000 Series printer.

    -

    Some versions of UNIX do not enable the BOOTP service by -default. The /etc/inetd.conf usually contains a line -for the BOOTP service that can be uncommented if needed.

    +

    On line 59 we start our active connection probe and discover that this print server supports the AppSocket (JetDirect) protocol on port 9100.

    -
    +

    Finally, line 63 shows the device information line for the print server that is sent to CUPS.

    -

    Verifying the Printer Connection

    +

    Reporting Problems

    -

    To test that the IP address has been successfully assigned and -that the printer is properly connected to your LAN, type:

    +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:
    -ping ip-address
    +snmpwalk -Cc -v 1 -c public ip-address | tee snmpwalk.log
     
    -

    If the connection is working properly you will see something -like:

    +

    where "ip-address" is the IP address of the printer or print server. You should see a lot of values stream by - the ones you want to see are:

    -
    -ping myprinter
    -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
    +
    +HOST-RESOURCES-MIB::hrDeviceType.1 = OID: HOST-RESOURCES-TYPES::hrDevicePrinter
    +HOST-RESOURCES-MIB::hrDeviceDescr.1 = STRING: HP LaserJet 4000 Series
     
    -

    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.

    +

    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".

    + +

    Once you have collected the snmpwalk output, you should go to the CUPS Bugs & Features page 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.

    + + +

    Configuring Print Servers

    -

    Configuring Axis Print Servers

    +

    Configuring Axis Print Servers

    -

    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.

    +

    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.

    -

    Each print server contains a configuration file named -config 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 ftp(1) program:

    +

    Each print server contains a configuration file named config 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 ftp(1) program:

     ftp ip-address
    @@ -297,8 +551,7 @@ ftp> quit
     221 Goodbye.
     
    -

    Next, edit the file with your favorite text editor and locate -the lines beginning with:

    +

    Next, edit the file with your favorite text editor and locate the lines beginning with:

     RTN_OPT.     : YES
    @@ -312,16 +565,13 @@ RTEL_PR7.    : 0
     RTEL_PR8.    : 0
     
    -

    Change the RTN_OPT line to read:

    +

    Change the RTN_OPT line to read:

     RTN_OPT.     : NO
     
    -

    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:

    +

    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:

     RTEL_PR1.    : 9100
    @@ -334,10 +584,7 @@ RTEL_PR7.    : 9106
     RTEL_PR8.    : 9107
     
    -

    This essentially makes the Axis print server look like a -Hewlett Packard JetDirect EX print server. Save the file and then -upload the new config file using the ftp -command:

    +

    This essentially makes the Axis print server look like a Hewlett Packard JetDirect EX print server. Save the file and then upload the new config file using the ftp command:

     ftp ip-address
    @@ -363,17 +610,11 @@ ftp> quit
     
     

    Your Axis print server is now ready for use!

    -

    Configuring Linksys Print Servers

    +

    Configuring Linksys Print Servers

    -

    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.

    +

    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.

    -

    Each print server contains a configuration file named -CONFIG 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 ftp(1) program:

    +

    Each print server contains a configuration file named CONFIG 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 ftp(1) program:

     ftp -n ip-address
    @@ -392,8 +633,7 @@ ftp> quit
     221 Goodbye.
     
    -

    Next, edit the file with your favorite text editor and locate -the lines beginning with:

    +

    Next, edit the file with your favorite text editor and locate the lines beginning with:

     0100 L1_PROUT:P1
    @@ -401,8 +641,7 @@ the lines beginning with:

    0140 L3_PROUT:P1
    -

    Change the port number for each parallel and serial port on -the server as follows:

    +

    Change the port number for each parallel and serial port on the server as follows:

     0100 L1_PROUT:P1
    @@ -410,9 +649,7 @@ the server as follows:

    0140 L3_PROUT:P3
    -

    This maps each virtual printer with a physical port. Save the -file and then upload the new CONFIG file using the -ftp command:

    +

    This maps each virtual printer with a physical port. Save the file and then upload the new CONFIG file using the ftp command:

     ftp -n ip-address
    diff --git a/doc/help/options.html b/doc/help/options.html
    index 8602247eb..e9311856c 100644
    --- a/doc/help/options.html
    +++ b/doc/help/options.html
    @@ -99,7 +99,12 @@ lpr -o landscape -o scaling=75 -o media=A4 filename.jpg
     

    The available printer options vary depending on the printer. The standard options are described in the "Standard Printing Options" section -below.

    +below. Printer-specific options are also available and can be +listed using the lpoptions command:

    + +
    +lpoptions -p printer -l
    +

    Printing Multiple Copies

    @@ -196,6 +201,18 @@ file in the PageSize, InputSlot, and lpoptions -p printer -l
    +

    When Custom is listed for the PageSize option, you can specify custom media sizes using one of the following forms:

    + +
    +lp -o media=Custom.WIDTHxLENGTH filename
    +lp -o media=Custom.WIDTHxLENGTHin filename
    +lp -o media=Custom.WIDTHxLENGTHcm filename
    +lp -o media=Custom.WIDTHxLENGTHmm filename
    +
    + +

    where "WIDTH" and "LENGTH" are the width and length of the media in points, inches, centimeters, or millimeters, respectively.

    + +

    Setting the Orientation

    The -o landscape option will rotate the page 90 @@ -290,6 +307,12 @@ configuration; CUPS includes the following banner files:

+ +

Specifying the Output Order

+ +

The -o outputorder=normal and -o outputorder=reverse 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.

+ +

Selecting a Range of Pages

The -o page-ranges=pages option selects a range diff --git a/doc/help/ref-cupsd-conf.html b/doc/help/ref-cupsd-conf.html index 03cc62f62..ff8058cd5 100644 --- a/doc/help/ref-cupsd-conf.html +++ b/doc/help/ref-cupsd-conf.html @@ -2479,7 +2479,7 @@ encrypted connections.

/etc/cups/ssl/server.crt.

-

ServerName

+

ServerName

Examples

diff --git a/doc/help/spec-ppd.html b/doc/help/spec-ppd.html index 089aef83d..4e5569a04 100644 --- a/doc/help/spec-ppd.html +++ b/doc/help/spec-ppd.html @@ -8,7 +8,7 @@ - -<!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 -- - > - - - - -

CUPS PostScript File

- -

CUPS PostScript files are device-dependent Adobe PostScript program files. -The PostScript language is described in the - -Adobe PostScript Language Reference Manual, Third Edition. - -

The MIME type for CUPS PostScript files is -application/vnd.cups-postscript. - -

CUPS Raster File

- -

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. - -

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. - -

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. - -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
BytesDescriptionValues
0-63MediaClassNul-terminated ASCII string
64-127MediaColorNul-terminated ASCII string
128-191MediaTypeNul-terminated ASCII string
192-255OutputTypeNul-terminated ASCII string
256-259AdvanceDistance0 to 232 - 1 points
260-263AdvanceMedia0 = Never advance roll
- 1 = Advance roll after file
- 2 = Advance roll after job
- 3 = Advance roll after set
- 4 = Advance roll after page
264-267Collate0 = do not collate copies
- 1 = collate copies
268-271CutMedia0 = Never cut media
- 1 = Cut roll after file
- 2 = Cut roll after job
- 3 = Cut roll after set
- 4 = Cut roll after page
272-275Duplex0 = Print single-sided
- 1 = Print double-sided
276-283HWResolutionHorizontal and vertical resolution in dots-per-inch.
284-299ImagingBoundingBoxFour integers giving the left, bottom, right, and top positions - of the page bounding box in points
300-303InsertSheet0 = Do not insert separator sheets
- 1 = Insert separator sheets
304-307Jog0 = Do no jog pages
- 1 = Jog pages after file
- 2 = Jog pages after job
- 3 = Jog pages after set
308-311LeadingEdge0 = Top edge is first
- 1 = Right edge is first
- 2 = Bottom edge is first
- 3 = Left edge is first
312-319MarginsLeft and bottom origin of image in points
320-323ManualFeed0 = Do not manually feed media
- 1 = Manually feed media
324-327MediaPositionInput slot position from 0 to N
328-331MediaWeightMedia weight in grams per meter squared
332-335MirrorPrint0 = Do not mirror prints
- 1 = Mirror prints
336-339NegativePrint0 = Do not invert prints
- 1 = Invert prints
340-343NumCopies1 to 232 - 1
344-347Orientation0 = Do not rotate page
- 1 = Rotate page counter-clockwise
- 2 = Turn page upside down
- 3 = Rotate page clockwise
348-351OutputFaceUp0 = Output face down
- 1 = Output face up
352-359PageSizeWidth and length in points
360-363Separations0 = Print composite image
- 1 = Print color separations
364-367TraySwitch0 = Do not change trays if selected tray is empty
- 1 = Change trays if selected tray is empty
368-371Tumble0 = Do not rotate even pages when duplexing
- 1 = Rotate even pages when duplexing
372-375cupsWidthWidth of page image in pixels
376-379cupsHeightHeight of page image in pixels
380-383cupsMediaTypeDriver-specific 0 to 232 - 1
384-387cupsBitsPerColor1, 2, 4, 8 bits
388-391cupsBitsPerPixel1 to 32 bits
392-395cupsBytesPerLine1 to 232 - 1 bytes
396-399cupsColorOrder0 = chunky pixels (CMYK CMYK CMYK)
- 1 = banded pixels (CCC MMM YYY KKK)
- 2 = planar pixels (CCC... MMM... YYY... KKK...)
400-403cupsColorSpace0 = white
- 1 = RGB
- 2 = RGBA
- 3 = black
- 4 = CMY
- 5 = YMC
- 6 = CMYK
- 7 = YMCK
- 8 = KCMY
- 9 = KCMYcm
404-407cupsCompressionDriver-specific 0 to 232 - 1
408-411cupsRowCountDriver-specific 0 to 232 - 1
412-415cupsRowFeedDriver-specific 0 to 232 - 1
416-419cupsRowStepDriver-specific 0 to 232 - 1
- -

The MIME type for CUPS Raster files is -application/vnd.cups-raster. - -

CUPS Raw Files

- -

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 application/vnd.cups-raw. - -

Internet Printing Protocol

- -

The Internet Printing Protocol and the CUPS extensions to it are -described in the CUPS Implementation of IPP document. - -

Line Printer Daemon Protocol

- -

The Line Printer Daemon (LPD) protocol is described by -RFC 1179: Line Printer Daemon -Protocol. - -

The URI method name for LPD is "lpd". - -

Server Message Block Protocol

- -

The Server Message Block (SMB) and related Common Internet File -System (CIFS) protocols are described at -http://anu.samba.org/cifs. - -

The URI method name for SMB is "smb". Support for this protocol is -provided via the SAMBA smbspool(1) program provided with -SAMBA 2.0.6 and higher. - -

Directories

- -
- -
/etc/cups -
The scheduler configuration and MIME files reside here. - -
/etc/cups/certs -
The authentication certificates reside here. - -
/etc/cups/interfaces -
System V interface scripts reside here. - -
/etc/cups/ppd -
This directory contains PPD files for each printer. - -
/usr/bin -
The cancel, lp, lpq, - lpr, lprm, and lpstat commands - reside here. - -
/usr/lib, /usr/lib32 -
The shared libraries (DSOs) reside here. - -
/usr/lib/cups/backend -
The backend filters reside here. - -
/usr/lib/cups/cgi-bin -
The CGI programs reside here. - -
/usr/lib/cups/daemon -
The polling and LPD daemons reside here. - -
/usr/lib/cups/filter -
The file filters reside here. - -
/usr/sbin -
The accept, cupsd, - lpadmin, lpc, and reject - commands reside here. - -
/usr/share/cups -
This is the root directory of the CUPS static data. - -
/usr/share/cups/charsets -
The character set files reside here. - -
/usr/share/cups/data -
The filter data files reside here. - -
/usr/share/cups/fonts -
The pstoraster font files reside here. - -
/usr/share/cups/model -
The sample PPD files reside here. - -
/usr/share/cups/pstoraster -
The pstoraster data files reside here. - -
/usr/share/doc/cups -
The scheduler documentation files reside here. - -
/var/log/cups -
The access_log, error_log, and - page_log files reside here. - -
/var/spool/cups -
This directory contains print job files. - -
- - - - - diff --git a/doc/index.html.in b/doc/index.html.in index b1bf01445..0e28904e7 100644 --- a/doc/index.html.in +++ b/doc/index.html.in @@ -128,7 +128,7 @@ WIDTH="15" HEIGHT="15" ALT="">

The Common UNIX Printing System, CUPS, and the CUPS logo are the trademark property of Easy Software -Products. CUPS is copyright 1997-2006 by Easy Software Products, +Products. CUPS is copyright 1997-2007 by Easy Software Products, All Rights Reserved.

diff --git a/doc/it/index.html.in b/doc/it/index.html.in index a501ee4d1..d5540de8a 100644 --- a/doc/it/index.html.in +++ b/doc/it/index.html.in @@ -125,7 +125,7 @@ WIDTH="15" HEIGHT="15" ALT="">

Common UNIX Printing System, CUPS, e il logo CUPS sono marchi registrati da Easy Software -Products. CUPS è un copyright 1997-2006 di Easy Software Products, +Products. CUPS è un copyright 1997-2007 di Easy Software Products, Tutti i diritti sono riservati.

diff --git a/doc/ja/index.html.in b/doc/ja/index.html.in index b87c016e5..13ce30622 100644 --- a/doc/ja/index.html.in +++ b/doc/ja/index.html.in @@ -128,7 +128,7 @@ WIDTH="15" HEIGHT="15" ALT="">

The Common UNIX Printing System, CUPS, and the CUPS logo are the trademark property of Easy Software -Products. CUPS is copyright 1997-2006 by Easy Software Products, +Products. CUPS is copyright 1997-2007 by Easy Software Products, All Rights Reserved.

diff --git a/doc/pl/index.html.in b/doc/pl/index.html.in index 9d29d9ca4..6453c16fd 100644 --- a/doc/pl/index.html.in +++ b/doc/pl/index.html.in @@ -128,7 +128,7 @@ WIDTH="15" HEIGHT="15" ALT="">

Common UNIX Printing System, CUPS i logo CUPS są zarejestrowanymi znakami towarowymi Easy Software -Products. Copyright 1997-2006 Easy Software Products, +Products. Copyright 1997-2007 Easy Software Products, wszelkie prawa zastrzeżone.

diff --git a/doc/sdd.shtml b/doc/sdd.shtml deleted file mode 100644 index f09077c10..000000000 --- a/doc/sdd.shtml +++ /dev/null @@ -1,564 +0,0 @@ - - - - - - CUPS Software Design Description - - - -

Scope

- -

Identification

- -This software design description document provides general information -on the architecture and coding of the Common UNIX Printing System -("CUPS") Version 1.2. - - - -

Document Overview

- -This software design description document is organized into the -following sections: - -
    - -
  • 1 - Scope - -
  • 2 - References - -
  • 3 - Design Overview - -
  • A - Glossary - -
- - - -

Design Overview

- -CUPS is composed of 9 software sub-systems that operate together to -perform common printing tasks: - -
    - -
  • Backends - -
  • Berkeley Commands - -
  • CGI - -
  • CUPS Application Programmers Interface - -
  • CUPS Imaging Library - -
  • Daemons - -
  • Filters - -
  • Scheduler - -
  • System V Commands - -
- -

Backends

- -The backends implement communications over a number of different interfaces. -All backends are called with a common set of arguments: - -
    - -
  • Device URI - the Uniform Resource Identifier for the output device - (e.g. parallel:/dev/plp, - ipp://hostname/resource). - -
  • Job Identifier - the job identifier for this job (integer). - -
  • User Name - the user associated with this job (name string). - -
  • Title - the title/job-name associated with this job (name string). - -
  • Copies - the number of copies required (integer). - -
  • Options - the options associated with this job (space separated - option strings). - -
  • Filename (optional) - the file to print; if this option is not - specified, the backend must read the print file from the standard - input. - -
- -

Backends are named using the scheme of the URI, so a URI of -"ipp://hostname/resource" would be processed by the "ipp" backend. - -

ipp

- -

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 -printer-uri-supported attribute from the printer or host. - -

lpd

- -

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: - -

    lpd://hostname/queue
    -
- -

parallel

- -

The parallel backend sends the specified job to a local printer connected -via the specified parallel port device. The URI is of the form: - -

    parallel:/dev/file
    -
- -

serial

- -

The serial backend sends the specified job to a local printer connected -via the specified serial port device. The URI is of the form: - -

    serial:/dev/file?option[+option+...]
    -
- -The options can be any combination of the following: - -
    - -
  • baud=rate - Sets the baud rate for the device. - -
  • bits=7 or 8 - Sets the number of data bits. - -
  • parity=even - Sets even parity checking. - -
  • parity=odd - Sets odd parity checking. - -
  • parity=none - Turns parity checking off. - -
  • flow=dtrdsr - Turns DTR/DSR (hardware) flow - control on. - -
  • flow=hard - Turns RTS/CTS - (hardware) flow control on. - -
  • flow=none - Turns flow control off. - -
  • flow=rtscts - Turns RTS/CTS - (hardware) flow control on. - -
  • flow=xonxoff - Turns XON/XOFF - (software) flow control on. - -
- -

socket

- -

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: - -

    socket://hostname[:port]
    -
- -The default port number is 9100. - -

usb

- -

The usb backend sends the specified job to a local printer connected -via the specified usb port device. The URI is of the form: - -

    usb:/dev/file
    -
- -

Berkeley Commands

- -

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. - -

lpc

- -The lpc command allows users and administrators to check the status and -control print queues. The version provided with CUPS supports the following -commands: - -
    - -
  • quit - Quits the lpc command. - -
  • status - Shows the status of printers and jobs in the queue. - -
- -

lpq

- -

The lpq command shows the current queue status. - -

lpr

- -

The lpr command submits a job for printing. The CUPS version of lpr silently -ignores the "i", "t", "m", "h", and "s" options. - -

lprm

- -

The lprm removes one or more print jobs. - -

CGI

- -

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. - -

admin.cgi

- -

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. - -

classes.cgi

- -

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. - -

jobs.cgi

- -

The jobs CGI lists the queued print jobs in order of priority. The -list can be limited by printer or job. - -

printers.cgi

- -

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. - -

CUPS Application Programmers Interface

- -

The CUPS Application Programmers Interface ("API") provides common -convenience, HTTP, IPP, language, and PPD functions used by the CUPS -software. - -

Convenience Functions

- -

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. - -

HTTP Functions

- -

The HTTP functions provide functions to connect to HTTP servers, -issue requests, read data from a server, and write data to a server. - -

IPP Functions

- -

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. - -

Language Functions

- -

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.) - -

PPD Functions

- -

The PostScript Printer Description functions manage PPD files, -select options, check for option conflicts, and emit selected options -in the correct order. - -

CUPS Imaging Library

- -

The CUPS imaging library provides colorspace conversion, color -management, image management, scaling, image file, and raster functions -used by the CUPS raster filters. - -

Colorspace Conversion Functions

- -

The colorspace conversion functions handle conversion of grayscale -and RGB colors to grayscale, RGB, K, CMY, CMYK, and CMYKcm colorspaces. - -

Color Management Functions

- -

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. - -

Image Management Functions

- -

The image management functions manage a tiled image database that is -swapped to/from disk as needed. - -

Scaling Functions

- -

The scaling functions provide image scaling services using -nearest-neighbor sampling and bilinear interpolation as appropriate. - -

Image File Functions

- -

The image file functions handle loading of all image file formats. - -

Raster Functions

- -

The raster functions manage streams of CUPS raster data (described -in the Interface Design Document) used by non-PostScript printer -drivers and raster filters. - -

Daemons

- -

The daemons provide additional network functions for the scheduler. -Currently only two daemons are provided with CUPS. - -

Line Printer Daemon

- -

The line printer daemon provides remote LPD client support and is -run by the inetd(8) daemon as needed. - -

Polling Daemon

- -

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. - -

Filters

- -

The filters implement file conversion services for CUPS. All filters -are called with a common set of arguments: - -

    - -
  • Printer name - the name of the destination printer (name string). - -
  • Job Identifier - the job identifier for this job (integer). - -
  • User Name - the user associated with this job (name string). - -
  • Title - the title/job-name associated with this job (name string). - -
  • Copies - the number of copies required (integer). - -
  • Options - the options associated with this job (space separated - option strings). - -
  • Filename (optional) - the file to print; if this option is not - specified, the filter must read the input file from the standard - input. - -
- -

Filters are added to the MIME conversion data file and implement all -necessary conversions from one file type to another. - -

hpgltops

- -

The hpgltops filter converts HP-GL/2 files into PostScript. - -

imagetops

- -

The imagetops filter converts image files into PostScript. - -

imagetoraster

- -

The imagetoraster filter converts image files into CUPS raster data. - -

pdftops

- -

The pdftops filter converts PDF files into PostScript. - -

pstops

- -

The pstops filter inserts printer-specific commands from PPD files and -performs page filtering as requested by the user. - -

pstoraster

- -

The pstoraster filter converts PostScript program data into CUPS -raster data. - -

rastertoepson

- -

The rastertoepson filter handles converting CUPS raster data to -ESC/P and supports both color and black-and-white printers. - -

rastertohp

- -

The rastertohp filter handles converting CUPS raster data to HP-PCL -and supports both color and black-and-white printers. - -

texttops

- -

The texttops filter converts text files into PostScript. - -

Scheduler

- -

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. - -

Authorization

- -

The authorization module is responsible for performing access -control and authentication for all HTTP and IPP requests entering the -system. - -

Classes

- -

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. - -

Client

- -

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. - -

Once authorized, all IPP requests are sent to the IPP module. - -

Configuration

- -

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. - -

Devices

- -

The devices module is responsible for managing the list of available -devices for the CUPS-Get-Devices operation. - -

Directory Services

- -

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. - -

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. - -

IPP

- -

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. - -

Jobs

- -

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. - -

Logging

- -

The logging module manages the access, error, and page log files -that are generated by the scheduler. - -

Main

- -

The main module is responsible for timing out and dispatching input -and output for client connections. It also watches for incoming -SIGHUP and SIGCHLD signals, reloads the -server configuration files as needed, and handles child process errors -and exits. - -

MIME

- -

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. - -

PPDs

- -

The PPDs module is responsible for managing the list of available -PPD files for the CUPS-Get-PPDs operation. - -

Printers

- -

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. - -

System V Commands

- -

The System V commands provide a robust command-line interface to -CUPS to submit and control printers and jobs. - -

accept

- -

The accept command tells the scheduler to accept new jobs for specific -printers. - -

cancel

- -

The cancel command tells the scheduler to cancel one or more jobs that are -queued for printing. - -

disable

- -

The disable command tells the scheduler to stop printing jobs on the -specified printers. - -

enable

- -

The enable command tells the scheduler to start printing jobs on the -specified printers. - -

lp

- -

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. - -

lpadmin

- -

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. - -

lpinfo

- -

The lpinfo command lists the available PPD files or devices as selected -by the user. - -

lpmove

- -

The lpmove command moves a print job to a new destination. - -

lpoptions

- -

The lpoptions command manages user-defined printers and options. - -

lpstat

- -

The lpstat command lists printers, classes, and jobs as requested by the -user. - -

reject

- -

The reject command tells the scheduler not to accept new jobs for specific -printers. - - - - - diff --git a/doc/sps.shtml b/doc/sps.shtml deleted file mode 100644 index 5e2d3ee57..000000000 --- a/doc/sps.shtml +++ /dev/null @@ -1,457 +0,0 @@ - - - - - - CUPS Software Performance Specification - - - -

Scope

- -

Identification

- -

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.

- -

For the purposes of comparison, all figures are for the Linux Intel -platform. Memory utilization on other platforms should be similar. - - - -

Document Overview

- -

This software performance specification is organized into the -following sections:

- -
    -
  • 1 - Scope
  • -
  • 2 - References
  • -
  • 3 - Programs
  • -
  • 4 - Scheduler Objects
  • -
  • A - Glossary
  • -
- - - -

Programs

- -

The following table describes the average memory, disk, and CPU usage of -each program in CUPS. - -

The base memory column shows the initial memory requirements for each -program, including any shared libraries that are provided by CUPS. - -

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. - -

The temp files column indicates whether any temporary files are created. - -

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. - -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Backends
ProgramBase MemoryMax MemoryTemp FilesCPU Usage
ipp91k256kUp to size of print fileLow
lpd89k89kUp to size of print fileLow
parallel85k85kUp to size of print fileLow
serial85k85kUp to size of print fileLow
socket85k85kUp to size of print fileLow
usb85k85kUp to size of print fileLow
CGIs
ProgramBase MemoryMax MemoryTemp FilesCPU Usage
admin.cgi107k256kUp to size of PPD fileMedium
classes.cgi95kSize of class objectsNoneMedium
jobs.cgi93kSize of job objectsNoneMedium
printers.cgi95kSize of printer objectsNoneMedium
Command-Line Programs
ProgramBase MemoryMax MemoryTemp FilesCPU Usage
accept88k128kNoneLow
cancel88k128kNoneLow
disable88k128kNoneLow
enable88k128kNoneLow
lp90k256kNoneLow
lpadmin148k256kNoneLow
lpc86kSize of job and printer objectsNoneMedium
lpinfo89kSize of device and PPD objectsNoneMedium
lpmove88k128kNoneLow
lpoptions89k128kNoneLow
lppasswd90k90kNoneLow
lpq87kSize of job objectsNoneMedium
lpr87k256kNoneLow
lprm84k128kNoneLow
lpstat119kSize of job, printer, and class objectsNoneMedium
reject88k128kNoneLow
Daemons
ProgramBase MemoryMax MemoryTemp FilesCPU Usage
cups-lpd92k256kOne file per control or data file from clientLow
cupsd308kSee Scheduler RequirementsSee Scheduler RequirementsMedium
cups-polld84kSize of printer and class objectsNoneLow
Filters
ProgramBase MemoryMax MemoryTemp FilesCPU Usage
hpgltops263k320kNoneMedium
imagetops628k10MSwap file for uncompressed image dataMedium
imagetoraster652k10MSwap file for uncompressed image dataHigh
pstops775k840kUp to size of print fileMedium
pstoraster4M14MSwap file for command listsHigh
rastertoepson693k1MNoneLow
rastertohp690k1MNoneLow
texttops638k4*cols*rowsNoneLow
- - -

Scheduler Objects

- -

The cupsd program is the CUPS scheduler process. It manages -many interdependent server objects that are used to manage and print files -to printers. - -

The following table provides the memory and disk cost associated with each -server object. - -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ObjectMemory PerDisk Per
Browse ACL1k120
Browse Poll2480
Browse Relay2880
Certificate7632
Class9k200
Client13k-
Device256-
Job2k1k + size of document files
Location ACL1k120
MIME Filter26880
MIME Type34080
PPD200656
Printer11k32k
- - - - - diff --git a/doc/sv/index.html.in b/doc/sv/index.html.in index 4f6244118..2085fb6e9 100644 --- a/doc/sv/index.html.in +++ b/doc/sv/index.html.in @@ -124,7 +124,7 @@ WIDTH="15" HEIGHT="15" ALT="">

The Common UNIX Printing System, CUPS, och CUPS-logotypen är varumärken för Easy Software -Products. CUPS är copyright 1997-2006 Easy Software Products, +Products. CUPS är copyright 1997-2007 Easy Software Products, Alla rättigheter reserverade.

diff --git a/filter/Dependencies b/filter/Dependencies index fa2b859a3..867919f09 100644 --- a/filter/Dependencies +++ b/filter/Dependencies @@ -1,441 +1,447 @@ -# 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 diff --git a/filter/Makefile b/filter/Makefile index 5d456d0a3..ae7b7322f 100644 --- a/filter/Makefile +++ b/filter/Makefile @@ -1,5 +1,5 @@ # -# "$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). # @@ -26,6 +26,7 @@ include ../Makedefs + FILTERS = gziptoany hpgltops texttops pstops $(IMGFILTERS) \ rastertolabel rastertoepson rastertohp TARGETS = $(FILTERS) \ @@ -355,9 +356,10 @@ rastertohp: rastertohp.o ../cups/$(LIBCUPS) $(LIBCUPSIMAGE) # 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) # @@ -387,5 +389,5 @@ include Dependencies # -# End of "$Id: Makefile 5649 2006-06-14 21:03:17Z mike $". +# End of "$Id: Makefile 6158 2006-12-17 01:44:21Z mike $". # diff --git a/filter/image-pnm.c b/filter/image-pnm.c index 54f6c7447..b418f68e3 100644 --- a/filter/image-pnm.c +++ b/filter/image-pnm.c @@ -1,5 +1,5 @@ /* - * "$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). * @@ -202,7 +202,7 @@ _cupsImageReadPNM( else { bit = 128; - inptr ++; + outptr ++; } } break; @@ -301,5 +301,5 @@ _cupsImageReadPNM( /* - * 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 $". */ diff --git a/filter/image-private.h b/filter/image-private.h index df7bed281..f84ace850 100644 --- a/filter/image-private.h +++ b/filter/image-private.h @@ -1,5 +1,5 @@ /* - * "$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). @@ -33,6 +33,7 @@ */ # include "image.h" +# include "raster.h" # include # include # include @@ -213,9 +214,13 @@ extern cups_izoom_t *_cupsImageZoomNew(cups_image_t *img, int xc0, int yc0, 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 $". */ diff --git a/filter/image-sun.c b/filter/image-sun.c index c6b0622db..bcc354a8f 100644 --- a/filter/image-sun.c +++ b/filter/image-sun.c @@ -1,5 +1,5 @@ /* - * "$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). * @@ -171,7 +171,7 @@ _cupsImageReadSunRaster( 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; @@ -221,12 +221,12 @@ _cupsImageReadSunRaster( *p = 0; if (bit > 1) + bit >>= 1; + else { bit = 128; scanptr ++; } - else - bit >>= 1; } } else if (ras_depth == 1) @@ -253,12 +253,12 @@ _cupsImageReadSunRaster( } if (bit > 1) + bit >>= 1; + else { bit = 128; scanptr ++; } - else - bit >>= 1; } } else if (ras_depth == 8 && ras_maplength > 0) @@ -389,5 +389,5 @@ read_unsigned(FILE *fp) /* I - File to read from */ /* - * 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 $". */ diff --git a/filter/interpret.c b/filter/interpret.c index 50190b4f1..6f9c9f855 100644 --- a/filter/interpret.c +++ b/filter/interpret.c @@ -1,9 +1,9 @@ /* - * "$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 @@ -26,8 +26,20 @@ * 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. */ /* @@ -35,26 +47,80 @@ */ #include -#include "raster.h" +#include "image-private.h" #include /* - * 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 */ /* @@ -71,6 +137,10 @@ static int exec_code(cups_page_header2_t *header, int *preferred_bits, * 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@ */ @@ -82,11 +152,9 @@ cupsRasterInterpretPPD( 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 */ @@ -140,34 +208,34 @@ cupsRasterInterpretPPD( */ 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); } } @@ -247,8 +315,8 @@ cupsRasterInterpretPPD( (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); /* @@ -340,276 +408,1097 @@ cupsRasterInterpretPPD( /* - * '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 $". */ diff --git a/filter/libcupsimage_s.exp b/filter/libcupsimage_s.exp index b6c3e2e3f..57f4259f9 100644 --- a/filter/libcupsimage_s.exp +++ b/filter/libcupsimage_s.exp @@ -13,3 +13,4 @@ _cupsImageReadTIFF _cupsImageZoomDelete _cupsImageZoomFill _cupsImageZoomNew +_cupsRasterExecPS diff --git a/filter/pstops.c b/filter/pstops.c index 69dce4f54..f81fcdda3 100644 --- a/filter/pstops.c +++ b/filter/pstops.c @@ -1,9 +1,9 @@ /* - * "$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 @@ -205,6 +205,9 @@ static size_t skip_page(cups_file_t *fp, char *line, size_t linelen, 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); @@ -665,12 +668,12 @@ copy_comments(cups_file_t *fp, /* I - File to read from */ 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)) { @@ -697,7 +700,7 @@ copy_comments(cups_file_t *fp, /* I - File to read from */ 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; @@ -722,15 +725,15 @@ copy_comments(cups_file_t *fp, /* I - File to read from */ * 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 { @@ -739,18 +742,18 @@ copy_comments(cups_file_t *fp, /* I - File to read from */ */ 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); } @@ -811,7 +814,7 @@ copy_dsc(cups_file_t *fp, /* I - File to read from */ 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; @@ -909,23 +912,37 @@ copy_dsc(cups_file_t *fp, /* I - File to read from */ * 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... @@ -1263,43 +1280,47 @@ copy_page(cups_file_t *fp, /* I - File to read from */ 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 @@ -1636,13 +1657,13 @@ copy_prolog(cups_file_t *fp, /* I - File to read from */ 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); @@ -1655,7 +1676,7 @@ copy_prolog(cups_file_t *fp, /* I - File to read from */ !strncmp(line, "%%Page:", 7)) break; - fwrite(line, 1, linelen, stdout); + doc_write(doc, line, linelen); } if (!strncmp(line, "%%EndProlog", 11)) @@ -1664,7 +1685,7 @@ copy_prolog(cups_file_t *fp, /* I - File to read from */ fputs("ERROR: Missing %%EndProlog!\n", stderr); } - puts("%%EndProlog"); + doc_puts(doc, "%%EndProlog\n"); return (linelen); } @@ -1690,13 +1711,13 @@ copy_setup(cups_file_t *fp, /* I - File to read from */ 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); @@ -1717,7 +1738,7 @@ copy_setup(cups_file_t *fp, /* I - File to read from */ &(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; @@ -1729,7 +1750,7 @@ copy_setup(cups_file_t *fp, /* I - File to read from */ fputs("ERROR: Missing %%EndSetup!\n", stderr); } - puts("%%EndSetup"); + doc_puts(doc, "%%EndSetup\n"); return (linelen); } @@ -1792,18 +1813,25 @@ static void 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 @@ -1811,9 +1839,8 @@ do_prolog(pstops_doc_t *doc, /* I - Document information */ */ 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"); } @@ -1825,13 +1852,16 @@ static void 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... @@ -1843,8 +1873,17 @@ do_setup(pstops_doc_t *doc, /* I - Document information */ * 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... @@ -1852,11 +1891,13 @@ do_setup(pstops_doc_t *doc, /* I - Document information */ 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"); } /* @@ -1864,7 +1905,7 @@ do_setup(pstops_doc_t *doc, /* I - Document information */ */ 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 @@ -1872,15 +1913,31 @@ do_setup(pstops_doc_t *doc, /* I - Document information */ */ 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... @@ -1894,13 +1951,14 @@ do_setup(pstops_doc_t *doc, /* I - Document information */ */ 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); } @@ -3059,6 +3117,123 @@ start_nup(pstops_doc_t *doc, /* I - Document information */ } +/* + * '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. * @@ -3106,5 +3281,5 @@ write_labels(pstops_doc_t *doc, /* I - Document information */ /* - * 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 $". */ diff --git a/filter/raster.h b/filter/raster.h index 076e76524..27e276a15 100644 --- a/filter/raster.h +++ b/filter/raster.h @@ -1,5 +1,5 @@ /* - * "$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). * @@ -76,43 +76,6 @@ extern "C" { * 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 */ @@ -122,20 +85,11 @@ typedef enum cups_adv_e /**** AdvanceMedia attribute values ****/ 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 ****/ { @@ -177,6 +131,52 @@ 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 @@ -338,5 +338,5 @@ extern unsigned cupsRasterWriteHeader2(cups_raster_t *r, #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 $". */ diff --git a/filter/rastertolabel.c b/filter/rastertolabel.c index 340ee976d..bc4ca7c97 100644 --- a/filter/rastertolabel.c +++ b/filter/rastertolabel.c @@ -1,9 +1,9 @@ /* - * "$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 @@ -77,7 +77,7 @@ */ 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 */ @@ -750,7 +750,7 @@ OutputLine(ppd_file_t *ppd, /* I - PPD file */ * 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) @@ -769,13 +769,19 @@ OutputLine(ppd_file_t *ppd, /* I - PPD file */ */ 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... */ @@ -878,7 +884,7 @@ main(int argc, /* I - Number of command-line arguments */ * 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); } @@ -1008,5 +1014,5 @@ main(int argc, /* I - Number of command-line arguments */ /* - * 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 $". */ diff --git a/filter/testraster.c b/filter/testraster.c index bc35bb01a..dd1c76ae8 100644 --- a/filter/testraster.c +++ b/filter/testraster.c @@ -1,5 +1,5 @@ /* - * "$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). * @@ -32,19 +32,179 @@ * * 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 #include /* - * '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 */ @@ -53,23 +213,212 @@ main(void) 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" + "<>" + "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" + "<>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)); @@ -82,11 +431,13 @@ main(void) 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) @@ -101,110 +452,488 @@ main(void) 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 $". */ diff --git a/locale/cups.pot b/locale/cups.pot index 1ca4004d7..c8459bd81 100644 --- a/locale/cups.pot +++ b/locale/cups.pot @@ -29,7 +29,7 @@ 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" +"POT-Creation-Date: 2007-01-23 09:19-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -2608,6 +2608,55 @@ msgid "" " 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$". diff --git a/locale/cups_de.po b/locale/cups_de.po index d2bff3793..0b9237974 100644 --- a/locale/cups_de.po +++ b/locale/cups_de.po @@ -25,7 +25,7 @@ msgid "" 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 \n" "Language-Team: Deutsch\n" @@ -75,8 +75,12 @@ msgstr "Nein" 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." @@ -102,8 +106,10 @@ msgstr "%s nicht unterstützt!" 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." @@ -140,19 +146,28 @@ msgstr "Sprache \"%s\" nicht unterstützt!" 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\"!" @@ -343,11 +358,15 @@ msgstr "Auftrag #%d kann nicht neu gestartet werden - keine Dateien!" #, 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\"!" @@ -355,7 +374,8 @@ msgstr "document-format \"%s\" ist falsch!" #, 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." @@ -445,8 +465,10 @@ msgid "lpq: Unknown destination \"%s\"!\n" 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" @@ -455,8 +477,10 @@ 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" @@ -504,14 +528,19 @@ msgid "lpr: error - expected value after -%c option!\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" @@ -539,8 +568,11 @@ msgid "lpr: error - too many files - \"%s\"\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" @@ -554,7 +586,8 @@ msgstr "lpr: Fehler - Kann temporäre Datei \"%s\" nicht erstellen - %s\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" @@ -665,7 +698,8 @@ msgstr "cupsaddsmb: Kann PPD Datei nicht konvertieren für %s - %s\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" @@ -673,15 +707,19 @@ msgstr "cupsaddsmb: Kann CUPS Druckertreiberdateien (%d) nicht kopieren!\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" @@ -709,10 +747,12 @@ msgstr "" " -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 "" @@ -895,7 +935,8 @@ 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" @@ -1065,10 +1106,12 @@ msgstr " BESTANDEN\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" @@ -1100,7 +1143,8 @@ msgid "" " 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 "" @@ -1121,7 +1165,8 @@ 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 @@ -1148,10 +1193,12 @@ msgstr "" " (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" @@ -1224,15 +1271,20 @@ msgid "system default destination: %s\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" @@ -1240,7 +1292,8 @@ msgstr "Ausgabe für Drucker %s wurde gesendet an %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" @@ -1432,7 +1485,9 @@ msgid "lpadmin: Expected class after '-r' option!\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" @@ -1449,7 +1504,8 @@ msgid "lpadmin: Expected device URI after '-v' option!\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" @@ -1462,7 +1518,8 @@ msgid "lpadmin: Expected description after '-D' option!\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" @@ -1517,10 +1574,13 @@ msgstr "" "\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 @@ -1537,7 +1597,8 @@ msgstr "lpadmin: add-printer (Setzen des Modells) fehlgeschlagen: %s\n" #, 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" @@ -1568,7 +1629,8 @@ msgid "lp: Expected job ID after -i option!\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" @@ -1620,8 +1682,11 @@ msgstr "lp: Warnung - Parameter für Inhaltstyp ignoriert!\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" @@ -1779,7 +1844,8 @@ msgid "" "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" @@ -1856,8 +1922,12 @@ msgstr "Klasse ändern" 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:" @@ -1871,8 +1941,12 @@ msgstr "Drucker ä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:" @@ -2000,7 +2074,8 @@ msgid "cupsaddsmb crashed on signal %d" 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!" @@ -2203,7 +2278,9 @@ msgid "Usage: lpmove job/src dest\n" 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" @@ -2253,15 +2330,21 @@ msgid "%s: Error - expected hostname after '-h' option!\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" @@ -2272,8 +2355,12 @@ msgid "%s: Error - expected value after '-%c' 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" @@ -2304,8 +2391,11 @@ msgid "%s: Error - too many files - \"%s\"\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" @@ -2333,7 +2423,8 @@ msgstr "%s: Fehler - unbekanntes Ziel \"%s\"!\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" @@ -2361,7 +2452,8 @@ msgstr "%s: Auftrags ID wird hinter dem Parameter '-i' erwartet!\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" @@ -2373,7 +2465,9 @@ msgstr "%s: Fehler - Kopienanzahl wird hinter dem Parameter '-n' erwartet!\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" @@ -2397,7 +2491,8 @@ msgstr "%s: Warnung - Modusangabe ignoriert!\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" @@ -2424,12 +2519,19 @@ msgid "%s: Warning - content type option ignored!\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" @@ -2486,10 +2588,13 @@ msgid "Job subscriptions cannot be renewed!" 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" @@ -2520,11 +2625,17 @@ msgstr "" 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" @@ -2546,19 +2657,31 @@ msgstr " **FEHLGESCHLAGEN** Falsche Sprache \"%s\"!\n" #, 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" @@ -2683,8 +2806,12 @@ msgid "Job #%d is already completed - can't cancel." msgstr "Auftrag #%d wurde bereits beendet - abbrechen nicht möglich." #, c-format -msgid "You must access this page using the URL https://%s:%d%s." -msgstr "Um auf diese Seite zuzugreifen müssen Sie die URL https://%s:%d%s verwenden." +msgid "" +"You must access this page using the URL https://%" +"s:%d%s." +msgstr "" +"Um auf diese Seite zuzugreifen müssen Sie die URL https://%s:%d%s verwenden." #, c-format msgid "Unsupported format '%s'!" @@ -2798,7 +2925,8 @@ msgid "" "\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" @@ -2807,7 +2935,8 @@ msgstr "" "\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? " @@ -2819,3 +2948,55 @@ msgid "" 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" diff --git a/locale/cups_es.po b/locale/cups_es.po index 7e736ba46..1c88e6ab4 100644 --- a/locale/cups_es.po +++ b/locale/cups_es.po @@ -25,13 +25,14 @@ 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: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 \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" @@ -2818,3 +2819,54 @@ msgstr "" " **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" + diff --git a/locale/cups_et.po b/locale/cups_et.po index 1a847e6e1..f9a972bd7 100644 --- a/locale/cups_et.po +++ b/locale/cups_et.po @@ -25,12 +25,12 @@ 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: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 \n" "Language-Team: Estonian \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" @@ -75,8 +75,12 @@ msgstr "i" 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." @@ -102,7 +106,8 @@ msgstr "%s pole toetatud!" 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 @@ -140,21 +145,26 @@ msgstr "Keel \"%s\" pole toetatud!" 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\"!" @@ -447,7 +457,8 @@ msgid "lpq: Unknown destination \"%s\"!\n" 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" @@ -457,8 +468,10 @@ msgstr "lpq: viga - vaikimisi sihtkoht pole saadaval.\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" @@ -506,8 +519,12 @@ msgid "lpr: error - expected value after -%c option!\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" @@ -541,7 +558,8 @@ msgid "lpr: error - too many files - \"%s\"\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" @@ -667,23 +685,30 @@ msgstr "cupsaddsmb: ei õnnestunud teisendada PPD-faili %s jaoks - %s\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" @@ -815,10 +840,10 @@ msgstr "" 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" @@ -1066,10 +1091,12 @@ msgstr " SOORITATUD\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" @@ -1087,7 +1114,8 @@ msgid "" " 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 "" @@ -1101,7 +1129,8 @@ 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 "" @@ -1122,7 +1151,8 @@ 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 @@ -1149,10 +1179,12 @@ msgstr "" " (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" @@ -1225,7 +1257,9 @@ msgid "system default destination: %s\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" @@ -1521,7 +1555,8 @@ msgstr "" " 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" @@ -1620,8 +1655,11 @@ msgstr "lp: hoiatus - sisu tüübi võtit ignoreeritakse!\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" @@ -1755,7 +1793,8 @@ msgstr "" " 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:" @@ -1856,10 +1895,12 @@ msgstr "Klassi muutmine" 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:" @@ -1873,10 +1914,12 @@ msgstr "Printeri muutmine" 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:" @@ -2163,7 +2206,9 @@ msgid "cupsaddsmb: No Windows printer drivers are installed!\n" 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" @@ -2206,7 +2251,8 @@ msgid "Usage: lpmove job/src dest\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" @@ -2256,15 +2302,19 @@ msgid "%s: Error - expected hostname after '-h' option!\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" @@ -2275,8 +2325,12 @@ msgid "%s: Error - expected value after '-%c' 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" @@ -2307,7 +2361,8 @@ msgid "%s: Error - too many files - \"%s\"\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 @@ -2427,12 +2482,19 @@ msgid "%s: Warning - content type option ignored!\n" 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" @@ -2492,7 +2554,8 @@ msgid "cupsd: Expected config filename after \"-c\" 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" @@ -2523,11 +2586,16 @@ msgstr "" 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" @@ -2552,16 +2620,25 @@ msgid " **FAIL** Missing \"%s\" translation string for option %s!\n" 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" @@ -2686,8 +2763,12 @@ msgid "Job #%d is already completed - can't cancel." msgstr "Töö nr %d on juba lõpetatud - enam ei saa katkestada." #, c-format -msgid "You must access this page using the URL https://%s:%d%s." -msgstr "Sellele leheküljele pääseb URL-iga https://%s:%d%s." +msgid "" +"You must access this page using the URL https://%" +"s:%d%s." +msgstr "" +"Sellele leheküljele pääseb URL-iga https://%s:%d%" +"s." #, c-format msgid "Unsupported format '%s'!" @@ -2801,7 +2882,8 @@ msgid "" "\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" @@ -2810,7 +2892,8 @@ msgstr "" "\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? " @@ -2823,4 +2906,54 @@ msgstr "" " **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" diff --git a/locale/cups_fr.po b/locale/cups_fr.po new file mode 100644 index 000000000..cb1e3e3d4 --- /dev/null +++ b/locale/cups_fr.po @@ -0,0 +1,5690 @@ +# +# "$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 \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 https://%s:%d%s." +msgstr "Vous devez accéder à cette page avec l'URL https://%s:%d%s." + +#, 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 \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 https://%s:%d%s." +msgstr "Vous devez accéder à cette page avec l'URL https://%s:%d%s." + +#, 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$". +# diff --git a/locale/cups_it.po b/locale/cups_it.po index 4ea69f070..60d920327 100644 --- a/locale/cups_it.po +++ b/locale/cups_it.po @@ -22,7 +22,7 @@ msgid "" 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 \n" "Language-Team: Italian \n" @@ -73,8 +73,12 @@ msgstr "No" 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." @@ -100,8 +104,10 @@ msgstr "%s non supportato!" 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." @@ -138,19 +144,29 @@ msgstr "Lingua \"%s\" non supportata!" 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\"!" @@ -200,7 +216,8 @@ msgstr "L'operazione #%d non è bloccata per l'autenticazione!" #, 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!" @@ -218,7 +235,8 @@ msgstr "Nessuna operazione attiva su %s!" #, 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." @@ -296,7 +314,8 @@ msgstr "L'operazione #%d è terminata e non può essere modificata!" #, 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!" @@ -329,7 +348,9 @@ msgstr "L'operazione #%d non è bloccata!" #, 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!" @@ -341,11 +362,15 @@ msgstr "L'operazione #%d non può essere riavviata - nessun file!" #, 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\"!" @@ -353,7 +378,9 @@ msgstr "document-format \"%s\" errato!" #, 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." @@ -443,8 +470,11 @@ msgid "lpq: Unknown destination \"%s\"!\n" 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" @@ -453,7 +483,8 @@ 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" @@ -502,14 +533,19 @@ msgid "lpr: error - expected value after -%c option!\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" @@ -537,8 +573,11 @@ msgid "lpr: error - too many files - \"%s\"\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" @@ -663,27 +702,38 @@ msgstr "cupsaddsmb: Impossibile convertire il file PPD per %s - %s\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" @@ -1062,10 +1112,12 @@ msgstr " PASS\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" @@ -1097,7 +1149,8 @@ msgid "" " 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 "" @@ -1118,7 +1171,8 @@ 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 @@ -1129,8 +1183,7 @@ msgstr "" " 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" @@ -1146,10 +1199,12 @@ msgstr "" " (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" @@ -1222,15 +1277,20 @@ msgid "system default destination: %s\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" @@ -1238,7 +1298,8 @@ msgstr "L'uscita per la stampante %s è inviata a %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" @@ -1382,13 +1443,15 @@ msgid "lpadmin: Expected class name after '-c' option!\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" @@ -1515,8 +1578,10 @@ msgstr "" "\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" @@ -1566,7 +1631,9 @@ msgid "lp: Expected job ID after -i option!\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" @@ -1618,8 +1685,10 @@ msgstr "lp: Attenzione - opzione del tipo di contenuto ignorata!\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" @@ -1803,7 +1872,8 @@ msgstr "lppasswd: File delle password non aggiornato!\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" @@ -1854,8 +1924,12 @@ msgstr "Modifica classe" 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:" @@ -1869,8 +1943,12 @@ msgstr "Modifica stampante" 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:" @@ -2157,7 +2235,9 @@ msgid "cupsaddsmb: No Windows printer drivers are installed!\n" 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" @@ -2250,15 +2330,20 @@ msgid "%s: Error - expected hostname after '-h' option!\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" @@ -2269,8 +2354,12 @@ msgid "%s: Error - expected value after '-%c' 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" @@ -2301,8 +2390,11 @@ msgid "%s: Error - too many files - \"%s\"\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" @@ -2358,7 +2450,9 @@ msgstr "%s: Atteso ID dell'operazione dopo l'opzione '-i'!\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" @@ -2398,7 +2492,8 @@ msgstr "%s: Errore - atteso nome di blocco dopo l'opzione '-H'!\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" @@ -2421,12 +2516,18 @@ msgid "%s: Warning - content type option ignored!\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" @@ -2486,7 +2587,8 @@ msgid "cupsd: Expected config filename after \"-c\" 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" @@ -2517,11 +2619,18 @@ msgstr "" 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" @@ -2543,19 +2652,31 @@ msgstr " **FAIL** Lingua \"%s\" errata!\n" #, 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" @@ -2578,7 +2699,8 @@ msgstr "Opzione + scelta errata alla riga %d!\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" @@ -2586,7 +2708,8 @@ msgstr "Impossibile copiare i file dei driver di stampa di CUPS (%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" @@ -2594,7 +2717,8 @@ msgstr "Impossibile copiare i file dei driver di stampa di Windows 9x (%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" @@ -2639,7 +2763,8 @@ msgstr "Impossibile copiare i file dei driver di stampa di CUPS (%d)!" #, 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)!" @@ -2680,8 +2805,12 @@ msgid "Job #%d is already completed - can't cancel." msgstr "L'operazione #%d è già completata - impossibile annullare." #, c-format -msgid "You must access this page using the URL https://%s:%d%s." -msgstr "Devi accedere a questa pagina usando l'URL https://%s:%d%s." +msgid "" +"You must access this page using the URL https://%" +"s:%d%s." +msgstr "" +"Devi accedere a questa pagina usando l'URL https://%s:%d%s." #, c-format msgid "Unsupported format '%s'!" @@ -2795,7 +2924,8 @@ msgid "" "\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" @@ -2804,7 +2934,8 @@ msgstr "" "\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? " @@ -2817,3 +2948,54 @@ msgstr "" " **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" diff --git a/locale/cups_ja.po b/locale/cups_ja.po index 7dbe5334a..377b89923 100644 --- a/locale/cups_ja.po +++ b/locale/cups_ja.po @@ -25,8 +25,8 @@ 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-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 \n" "Language-Team: Japanese \n" "MIME-Version: 1.0\n" @@ -2937,3 +2937,54 @@ msgid "" 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" diff --git a/locale/cups_pl.po b/locale/cups_pl.po index d10a852c4..7ee8c6b2f 100644 --- a/locale/cups_pl.po +++ b/locale/cups_pl.po @@ -25,7 +25,7 @@ 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" +"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 \n" "Language-Team: Polish \n" @@ -2947,3 +2947,55 @@ msgid "" 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" diff --git a/locale/cups_sv.po b/locale/cups_sv.po index 21b3c0149..4e03b07c8 100644 --- a/locale/cups_sv.po +++ b/locale/cups_sv.po @@ -23,13 +23,13 @@ # WWW: http://www.cups.org # # Translated by: -# Daniel Nylander , 2006. +# Daniel Nylander , 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 \n" "Language-Team: Swedish \n" "MIME-Version: 1.0\n" @@ -78,12 +78,8 @@ msgstr "Nej" 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." @@ -109,10 +105,8 @@ msgstr "%s stöds inte!" 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." @@ -149,27 +143,19 @@ msgstr "SprÃ¥ket \"%s\" stöds inte!" 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\"!" @@ -462,8 +448,7 @@ msgid "lpq: Unknown destination \"%s\"!\n" 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" @@ -473,14 +458,11 @@ msgstr "lpq: fel - inget standardmÃ¥l tillgängligt.\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" @@ -525,12 +507,8 @@ msgid "lpr: error - expected value after -%c option!\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" @@ -564,8 +542,7 @@ msgid "lpr: error - too many files - \"%s\"\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" @@ -667,7 +644,7 @@ msgstr "cupsaddsmb: Saknar värde pÃ¥ rad %d!\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" @@ -691,9 +668,7 @@ msgstr "cupsaddsmb: Kunde inte konvertera PPD-fil för %s - %s\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" @@ -701,20 +676,15 @@ msgstr "cupsaddsmb: Kunde inte kopiera filer för CUPS-skrivardrivrutin (%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" @@ -1097,12 +1067,10 @@ msgstr " OK\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" @@ -1155,8 +1123,7 @@ msgid "" " 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 @@ -1183,12 +1150,10 @@ msgstr "" " (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" @@ -1261,9 +1226,7 @@ msgid "system default destination: %s\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" @@ -1381,7 +1344,7 @@ msgstr "\tBanner krävs\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" @@ -1557,12 +1520,10 @@ msgstr "" "\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 @@ -1662,11 +1623,8 @@ msgstr "lp: Varning - flagga för innehÃ¥llstyp ignorerades!\n" 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" @@ -1850,8 +1808,7 @@ msgstr "lppasswd: Lösenordsfil inte uppdaterad!\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" @@ -1902,12 +1859,8 @@ msgstr "Ändra klass" 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:" @@ -1921,12 +1874,8 @@ msgstr "Ändra skrivare" 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:" @@ -2213,8 +2162,7 @@ msgid "cupsaddsmb: No Windows printer drivers are installed!\n" 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" @@ -2257,8 +2205,7 @@ msgid "Usage: lpmove job/src dest\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" @@ -2308,19 +2255,15 @@ msgid "%s: Error - expected hostname after '-h' option!\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" @@ -2331,12 +2274,8 @@ msgid "%s: Error - expected value after '-%c' 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" @@ -2367,8 +2306,7 @@ msgid "%s: Error - too many files - \"%s\"\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 @@ -2488,19 +2426,12 @@ msgid "%s: Warning - content type option ignored!\n" 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" @@ -2591,17 +2522,11 @@ msgstr "" 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" @@ -2626,26 +2551,16 @@ msgid " **FAIL** Missing \"%s\" translation string for option %s!\n" 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" @@ -2660,7 +2575,7 @@ msgstr "Saknar värde pÃ¥ rad %d!\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" @@ -2676,8 +2591,7 @@ msgstr "Kunde inte kopiera filer för CUPS-skrivardrivrutiner (%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" @@ -2771,12 +2685,8 @@ msgid "Job #%d is already completed - can't cancel." msgstr "Jobb #%d är redan färdigt - kan inte avbryta." #, c-format -msgid "" -"You must access this page using the URL https://%" -"s:%d%s." -msgstr "" -"Du mÃ¥ste komma Ã¥t sidan med url:en https://%s:%d%" -"s." +msgid "You must access this page using the URL https://%s:%d%s." +msgstr "Du mÃ¥ste komma Ã¥t sidan med url:en https://%s:%d%s." #, c-format msgid "Unsupported format '%s'!" @@ -2890,8 +2800,7 @@ msgid "" "\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" @@ -2900,17 +2809,67 @@ msgstr "" "\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" + diff --git a/packaging/cups.list.in b/packaging/cups.list.in index 51d315863..24f623513 100644 --- a/packaging/cups.list.in +++ b/packaging/cups.list.in @@ -1,10 +1,10 @@ # -# "$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 @@ -25,10 +25,10 @@ # 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@ @@ -113,6 +113,9 @@ %subpackage et %description Estonian support +%subpackage fr +%description French support + %subpackage it %description Italian support @@ -361,6 +364,8 @@ f 0644 root sys $LOCALEDIR/de/cups_de.po locale/cups_de.po 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 @@ -435,6 +440,9 @@ f 0644 root sys $DATADIR/templates/es templates/es/*.tmpl %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 @@ -533,6 +541,11 @@ d 0755 root sys $DOCDIR/et 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 @@ -630,5 +643,5 @@ f 0644 root sys $XINETD/cups-lpd init/cups-lpd %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 $". # diff --git a/packaging/cups.spec.in b/packaging/cups.spec.in index db75b6bc5..0c00b8cd1 100644 --- a/packaging/cups.spec.in +++ b/packaging/cups.spec.in @@ -1,5 +1,5 @@ # -# "$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). # @@ -91,6 +91,11 @@ Summary: Common UNIX Printing System - Estonian support 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 @@ -149,6 +154,10 @@ UNIX 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. @@ -430,6 +439,16 @@ rm -rf $RPM_BUILD_ROOT /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 @@ -478,5 +497,5 @@ rm -rf $RPM_BUILD_ROOT # -# 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 $". # diff --git a/pdftops/PSOutputDev.cxx b/pdftops/PSOutputDev.cxx index 21dc65f91..15d371fda 100644 --- a/pdftops/PSOutputDev.cxx +++ b/pdftops/PSOutputDev.cxx @@ -1158,6 +1158,9 @@ void PSOutputDev::writeHeader(int firstPage, int lastPage, 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()) { @@ -2509,14 +2512,16 @@ GBool PSOutputDev::startPage(int pageNum, GfxState *state) { } 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 { diff --git a/scheduler/client.c b/scheduler/client.c index 8a338d412..44a76f49e 100644 --- a/scheduler/client.c +++ b/scheduler/client.c @@ -1,5 +1,5 @@ /* - * "$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. * @@ -35,7 +35,7 @@ * 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. @@ -55,12 +55,28 @@ #ifdef HAVE_CDSASSL # include +# ifdef HAVE_SECIDENTITYSEARCHPRIV_H +# include +# 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 +# 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 -# 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 #endif /* HAVE_GNUTLS */ @@ -76,7 +92,7 @@ static int check_if_modified(cupsd_client_t *con, 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); @@ -85,7 +101,7 @@ static int is_cgi(cupsd_client_t *con, const char *filename, 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); @@ -635,6 +651,7 @@ cupsdCloseClient(cupsd_client_t *con) /* I - Client to close */ cupsdClearString(&con->filename); cupsdClearString(&con->command); cupsdClearString(&con->options); + cupsdClearString(&con->query_string); if (con->request) { @@ -798,6 +815,7 @@ cupsdReadClient(cupsd_client_t *con) /* I - Client to read from */ cupsdClearString(&con->command); cupsdClearString(&con->options); + cupsdClearString(&con->query_string); if (con->request) { @@ -2087,7 +2105,8 @@ cupsdSendError(cupsd_client_t *con, /* I - Connection */ con->servername, con->serverport, con->uri); snprintf(redirect, sizeof(redirect), - "\n", + "\n", con->servername, con->serverport, con->uri); } else @@ -2494,6 +2513,7 @@ cupsdWriteClient(cupsd_client_t *con) /* I - Client connection */ cupsdClearString(&con->command); cupsdClearString(&con->options); + cupsdClearString(&con->query_string); if (!con->http.keep_alive) { @@ -2606,7 +2626,7 @@ encrypt_client(cupsd_client_t *con) /* I - Client to encrypt */ * Nope, make a self-signed certificate... */ - if (!make_certificate()) + if (!make_certificate(con)) return (0); } @@ -2665,7 +2685,7 @@ encrypt_client(cupsd_client_t *con) /* I - Client to encrypt */ * Nope, make a self-signed certificate... */ - if (!make_certificate()) + if (!make_certificate(con)) return (0); } @@ -2737,7 +2757,7 @@ encrypt_client(cupsd_client_t *con) /* I - Client to encrypt */ error = 0; conn->session = NULL; - conn->certsArray = get_cdsa_server_certs(); + conn->certsArray = get_cdsa_certificate(con); if (!conn->certsArray) { @@ -2745,8 +2765,8 @@ encrypt_client(cupsd_client_t *con) /* I - Client to encrypt */ * 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) @@ -2825,90 +2845,120 @@ encrypt_client(cupsd_client_t *con) /* I - Client to encrypt */ #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 */ @@ -3248,8 +3298,13 @@ is_cgi(cupsd_client_t *con, /* I - Client connection */ */ if ((options = strchr(con->uri, '?')) != NULL) + { options ++; + if (strchr(options, '=')) + cupsdSetStringf(&(con->query_string), "QUERY_STRING=%s", options); + } + /* * Check for known types... */ @@ -3411,7 +3466,7 @@ is_path_absolute(const char *path) /* I - Input path */ */ 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 */ @@ -3748,18 +3803,19 @@ make_certificate(void) 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))) @@ -3769,6 +3825,25 @@ make_certificate(void) 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..."); @@ -3776,14 +3851,22 @@ make_certificate(void) 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) @@ -3852,7 +3935,6 @@ pipe_command(cupsd_client_t *con, /* I - Client connection */ 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 */ @@ -3883,8 +3965,7 @@ pipe_command(cupsd_client_t *con, /* I - Client connection */ "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)); @@ -3911,10 +3992,12 @@ pipe_command(cupsd_client_t *con, /* I - Client connection */ 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; @@ -4045,18 +4128,15 @@ pipe_command(cupsd_client_t *con, /* I - Client connection */ 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 @@ -4100,8 +4180,6 @@ pipe_command(cupsd_client_t *con, /* I - Client connection */ if (cupsdOpenPipe(fds)) { - cupsdClearString(&query_string); - cupsdLogMessage(CUPSD_LOG_ERROR, "Unable to create pipes for CGI %s - %s", argv[0], strerror(errno)); return (0); @@ -4139,8 +4217,6 @@ pipe_command(cupsd_client_t *con, /* I - Client connection */ close(fds[1]); } - cupsdClearString(&query_string); - return (pid); } @@ -4201,5 +4277,5 @@ write_file(cupsd_client_t *con, /* I - Client connection */ /* - * 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 $". */ diff --git a/scheduler/client.h b/scheduler/client.h index 9f98df2ae..d11feb836 100644 --- a/scheduler/client.h +++ b/scheduler/client.h @@ -1,5 +1,5 @@ /* - * "$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. * @@ -41,7 +41,8 @@ struct cupsd_client_s /* 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) */ @@ -122,5 +123,5 @@ extern int cupsdWriteClient(cupsd_client_t *con); /* - * 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 $". */ diff --git a/scheduler/conf.c b/scheduler/conf.c index 4d4f1cf85..c8a3afa43 100644 --- a/scheduler/conf.c +++ b/scheduler/conf.c @@ -1,5 +1,5 @@ /* - * "$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). * @@ -1316,7 +1316,7 @@ get_addr_and_mask(const char *value, /* I - String from config file */ * 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) @@ -1501,7 +1501,7 @@ get_addr_and_mask(const char *value, /* I - String from config file */ 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]); @@ -1990,7 +1990,7 @@ parse_protocols(const char *s) /* I - Space-delimited protocols */ protocols |= BROWSE_DNSSD; else if (!strcasecmp(valstart, "all")) protocols |= BROWSE_ALL; - else + else if (strcasecmp(valstart, "none")) return (-1); for (valstart = valend; *valstart; valstart ++) @@ -3289,5 +3289,5 @@ read_policy(cups_file_t *fp, /* I - Configuration file */ /* - * 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 $". */ diff --git a/scheduler/cups-driverd.c b/scheduler/cups-driverd.c index 1e0b1e45b..a51e4a934 100644 --- a/scheduler/cups-driverd.c +++ b/scheduler/cups-driverd.c @@ -1,5 +1,5 @@ /* - * "$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). * @@ -147,6 +147,7 @@ add_ppd(const char *name, /* I - PPD name */ size_t size) /* I - File size */ { ppd_info_t *ppd; /* PPD */ + char *recommended; /* Foomatic driver string */ /* @@ -197,6 +198,14 @@ add_ppd(const char *name, /* I - PPD name */ 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... */ @@ -1113,5 +1122,5 @@ load_drivers(void) /* - * 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 $". */ diff --git a/scheduler/dirsvc.c b/scheduler/dirsvc.c index 4dff6f634..bc5b3a466 100644 --- a/scheduler/dirsvc.c +++ b/scheduler/dirsvc.c @@ -1,9 +1,9 @@ /* - * "$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 @@ -163,7 +163,7 @@ cupsdLoadRemoteCache(void) * 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."); @@ -3192,5 +3192,5 @@ slp_url_callback( /* - * 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 $". */ diff --git a/scheduler/ipp.c b/scheduler/ipp.c index 15803a433..f96d2bf13 100644 --- a/scheduler/ipp.c +++ b/scheduler/ipp.c @@ -1,5 +1,5 @@ /* - * "$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. * @@ -5372,7 +5372,10 @@ get_jobs(cupsd_client_t *con, /* I - Client connection */ return; } else + { + dtype &= CUPS_PRINTER_CLASS; dmask = CUPS_PRINTER_CLASS; + } /* * Check policy... @@ -9158,5 +9161,5 @@ validate_user(cupsd_job_t *job, /* I - Job */ /* - * 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 $". */ diff --git a/scheduler/job.c b/scheduler/job.c index 47a837564..f219c6980 100644 --- a/scheduler/job.c +++ b/scheduler/job.c @@ -1,5 +1,5 @@ /* - * "$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). * @@ -373,13 +373,11 @@ cupsdCheckJobs(void) 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) @@ -1497,7 +1495,7 @@ cupsdSetJobHoldUntil(cupsd_job_t *job, /* I - Job */ */ 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", @@ -3469,5 +3467,5 @@ unload_job(cupsd_job_t *job) /* I - Job */ /* - * 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 $". */ diff --git a/scripting/java/src/com/easysw/cups/Base64Coder.java b/scripting/java/src/com/easysw/cups/Base64Coder.java new file mode 100644 index 000000000..0b2958df1 --- /dev/null +++ b/scripting/java/src/com/easysw/cups/Base64Coder.java @@ -0,0 +1,145 @@ +package com.easysw.cups; + +/** +* A Base64 Encoder/Decoder. +* +*

+* This class is used to encode and decode data in Base64 format as described in RFC 1521. +* +*

+* This is "Open Source" software and released under the GNU/LGPL license.
+* It is provided "as is" without warranty of any kind.
+* Copyright 2003: Christian d'Heureuse, Inventec Informatik AG, Switzerland.
+* Home page: www.source-code.biz
+* +*

+* Version history:
+* 2003-07-22 Christian d'Heureuse (chdh): Module created.
+* 2005-08-11 chdh: Lincense changed from GPL to LGPL.
+* 2006-11-21 chdh:
+*   Method encode(String) renamed to encodeString(String).
+*   Method decode(String) renamed to decodeString(String).
+*   New method encode(byte[],int) added.
+*   New method decode(String) added.
+*/ + +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; iin. +* @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 (opIPPBase64Encoder 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. - } -} - diff --git a/scripting/java/src/com/easysw/cups/IPPHttp.java b/scripting/java/src/com/easysw/cups/IPPHttp.java index f53bdff7b..e5307399f 100644 --- a/scripting/java/src/com/easysw/cups/IPPHttp.java +++ b/scripting/java/src/com/easysw/cups/IPPHttp.java @@ -1,13 +1,13 @@ 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 @@ -19,11 +19,11 @@ package com.easysw.cups; * 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/ */ /** @@ -31,7 +31,7 @@ package com.easysw.cups; * server, and processing responses. * * @author TDB - * @version 1.0 + * @version 1.1 * @since JDK1.3 */ @@ -483,8 +483,7 @@ public class IPPHttp 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()); } diff --git a/scripting/java/src/com/easysw/cups/class.list b/scripting/java/src/com/easysw/cups/class.list index 8211b4644..fec319bbf 100644 --- a/scripting/java/src/com/easysw/cups/class.list +++ b/scripting/java/src/com/easysw/cups/class.list @@ -1,4 +1,4 @@ -IPPBase64Encoder +Base64Coder IPPDefs IPPError IPPStatus diff --git a/systemv/lpoptions.c b/systemv/lpoptions.c index 3eec93def..e69bd5a6f 100644 --- a/systemv/lpoptions.c +++ b/systemv/lpoptions.c @@ -1,5 +1,5 @@ /* - * "$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). * @@ -440,8 +440,8 @@ list_options(cups_dest_t *dest) /* I - Destination to list */ 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; } @@ -484,5 +484,5 @@ usage(void) /* - * 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 $". */ diff --git a/templates/de/header.tmpl.in b/templates/de/header.tmpl.in index 6ece4d7b1..82692caae 100644 --- a/templates/de/header.tmpl.in +++ b/templates/de/header.tmpl.in @@ -12,14 +12,14 @@ - + - - + diff --git a/templates/es/header.tmpl.in b/templates/es/header.tmpl.in index eaf19b524..570be1b6a 100644 --- a/templates/es/header.tmpl.in +++ b/templates/es/header.tmpl.in @@ -12,14 +12,14 @@

{title}

+
{?job_name=?Unbekannt:{job_name}}  {job_originating_user_name}  {job_k_octets}k {job_media_sheets_completed=0?Unbekannt:{?job_media_sheets_completed}}{job_media_sheets_completed=0?Unbekannt:{?job_media_sheets_completed}}  {job_state=3?schwebend seit
{time_at_creation}:{job_state=4?angehalten seit
{time_at_creation}: {job_state=5?verarbeitet seit
{time_at_processing}:{job_state=6?gestoppt um
{time_at_completed}: {job_state=7?abgebrochen um
{time_at_completed}:{job_state=8?aborted:beendet um
{time_at_completed}}}}}}} 
- + - - + diff --git a/templates/et/header.tmpl.in b/templates/et/header.tmpl.in index 33e0b966b..24243d41f 100644 --- a/templates/et/header.tmpl.in +++ b/templates/et/header.tmpl.in @@ -12,14 +12,14 @@

{title}

+
{?job_name=?Desconocido:{job_name}}  {job_originating_user_name}  {job_k_octets}k {job_media_sheets_completed=0?Desconocido:{?job_media_sheets_completed}}{job_media_sheets_completed=0?Desconocido:{?job_media_sheets_completed}}  {job_state=3?pendiente desde
{time_at_creation}:{job_state=4?retenido desde
{time_at_creation}: {job_state=5?en proceso desde
{time_at_processing}:{job_state=6?parado: {job_state=7?cancelado el
{time_at_completed}:{job_state=8?abandonado:completado el
{time_at_completed}}}}}}} 
- + - - + diff --git a/templates/fr/add-class.tmpl b/templates/fr/add-class.tmpl new file mode 100644 index 000000000..0fca49e55 --- /dev/null +++ b/templates/fr/add-class.tmpl @@ -0,0 +1,66 @@ + + + +

Ajouter une classe

+ +

{title}

+
{?job_name=?Teadmata:{job_name}}  {job_originating_user_name}  {job_k_octets}k {job_media_sheets_completed=0?Teadmata:{?job_media_sheets_completed}}{job_media_sheets_completed=0?Teadmata:{?job_media_sheets_completed}}  {job_state=3?ootel alates
{time_at_creation}:{job_state=4?hoitakse alates
{time_at_creation}: {job_state=5?töötluses alates
{time_at_processing}:{job_state=6?peatatud: {job_state=7?katkestatud
{time_at_completed}:{job_state=8?loobutud:lõpetatud
{time_at_completed}}}}}}} 
+ + + + + + + + + + + + + + + + + + + + +
Nom :
Lieu :
Description :
Membres : + +
+ + +

+ + +

Ajouter une classe

+ + + + + + + + + + + + + + + + + + + + + + +
Nom :
Lieu :
Description :
Membres : + +
+ +
diff --git a/templates/fr/add-printer.tmpl b/templates/fr/add-printer.tmpl new file mode 100644 index 000000000..f039b95fe --- /dev/null +++ b/templates/fr/add-printer.tmpl @@ -0,0 +1,56 @@ +
+ + +

Ajouter une nouvelle imprimante

+ + + + + + + + + + + + + + + + + + +
Nom :
+( Peut comporter tout caractère imprimable, "/", "#", et espace exceptés )
Lieu :
+( Lieu compréhensible pour un utilisateur, comme "Labo 1" )
Description :
+( Description compréhensible pour un utilisateur, comme "HP LaserJet recto/verso" )
+ +
+
+ + +

Ajouter une nouvelle imprimante

+ + + + + + + + + + + + + + + + + + +
Nom :
+( Peut comporter tout caractère imprimable, "/", "#", et espace exceptés )
Lieu :
+( Lieu compréhensible pour un utilisateur, comme "Labo 1" )
Description :
+( Description compréhensible pour un utilisateur, comme "HP LaserJet recto/verso" )
+ +
diff --git a/templates/fr/admin.tmpl b/templates/fr/admin.tmpl new file mode 100644 index 000000000..a76ce3636 --- /dev/null +++ b/templates/fr/admin.tmpl @@ -0,0 +1,166 @@ + + +
+ +

Imprimantes

+ +

+Ajouter une imprimante + +{have_samba?Exporter les imprimantes vers SAMBA:} +

+ +{#device_uri=0?:

Nouvelles imprimantes détectées:

    {[device_uri] +
  • Ajouter cette imprimante +{device_make_and_model} ({device_info})
  • +}
} + +

Classes

+ +

+ + +

+ +

Tâches d'impression

+ +

+Administrer les
+tâches +

+ +
      + +

Serveur

+ +

+Éditer le fichier de
+configuration +Liste des accès +Liste des erreurs +Liste des pages +

+ +{SETTINGS_ERROR?

{SETTINGS_MESSAGE}

+
{SETTINGS_ERROR}
: + +
+ +

Paramètres de base du serveur :

+ +

+ Afficher les +imprimantes partagées par d'autres systèmes
+ Partager les +imprimantes publiques connectées à ce système
+ Autoriser +l'administration à distance
+ Autoriser les +utilisateurs à annuler n'importe quelle tâche ( pas seulement les leurs )
+ Enregistrer les +informations de debug pour la résolution de problèmes

+ +

+ +
} + +
+ + +
+ +

Imprimantes

+ +

+Ajouter une imprimante + +{have_samba?Exporter les imprimantes vers SAMBA:} +

+ +{#device_uri=0?:

Nouvelles imprimantes détectées:

    {[device_uri] +
  • Ajouter cette imprimante +{device_make_and_model} ({device_info})
  • +}
} + +

Classes

+ +

+ + +

+ +

Tâches d'impression

+ +

+Administrer les
+tâches +

+ +
      + +

Serveur

+ +

+Éditer le fichier de
+configuration +Liste des accès +Liste des erreurs +Liste des pages +

+ +{SETTINGS_ERROR?

{SETTINGS_MESSAGE}

+
{SETTINGS_ERROR}
: + +
+ +

Paramètres de base du serveur :

+ +

+ Afficher les +imprimantes partagées par d'autres systèmes
+ Partager les +imprimantes publiques connectées à ce système
+ Autoriser +l'administration à distance
+ Autoriser les +utilisateurs à annuler n'importe quelle tâche ( pas seulement les leurs )
+ Enregistrer les +informations de debug pour la résolution de problèmes

+ +

+ +
} + +
diff --git a/templates/fr/choose-device.tmpl b/templates/fr/choose-device.tmpl new file mode 100644 index 000000000..89f774b29 --- /dev/null +++ b/templates/fr/choose-device.tmpl @@ -0,0 +1,52 @@ +
+ + + + + + +

Matériel pour {printer_name}

+ + + + + + + + + + +
Matériel : + +
+ +
+
+ + + + + + +

Matériel pour {printer_name}

+ + + + + + + + + + +
Matériel : + +
+ +
diff --git a/templates/fr/choose-make.tmpl b/templates/fr/choose-make.tmpl new file mode 100644 index 000000000..c8b216a08 --- /dev/null +++ b/templates/fr/choose-make.tmpl @@ -0,0 +1,84 @@ +
+ + + + + + + + + + +

Marque/Fabricant pour {printer_name}

+ + + + + + + + + + + + + + + + + + + + + + +
Marque : + +
 
Ou donnez un fichier PPD :
+ +
+
+ + + + + + + + + + +

Marque/Fabricant pour {printer_name}

+ + + + + + + + + + + + + + + + + + + + + + +
Marque : + +
 
Ou donnez un fichier PPD :
+ +
diff --git a/templates/fr/choose-model.tmpl b/templates/fr/choose-model.tmpl new file mode 100644 index 000000000..1ee051ebb --- /dev/null +++ b/templates/fr/choose-model.tmpl @@ -0,0 +1,68 @@ +
+ + + + + + + + + + +

Modèle/Pilote pour {printer_name}

+ + + + + + + + + + + + + + +
Modèle: + +
Ou donnez un fichier PPD :
+ +
+
+ + + + + + + + + + +

Modèle/Pilote pour {printer_name}

+ + + + + + + + + + + + + + +
Modèle: + +
Ou donnez un fichier PPD :
+ +
diff --git a/templates/fr/choose-serial.tmpl b/templates/fr/choose-serial.tmpl new file mode 100644 index 000000000..14cc4a3f1 --- /dev/null +++ b/templates/fr/choose-serial.tmpl @@ -0,0 +1,94 @@ +
+ + + + + + +

Paramètres du port série pour {printer_name}

+ + + + + + + + + + + + + + + + + + + + + + +
Baud/s :
Parité :
Bits données :
Contrôle de flux :
+ +
+
+ + + + + + +

Paramètres du port série pour {printer_name}

+ + + + + + + + + + + + + + + + + + + + + + +
Baud/s :
Parité :
Bits données :
Contrôle de flux :
+ +
diff --git a/templates/fr/choose-uri.tmpl b/templates/fr/choose-uri.tmpl new file mode 100644 index 000000000..f9d2873aa --- /dev/null +++ b/templates/fr/choose-uri.tmpl @@ -0,0 +1,84 @@ +
+ + + + + + +

URI du matériel pour {printer_name}

+ + + + + + + + + + + + + + +
URI du matériel :
Exemples : +
+    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
+
+ +

cf. "Network +Printers" pour construire l'URI à employer avec votre imprimante.

+ +
+ +
+
+ + + + + + +

URI du matériel pour {printer_name}

+ + + + + + + + + + + + + + +
URI du matériel :
Exemples : +
+    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
+
+ +

cf. "Network +Printers" pour construire l'URI à employer avec votre imprimante.

+ +
+ +
diff --git a/templates/fr/class-added.tmpl b/templates/fr/class-added.tmpl new file mode 100644 index 000000000..be95a0ade --- /dev/null +++ b/templates/fr/class-added.tmpl @@ -0,0 +1,2 @@ +

La classe {printer_name} a bien été ajoutée. +

La classe {printer_name} a bien été ajoutée. diff --git a/templates/fr/class-confirm.tmpl b/templates/fr/class-confirm.tmpl new file mode 100644 index 000000000..4b8081edf --- /dev/null +++ b/templates/fr/class-confirm.tmpl @@ -0,0 +1,14 @@ +

Attention : Êtes vous sûr(e) de vouloir supprimer la classe +{printer_name}?

+ +

Supprimer la classe

+

Attention : Êtes vous sûr(e) de vouloir supprimer la classe +{printer_name}?

+ +

Supprimer la classe

diff --git a/templates/fr/class-deleted.tmpl b/templates/fr/class-deleted.tmpl new file mode 100644 index 000000000..9cd00fd82 --- /dev/null +++ b/templates/fr/class-deleted.tmpl @@ -0,0 +1,2 @@ +

La classe {printer_name} a bien été supprimée. +

La classe {printer_name} a bien été supprimée. diff --git a/templates/fr/class-jobs-header.tmpl b/templates/fr/class-jobs-header.tmpl new file mode 100644 index 000000000..481b044c9 --- /dev/null +++ b/templates/fr/class-jobs-header.tmpl @@ -0,0 +1,2 @@ +

Tâches d'impression

+

Tâches d'impression

diff --git a/templates/fr/class-modified.tmpl b/templates/fr/class-modified.tmpl new file mode 100644 index 000000000..0915550a0 --- /dev/null +++ b/templates/fr/class-modified.tmpl @@ -0,0 +1,2 @@ +

La classe {printer_name} a bien été modifiée. +

La classe {printer_name} a bien été modifiée. diff --git a/templates/fr/classes-header.tmpl b/templates/fr/classes-header.tmpl new file mode 100644 index 000000000..0d8009cfa --- /dev/null +++ b/templates/fr/classes-header.tmpl @@ -0,0 +1,2 @@ +

{total=0?Aucune classe:Affichage de {#printer_name} classe{#printer_name=1?:s} sur {total}}.

+

{total=0?Aucune classe:Affichage de {#printer_name} classe{#printer_name=1?:s} sur {total}}.

diff --git a/templates/fr/classes.tmpl b/templates/fr/classes.tmpl new file mode 100644 index 000000000..99706b9f2 --- /dev/null +++ b/templates/fr/classes.tmpl @@ -0,0 +1,108 @@ +{#printer_name=0?: +{[printer_name] +

{printer_name}{default_name={printer_name}? ( Imprimante par défaut ) :} +{?printer_state_message=?:"{printer_state_message}"}

+ + + + + + +
+Description : {printer_info}
+Lieu : {printer_location}
+État de la classe: {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=?:
Membres : {member_uris}} + +

+ +Imprimer une page de test +{printer_state=5? + +Démarrer la classe +: + +Arrêter la classe +} +{printer_is_accepting_jobs=0? + +Accepter les tâches +: + +Rejeter les tâches +} + +Annuler toutes les tâches +{printer_is_shared=0? + +Publier l'imprimante +: + +Cacher l'imprimante +} + +Modifier la classe + +Supprimer la classe + +Choisir par défaut + +Définir les autorisations +

+
+}} +{#printer_name=0?: +{[printer_name] +

{printer_name}{default_name={printer_name}? ( Imprimante par défaut ) :} +{?printer_state_message=?:"{printer_state_message}"}

+ + + + + + +
+Description : {printer_info}
+Lieu : {printer_location}
+État de la classe: {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=?:
Membres : {member_uris}} + +

+ +Imprimer une page de test +{printer_state=5? + +Démarrer la classe +: + +Arrêter la classe +} +{printer_is_accepting_jobs=0? + +Accepter les tâches +: + +Rejeter les tâches +} + +Annuler toutes les tâches +{printer_is_shared=0? + +Publier l'imprimante +: + +Cacher l'imprimante +} + +Modifier la classe + +Supprimer la classe + +Choisir par défaut + +Définir les autorisations +

+
+}} diff --git a/templates/fr/edit-config.tmpl.in b/templates/fr/edit-config.tmpl.in new file mode 100644 index 000000000..95163c0db --- /dev/null +++ b/templates/fr/edit-config.tmpl.in @@ -0,0 +1,182 @@ + + +

Ficher de configuration du serveur

+ +
+ + + + + +

+ +
+ + +

Ficher de configuration du serveur

+ +
+ + + + + +

+ +
diff --git a/templates/fr/error-op.tmpl b/templates/fr/error-op.tmpl new file mode 100644 index 000000000..dac3e7a3a --- /dev/null +++ b/templates/fr/error-op.tmpl @@ -0,0 +1,6 @@ +

Erreur :

+ +
Opération inconnue : "{op}"!
+

Erreur :

+ +
Opération inconnue : "{op}"!
diff --git a/templates/fr/error.tmpl b/templates/fr/error.tmpl new file mode 100644 index 000000000..d51750e00 --- /dev/null +++ b/templates/fr/error.tmpl @@ -0,0 +1,6 @@ +

{?message?{message}:Erreur :}

+ +
{error}
+

{?message?{message}:Erreur :}

+ +
{error}
diff --git a/templates/fr/header.tmpl.in b/templates/fr/header.tmpl.in new file mode 100644 index 000000000..39b44f919 --- /dev/null +++ b/templates/fr/header.tmpl.in @@ -0,0 +1,126 @@ + + + + + {title} - CUPS @CUPS_VERSION@@CUPS_REVISION@ + + + + {refresh_page?:} + + + + + + + + + + + + + + + + + + +

{title}

+ +  Accueil   + +   Administration   + +   Classes   + +   Documentation/Aide   + +   Tâches   + +   Imprimantes   + +
  + + + + + {title} - CUPS @CUPS_VERSION@@CUPS_REVISION@ + + + + {refresh_page?:} + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/fr/option-conflict.tmpl b/templates/fr/option-conflict.tmpl new file mode 100644 index 000000000..1742255bc --- /dev/null +++ b/templates/fr/option-conflict.tmpl @@ -0,0 +1,14 @@ +

Erreur : Les options suivantes sont incompatibles entre elles :

+ + + +

Veuillez modifier une ou plusieurs des ces options pour résoudre les conflits.

+

Erreur : Les options suivantes sont incompatibles entre elles :

+ + + +

Veuillez modifier une ou plusieurs des ces options pour résoudre les conflits.

diff --git a/templates/fr/option-header.tmpl b/templates/fr/option-header.tmpl new file mode 100644 index 000000000..b1b90ccaf --- /dev/null +++ b/templates/fr/option-header.tmpl @@ -0,0 +1,6 @@ +

{printer_name} : {group}

+ +

{title}

+ +  Accueil   + +   Administration   + +   Classes   + +   Documentation/Aide   + +   Tâches   + +   Imprimantes   + +
  diff --git a/templates/fr/help-header.tmpl b/templates/fr/help-header.tmpl new file mode 100644 index 000000000..89e3673a0 --- /dev/null +++ b/templates/fr/help-header.tmpl @@ -0,0 +1,104 @@ +
+{TOPIC?:} + +

Rechercher dans +{HELPTITLE?{HELPTITLE}:{TOPIC?{TOPIC}:Tous les Documents}}: +Clear

+ +
+ + + + +{QUERY?

Résultats de la recherche dans {HELPFILE?{HELPTITLE}:{TOPIC?{TOPIC}:Tous les Documents}}\:

+{QTEXT?:} +:

Aucun résultat.

} +
:} +{HELPTITLE?

{HELPTITLE} +Version imprimable

:

Pages d'aide de CUPS

+ +

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.

+ +

NDT: 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 cups.development +pour en informer les développeurs.

+ +

Si vous êtes un nouvel utilisateur de CUPS, lisez la page "Overview of CUPS". Il est conseillé aux utilisateurs +habitués de lire la page "What's New in CUPS +1.2".

+ +

La page d'accueil de CUPS 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 bug ou des demandes pour de nouvelles +fonctionnalités.

} +
+{TOPIC?:} + +

Rechercher dans +{HELPTITLE?{HELPTITLE}:{TOPIC?{TOPIC}:Tous les Documents}}: +Clear

+ +
+ + + + +{QUERY?

Résultats de la recherche dans {HELPFILE?{HELPTITLE}:{TOPIC?{TOPIC}:Tous les Documents}}\:

+{QTEXT?:} +:

Aucun résultat.

} +
:} +{HELPTITLE?

{HELPTITLE} +Version imprimable

:

Pages d'aide de CUPS

+ +

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.

+ +

NDT: 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 cups.development +pour en informer les développeurs.

+ +

Si vous êtes un nouvel utilisateur de CUPS, lisez la page "Overview of CUPS". Il est conseillé aux utilisateurs +habitués de lire la page "What's New in CUPS +1.2".

+ +

La page d'accueil de CUPS 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 bug ou des demandes pour de nouvelles +fonctionnalités.

} diff --git a/templates/fr/help-printable.tmpl b/templates/fr/help-printable.tmpl new file mode 100644 index 000000000..66617689d --- /dev/null +++ b/templates/fr/help-printable.tmpl @@ -0,0 +1,22 @@ + + + + + {HELPTITLE} + + + + + +

{HELPTITLE}

+ + + + + {HELPTITLE} + + + + + +

{HELPTITLE}

diff --git a/templates/fr/job-cancel.tmpl b/templates/fr/job-cancel.tmpl new file mode 100644 index 000000000..9c2b220f6 --- /dev/null +++ b/templates/fr/job-cancel.tmpl @@ -0,0 +1,2 @@ +

La tâche n°{job_id} a été annulée. +

La tâche n°{job_id} a été annulée. diff --git a/templates/fr/job-hold.tmpl b/templates/fr/job-hold.tmpl new file mode 100644 index 000000000..17e11a4a2 --- /dev/null +++ b/templates/fr/job-hold.tmpl @@ -0,0 +1,2 @@ +

La tâche n°{job_id} est retenue en attente. +

La tâche n°{job_id} est retenue en attente. diff --git a/templates/fr/job-move.tmpl b/templates/fr/job-move.tmpl new file mode 100644 index 000000000..46ff20b51 --- /dev/null +++ b/templates/fr/job-move.tmpl @@ -0,0 +1,44 @@ +

+ +{job_id?:} + +

{job_id?Transférer la tâche n°{job_id}:Transférer toutes les tâches}

+ + + + + + + + + + +
Nouvelle destination : + +
+ +
+
+ +{job_id?:} + +

{job_id?Transférer la tâche n°{job_id}:Transférer toutes les tâches}

+ + + + + + + + + + +
Nouvelle destination : + +
+ +
diff --git a/templates/fr/job-moved.tmpl b/templates/fr/job-moved.tmpl new file mode 100644 index 000000000..acde4b93f --- /dev/null +++ b/templates/fr/job-moved.tmpl @@ -0,0 +1,4 @@ +

{job_id?La tâche n°{job_id}:Toutes les tâches} +ont été transférées vers {job_printer_name}.

+

{job_id?La tâche n°{job_id}:Toutes les tâches} +ont été transférées vers {job_printer_name}.

diff --git a/templates/fr/job-release.tmpl b/templates/fr/job-release.tmpl new file mode 100644 index 000000000..99768e0d2 --- /dev/null +++ b/templates/fr/job-release.tmpl @@ -0,0 +1,2 @@ +

La tâche n°{job_id} a été libérée pour l'impression. +

La tâche n°{job_id} a été libérée pour l'impression. diff --git a/templates/fr/job-restart.tmpl b/templates/fr/job-restart.tmpl new file mode 100644 index 000000000..eec322327 --- /dev/null +++ b/templates/fr/job-restart.tmpl @@ -0,0 +1,2 @@ +

La tâche n°{job_id} a été redémarrée. +

La tâche n°{job_id} a été redémarrée. diff --git a/templates/fr/jobs-header.tmpl b/templates/fr/jobs-header.tmpl new file mode 100644 index 000000000..fef8f08cf --- /dev/null +++ b/templates/fr/jobs-header.tmpl @@ -0,0 +1,32 @@ +

{?which_jobs=?Montrer les tâches terminées +Montrer toutes les tâches:{which_jobs=all?Montrer les tâches terminées +Montrer les tâches en cours:Montrer les tâches en cours +Montrer toutes les tâches}}

+ +

{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}}.

+

{?which_jobs=?Montrer les tâches terminées +Montrer toutes les tâches:{which_jobs=all?Montrer les tâches terminées +Montrer les tâches en cours:Montrer les tâches en cours +Montrer toutes les tâches}}

+ +

{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}}.

diff --git a/templates/fr/jobs.tmpl b/templates/fr/jobs.tmpl new file mode 100644 index 000000000..65e9fa8c5 --- /dev/null +++ b/templates/fr/jobs.tmpl @@ -0,0 +1,84 @@ +{#job_id=0?: + + + + + + + + + + + +{[job_id] + + + + + + + + + +} +
N° Nom Utilisateur Taille Pages Ã‰tat Contrôle 
{job_printer_name}-{job_id} {?job_name=?Inconnue:{job_name}} {job_originating_user_name} {job_k_octets}ko {job_media_sheets_completed=0?Inconnue:{?job_media_sheets_completed}} {job_state=3?en attente depuis le
{time_at_creation}:{job_state=4?retenue depuis le
{time_at_creation}: +{job_state=5?en cours depuis le
{time_at_processing}:{job_state=6?arrêtée: +{job_state=7?annulée le
{time_at_completed}:{job_state=8?abandonnée:terminée le
{time_at_completed}}}}}}} 
+{job_preserved>0? + +Redémarrer la tâche:} +{job_state=4? + +Libérer la tâche:} +{job_state=3? + +Retenir la tâche:} +{job_state<7? + +Annuler la tâche +Transférer la tâche:} + 
+} +{#job_id=0?: + + + + + + + + + + + +{[job_id] + + + + + + + + + +} +
N° Nom Utilisateur Taille Pages Ã‰tat Contrôle 
{job_printer_name}-{job_id} {?job_name=?Inconnue:{job_name}} {job_originating_user_name} {job_k_octets}ko {job_media_sheets_completed=0?Inconnue:{?job_media_sheets_completed}}{job_state=3?en attente depuis le
{time_at_creation}:{job_state=4?retenue depuis le
{time_at_creation}: +{job_state=5?en cours depuis le
{time_at_processing}:{job_state=6?arrêtée: +{job_state=7?annulée le
{time_at_completed}:{job_state=8?abandonnée:terminée le
{time_at_completed}}}}}}} 
+{job_preserved>0? + +Redémarrer la tâche:} +{job_state=4? + +Libérer la tâche:} +{job_state=3? + +Retenir la tâche:} +{job_state<7? + +Annuler la tâche +Transférer la tâche:} + 
+} diff --git a/templates/fr/maintenance.tmpl b/templates/fr/maintenance.tmpl new file mode 100644 index 000000000..25c8f2036 --- /dev/null +++ b/templates/fr/maintenance.tmpl @@ -0,0 +1,4 @@ +

Les commandes de maintenance ont été envoyées ; l'identifiant de tâche est {printer_name}-{job_id}.

+

Les commandes de maintenance ont été envoyées ; l'identifiant de tâche est {printer_name}-{job_id}.

diff --git a/templates/fr/modify-class.tmpl b/templates/fr/modify-class.tmpl new file mode 100644 index 000000000..68a474739 --- /dev/null +++ b/templates/fr/modify-class.tmpl @@ -0,0 +1,68 @@ +
+ + +

Modifier la classe {printer_name}

+ + + + + + + + + + + + + + + + + + + + + + +
Nom : +{printer_name}
Lieu :
Description :
Membres : + +
+ +
+
+ + +

Modifier la classe {printer_name}

+ + + + + + + + + + + + + + + + + + + + + + +
Nom : +{printer_name}
Lieu :
Description :
Membres : + +
+ +
diff --git a/templates/fr/modify-printer.tmpl b/templates/fr/modify-printer.tmpl new file mode 100644 index 000000000..583e60a75 --- /dev/null +++ b/templates/fr/modify-printer.tmpl @@ -0,0 +1,58 @@ +
+ +{?device_uri=?:} +{?printer_make_and_model=?:} + +

Modifier l'imprimante {printer_name}

+ + + + + + + + + + + + + + + + + + +
Nom :{printer_name}
Lieu :
+( Lieu compréhensible pour un utilisateur, comme "Labo 1" )
Description :
+( Description compréhensible pour un utilisateur, comme "HP LaserJet recto/verso" )
+ +
+
+ +{?device_uri=?:} +{?printer_make_and_model=?:} + +

Modifier l'imprimante {printer_name}

+ + + + + + + + + + + + + + + + + + +
Nom :{printer_name}
Lieu :
+( Lieu compréhensible pour un utilisateur, comme "Labo 1" )
Description :
+( Description compréhensible pour un utilisateur, comme "HP LaserJet recto/verso" )
+ +
diff --git a/templates/fr/norestart.tmpl b/templates/fr/norestart.tmpl new file mode 100644 index 000000000..ebf7a03ab --- /dev/null +++ b/templates/fr/norestart.tmpl @@ -0,0 +1,2 @@ +

Le serveur n'a pas été redémarré parce que la configuration n'a pas été modifiée...

+

Le serveur n'a pas été redémarré parce que la configuration n'a pas été modifiée...

diff --git a/templates/fr/option-boolean.tmpl b/templates/fr/option-boolean.tmpl new file mode 100644 index 000000000..044d628c4 --- /dev/null +++ b/templates/fr/option-boolean.tmpl @@ -0,0 +1,14 @@ +
{keytext} : +{[choices]{text}} +
{keytext} : +{[choices]{text}} +
+

{printer_name} : {group}

+ +
diff --git a/templates/fr/option-pickmany.tmpl b/templates/fr/option-pickmany.tmpl new file mode 100644 index 000000000..0ec733dd4 --- /dev/null +++ b/templates/fr/option-pickmany.tmpl @@ -0,0 +1,14 @@ + + + + + + + + diff --git a/templates/fr/option-pickone.tmpl b/templates/fr/option-pickone.tmpl new file mode 100644 index 000000000..780340da8 --- /dev/null +++ b/templates/fr/option-pickone.tmpl @@ -0,0 +1,14 @@ + + + + + + + + diff --git a/templates/fr/option-trailer.tmpl b/templates/fr/option-trailer.tmpl new file mode 100644 index 000000000..7a72a4785 --- /dev/null +++ b/templates/fr/option-trailer.tmpl @@ -0,0 +1,12 @@ + + + + +
{keytext} :
{keytext} :
{keytext} :
{keytext} :
+
diff --git a/templates/fr/pager.tmpl b/templates/fr/pager.tmpl new file mode 100644 index 000000000..39dc84643 --- /dev/null +++ b/templates/fr/pager.tmpl @@ -0,0 +1,22 @@ + + + + + + +
{PREVURL?Montrer les précédentes: }{ORDER=dec?Par ordre croissant:Par ordre décroissant}{NEXTURL?Montrer les suivantes: }
+ + + + + + +
{PREVURL?Montrer les précédentes: }{ORDER=dec?Par ordre croissant:Par ordre décroissant}{NEXTURL?Montrer les suivantes: }
diff --git a/templates/fr/printer-accept.tmpl b/templates/fr/printer-accept.tmpl new file mode 100644 index 000000000..da26c7ba4 --- /dev/null +++ b/templates/fr/printer-accept.tmpl @@ -0,0 +1,6 @@ +

{is_class?Class:Printer} {printer_name} +accepte désormais les tâches d'impression.

+

{is_class?Class:Printer} {printer_name} +accepte désormais les tâches d'impression.

diff --git a/templates/fr/printer-added.tmpl b/templates/fr/printer-added.tmpl new file mode 100644 index 000000000..14302a368 --- /dev/null +++ b/templates/fr/printer-added.tmpl @@ -0,0 +1,2 @@ +

L'imprimante {printer_name} a bien été ajoutée. +

L'imprimante {printer_name} a bien été ajoutée. diff --git a/templates/fr/printer-configured.tmpl b/templates/fr/printer-configured.tmpl new file mode 100644 index 000000000..284b753b2 --- /dev/null +++ b/templates/fr/printer-configured.tmpl @@ -0,0 +1,2 @@ +

L'imprimante {printer_name} a bien été configurée. +

L'imprimante {printer_name} a bien été configurée. diff --git a/templates/fr/printer-confirm.tmpl b/templates/fr/printer-confirm.tmpl new file mode 100644 index 000000000..c1010d785 --- /dev/null +++ b/templates/fr/printer-confirm.tmpl @@ -0,0 +1,14 @@ +

Attention : Êtes-vous sûr(e) de vouloir supprimer l'imprimante +{printer_name} ?

+ +

Supprimer l'imprimante

+

Attention : Êtes-vous sûr(e) de vouloir supprimer l'imprimante +{printer_name} ?

+ +

Supprimer l'imprimante

diff --git a/templates/fr/printer-default.tmpl b/templates/fr/printer-default.tmpl new file mode 100644 index 000000000..fbdcbf207 --- /dev/null +++ b/templates/fr/printer-default.tmpl @@ -0,0 +1,14 @@ +

{is_class?La classe:L'imprimante} {printer_name} +a été définie comme imprimante par défaut sur le serveur.

+ +
NB: Pour un utilisateur qui a défini un paramètre par défaut +via la commande lpoptions, le paramètre du serveur sera +ignoré.
+

{is_class?La classe:L'imprimante} {printer_name} +a été définie comme imprimante par défaut sur le serveur.

+ +
NB: Pour un utilisateur qui a défini un paramètre par défaut +via la commande lpoptions, le paramètre du serveur sera +ignoré.
diff --git a/templates/fr/printer-deleted.tmpl b/templates/fr/printer-deleted.tmpl new file mode 100644 index 000000000..c1fc3a18c --- /dev/null +++ b/templates/fr/printer-deleted.tmpl @@ -0,0 +1,2 @@ +

L'imprimante {printer_name} a bien été supprimée. +

L'imprimante {printer_name} a bien été supprimée. diff --git a/templates/fr/printer-jobs-header.tmpl b/templates/fr/printer-jobs-header.tmpl new file mode 100644 index 000000000..481b044c9 --- /dev/null +++ b/templates/fr/printer-jobs-header.tmpl @@ -0,0 +1,2 @@ +

Tâches d'impression

+

Tâches d'impression

diff --git a/templates/fr/printer-modified.tmpl b/templates/fr/printer-modified.tmpl new file mode 100644 index 000000000..07b1033eb --- /dev/null +++ b/templates/fr/printer-modified.tmpl @@ -0,0 +1,2 @@ +

L'imprimante {printer_name} a bien été modifiée. +

L'imprimante {printer_name} a bien été modifiée. diff --git a/templates/fr/printer-purge.tmpl b/templates/fr/printer-purge.tmpl new file mode 100644 index 000000000..e3550fe5d --- /dev/null +++ b/templates/fr/printer-purge.tmpl @@ -0,0 +1,6 @@ +

{is_class?La classe:L'imprimante} {printer_name} +a été nettoyée de toute tâche... d'impression !

+

{is_class?La classe:L'imprimante} {printer_name} +a été nettoyée de toute tâche... d'impression !

diff --git a/templates/fr/printer-reject.tmpl b/templates/fr/printer-reject.tmpl new file mode 100644 index 000000000..78fb124b9 --- /dev/null +++ b/templates/fr/printer-reject.tmpl @@ -0,0 +1,6 @@ +

{is_class?La classe:L'imprimante} {printer_name} +n'accepte plus les tâches d'impression.

+

{is_class?La classe:L'imprimante} {printer_name} +n'accepte plus les tâches d'impression.

diff --git a/templates/fr/printer-start.tmpl b/templates/fr/printer-start.tmpl new file mode 100644 index 000000000..38af56631 --- /dev/null +++ b/templates/fr/printer-start.tmpl @@ -0,0 +1,6 @@ +

{is_class?La classe:L'imprimante} {printer_name} +a été démarrée.

+

{is_class?La classe:L'imprimante} {printer_name} +a été démarrée.

diff --git a/templates/fr/printer-stop.tmpl b/templates/fr/printer-stop.tmpl new file mode 100644 index 000000000..dd7bb22da --- /dev/null +++ b/templates/fr/printer-stop.tmpl @@ -0,0 +1,6 @@ +

{is_class?La classe:L'imprimante} {printer_name} +a été arrêtée.

+

{is_class?La classe:L'imprimante} {printer_name} +a été arrêtée.

diff --git a/templates/fr/printers-header.tmpl b/templates/fr/printers-header.tmpl new file mode 100644 index 000000000..87754f431 --- /dev/null +++ b/templates/fr/printers-header.tmpl @@ -0,0 +1,2 @@ +

{total=0?Aucune imprimante:Affichage de {#printer_name} imprimante{#printer_name=1?:s}} sur {total}.

+

{total=0?Aucune imprimante:Affichage de {#printer_name} imprimante{#printer_name=1?:s}} sur {total}.

diff --git a/templates/fr/printers.tmpl b/templates/fr/printers.tmpl new file mode 100644 index 000000000..ac7d24902 --- /dev/null +++ b/templates/fr/printers.tmpl @@ -0,0 +1,132 @@ +{printer_type?:}{#printer_name=0?: +{[printer_name] +

{printer_name}{default_name={printer_name}? ( +imprimante par défaut ) :} +{?printer_state_message=?:"{printer_state_message}"}

+ + + + + + +
+ +Description : {printer_info}
+Lieu : {printer_location}
+Marque et modèle : {printer_make_and_model}
+État de l'imprimante : {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=?:
URI du matériel : {device_uri}} + +

+ +Imprimer la page de test CUPS +{?cupscommand=1? +Nettoyer les têtes d'impression + +Imprimer la page de test de l'imprimante:} +{printer_state=5? + +Démarrer l'imprimante +: + +Arrêter l'imprimante +} +{printer_is_accepting_jobs=0? + +Accepter les tâches +: + +Rejeter les tâches +} + +Transférer toutes les tâches + +Annuler toutes les tâches +{printer_is_shared=0? + +Publier l'imprimante +: + +Cacher l'imprimante +} + +Modifier l'imprimante + +Définir les options de l'imprimante + +Supprimer l'imprimante + +Définir par défaut + +Définir les autorisations +

+
+}} +{printer_type?:}{#printer_name=0?: +{[printer_name] +

{printer_name}{default_name={printer_name}? ( +imprimante par défaut ) :} +{?printer_state_message=?:"{printer_state_message}"}

+ + + + + + +
+ +Description : {printer_info}
+Lieu : {printer_location}
+Marque et modèle : {printer_make_and_model}
+État de l'imprimante : {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=?:
URI du matériel : {device_uri}} + +

+ +Imprimer la page de test CUPS +{?cupscommand=1? +Nettoyer les têtes d'impression + +Imprimer la page de test de l'imprimante:} +{printer_state=5? + +Démarrer l'imprimante +: + +Arrêter l'imprimante +} +{printer_is_accepting_jobs=0? + +Accepter les tâches +: + +Rejeter les tâches +} + +Transférer toutes les tâches + +Annuler toutes les tâches +{printer_is_shared=0? + +Publier l'imprimante +: + +Cacher l'imprimante +} + +Modifier l'imprimante + +Définir les options de l'imprimante + +Supprimer l'imprimante + +Définir par défaut + +Définir les autorisations +

+
+}} diff --git a/templates/fr/restart.tmpl b/templates/fr/restart.tmpl new file mode 100644 index 000000000..f2485c5c4 --- /dev/null +++ b/templates/fr/restart.tmpl @@ -0,0 +1,2 @@ +

Attendez s'il vous plaît, que le serveur redémarre...

+

Attendez s'il vous plaît, que le serveur redémarre...

diff --git a/templates/fr/samba-export.tmpl b/templates/fr/samba-export.tmpl new file mode 100644 index 000000000..9ed3259be --- /dev/null +++ b/templates/fr/samba-export.tmpl @@ -0,0 +1,106 @@ + + +
+ + +

Exporter des imprimantes vers SAMBA

+ +{error?

Impossible d'exporter les imprimantes vers SAMBA \:

+
{error}
+

Regardez le fichier error_log pour plus d'informations.

: +

Cette page vous permet d'exporter des imprimantes vers SAMBA de sorte que des +clients Windows puissent y accéder via l'icône Voisinage réseau ou +Favoris réseau du bureau. Vous devez au préalable installer les +pilotes Windows d'imprimante PostScript : cf. la page man cupsaddsmb(8).

} + + + + + + + + + + + + + + + + + + +
Imprimantes : +
+ Exporter toutes les imprimantes +
Utilisateur SAMBA : ( indispensable )
Mot-de-passe SAMBA : ( indispensable )
+ +
+ + +
+ + +

Exporter des imprimantes vers SAMBA

+ +{error?

Impossible d'exporter les imprimantes vers SAMBA \:

+
{error}
+

Regardez le fichier error_log pour plus d'informations.

: +

Cette page vous permet d'exporter des imprimantes vers SAMBA de sorte que des +clients Windows puissent y accéder via l'icône Voisinage réseau ou +Favoris réseau du bureau. Vous devez au préalable installer les +pilotes Windows d'imprimante PostScript : cf. la page man cupsaddsmb(8).

} + + + + + + + + + + + + + + + + + + +
Imprimantes : +
+ Exporter toutes les imprimantes +
Utilisateur SAMBA : ( indispensable )
Mot-de-passe SAMBA : ( indispensable )
+ +
diff --git a/templates/fr/samba-exported.tmpl b/templates/fr/samba-exported.tmpl new file mode 100644 index 000000000..cac308431 --- /dev/null +++ b/templates/fr/samba-exported.tmpl @@ -0,0 +1,2 @@ +

Les imprimantes ont bien été exportées vers SAMBA.

+

Les imprimantes ont bien été exportées vers SAMBA.

diff --git a/templates/fr/search.tmpl b/templates/fr/search.tmpl new file mode 100644 index 000000000..91f673e80 --- /dev/null +++ b/templates/fr/search.tmpl @@ -0,0 +1,26 @@ +
+{WHICH_JOBS?:} +{ORDER?:} + +

Rechercher dans +{SEARCH_DEST?{SEARCH_DEST}:{SECTION=classes?les classes:{SECTION=jobs?les tâches:les imprimantes}}} : + +Nettoyer

+ +
+
+{WHICH_JOBS?:} +{ORDER?:} + +

Rechercher dans +{SEARCH_DEST?{SEARCH_DEST}:{SECTION=classes?les classes:{SECTION=jobs?les tâches:les imprimantes}}} : + +Nettoyer

+ +
diff --git a/templates/fr/set-printer-options-header.tmpl b/templates/fr/set-printer-options-header.tmpl new file mode 100644 index 000000000..84536d545 --- /dev/null +++ b/templates/fr/set-printer-options-header.tmpl @@ -0,0 +1,6 @@ +
+ + + + + diff --git a/templates/fr/set-printer-options-trailer.tmpl b/templates/fr/set-printer-options-trailer.tmpl new file mode 100644 index 000000000..3f6f64a74 --- /dev/null +++ b/templates/fr/set-printer-options-trailer.tmpl @@ -0,0 +1,2 @@ +
+ diff --git a/templates/fr/test-page.tmpl b/templates/fr/test-page.tmpl new file mode 100644 index 000000000..bf79bd931 --- /dev/null +++ b/templates/fr/test-page.tmpl @@ -0,0 +1,4 @@ +

La page de test a été envoyée ; l'identifiant de la tâche est +{printer_name}-{job_id}.

+

La page de test a été envoyée ; l'identifiant de la tâche est +{printer_name}-{job_id}.

diff --git a/templates/fr/trailer.tmpl b/templates/fr/trailer.tmpl new file mode 100644 index 000000000..d9b74c3dd --- /dev/null +++ b/templates/fr/trailer.tmpl @@ -0,0 +1,42 @@ + +  + + + + + +

Le logiciel CUPS ( Common UNIX Printing System ) et son logo sont +propriété commerciale de Easy Software +Products. CUPS est sous copyright 1997-2006 par Easy Software Products, Tous +Droits Réservés.

+ + + + + + + + + +  + + + + + +

Le logiciel CUPS ( Common UNIX Printing System ) et son logo sont +propriété commerciale de Easy Software +Products. CUPS est sous copyright 1997-2006 par Easy Software Products, Tous +Droits Réservés.

+ + + + + + + + diff --git a/templates/fr/users.tmpl b/templates/fr/users.tmpl new file mode 100644 index 000000000..b2d29141f --- /dev/null +++ b/templates/fr/users.tmpl @@ -0,0 +1,52 @@ +
+ + +{IS_CLASS?:} + +

Utilisateurs autorisés à utiliser {printer_name}

+ + + + + + + + + + +
Utilisateurs : + +
+Autoriser ces utilisateurs à imprimer +Empêcher ces utilisateurs d'imprimer +
+ +
+ +
+
+ + +{IS_CLASS?:} + +

Utilisateurs autorisés à utiliser {printer_name}

+ + + + + + + + + + +
Utilisateurs : + +
+Autoriser ces utilisateurs à imprimer +Empêcher ces utilisateurs d'imprimer +
+ +
+ +
diff --git a/templates/header.tmpl.in b/templates/header.tmpl.in index e0fa574ce..10966a70b 100644 --- a/templates/header.tmpl.in +++ b/templates/header.tmpl.in @@ -12,14 +12,14 @@ - + -

{title}

+
- + - - + diff --git a/templates/ja/header.tmpl.in b/templates/ja/header.tmpl.in index 03653ed98..2e7274b4b 100644 --- a/templates/ja/header.tmpl.in +++ b/templates/ja/header.tmpl.in @@ -12,14 +12,14 @@

{title}

+
{?job_name=?Sconosciuto:{job_name}}  {job_originating_user_name}  {job_k_octets}k {job_media_sheets_completed=0?Sconosciuto:{?job_media_sheets_completed}}{job_media_sheets_completed=0?Sconosciuto:{?job_media_sheets_completed}}  {job_state=3?in sospeso da
{time_at_creation}:{job_state=4?bloccata da
{time_at_creation}: {job_state=5?elaborazione in corso da
{time_at_processing}:{job_state=6?fermata: {job_state=7?annullata a
{time_at_completed}:{job_state=8?interrotta:completata a
{time_at_completed}}}}}}} 
- + - - + diff --git a/templates/jobs.tmpl b/templates/jobs.tmpl index 1827d77a9..498decf07 100644 --- a/templates/jobs.tmpl +++ b/templates/jobs.tmpl @@ -16,7 +16,7 @@ - + diff --git a/templates/pl/header.tmpl.in b/templates/pl/header.tmpl.in index 7eb232b97..7028f7085 100644 --- a/templates/pl/header.tmpl.in +++ b/templates/pl/header.tmpl.in @@ -12,14 +12,14 @@

{title}

+
{?job_name=?未知:{job_name}}  {job_originating_user_name}  {job_k_octets}k {job_media_sheets_completed=0?不明:{?job_media_sheets_completed}}{job_media_sheets_completed=0?不明:{?job_media_sheets_completed}}  {job_state=3?{time_at_creation}
から保留中:{job_state=4?{time_at_creation}
からホールド中: {job_state=5?{time_at_processing}
から処理中:{job_state=6?に停止: {job_state=7?{time_at_completed}
にキャンセル:{time_at_completed}
{job_state=8?に中断:に完了}}}}}} 
{?job_name=?Unknown:{job_name}}  {job_originating_user_name}  {job_k_octets}k {job_media_sheets_completed=0?Unknown:{?job_media_sheets_completed}}{job_media_sheets_completed=0?Unknown:{?job_media_sheets_completed}}  {job_state=3?pending since
{time_at_creation}:{job_state=4?held since
{time_at_creation}: {job_state=5?processing since
{time_at_processing}:{job_state=6?stopped: {job_state=7?canceled at
{time_at_completed}:{job_state=8?aborted:completed at
{time_at_completed}}}}}}} 
- + - - + diff --git a/templates/sv/header.tmpl.in b/templates/sv/header.tmpl.in index 3258ce05f..50e0e09df 100644 --- a/templates/sv/header.tmpl.in +++ b/templates/sv/header.tmpl.in @@ -12,14 +12,14 @@

{title}

+
{?job_name=?Nieznane:{job_name}}  {job_originating_user_name}  {job_k_octets}k {job_media_sheets_completed=0?Nieznane:{?job_media_sheets_completed}}{job_media_sheets_completed=0?Nieznane:{?job_media_sheets_completed}}  {job_state=3?oczekiwanie od
{time_at_creation}:{job_state=4?wstrzymane od
{time_at_creation}: {job_state=5?przetwarzanie od
{time_at_processing}:{job_state=6?zatrzymane: {job_state=7?anulowane o
{time_at_completed}:{job_state=8?przerwane:zakończone o
{time_at_completed}}}}}}} 
- + - - + diff --git a/templates/trailer.tmpl b/templates/trailer.tmpl index 9fe5f6788..4a37de776 100644 --- a/templates/trailer.tmpl +++ b/templates/trailer.tmpl @@ -8,7 +8,7 @@ WIDTH="15" HEIGHT="15" ALT="">

The Common UNIX Printing System, CUPS, and the CUPS logo are the trademark property of Easy Software -Products. CUPS is copyright 1997-2006 by Easy Software Products, +Products. CUPS is copyright 1997-2007 by Easy Software Products, All Rights Reserved.

diff --git a/tools/checkpo b/tools/checkpo new file mode 100755 index 000000000..9746ee7d9 --- /dev/null +++ b/tools/checkpo @@ -0,0 +1,22 @@ +#!/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 + diff --git a/vcnet/config.h b/vcnet/config.h index c5f1752d0..6a4613d71 100644 --- a/vcnet/config.h +++ b/vcnet/config.h @@ -1,9 +1,9 @@ /* - * "$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 @@ -37,16 +37,38 @@ * 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 /* @@ -124,6 +146,13 @@ #undef HAVE_CRYPT_H +/* + * Do we have ? + */ + +#undef HAVE_SCSI_SG_H + + /* * Use , , and/or ? */ @@ -216,6 +245,13 @@ #undef HAVE_MALLOC_H +/* + * Do we have the POSIX ACL functions? + */ + +#undef HAVE_ACL_INIT + + /* * Do we have the langinfo.h header file? */ @@ -229,8 +265,8 @@ #undef HAVE_CDSASSL #undef HAVE_GNUTLS -#undef HAVE_LIBSSL -#undef HAVE_SSL +#define HAVE_LIBSSL 1 +#define HAVE_SSL 1 /* @@ -240,6 +276,14 @@ #undef HAVE_LIBSLP +/* + * Do we have an LDAP library? + */ + +#undef HAVE_LDAP +#undef HAVE_OPENLDAP + + /* * Do we have libpaper? */ @@ -331,6 +375,15 @@ #undef HAVE_PTHREAD_H +/* + * Do we have launchd support? + */ + +/* #undef HAVE_LAUNCH_H */ +/* #undef HAVE_LAUNCHD */ +#define CUPS_DEFAULT_LAUNCHD_CONF "" + + /* * Various scripting languages... */ @@ -345,8 +398,63 @@ #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 $". */ diff --git a/vcnet/cups.sln b/vcnet/cups.sln index 093265c9d..24e837d67 100644 --- a/vcnet/cups.sln +++ b/vcnet/cups.sln @@ -3,16 +3,36 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcups2", "libcups2.vcproj ProjectSection(ProjectDependencies) = postProject EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testfile", "testfile.vcproj", "{CE75FC5F-E0CF-45DC-AD27-84666D3FBA30}" + ProjectSection(ProjectDependencies) = postProject + {CB4AA6F2-3E84-45BE-B505-95CD375E8BE3} = {CB4AA6F2-3E84-45BE-B505-95CD375E8BE3} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testhttp", "testhttp.vcproj", "{CE75FC5F-E0CF-45DC-AD27-84666D3FBA30}" + ProjectSection(ProjectDependencies) = postProject + {CB4AA6F2-3E84-45BE-B505-95CD375E8BE3} = {CB4AA6F2-3E84-45BE-B505-95CD375E8BE3} + EndProjectSection +EndProject Global GlobalSection(SolutionConfiguration) = preSolution Debug = Debug Release = Release EndGlobalSection + GlobalSection(ProjectDependencies) = postSolution + EndGlobalSection GlobalSection(ProjectConfiguration) = postSolution {CB4AA6F2-3E84-45BE-B505-95CD375E8BE3}.Debug.ActiveCfg = Debug|Win32 {CB4AA6F2-3E84-45BE-B505-95CD375E8BE3}.Debug.Build.0 = Debug|Win32 {CB4AA6F2-3E84-45BE-B505-95CD375E8BE3}.Release.ActiveCfg = Release|Win32 {CB4AA6F2-3E84-45BE-B505-95CD375E8BE3}.Release.Build.0 = Release|Win32 + {CE75FC5F-E0CF-45DC-AD27-84666D3FBA30}.Debug.ActiveCfg = Debug|Win32 + {CE75FC5F-E0CF-45DC-AD27-84666D3FBA30}.Debug.Build.0 = Debug|Win32 + {CE75FC5F-E0CF-45DC-AD27-84666D3FBA30}.Release.ActiveCfg = Release|Win32 + {CE75FC5F-E0CF-45DC-AD27-84666D3FBA30}.Release.Build.0 = Release|Win32 + {CE75FC5F-E0CF-45DC-AD27-84666D3FBA30}.Debug.ActiveCfg = Debug|Win32 + {CE75FC5F-E0CF-45DC-AD27-84666D3FBA30}.Debug.Build.0 = Debug|Win32 + {CE75FC5F-E0CF-45DC-AD27-84666D3FBA30}.Release.ActiveCfg = Release|Win32 + {CE75FC5F-E0CF-45DC-AD27-84666D3FBA30}.Release.Build.0 = Release|Win32 EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution EndGlobalSection diff --git a/vcnet/libcups2.def b/vcnet/libcups2.def index 3aa6c9cb7..6849f29f2 100644 --- a/vcnet/libcups2.def +++ b/vcnet/libcups2.def @@ -1,8 +1,44 @@ 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 @@ -11,6 +47,8 @@ cupsArrayDelete cupsArrayDup cupsArrayFind cupsArrayFirst +cupsArrayIndex +cupsArrayInsert cupsArrayLast cupsArrayNew cupsArrayNext @@ -18,12 +56,11 @@ cupsArrayPrev cupsArrayRemove cupsArrayRestore cupsArraySave -cupsBackchannelRead -cupsBackchannelWrite +cupsArrayUserData +cupsBackChannelRead +cupsBackChannelWrite +cupsBackendDeviceURI cupsCancelJob -cupsCharmapFlush -cupsCharmapFree -cupsCharmapGet cupsCharsetToUTF8 cupsDirClose cupsDirOpen @@ -31,16 +68,18 @@ cupsDirRead cupsDirRewind cupsDoAuthentication cupsDoFileRequest +cupsDoRequest cupsEncodeOptions cupsEncodeOptions2 -cupsEncodingName cupsEncryption cupsFileClose cupsFileCompression cupsFileEOF +cupsFileFind cupsFileFlush cupsFileGetChar cupsFileGetConf +cupsFileGetLine cupsFileGets cupsFileLock cupsFileNumber @@ -53,6 +92,9 @@ cupsFilePuts cupsFileRead cupsFileRewind cupsFileSeek +cupsFileStderr +cupsFileStdin +cupsFileStdout cupsFileTell cupsFileUnlock cupsFileWrite @@ -70,24 +112,20 @@ cupsGetFile 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 @@ -95,8 +133,7 @@ cupsPrintFiles cupsPrintFiles2 cupsPutFd cupsPutFile -_cupsRestoreLocale -_cupsSaveLocale +cupsRemoveOption cupsServer cupsSetDests cupsSetDests2 @@ -104,29 +141,13 @@ cupsSetEncryption 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 @@ -138,8 +159,10 @@ httpAddrLookup httpAddrString httpAssembleURI httpAssembleURIf +httpBlocking httpCheck httpClearCookie +httpClearFields httpClose httpConnect httpConnectEncrypt @@ -149,19 +172,25 @@ httpDelete 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 @@ -172,11 +201,13 @@ httpPost httpPrintf httpPut httpRead +httpRead2 httpReconnect httpSeparate httpSeparate2 httpSeparateURI httpSetCookie +httpSetExpect httpSetField httpSetLength httpStatus @@ -184,7 +215,7 @@ httpTrace httpUpdate httpWait httpWrite -_ipp_add_attr +httpWrite2 ippAddBoolean ippAddBooleans ippAddCollection @@ -192,6 +223,7 @@ ippAddCollections ippAddDate ippAddInteger ippAddIntegers +ippAddOctetString ippAddRange ippAddRanges ippAddResolution @@ -206,9 +238,9 @@ ippErrorString ippErrorValue ippFindAttribute ippFindNextAttribute -_ipp_free_attr ippLength ippNew +ippNewRequest ippOpString ippOpValue ippPort @@ -222,21 +254,31 @@ ippWriteFile 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 diff --git a/vcnet/libcups2.vcproj b/vcnet/libcups2.vcproj index af3d2deb3..af51e1e0b 100644 --- a/vcnet/libcups2.vcproj +++ b/vcnet/libcups2.vcproj @@ -33,14 +33,14 @@ Name="VCCustomBuildTool"/> @@ -83,15 +83,16 @@ Name="VCCustomBuildTool"/> @@ -122,107 +123,497 @@ Name="Source Files" Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx" UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + RelativePath="..\cups\notify.c"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -250,6 +641,12 @@ + + + + diff --git a/vcnet/testfile.vcproj b/vcnet/testfile.vcproj new file mode 100644 index 000000000..30473a73d --- /dev/null +++ b/vcnet/testfile.vcproj @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vcnet/testhttp.vcproj b/vcnet/testhttp.vcproj new file mode 100644 index 000000000..310f64119 --- /dev/null +++ b/vcnet/testhttp.vcproj @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- 2.39.2

{title}

+
{?job_name=?Okänt:{job_name}}  {job_originating_user_name}  {job_k_octets}k {job_media_sheets_completed=0?Okänt:{?job_media_sheets_completed}}{job_media_sheets_completed=0?Okänt:{?job_media_sheets_completed}}  {job_state=3?väntar sedan
{time_at_creation}:{job_state=4?hålls kvar sedan
{time_at_creation}: {job_state=5?behandlas sedan
{time_at_processing}:{job_state=6?stoppad: {job_state=7?cancelled at
{time_at_completed}:{job_state=8?aborted:färdig kl
{time_at_completed}}}}}}}