]> git.ipfire.org Git - thirdparty/cups.git/commitdiff
Load cups into easysw/current.
authorjlovell <jlovell@a1ca3aef-8c08-0410-bb20-df032aa958be>
Mon, 22 May 2006 21:33:05 +0000 (21:33 +0000)
committerjlovell <jlovell@a1ca3aef-8c08-0410-bb20-df032aa958be>
Mon, 22 May 2006 21:33:05 +0000 (21:33 +0000)
git-svn-id: svn+ssh://src.apple.com/svn/cups/easysw/current@158 a1ca3aef-8c08-0410-bb20-df032aa958be

181 files changed:
CHANGES-1.2.txt [new file with mode: 0644]
CHANGES.txt
Makedefs.in
Makefile
backend/ipp.c
backend/serial.c
backend/usb-unix.c
cgi-bin/admin.c
cgi-bin/classes.c
cgi-bin/help.c
cgi-bin/html.c
cgi-bin/ipp-var.c
cgi-bin/printers.c
cgi-bin/template.c
cgi-bin/var.c
config-scripts/cups-common.m4
config-scripts/cups-compiler.m4
config-scripts/cups-directories.m4
config-scripts/cups-ldap.m4
config-scripts/cups-sharedlibs.m4
config-scripts/cups-ssl.m4
cups-config.in
cups/Makefile
cups/auth.c
cups/backchannel.c
cups/cups.h
cups/encode.c
cups/getifaddrs.c
cups/http-private.h
cups/mark.c
cups/page.c
cups/request.c
cups/snprintf.c
doc/help/spec-pdf.html [new file with mode: 0644]
doc/help/spec-raster.html
doc/pl/images/button-accept-jobs.gif
doc/pl/images/button-add-class.gif
doc/pl/images/button-add-printer.gif
doc/pl/images/button-add-this-printer.gif
doc/pl/images/button-cancel-all-jobs.gif
doc/pl/images/button-cancel-job.gif
doc/pl/images/button-change-settings.gif
doc/pl/images/button-clean-print-heads.gif
doc/pl/images/button-clear.gif
doc/pl/images/button-continue.gif
doc/pl/images/button-delete-class.gif
doc/pl/images/button-delete-printer.gif
doc/pl/images/button-edit-configuration-file.gif
doc/pl/images/button-export-samba.gif
doc/pl/images/button-help.gif
doc/pl/images/button-hold-job.gif
doc/pl/images/button-manage-classes.gif
doc/pl/images/button-manage-jobs.gif
doc/pl/images/button-manage-printers.gif
doc/pl/images/button-manage-server.gif
doc/pl/images/button-modify-class.gif
doc/pl/images/button-modify-printer.gif
doc/pl/images/button-move-job.gif
doc/pl/images/button-move-jobs.gif
doc/pl/images/button-print-self-test-page.gif
doc/pl/images/button-print-test-page.gif
doc/pl/images/button-publish-printer.gif
doc/pl/images/button-reject-jobs.gif
doc/pl/images/button-release-job.gif
doc/pl/images/button-restart-job.gif
doc/pl/images/button-save-changes.gif
doc/pl/images/button-search.gif
doc/pl/images/button-set-allowed-users.gif
doc/pl/images/button-set-as-default.gif
doc/pl/images/button-set-printer-options.gif
doc/pl/images/button-show-active.gif
doc/pl/images/button-show-all.gif
doc/pl/images/button-show-completed.gif
doc/pl/images/button-show-next.gif
doc/pl/images/button-show-previous.gif
doc/pl/images/button-sort-ascending.gif
doc/pl/images/button-sort-descending.gif
doc/pl/images/button-start-class.gif
doc/pl/images/button-start-printer.gif
doc/pl/images/button-stop-class.gif
doc/pl/images/button-stop-printer.gif
doc/pl/images/button-unpublish-printer.gif
doc/pl/images/button-use-default-config.gif
doc/pl/images/button-view-access-log.gif
doc/pl/images/button-view-error-log.gif
doc/pl/images/button-view-page-log.gif
doc/pl/images/button-view-printable-version.gif
doc/pl/index.html.in
filter/Makefile
filter/image-bmp.c
filter/image-colorspace.c
filter/image-gif.c
filter/image-jpeg.c
filter/image-photocd.c
filter/image-pix.c
filter/image-png.c
filter/image-pnm.c
filter/image-sgi.c
filter/image-sun.c
filter/image-tiff.c
filter/imagetoraster.c
filter/interpret.c
filter/pstops.c
filter/raster.c
filter/raster.h
filter/rastertolabel.c
locale/cups.pot
locale/cups_es.po
locale/cups_ja.po
locale/cups_pl.po [new file with mode: 0644]
locale/cups_sv.po
ppd/intelbar.ppd [new file with mode: 0644]
ppd/zebra.ppd
ppd/zebracpl.ppd
ppd/zebraep1.ppd
ppd/zebraep2.ppd
scheduler/auth.c
scheduler/client.c
scheduler/dirsvc.c
scheduler/ipp.c
scheduler/job.c
scheduler/printers.c
scheduler/printers.h
scheduler/testmime.c
systemv/cupstestppd.c
systemv/lpadmin.c
systemv/lpstat.c
templates/es/jobs.tmpl
templates/ja/jobs.tmpl
templates/jobs.tmpl
templates/pl/add-class.tmpl
templates/pl/add-printer.tmpl
templates/pl/admin.tmpl
templates/pl/choose-device.tmpl
templates/pl/choose-make.tmpl
templates/pl/choose-model.tmpl
templates/pl/choose-serial.tmpl
templates/pl/choose-uri.tmpl
templates/pl/class-added.tmpl
templates/pl/class-confirm.tmpl
templates/pl/class-deleted.tmpl
templates/pl/class-jobs-header.tmpl
templates/pl/class-modified.tmpl
templates/pl/classes-header.tmpl
templates/pl/classes.tmpl
templates/pl/help-header.tmpl
templates/pl/job-cancel.tmpl
templates/pl/job-hold.tmpl
templates/pl/job-move.tmpl
templates/pl/job-moved.tmpl
templates/pl/job-release.tmpl
templates/pl/job-restart.tmpl
templates/pl/jobs-header.tmpl
templates/pl/jobs.tmpl
templates/pl/maintenance.tmpl
templates/pl/modify-class.tmpl
templates/pl/modify-printer.tmpl
templates/pl/option-conflict.tmpl
templates/pl/option-trailer.tmpl
templates/pl/pager.tmpl
templates/pl/printer-accept.tmpl
templates/pl/printer-confirm.tmpl
templates/pl/printer-default.tmpl
templates/pl/printer-jobs-header.tmpl
templates/pl/printer-modified.tmpl
templates/pl/printer-purge.tmpl
templates/pl/printer-reject.tmpl
templates/pl/printer-start.tmpl
templates/pl/printer-stop.tmpl
templates/pl/printers-header.tmpl
templates/pl/printers.tmpl
templates/pl/restart.tmpl
templates/pl/samba-export.tmpl
templates/pl/samba-exported.tmpl
templates/pl/search.tmpl
templates/pl/test-page.tmpl
templates/pl/trailer.tmpl
templates/pl/users.tmpl
templates/sv/jobs.tmpl
tools/makesrcdist
tools/testosx

diff --git a/CHANGES-1.2.txt b/CHANGES-1.2.txt
new file mode 100644 (file)
index 0000000..5195095
--- /dev/null
@@ -0,0 +1,622 @@
+CHANGES-1.2.txt
+---------------
+
+CHANGES IN CUPS V1.2.1
+
+       - The web interface support programs crashed on Solaris
+         (STR #1699)
+       - cupstestppd incorrectly reported problems with
+         *1284DeviceID attributes (STR #1710)
+       - Browsing could get disabled after a restart (STR #1670)
+       - Custom page sizes were not parsed properly (STR #1709)
+       - The -U option wasn't supported by lpadmin (STR #1702)
+       - The -u option didn't work with lpadmin (STR #1703)
+       - The scheduler did not create non-blocking back-channel
+         pipes, which caused problems when the printer driver
+         did not read the back-channel data (STR #1705)
+       - The scheduler no longer uses chunking in responses to
+         clients - this caused problems with older versions of
+         CUPS like 1.1.17 (PR #6143)
+       - Automatic raw printing was broken (STR #1667)
+       - 6-up printing was broken (STR #1697)
+       - The pstops filter did not disable CTRL-D processing on
+         the printer/RIP.
+       - ppdOpen*() did not load custom options properly (STR
+         #1680)
+       - "Set Printer Options" in the web interface did not
+         update the DefaultImageableArea or
+         DefaultPaperDimension attributes in the PPD file (STR
+         #1689)
+       - Fixed compile errors (STR #1682, STR #1684, STR #1685,
+         STR #1690)
+       - The lpstat command displayed the wrong error message
+         for a missing destination (STR #1683)
+       - Revised and completed the Polish translation (STR
+         #1669)
+       - Stopped jobs did not show up in the list of active jobs
+         (STR #1676)
+       - The configure script did not use the GNU TLS
+         "libgnutls-config" script to find the proper compiler
+         and linker options.
+       - The imagetoraster filter did not correctly generate
+         several 1, 2, and 4-bit color modes.
+       - cupsRasterWritePixels() could lose track of the current
+         output row.
+       - cupsRasterReadPixels() did not automatically swap
+         12/16-bit chunked pixel data.
+       - Moved the private _cups_raster_s structure out of the
+         public header.
+       - Updated the CUPS raster format specification to include
+         encoding rules and colorspace definitions.
+       - The Zebra PPD files had the wrong PostScript code for
+         the "default" option choices.
+       - The imagetoraster filter did not generate correct CIE
+         XYZ or Lab color data.
+       - The cups-config script did not work when invoked from a
+         source directory (STR #1673)
+       - The SNMP backend did not compile on systems that used
+         the getifaddrs emulation functions (STR #1668)
+
+
+CHANGES IN CUPS V1.2
+
+       - Documentation updates (STR #1618, STR #1620, STR #1622,
+         STR #1637)
+       - Static file copy buffers reduced from 64k to 32k to
+         work around bogus MallocDebug library assumptions (STR
+         #1660)
+       - The scheduler did not decode the backend exit code
+         properly (STR #1648)
+       - The MacOS X USB backend did not report the 1284 device ID,
+         nor did it fix device IDs returned by HP printers.
+       - The scheduler started more slowly than 1.1.x with large
+         numbers of printers (STR #1653)
+       - cupsRasterInterpretPPD() didn't support the
+         cupsPreferredBitsPerColor attribute, and imagetoraster
+         didn't use the new API.
+       - The "make test" script did not create all of the necessary
+         subdirectories for testing (STR #1638)
+       - The scheduler did not prevent rotation of logs
+         redirected to /dev/null (STR #1651)
+       - "make test" did not include the SNMP backend in the
+         test environment (STR #1625)
+       - The EPM packaging files did not work (STR #1621)
+       - "Use Default Configuration" inserted a broken
+         configuration file (STR #1624)
+       - Redirects in the web interface did not always preserve
+         the encrypted status of a connection (STR #1603)
+       - Added the Apple "pap" backend.
+       - Added CUPS library to CUPS Image shared library
+         linkage to support Linux --as-needed linker option
+         (STR #1606)
+       - Fixed support for --enable-pie (STR #1609)
+       - The pdftops filter did not validate the length of the
+         encryption key (STR #1608)
+       - Updated the Polish localization.
+       - "Encryption Required" in the cupsd.conf file now only
+         requires encryption when the connection is not over the
+         loopback interface or domain socket.
+       - Printer names containing "+" were not quoted properly in
+         the web interface (STR #1600)
+       - The SNMP backend now reports the make and model in the
+         information string so that the auto-generated printer
+         name is more useful than just an IP address.
+
+
+CHANGES IN CUPS V1.2rc3
+
+       - The cups-lpd program always did reverse lookups on the
+         client address, which could be a performance problem.
+         Added a "-n" option to disable lookups.
+       - When configured with SSL support, require encryption by
+         default when displaying the /admin location (STR #1592)
+       - The next job ID was not computed correctly if the job
+         cache file got out of sync with the spool directory
+         (STR #1582)
+       - The PNG image handling code used deprecated functions
+         from libpng (STR #1587)
+       - Added a Polish translation (STR #1584, STR #1586)
+       - More changes to the scheduler to improve battery life
+         on portable devices (STR #1583)
+       - Changed the default log level for status messages back
+         to "DEBUG" to be consistent with CUPS 1.1.x (STR #1579)
+       - The error string was not set properly when
+         cupsDoFileRequest() was given the name of a directory
+         (STR #1578)
+       - Fixed handling of job-hold-until (STR #1581)
+       - Added explicit notes to the cupsaddsmb man page
+         explaining that the driver filenames are case-sensitive
+         under UNIX and that they must be all lowercase (Windows
+         2000) or all UPPERCASE (Windows 95/98/Me) to work (STR
+         #1568)
+       - The USB backend incorrectly split the manufacturer name
+         if it contained spaces (STR #1566)
+       - The scheduler would hang when listing PPD files for a
+         manufacturer whose name contained spaces (STR #1567)
+       - Added the SNMP backend for network printer discovery
+         (STR #1555)
+       - cupstestppd now fails PPD files with 1284DeviceId
+         instead of 1284DeviceID, and cups-driverd uses a
+         case-insensitive comparison when looking for it (STR
+         #1573)
+       - cupsDoFileRequest() and cupsDoRequest() now work
+         properly with non-blocking HTTP connections.
+       - Added Swedish translation (STR #1569)
+       - "make install" now installs the MIME files with world
+         read permissions (STR #1565)
+       - More CDSA encryption support fixes (STR #1563)
+       - Updated the default mime.types file to support printing
+         of files that do not have a locally-recognized MIME
+         media type to raw or System V queues.
+       - Updated the serial port detection code on Linux (STR
+         #1562)
+       - Added some more error checking to httpGetHostname()
+         (STR #1561)
+       - The title of some administration pages was not
+         localized (STR #1548)
+       - The edit-config.tmpl file was not generated or
+         installed for the Spanish or Japanese localizations
+         (STR #1547)
+       - The mimeDelete() function freed the types before the
+         filters, but the filters needed the type data (STR #1558)
+       - The scheduler didn't keep track of the status pipes
+         properly, leading to a bad select() for multi-file jobs
+         (STR #1559)
+       - The cupstestdsc program didn't validate the ordinal
+         page number value for %%Page: comments.
+
+
+CHANGES IN CUPS V1.2rc2
+
+       - The scheduler was not always using the string pool,
+         causing random crashes.
+       - The lpmove and the web interface's Move Job button did
+         not work with stopped jobs (STR #1534)
+       - The PostScript filter did not handle the page-set
+         option properly with number-up printing (STR #1543)
+       - The scheduler now only warns about unsupported ACLs
+         once (STR #1532)
+       - The "fitplot" option did not work with output from
+         Mozilla (STR #1542)
+       - The imagetops filter did not work with Level 2 or 3
+         printers (STR #1533)
+       - The scheduler now recognizes PostScript files with PJL
+         commands that do not include an ENTER LANGUAGE command.
+       - Added --with-printcap configure option.
+       - 64-bit SSL fixes for MacOS X.
+       - The scheduler didn't send some printer state change
+         events.
+       - The scheduler didn't send jobs to busy remote printers.
+       - Fixed some problems with the launchd support.
+       - Added new USB printer backend for MacOS X.
+       - The PostScript filter now handles files that start with
+         an incomplete PJL header (PR #6076)
+       - The web interface language selection code did not try
+         the generic language localization (STR #1531)
+       - The language cache, string pool, and transcoding caches
+         are now process global instead of per-thread to avoid
+         problems with GNOME and to allow for data sharing
+         between threads (STR #1530)
+       - Fixed a CUPS 1.1.x compatibility bug (STR #1528)
+       - The web interface redirection after certain printer
+         administration tasks was broken (STR #1516)
+       - Web interface authorization could get stuck (STR #1512)
+       - Localization updates (STR #1513, STR #1518, STR #1520)
+       - The pstops filter didn't work with some files (STR
+         #1523)
+       - "./configure --enable-static" didn't work (STR #1522)
+       - The scheduler was not using the configured default
+         Group (STR #1521)
+       - The web interface still did not show the localized time
+         and date for some locales and systems (STR #1509)
+       - httpAddrGetList() would crash on systems without
+         getaddrinfo().
+       - Socket URIs without a trailing slash would cause the
+         port number to not be accepted (STR #1519)
+       - Local raw and System V printers were not advertised as
+         such for printer browsing (STR #1502)
+       - The RPM spec file incorrectly put duplicate copies of
+         the Japanese and Spanish web interface templates in the
+         main cups package (STR #1517)
+       - cupsSetDests() did not explicitly set the permissions
+         of the /etc/cups/lpoptions file (STR #1508)
+       - The lpq command crashed with the -h option (STR #1515)
+
+
+CHANGES IN CUPS V1.2rc1
+
+       - Documentation updates (STR #1497, STR #1498)
+       - The scheduler now redirects browsers to https: URLs
+         when encryption is required.
+       - The scheduler would crash when printing with a banner
+         (STR #1500)
+       - cups-driverd did not use the LanguageEncoding attribute
+         in PPD files to convert the NickName to UTF-8 (STR
+         #1503)
+       - The lpadmin command could not set the
+         printer-error-policy attribute (STR #1504)
+       - The web interface did not show the time and date in the
+         correct format for the locale (STR #1505)
+       - CUPS no longer accepts print jobs if a printer does not
+         support the file format (STR #1501)
+       - Cleaned up the PostScript filter (pstops) so that it
+         properly supports %%IncludeFeature and page scaling
+         (STR #1453)
+       - Fixed the cupsFileRewind() and cupsFileSeek() functions
+         to work properly with uncompressed files.
+       - Added cupsFileGetLine(), cupsFileStderr(),
+         cupsFileStdin(), and cupsFileStdout() functions to the
+         CUPS library.
+       - Added a new cupstestdsc program to test the DSC
+         conformance of PostScript files.
+       - Added KDE/GNOME icons and a Manage Printers menu item.
+       - Added --enable-image and --enable-pdftops configure
+         options to control whether the image and PDF filters
+         are built and installed (default = yes for all
+         platforms but MacOS X)
+       - Fixed a minor memory leak in the PPD API.
+       - Fixed transcoding issues (STR #1493)
+       - The scheduler now enforces a minimum job cost of 100
+         when doing FilterLimit checks.
+       - The scheduler would leak file descriptors when printing
+         to raw queues (STR #1491)
+       - The IPv6 support did not compile on Tru64 UNIX (STR
+         #1488)
+       - ppdOpen2() now converts the NickName and all UI text to
+         UTF-8 (STR #1475)
+       - The Set Allowed Users web page did not work (STR #1486)
+       - When the default policy was not set or set to a non-
+         existing policy, the scheduler did not set the default
+         policy name to "default" (STR #1484)
+       - The Zebra CPCL driver did not use the correct righthand
+         margin for the 4" wide label sizes.
+       - Fixed a problem with the parsing of fractional real
+         numbers in PPD files.
+       - Added Spanish localization files (STR #1480)
+       - Fixed localization of a few scheduler messages (STR
+         #1478)
+       - Fixed support for HEAD requests in the scheduler (STR
+         #1481)
+
+
+CHANGES IN CUPS V1.2b2
+
+       - Updated the CUPS design description.
+       - Added --enable-32bit and --enable-64bit configure
+         options to allow building of separate 32/64-bit
+         libraries on systems that support both environments
+         (STR #1472)
+       - Various compiler warning fixes.
+       - Fixes for Solaris 10 builds against old GNU TLS and
+         LDAP libraries.
+       - Added a cupsArrayUserData() function to retrieve the
+         user data pointer for an array (useful for typing
+         arrays)
+       - The ppdEmitString() function did not compute the
+         required buffer size properly, leading to dropped
+         characters on the end of the printer commands in pstops
+         and imagetops (STR #1470)
+
+
+CHANGES IN CUPS V1.2b1
+
+       - The serial backend now supports Equinox 8-port serial
+         hubs (STR #526)
+       - The IPP backend now supports a compression option to
+         compress print files as they are sent to the remote
+         server (STR #956)
+       - The CUPS browse protocol now supports passing of
+         default options and browse timeout values from the
+         server to the clients (STR #800)
+       - Implicit classes that timed out could cause the
+         scheduler to crash (STR #1439)
+       - Added DragonFly support in local device backends (STR
+         #1362)
+       - Added LDAP printer browsing support (STR #338)
+       - Added official support for printer maintenance commands
+         via the CUPS Command file format and hooks in the
+         printer-type and web interfaces (STR #932)
+       - The HP-GL/2 filter could get in an infinite loop trying
+         to convert HP-PCL files (STR #1415)
+       - CUPS now implements the HTTP/1.1 Expect header (STR
+         #1407)
+       - Options in PPD files are no longer automatically put in
+         an "Extra" group; rather, all options that are not
+         inside an Open/CloseGroup will be placed in the
+         "General" group (STR #1385)
+       - The scheduler now creates a job-uuid attribute that
+         uniquely identifies a job on a network (STR #1410)
+       - The init script now unsets the TMPDIR environment
+         variable to prevent user temporary directories from
+         being used by cupsd accidentally (STR #1424)
+       - Added support for launchd on MacOS X.
+       - Added support for notify_post on MacOS X.
+       - Added support for DBUS on Linux.
+       - All of the Berkeley (except for lpc) and System V
+         commands now support specification of user, host, and
+         port (STR #1028, STR #1029, STR #1087)
+       - The lpmove command now allows you to move all jobs for
+         a given queue (STR #56)
+       - The web interface now supports moving of a job or jobs
+         to another queue (STR #56)
+       - The web interface now provides searching, paging, and
+         changing of the sort/display order of classes, jobs,
+         and printers.
+       - cupsaddsmb now accepts a password on the command-line
+         and supports passwords with special characters (STR
+         #822, STR #1236)
+       - ppdLoad*() no longer tries to "fix" bad characters in
+         UI text (STR #1101)
+       - Printer names can now (reliably) contain Unicode
+         characters (STR #896)
+       - The lpstat command now shows the time and date of the
+         last printer state change instead of the hardcoded "Jan
+         01 00:00" (STR #659)
+       - The scheduler now adds a job-actual-printer-uri
+         attribute to job objects when printing to a class (STR
+         #116)
+       - The scheduler now logs log file open errors to the
+         system log (STR #1289)
+       - The scheduler now sets the job-originating-user-name to
+         the authenticated username, if available (STR #1318)
+       - The scheduler now only updates the permissions of SSL
+         keys and certificates when they are under the
+         ServerRoot directory (STR #1324)
+       - The rastertodymo driver has been renamed to
+         rastertolabel (a symlink is installed so that existing
+         queues continue to work) and now also supports Zebra's
+         CPCL language.
+       - The lpstat command could show the wrong active job for
+         a printer (STR #1301)
+       - Fixed a potential crash problem in the scheduler when
+         aborting a CGI program (STR #1290)
+       - Added a "cancel all jobs" button to the class and
+         printer web interfaces (STR #1140)
+       - The add-printer web page now shows the
+         set-printer-options page after the printer has been
+         added (STR #690)
+       - The classes web page now provides links to each of the
+         member printers (STR #307)
+       - CUPS now handles HTTP request/response lines up to 32k
+         in length; this is mainly for better cookie support
+         (STR #1274)
+       - Added support for the Apache PassEnv and SetEnv
+         directives to cupsd.conf (STR #853)
+       - Added large file (64-bit) support (STR #541)
+       - Fixed a performance issue with the ippReadIO()
+         implementation (STR #1284)
+       - Fixed a performance issue with the scheduler's implicit
+         class implementation (STR #1283)
+       - The pdftops filter now adds the Title and Creator
+         fields from the PDF file to the PostScript document
+         comments section (STR #539, STR #830)
+       - Added a new cups_array_t and cupsArray*() functions to
+         the CUPS API to support sorted lists of data.
+       - Made the CUPS API library thread-safe (STR #1276)
+       - Added "media" option support for EFI EFMediaType option
+         (STR #902)
+       - Added write buffering to the HTTP code to improve
+         performance (STR #547)
+       - The scheduler now uses the attributes-natural-language
+         attribute to localize banner pages (STR #386)
+       - The scheduler now returns the address that was used to
+         connect to it (STR #1076)
+       - Fixed a problem with N-up printing and OpenOffice (STR
+         #576)
+       - Added support for the GCC position independent
+         executable options (STR #1209)
+       - Added new BrowseLocalProtocols and
+         BrowseRemoteProtocols directives to cupsd.conf,
+         allowing for different browse protocols for local and
+         remote printers (STR #877)
+       - PPD files can now contain strings up to 256k in length
+         (STR #1215)
+       - The pstops filter now supports the IncludeFeature DSC
+         comment (STR #1212)
+       - The pstops filter now disables the setpagedevice
+         procedure when doing N-up printing (STR #1161)
+       - The serial backend now supports "stop=1", "stop=2",
+         "parity=space", and "parity=mark" options (STR #1155)
+       - "make install" no longer overwrites an existing PAM
+         configuration file (STR #1064)
+       - The scheduler now closes all files on startup when run
+         in daemon mode (STR #1009)
+       - Added a new RGBW colorspace to the CUPS raster format
+         (STR #1071)
+       - The pdftops filter now sets the page size based on the
+         media box when not scaling the output (STR #912)
+       - The pdftops filter now supports masked images (STR
+         #281)
+       - The pdftops filter produced large output when rendering
+         PDF files containing lot of repeated images (STR #327)
+       - The pdftops filter now minimizes print processing of
+         PDF files when using the page-ranges option (STR #273)
+       - Updated pdftops filter to Xpdf 3.01.
+       - Added new cupsBackchannelRead() and
+         cupsBackchannelWrite() functions, as well as
+         backchannel support to the parallel, serial, socket,
+         and USB backends (STR #1252)
+       - The parallel and USB backends now treat a "no space
+         available" error as an out-of-paper condition (STR
+         #1225)
+       - The "lpc" command now supports the "status all" command
+         (STR #1004)
+       - ippReadIO() did not read collections properly (STR
+         #1249)
+       - The "make test" script now creates the test files in
+         "/tmp/cups-$USER" instead of "/tmp/$USER" (STR #981)
+       - All backends now abort on error when printing a job to
+         a class - this allows the next printer in the class to
+         print the job (STR #1084)
+       - The scheduler now verifies that a printer supports
+         Letter or A4 media sizes before setting them as the
+         initial default (STR #1250)
+       - The cupstestppd program now flags bad Resolution
+         options (STR #1269)
+       - The USB backend now retries printing when the printer
+         is disconnected or turned off (STR #1267)
+       - Added new httpGetHostname() function to CUPS API, and
+         use it instead of gethostname() so that the web
+         interface will work correctly on systems whose hostname
+         is not the FQDN (STR #1266)
+       - The scheduler now stops printers if the backend for the
+         queue is missing on startup (STR #1265)
+       - The configure script now supports "--disable-library"
+         to disable particular image file format support
+         libraries, even if they are available on the build
+         system (STR #1248)
+       - The IPP backend did not always report on the total
+         number of pages that were printed (STR #1251)
+       - The lpstat program could display garbage date and time
+         values for locales whose date format exceeded 31
+         characters (STR #1263)
+       - The cupstestppd program would segfault when testing
+         certain broken PPD files (STR #1268)
+       - Dramatically reduced the overhead of implicit classes.
+       - Added new cupsDir*() functions to CUPS API.
+       - Printers can now be published individually for sharing.
+       - Fixed a bug in the scheduler's startup signalling code
+         which caused cupsd to send the SIGUSR1 signal to the
+         init process instead of the original parent process
+         (STR #1258)
+       - Added new on-line help CGI to web interface to provide
+         searchable help.
+       - Devices are now tracked dynamically, with each query
+         doing a new device scan.  This eliminates a previous
+         startup delay caused by slow backends and allows new
+         printers to be seen without restarting the server,
+         however it limits the amount of device URI checking
+         that can be done (basically now the scheduler only
+         requires a URI with a method that is a listed backend)
+       - Added new printer auto-detection, server configuration,
+         and log file viewing to the administration web page.
+       - Added new "set allowed users" web interface to set the
+         list of allowed users for a printer or class.
+       - The scheduler, command-line, and web interfaces now
+         limit the list of printers and classes to those
+         accessible by a user.
+       - cupsMarkOptions() now handles more non-standard
+         duplexing options and choices (STR #915)
+       - cups-lpd now honors remote banner requests with the
+         "standard" banner whenever a printer does not have one
+         defined (STR #1220)
+       - The scheduler's denial-of-service checks did not work
+         properly with IPv6 addresses (STR #1134)
+       - The lp and lpr commands did not error out properly when
+         they were unable to write to a temporary file (STR
+         #1129)
+       - The pstops filter did not handle Adobe-specific
+         comments in Windows NT driver output (STR #1085)
+       - "lpstat -l -p" incorrectly reported the printer
+         interface (STR #936)
+       - The web interface now operates exclusively with the
+         UTF-8 encoding, and sends the appropriate character set
+         and header information to the web browser (STR #919,
+         STR #1007)
+       - Added a "set allowed users" interface to the web
+         interface so that you can set the list of allowed or
+         denied users/groups for a printer or class.
+       - Disallow the "#" character in printer names, since it
+         has special meaning in the shell, config files, and in
+         URIs (STR #917, STR #1202)
+       - Added a new application/x-csource MIME type, and
+         support for it to the texttops filter so that you can
+         pretty print plain text files without the C/C++
+         keywords being highlighted.
+       - The pdftops filter did not compile with GCC 4.0 (STR
+         #1226)
+       - The texttops filter did not highlight preprocessor
+         directives followed by a tab properly.
+       - HP PJL output now uses both JOB DISPLAY and RDYMSG
+         commands to show the current job on the printer's
+         display (STR #1218)
+       - Local authentication certificates are now stored in
+         /var/run/cups/certs by default instead of
+         /etc/cups/certs (STR #1211)
+       - Backends now use "&" to separate options in device
+         URIs; "+" is still recognized but is deprecated (STR
+         #842)
+       - The USB backend no longer supports the usb:/dev/foo
+         format on systems that support device ID queries.
+       - Forced classification markings did not work when the
+         job-sheets parameters were "none,none".
+       - "lpstat -l -p" incorrectly showed all users as allowed,
+         even if the queue was restricted to certain users (STR
+         #801)
+       - The scheduler now automatically detects SSL/TLS clients
+         without using the SSLPort/SSLListen directives.
+       - The CUPS API and scheduler no longer support SSLv2-
+         encrypted connections.
+       - Updated the cupsaddsmb utility to correctly export the
+         CUPS driver for Windows.
+       - Fixed a signal-handling bug in httpRead() which
+         ultimately caused the server to print multiple copies
+         when it was busy (STR #1184)
+       - The cupsFile API now uses the O_APPEND option when
+         opening files in append mode (STR #990)
+       - The md5.h header and md5_* functions are now officially
+         private and have been renamed to avoid conflicts with
+         other implementations with the same name.
+       - The pdftops filter incorrectly embedded some Type1
+         fonts (STR #1093)
+       - The scheduler didn't detect a closed connection in the
+         middle of an IPP request (STR #1153)
+       - The scheduler could block trying to read the job status
+         if there was input pending and the job was cancelled in
+         the same input cycle (STR #1157)
+       - The scheduler could crash when deleting a class due to
+         infinite recursion.
+       - Updated the Zebra ZPL label printer driver to use the
+         run-length encoding and support more options.
+       - Updated serial backend to scan for /dev/ttyC* as well
+         as /dev/ttyc* for Cyclades serial ports (STR #1049)
+       - The scheduler could hang reading the job status under
+         certain circumstances (STR #1068)
+       - The USB backend termination signal code was inverted
+         (STR #1046)
+       - Moved enable and disable commands to sbindir to be
+         consistent.
+       - Added new cupsRasterInterpretPPD() function for RIP
+         filters to setup the raster page header from
+         PostScript commands in a PPD file.
+       - The CUPS browsing protocol now offers a "delete" bit
+         to remove printers as soon as they are deleted on the
+         server or as soon as the server shuts down gracefully
+         (STR #793)
+       - The CUPS_SERVER and ServerName directives (client.conf
+         and ~/.cupsrc) may now contain names of the form
+         "server:port" and "/path/to/domain/socket".
+       - The "cancel -u user" command now works for ordinary
+         users (STR #751)
+       - Added test run support to "make test" target (STR #64)
+       - Added domain socket support (STR #656)
+       - Added BrowseLocalOptions directive to allow the
+         administrator to add printer URI options to the browse
+         URI, e.g. "encryption=required" (STR #732)
+       - Added BrowseRemoteOptions directive to allow the
+         administrator to add standard URI options to the
+         remote printer URI, e.g. "encryption=required" (STR
+         #732)
+       - Now put "-I.." compiler option in front of all others
+         to ensure that local CUPS headers are used before
+         installed headers (STR #437)
+       - New cupsLangPrintf() and cupsLangPuts() for localized
+         interfaces.
+       - Now support custom attributes and extended options in
+         PPD files.
+       - Now provide functions to save PPD files.
+       - New policy mechanism allows per-operation and
+         per-printer control over what users and groups are
+         allowed to do various IPP operations.
+       - New error policy mechanism to control how aborted
+         backend errors are handled by the scheduler
+         (abort-job, retry-job, requeue-job, stop-printer)
+       - Updated the printer test page with a better color
+         wheel and a separate grayscale ramp.
+       - A single backend process is now run to send all print
+         data for a job.
+       - Backends and filters can now send and receive
+         backchannel data over file descriptor 3.
+       - Updated the raster stream format to support more
+         user-defined attributes and to do compression of the
+         page data.
index 017c0de685737abc323112fe20ee364cf72f1968..2791e58658fe3d95be50738eefc299ea0079fe0c 100644 (file)
@@ -1,565 +1,8 @@
-CHANGES.txt - 2006-05-05
+CHANGES.txt - 2006-05-16
 ------------------------
 
-CHANGES IN CUPS V1.2
+CHANGES IN CUPS V1.3
 
-       - Documentation updates (STR #1618, STR #1620, STR #1622,
-         STR #1637)
-       - Static file copy buffers reduced from 64k to 32k to
-         work around bogus MallocDebug library assumptions (STR
-         #1660)
-       - The scheduler did not decode the backend exit code
-         properly (STR #1648)
-       - The MacOS X USB backend did not report the 1284 device ID,
-         nor did it fix device IDs returned by HP printers.
-       - The scheduler started more slowly than 1.1.x with large
-         numbers of printers (STR #1653)
-       - cupsRasterInterpretPPD() didn't support the
-         cupsPreferredBitsPerColor attribute, and imagetoraster
-         didn't use the new API.
-       - The "make test" script did not create all of the necessary
-         subdirectories for testing (STR #1638)
-       - The scheduler did not prevent rotation of logs
-         redirected to /dev/null (STR #1651)
-       - "make test" did not include the SNMP backend in the
-         test environment (STR #1625)
-       - The EPM packaging files did not work (STR #1621)
-       - "Use Default Configuration" inserted a broken
-         configuration file (STR #1624)
-       - Redirects in the web interface did not always preserve
-         the encrypted status of a connection (STR #1603)
-       - Added the Apple "pap" backend.
-       - Added CUPS library to CUPS Image shared library
-         linkage to support Linux --as-needed linker option
-         (STR #1606)
-       - Fixed support for --enable-pie (STR #1609)
-       - The pdftops filter did not validate the length of the
-         encryption key (STR #1608)
-       - Updated the Polish localization.
-       - "Encryption Required" in the cupsd.conf file now only
-         requires encryption when the connection is not over the
-         loopback interface or domain socket.
-       - Printer names containing "+" were not quoted properly in
-         the web interface (STR #1600)
-       - The SNMP backend now reports the make and model in the
-         information string so that the auto-generated printer
-         name is more useful than just an IP address.
-
-
-CHANGES IN CUPS V1.2rc3
-
-       - The cups-lpd program always did reverse lookups on the
-         client address, which could be a performance problem.
-         Added a "-n" option to disable lookups.
-       - When configured with SSL support, require encryption by
-         default when displaying the /admin location (STR #1592)
-       - The next job ID was not computed correctly if the job
-         cache file got out of sync with the spool directory
-         (STR #1582)
-       - The PNG image handling code used deprecated functions
-         from libpng (STR #1587)
-       - Added a Polish translation (STR #1584, STR #1586)
-       - More changes to the scheduler to improve battery life
-         on portable devices (STR #1583)
-       - Changed the default log level for status messages back
-         to "DEBUG" to be consistent with CUPS 1.1.x (STR #1579)
-       - The error string was not set properly when
-         cupsDoFileRequest() was given the name of a directory
-         (STR #1578)
-       - Fixed handling of job-hold-until (STR #1581)
-       - Added explicit notes to the cupsaddsmb man page
-         explaining that the driver filenames are case-sensitive
-         under UNIX and that they must be all lowercase (Windows
-         2000) or all UPPERCASE (Windows 95/98/Me) to work (STR
-         #1568)
-       - The USB backend incorrectly split the manufacturer name
-         if it contained spaces (STR #1566)
-       - The scheduler would hang when listing PPD files for a
-         manufacturer whose name contained spaces (STR #1567)
-       - Added the SNMP backend for network printer discovery
-         (STR #1555)
-       - cupstestppd now fails PPD files with 1284DeviceId
-         instead of 1284DeviceID, and cups-driverd uses a
-         case-insensitive comparison when looking for it (STR
-         #1573)
-       - cupsDoFileRequest() and cupsDoRequest() now work
-         properly with non-blocking HTTP connections.
-       - Added Swedish translation (STR #1569)
-       - "make install" now installs the MIME files with world
-         read permissions (STR #1565)
-       - More CDSA encryption support fixes (STR #1563)
-       - Updated the default mime.types file to support printing
-         of files that do not have a locally-recognized MIME
-         media type to raw or System V queues.
-       - Updated the serial port detection code on Linux (STR
-         #1562)
-       - Added some more error checking to httpGetHostname()
-         (STR #1561)
-       - The title of some administration pages was not
-         localized (STR #1548)
-       - The edit-config.tmpl file was not generated or
-         installed for the Spanish or Japanese localizations
-         (STR #1547)
-       - The mimeDelete() function freed the types before the
-         filters, but the filters needed the type data (STR #1558)
-       - The scheduler didn't keep track of the status pipes
-         properly, leading to a bad select() for multi-file jobs
-         (STR #1559)
-       - The cupstestdsc program didn't validate the ordinal
-         page number value for %%Page: comments.
-
-
-CHANGES IN CUPS V1.2rc2
-
-       - The scheduler was not always using the string pool,
-         causing random crashes.
-       - The lpmove and the web interface's Move Job button did
-         not work with stopped jobs (STR #1534)
-       - The PostScript filter did not handle the page-set
-         option properly with number-up printing (STR #1543)
-       - The scheduler now only warns about unsupported ACLs
-         once (STR #1532)
-       - The "fitplot" option did not work with output from
-         Mozilla (STR #1542)
-       - The imagetops filter did not work with Level 2 or 3
-         printers (STR #1533)
-       - The scheduler now recognizes PostScript files with PJL
-         commands that do not include an ENTER LANGUAGE command.
-       - Added --with-printcap configure option.
-       - 64-bit SSL fixes for MacOS X.
-       - The scheduler didn't send some printer state change
-         events.
-       - The scheduler didn't send jobs to busy remote printers.
-       - Fixed some problems with the launchd support.
-       - Added new USB printer backend for MacOS X.
-       - The PostScript filter now handles files that start with
-         an incomplete PJL header (PR #6076)
-       - The web interface language selection code did not try
-         the generic language localization (STR #1531)
-       - The language cache, string pool, and transcoding caches
-         are now process global instead of per-thread to avoid
-         problems with GNOME and to allow for data sharing
-         between threads (STR #1530)
-       - Fixed a CUPS 1.1.x compatibility bug (STR #1528)
-       - The web interface redirection after certain printer
-         administration tasks was broken (STR #1516)
-       - Web interface authorization could get stuck (STR #1512)
-       - Localization updates (STR #1513, STR #1518, STR #1520)
-       - The pstops filter didn't work with some files (STR
-         #1523)
-       - "./configure --enable-static" didn't work (STR #1522)
-       - The scheduler was not using the configured default
-         Group (STR #1521)
-       - The web interface still did not show the localized time
-         and date for some locales and systems (STR #1509)
-       - httpAddrGetList() would crash on systems without
-         getaddrinfo().
-       - Socket URIs without a trailing slash would cause the
-         port number to not be accepted (STR #1519)
-       - Local raw and System V printers were not advertised as
-         such for printer browsing (STR #1502)
-       - The RPM spec file incorrectly put duplicate copies of
-         the Japanese and Spanish web interface templates in the
-         main cups package (STR #1517)
-       - cupsSetDests() did not explicitly set the permissions
-         of the /etc/cups/lpoptions file (STR #1508)
-       - The lpq command crashed with the -h option (STR #1515)
-
-
-CHANGES IN CUPS V1.2rc1
-
-       - Documentation updates (STR #1497, STR #1498)
-       - The scheduler now redirects browsers to https: URLs
-         when encryption is required.
-       - The scheduler would crash when printing with a banner
-         (STR #1500)
-       - cups-driverd did not use the LanguageEncoding attribute
-         in PPD files to convert the NickName to UTF-8 (STR
-         #1503)
-       - The lpadmin command could not set the
-         printer-error-policy attribute (STR #1504)
-       - The web interface did not show the time and date in the
-         correct format for the locale (STR #1505)
-       - CUPS no longer accepts print jobs if a printer does not
-         support the file format (STR #1501)
-       - Cleaned up the PostScript filter (pstops) so that it
-         properly supports %%IncludeFeature and page scaling
-         (STR #1453)
-       - Fixed the cupsFileRewind() and cupsFileSeek() functions
-         to work properly with uncompressed files.
-       - Added cupsFileGetLine(), cupsFileStderr(),
-         cupsFileStdin(), and cupsFileStdout() functions to the
-         CUPS library.
-       - Added a new cupstestdsc program to test the DSC
-         conformance of PostScript files.
-       - Added KDE/GNOME icons and a Manage Printers menu item.
-       - Added --enable-image and --enable-pdftops configure
-         options to control whether the image and PDF filters
-         are built and installed (default = yes for all
-         platforms but MacOS X)
-       - Fixed a minor memory leak in the PPD API.
-       - Fixed transcoding issues (STR #1493)
-       - The scheduler now enforces a minimum job cost of 100
-         when doing FilterLimit checks.
-       - The scheduler would leak file descriptors when printing
-         to raw queues (STR #1491)
-       - The IPv6 support did not compile on Tru64 UNIX (STR
-         #1488)
-       - ppdOpen2() now converts the NickName and all UI text to
-         UTF-8 (STR #1475)
-       - The Set Allowed Users web page did not work (STR #1486)
-       - When the default policy was not set or set to a non-
-         existing policy, the scheduler did not set the default
-         policy name to "default" (STR #1484)
-       - The Zebra CPCL driver did not use the correct righthand
-         margin for the 4" wide label sizes.
-       - Fixed a problem with the parsing of fractional real
-         numbers in PPD files.
-       - Added Spanish localization files (STR #1480)
-       - Fixed localization of a few scheduler messages (STR
-         #1478)
-       - Fixed support for HEAD requests in the scheduler (STR
-         #1481)
-
-
-CHANGES IN CUPS V1.2b2
-
-       - Updated the CUPS design description.
-       - Added --enable-32bit and --enable-64bit configure
-         options to allow building of separate 32/64-bit
-         libraries on systems that support both environments
-         (STR #1472)
-       - Various compiler warning fixes.
-       - Fixes for Solaris 10 builds against old GNU TLS and
-         LDAP libraries.
-       - Added a cupsArrayUserData() function to retrieve the
-         user data pointer for an array (useful for typing
-         arrays)
-       - The ppdEmitString() function did not compute the
-         required buffer size properly, leading to dropped
-         characters on the end of the printer commands in pstops
-         and imagetops (STR #1470)
-
-
-CHANGES IN CUPS V1.2b1
-
-       - The serial backend now supports Equinox 8-port serial
-         hubs (STR #526)
-       - The IPP backend now supports a compression option to
-         compress print files as they are sent to the remote
-         server (STR #956)
-       - The CUPS browse protocol now supports passing of
-         default options and browse timeout values from the
-         server to the clients (STR #800)
-       - Implicit classes that timed out could cause the
-         scheduler to crash (STR #1439)
-       - Added DragonFly support in local device backends (STR
-         #1362)
-       - Added LDAP printer browsing support (STR #338)
-       - Added official support for printer maintenance commands
-         via the CUPS Command file format and hooks in the
-         printer-type and web interfaces (STR #932)
-       - The HP-GL/2 filter could get in an infinite loop trying
-         to convert HP-PCL files (STR #1415)
-       - CUPS now implements the HTTP/1.1 Expect header (STR
-         #1407)
-       - Options in PPD files are no longer automatically put in
-         an "Extra" group; rather, all options that are not
-         inside an Open/CloseGroup will be placed in the
-         "General" group (STR #1385)
-       - The scheduler now creates a job-uuid attribute that
-         uniquely identifies a job on a network (STR #1410)
-       - The init script now unsets the TMPDIR environment
-         variable to prevent user temporary directories from
-         being used by cupsd accidentally (STR #1424)
-       - Added support for launchd on MacOS X.
-       - Added support for notify_post on MacOS X.
-       - Added support for DBUS on Linux.
-       - All of the Berkeley (except for lpc) and System V
-         commands now support specification of user, host, and
-         port (STR #1028, STR #1029, STR #1087)
-       - The lpmove command now allows you to move all jobs for
-         a given queue (STR #56)
-       - The web interface now supports moving of a job or jobs
-         to another queue (STR #56)
-       - The web interface now provides searching, paging, and
-         changing of the sort/display order of classes, jobs,
-         and printers.
-       - cupsaddsmb now accepts a password on the command-line
-         and supports passwords with special characters (STR
-         #822, STR #1236)
-       - ppdLoad*() no longer tries to "fix" bad characters in
-         UI text (STR #1101)
-       - Printer names can now (reliably) contain Unicode
-         characters (STR #896)
-       - The lpstat command now shows the time and date of the
-         last printer state change instead of the hardcoded "Jan
-         01 00:00" (STR #659)
-       - The scheduler now adds a job-actual-printer-uri
-         attribute to job objects when printing to a class (STR
-         #116)
-       - The scheduler now logs log file open errors to the
-         system log (STR #1289)
-       - The scheduler now sets the job-originating-user-name to
-         the authenticated username, if available (STR #1318)
-       - The scheduler now only updates the permissions of SSL
-         keys and certificates when they are under the
-         ServerRoot directory (STR #1324)
-       - The rastertodymo driver has been renamed to
-         rastertolabel (a symlink is installed so that existing
-         queues continue to work) and now also supports Zebra's
-         CPCL language.
-       - The lpstat command could show the wrong active job for
-         a printer (STR #1301)
-       - Fixed a potential crash problem in the scheduler when
-         aborting a CGI program (STR #1290)
-       - Added a "cancel all jobs" button to the class and
-         printer web interfaces (STR #1140)
-       - The add-printer web page now shows the
-         set-printer-options page after the printer has been
-         added (STR #690)
-       - The classes web page now provides links to each of the
-         member printers (STR #307)
-       - CUPS now handles HTTP request/response lines up to 32k
-         in length; this is mainly for better cookie support
-         (STR #1274)
-       - Added support for the Apache PassEnv and SetEnv
-         directives to cupsd.conf (STR #853)
-       - Added large file (64-bit) support (STR #541)
-       - Fixed a performance issue with the ippReadIO()
-         implementation (STR #1284)
-       - Fixed a performance issue with the scheduler's implicit
-         class implementation (STR #1283)
-       - The pdftops filter now adds the Title and Creator
-         fields from the PDF file to the PostScript document
-         comments section (STR #539, STR #830)
-       - Added a new cups_array_t and cupsArray*() functions to
-         the CUPS API to support sorted lists of data.
-       - Made the CUPS API library thread-safe (STR #1276)
-       - Added "media" option support for EFI EFMediaType option
-         (STR #902)
-       - Added write buffering to the HTTP code to improve
-         performance (STR #547)
-       - The scheduler now uses the attributes-natural-language
-         attribute to localize banner pages (STR #386)
-       - The scheduler now returns the address that was used to
-         connect to it (STR #1076)
-       - Fixed a problem with N-up printing and OpenOffice (STR
-         #576)
-       - Added support for the GCC position independent
-         executable options (STR #1209)
-       - Added new BrowseLocalProtocols and
-         BrowseRemoteProtocols directives to cupsd.conf,
-         allowing for different browse protocols for local and
-         remote printers (STR #877)
-       - PPD files can now contain strings up to 256k in length
-         (STR #1215)
-       - The pstops filter now supports the IncludeFeature DSC
-         comment (STR #1212)
-       - The pstops filter now disables the setpagedevice
-         procedure when doing N-up printing (STR #1161)
-       - The serial backend now supports "stop=1", "stop=2",
-         "parity=space", and "parity=mark" options (STR #1155)
-       - "make install" no longer overwrites an existing PAM
-         configuration file (STR #1064)
-       - The scheduler now closes all files on startup when run
-         in daemon mode (STR #1009)
-       - Added a new RGBW colorspace to the CUPS raster format
-         (STR #1071)
-       - The pdftops filter now sets the page size based on the
-         media box when not scaling the output (STR #912)
-       - The pdftops filter now supports masked images (STR
-         #281)
-       - The pdftops filter produced large output when rendering
-         PDF files containing lot of repeated images (STR #327)
-       - The pdftops filter now minimizes print processing of
-         PDF files when using the page-ranges option (STR #273)
-       - Updated pdftops filter to Xpdf 3.01.
-       - Added new cupsBackchannelRead() and
-         cupsBackchannelWrite() functions, as well as
-         backchannel support to the parallel, serial, socket,
-         and USB backends (STR #1252)
-       - The parallel and USB backends now treat a "no space
-         available" error as an out-of-paper condition (STR
-         #1225)
-       - The "lpc" command now supports the "status all" command
-         (STR #1004)
-       - ippReadIO() did not read collections properly (STR
-         #1249)
-       - The "make test" script now creates the test files in
-         "/tmp/cups-$USER" instead of "/tmp/$USER" (STR #981)
-       - All backends now abort on error when printing a job to
-         a class - this allows the next printer in the class to
-         print the job (STR #1084)
-       - The scheduler now verifies that a printer supports
-         Letter or A4 media sizes before setting them as the
-         initial default (STR #1250)
-       - The cupstestppd program now flags bad Resolution
-         options (STR #1269)
-       - The USB backend now retries printing when the printer
-         is disconnected or turned off (STR #1267)
-       - Added new httpGetHostname() function to CUPS API, and
-         use it instead of gethostname() so that the web
-         interface will work correctly on systems whose hostname
-         is not the FQDN (STR #1266)
-       - The scheduler now stops printers if the backend for the
-         queue is missing on startup (STR #1265)
-       - The configure script now supports "--disable-library"
-         to disable particular image file format support
-         libraries, even if they are available on the build
-         system (STR #1248)
-       - The IPP backend did not always report on the total
-         number of pages that were printed (STR #1251)
-       - The lpstat program could display garbage date and time
-         values for locales whose date format exceeded 31
-         characters (STR #1263)
-       - The cupstestppd program would segfault when testing
-         certain broken PPD files (STR #1268)
-       - Dramatically reduced the overhead of implicit classes.
-       - Added new cupsDir*() functions to CUPS API.
-       - Printers can now be published individually for sharing.
-       - Fixed a bug in the scheduler's startup signalling code
-         which caused cupsd to send the SIGUSR1 signal to the
-         init process instead of the original parent process
-         (STR #1258)
-       - Added new on-line help CGI to web interface to provide
-         searchable help.
-       - Devices are now tracked dynamically, with each query
-         doing a new device scan.  This eliminates a previous
-         startup delay caused by slow backends and allows new
-         printers to be seen without restarting the server,
-         however it limits the amount of device URI checking
-         that can be done (basically now the scheduler only
-         requires a URI with a method that is a listed backend)
-       - Added new printer auto-detection, server configuration,
-         and log file viewing to the administration web page.
-       - Added new "set allowed users" web interface to set the
-         list of allowed users for a printer or class.
-       - The scheduler, command-line, and web interfaces now
-         limit the list of printers and classes to those
-         accessible by a user.
-       - cupsMarkOptions() now handles more non-standard
-         duplexing options and choices (STR #915)
-       - cups-lpd now honors remote banner requests with the
-         "standard" banner whenever a printer does not have one
-         defined (STR #1220)
-       - The scheduler's denial-of-service checks did not work
-         properly with IPv6 addresses (STR #1134)
-       - The lp and lpr commands did not error out properly when
-         they were unable to write to a temporary file (STR
-         #1129)
-       - The pstops filter did not handle Adobe-specific
-         comments in Windows NT driver output (STR #1085)
-       - "lpstat -l -p" incorrectly reported the printer
-         interface (STR #936)
-       - The web interface now operates exclusively with the
-         UTF-8 encoding, and sends the appropriate character set
-         and header information to the web browser (STR #919,
-         STR #1007)
-       - Added a "set allowed users" interface to the web
-         interface so that you can set the list of allowed or
-         denied users/groups for a printer or class.
-       - Disallow the "#" character in printer names, since it
-         has special meaning in the shell, config files, and in
-         URIs (STR #917, STR #1202)
-       - Added a new application/x-csource MIME type, and
-         support for it to the texttops filter so that you can
-         pretty print plain text files without the C/C++
-         keywords being highlighted.
-       - The pdftops filter did not compile with GCC 4.0 (STR
-         #1226)
-       - The texttops filter did not highlight preprocessor
-         directives followed by a tab properly.
-       - HP PJL output now uses both JOB DISPLAY and RDYMSG
-         commands to show the current job on the printer's
-         display (STR #1218)
-       - Local authentication certificates are now stored in
-         /var/run/cups/certs by default instead of
-         /etc/cups/certs (STR #1211)
-       - Backends now use "&" to separate options in device
-         URIs; "+" is still recognized but is deprecated (STR
-         #842)
-       - The USB backend no longer supports the usb:/dev/foo
-         format on systems that support device ID queries.
-       - Forced classification markings did not work when the
-         job-sheets parameters were "none,none".
-       - "lpstat -l -p" incorrectly showed all users as allowed,
-         even if the queue was restricted to certain users (STR
-         #801)
-       - The scheduler now automatically detects SSL/TLS clients
-         without using the SSLPort/SSLListen directives.
-       - The CUPS API and scheduler no longer support SSLv2-
-         encrypted connections.
-       - Updated the cupsaddsmb utility to correctly export the
-         CUPS driver for Windows.
-       - Fixed a signal-handling bug in httpRead() which
-         ultimately caused the server to print multiple copies
-         when it was busy (STR #1184)
-       - The cupsFile API now uses the O_APPEND option when
-         opening files in append mode (STR #990)
-       - The md5.h header and md5_* functions are now officially
-         private and have been renamed to avoid conflicts with
-         other implementations with the same name.
-       - The pdftops filter incorrectly embedded some Type1
-         fonts (STR #1093)
-       - The scheduler didn't detect a closed connection in the
-         middle of an IPP request (STR #1153)
-       - The scheduler could block trying to read the job status
-         if there was input pending and the job was cancelled in
-         the same input cycle (STR #1157)
-       - The scheduler could crash when deleting a class due to
-         infinite recursion.
-       - Updated the Zebra ZPL label printer driver to use the
-         run-length encoding and support more options.
-       - Updated serial backend to scan for /dev/ttyC* as well
-         as /dev/ttyc* for Cyclades serial ports (STR #1049)
-       - The scheduler could hang reading the job status under
-         certain circumstances (STR #1068)
-       - The USB backend termination signal code was inverted
-         (STR #1046)
-       - Moved enable and disable commands to sbindir to be
-         consistent.
-       - Added new cupsRasterInterpretPPD() function for RIP
-         filters to setup the raster page header from
-         PostScript commands in a PPD file.
-       - The CUPS browsing protocol now offers a "delete" bit
-         to remove printers as soon as they are deleted on the
-         server or as soon as the server shuts down gracefully
-         (STR #793)
-       - The CUPS_SERVER and ServerName directives (client.conf
-         and ~/.cupsrc) may now contain names of the form
-         "server:port" and "/path/to/domain/socket".
-       - The "cancel -u user" command now works for ordinary
-         users (STR #751)
-       - Added test run support to "make test" target (STR #64)
-       - Added domain socket support (STR #656)
-       - Added BrowseLocalOptions directive to allow the
-         administrator to add printer URI options to the browse
-         URI, e.g. "encryption=required" (STR #732)
-       - Added BrowseRemoteOptions directive to allow the
-         administrator to add standard URI options to the
-         remote printer URI, e.g. "encryption=required" (STR
-         #732)
-       - Now put "-I.." compiler option in front of all others
-         to ensure that local CUPS headers are used before
-         installed headers (STR #437)
-       - New cupsLangPrintf() and cupsLangPuts() for localized
-         interfaces.
-       - Now support custom attributes and extended options in
-         PPD files.
-       - Now provide functions to save PPD files.
-       - New policy mechanism allows per-operation and
-         per-printer control over what users and groups are
-         allowed to do various IPP operations.
-       - New error policy mechanism to control how aborted
-         backend errors are handled by the scheduler
-         (abort-job, retry-job, requeue-job, stop-printer)
-       - Updated the printer test page with a better color
-         wheel and a separate grayscale ramp.
-       - A single backend process is now run to send all print
-         data for a job.
-       - Backends and filters can now send and receive
-         backchannel data over file descriptor 3.
-       - Updated the raster stream format to support more
-         user-defined attributes and to do compression of the
-         page data.
+       - Added support for setting the document-format-default
+         attribute on a per-printer basis.
+       - Added support for IntelliBar label printers.
index 29d2de84ab83f8b4b72ddfa626f49b542b4e2547..8629f6a573bf595a326887339d29ad22b94e1627 100644 (file)
@@ -1,5 +1,5 @@
 #
-# "$Id: Makedefs.in 5468 2006-04-27 13:40:30Z mike $"
+# "$Id: Makedefs.in 5563 2006-05-21 17:18:40Z mike $"
 #
 #   Common makefile definitions for the Common UNIX Printing System (CUPS).
 #
@@ -149,6 +149,7 @@ LAUNCHDLIBS =       @LAUNCHDLIBS@
 #
 
 ARCH32FLAGS    =       @ARCH32FLAGS@
+DSO32FLAGS     =       @DSO32FLAGS@
 INSTALL32      =       @INSTALL32@
 LIB32CUPS      =       @LIB32CUPS@
 LIB32CUPSIMAGE =       @LIB32CUPSIMAGE@
@@ -156,6 +157,7 @@ LIB32DIR    =       $(BUILDROOT)@LIB32DIR@
 UNINSTALL32    =       @UNINSTALL32@
 
 ARCH64FLAGS    =       @ARCH64FLAGS@
+DSO64FLAGS     =       @DSO64FLAGS@
 INSTALL64      =       @INSTALL64@
 LIB64CUPS      =       @LIB64CUPS@
 LIB64CUPSIMAGE =       @LIB64CUPSIMAGE@
@@ -261,5 +263,5 @@ DBUSDIR             =       @DBUSDIR@
 
 
 #
-# End of "$Id: Makedefs.in 5468 2006-04-27 13:40:30Z mike $"
+# End of "$Id: Makedefs.in 5563 2006-05-21 17:18:40Z mike $"
 #
index 7dae65d0de95a7f5c4160add570a54020d83647b..e9a1f6d92bedebb179eba7e127ff3f9c9288c244 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
 #
-# "$Id: Makefile 5498 2006-05-07 16:52:14Z mike $"
+# "$Id: Makefile 5546 2006-05-19 12:44:15Z mike $"
 #
 #   Top-level Makefile for the Common UNIX Printing System (CUPS).
 #
@@ -99,8 +99,8 @@ install:      installhdrs
        echo Installing cups-config script...
        $(INSTALL_DIR) -m 755 $(BINDIR)
        $(INSTALL_SCRIPT) cups-config $(BINDIR)/cups-config
-       echo Installing startup script...
        if test "x$(INITDIR)" != x; then \
+               echo Installing init scripts...; \
                $(INSTALL_DIR) -m 755 $(BUILDROOT)$(INITDIR)/init.d; \
                $(INSTALL_SCRIPT) init/cups.sh $(BUILDROOT)$(INITDIR)/init.d/cups; \
                $(INSTALL_DIR) -m 755 $(BUILDROOT)$(INITDIR)/rc0.d; \
@@ -115,13 +115,16 @@ install:  installhdrs
        if test "x$(INITDIR)" = x -a "x$(INITDDIR)" != x; then \
                $(INSTALL_DIR) $(BUILDROOT)$(INITDDIR); \
                if test "$(INITDDIR)" = "/System/Library/StartupItems/PrintingServices"; then \
+                       echo Installing StartupItems files...; \
                        $(INSTALL_SCRIPT) init/PrintingServices $(BUILDROOT)$(INITDDIR)/PrintingServices; \
                        $(INSTALL_DATA) init/StartupParameters.plist $(BUILDROOT)$(INITDDIR)/StartupParameters.plist; \
                        $(INSTALL_DIR) -m 755 $(BUILDROOT)$(INITDDIR)/Resources/English.lproj; \
                        $(INSTALL_DATA) init/Localizable.strings $(BUILDROOT)$(INITDDIR)/Resources/English.lproj/Localizable.strings; \
                elif test "$(INITDDIR)" = "/System/Library/LaunchDaemons"; then \
+                       echo Installing LaunchDaemons configuration file...; \
                        $(INSTALL_DATA) init/org.cups.cupsd.plist $(BUILDROOT)$(DEFAULT_LAUNCHD_CONF); \
                else \
+                       echo Installing RC script...; \
                        $(INSTALL_SCRIPT) init/cups.sh $(BUILDROOT)$(INITDDIR)/cups; \
                fi \
        fi
@@ -236,5 +239,5 @@ epm:
 
 
 #
-# End of "$Id: Makefile 5498 2006-05-07 16:52:14Z mike $".
+# End of "$Id: Makefile 5546 2006-05-19 12:44:15Z mike $".
 #
index a2ca39e32a93752edc75dc910b0e6e9b9208b7a1..8061d42cbb0ca5adb04f5a6614552b1f84d829c8 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: ipp.c 5495 2006-05-05 17:58:07Z mike $"
+ * "$Id: ipp.c 5553 2006-05-20 12:22:27Z mike $"
  *
  *   IPP backend for the Common UNIX Printing System (CUPS).
  *
@@ -276,7 +276,7 @@ main(int  argc,                             /* I - Number of command-line args */
             *ptr++ = *optptr++;
        *ptr = '\0';
 
-       if (*optptr == '+')
+       if (*optptr == '+' || *optptr == '&')
          optptr ++;
       }
       else
@@ -1619,5 +1619,5 @@ sigterm_handler(int sig)          /* I - Signal */
 
 
 /*
- * End of "$Id: ipp.c 5495 2006-05-05 17:58:07Z mike $".
+ * End of "$Id: ipp.c 5553 2006-05-20 12:22:27Z mike $".
  */
index 86093682cfd609b3b1bbf1d03e6a49175a939381..0442c29261730254b4270744b7cd30a63c1476c9 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: serial.c 5400 2006-04-14 19:04:02Z mike $"
+ * "$Id: serial.c 5553 2006-05-20 12:22:27Z mike $"
  *
  *   Serial port backend for the Common UNIX Printing System (CUPS).
  *
@@ -310,7 +310,7 @@ main(int  argc,                             /* I - Number of command-line arguments (6 or 7) */
             *ptr++ = *options++;
        *ptr = '\0';
 
-       if (*options == '+')
+       if (*options == '+' || *options == '&')
          options ++;
       }
       else
@@ -1169,5 +1169,5 @@ list_devices(void)
 
 
 /*
- * End of "$Id: serial.c 5400 2006-04-14 19:04:02Z mike $".
+ * End of "$Id: serial.c 5553 2006-05-20 12:22:27Z mike $".
  */
index f3d1c3d51a90a4ef6f3a256191938e5541094fc8..39df2e67d8c7cb175cf36398c7d4592b4c47b683 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: usb-unix.c 5373 2006-04-06 20:03:32Z mike $"
+ * "$Id: usb-unix.c 5553 2006-05-20 12:22:27Z mike $"
  *
  *   USB port backend for the Common UNIX Printing System (CUPS).
  *
@@ -60,6 +60,7 @@ print_device(const char *uri,         /* I - Device URI */
             int        argc,           /* I - Number of command-line arguments (6 or 7) */
             char       *argv[])        /* I - Command-line arguments */
 {
+  int          usebc;                  /* Use backchannel path? */
   int          fd;                     /* USB device */
   int          rbytes;                 /* Number of bytes read */
   int          wbytes;                 /* Number of bytes written */
@@ -82,6 +83,14 @@ print_device(const char *uri,                /* I - Device URI */
   (void)argc;
   (void)argv;
 
+ /*
+  * Disable backchannel data when printing to Canon USB printers - apparently
+  * Canon printers will return the IEEE-1284 device ID over and over and over
+  * when they get a read request...
+  */
+
+  usebc = strcasecmp(hostname, "Canon") != 0;
+
  /*
   * Open the USB port device...
   */
@@ -238,7 +247,9 @@ print_device(const char *uri,               /* I - Device URI */
         do
        {
           FD_ZERO(&input);
-         FD_SET(fd, &input);
+         if (usebc)
+           FD_SET(fd, &input);
+
          FD_ZERO(&output);
          FD_SET(fd, &output);
         }
@@ -622,5 +633,5 @@ open_device(const char *uri)                /* I - Device URI */
 
 
 /*
- * End of "$Id: usb-unix.c 5373 2006-04-06 20:03:32Z mike $".
+ * End of "$Id: usb-unix.c 5553 2006-05-20 12:22:27Z mike $".
  */
index aac69d973b5065c402000c2c7a8054e37979e0ba..db6baa4b6f383b9aba54cf073563b481c06c031a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: admin.c 5425 2006-04-18 19:59:05Z mike $"
+ * "$Id: admin.c 5571 2006-05-22 18:46:55Z mike $"
  *
  *   Administration CGI for the Common UNIX Printing System (CUPS).
  *
@@ -93,7 +93,8 @@ main(int  argc,                               /* I - Number of command-line arguments */
   if (!http)
   {
     perror("ERROR: Unable to connect to cupsd");
-    fprintf(stderr, "DEBUG: cupsServer()=\"%s\"\n", cupsServer());
+    fprintf(stderr, "DEBUG: cupsServer()=\"%s\"\n",
+            cupsServer() ? cupsServer() : "(null)");
     fprintf(stderr, "DEBUG: ippPort()=%d\n", ippPort());
     fprintf(stderr, "DEBUG: cupsEncryption()=%d\n", cupsEncryption());
     exit(1);
@@ -481,7 +482,7 @@ do_am_class(http_t *http,           /* I - HTTP connection */
     char       refresh[1024];          /* Refresh URL */
 
     cgiFormEncode(uri, name, sizeof(uri));
-    snprintf(refresh, sizeof(refresh), "5;/admin/?OP=redirect&URL=/classes/%s",
+    snprintf(refresh, sizeof(refresh), "5;URL=/admin/?OP=redirect&URL=/classes/%s",
              uri);
     cgiSetVariable("refresh_page", refresh);
 
@@ -534,8 +535,9 @@ do_am_printer(http_t *http,         /* I - HTTP connection */
                };
 
 
+  ptr = cgiGetVariable("DEVICE_URI");
   fprintf(stderr, "DEBUG: do_am_printer: DEVICE_URI=\"%s\"\n",
-          cgiGetVariable("DEVICE_URI"));
+          ptr ? ptr : "(null)");
 
   title = cgiText(modify ? _("Modify Printer") : _("Add Printer"));
 
@@ -1041,7 +1043,7 @@ do_am_printer(http_t *http,               /* I - HTTP connection */
                 "5;/admin/?OP=redirect&URL=/printers/%s", uri);
       else
        snprintf(refresh, sizeof(refresh),
-                "5;/admin/?OP=set-printer-options&PRINTER_NAME=%s", uri);
+                "5;URL=/admin/?OP=set-printer-options&PRINTER_NAME=%s", uri);
 
       cgiSetVariable("refresh_page", refresh);
 
@@ -1489,7 +1491,9 @@ do_config_printer(http_t *http)           /* I - HTTP connection */
 
         *keyptr = '\0';
 
-        if (!strcmp(keyword, "PageRegion"))
+        if (!strcmp(keyword, "PageRegion") ||
+           !strcmp(keyword, "PaperDimension") ||
+           !strcmp(keyword, "ImageableArea"))
          var = cgiGetVariable("PageSize");
        else
          var = cgiGetVariable(keyword);
@@ -1561,7 +1565,7 @@ do_config_printer(http_t *http)           /* I - HTTP connection */
 
       cgiFormEncode(uri, printer, sizeof(uri));
       snprintf(refresh, sizeof(refresh),
-               "5;/admin/?OP=redirect&URL=/printers/%s", uri);
+               "5;URL=/admin/?OP=redirect&URL=/printers/%s", uri);
       cgiSetVariable("refresh_page", refresh);
 
       cgiStartHTML(title);
@@ -1623,7 +1627,7 @@ do_config_server(http_t *http)            /* I - HTTP connection */
     }
     else
     {
-      cgiSetVariable("refresh_page", "5;/admin/?OP=redirect");
+      cgiSetVariable("refresh_page", "5;URL=/admin/?OP=redirect");
       cgiStartHTML(cgiText(_("Change Settings")));
       cgiCopyTemplateLang("restart.tmpl");
     }
@@ -1717,7 +1721,7 @@ do_config_server(http_t *http)            /* I - HTTP connection */
     }
     else
     {
-      cgiSetVariable("refresh_page", "5;/admin/?OP=redirect");
+      cgiSetVariable("refresh_page", "5;URL=/admin/?OP=redirect");
 
       cgiStartHTML(cgiText(_("Edit Configuration File")));
       cgiCopyTemplateLang("restart.tmpl");
@@ -2478,7 +2482,7 @@ do_printer_op(http_t      *http,  /* I - HTTP connection */
 
     cgiRewriteURL(uri, url, sizeof(url), NULL);
     cgiFormEncode(uri, url, sizeof(uri));
-    snprintf(refresh, sizeof(refresh), "5;/admin/?OP=redirect&URL=%s", uri);
+    snprintf(refresh, sizeof(refresh), "5;URL=/admin/?OP=redirect&URL=%s", uri);
     cgiSetVariable("refresh_page", refresh);
 
     cgiStartHTML(title);
@@ -2736,7 +2740,8 @@ do_set_allowed_users(http_t *http)        /* I - HTTP connection */
 
       cgiRewriteURL(uri, url, sizeof(url), NULL);
       cgiFormEncode(uri, url, sizeof(uri));
-      snprintf(refresh, sizeof(refresh), "5;/admin/?OP=redirect&URL=%s", uri);
+      snprintf(refresh, sizeof(refresh), "5;URL=/admin/?OP=redirect&URL=%s",
+               uri);
       cgiSetVariable("refresh_page", refresh);
 
       cgiStartHTML(cgiText(_("Set Allowed Users")));
@@ -2826,7 +2831,7 @@ do_set_sharing(http_t *http)              /* I - HTTP connection */
 
     cgiRewriteURL(uri, url, sizeof(url), NULL);
     cgiFormEncode(uri, url, sizeof(uri));
-    snprintf(refresh, sizeof(refresh), "5;/admin/?OP=redirect&URL=%s", uri);
+    snprintf(refresh, sizeof(refresh), "5;URL=/admin/?OP=redirect&URL=%s", uri);
     cgiSetVariable("refresh_page", refresh);
 
     cgiStartHTML(cgiText(_("Set Publishing")));
@@ -2888,5 +2893,5 @@ match_string(const char *a,               /* I - First string */
 
     
 /*
- * End of "$Id: admin.c 5425 2006-04-18 19:59:05Z mike $".
+ * End of "$Id: admin.c 5571 2006-05-22 18:46:55Z mike $".
  */
index d7fd569e79a97c35391f5ab73f1f0818687bccc7..1c22d513e2d2277a6142f617603aeb7fb414b45d 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: classes.c 5202 2006-02-28 19:37:03Z mike $"
+ * "$Id: classes.c 5571 2006-05-22 18:46:55Z mike $"
  *
  *   Class status CGI for the Common UNIX Printing System (CUPS).
  *
@@ -95,8 +95,7 @@ main(int  argc,                               /* I - Number of command-line arguments */
   * See who is logged in...
   */
 
-  if ((user = getenv("REMOTE_USER")) == NULL)
-    user = "guest";
+  user = getenv("REMOTE_USER");
 
  /*
   * Connect to the HTTP server...
@@ -187,7 +186,7 @@ main(int  argc,                             /* I - Number of command-line arguments */
 
 void
 show_all_classes(http_t     *http,     /* I - Connection to server */
-                  const char *user)    /* I - Username */
+                 const char *user)     /* I - Username */
 {
   int                  i;              /* Looping var */
   ipp_t                        *request,       /* IPP request */
@@ -221,8 +220,9 @@ show_all_classes(http_t     *http,  /* I - Connection to server */
 
   request = ippNewRequest(CUPS_GET_CLASSES);
 
-  ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME,
-               "requesting-user-name", NULL, user);
+  if (user)
+    ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME,
+                "requesting-user-name", NULL, user);
 
   cgiGetAttributes(request, "classes.tmpl");
 
@@ -419,7 +419,7 @@ show_class(http_t     *http,                /* I - Connection to server */
       */
 
       cgiFormEncode(uri, pclass, sizeof(uri));
-      snprintf(refresh, sizeof(refresh), "10;/classes/%s", uri);
+      snprintf(refresh, sizeof(refresh), "10;URL=/classes/%s", uri);
       cgiSetVariable("refresh_page", refresh);
     }
 
@@ -463,5 +463,5 @@ show_class(http_t     *http,                /* I - Connection to server */
 
 
 /*
- * End of "$Id: classes.c 5202 2006-02-28 19:37:03Z mike $".
+ * End of "$Id: classes.c 5571 2006-05-22 18:46:55Z mike $".
  */
index 6dc512eadfbd6bd1e8762c8e9d52c544661dc257..0d554de71108bdf4395f1e5a00891add16127ece 100644 (file)
@@ -187,7 +187,8 @@ main(int  argc,                             /* I - Number of command-line arguments */
   topic = cgiGetVariable("TOPIC");
   si    = helpSearchIndex(hi, query, topic, helpfile);
 
-  fprintf(stderr, "DEBUG: query=\"%s\", topic=\"%s\"\n", query, topic);
+  fprintf(stderr, "DEBUG: query=\"%s\", topic=\"%s\"\n",
+          query ? query : "(null)", topic ? topic : "(null)");
 
   if (si)
   {
index a51b28f94db0753ed4634be5fc66d2f4801ebe96..62e0cc517bca7cf60769a5a9d0ed10cd5b6b877e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: html.c 4921 2006-01-12 21:26:26Z mike $"
+ * "$Id: html.c 5548 2006-05-19 19:38:31Z mike $"
  *
  *   HTML support functions for the Common UNIX Printing System (CUPS).
  *
@@ -175,12 +175,13 @@ cgi_null_passwd(const char *prompt)       /* I - Prompt string (unused) */
 {
   (void)prompt;
 
-  fprintf(stderr, "DEBUG: cgi_null_passwd(prompt=\"%s\") called!\n", prompt);
+  fprintf(stderr, "DEBUG: cgi_null_passwd(prompt=\"%s\") called!\n",
+          prompt ? prompt : "(null)");
 
   return (NULL);
 }
 
 
 /*
- * End of "$Id: html.c 4921 2006-01-12 21:26:26Z mike $".
+ * End of "$Id: html.c 5548 2006-05-19 19:38:31Z mike $".
  */
index 583a9f7455f28d526c7695a40ddb3e3f30b2b70c..83dc0af745dd174f1e2636596f6ae814cb8aaed9 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: ipp-var.c 5425 2006-04-18 19:59:05Z mike $"
+ * "$Id: ipp-var.c 5571 2006-05-22 18:46:55Z mike $"
  *
  *   CGI <-> IPP variable routines for the Common UNIX Printing System (CUPS).
  *
@@ -482,7 +482,7 @@ cgiMoveJobs(http_t     *http,               /* I - Connection to server */
     {
       cgiRewriteURL(job_printer_uri, resource, sizeof(resource), NULL);
       cgiFormEncode(uri, resource, sizeof(uri));
-      snprintf(refresh, sizeof(refresh), "2;%s", uri);
+      snprintf(refresh, sizeof(refresh), "2;URL=%s", uri);
       cgiSetVariable("refresh_page", refresh);
     }
 
@@ -598,7 +598,7 @@ cgiPrintTestPage(http_t     *http,  /* I - Connection to server */
     */
 
     cgiFormEncode(uri, resource, sizeof(uri));
-    snprintf(refresh, sizeof(refresh), "2;%s", uri);
+    snprintf(refresh, sizeof(refresh), "2;URL=%s", uri);
     cgiSetVariable("refresh_page", refresh);
   }
 
@@ -774,7 +774,7 @@ cgiSetIPPObjectVars(
 
   fprintf(stderr, "DEBUG2: cgiSetIPPObjectVars(obj=%p, prefix=\"%s\", "
                   "element=%d)\n",
-          obj, prefix, element);
+          obj, prefix ? prefix : "(null)", element);
 
  /*
   * Set common CGI template variables...
@@ -977,7 +977,9 @@ cgiSetIPPVars(ipp_t      *response, /* I - Response data to be copied... */
 
   fprintf(stderr, "DEBUG2: cgiSetIPPVars(response=%p, filter_name=\"%s\", "
                   "filter_value=\"%s\", prefix=\"%s\", parent_el=%d)\n",
-          response, filter_name, filter_value, prefix, parent_el);
+          response, filter_name ? filter_name : "(null)",
+         filter_value ? filter_value : "(null)",
+         prefix ? prefix : "(null)", parent_el);
 
  /*
   * Set common CGI template variables...
@@ -1277,5 +1279,5 @@ cgiText(const char *message)              /* I - Message */
 
 
 /*
- * End of "$Id: ipp-var.c 5425 2006-04-18 19:59:05Z mike $".
+ * End of "$Id: ipp-var.c 5571 2006-05-22 18:46:55Z mike $".
  */
index 74b950d56d3a1479643f41ab2ca4e212ef2388db..50dc2b32231afa278d0834c098cfb3c53dcdb0ae 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: printers.c 5202 2006-02-28 19:37:03Z mike $"
+ * "$Id: printers.c 5571 2006-05-22 18:46:55Z mike $"
  *
  *   Printer status CGI for the Common UNIX Printing System (CUPS).
  *
@@ -98,8 +98,7 @@ main(int  argc,                               /* I - Number of command-line arguments */
   * See who is logged in...
   */
 
-  if ((user = getenv("REMOTE_USER")) == NULL)
-    user = "guest";
+  user = getenv("REMOTE_USER");
 
  /*
   * Connect to the HTTP server...
@@ -287,7 +286,7 @@ print_command(http_t     *http,             /* I - Connection to server */
     */
 
     cgiFormEncode(uri, resource, sizeof(uri));
-    snprintf(refresh, sizeof(refresh), "2;%s", uri);
+    snprintf(refresh, sizeof(refresh), "2;URL=%s", uri);
     cgiSetVariable("refresh_page", refresh);
   }
 
@@ -331,7 +330,7 @@ show_all_printers(http_t     *http, /* I - Connection to server */
 
 
   fprintf(stderr, "DEBUG: show_all_printers(http=%p, user=\"%s\")\n",
-          http, user);
+          http, user ? user : "(null)");
 
  /*
   * Show the standard header...
@@ -357,8 +356,9 @@ show_all_printers(http_t     *http, /* I - Connection to server */
   ippAddInteger(request, IPP_TAG_OPERATION, IPP_TAG_ENUM,
                 "printer-type-mask", CUPS_PRINTER_CLASS);
 
-  ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME,
-               "requesting-user-name", NULL, user);
+  if (user)
+    ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME,
+                "requesting-user-name", NULL, user);
 
   cgiGetAttributes(request, "printers.tmpl");
 
@@ -543,7 +543,7 @@ show_printer(http_t     *http,              /* I - Connection to server */
 
 
   fprintf(stderr, "DEBUG: show_printer(http=%p, printer=\"%s\")\n",
-          http, printer);
+          http, printer ? printer : "(null)");
 
  /*
   * Build an IPP_GET_PRINTER_ATTRIBUTES request, which requires the following
@@ -594,7 +594,7 @@ show_printer(http_t     *http,              /* I - Connection to server */
       */
 
       cgiFormEncode(uri, printer, sizeof(uri));
-      snprintf(refresh, sizeof(refresh), "10;/printers/%s", uri);
+      snprintf(refresh, sizeof(refresh), "10;URL=/printers/%s", uri);
       cgiSetVariable("refresh_page", refresh);
     }
 
@@ -638,5 +638,5 @@ show_printer(http_t     *http,              /* I - Connection to server */
 
 
 /*
- * End of "$Id: printers.c 5202 2006-02-28 19:37:03Z mike $".
+ * End of "$Id: printers.c 5571 2006-05-22 18:46:55Z mike $".
  */
index f6f213fef547bb74f5b3c038f2eb97d37aec820e..d2fd9b8e3c09de431b237dabedd789a86c61965d 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: template.c 5461 2006-04-25 17:15:45Z mike $"
+ * "$Id: template.c 5548 2006-05-19 19:38:31Z mike $"
  *
  *   CGI template function.
  *
@@ -60,7 +60,7 @@ cgiCopyTemplateFile(FILE       *out,  /* I - Output file */
 
 
   fprintf(stderr, "DEBUG: cgiCopyTemplateFile(out=%p, tmpl=\"%s\")\n", out,
-          tmpl);
+          tmpl ? tmpl : "(null)");
 
  /*
   * Open the template file...
@@ -69,7 +69,7 @@ cgiCopyTemplateFile(FILE       *out,  /* I - Output file */
   if ((in = fopen(tmpl, "r")) == NULL)
   {
     fprintf(stderr, "ERROR: Unable to open template file \"%s\" - %s\n",
-            tmpl, strerror(errno));
+            tmpl ? tmpl : "(null)", strerror(errno));
     return;
   }
 
@@ -102,7 +102,8 @@ cgiCopyTemplateLang(const char *tmpl)       /* I - Base filename */
   FILE         *in;                    /* Input file */
 
 
-  fprintf(stderr, "DEBUG: cgiCopyTemplateLang(tmpl=\"%s\")\n", tmpl);
+  fprintf(stderr, "DEBUG: cgiCopyTemplateLang(tmpl=\"%s\")\n",
+          tmpl ? tmpl : "(null)");
 
  /*
   * Convert the language to a locale name...
@@ -669,5 +670,5 @@ cgi_puturi(const char *s,           /* I - String to output */
 
 
 /*
- * End of "$Id: template.c 5461 2006-04-25 17:15:45Z mike $".
+ * End of "$Id: template.c 5548 2006-05-19 19:38:31Z mike $".
  */
index 177e883b7e80023f42e832f2143937427a799ce6..113b8d026ed33de582c3f4015d55ee18744613fc 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: var.c 5331 2006-03-23 21:21:19Z mike $"
+ * "$Id: var.c 5548 2006-05-19 19:38:31Z mike $"
  *
  *   CGI form variable and array functions.
  *
@@ -949,7 +949,8 @@ cgi_passwd(const char *prompt)              /* I - Prompt (not used) */
 {
   (void)prompt;
 
-  fprintf(stderr, "DEBUG: cgi_passwd(prompt=\"%s\") called!\n", prompt);
+  fprintf(stderr, "DEBUG: cgi_passwd(prompt=\"%s\") called!\n",
+          prompt ? prompt : "(null)");
 
  /*
   * Send a 401 (unauthorized) status to the server, so it can notify
@@ -1026,5 +1027,5 @@ cgi_unlink_file(void)
 
 
 /*
- * End of "$Id: var.c 5331 2006-03-23 21:21:19Z mike $".
+ * End of "$Id: var.c 5548 2006-05-19 19:38:31Z mike $".
  */
index 5495beaa0b9dc57dd68679a1320fbd67c04ebbb0..f31fc36914fc47ba8a1dacdb237c4d5ff3be2c9c 100644 (file)
@@ -1,5 +1,5 @@
 dnl
-dnl "$Id: cups-common.m4 5466 2006-04-26 19:52:27Z mike $"
+dnl "$Id: cups-common.m4 5502 2006-05-08 21:09:15Z 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 Versio number information...
-CUPS_VERSION="1.2svn"
+CUPS_VERSION="1.3svn"
 CUPS_REVISION=""
 if test -z "$CUPS_REVISION" -a -d .svn; then
        CUPS_REVISION="-r`svnversion . | awk -F: '{print $NF}' | sed -e '1,$s/[[a-zA-Z]]*//g'`"
@@ -265,5 +265,5 @@ AC_SUBST(DEFAULT_IPP_PORT)
 AC_DEFINE_UNQUOTED(CUPS_DEFAULT_IPP_PORT,$DEFAULT_IPP_PORT)
 
 dnl
-dnl End of "$Id: cups-common.m4 5466 2006-04-26 19:52:27Z mike $".
+dnl End of "$Id: cups-common.m4 5502 2006-05-08 21:09:15Z mike $".
 dnl
index c3b82a8523b2bd70a3f75000172b22e11d80bee1..964931f9d184a484da6538d212fd23462db940c8 100644 (file)
@@ -1,5 +1,5 @@
 dnl
-dnl "$Id: cups-compiler.m4 5473 2006-05-01 15:51:09Z mike $"
+dnl "$Id: cups-compiler.m4 5565 2006-05-22 01:08:19Z mike $"
 dnl
 dnl   Compiler stuff for the Common UNIX Printing System (CUPS).
 dnl
@@ -138,8 +138,8 @@ if test -n "$GCC"; then
                                        ARCH32FLAGS="$with_arch32flags"
                                fi
                                INSTALL32="install32bit"
-                               LIB32CUPS="libcups.32.so.2"
-                               LIB32CUPSIMAGE="libcupsimage.32.so.2"
+                               LIB32CUPS="32bit/libcups.so.2"
+                               LIB32CUPSIMAGE="32bit/libcupsimage.so.2"
                                LIB32DIR="$prefix/lib32"
                                UNINSTALL32="uninstall32bit"
 
@@ -162,8 +162,8 @@ if test -n "$GCC"; then
                                        ARCH64FLAGS="$with_arch64flags"
                                fi
                                INSTALL64="install64bit"
-                               LIB64CUPS="libcups.64.so.2"
-                               LIB64CUPSIMAGE="libcupsimage.64.so.2"
+                               LIB64CUPS="64bit/libcups.so.2"
+                               LIB64CUPSIMAGE="64bit/libcupsimage.so.2"
                                LIB64DIR="$prefix/lib64"
                                UNINSTALL64="uninstall64bit"
 
@@ -188,8 +188,8 @@ if test -n "$GCC"; then
                                        ARCH32FLAGS="$with_arch32flags"
                                fi
                                INSTALL32="install32bit"
-                               LIB32CUPS="libcups.32.so.2"
-                               LIB32CUPSIMAGE="libcupsimage.32.so.2"
+                               LIB32CUPS="32bit/libcups.so.2"
+                               LIB32CUPSIMAGE="32bit/libcupsimage.so.2"
                                LIB32DIR="$exec_prefix/lib"
                                if test -d /usr/lib32; then
                                        LIB32DIR="${LIB32DIR}32"
@@ -215,8 +215,8 @@ if test -n "$GCC"; then
                                        ARCH64FLAGS="$with_arch64flags"
                                fi
                                INSTALL64="install64bit"
-                               LIB64CUPS="libcups.64.so.2"
-                               LIB64CUPSIMAGE="libcupsimage.64.so.2"
+                               LIB64CUPS="64bit/libcups.so.2"
+                               LIB64CUPSIMAGE="64bit/libcupsimage.so.2"
                                LIB64DIR="$exec_prefix/lib"
                                if test -d /usr/lib64; then
                                        LIB64DIR="${LIB64DIR}64"
@@ -244,8 +244,8 @@ if test -n "$GCC"; then
                                        ARCH32FLAGS="$with_arch32flags"
                                fi
                                INSTALL32="install32bit"
-                               LIB32CUPS="libcups.32.so.2"
-                               LIB32CUPSIMAGE="libcupsimage.32.so.2"
+                               LIB32CUPS="32bit/libcups.so.2"
+                               LIB32CUPSIMAGE="32bit/libcupsimage.so.2"
                                LIB32DIR="$exec_prefix/lib/32"
                                UNINSTALL32="uninstall32bit"
 
@@ -268,8 +268,8 @@ if test -n "$GCC"; then
                                        ARCH64FLAGS="$with_arch64flags"
                                fi
                                INSTALL64="install64bit"
-                               LIB64CUPS="libcups.64.so.2"
-                               LIB64CUPSIMAGE="libcupsimage.64.so.2"
+                               LIB64CUPS="64bit/libcups.so.2"
+                               LIB64CUPSIMAGE="64bit/libcupsimage.so.2"
                                LIB64DIR="$exec_prefix/lib/64"
                                UNINSTALL64="uninstall64bit"
 
@@ -310,8 +310,11 @@ else
                        # Warning 829 is passing constant string as char *
                        CXXFLAGS="+W336,829 $CXXFLAGS"
 
-                       if test "x$with_optim" = x; then
-                               OPTIM="+DAportable $OPTIM"
+                       if test -z "$with_archflags"; then
+                               # Build portable binaries for all HP systems...
+                               ARCHFLAGS="+DAportable"
+                       else
+                               ARCHFLAGS="$with_archflags"
                        fi
 
                        if test $PICFLAG = 1; then
@@ -339,8 +342,8 @@ else
                                        ARCH32FLAGS="$with_arch32flags"
                                fi
                                INSTALL32="install32bit"
-                               LIB32CUPS="libcups.32.so.2"
-                               LIB32CUPSIMAGE="libcupsimage.32.so.2"
+                               LIB32CUPS="32bit/libcups.so.2"
+                               LIB32CUPSIMAGE="32bit/libcupsimage.so.2"
                                LIB32DIR="$prefix/lib32"
                                UNINSTALL32="uninstall32bit"
 
@@ -363,8 +366,8 @@ else
                                        ARCH64FLAGS="$with_arch64flags"
                                fi
                                INSTALL64="install64bit"
-                               LIB64CUPS="libcups.64.so.2"
-                               LIB64CUPSIMAGE="libcupsimage.64.so.2"
+                               LIB64CUPS="64bit/libcups.so.2"
+                               LIB64CUPSIMAGE="64bit/libcupsimage.so.2"
                                LIB64DIR="$prefix/lib64"
                                UNINSTALL64="uninstall64bit"
 
@@ -398,8 +401,8 @@ else
                                # binaries with separate 32-bit libraries...
                                ARCH32FLAGS="-xarch=generic"
                                INSTALL32="install32bit"
-                               LIB32CUPS="libcups.32.so.2"
-                               LIB32CUPSIMAGE="libcupsimage.32.so.2"
+                               LIB32CUPS="32bit/libcups.so.2"
+                               LIB32CUPSIMAGE="32bit/libcupsimage.so.2"
                                LIB32DIR="$exec_prefix/lib/32"
                                UNINSTALL32="uninstall32bit"
 
@@ -408,33 +411,43 @@ else
                                        # warning messages, and default to
                                        # 64-bit compiles of everything else...
                                        OPTIM="-w $OPTIM"
-                                       CFLAGS="-xarch=generic64 $CFLAGS"
+                               fi
+
+                               if test -z "$with_archflags"; then
+                                       if test -z "$with_arch64flags"; then
+                                               ARCHFLAGS="-xarch=generic64"
+                                       else
+                                               ARCHFLAGS="$with_arch64flags"
+                                       fi
+                               else
+                                       ARCHFLAGS="$with_archflags"
                                fi
                        else
                                if test "x$enable_64bit" = xyes; then
                                        # Build 64-bit libraries...
                                        ARCH64FLAGS="-xarch=generic64"
                                        INSTALL64="install64bit"
-                                       LIB64CUPS="libcups.64.so.2"
-                                       LIB64CUPSIMAGE="libcupsimage.64.so.2"
+                                       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
+                                       # Suppress all of Sun's questionable
+                                       # warning messages, and default to
+                                       # 32-bit compiles of everything else...
+                                       OPTIM="-w $OPTIM"
+                               fi
 
-                                       if test "x$with_optim" = x; then
-                                               # Suppress all of Sun's questionable
-                                               # warning messages, and default to
-                                               # 32-bit compiles of everything else...
-                                               OPTIM="-w $OPTIM"
-                                               CFLAGS="-xarch=generic $CFLAGS"
+                               if test -z "$with_archflags"; then
+                                       if test -z "$with_arch32flags"; then
+                                               ARCHFLAGS="-xarch=generic"
+                                       else
+                                               ARCHFLAGS="$with_arch32flags"
                                        fi
                                else
-                                       if test "x$with_optim" = x; then
-                                               # Suppress all of Sun's questionable
-                                               # warning messages, and default to
-                                               # 32-bit compiles of everything else...
-                                               OPTIM="-w $OPTIM"
-                                               CFLAGS="-xarch=generic $CFLAGS"
-                                       fi
+                                       ARCHFLAGS="$with_archflags"
                                fi
                        fi
                        ;;
@@ -475,5 +488,5 @@ if test $uname = HP-UX; then
 fi
 
 dnl
-dnl End of "$Id: cups-compiler.m4 5473 2006-05-01 15:51:09Z mike $".
+dnl End of "$Id: cups-compiler.m4 5565 2006-05-22 01:08:19Z mike $".
 dnl
index 39a787a98bc48064d64469fcdea7a45d1e5bc88f..7a378ad3ad391fbaa768814cbe330726fdda1dd4 100644 (file)
@@ -1,5 +1,5 @@
 dnl
-dnl "$Id: cups-directories.m4 5466 2006-04-26 19:52:27Z mike $"
+dnl "$Id: cups-directories.m4 5546 2006-05-19 12:44:15Z mike $"
 dnl
 dnl   Directory stuff for the Common UNIX Printing System (CUPS).
 dnl
@@ -130,9 +130,11 @@ if test x$rcdir = x; then
                Darwin*)
                        # Darwin and MacOS X...
                        INITDIR=""
-                       AC_CHECK_PROG(INITDDIR, launchd, 
-                               "/System/Library/LaunchDaemons", 
-                               "/System/Library/StartupItems/PrintingServices")
+                       if test -x /sbin/launchd; then
+                               INITDDIR="/System/Library/LaunchDaemons"
+                       else 
+                               INITDDIR="/System/Library/StartupItems/PrintingServices"
+                       fi
                        ;;
 
                Linux | GNU)
@@ -300,5 +302,5 @@ AC_DEFINE_UNQUOTED(CUPS_STATEDIR, "$localstatedir/run/cups")
 AC_SUBST(CUPS_STATEDIR)
 
 dnl
-dnl End of "$Id: cups-directories.m4 5466 2006-04-26 19:52:27Z mike $".
+dnl End of "$Id: cups-directories.m4 5546 2006-05-19 12:44:15Z mike $".
 dnl
index 69bbb0a3ef92728bc756a5eafb4668935a05ef45..d2171eb302f5b30c927f49f9ccff4bd2240ad827 100644 (file)
@@ -1,5 +1,5 @@
 dnl
-dnl "$Id: cups-ldap.m4 5466 2006-04-26 19:52:27Z mike $"
+dnl "$Id: cups-ldap.m4 5563 2006-05-21 17:18:40Z mike $"
 dnl
 dnl   LDAP configuration stuff for the Common UNIX Printing System (CUPS).
 dnl
@@ -36,7 +36,7 @@ LIBLDAP=""
 
 if test x$enable_ldap != xno; then
     AC_CHECK_HEADER(ldap.h,
-       AC_CHECK_LIB(ldap, ldap_value_free,
+       AC_CHECK_LIB(ldap, ldap_initialize,
             AC_DEFINE(HAVE_LDAP)
             AC_DEFINE(HAVE_OPENLDAP)
            LIBLDAP="-lldap"))
@@ -46,5 +46,5 @@ AC_SUBST(LIBLDAP)
 
 
 dnl
-dnl End of "$Id: cups-ldap.m4 5466 2006-04-26 19:52:27Z mike $".
+dnl End of "$Id: cups-ldap.m4 5563 2006-05-21 17:18:40Z mike $".
 dnl
index 05dc479b744953d8eb58ccd9fe1a89169a8b4002..d6f224f257529dd5da4a8ee456e7928df2b3e41a 100644 (file)
@@ -1,5 +1,5 @@
 dnl
-dnl "$Id: cups-sharedlibs.m4 5466 2006-04-26 19:52:27Z mike $"
+dnl "$Id: cups-sharedlibs.m4 5567 2006-05-22 15:33:11Z mike $"
 dnl
 dnl   Shared library support for the Common UNIX Printing System (CUPS).
 dnl
@@ -33,31 +33,31 @@ if test x$enable_shared != xno; then
                        LIBCUPS="libcups.so.2"
                        LIBCUPSIMAGE="libcupsimage.so.2"
                        DSO="\$(CC)"
-                       DSOFLAGS="$DSOFLAGS -Wl,-h,\$@ -G \$(OPTIM)"
+                       DSOFLAGS="$DSOFLAGS -Wl,-h,\`basename \$@\` -G \$(OPTIM)"
                        ;;
                HP-UX*)
                        LIBCUPS="libcups.sl.2"
                        LIBCUPSIMAGE="libcupsimage.sl.2"
                        DSO="\$(LD)"
-                       DSOFLAGS="$DSOFLAGS -b -z +h \$@"
+                       DSOFLAGS="$DSOFLAGS -b -z +h \`basename \$@\`"
                        ;;
                IRIX)
                        LIBCUPS="libcups.so.2"
                        LIBCUPSIMAGE="libcupsimage.so.2"
                        DSO="\$(CC)"
-                       DSOFLAGS="$DSOFLAGS -Wl,-rpath,\$(libdir),-set_version,sgi2.6,-soname,\$@ -shared \$(OPTIM)"
+                       DSOFLAGS="$DSOFLAGS -set_version,sgi2.6,-soname,\`basename \$@\` -shared \$(OPTIM)"
                        ;;
                OSF1* | Linux | GNU | *BSD*)
                        LIBCUPS="libcups.so.2"
                        LIBCUPSIMAGE="libcupsimage.so.2"
                        DSO="\$(CC)"
-                       DSOFLAGS="$DSOFLAGS -Wl,-soname,\$@ -shared \$(OPTIM)"
+                       DSOFLAGS="$DSOFLAGS -Wl,-soname,\`basename \$@\` -shared \$(OPTIM)"
                        ;;
                Darwin*)
                        LIBCUPS="libcups.2.dylib"
                        LIBCUPSIMAGE="libcupsimage.2.dylib"
                        DSO="\$(CC)"
-                       DSOFLAGS="$DSOFLAGS \$(RC_CFLAGS) -dynamiclib -single_module -lc"
+                       DSOFLAGS="$DSOFLAGS -dynamiclib -single_module -lc"
                        ;;
                AIX*)
                        LIBCUPS="libcups_s.a"
@@ -71,7 +71,7 @@ if test x$enable_shared != xno; then
                        LIBCUPS="libcups.so.2"
                        LIBCUPSIMAGE="libcupsimage.so.2"
                        DSO="\$(CC)"
-                       DSOFLAGS="$DSOFLAGS -Wl,-soname,\$@ -shared \$(OPTIM)"
+                       DSOFLAGS="$DSOFLAGS -Wl,-soname,\`basename \$@\` -shared \$(OPTIM)"
                        ;;
        esac
 else
@@ -81,8 +81,15 @@ else
        DSO=":"
 fi
 
+# 32-bit and 64-bit libraries need variations of the standard
+# DSOFLAGS...
+DSO32FLAGS="$DSOFLAGS"
+DSO64FLAGS="$DSOFLAGS"
+
 AC_SUBST(DSO)
 AC_SUBST(DSOFLAGS)
+AC_SUBST(DSO32FLAGS)
+AC_SUBST(DSO64FLAGS)
 AC_SUBST(LIBCUPS)
 AC_SUBST(LIBCUPSIMAGE)
 
@@ -113,34 +120,48 @@ if test "$DSO" != ":"; then
        DSOLIBS="\$(LIBPNG) \$(LIBTIFF) \$(LIBJPEG) \$(LIBZ)"
        IMGLIBS=""
 
-       # The *BSD, HP-UX, and Solaris run-time linkers need help when
-       # deciding where to find a DSO.  Add linker options to tell them
-       # where to find the DSO (usually in /usr/lib...  duh!)
+       # Tell the run-time linkers where to find a DSO.  Some platforms
+       # need this option, even when the library is installed in a
+       # standard location...
        case $uname in
                 HP-UX*)
-                       # HP-UX
-                       DSOFLAGS="+s +b $libdir $DSOFLAGS"
-                       LDFLAGS="$LDFLAGS -Wl,+s,+b,$libdir"
-                       EXPORT_LDFLAGS="-Wl,+s,+b,$libdir"
-                       ;;
+                       # HP-UX needs the path, even for /usr/lib...
+                       DSOFLAGS="+s +b \$(libdir) $DSOFLAGS"
+                       DSO32FLAGS="+s +b \$(LIB32DIR) $DSO32FLAGS"
+                       DSO64FLAGS="+s +b \$(LIB64DIR) $DSO64FLAGS"
+                       LDFLAGS="$LDFLAGS -Wl,+s,+b,\$(libdir)"
+                       EXPORT_LDFLAGS="-Wl,+s,+b,\$(libdir)"
+                       ;;
                 SunOS*)
-                       # Solaris
-                       DSOFLAGS="-R$libdir $DSOFLAGS"
-                       LDFLAGS="$LDFLAGS -R$libdir"
-                       EXPORT_LDFLAGS="-R$libdir"
-                       ;;
+                       # Solaris...
+                       if test $exec_prefix != /usr; then
+                               DSOFLAGS="-R\$(libdir) $DSOFLAGS"
+                               DSO32FLAGS="-R\$(LIB32DIR) $DSO32FLAGS"
+                               DSO64FLAGS="-R\$(LIB64DIR) $DSO64FLAGS"
+                               LDFLAGS="$LDFLAGS -R\$(libdir)"
+                               EXPORT_LDFLAGS="-R\$(libdir)"
+                       fi
+                       ;;
                 *BSD*)
-                        # *BSD
-                       DSOFLAGS="-Wl,-R$libdir $DSOFLAGS"
-                        LDFLAGS="$LDFLAGS -Wl,-R$libdir"
-                        EXPORT_LDFLAGS="-Wl,-R$libdir"
-                        ;;
-                Linux | GNU)
-                        # Linux and HURD
-                       DSOFLAGS="-Wl,-rpath,$libdir $DSOFLAGS"
-                        LDFLAGS="$LDFLAGS -Wl,-rpath,$libdir"
-                        EXPORT_LDFLAGS="-Wl,-rpath,$libdir"
-                        ;;
+                        # *BSD...
+                       if test $exec_prefix != /usr; then
+                               DSOFLAGS="-Wl,-R\$(libdir) $DSOFLAGS"
+                               DSO32FLAGS="-Wl,-R\$(LIB32DIR) $DSO32FLAGS"
+                               DSO64FLAGS="-Wl,-R\$(LIB64DIR) $DSO64FLAGS"
+                               LDFLAGS="$LDFLAGS -Wl,-R\$(libdir)"
+                               EXPORT_LDFLAGS="-Wl,-R\$(libdir)"
+                       fi
+                       ;;
+                IRIX | Linux | GNU)
+                        # IRIX, Linux, and HURD...
+                       if test $exec_prefix != /usr; then
+                               DSOFLAGS="-Wl,-rpath,\$(libdir) $DSOFLAGS"
+                               DSO32FLAGS="-Wl,-rpath,\$(LIB32DIR) $DSO32FLAGS"
+                               DSO64FLAGS="-Wl,-rpath,\$(LIB64DIR) $DSO64FLAGS"
+                               LDFLAGS="$LDFLAGS -Wl,-rpath,\$(libdir)"
+                               EXPORT_LDFLAGS="-Wl,-rpath,\$(libdir)"
+                       fi
+                       ;;
        esac
 else
        DSOLIBS=""
@@ -152,5 +173,5 @@ AC_SUBST(IMGLIBS)
 AC_SUBST(EXPORT_LDFLAGS)
 
 dnl
-dnl End of "$Id: cups-sharedlibs.m4 5466 2006-04-26 19:52:27Z mike $".
+dnl End of "$Id: cups-sharedlibs.m4 5567 2006-05-22 15:33:11Z mike $".
 dnl
index 6147b3e8cd1dff337bd2db3ff7972ee9c99fd769..35d025c7fbd3ca6a6a7c90c63c179dc271c3226b 100644 (file)
@@ -1,5 +1,5 @@
 dnl
-dnl "$Id: cups-ssl.m4 5466 2006-04-26 19:52:27Z mike $"
+dnl "$Id: cups-ssl.m4 5524 2006-05-15 13:52:09Z mike $"
 dnl
 dnl   OpenSSL/GNUTLS stuff for the Common UNIX Printing System (CUPS).
 dnl
@@ -55,18 +55,14 @@ if test x$enable_ssl != xno; then
 
     dnl Then look for GNU TLS...
     if test "x${SSLLIBS}" = "x" -a "x${enable_gnutls}" != "xno"; then
-       AC_CHECK_HEADER(gnutls/gnutls.h,
-           dnl Save the current libraries so the crypto stuff isn't always
-           dnl included...
-           SAVELIBS="$LIBS"
-
-           AC_CHECK_LIB(gnutls, gnutls_x509_crt_set_dn_by_oid,
-               [SSLLIBS="-lgnutls"
-                ENCRYPTION_REQUIRED="  Encryption Required"
-                AC_DEFINE(HAVE_SSL)
-                AC_DEFINE(HAVE_GNUTLS)])
-
-           LIBS="$SAVELIBS")
+       AC_PATH_PROG(LIBGNUTLSCONFIG,libgnutls-config)
+       if test "x$LIBGNUTLSCONFIG" != x; then
+           SSLLIBS=`$LIBGNUTLSCONFIG --libs`
+           SSLFLAGS=`$LIBGNUTLSCONFIG --cflags`
+           ENCRYPTION_REQUIRED="  Encryption Required"
+           AC_DEFINE(HAVE_SSL)
+           AC_DEFINE(HAVE_GNUTLS)
+       fi
     fi
 
     dnl Check for the OpenSSL library last...
@@ -104,6 +100,11 @@ if test x$enable_ssl != xno; then
     fi
 fi
 
+if test "x$SSLLIBS" != x; then
+    AC_MSG_RESULT([    Using SSLLIBS="$SSLLIBS"])
+    AC_MSG_RESULT([    Using SSLFLAGS="$SSLFLAGS"])
+fi
+
 AC_SUBST(SSLFLAGS)
 AC_SUBST(SSLLIBS)
 AC_SUBST(ENCRYPTION_REQUIRED)
@@ -113,5 +114,5 @@ AC_SUBST(EXPORT_SSLLIBS)
 
 
 dnl
-dnl End of "$Id: cups-ssl.m4 5466 2006-04-26 19:52:27Z mike $".
+dnl End of "$Id: cups-ssl.m4 5524 2006-05-15 13:52:09Z mike $".
 dnl
index 2f5ea715c68f101b3f632dd9adfd3bc1c01d3975..0c88b72b929cfddeba62bd99b09637d76848f689 100755 (executable)
@@ -1,6 +1,6 @@
 #! /bin/sh
 #
-# "$Id: cups-config.in 5134 2006-02-19 15:16:08Z mike $"
+# "$Id: cups-config.in 5503 2006-05-10 18:55:39Z mike $"
 # 
 #   CUPS configuration utility.
 #
 #
 
 VERSION="@CUPS_VERSION@"
-APIVERSION="1.2"
+APIVERSION="1.3"
 
 prefix=@prefix@
 exec_prefix=@exec_prefix@
 bindir=@bindir@
 includedir=@includedir@
 libdir=@libdir@
+imagelibdir=@libdir@
 datadir=@datadir@
 sysconfdir=@sysconfdir@
 cups_datadir=@CUPS_DATADIR@
@@ -44,14 +45,28 @@ LDFLAGS="@EXPORT_LDFLAGS@"
 LIBS="@EXPORT_SSLLIBS@ @LIBS@"
 IMGLIBS="@EXPORT_LIBTIFF@ @EXPORT_LIBJPEG@ @EXPORT_LIBPNG@ @EXPORT_LIBZ@"
 
-if test $includedir != /usr/include; then
-    CFLAGS="$CFLAGS -I$includedir"
-fi
+# Check for local invocation...
+selfdir=`dirname $0`
+
+if test -f "$selfdir/cups/cups.h"; then
+    CFLAGS="-I$selfdir"
+    LDFLAGS="-L$selfdir/cups -L$selfdir/filter $LDFLAGS"
+    libdir="$selfdir/cups"
+    imagelibdir="$selfdir/filter"
+    if test ! -e "$selfdir/cups/raster.h"; then
+        ln -s ../filter/raster.h "$selfdir/cups"
+    fi
+else
+    if test $includedir != /usr/include; then
+       CFLAGS="$CFLAGS -I$includedir"
+    fi
 
-if test $libdir != /usr/lib -a $libdir != /usr/lib32; then
-    LDFLAGS="$LDFLAGS -L$libdir"
+    if test $libdir != /usr/lib -a $libdir != /usr/lib32 -a $libdir != /usr/lib64; then
+       LDFLAGS="$LDFLAGS -L$libdir"
+    fi
 fi
 
+
 usage ()
 {
     echo "Usage: cups-config --api-version"
@@ -106,7 +121,7 @@ while test $# -gt 0; do
                if test $image = no; then
                    echo $libdir/libcups.a $LIBS
                else
-                   echo $libdir/libcupsimage.a $IMGLIBS $libdir/libcups.a $LIBS
+                   echo $imagelibdir/libcupsimage.a $IMGLIBS $libdir/libcups.a $LIBS
                fi
            fi
            ;;
@@ -135,5 +150,5 @@ while test $# -gt 0; do
 done
 
 #
-# End of "$Id: cups-config.in 5134 2006-02-19 15:16:08Z mike $".
+# End of "$Id: cups-config.in 5503 2006-05-10 18:55:39Z mike $".
 #
index 51b396b2acb45227be2671f68ce958f2eab8cb5f..8bd7f808e4885ccc8877a9de45a831b6969516bd 100644 (file)
@@ -1,5 +1,5 @@
 #
-# "$Id: Makefile 5491 2006-05-04 20:53:35Z mike $"
+# "$Id: Makefile 5563 2006-05-21 17:18:40Z mike $"
 #
 #   API library Makefile for the Common UNIX Printing System (CUPS).
 #
@@ -137,7 +137,8 @@ all:        $(TARGETS)
 
 clean:
        $(RM) $(OBJS) $(TARGETS)
-       $(RM) libcups.so libcups.sl libcups.dylib libcups.32.so libcups.64.so
+       $(RM) libcups.so libcups.sl libcups.dylib
+       $(RM) -r 32bit 64it
 
 
 #
@@ -184,12 +185,12 @@ installhdrs:
 
 install32bit:
        $(INSTALL_DIR) -m 755 $(LIB32DIR)
-       $(INSTALL_LIB) libcups.32.so.2 $(LIB32DIR)/libcups.so.2
+       $(INSTALL_LIB) 32bit/libcups.so.2 $(LIB32DIR)/libcups.so.2
        $(LN) libcups.so $(LIB32DIR)/libcups.so.2
 
 install64bit:
        $(INSTALL_DIR) -m 755 $(LIB64DIR)
-       $(INSTALL_LIB) libcups.64.so.2 $(LIB64DIR)/libcups.so.2
+       $(INSTALL_LIB) 64bit/libcups.so.2 $(LIB64DIR)/libcups.so.2
        $(LN) libcups.so $(LIB64DIR)/libcups.so.2
 
 
@@ -235,21 +236,27 @@ libcups.so.2 libcups.sl.2:        $(LIBOBJS)
 
 
 #
-# libcups.32.so.2
+# 32bit/libcups.so.2
 #
 
-libcups.32.so.2:       $(LIB32OBJS)
+32bit/libcups.so.2:    $(LIB32OBJS)
        echo Linking 32-bit $@...
-       $(DSO) $(ARCH32FLAGS) $(DSOFLAGS) -o $@ $(LIB32OBJS) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
+       -mkdir 32bit
+       $(DSO) $(ARCH32FLAGS) $(DSO32FLAGS) -o $@ $(LIB32OBJS) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
+       $(RM) 32bit/libcups.so
+       $(LN) libcups.so.2 32bit/libcups.so
 
 
 #
-# libcups.64.so.2
+# 64bit/libcups.so.2
 #
 
-libcups.64.so.2:       $(LIB64OBJS)
+64bit/libcups.so.2:    $(LIB64OBJS)
        echo Linking 64-bit $@...
-       $(DSO) $(ARCH64FLAGS) $(DSOFLAGS) -o $@ $(LIB64OBJS) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
+       -mkdir 64bit
+       $(DSO) $(ARCH64FLAGS) $(DSO64FLAGS) -o $@ $(LIB64OBJS) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
+       $(RM) 64bit/libcups.so
+       $(LN) libcups.so.2 64bit/libcups.so
 
 
 #
@@ -442,5 +449,5 @@ include Dependencies
 
 
 #
-# End of "$Id: Makefile 5491 2006-05-04 20:53:35Z mike $".
+# End of "$Id: Makefile 5563 2006-05-21 17:18:40Z mike $".
 #
index 1cf1ced725bc1c4b8f00fd0047a0a0d3e4acc4c2..6dd85bbd39a20d57f7d8898b518f04aeb7d50edb 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: auth.c 5359 2006-03-30 16:09:30Z mike $"
+ * "$Id: auth.c 5558 2006-05-21 13:58:56Z mike $"
  *
  *   Authentication functions for the Common UNIX Printing System (CUPS).
  *
@@ -112,8 +112,8 @@ 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);
+    snprintf(prompt, sizeof(prompt), _("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;
@@ -249,5 +249,5 @@ cups_local_auth(http_t *http)               /* I - HTTP connection to server */
 
 
 /*
- * End of "$Id: auth.c 5359 2006-03-30 16:09:30Z mike $".
+ * End of "$Id: auth.c 5558 2006-05-21 13:58:56Z mike $".
  */
index 29f542011a1e82f2c59b804cf286ffda12ff232c..f2a7f0ede7cf4c70812970d794521c3c9ba440f3 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: backchannel.c 5138 2006-02-21 10:49:06Z mike $"
+ * "$Id: backchannel.c 5550 2006-05-19 20:20:15Z mike $"
  *
  *   Backchannel functions for the Common UNIX Printing System (CUPS).
  *
@@ -161,7 +161,7 @@ cupsBackChannelWrite(
       * Write error - abort on fatal errors...
       */
 
-      if (errno != EINTR && errno != EAGAIN)
+      if (errno != EINTR)
         return (-1);
     }
     else
@@ -197,5 +197,5 @@ cups_setup(fd_set         *set,             /* I - Set for select() */
 
 
 /*
- * End of "$Id: backchannel.c 5138 2006-02-21 10:49:06Z mike $".
+ * End of "$Id: backchannel.c 5550 2006-05-19 20:20:15Z mike $".
  */
index 64b389a08f6c2ee0729bdc3c34c52530cac047c0..94f9b8981b1a2debc49d3afe8cfed2665694e5cf 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: cups.h 5233 2006-03-06 03:39:28Z mike $"
+ * "$Id: cups.h 5502 2006-05-08 21:09:15Z mike $"
  *
  *   API definitions for the Common UNIX Printing System (CUPS).
  *
@@ -61,9 +61,9 @@ extern "C" {
  * Constants...
  */
 
-#  define CUPS_VERSION         1.0200
+#  define CUPS_VERSION         1.0300
 #  define CUPS_VERSION_MAJOR   1
-#  define CUPS_VERSION_MINOR   2
+#  define CUPS_VERSION_MINOR   3
 #  define CUPS_VERSION_PATCH   0
 #  define CUPS_DATE_ANY                -1
 
@@ -244,5 +244,5 @@ extern cups_file_t  *cupsTempFile2(char *filename, int len);
 #endif /* !_CUPS_CUPS_H_ */
 
 /*
- * End of "$Id: cups.h 5233 2006-03-06 03:39:28Z mike $".
+ * End of "$Id: cups.h 5502 2006-05-08 21:09:15Z mike $".
  */
index ec46217f12588a3e40d58e04914f03053d540c9e..7d6f4cec47fef4bebc8d93ba1a5ab182f47dc4c9 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: encode.c 5373 2006-04-06 20:03:32Z mike $"
+ * "$Id: encode.c 5544 2006-05-18 21:00:16Z mike $"
  *
  *   Option encoding routines for the Common UNIX Printing System (CUPS).
  *
@@ -67,6 +67,7 @@ static const _ipp_option_t ipp_options[] =
   { "copies",                  IPP_TAG_INTEGER,        IPP_TAG_JOB },
   { "copies-default",          IPP_TAG_INTEGER,        IPP_TAG_PRINTER },
   { "document-format",         IPP_TAG_MIMETYPE,       IPP_TAG_OPERATION },
+  { "document-format-default", IPP_TAG_MIMETYPE,       IPP_TAG_PRINTER },
   { "finishings",              IPP_TAG_ENUM,           IPP_TAG_JOB },
   { "finishings-default",      IPP_TAG_ENUM,           IPP_TAG_PRINTER },
   { "fitplot",                 IPP_TAG_BOOLEAN,        IPP_TAG_JOB },
@@ -88,6 +89,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-events-default",   IPP_TAG_KEYWORD,        IPP_TAG_PRINTER },
   { "notify-lease-time",       IPP_TAG_INTEGER,        IPP_TAG_SUBSCRIPTION },
   { "notify-natural-language", IPP_TAG_LANGUAGE,       IPP_TAG_SUBSCRIPTION },
   { "notify-pull-method",      IPP_TAG_KEYWORD,        IPP_TAG_SUBSCRIPTION },
@@ -133,6 +135,8 @@ static const _ipp_option_t ipp_options[] =
   { "raw",                     IPP_TAG_MIMETYPE,       IPP_TAG_OPERATION },
   { "resolution",              IPP_TAG_RESOLUTION,     IPP_TAG_JOB },
   { "resolution-default",      IPP_TAG_RESOLUTION,     IPP_TAG_PRINTER },
+  { "requesting-user-name-allowed",    IPP_TAG_NAME,   IPP_TAG_PRINTER },
+  { "requesting-user-name-denied",     IPP_TAG_NAME,   IPP_TAG_PRINTER },
   { "saturation",              IPP_TAG_INTEGER,        IPP_TAG_JOB },
   { "saturation-default",      IPP_TAG_INTEGER,        IPP_TAG_PRINTER },
   { "scaling",                 IPP_TAG_INTEGER,        IPP_TAG_JOB },
@@ -557,5 +561,5 @@ compare_ipp_options(_ipp_option_t *a,       /* I - First option */
 
 
 /*
- * End of "$Id: encode.c 5373 2006-04-06 20:03:32Z mike $".
+ * End of "$Id: encode.c 5544 2006-05-18 21:00:16Z mike $".
  */
index 0daf59b852a69917a7bdb8a85335a25b587985a9..7653cfde9481adc79b77ba9382a94ff4bbb89df6 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: getifaddrs.c 5466 2006-04-26 19:52:27Z mike $"
+ * "$Id: getifaddrs.c 5503 2006-05-10 18:55:39Z mike $"
  *
  *   Network interface functions for the Common UNIX Printing System
  *   (CUPS) scheduler.
@@ -182,8 +182,9 @@ _cups_getifaddrs(struct ifaddrs **addrs)/* O - List of interfaces */
        * Got it, make a copy...
        */
 
-       if ((temp->ifa_dstaddr = calloc(1, sizeof(request.ifr_broadaddr))) != NULL)
-         memcpy(temp->ifa_dstaddr, &(request.ifr_broadaddr),
+       if ((temp->ifa_broadaddr =
+                calloc(1, sizeof(request.ifr_broadaddr))) != NULL)
+         memcpy(temp->ifa_broadaddr, &(request.ifr_broadaddr),
                 sizeof(request.ifr_broadaddr));
       }
     }
@@ -271,5 +272,5 @@ _cups_freeifaddrs(struct ifaddrs *addrs)/* I - Interface list to free */
 
 
 /*
- * End of "$Id: getifaddrs.c 5466 2006-04-26 19:52:27Z mike $".
+ * End of "$Id: getifaddrs.c 5503 2006-05-10 18:55:39Z mike $".
  */
index 3a32b8da26fa0527aba1552431dc3f830d2d4ba4..b95b007d8ec243a0514ee3db5411dcac2b028ad5 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: http-private.h 5466 2006-04-26 19:52:27Z mike $"
+ * "$Id: http-private.h 5503 2006-05-10 18:55:39Z mike $"
  *
  *   Private HTTP definitions for the Common UNIX Printing System (CUPS).
  *
@@ -161,11 +161,23 @@ struct ifaddrs                            /**** Interface Structure ****/
   char                 *ifa_name;      /* Name of interface */
   unsigned int         ifa_flags;      /* Flags (up, point-to-point, etc.) */
   struct sockaddr      *ifa_addr,      /* Network address */
-                       *ifa_netmask,   /* Address mask */
-                       *ifa_dstaddr;   /* Broadcast or destination address */
+                       *ifa_netmask;   /* Address mask */
+  union
+  {
+    struct sockaddr    *ifu_broadaddr; /* Broadcast address of this interface. */
+    struct sockaddr    *ifu_dstaddr;   /* Point-to-point destination address. */
+  } ifa_ifu;
+
   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 */
+
 extern int     _cups_getifaddrs(struct ifaddrs **addrs);
 #    define getifaddrs _cups_getifaddrs
 extern void    _cups_freeifaddrs(struct ifaddrs *addrs);
@@ -175,5 +187,5 @@ extern void _cups_freeifaddrs(struct ifaddrs *addrs);
 #endif /* !_CUPS_HTTP_PRIVATE_H_ */
 
 /*
- * End of "$Id: http-private.h 5466 2006-04-26 19:52:27Z mike $".
+ * End of "$Id: http-private.h 5503 2006-05-10 18:55:39Z mike $".
  */
index 5cbac1b76cbf786acf9f9ee124d89c1494cece72..a7d8fd7bd4dcf7178de2f5bd3bd8ea90997b15b5 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: mark.c 5238 2006-03-07 04:41:42Z mike $"
+ * "$Id: mark.c 5528 2006-05-15 20:03:12Z mike $"
  *
  *   Option marking routines for the Common UNIX Printing System (CUPS).
  *
@@ -241,9 +241,6 @@ ppd_option_t *                              /* O - Pointer to option or NULL */
 ppdFindOption(ppd_file_t *ppd,         /* I - PPD file data */
               const char *option)      /* I - Option/Keyword name */
 {
-  ppd_option_t key;                    /* Option search key */
-
-
  /*
   * Range check input...
   */
@@ -251,13 +248,39 @@ ppdFindOption(ppd_file_t *ppd,            /* I - PPD file data */
   if (!ppd || !option)
     return (NULL);
 
- /*
-  * Search...
-  */
+  if (ppd->options)
+  {
+   /*
+    * Search in the array...
+    */
+
+    ppd_option_t       key;            /* Option search key */
+
+
+    strlcpy(key.keyword, option, sizeof(key.keyword));
 
-  strlcpy(key.keyword, option, sizeof(key.keyword));
+    return ((ppd_option_t *)cupsArrayFind(ppd->options, &key));
+  }
+  else
+  {
+   /*
+    * Search in each group...
+    */
 
-  return ((ppd_option_t *)cupsArrayFind(ppd->options, &key));
+    int                        i, j;           /* Looping vars */
+    ppd_group_t                *group;         /* Current group */
+    ppd_option_t       *optptr;        /* Current option */
+
+
+    for (i = ppd->num_groups, group = ppd->groups; i > 0; i --, group ++)
+      for (j = group->num_options, optptr = group->options;
+           j > 0;
+          j --, optptr ++)
+        if (!strcasecmp(optptr->keyword, option))
+         return (optptr);
+
+    return (NULL);
+  }
 }
 
 
@@ -656,5 +679,5 @@ ppd_defaults(ppd_file_t  *ppd,      /* I - PPD file */
 
 
 /*
- * End of "$Id: mark.c 5238 2006-03-07 04:41:42Z mike $".
+ * End of "$Id: mark.c 5528 2006-05-15 20:03:12Z mike $".
  */
index f9ac4ef852b51668826d815325f0716b79b9bfca..f835c41c0f9585d43eb3f485babe3c26b587d069 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: page.c 5238 2006-03-07 04:41:42Z mike $"
+ * "$Id: page.c 5548 2006-05-19 19:38:31Z mike $"
  *
  *   Page size functions for the Common UNIX Printing System (CUPS).
  *
@@ -87,7 +87,7 @@ ppdPageSize(ppd_file_t *ppd,          /* I - PPD file record */
       if (!nameptr || *nameptr != 'x')
         return (NULL);
 
-      l = _cupsStrScand(nameptr, &nameptr, loc);
+      l = _cupsStrScand(nameptr + 1, &nameptr, loc);
       if (!nameptr)
         return (NULL);
 
@@ -193,5 +193,5 @@ ppdPageLength(ppd_file_t *ppd,      /* I - PPD file */
 
 
 /*
- * End of "$Id: page.c 5238 2006-03-07 04:41:42Z mike $".
+ * End of "$Id: page.c 5548 2006-05-19 19:38:31Z mike $".
  */
index 93d08885ea5a8c6c5b157d01b42e4a9f725cffff..6aff5126d84451bf179bd48330c1edd1f910304b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: request.c 5495 2006-05-05 17:58:07Z mike $"
+ * "$Id: request.c 5556 2006-05-21 13:55:23Z mike $"
  *
  *   IPP utilities for the Common UNIX Printing System (CUPS).
  *
@@ -70,6 +70,7 @@ cupsDoFileRequest(http_t     *http,   /* I - HTTP connection to server */
   struct stat  fileinfo;               /* File information */
   int          bytes;                  /* Number of bytes read/written */
   char         buffer[32768];          /* Output buffer */
+  http_status_t        expect;                 /* Expect: header to use */
 
 
   DEBUG_printf(("cupsDoFileRequest(%p, %p, \'%s\', \'%s\')\n",
@@ -146,6 +147,7 @@ cupsDoFileRequest(http_t     *http, /* I - HTTP connection to server */
 
   response = NULL;
   status   = HTTP_ERROR;
+  expect   = HTTP_CONTINUE;
 
   while (response == NULL)
   {
@@ -163,7 +165,7 @@ cupsDoFileRequest(http_t     *http, /* I - HTTP connection to server */
     httpSetLength(http, length);
     httpSetField(http, HTTP_FIELD_CONTENT_TYPE, "application/ipp");
     httpSetField(http, HTTP_FIELD_AUTHORIZATION, http->authstring);
-    httpSetExpect(http, HTTP_CONTINUE);
+    httpSetExpect(http, expect);
 
     DEBUG_printf(("cupsDoFileRequest: authstring=\"%s\"\n", http->authstring));
 
@@ -312,6 +314,14 @@ cupsDoFileRequest(http_t     *http,        /* I - HTTP connection to server */
       continue;
     }
 #endif /* HAVE_SSL */
+    else if (status == HTTP_EXPECTATION_FAILED)
+    {
+     /*
+      * Don't try using the Expect: header the next time around...
+      */
+
+      expect = (http_status_t)0;
+    }
     else if (status != HTTP_OK)
     {
       DEBUG_printf(("cupsDoFileRequest: error %d...\n", status));
@@ -469,5 +479,5 @@ _cupsSetError(ipp_status_t status,  /* I - IPP status code */
 
 
 /*
- * End of "$Id: request.c 5495 2006-05-05 17:58:07Z mike $".
+ * End of "$Id: request.c 5556 2006-05-21 13:55:23Z mike $".
  */
index 86f8c3f63124efab9ee4a64116bb0f372ab53215..19dff87af73cc3993392a72afe79e15110d41335 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: snprintf.c 4683 2005-09-21 22:17:44Z mike $"
+ * "$Id: snprintf.c 5527 2006-05-15 19:37:11Z mike $"
  *
  *   snprintf functions for the Common UNIX Printing System (CUPS).
  *
@@ -96,7 +96,10 @@ _cups_vsnprintf(char       *buffer,  /* O - Output buffer */
 
       if (*format == '*')
       {
-        // Get width from argument...
+       /*
+        * Get width from argument...
+       */
+
        format ++;
        width = va_arg(ap, int);
 
@@ -125,7 +128,10 @@ _cups_vsnprintf(char       *buffer,        /* O - Output buffer */
 
         if (*format == '*')
        {
-          // Get precision from argument...
+         /*
+         * Get precision from argument...
+         */
+
          format ++;
          prec = va_arg(ap, int);
 
@@ -362,6 +368,6 @@ _cups_snprintf(char       *buffer,  /* O - Output buffer */
 
 
 /*
- * End of "$Id: snprintf.c 4683 2005-09-21 22:17:44Z mike $".
+ * End of "$Id: snprintf.c 5527 2006-05-15 19:37:11Z mike $".
  */
 
diff --git a/doc/help/spec-pdf.html b/doc/help/spec-pdf.html
new file mode 100644 (file)
index 0000000..862eb0c
--- /dev/null
@@ -0,0 +1,21 @@
+<HTML>
+<!-- SECTION: Specifications -->
+<HEAD>
+       <TITLE>CUPS PDF Format</TITLE>
+       <LINK REL="STYLESHEET" TYPE="test/css" HREF="../cups.css">
+</HEAD>
+<BODY>
+
+<P>CUPS PDF files (application/vnd.cups-pdf) are device-dependent
+PDF/A files that contain a job ticket information. These files
+are typically produced by the CUPS <CODE>pdftopdf</CODE> filter
+which handles job ticket generation, imposition, page labeling,
+scaling, and other formatting options requested by the user. CUPS
+PDF files are intended for direct consumption by a PDF-capable
+printer, PDF RIP, or the <CODE>pdftops</CODE> filter.</P>
+
+<P>More information will be posted here as the PDF workflow
+filters are added to CUPS.</P>
+
+</BODY>
+</HTML>
index 8a39e8be83317e6284925ff3ac5d1184eecae875..b3a44a4f932c30b6ab21a7e189c1db01d6911f47 100644 (file)
@@ -2,6 +2,7 @@
 <!-- SECTION: Specifications -->
 <HEAD>
        <TITLE>CUPS Raster Format</TITLE>
+       <LINK REL="STYLESHEET" TYPE="test/css" HREF="../cups.css">
 </HEAD>
 <BODY>
 
@@ -37,13 +38,16 @@ is followed immediately by the (uncompressed, raw) raster data
 for that page.</P>
 
 <DIV CLASS="table"><TABLE SUMMARY="CUPS Version 1 Raster Page Device Dictionary">
-<CAPTION>Table 1: CUPS Version 1 Raster Page Device Dictionary</CAPTION>
+<CAPTION><A NAME="TABLE1">Table 1: CUPS Version 1 Raster Page Device Dictionary</A></CAPTION>
+<THEAD>
 <TR>
        <TH>Bytes</TH>
        <TH>Type</TH>
        <TH>Description</TH>
        <TH>Values</TH>
 </TR>
+</THEAD>
+<TBODY>
 <TR>
        <TD>0-63</TD>
        <TD>C String</TD>
@@ -284,9 +288,9 @@ for that page.</P>
        <TD>400-403</TD>
        <TD>Unsigned Integer</TD>
        <TD>cupsColorSpace</TD>
-       <TD>0 = white<BR>
-       1 = RGB<BR>
-       2 = RGBA<BR>
+       <TD>0 = white (sRGB)<BR>
+       1 = RGB (sRGB)<BR>
+       2 = RGBA (sRGB)<BR>
        3 = black<BR>
        4 = CMY<BR>
        5 = YMC<BR>
@@ -301,22 +305,22 @@ for that page.</P>
        14 = SILVER<BR>
        15 = CIE XYZ<BR>
        16 = CIE Lab<BR>
-       17 = RGBW<BR>
-       32 = ICC1<BR>
-       33 = ICC2<BR>
-       34 = ICC3<BR>
-       35 = ICC4<BR>
-       36 = ICC5<BR>
-       37 = ICC6<BR>
-       38 = ICC7<BR>
-       39 = ICC8<BR>
-       40 = ICC9<BR>
-       41 = ICCA (10)<BR>
-       42 = ICCB (11)<BR>
-       43 = ICCC (12)<BR>
-       44 = ICCD (13)<BR>
-       45 = ICCE (14)<BR>
-       46 = ICCF (15)<BR>
+       17 = RGBW (sRGB)<BR>
+       32 = ICC1 (CIE Lab with hint for 1 color)<BR>
+       33 = ICC2 (CIE Lab with hint for 2 colors)<BR>
+       34 = ICC3 (CIE Lab with hint for 3 colors)<BR>
+       35 = ICC4 (CIE Lab with hint for 4 colors)<BR>
+       36 = ICC5 (CIE Lab with hint for 5 colors)<BR>
+       37 = ICC6 (CIE Lab with hint for 6 colors)<BR>
+       38 = ICC7 (CIE Lab with hint for 7 colors)<BR>
+       39 = ICC8 (CIE Lab with hint for 8 colors)<BR>
+       40 = ICC9 (CIE Lab with hint for 9 colors)<BR>
+       41 = ICCA (CIE Lab with hint for 10 colors)<BR>
+       42 = ICCB (CIE Lab with hint for 11 colors)<BR>
+       43 = ICCC (CIE Lab with hint for 12 colors)<BR>
+       44 = ICCD (CIE Lab with hint for 13 colors)<BR>
+       45 = ICCE (CIE Lab with hint for 14 colors)<BR>
+       46 = ICCF (CIE Lab with hint for 15 colors)<BR>
        </TD>
 </TR>
 <TR>
@@ -343,6 +347,7 @@ for that page.</P>
        <TD>cupsRowStep</TD>
        <TD>Driver-specific 0 to 2<SUP>32</SUP> - 1</TD>
 </TR>
+</TBODY>
 </TABLE></DIV>
 
 
@@ -362,13 +367,16 @@ header and is followed immediately by the compressed raster data
 for that page.</P>
 
 <DIV CLASS="table"><TABLE SUMMARY="CUPS Version 2 Raster Page Device Dictionary">
-<CAPTION>Table 2: CUPS Version 2 Raster Page Device Dictionary</CAPTION>
+<CAPTION><A NAME="TABLE2">Table 2: CUPS Version 2 Raster Page Device Dictionary</A></CAPTION>
+<THEAD>
 <TR>
        <TH>Bytes</TH>
        <TH>Type</TH>
        <TH>Description</TH>
        <TH>Values</TH>
 </TR>
+</THEAD>
+<TBODY>
 <TR>
        <TD>0-419</TD>
        <TD>Version 1 header data</TD>
@@ -436,6 +444,7 @@ for that page.</P>
        <TD>cupsPageSizeName</TD>
        <TD>Page size name/keyword string from PPD</TD>
 </TR>
+</TBODY>
 </TABLE></DIV>
 
 <H3><A NAME="COMPRESSION">Compressed Raster Data Format</A></H3>
@@ -446,6 +455,7 @@ color values based upon the <CODE>cupsColorOrder</CODE>
 setting:</P>
 
 <DIV CLASS="table"><TABLE SUMMARY="Color Value Sizes">
+<CAPTION><A NAME="TABLE3">Table 3: Color Value Sizes</A></CAPTION>
 <TR>
        <TH>cupsColorOrder</TH>
        <TH>Bytes per color value</TH>
@@ -475,9 +485,205 @@ colors are encoded using an initial byte of "257 - count"
 followed by the color value bytes.</P>
 
 
+<H2 CLASS="title"><A NAME="ENCODING">Pixel Value Coding</A></H2>
+
+<P>The following sections describe the encoding and decoding of
+the color values in a CUPS raster file. In general, colors are
+packed into the minimum number of bytes, with special
+consideration provided for efficiency of encoding and access.
+Multi-byte values are stored in the native byte order and
+automatically swapped as needed when reading them using the CUPS
+imaging API.</P>
+
+<H3>CUPS_ORDER_CHUNKED</H3>
+
+<P>The chunked order provides the pixel value packed in a single
+place. Pixel values with 8 or more bits per color are stored as
+an array of colors in order, e.g. for
+<CODE>CUPS_CSPACE_RGB</CODE> you will see 8/16-bits of red, then
+blue, then green, then red, green, blue, etc. Pixel values with
+less than 8 bits per color are packed together as shown in Table
+4. <I>Multi-byte pixel values are stored in the native word
+order, just as for 16-bit color values.</I></P>
+
+<DIV CLASS="table"><TABLE SUMMARY="Chunked Color Values">
+<CAPTION><A NAME="TABLE4">Table 4: Chunked Color Values</A></CAPTION>
+<THEAD>
+<TR>
+       <TH>Bits</TH>
+       <TH>1-color</TH>
+       <TH>3-color</TH>
+       <TH>4-color</TH>
+       <TH>6-color</TH>
+</TR>
+</THEAD>
+<TBODY>
+<TR>
+       <TD>1</TD>
+       <TD>W/W/W/W/W/W/W/W</TD>
+       <TD>0RGB/0RGB</TD>
+       <TD>CMYK/CMYK</TD>
+       <TD>00KCMYcm</TD>
+</TR>
+<TR>
+       <TD>2</TD>
+       <TD>WW/WW/WW/WW</TD>
+       <TD>00RRGGBB</TD>
+       <TD>CCMMYYKK</TD>
+       <TD>N/A</TD>
+</TR>
+<TR>
+       <TD>4</TD>
+       <TD>WWWW/WWWW</TD>
+       <TD>0000RRRRGGGGBBBB<BR>
+       <I>(multi-byte)</I></TD>
+       <TD>CCCCMMMMYYYYKKKK<BR>
+       <I>(multi-byte)</I></TD>
+       <TD>N/A</TD>
+</TR>
+</TBODY>
+</TABLE></DIV>
+
+<H3>CUPS_ORDER_BANDED</H3>
+
+<P>The banded order provides each color as a separate line of
+data. Each color plane for a line is written in sequence, e.g.
+for the <CODE>CUPS_CSPACE_CMYK</CODE> colorspace you would see
+all of the cyan pixels for a line followed by the magenta,
+yellow, and black pixels for that line. This is repeated for all
+of the lines on the page. Color values are packed starting with
+the most-significant bit (MSB) first.</P>
+
+<H3>CUPS_ORDER_PLANAR</H3>
+
+<P>The planar order provides each color as a separate page of
+data using a shared page header. Each color plane for a page is
+written in sequence, e.g. for the <CODE>CUPS_CSPACE_CMYK</CODE>
+colorspace you would see all of the cyan pixels for a page
+followed by the magenta, yellow, and black pixels for that page.
+Color values are packed starting with the most-significant bit
+(MSB) first. Each line starts on an 8-bit boundary.</P>
+
+<H3>CUPS_CSPACE_W, CUPS_CSPACE_RGB, CUPS_CSPACE_RGBA, and
+CUPS_CSPACE_RGBW</H3>
+
+<P>These colorspaces use the sRGB colorspace definition and
+whitepoint.</P>
+
+<H3>CUPS_CSPACE_KCMYcm</H3>
+
+<P>When <CODE>cupsBitsPerColor</CODE> is 1, 6 color planes are
+provided - black, cyan, magenta, yellow, light cyan, and light
+magenta. When <CODE>cupsBitsPerColor</CODE> is greater than 1, 4
+color planes are provided using the <CODE>CUPS_CSPACE_KCMY</CODE>
+colorspace instead.</P>
+
+<P>When <CODE>cupsColorOrder</CODE> is
+<CODE>CUPS_ORDER_CHUNKED</CODE>, bit 5 corresponds to black and
+bit 0 corresponds to light magenta. For
+<CODE>CUPS_ORDER_BANDED</CODE> and
+<CODE>CUPS_ORDER_PLANAR</CODE>, each color plane is encoded
+separately.</P>
+
+<H3>CUPS_CSPACE_CIELab and CUPS_CSPACE_ICCn</H3>
+
+<P>These colorspaces map a CIE Lab color value with a D65
+whitepoint to either a 8- or 16-bit per color chunked
+(<CODE>CUPS_ORDER_CHUNKED</CODE>) format; the banded
+(<CODE>CUPS_ORDER_BANDED</CODE>) and planar
+(<CODE>CUPS_ORDER_PLANAR</CODE>) color orders are not
+supported.</P>
+
+<P>The values are encoded and decoded using the following
+formulas:</P>
+
+<UL>
+
+       <LI>8-bit Encoding:<BR>
+       <I>L8 = 2.55 * L + 0.5<BR>
+       a8 = a + 128.5<BR>
+       b8 = b + 128.5<BR>
+       &nbsp;</I></LI>
+
+       <LI>8-bit Decoding:<BR>
+       <I>L = L8 / 2.55<BR>
+       a = a8 - 128<BR>
+       b = b8 - 128<BR>
+       &nbsp;</I></LI>
+
+       <LI>16-bit Encoding:<BR>
+       <I>L16 = 655.35 * L + 0.5<BR>
+       a16 = 256 * (a + 128) + 0.5<BR>
+       b16 = 256 * (b + 128) + 0.5<BR>
+       &nbsp;</I></LI>
+
+       <LI>16-bit Decoding:<BR>
+       <I>L = L16 / 655.35<BR>
+       a = a16 / 256 - 128<BR>
+       b = b16 / 256 - 128<BR>
+       &nbsp;</I></LI>
+
+</UL>
+
+<H3>CUPS_CSPACE_CIEXYZ</H3>
+
+<P>These colorspaces map a CIE XYZ color value with a D65
+whitepoint to either a 8- or 16-bit per color chunked
+(<CODE>CUPS_ORDER_CHUNKED</CODE>) format; the banded
+(<CODE>CUPS_ORDER_BANDED</CODE>) and planar
+(<CODE>CUPS_ORDER_PLANAR</CODE>) color orders are not
+supported.</P>
+
+<P>The values are encoded and decoded using the following
+formulas:</P>
+
+<UL>
+
+       <LI>8-bit Encoding:<BR>
+       <I>X8 = 231.8181 * X + 0.5<BR>
+       Y8 = 231.8181 * Y + 0.5<BR>
+       Z8 = 231.8181 * Z + 0.5<BR>
+       &nbsp;</I></LI>
+
+       <LI>8-bit Decoding:<BR>
+       <I>X = X8 / 231.8181<BR>
+       Y = Y8 / 231.8181<BR>
+       Z = Z8 / 231.8181<BR>
+       &nbsp;</I></LI>
+
+       <LI>16-bit Encoding:<BR>
+       <I>X16 = 59577.2727 * X + 0.5<BR>
+       Y16 = 59577.2727 * Y + 0.5<BR>
+       Z16 = 59577.2727 * Z + 0.5<BR>
+       &nbsp;</I></LI>
+
+       <LI>16-bit Decoding:<BR>
+       <I>X = X16 / 59577.2727<BR>
+       Y = Y16 / 59577.2727<BR>
+       Z = Z16 / 59577.2727<BR>
+       &nbsp;</I></LI>
+
+</UL>
+
+<P>The scaling factor for XYZ values is 1/1.1, or 231.8181 for
+8-bit values and 59577.2727 for 16-bit values. This allows for a
+slight overflow of XYZ values when converting from RGB, improving
+accuracy.</P>
+
 
 <H2 CLASS="title"><A NAME="HISTORY">Change History</A></H2>
 
+<H3>Changes in CUPS 1.2.1</H3>
+
+<ul>
+
+       <li>Added new sections on coding pixel values.</li>
+
+       <li>Clarified definitions of color spaces.</li>
+
+</ul>
+
+
 <H3>Changes in CUPS 1.2</H3>
 
 <ul>
index 5b8cd5b217b72db7ac0113641d84564d17fa70ea..8013e5de5cd0f6e5b6a6a863fcdf546dcd98f4f1 100644 (file)
Binary files a/doc/pl/images/button-accept-jobs.gif and b/doc/pl/images/button-accept-jobs.gif differ
index ce7ea6ccf4c2d6a095df4ad448d17a13805d66b3..ca9b8c616f085e7bdde577ff8eb1e9b71b078ef0 100644 (file)
Binary files a/doc/pl/images/button-add-class.gif and b/doc/pl/images/button-add-class.gif differ
index 0f284487f7a42cd2397f2ccf8fe0bca294ac3a5e..1e099e647ae049ce64d0d697b77fd750b78acb5b 100644 (file)
Binary files a/doc/pl/images/button-add-printer.gif and b/doc/pl/images/button-add-printer.gif differ
index dc00856bd5ec775d88874a9831f743fe70274565..4fa4e4d4ba77682d7b7d2a6c17c7185c1fc88faa 100644 (file)
Binary files a/doc/pl/images/button-add-this-printer.gif and b/doc/pl/images/button-add-this-printer.gif differ
index 84e724b258420db708c42248ab002418fbe5dc5b..093b3e7fdbc7f3b0cfb98f8870ef0c96112060e9 100644 (file)
Binary files a/doc/pl/images/button-cancel-all-jobs.gif and b/doc/pl/images/button-cancel-all-jobs.gif differ
index 2d122bac5a2493f0056932e388fd41d57539f5e0..1cc3be3af2398d36578903bc1341dc62b6d830df 100644 (file)
Binary files a/doc/pl/images/button-cancel-job.gif and b/doc/pl/images/button-cancel-job.gif differ
index 73de99527d7687050eee99b40815191d6ceb6452..8abeb0774aeb7e0870a6999a202c3000d2f1716d 100644 (file)
Binary files a/doc/pl/images/button-change-settings.gif and b/doc/pl/images/button-change-settings.gif differ
index 2f45608d8ebb47781af49a95f59a286a0b6a8a1c..0daf9a9ac2c66b59b5f12818924d33af253e6ef3 100644 (file)
Binary files a/doc/pl/images/button-clean-print-heads.gif and b/doc/pl/images/button-clean-print-heads.gif differ
index e15a4bb3ddd3b399131d94750fdd62ef23aad5bb..9e1c36d36fec58c7adb8e81b7f91c39658b7fd92 100644 (file)
Binary files a/doc/pl/images/button-clear.gif and b/doc/pl/images/button-clear.gif differ
index 93f849041d2623ec1ac6b7d83a61c2b83ebb9ff7..d0d291666dab4076311c7a2c57244cb6b6238ece 100644 (file)
Binary files a/doc/pl/images/button-continue.gif and b/doc/pl/images/button-continue.gif differ
index 934b8d66b5416a52d47b736acd2d9f04d1fd0379..38f69eca1315cc0b0f1cda6236e523d2d78fcfef 100644 (file)
Binary files a/doc/pl/images/button-delete-class.gif and b/doc/pl/images/button-delete-class.gif differ
index f7c6984186825ae6669814888c6557d0d884a8ab..7e5bf74ea00b04d9e70fc801062abe71e1e28af0 100644 (file)
Binary files a/doc/pl/images/button-delete-printer.gif and b/doc/pl/images/button-delete-printer.gif differ
index 89fd8a7d65c32d33d8d58c41bbab4c1cd7db2f3d..e892aa1d96743d4509d354b85ca1db0b2a538978 100644 (file)
Binary files a/doc/pl/images/button-edit-configuration-file.gif and b/doc/pl/images/button-edit-configuration-file.gif differ
index c6c333619f0a63822bb55f558224bed57e8a1d9c..1fdbf67f09737a6a1b508f4c87a08af4449a9c1b 100644 (file)
Binary files a/doc/pl/images/button-export-samba.gif and b/doc/pl/images/button-export-samba.gif differ
index d2d4f85307814ff2a5dc8f1053e9183333f333ef..f5e239e0ece00f1da4e6636ab7c777b63fef1178 100644 (file)
Binary files a/doc/pl/images/button-help.gif and b/doc/pl/images/button-help.gif differ
index 2ab556492963ccaf8028641cb9f77a858da0ee59..5219e686845c7edad00817d227fae787bd023eda 100644 (file)
Binary files a/doc/pl/images/button-hold-job.gif and b/doc/pl/images/button-hold-job.gif differ
index c758f98029d1bd9a283328fc90973432f39b067d..63a8f660d6d365f32cc53619da40a7186856fc00 100644 (file)
Binary files a/doc/pl/images/button-manage-classes.gif and b/doc/pl/images/button-manage-classes.gif differ
index 7aefeddaf30070dba892829e05df8d4a89c46337..f8f6f0d8bca56c717b8e27f68e1f8a8221a425ba 100644 (file)
Binary files a/doc/pl/images/button-manage-jobs.gif and b/doc/pl/images/button-manage-jobs.gif differ
index f884f7f6068bc69d41e459f06b576d67e2f8db6d..041efc2159eb1745c89e330e5c4ee2a0f4f42b92 100644 (file)
Binary files a/doc/pl/images/button-manage-printers.gif and b/doc/pl/images/button-manage-printers.gif differ
index ba6e31cdc83fe2645602a2a2c3aeb9f2a89111f0..cb6d760478cadf100e87ad8fe82b3a9f5556ced4 100644 (file)
Binary files a/doc/pl/images/button-manage-server.gif and b/doc/pl/images/button-manage-server.gif differ
index fcf5f6d3eeb48059a7a9e4a914af3a38aac43961..38cce158f37ba23431691ab4c6c11371b70d0d0c 100644 (file)
Binary files a/doc/pl/images/button-modify-class.gif and b/doc/pl/images/button-modify-class.gif differ
index e3d5346630b20235f2014a9b91b194fd3f708bbc..acbb6daac0920e9e49d1c9619da33875b447f9f5 100644 (file)
Binary files a/doc/pl/images/button-modify-printer.gif and b/doc/pl/images/button-modify-printer.gif differ
index 02ce3300d1800a639daaf95efee8ac449186bfdb..585f48e8bc0977e69c7246c83fc12f972d28def8 100644 (file)
Binary files a/doc/pl/images/button-move-job.gif and b/doc/pl/images/button-move-job.gif differ
index 36029ac30866cd37479cbed72319027f08da6abf..4600b780fa4690ca6e08cf687df65f9edef7eb4b 100644 (file)
Binary files a/doc/pl/images/button-move-jobs.gif and b/doc/pl/images/button-move-jobs.gif differ
index bcea1ba01aa6288f82651a3c78fb25110aff8389..1aa3349f10a5544aabc67d62a2d60dc40db136b1 100644 (file)
Binary files a/doc/pl/images/button-print-self-test-page.gif and b/doc/pl/images/button-print-self-test-page.gif differ
index 57ac13be7778b697bc175e8f748769754a4e9392..8eb7ec39848e3f1c0f5c95cf9e45c269dff08b75 100644 (file)
Binary files a/doc/pl/images/button-print-test-page.gif and b/doc/pl/images/button-print-test-page.gif differ
index c12abe87e6d1bc8ffe9fea6393a8e11384ef64bd..909702fb496c325876a3208094373eb88fc56a1b 100644 (file)
Binary files a/doc/pl/images/button-publish-printer.gif and b/doc/pl/images/button-publish-printer.gif differ
index a81848bdee5cf3f704a304bd7844cdc16f867010..bcff455807c99e6f26f145a6d10bd587a04ba0a0 100644 (file)
Binary files a/doc/pl/images/button-reject-jobs.gif and b/doc/pl/images/button-reject-jobs.gif differ
index d8a82f0925e0a567b89a2f42c223154d007bfb74..a3d95ad3762722539f9fffa961675383c42ca9bd 100644 (file)
Binary files a/doc/pl/images/button-release-job.gif and b/doc/pl/images/button-release-job.gif differ
index 42b7568ecf8b4bea868f7845ed1cce07eab75965..5d5a7c0313339648474e7d695ae7980b4928890d 100644 (file)
Binary files a/doc/pl/images/button-restart-job.gif and b/doc/pl/images/button-restart-job.gif differ
index 2f1fee1704193adc9582f3d1f8d369e915a9b1ae..5056b80beffe421794309faa251eb6b737b03a73 100644 (file)
Binary files a/doc/pl/images/button-save-changes.gif and b/doc/pl/images/button-save-changes.gif differ
index 1bc194527128e4f7d8adc04b79575083993dde12..5f99760e6f1ef8063ed86d80d88364a1a59d1585 100644 (file)
Binary files a/doc/pl/images/button-search.gif and b/doc/pl/images/button-search.gif differ
index cd7709ef593ad8693246a6fc6c6ed9475027b219..728ced1eebb8d76f208cd59168608fa19a918b08 100644 (file)
Binary files a/doc/pl/images/button-set-allowed-users.gif and b/doc/pl/images/button-set-allowed-users.gif differ
index 203d097347ef33dfd28e729f0812bea3c538b9ec..b01c19122eff17f6f5fdfa5b7d9fd9ab3f8feffd 100644 (file)
Binary files a/doc/pl/images/button-set-as-default.gif and b/doc/pl/images/button-set-as-default.gif differ
index 6610735e41d8c0d3be6bf564e8a6f0f111bcbea4..ed026d57ecd0a696fd11f5081dff3d5df7025657 100644 (file)
Binary files a/doc/pl/images/button-set-printer-options.gif and b/doc/pl/images/button-set-printer-options.gif differ
index 82751977db94cfa4a2431fb6d9ba3212575d5165..ac9d4e05f446d3b64929884a0c20ecbe722b2705 100644 (file)
Binary files a/doc/pl/images/button-show-active.gif and b/doc/pl/images/button-show-active.gif differ
index 0473ee62638671fecb3a840bc9de6167c8f0a551..0bd0388225c1d2d1bccf716023c6da51b23ad176 100644 (file)
Binary files a/doc/pl/images/button-show-all.gif and b/doc/pl/images/button-show-all.gif differ
index 5481f4d9a7101bb8e0e948153f9a0da0991e7af1..d27b3074c54f6122418b0e41d9620ade9e908ff5 100644 (file)
Binary files a/doc/pl/images/button-show-completed.gif and b/doc/pl/images/button-show-completed.gif differ
index 3fdf85798153637310627d54bbb2710d110fdd5f..a584f885ad3c99b4299ece98f39f06605e495f54 100644 (file)
Binary files a/doc/pl/images/button-show-next.gif and b/doc/pl/images/button-show-next.gif differ
index 8a6f8c4cf484cddd6c0771b161dd26df616b1aa2..64613b9ec0845505709e56044eb4f402a4c7cc05 100644 (file)
Binary files a/doc/pl/images/button-show-previous.gif and b/doc/pl/images/button-show-previous.gif differ
index 5a88283f334ef865cfbf6e24ca1f232cfd7939f4..993cf6a93aee0df7aa31ea9636166b7e70a71e1d 100644 (file)
Binary files a/doc/pl/images/button-sort-ascending.gif and b/doc/pl/images/button-sort-ascending.gif differ
index 61c85de29e5f18df35e7a837b823327065ccba1d..fbc5e966dd052c37317b90b7b865d756389ea0da 100644 (file)
Binary files a/doc/pl/images/button-sort-descending.gif and b/doc/pl/images/button-sort-descending.gif differ
index 85c098a38a3bffe13fee42003896a6701606d323..834f8a1254ff8e708c26601e745803a61b9f05e3 100644 (file)
Binary files a/doc/pl/images/button-start-class.gif and b/doc/pl/images/button-start-class.gif differ
index cd1734cce7bcf8107c18ea34ac9fecb1119d6b34..7d86be593c0121a339cad5b59fefbda15b169040 100644 (file)
Binary files a/doc/pl/images/button-start-printer.gif and b/doc/pl/images/button-start-printer.gif differ
index 8031731a4599854d145b198dffd905d053e451f3..c1f96cc85bd5223e81abded6cb55c3279d760b86 100644 (file)
Binary files a/doc/pl/images/button-stop-class.gif and b/doc/pl/images/button-stop-class.gif differ
index ce485f3a16ba177971f378394a751743aa556b69..34bf39da66a5c98c8fb5400ca23f2dc5fc9c54b0 100644 (file)
Binary files a/doc/pl/images/button-stop-printer.gif and b/doc/pl/images/button-stop-printer.gif differ
index 2842a3e1806fcf40b2d28af24d42f4863783f3dc..fdb48f32de5030ea1c496aae3f532ea25b503bd8 100644 (file)
Binary files a/doc/pl/images/button-unpublish-printer.gif and b/doc/pl/images/button-unpublish-printer.gif differ
index 47697cde896ccc4088762ce12db7f196911563d2..578cd05ac94dd82aa9f0988b0b5119f20cd5adee 100644 (file)
Binary files a/doc/pl/images/button-use-default-config.gif and b/doc/pl/images/button-use-default-config.gif differ
index 5d89af521454b3ce89ebf558d88a8baed7eb372f..b6ffd0ab49f4341c4418aa2e3d270e6fd67bc714 100644 (file)
Binary files a/doc/pl/images/button-view-access-log.gif and b/doc/pl/images/button-view-access-log.gif differ
index c99078ad81bec964609dc5feed96ed4b2b7e592a..bbdd548f4183a08f0925135ca6bdbd7cb324e3c1 100644 (file)
Binary files a/doc/pl/images/button-view-error-log.gif and b/doc/pl/images/button-view-error-log.gif differ
index ad49a2f4fc8aaaaefd3d838e7c7046554b372e29..30b3a7e0cb9f354f3df4a59d7a149ff91419164b 100644 (file)
Binary files a/doc/pl/images/button-view-page-log.gif and b/doc/pl/images/button-view-page-log.gif differ
index 27ae97c763e3a512c98bb9506cbc1b0f9f8680a8..726cd3a744f67ba6dbabe6aae31ee809d47f57a6 100644 (file)
Binary files a/doc/pl/images/button-view-printable-version.gif and b/doc/pl/images/button-view-printable-version.gif differ
index 012bb6e2c1d0437eb299fb9969063a679204cda6..9d29d9ca4f19ee8c28379e71751ecfc773159d34 100644 (file)
@@ -2,7 +2,7 @@
 <HTML>
 <HEAD>
        <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
-       <TITLE>Home - CUPS @CUPS_VERSION@@CUPS_REVISION@</TITLE>
+       <TITLE>Strona domowa - CUPS @CUPS_VERSION@@CUPS_REVISION@</TITLE>
        <LINK REL="STYLESHEET" TYPE="text/css" HREF="/cups.css">
        <LINK REL="SHORTCUT ICON" HREF="/favicon.ico" TYPE="image/x-icon">
 </HEAD>
@@ -19,7 +19,7 @@ SRC="/images/top-right.gif" WIDTH="15" HEIGHT="15" ALT=""></TD>
 
 <A CLASS="sel" HREF="/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
 HEIGHT="4" ALIGN="TOP" BORDER="0"
-ALT="">&nbsp;&nbsp;Strona&nbsp;Główna&nbsp;&nbsp;<IMG
+ALT="">&nbsp;&nbsp;Strona domowa&nbsp;&nbsp;<IMG
 SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
 BORDER="0" ALT=""></A>
 
@@ -31,19 +31,19 @@ BORDER="0" ALT=""></A>
 
 &nbsp;<A CLASS="unsel" HREF="/classes/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
 HEIGHT="4" ALIGN="TOP" BORDER="0"
-ALT="">&nbsp;&nbsp;Grupy&nbsp;&nbsp;<IMG
+ALT="">&nbsp;&nbsp;Klasy&nbsp;&nbsp;<IMG
 SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
 BORDER="0" ALT=""></A>
 
 &nbsp;<A CLASS="unsel" HREF="/help/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
 HEIGHT="4" ALIGN="TOP" BORDER="0"
-ALT="">&nbsp;&nbsp;Dokumentacja/Pomoc&nbsp;&nbsp;<IMG
+ALT="">&nbsp;&nbsp;Dokumentacja/pomoc&nbsp;&nbsp;<IMG
 SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
 BORDER="0" ALT=""></A>
 
 &nbsp;<A CLASS="unsel" HREF="/jobs/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
 HEIGHT="4" ALIGN="TOP" BORDER="0"
-ALT="">&nbsp;&nbsp;Wydruki&nbsp;&nbsp;<IMG
+ALT="">&nbsp;&nbsp;Zadania&nbsp;&nbsp;<IMG
 SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
 BORDER="0" ALT=""></A>
 
@@ -60,49 +60,59 @@ BORDER="0" ALT=""></A>
 
 <H2 CLASS="title">Witaj!</H2>
 
-<P> Poprzez te strony internetowe możesz kontrolować swoje drukarki i wydruki, ale także 
-administrować systemem wydruku. Klikaj na zakładki powyżej lub poniższe przyciski aby wykonać odpowiednie zadania.</P>
+<P>Te strony WWW pozwalają na monitorowanie drukarek i zadań oraz 
+przeprowadzanie zadań administracyjnych systemu. Naciśnij na dowolną
+powyższą kartę lub poniższy przycisk, aby przeprowadzić zadanie.</P>
 
 <P>
 <A HREF="/help/"><IMG SRC="/images/button-help.gif" CLASS="button" ALT="Pomoc"></A>
 <A HREF="/admin?OP=add-class"><IMG SRC="/images/button-add-class.gif" CLASS="button" ALT="Dodaj klasę"></A>
-<A HREF="/admin?OP=add-printer"><IMG SRC="/images/button-add-printer.gif" CLASS="button" ALT="Dodaj drukarkę"></A>
-<A HREF="/classes"><IMG SRC="/images/button-manage-classes.gif" CLASS="button" ALT="Zarządzaj Klasami"></A>
-<A HREF="/jobs"><IMG SRC="/images/button-manage-jobs.gif" CLASS="button" ALT="Zarządzaj wydrukami"></A>
-<A HREF="/printers"><IMG SRC="/images/button-manage-printers.gif" CLASS="button" ALT="Zarządzaj Drukarkami"></A>
-<A HREF="/admin"><IMG SRC="/images/button-manage-server.gif" CLASS="button" ALT="Zarządzaj Serwerem"></A>
+<A HREF="/admin?OP=add-printer"><IMG SRC="/images/button-add-printer.gif" CLASS="button" ALT="Dodaj drkarkę"></A>
+<A HREF="/classes"><IMG SRC="/images/button-manage-classes.gif" CLASS="button" ALT="Zarządzaj klasami"></A>
+<A HREF="/jobs"><IMG SRC="/images/button-manage-jobs.gif" CLASS="button" ALT="Zarządzaj zadaniami"></A>
+<A HREF="/printers"><IMG SRC="/images/button-manage-printers.gif" CLASS="button" ALT="Zarządzaj drukarkami"></A>
+<A HREF="/admin"><IMG SRC="/images/button-manage-server.gif" CLASS="button" ALT="Zarządzaj serwerem"></A>
 </P>
 
-<P><I>Jeśli zostaniesz poproszony o nazwę użytkownika i hasło, wprowadź swój login i hasło
-lub login "root" i hasło tego użytkownika.</I></P>
+<P><I>Jeśli zostaniesz poproszony o nazwę użytkownika i hasło, podaj
+swój login i hasło lub nazwę użytkownika "root" i hasło.</I></P>
 
-<H2 CLASS="title">O systemie CUPS</H2>
+<H2 CLASS="title">Informacje o CUPS</H2>
 
 <P>
 <IMG SRC="/images/happy.gif" ALIGN="LEFT" WIDTH="196" HEIGHT="144"
-STYLE="padding-right: 10px;" ALT="Zadowolony komputer i drukarka">
+STYLE="padding-right: 10px;" ALT="Szczęśliwy komputer i drukarka">
 
 <A HREF="http://www.easysw.com/"><IMG SRC="/images/esp-logo.gif"
 ALIGN="RIGHT" WIDTH="110" HEIGHT="68" BORDER="0"
 STYLE="padding-left: 10px; padding-bottom: 10px;"
 ALT="Easy Software Products"></A>
 
-CUPS zapewnia przenośną warstwę drukowania dla systemów bazujących na 
-UNIX<SUP>&reg;</SUP>. Jest rozbudowywany pod opieką <A HREF="http://www.easysw.com">Easy Software
-Products</a> by promować standard drukowania. CUPS jest domyślnym systemem drukowania używanym w MacOS<SUP>&reg;</SUP>&nbsp;X i większości dystrybucji Linuksa<SUP>&reg;</SUP>.</P>
-<P>CUPS stosuje <A HREF="http://www.pwg.org/ipp/"
-TARGET="_blank"> Internetowy Protokół Drukowania ("IPP")</A> jako podstawy do zarządzania wydrukami i ich kolejkami oraz umożliwia przeglądanie drukarek sieciowych i wydruki w oparciu o PostScriptowe Opisy Drukarek ("PPD") by wspierać w drukowaniu każdego użytkownika.<BR CLEAR="ALL"></P>
+CUPS dostarcza przenośną warstwę drukowania dla systemów
+operacyjnych opartych na Uniksie<SUP>&reg;</SUP>. Został napisany
+i utrzymywany przez <A HREF="http://www.easysw.com">Easy Software
+Products</a>, aby wypromować standardowe rozwiązanie drukowania.
+CUPS jest standardowym systemem drukowania używanym na MacOS-ie
+<SUP>&reg;</SUP> X i większości dystrybucji Linuksa<SUP>&reg;</SUP>.</P>
 
-<H2 CLASS="title">Sterowniki Drukarek i Wsparcie</H2>
+<P>CUPS używa <A HREF="http://www.pwg.org/ipp/"
+TARGET="_blank"> Internetowego protokołu drukowania ("IPP")</A>
+jako podstawę zarządzania zadaniami drukowania i kolejkami oraz
+dodaje sieciowe przeglądanie drukarek, a także oparte na
+PostScriptowym opisie drukarek ("PPD") opcje drukowania do
+obsługi prawdziwego drukowania.<BR CLEAR="ALL"></P>
 
-<P>Odwiedź oficjalną stronę CUPS site aby pobrać sterowniki i uzyskać wsparcie:</P>
+<H2 CLASS="title">Sterowniki drukarek i pomoc techniczna</H2>
+
+<P>Odwiedź oficjalną stronę CUPS, aby uzyskać sterowniki drukarek i pomoc techniczną:</P>
 
 <PRE>
     <A HREF="http://www.cups.org/" TARGET="_blank">www.cups.org</A>
 </PRE>
 
-<P>Komercyjne wsparcie i rozszerzona wersja CUPS zwana <A
-HREF="http://www.easysw.com/printpro/">ESP Print Pro</A> jest dostępna tu:</P>
+<P>Komercyjne wsparcie i ulepszona wersja CUPS o nazwie <A
+HREF="http://www.easysw.com/printpro/">ESP Print Pro</A> są
+dostępne na:</P>
 
 <PRE>
     <A HREF="http://www.easysw.com/" TARGET="_blank">www.easysw.com</A>
@@ -116,10 +126,10 @@ HREF="http://www.easysw.com/printpro/">ESP Print Pro</A> jest dostępna tu:</P>
 WIDTH="15" HEIGHT="15" ALT=""></TD>
 <TD COLSPAN="2" WIDTH="100%" STYLE="padding: 5;">
 
-<P><SMALL>The Common UNIX Printing System, CUPS, and the CUPS logo are the  
-trademark property of <A HREF="http://www.easysw.com">Easy Software
-Products</A>. CUPS is copyright 1997-2006 by Easy Software Products,
-All Rights Reserved.</SMALL></P>
+<P><SMALL>Common UNIX Printing System, CUPS i logo CUPS są
+zarejestrowanymi znakami towarowymi <A HREF="http://www.easysw.com">Easy Software
+Products</A>. Copyright 1997-2006 Easy Software Products,
+wszelkie prawa zastrzeżone.</SMALL></P>
 
 </TD>
 
index 57c8625adee13e4c7b2ad07f2852503a5c0adfb1..2a4dfeadf5ef6f53892c6ae40457f87ac9743941 100644 (file)
@@ -1,5 +1,5 @@
 #
-# "$Id: Makefile 5491 2006-05-04 20:53:35Z mike $"
+# "$Id: Makefile 5563 2006-05-21 17:18:40Z mike $"
 #
 #   Filter makefile for the Common UNIX Printing System (CUPS).
 #
@@ -65,7 +65,7 @@ all:  $(TARGETS)
 clean:
        $(RM) $(OBJS) $(TARGETS)
        $(RM) libcupsimage.so libcupsimage.sl libcupsimage.dylib
-       $(RM) libcupsimage.32.so libcupsimage.64.so
+       $(RM) -r 32bit 64bit
 
 
 #
@@ -117,12 +117,12 @@ installhdrs:
 
 install32bit:
        $(INSTALL_DIR) -m 755 $(LIB32DIR)
-       $(INSTALL_LIB) libcupsimage.32.so.2 $(LIB32DIR)/libcupsimage.so.2
+       $(INSTALL_LIB) 32bit/libcupsimage.so.2 $(LIB32DIR)/libcupsimage.so.2
        $(LN) libcupsimage.so $(LIB32DIR)/libcupsimage.so.2
 
 install64bit:
        $(INSTALL_DIR) -m 755 $(LIB64DIR)
-       $(INSTALL_LIB) libcupsimage.64.so.2 $(LIB64DIR)/libcupsimage.so.2
+       $(INSTALL_LIB) 64bit/libcupsimage.so.2 $(LIB64DIR)/libcupsimage.so.2
        $(LN) libcupsimage.so $(LIB64DIR)/libcupsimage.so.2
 
 
@@ -212,23 +212,25 @@ libcupsimage.so.2 libcupsimage.sl.2:      $(IMAGEOBJS)
 
 
 #
-# libcupsimage.32.so.2
+# 32bit/libcupsimage.so.2
 #
 
-libcupsimage.32.so.2:  $(IMAGE32OBJS)
+32bit/libcupsimage.so.2:       $(IMAGE32OBJS)
        echo Linking 32-bit $@...
-       $(DSO) $(ARCH32FLAGS) $(DSOFLAGS) -o $@ $(IMAGE32OBJS) $(DSOLIBS) \
-               -L../cups $(LINKCUPS) -lm
+       -mkdir 32bit
+       $(DSO) $(ARCH32FLAGS) $(DSO32FLAGS) -o $@ $(IMAGE32OBJS) $(DSOLIBS) \
+               -L../cups/32bit $(LINKCUPS) -lm
 
 
 #
-# libcupsimage.64.so.2
+# 64bit/libcupsimage.so.2
 #
 
-libcupsimage.64.so.2:  $(IMAGE64OBJS)
+64bit/libcupsimage.so.2:       $(IMAGE64OBJS)
        echo Linking 64-bit $@...
-       $(DSO) $(ARCH64FLAGS) $(DSOFLAGS) -o $@ $(IMAGE64OBJS) $(DSOLIBS) \
-               -L../cups $(LINKCUPS) -lm
+       -mkdir 64bit
+       $(DSO) $(ARCH64FLAGS) $(DSO64FLAGS) -o $@ $(IMAGE64OBJS) $(DSOLIBS) \
+               -L../cups/64bit $(LINKCUPS) -lm
 
 
 #
@@ -375,5 +377,5 @@ include Dependencies
 
 
 #
-# End of "$Id: Makefile 5491 2006-05-04 20:53:35Z mike $".
+# End of "$Id: Makefile 5563 2006-05-21 17:18:40Z mike $".
 #
index 9a20ec8c4e95c8d410d2ced2ed4601b914119575..1dc5247632590c7c8c52a87495fd350dc53ecef2 100644 (file)
@@ -1,9 +1,9 @@
 /*
- * "$Id: image-bmp.c 4741 2005-10-02 04:25:52Z mike $"
+ * "$Id: image-bmp.c 5508 2006-05-11 11:41:16Z mike $"
  *
  *   BMP image routines for the Common UNIX Printing System (CUPS).
  *
- *   Copyright 1993-2005 by Easy Software Products.
+ *   Copyright 1993-2006 by Easy Software Products.
  *
  *   These coded instructions, statements, and computer programs are the
  *   property of Easy Software Products and are protected by Federal
@@ -202,10 +202,7 @@ _cupsImageReadBMP(
 
   for (y = img->ysize - 1; y >= 0; y --)
   {
-    if (img->colorspace == CUPS_IMAGE_RGB)
-      ptr = out;
-    else
-      ptr = in;
+    ptr = in;
 
     switch (depth)
     {
@@ -442,37 +439,33 @@ _cupsImageReadBMP(
           break;
     }
 
-    if (img->colorspace == CUPS_IMAGE_RGB)
-    {
-      if (saturation != 100 || hue != 0)
-       cupsImageRGBAdjust(out, img->xsize, saturation, hue);
-    }
-    else
+    if (saturation != 100 || hue != 0)
+      cupsImageRGBAdjust(in, img->xsize, saturation, hue);
+
+    switch (img->colorspace)
     {
-      if (saturation != 100 || hue != 0)
-       cupsImageRGBAdjust(in, img->xsize, saturation, hue);
-
-      switch (img->colorspace)
-      {
-        default :
-           break;
-
-       case CUPS_IMAGE_WHITE :
-           cupsImageRGBToWhite(in, out, img->xsize);
-           break;
-
-       case CUPS_IMAGE_BLACK :
-           cupsImageRGBToBlack(in, out, img->xsize);
-           break;
-
-       case CUPS_IMAGE_CMY :
-           cupsImageRGBToCMY(in, out, img->xsize);
-           break;
-
-       case CUPS_IMAGE_CMYK :
-           cupsImageRGBToCMYK(in, out, img->xsize);
-           break;
-      }
+      default :
+         break;
+
+      case CUPS_IMAGE_WHITE :
+         cupsImageRGBToWhite(in, out, img->xsize);
+         break;
+
+      case CUPS_IMAGE_RGB :
+         cupsImageRGBToRGB(in, out, img->xsize);
+         break;
+
+      case CUPS_IMAGE_BLACK :
+         cupsImageRGBToBlack(in, out, img->xsize);
+         break;
+
+      case CUPS_IMAGE_CMY :
+         cupsImageRGBToCMY(in, out, img->xsize);
+         break;
+
+      case CUPS_IMAGE_CMYK :
+         cupsImageRGBToCMYK(in, out, img->xsize);
+         break;
     }
 
     if (lut)
@@ -542,5 +535,5 @@ read_long(FILE *fp)               /* I - File to read from */
 
 
 /*
- * End of "$Id: image-bmp.c 4741 2005-10-02 04:25:52Z mike $".
+ * End of "$Id: image-bmp.c 5508 2006-05-11 11:41:16Z mike $".
  */
index d390d779abdc15fc08aad5dda38e958d89e701ec..cc442944ea9bbc6db76439e12b412503e6b469a4 100644 (file)
@@ -1,9 +1,9 @@
 /*
- * "$Id: image-colorspace.c 4767 2005-10-10 19:23:23Z mike $"
+ * "$Id: image-colorspace.c 5520 2006-05-12 16:37:36Z mike $"
  *
  *   Colorspace conversions for the Common UNIX Printing System (CUPS).
  *
- *   Copyright 1993-2005 by Easy Software Products.
+ *   Copyright 1993-2006 by Easy Software Products.
  *
  *   The color saturation/hue matrix stuff is provided thanks to Mr. Paul
  *   Haeberli at "http://www.sgi.com/grafica/matrix/index.html".
@@ -423,7 +423,8 @@ cupsImageCMYKToRGB(
       else
         *out++ = 0;
 
-      if (cupsImageColorSpace >= CUPS_CSPACE_CIELab)
+      if (cupsImageColorSpace == CUPS_CSPACE_CIELab ||
+          cupsImageColorSpace >= CUPS_CSPACE_ICC1)
         rgb_to_lab(out - 3);
       else if (cupsImageColorSpace == CUPS_CSPACE_CIEXYZ)
         rgb_to_xyz(out - 3);
@@ -852,14 +853,22 @@ cupsImageRGBToRGB(
     if (in != out)
       memcpy(out, in, count * 3);
 
-    if (cupsImageColorSpace >= CUPS_CSPACE_CIEXYZ)
+    if (cupsImageColorSpace == CUPS_CSPACE_CIELab ||
+        cupsImageColorSpace >= CUPS_CSPACE_ICC1)
     {
       while (count > 0)
       {
-       if (cupsImageColorSpace >= CUPS_CSPACE_CIELab)
-          rgb_to_lab(out);
-       else
-          rgb_to_xyz(out);
+        rgb_to_lab(out);
+
+       out += 3;
+       count --;
+      }
+    }
+    else if (cupsImageColorSpace == CUPS_CSPACE_CIEXYZ)
+    {
+      while (count > 0)
+      {
+        rgb_to_xyz(out);
 
        out += 3;
        count --;
@@ -958,13 +967,15 @@ cupsImageSetRasterColorSpace(
   * Set the destination colorspace...
   */
 
-  cupsImageColorSpace  = cs;
+  cupsImageColorSpace = cs;
 
  /*
   * Don't use color profiles in colorimetric colorspaces...
   */
 
-  if (cs >= CUPS_CSPACE_CIEXYZ)
+  if (cs == CUPS_CSPACE_CIEXYZ ||
+      cs == CUPS_CSPACE_CIELab ||
+      cs >= CUPS_CSPACE_ICC1)
     cupsImageHaveProfile = 0;
 }
 
@@ -1084,7 +1095,8 @@ cupsImageWhiteToRGB(
       *out++ = *in;
       *out++ = *in++;
 
-      if (cupsImageColorSpace >= CUPS_CSPACE_CIELab)
+      if (cupsImageColorSpace == CUPS_CSPACE_CIELab ||
+          cupsImageColorSpace >= CUPS_CSPACE_ICC1)
         rgb_to_lab(out - 3);
       else if (cupsImageColorSpace == CUPS_CSPACE_CIEXYZ)
         rgb_to_xyz(out - 3);
@@ -1283,9 +1295,9 @@ rgb_to_lab(cups_ib_t *val)                /* IO - Color value */
   * Convert sRGB to linear RGB...
   */
 
-  r = pow(val[0] / 255.0, 0.58823529412);
-  g = pow(val[1] / 255.0, 0.58823529412);
-  b = pow(val[2] / 255.0, 0.58823529412);
+  r = pow((val[0] / 255.0 + 0.055) / 1.055, 2.4);
+  g = pow((val[1] / 255.0 + 0.055) / 1.055, 2.4);
+  b = pow((val[2] / 255.0 + 0.055) / 1.055, 2.4);
 
  /*
   * Convert to CIE XYZ...
@@ -1315,9 +1327,9 @@ rgb_to_lab(cups_ib_t *val)                /* IO - Color value */
   * numbers are from 0 to 255.
   */
 
-  ciel *= 2.55;
-  ciea += 128;
-  cieb += 128;
+  ciel = ciel * 2.55 + 0.5;
+  ciea += 128.5;
+  cieb += 128.5;
 
  /*
   * Output 8-bit values...
@@ -1331,14 +1343,14 @@ rgb_to_lab(cups_ib_t *val)              /* IO - Color value */
     val[0] = 255;
 
   if (ciea < 0.0)
-    val[1] = 128;
+    val[1] = 0;
   else if (ciea < 255.0)
     val[1] = (int)ciea;
   else
     val[1] = 255;
 
   if (cieb < 0.0)
-    val[2] = 128;
+    val[2] = 0;
   else if (cieb < 255.0)
     val[2] = (int)cieb;
   else
@@ -1365,9 +1377,9 @@ rgb_to_xyz(cups_ib_t *val)                /* IO - Color value */
   * Convert sRGB to linear RGB...
   */
 
-  r = pow(val[0] / 255.0, 0.58823529412);
-  g = pow(val[1] / 255.0, 0.58823529412);
-  b = pow(val[2] / 255.0, 0.58823529412);
+  r = pow((val[0] / 255.0 + 0.055) / 1.055, 2.4);
+  g = pow((val[1] / 255.0 + 0.055) / 1.055, 2.4);
+  b = pow((val[2] / 255.0 + 0.055) / 1.055, 2.4);
 
  /*
   * Convert to CIE XYZ...
@@ -1378,27 +1390,27 @@ rgb_to_xyz(cups_ib_t *val)              /* IO - Color value */
   ciez = 0.019334 * r + 0.119193 * g + 0.950227 * b;
 
  /*
-  * Output 8-bit values...
+  * Encode as 8-bit XYZ...
   */
 
-  if (ciex < 0.0)
+  if (ciex < 0.0f)
     val[0] = 0;
-  else if (ciex < 255.0)
-    val[0] = (int)ciex;
+  else if (ciex < 1.1f)
+    val[0] = (int)(231.8181f * ciex + 0.5);
   else
     val[0] = 255;
 
-  if (ciey < 0.0)
+  if (ciey < 0.0f)
     val[1] = 0;
-  else if (ciey < 255.0)
-    val[1] = (int)ciey;
+  else if (ciey < 1.1f)
+    val[1] = (int)(231.8181f * ciey + 0.5);
   else
     val[1] = 255;
 
-  if (ciez < 0.0)
+  if (ciez < 0.0f)
     val[2] = 0;
-  else if (ciez < 255.0)
-    val[2] = (int)ciez;
+  else if (ciez < 1.1f)
+    val[2] = (int)(231.8181f * ciez + 0.5);
   else
     val[2] = 255;
 }
@@ -1561,5 +1573,5 @@ zshear(float mat[3][3],                   /* I - Matrix */
 
 
 /*
- * End of "$Id: image-colorspace.c 4767 2005-10-10 19:23:23Z mike $".
+ * End of "$Id: image-colorspace.c 5520 2006-05-12 16:37:36Z mike $".
  */
index d8c30d1bfd266ff5ebd5ebd669936153902fdde8..09784a60ebdc22bf02326767dbf22707014d447f 100644 (file)
@@ -1,9 +1,9 @@
 /*
- * "$Id: image-gif.c 4741 2005-10-02 04:25:52Z mike $"
+ * "$Id: image-gif.c 5508 2006-05-11 11:41:16Z mike $"
  *
  *   GIF image routines for the Common UNIX Printing System (CUPS).
  *
- *   Copyright 1993-2005 by Easy Software Products.
+ *   Copyright 1993-2006 by Easy Software Products.
  *
  *   These coded instructions, statements, and computer programs are the
  *   property of Easy Software Products and are protected by Federal
@@ -220,6 +220,8 @@ _cupsImageReadGIF(
                  break;
               case CUPS_IMAGE_RGB :
               case CUPS_IMAGE_RGB_CMYK :
+                 for (i = ncolors - 1; i >= 0; i --)
+                   cupsImageRGBToRGB(cmap[i], cmap[i], 1);
                  break;
            }
 
@@ -693,5 +695,5 @@ gif_read_lzw(FILE *fp,                      /* I - File to read from */
 
 
 /*
- * End of "$Id: image-gif.c 4741 2005-10-02 04:25:52Z mike $".
+ * End of "$Id: image-gif.c 5508 2006-05-11 11:41:16Z mike $".
  */
index 6b1dc9c26f1420db1a48b8e7156e87ecf1da4bb3..5a07a7bbd1d07f91cef9786249a4a107dd3f57e1 100644 (file)
@@ -1,9 +1,9 @@
 /*
- * "$Id: image-jpeg.c 4741 2005-10-02 04:25:52Z mike $"
+ * "$Id: image-jpeg.c 5508 2006-05-11 11:41:16Z mike $"
  *
  *   JPEG image routines for the Common UNIX Printing System (CUPS).
  *
- *   Copyright 1993-2005 by Easy Software Products.
+ *   Copyright 1993-2006 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,6 @@ _cupsImageReadJPEG(
       cupsImageRGBAdjust(in, img->xsize, saturation, hue);
 
     if ((img->colorspace == CUPS_IMAGE_WHITE && cinfo.out_color_space == JCS_GRAYSCALE) ||
-        (img->colorspace == CUPS_IMAGE_RGB && cinfo.out_color_space == JCS_RGB) ||
        (img->colorspace == CUPS_IMAGE_CMYK && cinfo.out_color_space == JCS_CMYK))
     {
 #ifdef DEBUG
@@ -255,6 +254,9 @@ _cupsImageReadJPEG(
         default :
            break;
 
+        case CUPS_IMAGE_RGB :
+            cupsImageRGBToRGB(in, out, img->xsize);
+           break;
         case CUPS_IMAGE_WHITE :
             cupsImageRGBToWhite(in, out, img->xsize);
             break;
@@ -318,5 +320,5 @@ _cupsImageReadJPEG(
 
 
 /*
- * End of "$Id: image-jpeg.c 4741 2005-10-02 04:25:52Z mike $".
+ * End of "$Id: image-jpeg.c 5508 2006-05-11 11:41:16Z mike $".
  */
index 4e77ea9e09780974315be4d8b34fcd3d1e82d725..00171ecc1fd03775dde8fe194b56e0909b4fb620 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: image-photocd.c 4741 2005-10-02 04:25:52Z mike $"
+ * "$Id: image-photocd.c 5508 2006-05-11 11:41:16Z mike $"
  *
  *   PhotoCD routines for the Common UNIX Printing System (CUPS).
  *
@@ -7,7 +7,7 @@
  *   is only YCC encoded.  Support for the higher resolution images will
  *   require a lot of extra code...
  *
- *   Copyright 1993-2005 by Easy Software Products.
+ *   Copyright 1993-2006 by Easy Software Products.
  *
  *   These coded instructions, statements, and computer programs are the
  *   property of Easy Software Products and are protected by Federal
@@ -272,39 +272,29 @@ _cupsImageReadPhotoCD(
        * put it in the image...
        */
 
-        if (img->colorspace == CUPS_IMAGE_RGB)
+       switch (img->colorspace)
        {
-         if (lut)
-           cupsImageLut(rgb, 768 * 3, lut);
-
-         if (rotation)
-            _cupsImagePutCol(img, 511 - y - pass, 0, 768, rgb);
-         else
-            _cupsImagePutRow(img, 0, y + pass, 768, rgb);
+         default :
+             break;
+
+         case CUPS_IMAGE_RGB :
+             cupsImageRGBToRGB(rgb, out, 768);
+             break;
+         case CUPS_IMAGE_CMY :
+             cupsImageRGBToCMY(rgb, out, 768);
+             break;
+         case CUPS_IMAGE_CMYK :
+             cupsImageRGBToCMYK(rgb, out, 768);
+             break;
        }
-       else
-       {
-         switch (img->colorspace)
-         {
-           default :
-               break;
-
-           case CUPS_IMAGE_CMY :
-               cupsImageRGBToCMY(rgb, out, 768);
-               break;
-           case CUPS_IMAGE_CMYK :
-               cupsImageRGBToCMYK(rgb, out, 768);
-               break;
-         }
 
-         if (lut)
-           cupsImageLut(out, 768 * bpp, lut);
+       if (lut)
+         cupsImageLut(out, 768 * bpp, lut);
 
-         if (rotation)
-            _cupsImagePutCol(img, 511 - y - pass, 0, 768, out);
-         else
-            _cupsImagePutRow(img, 0, y + pass, 768, out);
-       }
+       if (rotation)
+          _cupsImagePutCol(img, 511 - y - pass, 0, 768, out);
+       else
+          _cupsImagePutRow(img, 0, y + pass, 768, out);
       }
     }
   }
@@ -323,5 +313,5 @@ _cupsImageReadPhotoCD(
 
 
 /*
- * End of "$Id: image-photocd.c 4741 2005-10-02 04:25:52Z mike $".
+ * End of "$Id: image-photocd.c 5508 2006-05-11 11:41:16Z mike $".
  */
index 2a326cd98a235f21a5367a1ca56969504c98f036..ac471669dda942689003bef9fba0e3413abe672f 100644 (file)
@@ -1,9 +1,9 @@
 /*
- * "$Id: image-pix.c 4741 2005-10-02 04:25:52Z mike $"
+ * "$Id: image-pix.c 5508 2006-05-11 11:41:16Z mike $"
  *
  *   Alias PIX image routines for the Common UNIX Printing System (CUPS).
  *
- *   Copyright 1993-2005 by Easy Software Products.
+ *   Copyright 1993-2006 by Easy Software Products.
  *
  *   These coded instructions, statements, and computer programs are the
  *   property of Easy Software Products and are protected by Federal
@@ -159,10 +159,7 @@ _cupsImageReadPIX(
   {
     for (count = 0, y = 0, r = 0, g = 0, b = 0; y < img->ysize; y ++)
     {
-      if (img->colorspace == CUPS_IMAGE_RGB)
-        ptr = out;
-      else
-        ptr = in;
+      ptr = in;
 
       for (x = img->xsize; x > 0; x --, count --)
       {
@@ -179,34 +176,29 @@ _cupsImageReadPIX(
         *ptr++ = b;
       }
 
-      if (img->colorspace == CUPS_IMAGE_RGB)
-      {
-       if (saturation != 100 || hue != 0)
-         cupsImageRGBAdjust(out, img->xsize, saturation, hue);
-      }
-      else
-      {
-       if (saturation != 100 || hue != 0)
-         cupsImageRGBAdjust(in, img->xsize, saturation, hue);
+      if (saturation != 100 || hue != 0)
+       cupsImageRGBAdjust(in, img->xsize, saturation, hue);
 
-       switch (img->colorspace)
-       {
-         default :
-             break;
-
-         case CUPS_IMAGE_WHITE :
-             cupsImageRGBToWhite(in, out, img->xsize);
-             break;
-         case CUPS_IMAGE_BLACK :
-             cupsImageRGBToBlack(in, out, img->xsize);
-             break;
-         case CUPS_IMAGE_CMY :
-             cupsImageRGBToCMY(in, out, img->xsize);
-             break;
-         case CUPS_IMAGE_CMYK :
-             cupsImageRGBToCMYK(in, out, img->xsize);
-             break;
-       }
+      switch (img->colorspace)
+      {
+       default :
+           break;
+
+       case CUPS_IMAGE_WHITE :
+           cupsImageRGBToWhite(in, out, img->xsize);
+           break;
+       case CUPS_IMAGE_RGB :
+           cupsImageRGBToWhite(in, out, img->xsize);
+           break;
+       case CUPS_IMAGE_BLACK :
+           cupsImageRGBToBlack(in, out, img->xsize);
+           break;
+       case CUPS_IMAGE_CMY :
+           cupsImageRGBToCMY(in, out, img->xsize);
+           break;
+       case CUPS_IMAGE_CMYK :
+           cupsImageRGBToCMYK(in, out, img->xsize);
+           break;
       }
 
       if (lut)
@@ -240,5 +232,5 @@ read_short(FILE *fp)                        /* I - File to read from */
 
 
 /*
- * End of "$Id: image-pix.c 4741 2005-10-02 04:25:52Z mike $".
+ * End of "$Id: image-pix.c 5508 2006-05-11 11:41:16Z mike $".
  */
index 45faeb5f9967436e419b677fd1eff474b2c0a7f8..3b4469bc98204552787ef59827829ed397c66835 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: image-png.c 5452 2006-04-22 22:17:32Z mike $"
+ * "$Id: image-png.c 5508 2006-05-11 11:41:16Z mike $"
  *
  *   PNG image routines for the Common UNIX Printing System (CUPS).
  *
@@ -216,7 +216,7 @@ _cupsImageReadPNG(
                break;
            case CUPS_IMAGE_RGB :
            case CUPS_IMAGE_RGB_CMYK :
-               memcpy(out, inptr, img->xsize * 3);
+               cupsImageRGBToRGB(inptr, out, img->xsize);
                break;
            case CUPS_IMAGE_BLACK :
                cupsImageRGBToBlack(inptr, out, img->xsize);
@@ -280,5 +280,5 @@ _cupsImageReadPNG(
 
 
 /*
- * End of "$Id: image-png.c 5452 2006-04-22 22:17:32Z mike $".
+ * End of "$Id: image-png.c 5508 2006-05-11 11:41:16Z mike $".
  */
index 3cfe66441328899cb3d4bd49ef3bea7c1164c8be..dab288032a842aad0a3c1a345c78b469daa25dac 100644 (file)
@@ -1,9 +1,9 @@
 /*
- * "$Id: image-pnm.c 4741 2005-10-02 04:25:52Z mike $"
+ * "$Id: image-pnm.c 5508 2006-05-11 11:41:16Z mike $"
  *
  *   Portable Any Map file routines for the Common UNIX Printing System (CUPS).
  *
- *   Copyright 1993-2005 by Easy Software Products.
+ *   Copyright 1993-2006 by Easy Software Products.
  *
  *   These coded instructions, statements, and computer programs are the
  *   property of Easy Software Products and are protected by Federal
@@ -261,39 +261,32 @@ _cupsImageReadPNM(
          if ((saturation != 100 || hue != 0) && bpp > 1)
            cupsImageRGBAdjust(in, img->xsize, saturation, hue);
 
-         if (img->colorspace == CUPS_IMAGE_RGB)
+         switch (img->colorspace)
          {
-           if (lut)
-             cupsImageLut(in, img->xsize * 3, lut);
-
-            _cupsImagePutRow(img, 0, y, img->xsize, in);
+            default :
+               break;
+
+           case CUPS_IMAGE_WHITE :
+               cupsImageRGBToWhite(in, out, img->xsize);
+               break;
+           case CUPS_IMAGE_RGB :
+               cupsImageRGBToRGB(in, out, img->xsize);
+               break;
+           case CUPS_IMAGE_BLACK :
+               cupsImageRGBToBlack(in, out, img->xsize);
+               break;
+           case CUPS_IMAGE_CMY :
+               cupsImageRGBToCMY(in, out, img->xsize);
+               break;
+           case CUPS_IMAGE_CMYK :
+               cupsImageRGBToCMYK(in, out, img->xsize);
+               break;
          }
-         else
-         {
-           switch (img->colorspace)
-           {
-              default :
-                 break;
-
-             case CUPS_IMAGE_WHITE :
-                 cupsImageRGBToWhite(in, out, img->xsize);
-                 break;
-             case CUPS_IMAGE_BLACK :
-                 cupsImageRGBToBlack(in, out, img->xsize);
-                 break;
-             case CUPS_IMAGE_CMY :
-                 cupsImageRGBToCMY(in, out, img->xsize);
-                 break;
-             case CUPS_IMAGE_CMYK :
-                 cupsImageRGBToCMYK(in, out, img->xsize);
-                 break;
-           }
 
-           if (lut)
-             cupsImageLut(out, img->xsize * bpp, lut);
+         if (lut)
+           cupsImageLut(out, img->xsize * bpp, lut);
 
-            _cupsImagePutRow(img, 0, y, img->xsize, out);
-         }
+          _cupsImagePutRow(img, 0, y, img->xsize, out);
          break;
     }
   }
@@ -308,5 +301,5 @@ _cupsImageReadPNM(
 
 
 /*
- * End of "$Id: image-pnm.c 4741 2005-10-02 04:25:52Z mike $".
+ * End of "$Id: image-pnm.c 5508 2006-05-11 11:41:16Z mike $".
  */
index 4ea91ce63a3b985456fb192066e019173421709c..288af2618763c04ee87b9cbcfa9a02f685f00fbb 100644 (file)
@@ -1,9 +1,9 @@
 /*
- * "$Id: image-sgi.c 4741 2005-10-02 04:25:52Z mike $"
+ * "$Id: image-sgi.c 5508 2006-05-11 11:41:16Z mike $"
  *
  *   SGI image file routines for the Common UNIX Printing System (CUPS).
  *
- *   Copyright 1993-2005 by Easy Software Products.
+ *   Copyright 1993-2006 by Easy Software Products.
  *
  *   These coded instructions, statements, and computer programs are the
  *   property of Easy Software Products and are protected by Federal
@@ -236,45 +236,35 @@ _cupsImageReadSGI(
     }
     else
     {
-      if (img->colorspace == CUPS_IMAGE_RGB)
-      {
-       if (saturation != 100 || hue != 0)
-         cupsImageRGBAdjust(in, img->xsize, saturation, hue);
-
-        if (lut)
-         cupsImageLut(in, img->xsize * 3, lut);
+      if ((saturation != 100 || hue != 0) && bpp > 1)
+       cupsImageRGBAdjust(in, img->xsize, saturation, hue);
 
-        _cupsImagePutRow(img, 0, y, img->xsize, in);
-      }
-      else
+      switch (img->colorspace)
       {
-       if ((saturation != 100 || hue != 0) && bpp > 1)
-         cupsImageRGBAdjust(in, img->xsize, saturation, hue);
-
-       switch (img->colorspace)
-       {
-         default :
-             break;
-
-         case CUPS_IMAGE_WHITE :
-             cupsImageRGBToWhite(in, out, img->xsize);
-             break;
-         case CUPS_IMAGE_BLACK :
-             cupsImageRGBToBlack(in, out, img->xsize);
-             break;
-         case CUPS_IMAGE_CMY :
-             cupsImageRGBToCMY(in, out, img->xsize);
-             break;
-         case CUPS_IMAGE_CMYK :
-             cupsImageRGBToCMYK(in, out, img->xsize);
-             break;
-       }
+       default :
+           break;
+
+       case CUPS_IMAGE_WHITE :
+           cupsImageRGBToWhite(in, out, img->xsize);
+           break;
+       case CUPS_IMAGE_RGB :
+           cupsImageRGBToRGB(in, out, img->xsize);
+           break;
+       case CUPS_IMAGE_BLACK :
+           cupsImageRGBToBlack(in, out, img->xsize);
+           break;
+       case CUPS_IMAGE_CMY :
+           cupsImageRGBToCMY(in, out, img->xsize);
+           break;
+       case CUPS_IMAGE_CMYK :
+           cupsImageRGBToCMYK(in, out, img->xsize);
+           break;
+      }
 
-        if (lut)
-         cupsImageLut(out, img->xsize * bpp, lut);
+      if (lut)
+       cupsImageLut(out, img->xsize * bpp, lut);
 
-        _cupsImagePutRow(img, 0, y, img->xsize, out);
-      }
+      _cupsImagePutRow(img, 0, y, img->xsize, out);
     }
   }
 
@@ -289,5 +279,5 @@ _cupsImageReadSGI(
 
 
 /*
- * End of "$Id: image-sgi.c 4741 2005-10-02 04:25:52Z mike $".
+ * End of "$Id: image-sgi.c 5508 2006-05-11 11:41:16Z mike $".
  */
index f49fac157a3a333bd4ce5c0d9c5467b9cf44294d..a7aa39a8ae9fe4ecad5717a0ad6af8400ed0158c 100644 (file)
@@ -1,9 +1,9 @@
 /*
- * "$Id: image-sun.c 4741 2005-10-02 04:25:52Z mike $"
+ * "$Id: image-sun.c 5508 2006-05-11 11:41:16Z mike $"
  *
  *   Sun Raster image file routines for the Common UNIX Printing System (CUPS).
  *
- *   Copyright 1993-2005 by Easy Software Products.
+ *   Copyright 1993-2006 by Easy Software Products.
  *
  *   These coded instructions, statements, and computer programs are the
  *   property of Easy Software Products and are protected by Federal
@@ -330,45 +330,32 @@ _cupsImageReadSunRaster(
     }
     else
     {
-      if (img->colorspace == CUPS_IMAGE_RGB)
-      {
-       if (saturation != 100 || hue != 0)
-         cupsImageRGBAdjust(in, img->xsize, saturation, hue);
-
-        if (lut)
-         cupsImageLut(in, img->xsize * 3, lut);
+      if ((saturation != 100 || hue != 0) && bpp > 1)
+       cupsImageRGBAdjust(in, img->xsize, saturation, hue);
 
-        _cupsImagePutRow(img, 0, y, img->xsize, in);
-      }
-      else
+      switch (img->colorspace)
       {
-       if ((saturation != 100 || hue != 0) && bpp > 1)
-         cupsImageRGBAdjust(in, img->xsize, saturation, hue);
-
-       switch (img->colorspace)
-       {
-         default :
-             break;
-
-         case CUPS_IMAGE_WHITE :
-             cupsImageRGBToWhite(in, out, img->xsize);
-             break;
-         case CUPS_IMAGE_BLACK :
-             cupsImageRGBToBlack(in, out, img->xsize);
-             break;
-         case CUPS_IMAGE_CMY :
-             cupsImageRGBToCMY(in, out, img->xsize);
-             break;
-         case CUPS_IMAGE_CMYK :
-             cupsImageRGBToCMYK(in, out, img->xsize);
-             break;
-       }
+       default :
+           break;
+
+       case CUPS_IMAGE_WHITE :
+           cupsImageRGBToWhite(in, out, img->xsize);
+           break;
+       case CUPS_IMAGE_BLACK :
+           cupsImageRGBToBlack(in, out, img->xsize);
+           break;
+       case CUPS_IMAGE_CMY :
+           cupsImageRGBToCMY(in, out, img->xsize);
+           break;
+       case CUPS_IMAGE_CMYK :
+           cupsImageRGBToCMYK(in, out, img->xsize);
+           break;
+      }
 
-        if (lut)
-         cupsImageLut(out, img->xsize * bpp, lut);
+      if (lut)
+       cupsImageLut(out, img->xsize * bpp, lut);
 
-        _cupsImagePutRow(img, 0, y, img->xsize, out);
-      }
+      _cupsImagePutRow(img, 0, y, img->xsize, out);
     }
   }
 
@@ -402,5 +389,5 @@ read_unsigned(FILE *fp)                     /* I - File to read from */
 
 
 /*
- * End of "$Id: image-sun.c 4741 2005-10-02 04:25:52Z mike $".
+ * End of "$Id: image-sun.c 5508 2006-05-11 11:41:16Z mike $".
  */
index 7a61e728459e8cfcfd19da6d1a248516e3e10889..184cf96217dec18947379a35329c75cadbdcd2da 100644 (file)
@@ -1,9 +1,9 @@
 /*
- * "$Id: image-tiff.c 4741 2005-10-02 04:25:52Z mike $"
+ * "$Id: image-tiff.c 5508 2006-05-11 11:41:16Z mike $"
  *
  *   TIFF file routines for the Common UNIX Printing System (CUPS).
  *
- *   Copyright 1993-2005 by Easy Software Products.
+ *   Copyright 1993-2006 by Easy Software Products.
  *
  *   These coded instructions, statements, and computer programs are the
  *   property of Easy Software Products and are protected by Federal
@@ -783,39 +783,32 @@ _cupsImageReadTIFF(
              }
             }
 
-            if (img->colorspace == CUPS_IMAGE_RGB)
+           switch (img->colorspace)
            {
-             if (lut)
-               cupsImageLut(in, img->xsize * 3, lut);
-
-              _cupsImagePutRow(img, 0, y, img->xsize, in);
+             default :
+                 break;
+
+             case CUPS_IMAGE_WHITE :
+                 cupsImageRGBToWhite(in, out, img->xsize);
+                 break;
+             case CUPS_IMAGE_RGB :
+                 cupsImageRGBToRGB(in, out, img->xsize);
+                 break;
+             case CUPS_IMAGE_BLACK :
+                 cupsImageRGBToBlack(in, out, img->xsize);
+                 break;
+             case CUPS_IMAGE_CMY :
+                 cupsImageRGBToCMY(in, out, img->xsize);
+                 break;
+             case CUPS_IMAGE_CMYK :
+                 cupsImageRGBToCMYK(in, out, img->xsize);
+                 break;
            }
-            else
-            {
-             switch (img->colorspace)
-             {
-               default :
-                   break;
-
-               case CUPS_IMAGE_WHITE :
-                   cupsImageRGBToWhite(in, out, img->xsize);
-                   break;
-               case CUPS_IMAGE_BLACK :
-                   cupsImageRGBToBlack(in, out, img->xsize);
-                   break;
-               case CUPS_IMAGE_CMY :
-                   cupsImageRGBToCMY(in, out, img->xsize);
-                   break;
-               case CUPS_IMAGE_CMYK :
-                   cupsImageRGBToCMYK(in, out, img->xsize);
-                   break;
-             }
 
-             if (lut)
-               cupsImageLut(out, img->xsize * bpp, lut);
+           if (lut)
+             cupsImageLut(out, img->xsize * bpp, lut);
 
-              _cupsImagePutRow(img, 0, y, img->xsize, out);
-           }
+            _cupsImagePutRow(img, 0, y, img->xsize, out);
           }
         }
         else
@@ -923,40 +916,33 @@ _cupsImageReadTIFF(
              }
             }
 
-            if (img->colorspace == CUPS_IMAGE_RGB)
+           switch (img->colorspace)
            {
-             if (lut)
-               cupsImageLut(in, img->ysize * 3, lut);
-
-              _cupsImagePutCol(img, x, 0, img->ysize, in);
+             default :
+                 break;
+
+             case CUPS_IMAGE_WHITE :
+                 cupsImageRGBToWhite(in, out, img->ysize);
+                 break;
+             case CUPS_IMAGE_RGB :
+                 cupsImageRGBToRGB(in, out, img->ysize);
+                 break;
+             case CUPS_IMAGE_BLACK :
+                 cupsImageRGBToBlack(in, out, img->ysize);
+                 break;
+             case CUPS_IMAGE_CMY :
+                 cupsImageRGBToCMY(in, out, img->ysize);
+                 break;
+             case CUPS_IMAGE_CMYK :
+                 cupsImageRGBToCMYK(in, out, img->ysize);
+                 break;
            }
-            else
-            {
-             switch (img->colorspace)
-             {
-               default :
-                   break;
-
-               case CUPS_IMAGE_WHITE :
-                   cupsImageRGBToWhite(in, out, img->ysize);
-                   break;
-               case CUPS_IMAGE_BLACK :
-                   cupsImageRGBToBlack(in, out, img->ysize);
-                   break;
-               case CUPS_IMAGE_CMY :
-                   cupsImageRGBToCMY(in, out, img->ysize);
-                   break;
-               case CUPS_IMAGE_CMYK :
-                   cupsImageRGBToCMYK(in, out, img->ysize);
-                   break;
-             }
 
-             if (lut)
-               cupsImageLut(out, img->ysize * bpp, lut);
+           if (lut)
+             cupsImageLut(out, img->ysize * bpp, lut);
 
-              _cupsImagePutCol(img, x, 0, img->ysize, out);
-           }
-          }
+            _cupsImagePutCol(img, x, 0, img->ysize, out);
+         }
         }
         break;
 
@@ -1074,39 +1060,32 @@ _cupsImageReadTIFF(
             if ((saturation != 100 || hue != 0) && bpp > 1)
               cupsImageRGBAdjust(in, img->xsize, saturation, hue);
 
-            if (img->colorspace == CUPS_IMAGE_RGB)
+           switch (img->colorspace)
            {
-             if (lut)
-               cupsImageLut(in, img->xsize * 3, lut);
-
-              _cupsImagePutRow(img, 0, y, img->xsize, in);
+             default :
+                 break;
+
+             case CUPS_IMAGE_WHITE :
+                 cupsImageRGBToWhite(in, out, img->xsize);
+                 break;
+             case CUPS_IMAGE_RGB :
+                 cupsImageRGBToRGB(in, out, img->xsize);
+                 break;
+             case CUPS_IMAGE_BLACK :
+                 cupsImageRGBToBlack(in, out, img->xsize);
+                 break;
+             case CUPS_IMAGE_CMY :
+                 cupsImageRGBToCMY(in, out, img->xsize);
+                 break;
+             case CUPS_IMAGE_CMYK :
+                 cupsImageRGBToCMYK(in, out, img->xsize);
+                 break;
            }
-            else
-            {
-             switch (img->colorspace)
-             {
-               default :
-                   break;
-
-               case CUPS_IMAGE_WHITE :
-                   cupsImageRGBToWhite(in, out, img->xsize);
-                   break;
-               case CUPS_IMAGE_BLACK :
-                   cupsImageRGBToBlack(in, out, img->xsize);
-                   break;
-               case CUPS_IMAGE_CMY :
-                   cupsImageRGBToCMY(in, out, img->xsize);
-                   break;
-               case CUPS_IMAGE_CMYK :
-                   cupsImageRGBToCMYK(in, out, img->xsize);
-                   break;
-             }
 
-             if (lut)
-               cupsImageLut(out, img->xsize * bpp, lut);
+           if (lut)
+             cupsImageLut(out, img->xsize * bpp, lut);
 
-              _cupsImagePutRow(img, 0, y, img->xsize, out);
-           }
+            _cupsImagePutRow(img, 0, y, img->xsize, out);
           }
         }
         else
@@ -1222,39 +1201,32 @@ _cupsImageReadTIFF(
             if ((saturation != 100 || hue != 0) && bpp > 1)
               cupsImageRGBAdjust(in, img->ysize, saturation, hue);
 
-            if (img->colorspace == CUPS_IMAGE_RGB)
+           switch (img->colorspace)
            {
-             if (lut)
-               cupsImageLut(in, img->ysize * 3, lut);
-
-              _cupsImagePutCol(img, x, 0, img->ysize, in);
-            }
-           else
-            {
-             switch (img->colorspace)
-             {
-               default :
-                   break;
-
-               case CUPS_IMAGE_WHITE :
-                   cupsImageRGBToWhite(in, out, img->ysize);
-                   break;
-               case CUPS_IMAGE_BLACK :
-                   cupsImageRGBToBlack(in, out, img->ysize);
-                   break;
-               case CUPS_IMAGE_CMY :
-                   cupsImageRGBToCMY(in, out, img->ysize);
-                   break;
-               case CUPS_IMAGE_CMYK :
-                   cupsImageRGBToCMYK(in, out, img->ysize);
-                   break;
-             }
+             default :
+                 break;
+
+             case CUPS_IMAGE_WHITE :
+                 cupsImageRGBToWhite(in, out, img->ysize);
+                 break;
+             case CUPS_IMAGE_RGB :
+                 cupsImageRGBToRGB(in, out, img->ysize);
+                 break;
+             case CUPS_IMAGE_BLACK :
+                 cupsImageRGBToBlack(in, out, img->ysize);
+                 break;
+             case CUPS_IMAGE_CMY :
+                 cupsImageRGBToCMY(in, out, img->ysize);
+                 break;
+             case CUPS_IMAGE_CMYK :
+                 cupsImageRGBToCMYK(in, out, img->ysize);
+                 break;
+           }
 
-             if (lut)
-               cupsImageLut(out, img->ysize * bpp, lut);
+           if (lut)
+             cupsImageLut(out, img->ysize * bpp, lut);
 
-              _cupsImagePutCol(img, x, 0, img->ysize, out);
-           }
+            _cupsImagePutCol(img, x, 0, img->ysize, out);
           }
         }
         break;
@@ -1469,39 +1441,32 @@ _cupsImageReadTIFF(
               if ((saturation != 100 || hue != 0) && bpp > 1)
                cupsImageRGBAdjust(in, img->xsize, saturation, hue);
 
-              if (img->colorspace == CUPS_IMAGE_RGB)
+             switch (img->colorspace)
              {
-               if (lut)
-                 cupsImageLut(in, img->xsize * 3, lut);
+               default :
+                   break;
 
-               _cupsImagePutRow(img, 0, y, img->xsize, in);
+               case CUPS_IMAGE_WHITE :
+                   cupsImageRGBToWhite(in, out, img->xsize);
+                   break;
+               case CUPS_IMAGE_RGB :
+                   cupsImageRGBToRGB(in, out, img->xsize);
+                   break;
+               case CUPS_IMAGE_BLACK :
+                   cupsImageRGBToBlack(in, out, img->xsize);
+                   break;
+               case CUPS_IMAGE_CMY :
+                   cupsImageRGBToCMY(in, out, img->xsize);
+                   break;
+               case CUPS_IMAGE_CMYK :
+                   cupsImageRGBToCMYK(in, out, img->xsize);
+                   break;
              }
-              else if (img->colorspace == CUPS_IMAGE_WHITE)
-              {
-               switch (img->colorspace)
-               {
-                 default :
-                     break;
-
-                 case CUPS_IMAGE_WHITE :
-                     cupsImageRGBToWhite(in, out, img->xsize);
-                     break;
-                 case CUPS_IMAGE_BLACK :
-                     cupsImageRGBToBlack(in, out, img->xsize);
-                     break;
-                 case CUPS_IMAGE_CMY :
-                     cupsImageRGBToCMY(in, out, img->xsize);
-                     break;
-                 case CUPS_IMAGE_CMYK :
-                     cupsImageRGBToCMYK(in, out, img->xsize);
-                     break;
-               }
 
-               if (lut)
-                 cupsImageLut(out, img->xsize * 3, lut);
+             if (lut)
+               cupsImageLut(out, img->xsize * 3, lut);
 
-               _cupsImagePutRow(img, 0, y, img->xsize, out);
-             }
+              _cupsImagePutRow(img, 0, y, img->xsize, out);
             }
           }
           else
@@ -1698,39 +1663,32 @@ _cupsImageReadTIFF(
               if ((saturation != 100 || hue != 0) && bpp > 1)
                cupsImageRGBAdjust(in, img->ysize, saturation, hue);
 
-              if (img->colorspace == CUPS_IMAGE_RGB)
+             switch (img->colorspace)
              {
-               if (lut)
-                 cupsImageLut(in, img->ysize * 3, lut);
+               default :
+                   break;
 
-               _cupsImagePutCol(img, x, 0, img->ysize, in);
-              }
-              else if (img->colorspace == CUPS_IMAGE_WHITE)
-              {
-               switch (img->colorspace)
-               {
-                 default :
-                     break;
-
-                 case CUPS_IMAGE_WHITE :
-                     cupsImageRGBToWhite(in, out, img->ysize);
-                     break;
-                 case CUPS_IMAGE_BLACK :
-                     cupsImageRGBToBlack(in, out, img->ysize);
-                     break;
-                 case CUPS_IMAGE_CMY :
-                     cupsImageRGBToCMY(in, out, img->ysize);
-                     break;
-                 case CUPS_IMAGE_CMYK :
-                     cupsImageRGBToCMYK(in, out, img->ysize);
-                     break;
-               }
+               case CUPS_IMAGE_WHITE :
+                   cupsImageRGBToWhite(in, out, img->ysize);
+                   break;
+               case CUPS_IMAGE_RGB :
+                   cupsImageRGBToRGB(in, out, img->ysize);
+                   break;
+               case CUPS_IMAGE_BLACK :
+                   cupsImageRGBToBlack(in, out, img->ysize);
+                   break;
+               case CUPS_IMAGE_CMY :
+                   cupsImageRGBToCMY(in, out, img->ysize);
+                   break;
+               case CUPS_IMAGE_CMYK :
+                   cupsImageRGBToCMYK(in, out, img->ysize);
+                   break;
+             }
 
-               if (lut)
-                 cupsImageLut(out, img->ysize * bpp, lut);
+             if (lut)
+               cupsImageLut(out, img->ysize * bpp, lut);
 
-               _cupsImagePutCol(img, x, 0, img->ysize, out);
-             }
+              _cupsImagePutCol(img, x, 0, img->ysize, out);
             }
           }
 
@@ -1762,5 +1720,5 @@ _cupsImageReadTIFF(
 
 
 /*
- * End of "$Id: image-tiff.c 4741 2005-10-02 04:25:52Z mike $".
+ * End of "$Id: image-tiff.c 5508 2006-05-11 11:41:16Z mike $".
  */
index 0c7d705a224dbe41833279261b74ddb78cfbf64b..db92982314ebe5b26c43822d1968ec06225f9e9d 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: imagetoraster.c 5485 2006-05-02 23:59:56Z mike $"
+ * "$Id: imagetoraster.c 5523 2006-05-15 05:02:43Z mike $"
  *
  *   Image file to raster filter for the Common UNIX Printing System (CUPS).
  *
@@ -26,6 +26,7 @@
  * Contents:
  *
  *   main()          - Main entry...
+ *   blank_line()    - Clear a line buffer to the blank value...
  *   format_CMY()    - Convert image data to CMY.
  *   format_CMYK()   - Convert image data to CMYK.
  *   format_K()      - Convert image data to black.
@@ -59,7 +60,7 @@ int   Flip = 0,                       /* Flip/mirror pages */
        YPosition = 0,                  /* Vertical position on page */
        Collate = 0,                    /* Collate copies? */
        Copies = 1;                     /* Number of copies */
-int    Floyd16xc16[16][16] =           /* Traditional Floyd ordered dither */
+int    Floyd16x16[16][16] =            /* Traditional Floyd ordered dither */
        {
          { 0,   128, 32,  160, 8,   136, 40,  168,
            2,   130, 34,  162, 10,  138, 42,  170 },
@@ -115,62 +116,13 @@ int       Floyd4x4[4][4] =
 
 cups_ib_t      OnPixels[256],          /* On-pixel LUT */
                OffPixels[256];         /* Off-pixel LUT */
-int            Planes[] =              /* Number of planes for each colorspace */
-               {
-                 1,                    /* CUPS_CSPACE_W */
-                 3,                    /* CUPS_CSPACE_RGB */
-                 4,                    /* CUPS_CSPACE_RGBA */
-                 1,                    /* CUPS_CSPACE_K */
-                 3,                    /* CUPS_CSPACE_CMY */
-                 3,                    /* CUPS_CSPACE_YMC */
-                 4,                    /* CUPS_CSPACE_CMYK */
-                 4,                    /* CUPS_CSPACE_YMCK */
-                 4,                    /* CUPS_CSPACE_KCMY */
-                 6,                    /* CUPS_CSPACE_KCMYcm */
-                 4,                    /* CUPS_CSPACE_GMCK */
-                 4,                    /* CUPS_CSPACE_GMCS */
-                 1,                    /* CUPS_CSPACE_WHITE */
-                 1,                    /* CUPS_CSPACE_GOLD */
-                 1,                    /* CUPS_CSPACE_SILVER */
-                 3,                    /* CUPS_CSPACE_CIEXYZ */
-                 3,                    /* CUPS_CSPACE_CIELab */
-                 4,                    /* CUPS_CSPACE_RGBW */
-                 0,                    /* ... reserved ... */
-                 0,                    /* ... reserved ... */
-                 0,                    /* ... reserved ... */
-                 0,                    /* ... reserved ... */
-                 0,                    /* ... reserved ... */
-                 0,                    /* ... reserved ... */
-                 0,                    /* ... reserved ... */
-                 0,                    /* ... reserved ... */
-                 0,                    /* ... reserved ... */
-                 0,                    /* ... reserved ... */
-                 0,                    /* ... reserved ... */
-                 0,                    /* ... reserved ... */
-                 0,                    /* ... reserved ... */
-                 0,                    /* ... reserved ... */
-                 3,                    /* CUPS_CSPACE_ICC1 */
-                 3,                    /* CUPS_CSPACE_ICC2 */
-                 3,                    /* CUPS_CSPACE_ICC3 */
-                 3,                    /* CUPS_CSPACE_ICC4 */
-                 3,                    /* CUPS_CSPACE_ICC5 */
-                 3,                    /* CUPS_CSPACE_ICC6 */
-                 3,                    /* CUPS_CSPACE_ICC7 */
-                 3,                    /* CUPS_CSPACE_ICC8 */
-                 3,                    /* CUPS_CSPACE_ICC9 */
-                 3,                    /* CUPS_CSPACE_ICCA */
-                 3,                    /* CUPS_CSPACE_ICCB */
-                 3,                    /* CUPS_CSPACE_ICCC */
-                 3,                    /* CUPS_CSPACE_ICCD */
-                 3,                    /* CUPS_CSPACE_ICCE */
-                 3                     /* CUPS_CSPACE_ICCF */
-               };
 
 
 /*
  * Local functions...
  */
+
+static void    blank_line(cups_page_header2_t *header, unsigned char *row);
 static void    format_CMY(cups_page_header2_t *header, unsigned char *row, int y, int z, int xsize, int ysize, int yerr0, int yerr1, cups_ib_t *r0, cups_ib_t *r1);
 static void    format_CMYK(cups_page_header2_t *header, unsigned char *row, int y, int z, int xsize, int ysize, int yerr0, int yerr1, cups_ib_t *r0, cups_ib_t *r1);
 static void    format_K(cups_page_header2_t *header, unsigned char *row, int y, int z, int xsize, int ysize, int yerr0, int yerr1, cups_ib_t *r0, cups_ib_t *r1);
@@ -242,8 +194,7 @@ main(int  argc,                             /* I - Number of command-line arguments */
                        iy,             /* Current Y coordinate in image */
                        last_iy,        /* Previous Y coordinate in image */
                        yerr0,          /* Top Y error value */
-                       yerr1,          /* Bottom Y error value */
-                       blank;          /* Blank value */
+                       yerr1;          /* Bottom Y error value */
   cups_ib_t            lut[256];       /* Gamma/brightness LUT */
   int                  plane,          /* Current color plane */
                        num_planes;     /* Number of color planes */
@@ -530,16 +481,32 @@ main(int  argc,                           /* I - Number of command-line arguments */
   switch (header.cupsColorSpace)
   {
     case CUPS_CSPACE_W :
-        primary   = CUPS_IMAGE_WHITE;
-       secondary = CUPS_IMAGE_WHITE;
+        if (header.cupsBitsPerColor >= 8)
+       {
+          primary   = CUPS_IMAGE_WHITE;
+         secondary = CUPS_IMAGE_WHITE;
+        }
+       else
+       {
+          primary   = CUPS_IMAGE_BLACK;
+         secondary = CUPS_IMAGE_BLACK;
+       }
        break;
 
     default :
     case CUPS_CSPACE_RGB :
     case CUPS_CSPACE_RGBA :
     case CUPS_CSPACE_RGBW :
-        primary   = CUPS_IMAGE_RGB;
-       secondary = CUPS_IMAGE_RGB;
+        if (header.cupsBitsPerColor >= 8)
+       {
+          primary   = CUPS_IMAGE_RGB;
+         secondary = CUPS_IMAGE_RGB;
+        }
+       else
+       {
+          primary   = CUPS_IMAGE_CMY;
+         secondary = CUPS_IMAGE_CMY;
+       }
        break;
 
     case CUPS_CSPACE_K :
@@ -553,20 +520,10 @@ main(int  argc,                           /* I - Number of command-line arguments */
     case CUPS_CSPACE_CMYK :
     case CUPS_CSPACE_YMCK :
     case CUPS_CSPACE_KCMY :
+    case CUPS_CSPACE_KCMYcm :
     case CUPS_CSPACE_GMCK :
     case CUPS_CSPACE_GMCS :
-        primary   = CUPS_IMAGE_CMYK;
-       secondary = CUPS_IMAGE_CMYK;
-       break;
-
-    case CUPS_CSPACE_CMY :
-    case CUPS_CSPACE_YMC :
-        primary   = CUPS_IMAGE_CMY;
-       secondary = CUPS_IMAGE_CMY;
-       break;
-
-    case CUPS_CSPACE_KCMYcm :
-       if (header.cupsBitsPerPixel == 1)
+        if (header.cupsBitsPerColor == 1)
        {
           primary   = CUPS_IMAGE_CMY;
          secondary = CUPS_IMAGE_CMY;
@@ -577,6 +534,13 @@ main(int  argc,                            /* I - Number of command-line arguments */
          secondary = CUPS_IMAGE_CMYK;
        }
        break;
+
+    case CUPS_CSPACE_CMY :
+    case CUPS_CSPACE_YMC :
+        primary   = CUPS_IMAGE_CMY;
+       secondary = CUPS_IMAGE_CMY;
+       break;
+       break;
   }
 
  /*
@@ -656,7 +620,12 @@ main(int  argc,                            /* I - Number of command-line arguments */
 
   fputs("INFO: Loading image file...\n", stderr);
 
-  img = cupsImageOpen(filename, primary, secondary, sat, hue, lut);
+  if (header.cupsColorSpace == CUPS_CSPACE_CIEXYZ ||
+      header.cupsColorSpace == CUPS_CSPACE_CIELab ||
+      header.cupsColorSpace >= CUPS_CSPACE_ICC1)
+    img = cupsImageOpen(filename, primary, secondary, sat, hue, NULL);
+  else
+    img = cupsImageOpen(filename, primary, secondary, sat, hue, lut);
 
   if (argc == 6)
     unlink(filename);
@@ -899,8 +868,12 @@ main(int  argc,                            /* I - Number of command-line arguments */
     * Set the new custom size...
     */
 
-    header.PageSize[0] = width + 0.5;
-    header.PageSize[1] = length + 0.5;
+    strcpy(header.cupsPageSizeName, "Custom");
+
+    header.cupsPageSize[0] = width + 0.5;
+    header.cupsPageSize[1] = length + 0.5;
+    header.PageSize[0]     = width + 0.5;
+    header.PageSize[1]     = length + 0.5;
 
    /*
     * Update page variables...
@@ -926,13 +899,12 @@ main(int  argc,                           /* I - Number of command-line arguments */
 
     header.cupsWidth  = width * header.HWResolution[0] / 72.0;
     header.cupsHeight = length * header.HWResolution[1] / 72.0;
-  }
-  else
-  {
-    header.cupsWidth   = (PageRight - PageLeft) * header.HWResolution[0] / 72.0;
-    header.cupsHeight  = (PageTop - PageBottom) * header.HWResolution[1] / 72.0;
-    header.PageSize[0] = PageWidth;
-    header.PageSize[1] = PageLength;
+
+    header.cupsBytesPerLine = (header.cupsBitsPerPixel *
+                               header.cupsWidth + 7) / 8;
+
+    if (header.cupsColorOrder == CUPS_ORDER_BANDED)
+      header.cupsBytesPerLine *= header.cupsNumColors;
   }
 
   header.Margins[0] = PageLeft;
@@ -947,32 +919,32 @@ main(int  argc,                           /* I - Number of command-line arguments */
        switch (XPosition)
        {
          case -1 :
-              header.ImagingBoundingBox[0] = PageLeft;
-             header.ImagingBoundingBox[2] = PageLeft + xprint * 72;
+              header.cupsImagingBBox[0] = PageLeft;
+             header.cupsImagingBBox[2] = PageLeft + xprint * 72;
              break;
          default :
-              header.ImagingBoundingBox[0] = (PageRight + PageLeft - xprint * 72) / 2;
-             header.ImagingBoundingBox[2] = (PageRight + PageLeft + xprint * 72) / 2;
+              header.cupsImagingBBox[0] = (PageRight + PageLeft - xprint * 72) / 2;
+             header.cupsImagingBBox[2] = (PageRight + PageLeft + xprint * 72) / 2;
              break;
          case 1 :
-              header.ImagingBoundingBox[0] = PageRight - xprint * 72;
-             header.ImagingBoundingBox[2] = PageRight;
+              header.cupsImagingBBox[0] = PageRight - xprint * 72;
+             header.cupsImagingBBox[2] = PageRight;
              break;
        }
 
        switch (YPosition)
        {
          case -1 :
-              header.ImagingBoundingBox[1] = PageBottom;
-             header.ImagingBoundingBox[3] = PageBottom + yprint * 72;
+              header.cupsImagingBBox[1] = PageBottom;
+             header.cupsImagingBBox[3] = PageBottom + yprint * 72;
              break;
          default :
-              header.ImagingBoundingBox[1] = (PageTop + PageBottom - yprint * 72) / 2;
-             header.ImagingBoundingBox[3] = (PageTop + PageBottom + yprint * 72) / 2;
+              header.cupsImagingBBox[1] = (PageTop + PageBottom - yprint * 72) / 2;
+             header.cupsImagingBBox[3] = (PageTop + PageBottom + yprint * 72) / 2;
              break;
          case 1 :
-              header.ImagingBoundingBox[1] = PageTop - yprint * 72;
-             header.ImagingBoundingBox[3] = PageTop;
+              header.cupsImagingBBox[1] = PageTop - yprint * 72;
+             header.cupsImagingBBox[3] = PageTop;
              break;
        }
        break;
@@ -981,32 +953,32 @@ main(int  argc,                           /* I - Number of command-line arguments */
        switch (XPosition)
        {
          case -1 :
-              header.ImagingBoundingBox[0] = PageBottom;
-             header.ImagingBoundingBox[2] = PageBottom + yprint * 72;
+              header.cupsImagingBBox[0] = PageBottom;
+             header.cupsImagingBBox[2] = PageBottom + yprint * 72;
              break;
          default :
-              header.ImagingBoundingBox[0] = (PageTop + PageBottom - yprint * 72) / 2;
-             header.ImagingBoundingBox[2] = (PageTop + PageBottom + yprint * 72) / 2;
+              header.cupsImagingBBox[0] = (PageTop + PageBottom - yprint * 72) / 2;
+             header.cupsImagingBBox[2] = (PageTop + PageBottom + yprint * 72) / 2;
              break;
          case 1 :
-              header.ImagingBoundingBox[0] = PageTop - yprint * 72;
-             header.ImagingBoundingBox[2] = PageTop;
+              header.cupsImagingBBox[0] = PageTop - yprint * 72;
+             header.cupsImagingBBox[2] = PageTop;
              break;
        }
 
        switch (YPosition)
        {
          case -1 :
-              header.ImagingBoundingBox[1] = PageLeft;
-             header.ImagingBoundingBox[3] = PageLeft + xprint * 72;
+              header.cupsImagingBBox[1] = PageLeft;
+             header.cupsImagingBBox[3] = PageLeft + xprint * 72;
              break;
          default :
-              header.ImagingBoundingBox[1] = (PageRight + PageLeft - xprint * 72) / 2;
-             header.ImagingBoundingBox[3] = (PageRight + PageLeft + xprint * 72) / 2;
+              header.cupsImagingBBox[1] = (PageRight + PageLeft - xprint * 72) / 2;
+             header.cupsImagingBBox[3] = (PageRight + PageLeft + xprint * 72) / 2;
              break;
          case 1 :
-              header.ImagingBoundingBox[1] = PageRight - xprint * 72;
-             header.ImagingBoundingBox[3] = PageRight;
+              header.cupsImagingBBox[1] = PageRight - xprint * 72;
+             header.cupsImagingBBox[3] = PageRight;
              break;
        }
        break;
@@ -1015,32 +987,32 @@ main(int  argc,                          /* I - Number of command-line arguments */
        switch (XPosition)
        {
          case 1 :
-              header.ImagingBoundingBox[0] = PageLeft;
-             header.ImagingBoundingBox[2] = PageLeft + xprint * 72;
+              header.cupsImagingBBox[0] = PageLeft;
+             header.cupsImagingBBox[2] = PageLeft + xprint * 72;
              break;
          default :
-              header.ImagingBoundingBox[0] = (PageRight + PageLeft - xprint * 72) / 2;
-             header.ImagingBoundingBox[2] = (PageRight + PageLeft + xprint * 72) / 2;
+              header.cupsImagingBBox[0] = (PageRight + PageLeft - xprint * 72) / 2;
+             header.cupsImagingBBox[2] = (PageRight + PageLeft + xprint * 72) / 2;
              break;
          case -1 :
-              header.ImagingBoundingBox[0] = PageRight - xprint * 72;
-             header.ImagingBoundingBox[2] = PageRight;
+              header.cupsImagingBBox[0] = PageRight - xprint * 72;
+             header.cupsImagingBBox[2] = PageRight;
              break;
        }
 
        switch (YPosition)
        {
          case 1 :
-              header.ImagingBoundingBox[1] = PageBottom;
-             header.ImagingBoundingBox[3] = PageBottom + yprint * 72;
+              header.cupsImagingBBox[1] = PageBottom;
+             header.cupsImagingBBox[3] = PageBottom + yprint * 72;
              break;
          default :
-              header.ImagingBoundingBox[1] = (PageTop + PageBottom - yprint * 72) / 2;
-             header.ImagingBoundingBox[3] = (PageTop + PageBottom + yprint * 72) / 2;
+              header.cupsImagingBBox[1] = (PageTop + PageBottom - yprint * 72) / 2;
+             header.cupsImagingBBox[3] = (PageTop + PageBottom + yprint * 72) / 2;
              break;
          case -1 :
-              header.ImagingBoundingBox[1] = PageTop - yprint * 72;
-             header.ImagingBoundingBox[3] = PageTop;
+              header.cupsImagingBBox[1] = PageTop - yprint * 72;
+             header.cupsImagingBBox[3] = PageTop;
              break;
        }
        break;
@@ -1049,68 +1021,51 @@ main(int  argc,                         /* I - Number of command-line arguments */
        switch (XPosition)
        {
          case 1 :
-              header.ImagingBoundingBox[0] = PageBottom;
-             header.ImagingBoundingBox[2] = PageBottom + yprint * 72;
+              header.cupsImagingBBox[0] = PageBottom;
+             header.cupsImagingBBox[2] = PageBottom + yprint * 72;
              break;
          default :
-              header.ImagingBoundingBox[0] = (PageTop + PageBottom - yprint * 72) / 2;
-             header.ImagingBoundingBox[2] = (PageTop + PageBottom + yprint * 72) / 2;
+              header.cupsImagingBBox[0] = (PageTop + PageBottom - yprint * 72) / 2;
+             header.cupsImagingBBox[2] = (PageTop + PageBottom + yprint * 72) / 2;
              break;
          case -1 :
-              header.ImagingBoundingBox[0] = PageTop - yprint * 72;
-             header.ImagingBoundingBox[2] = PageTop;
+              header.cupsImagingBBox[0] = PageTop - yprint * 72;
+             header.cupsImagingBBox[2] = PageTop;
              break;
        }
 
        switch (YPosition)
        {
          case 1 :
-              header.ImagingBoundingBox[1] = PageLeft;
-             header.ImagingBoundingBox[3] = PageLeft + xprint * 72;
+              header.cupsImagingBBox[1] = PageLeft;
+             header.cupsImagingBBox[3] = PageLeft + xprint * 72;
              break;
          default :
-              header.ImagingBoundingBox[1] = (PageRight + PageLeft - xprint * 72) / 2;
-             header.ImagingBoundingBox[3] = (PageRight + PageLeft + xprint * 72) / 2;
+              header.cupsImagingBBox[1] = (PageRight + PageLeft - xprint * 72) / 2;
+             header.cupsImagingBBox[3] = (PageRight + PageLeft + xprint * 72) / 2;
              break;
          case -1 :
-              header.ImagingBoundingBox[1] = PageRight - xprint * 72;
-             header.ImagingBoundingBox[3] = PageRight;
+              header.cupsImagingBBox[1] = PageRight - xprint * 72;
+             header.cupsImagingBBox[3] = PageRight;
              break;
        }
        break;
   }
 
-  switch (header.cupsColorOrder)
-  {
-    default :
-        header.cupsBytesPerLine = (header.cupsBitsPerPixel *
-                                  header.cupsWidth + 7) / 8;
-        num_planes = 1;
-        break;
-
-    case CUPS_ORDER_BANDED :
-        if (header.cupsColorSpace == CUPS_CSPACE_KCMYcm &&
-           header.cupsBitsPerColor > 1)
-          header.cupsBytesPerLine = (header.cupsBitsPerPixel *
-                                    header.cupsWidth + 7) / 8 * 4;
-        else
-          header.cupsBytesPerLine = (header.cupsBitsPerPixel *
-                                    header.cupsWidth + 7) / 8 *
-                                   Planes[header.cupsColorSpace];
-        num_planes = 1;
-        break;
+  header.ImagingBoundingBox[0] = header.cupsImagingBBox[0];
+  header.ImagingBoundingBox[1] = header.cupsImagingBBox[1];
+  header.ImagingBoundingBox[2] = header.cupsImagingBBox[2];
+  header.ImagingBoundingBox[3] = header.cupsImagingBBox[3];
 
-    case CUPS_ORDER_PLANAR :
-        header.cupsBytesPerLine = (header.cupsBitsPerPixel *
-                                  header.cupsWidth + 7) / 8;
-        num_planes = Planes[header.cupsColorSpace];
-        break;
-  }
+  if (header.cupsColorOrder == CUPS_ORDER_PLANAR)
+    num_planes = header.cupsNumColors;
+  else
+    num_planes = 1;
 
- if (header.cupsBitsPerColor >= 8)
-   zoom_type = CUPS_IZOOM_NORMAL;
- else
-   zoom_type = CUPS_IZOOM_FAST;
 if (header.cupsBitsPerColor >= 8)
+    zoom_type = CUPS_IZOOM_NORMAL;
 else
+    zoom_type = CUPS_IZOOM_FAST;
 
  /*
   * See if we need to collate, and if so how we need to do it...
@@ -1159,8 +1114,6 @@ main(int  argc,                           /* I - Number of command-line arguments */
           OnPixels[i]  = 17 * (i / 17 + 1);
           OffPixels[i] = 17 * (i / 16);
         }
-
-       OnPixels[255] = OffPixels[255] = 0xff;
         break;
   }
 
@@ -1177,9 +1130,8 @@ main(int  argc,                           /* I - Number of command-line arguments */
   fprintf(stderr, "DEBUG: cupsColorSpace = %d\n", header.cupsColorSpace);
   fprintf(stderr, "DEBUG: img->colorspace = %d\n", img->colorspace);
 
-  row   = malloc(2 * header.cupsBytesPerLine);
-  ras   = cupsRasterOpen(1, CUPS_RASTER_WRITE);
-  blank = img->colorspace < 0 ? 0 : ~0;
+  row = malloc(2 * header.cupsBytesPerLine);
+  ras = cupsRasterOpen(1, CUPS_RASTER_WRITE);
 
   for (i = 0, page = 1; i < Copies; i ++)
     for (xpage = 0; xpage < xpages; xpage ++)
@@ -1218,10 +1170,10 @@ main(int  argc,                         /* I - Number of command-line arguments */
 
           if (Flip)
            z = _cupsImageZoomNew(img, xc0, yc0, xc1, yc1, -xtemp, ytemp,
-                                Orientation & 1, zoom_type);
+                                 Orientation & 1, zoom_type);
           else
            z = _cupsImageZoomNew(img, xc0, yc0, xc1, yc1, xtemp, ytemp,
-                                Orientation & 1, zoom_type);
+                                 Orientation & 1, zoom_type);
 
          /*
          * Write leading blank space as needed...
@@ -1229,12 +1181,14 @@ main(int  argc,                         /* I - Number of command-line arguments */
 
           if (header.cupsHeight > z->ysize && YPosition <= 0)
          {
-           memset(row, blank, header.cupsBytesPerLine);
+           blank_line(&header, row);
 
             y = header.cupsHeight - z->ysize;
            if (YPosition == 0)
              y /= 2;
 
+            fprintf(stderr, "DEBUG: Writing %d leading blank lines...\n", y);
+
            for (; y > 0; y --)
            {
              if (cupsRasterWritePixels(ras, row, header.cupsBytesPerLine) <
@@ -1269,7 +1223,7 @@ main(int  argc,                           /* I - Number of command-line arguments */
            * Format this line of raster data for the printer...
            */
 
-           memset(row, blank, header.cupsBytesPerLine);
+           blank_line(&header, row);
 
             r0 = z->rows[z->row];
             r1 = z->rows[1 - z->row];
@@ -1315,14 +1269,17 @@ main(int  argc,                         /* I - Number of command-line arguments */
                  format_YMCK(&header, row, y, plane, z->xsize, z->ysize,
                              yerr0, yerr1, r0, r1);
                  break;
+             case CUPS_CSPACE_KCMYcm :
+                 if (header.cupsBitsPerColor == 1)
+                 {
+                   format_KCMYcm(&header, row, y, plane, z->xsize, z->ysize,
+                                 yerr0, yerr1, r0, r1);
+                   break;
+                 }
              case CUPS_CSPACE_KCMY :
                  format_KCMY(&header, row, y, plane, z->xsize, z->ysize,
                              yerr0, yerr1, r0, r1);
                  break;
-             case CUPS_CSPACE_KCMYcm :
-                 format_KCMYcm(&header, row, y, plane, z->xsize, z->ysize,
-                               yerr0, yerr1, r0, r1);
-                 break;
            }
 
            /*
@@ -1358,12 +1315,14 @@ main(int  argc,                         /* I - Number of command-line arguments */
 
           if (header.cupsHeight > z->ysize && YPosition >= 0)
          {
-           memset(row, blank, header.cupsBytesPerLine);
+           blank_line(&header, row);
 
             y = header.cupsHeight - z->ysize;
            if (YPosition == 0)
              y = y - y / 2;
 
+            fprintf(stderr, "DEBUG: Writing %d trailing blank lines...\n", y);
+
            for (; y > 0; y --)
            {
              if (cupsRasterWritePixels(ras, row, header.cupsBytesPerLine) <
@@ -1397,6 +1356,78 @@ main(int  argc,                          /* I - Number of command-line arguments */
 }
 
 
+/*
+ * 'blank_line()' - Clear a line buffer to the blank value...
+ */
+
+static void
+blank_line(cups_page_header2_t *header,        /* I - Page header */
+           unsigned char       *row)   /* I - Row buffer */
+{
+  int  count;                          /* Remaining bytes */
+
+
+  count = header->cupsBytesPerLine;
+
+  switch (header->cupsColorSpace)
+  {
+    case CUPS_CSPACE_CIEXYZ :
+        while (count > 2)
+       {
+         *row++ = 242;
+         *row++ = 255;
+         *row++ = 255;
+         count -= 3;
+       }
+       break;
+
+    case CUPS_CSPACE_CIELab :
+    case CUPS_CSPACE_ICC1 :
+    case CUPS_CSPACE_ICC2 :
+    case CUPS_CSPACE_ICC3 :
+    case CUPS_CSPACE_ICC4 :
+    case CUPS_CSPACE_ICC5 :
+    case CUPS_CSPACE_ICC6 :
+    case CUPS_CSPACE_ICC7 :
+    case CUPS_CSPACE_ICC8 :
+    case CUPS_CSPACE_ICC9 :
+    case CUPS_CSPACE_ICCA :
+    case CUPS_CSPACE_ICCB :
+    case CUPS_CSPACE_ICCC :
+    case CUPS_CSPACE_ICCD :
+    case CUPS_CSPACE_ICCE :
+    case CUPS_CSPACE_ICCF :
+        while (count > 2)
+       {
+         *row++ = 255;
+         *row++ = 128;
+         *row++ = 128;
+         count -= 3;
+       }
+        break;
+
+    case CUPS_CSPACE_K :
+    case CUPS_CSPACE_CMY :
+    case CUPS_CSPACE_CMYK :
+    case CUPS_CSPACE_YMC :
+    case CUPS_CSPACE_YMCK :
+    case CUPS_CSPACE_KCMY :
+    case CUPS_CSPACE_KCMYcm :
+    case CUPS_CSPACE_GMCK :
+    case CUPS_CSPACE_GMCS :
+    case CUPS_CSPACE_WHITE :
+    case CUPS_CSPACE_GOLD :
+    case CUPS_CSPACE_SILVER :
+        memset(row, 0, count);
+       break;
+
+    default :
+        memset(row, 255, count);
+       break;
+  }
+}
+
+
 /*
  * 'format_CMY()' - Convert image data to CMY.
  */
@@ -1447,7 +1478,7 @@ format_CMY(cups_page_header2_t *header,   /* I - Page header */
         {
           case 1 :
               bitmask = 64 >> (bitoffset & 7);
-             dither  = Floyd16xc16[y & 15];
+             dither  = Floyd16x16[y & 15];
 
               for (x = xsize ; x > 0; x --)
               {
@@ -1535,7 +1566,7 @@ format_CMY(cups_page_header2_t *header,   /* I - Page header */
         {
           case 1 :
               bitmask = 0x80 >> (bitoffset & 7);
-             dither  = Floyd16xc16[y & 15];
+             dither  = Floyd16x16[y & 15];
 
               for (x = xsize; x > 0; x --)
               {
@@ -1559,7 +1590,7 @@ format_CMY(cups_page_header2_t *header,   /* I - Page header */
               break;
 
           case 2 :
-              bitmask = 0x0 >> (bitoffset & 7);
+              bitmask = 0xc0 >> (bitoffset & 7);
              dither  = Floyd8x8[y & 7];
 
               for (x = xsize; x > 0; x --)
@@ -1583,7 +1614,7 @@ format_CMY(cups_page_header2_t *header,   /* I - Page header */
                  bitmask >>= 2;
                else
                {
-                 bitmask = 0x0;
+                 bitmask = 0xc0;
 
                  cptr ++;
                  mptr ++;
@@ -1653,7 +1684,7 @@ format_CMY(cups_page_header2_t *header,   /* I - Page header */
         {
           case 1 :
               bitmask = 0x80 >> (bitoffset & 7);
-             dither  = Floyd16xc16[y & 15];
+             dither  = Floyd16x16[y & 15];
 
               switch (z)
              {
@@ -1708,7 +1739,7 @@ format_CMY(cups_page_header2_t *header,   /* I - Page header */
               break;
 
           case 2 :
-              bitmask = 0x0 >> (bitoffset & 7);
+              bitmask = 0xc0 >> (bitoffset & 7);
              dither  = Floyd8x8[y & 7];
               r0 += z;
 
@@ -1723,7 +1754,7 @@ format_CMY(cups_page_header2_t *header,   /* I - Page header */
                  bitmask >>= 2;
                else
                {
-                 bitmask = 0x0;
+                 bitmask = 0xc0;
 
                  ptr ++;
                }
@@ -1797,6 +1828,7 @@ format_CMYK(cups_page_header2_t *header,/* I - Page header */
   int          bandwidth;              /* Width of a color band */
   int          x,                      /* Current X coordinate on page */
                *dither;                /* Pointer into dither array */
+  int          pc, pm, py;             /* CMY pixels */
 
 
   switch (XPosition)
@@ -1822,24 +1854,33 @@ format_CMYK(cups_page_header2_t *header,/* I - Page header */
         {
           case 1 :
               bitmask = 128 >> (bitoffset & 7);
-             dither  = Floyd16xc16[y & 15];
+             dither  = Floyd16x16[y & 15];
 
               for (x = xsize ; x > 0; x --)
               {
-               if (*r0++ > dither[x & 15])
-                 *ptr ^= bitmask;
-               bitmask >>= 1;
+               pc = *r0++ > dither[x & 15];
+               pm = *r0++ > dither[x & 15];
+               py = *r0++ > dither[x & 15];
 
-               if (*r0++ > dither[x & 15])
+               if (pc && pm && py)
+               {
+                 bitmask >>= 3;
                  *ptr ^= bitmask;
-               bitmask >>= 1;
+               }
+               else
+               {
+                 if (pc)
+                   *ptr ^= bitmask;
+                 bitmask >>= 1;
 
-               if (*r0++ > dither[x & 15])
-                 *ptr ^= bitmask;
-               bitmask >>= 1;
+                 if (pm)
+                   *ptr ^= bitmask;
+                 bitmask >>= 1;
 
-               if (*r0++ > dither[x & 15])
-                 *ptr ^= bitmask;
+                 if (py)
+                   *ptr ^= bitmask;
+                 bitmask >>= 1;
+                }
 
                 if (bitmask > 1)
                  bitmask >>= 1;
@@ -1857,9 +1898,9 @@ format_CMYK(cups_page_header2_t *header,/* I - Page header */
               for (x = xsize ; x > 0; x --, r0 += 4)
               {
                if ((r0[0] & 63) > dither[x & 7])
-                 *ptr ^= (0x0 & OnPixels[r0[0]]);
+                 *ptr ^= (0xc0 & OnPixels[r0[0]]);
                else
-                 *ptr ^= (0x0 & OffPixels[r0[0]]);
+                 *ptr ^= (0xc0 & OffPixels[r0[0]]);
 
                if ((r0[1] & 63) > dither[x & 7])
                  *ptr ^= (0x30 & OnPixels[r0[1]]);
@@ -1925,18 +1966,25 @@ format_CMYK(cups_page_header2_t *header,/* I - Page header */
         {
           case 1 :
               bitmask = 0x80 >> (bitoffset & 7);
-             dither  = Floyd16xc16[y & 15];
+             dither  = Floyd16x16[y & 15];
 
               for (x = xsize; x > 0; x --)
               {
-               if (*r0++ > dither[x & 15])
-                 *cptr ^= bitmask;
-               if (*r0++ > dither[x & 15])
-                 *mptr ^= bitmask;
-               if (*r0++ > dither[x & 15])
-                 *yptr ^= bitmask;
-               if (*r0++ > dither[x & 15])
-                 *kptr ^= bitmask;
+               pc = *r0++ > dither[x & 15];
+               pm = *r0++ > dither[x & 15];
+               py = *r0++ > dither[x & 15];
+
+               if (pc && pm && py)
+                 *kptr ^= bitmask;
+               else
+               {
+                 if (pc)
+                   *cptr ^= bitmask;
+                 if (pm)
+                   *mptr ^= bitmask;
+                 if (py)
+                   *yptr ^= bitmask;
+                }
 
                 if (bitmask > 1)
                  bitmask >>= 1;
@@ -1952,7 +2000,7 @@ format_CMYK(cups_page_header2_t *header,/* I - Page header */
               break;
 
           case 2 :
-              bitmask = 0x0 >> (bitoffset & 7);
+              bitmask = 0xc0 >> (bitoffset & 7);
              dither  = Floyd8x8[y & 7];
 
               for (x = xsize; x > 0; x --)
@@ -1981,7 +2029,7 @@ format_CMYK(cups_page_header2_t *header,/* I - Page header */
                  bitmask >>= 2;
                else
                {
-                 bitmask = 0x0;
+                 bitmask = 0xc0;
 
                  cptr ++;
                  mptr ++;
@@ -2063,12 +2111,16 @@ format_CMYK(cups_page_header2_t *header,/* I - Page header */
         {
           case 1 :
               bitmask = 0x80 >> (bitoffset & 7);
-             dither  = Floyd16xc16[y & 15];
-              r0      += z;
+             dither  = Floyd16x16[y & 15];
 
-              for (x = xsize; x > 0; x --, r0 += 4)
+              for (x = xsize; x > 0; x --)
               {
-               if (*r0 > dither[x & 15])
+               pc = *r0++ > dither[x & 15];
+               pm = *r0++ > dither[x & 15];
+               py = *r0++ > dither[x & 15];
+
+               if ((pc && pm && py && z == 3) ||
+                   (pc && z == 0) || (pm && z == 1) || (py && z == 2))
                  *ptr ^= bitmask;
 
                 if (bitmask > 1)
@@ -2082,7 +2134,7 @@ format_CMYK(cups_page_header2_t *header,/* I - Page header */
              break;
 
           case 2 :
-              bitmask = 0x0 >> (bitoffset & 7);
+              bitmask = 0xc0 >> (bitoffset & 7);
              dither  = Floyd8x8[y & 7];
               r0      += z;
 
@@ -2097,7 +2149,7 @@ format_CMYK(cups_page_header2_t *header,/* I - Page header */
                  bitmask >>= 2;
                else
                {
-                 bitmask = 0x0;
+                 bitmask = 0xc0;
 
                  ptr ++;
                }
@@ -2189,7 +2241,7 @@ format_K(cups_page_header2_t *header,     /* I - Page header */
   {
     case 1 :
         bitmask = 0x80 >> (bitoffset & 7);
-        dither  = Floyd16xc16[y & 15];
+        dither  = Floyd16x16[y & 15];
 
         for (x = xsize; x > 0; x --)
         {
@@ -2207,7 +2259,7 @@ format_K(cups_page_header2_t *header,     /* I - Page header */
         break;
 
     case 2 :
-        bitmask = 0x0 >> (bitoffset & 7);
+        bitmask = 0xc0 >> (bitoffset & 7);
         dither  = Floyd8x8[y & 7];
 
         for (x = xsize; x > 0; x --)
@@ -2221,7 +2273,7 @@ format_K(cups_page_header2_t *header,     /* I - Page header */
            bitmask >>= 2;
          else
          {
-           bitmask = 0x0;
+           bitmask = 0xc0;
 
            ptr ++;
           }
@@ -2289,6 +2341,7 @@ format_KCMY(cups_page_header2_t *header,/* I - Page header */
   int          bandwidth;              /* Width of a color band */
   int          x,                      /* Current X coordinate on page */
                *dither;                /* Pointer into dither array */
+  int          pc, pm, py;             /* CMY pixels */
 
 
   switch (XPosition)
@@ -2314,24 +2367,33 @@ format_KCMY(cups_page_header2_t *header,/* I - Page header */
         {
           case 1 :
               bitmask = 128 >> (bitoffset & 7);
-              dither  = Floyd16xc16[y & 15];
+              dither  = Floyd16x16[y & 15];
 
-              for (x = xsize ; x > 0; x --, r0 += 4)
+              for (x = xsize ; x > 0; x --)
               {
-               if (r0[3] > dither[x & 15])
-                 *ptr ^= bitmask;
-               bitmask >>= 1;
+               pc = *r0++ > dither[x & 15];
+               pm = *r0++ > dither[x & 15];
+               py = *r0++ > dither[x & 15];
 
-               if (r0[0] > dither[x & 15])
+               if (pc && pm && py)
+               {
                  *ptr ^= bitmask;
-               bitmask >>= 1;
+                 bitmask >>= 3;
+               }
+               else
+               {
+                 bitmask >>= 1;
+                 if (pc)
+                   *ptr ^= bitmask;
 
-               if (r0[1] > dither[x & 15])
-                 *ptr ^= bitmask;
-               bitmask >>= 1;
+                 bitmask >>= 1;
+                 if (pm)
+                   *ptr ^= bitmask;
 
-               if (r0[2] > dither[x & 15])
-                 *ptr ^= bitmask;
+                 bitmask >>= 1;
+                 if (py)
+                   *ptr ^= bitmask;
+                }
 
                 if (bitmask > 1)
                  bitmask >>= 1;
@@ -2349,9 +2411,9 @@ format_KCMY(cups_page_header2_t *header,/* I - Page header */
               for (x = xsize ; x > 0; x --, r0 += 4)
               {
                if ((r0[3] & 63) > dither[x & 7])
-                 *ptr ^= (0x0 & OnPixels[r0[3]]);
+                 *ptr ^= (0xc0 & OnPixels[r0[3]]);
                else
-                 *ptr ^= (0x0 & OffPixels[r0[3]]);
+                 *ptr ^= (0xc0 & OffPixels[r0[3]]);
 
                if ((r0[0] & 63) > dither[x & 7])
                  *ptr ^= (0x30 & OnPixels[r0[0]]);
@@ -2434,18 +2496,25 @@ format_KCMY(cups_page_header2_t *header,/* I - Page header */
         {
           case 1 :
               bitmask = 0x80 >> (bitoffset & 7);
-              dither  = Floyd16xc16[y & 15];
+              dither  = Floyd16x16[y & 15];
 
               for (x = xsize; x > 0; x --)
               {
-               if (*r0++ > dither[x & 15])
-                 *cptr ^= bitmask;
-               if (*r0++ > dither[x & 15])
-                 *mptr ^= bitmask;
-               if (*r0++ > dither[x & 15])
-                 *yptr ^= bitmask;
-               if (*r0++ > dither[x & 15])
-                 *kptr ^= bitmask;
+               pc = *r0++ > dither[x & 15];
+               pm = *r0++ > dither[x & 15];
+               py = *r0++ > dither[x & 15];
+
+               if (pc && pm && py)
+                 *kptr ^= bitmask;
+               else
+               {
+                 if (pc)
+                   *cptr ^= bitmask;
+                 if (pm)
+                   *mptr ^= bitmask;
+                 if (py)
+                   *yptr ^= bitmask;
+                }
 
                 if (bitmask > 1)
                  bitmask >>= 1;
@@ -2461,7 +2530,7 @@ format_KCMY(cups_page_header2_t *header,/* I - Page header */
               break;
 
           case 2 :
-              bitmask = 0x0 >> (bitoffset & 7);
+              bitmask = 0xc0 >> (bitoffset & 7);
               dither  = Floyd8x8[y & 7];
 
               for (x = xsize; x > 0; x --)
@@ -2490,7 +2559,7 @@ format_KCMY(cups_page_header2_t *header,/* I - Page header */
                  bitmask >>= 2;
                else
                {
-                 bitmask = 0x0;
+                 bitmask = 0xc0;
 
                  cptr ++;
                  mptr ++;
@@ -2572,15 +2641,16 @@ format_KCMY(cups_page_header2_t *header,/* I - Page header */
         {
           case 1 :
               bitmask = 0x80 >> (bitoffset & 7);
-              dither  = Floyd16xc16[y & 15];
-             if (z == 0)
-               r0 += 3;
-             else
-               r0 += z - 1;
+              dither  = Floyd16x16[y & 15];
 
-              for (x = xsize; x > 0; x --, r0 += 4)
+              for (x = xsize; x > 0; x --)
               {
-               if (*r0 > dither[x & 15])
+               pc = *r0++ > dither[x & 15];
+               pm = *r0++ > dither[x & 15];
+               py = *r0++ > dither[x & 15];
+
+               if ((pc && pm && py && z == 0) ||
+                   (pc && z == 1) || (pm && z == 2) || (py && z == 3))
                  *ptr ^= bitmask;
 
                 if (bitmask > 1)
@@ -2594,7 +2664,7 @@ format_KCMY(cups_page_header2_t *header,/* I - Page header */
              break;
 
           case 2 :
-              bitmask = 0x0 >> (bitoffset & 7);
+              bitmask = 0xc0 >> (bitoffset & 7);
               dither  = Floyd8x8[y & 7];
               if (z == 0)
                r0 += 3;
@@ -2612,7 +2682,7 @@ format_KCMY(cups_page_header2_t *header,/* I - Page header */
                  bitmask >>= 2;
                else
                {
-                 bitmask = 0x0;
+                 bitmask = 0xc0;
 
                  ptr ++;
                }
@@ -2716,68 +2786,37 @@ format_KCMYcm(
        break;
   }
 
-  ptr = row + bitoffset / 8;
-  if (header->cupsBitsPerColor == 1)
-    bandwidth = header->cupsBytesPerLine / 6;
-  else
-    bandwidth = header->cupsBytesPerLine / 4;
+  ptr       = row + bitoffset / 8;
+  bandwidth = header->cupsBytesPerLine / 6;
 
   switch (header->cupsColorOrder)
   {
     case CUPS_ORDER_CHUNKED :
-        switch (header->cupsBitsPerColor)
-        {
-          case 1 :
-              dither  = Floyd16xc16[y & 15];
-
-              for (x = xsize ; x > 0; x --)
-              {
-               pc = *r0++ > dither[x & 15];
-               pm = *r0++ > dither[x & 15];
-               py = *r0++ > dither[x & 15];
-               pk = *r0++ > dither[x & 15];
-
-               if (pk)
-                 *ptr++ ^= 32; /* Black */
-               else if (pc && pm)
-                 *ptr++ ^= 17; /* Blue (cyan + light magenta) */
-               else if (pc && py)
-                 *ptr++ ^= 6;  /* Green (light cyan + yellow) */
-               else if (pm && py)
-                 *ptr++ ^= 12; /* Red (magenta + yellow) */
-               else if (pc)
-                 *ptr++ ^= 16;
-               else if (pm)
-                 *ptr++ ^= 8;
-               else if (py)
-                 *ptr++ ^= 4;
-              }
-              break;
-
-          case 8 :
-              for (x = xsize; x > 0; x --, r0 += 4, r1 += 4)
-             {
-               if (r0[3] == r1[3])
-                  *ptr++ = r0[3];
-               else
-                  *ptr++ = (r0[3] * yerr0 + r1[3] * yerr1) / ysize;
-
-               if (r0[0] == r1[0])
-                  *ptr++ = r0[0];
-               else
-                  *ptr++ = (r0[0] * yerr0 + r1[0] * yerr1) / ysize;
-
-               if (r0[1] == r1[1])
-                  *ptr++ = r0[1];
-               else
-                  *ptr++ = (r0[1] * yerr0 + r1[1] * yerr1) / ysize;
+        dither = Floyd16x16[y & 15];
 
-               if (r0[2] == r1[2])
-                  *ptr++ = r0[2];
-               else
-                  *ptr++ = (r0[2] * yerr0 + r1[2] * yerr1) / ysize;
-              }
-              break;
+        for (x = xsize ; x > 0; x --)
+        {
+         pc = *r0++ > dither[x & 15];
+         pm = *r0++ > dither[x & 15];
+         py = *r0++ > dither[x & 15];
+         pk = pc && pm && py;
+
+         if (pk)
+           *ptr++ ^= 32;       /* Black */
+         else if (pc && pm)
+           *ptr++ ^= 17;       /* Blue (cyan + light magenta) */
+         else if (pc && py)
+           *ptr++ ^= 6;        /* Green (light cyan + yellow) */
+         else if (pm && py)
+           *ptr++ ^= 12;       /* Red (magenta + yellow) */
+         else if (pc)
+           *ptr++ ^= 16;
+         else if (pm)
+           *ptr++ ^= 8;
+         else if (py)
+           *ptr++ ^= 4;
+         else
+           ptr ++;
         }
         break;
 
@@ -2789,221 +2828,89 @@ format_KCMYcm(
        lcptr = ptr + 4 * bandwidth;
        lmptr = ptr + 5 * bandwidth;
 
-        switch (header->cupsBitsPerColor)
-        {
-          case 1 :
-              bitmask = 0x80 >> (bitoffset & 7);
-              dither  = Floyd16xc16[y & 15];
-
-              for (x = xsize; x > 0; x --)
-              {
-               pc = *r0++ > dither[x & 15];
-               pm = *r0++ > dither[x & 15];
-               py = *r0++ > dither[x & 15];
-               pk = *r0++ > dither[x & 15];
-
-               if (pk)
-                 *kptr ^= bitmask;     /* Black */
-               else if (pc && pm)
-               {
-                 *cptr ^= bitmask;     /* Blue (cyan + light magenta) */
-                 *lmptr ^= bitmask;
-               }
-               else if (pc && py)
-               {
-                 *lcptr ^= bitmask;    /* Green (light cyan + yellow) */
-                 *yptr  ^= bitmask;
-               }
-               else if (pm && py)
-               {
-                 *mptr ^= bitmask;     /* Red (magenta + yellow) */
-                 *yptr ^= bitmask;
-               }
-               else if (pc)
-                 *cptr ^= bitmask;
-               else if (pm)
-                 *mptr ^= bitmask;
-               else if (py)
-                 *yptr ^= bitmask;
-
-                if (bitmask > 1)
-                 bitmask >>= 1;
-               else
-               {
-                 bitmask = 0x80;
-                 cptr ++;
-                 mptr ++;
-                 yptr ++;
-                 kptr ++;
-                 lcptr ++;
-                 lmptr ++;
-               }
-             }
-              break;
-
-          case 8 :
-              for (x = xsize; x > 0; x --, r0 += 4, r1 += 4)
-             {
-               if (r0[0] == r1[0])
-                  *cptr++ = r0[0];
-               else
-                  *cptr++ = (r0[0] * yerr0 + r1[0] * yerr1) / ysize;
-
-               if (r0[1] == r1[1])
-                  *mptr++ = r0[1];
-               else
-                  *mptr++ = (r0[1] * yerr0 + r1[1] * yerr1) / ysize;
+        bitmask = 0x80 >> (bitoffset & 7);
+        dither  = Floyd16x16[y & 15];
 
-               if (r0[2] == r1[2])
-                  *yptr++ = r0[2];
-               else
-                  *yptr++ = (r0[2] * yerr0 + r1[2] * yerr1) / ysize;
+        for (x = xsize; x > 0; x --)
+        {
+         pc = *r0++ > dither[x & 15];
+         pm = *r0++ > dither[x & 15];
+         py = *r0++ > dither[x & 15];
+         pk = pc && pm && py;
+
+         if (pk)
+           *kptr ^= bitmask;   /* Black */
+         else if (pc && pm)
+         {
+           *cptr ^= bitmask;   /* Blue (cyan + light magenta) */
+           *lmptr ^= bitmask;
+         }
+         else if (pc && py)
+         {
+           *lcptr ^= bitmask;  /* Green (light cyan + yellow) */
+           *yptr  ^= bitmask;
+         }
+         else if (pm && py)
+         {
+           *mptr ^= bitmask;   /* Red (magenta + yellow) */
+           *yptr ^= bitmask;
+         }
+         else if (pc)
+           *cptr ^= bitmask;
+         else if (pm)
+           *mptr ^= bitmask;
+         else if (py)
+           *yptr ^= bitmask;
 
-               if (r0[3] == r1[3])
-                  *kptr++ = r0[3];
-               else
-                  *kptr++ = (r0[3] * yerr0 + r1[3] * yerr1) / ysize;
-              }
-              break;
-        }
+          if (bitmask > 1)
+           bitmask >>= 1;
+         else
+         {
+           bitmask = 0x80;
+           cptr ++;
+           mptr ++;
+           yptr ++;
+           kptr ++;
+           lcptr ++;
+           lmptr ++;
+          }
+       }
         break;
 
     case CUPS_ORDER_PLANAR :
-        switch (header->cupsBitsPerColor)
-        {
-          case 1 :
-              bitmask = 0x80 >> (bitoffset & 7);
-              dither  = Floyd16xc16[y & 15];
-
-              switch (z)
-             {
-               case 0 :
-                   for (x = xsize; x > 0; x --, r0 += 4)
-                   {
-                     if (r0[3] > dither[x & 15])
-                       *ptr ^= bitmask;
-
-                      if (bitmask > 1)
-                       bitmask >>= 1;
-                     else
-                     {
-                       bitmask = 0x80;
-                       ptr ++;
-                     }
-                   }
-                   break;
-
-               case 1 :
-                   for (x = xsize; x > 0; x --, r0 += 4)
-                   {
-                     if (r0[0] > dither[x & 15] &&
-                         r0[2] < dither[x & 15])
-                       *ptr ^= bitmask;
-
-                      if (bitmask > 1)
-                       bitmask >>= 1;
-                     else
-                     {
-                       bitmask = 0x80;
-                       ptr ++;
-                     }
-                   }
-                   break;
-
-               case 2 :
-                   for (x = xsize; x > 0; x --, r0 += 4)
-                   {
-                     if (r0[1] > dither[x & 15] &&
-                         (r0[0] < dither[x & 15] ||
-                          r0[2] > dither[x & 15]))
-                       *ptr ^= bitmask;
-
-                      if (bitmask > 1)
-                       bitmask >>= 1;
-                     else
-                     {
-                       bitmask = 0x80;
-                       ptr ++;
-                     }
-                   }
-                   break;
-
-               case 3 :
-                   for (x = xsize; x > 0; x --, r0 += 4)
-                   {
-                     if (r0[2] > dither[x & 15] &&
-                         (r0[0] < dither[x & 15] ||
-                          r0[1] < dither[x & 15]))
-                       *ptr ^= bitmask;
-
-                      if (bitmask > 1)
-                       bitmask >>= 1;
-                     else
-                     {
-                       bitmask = 0x80;
-                       ptr ++;
-                     }
-                   }
-                   break;
-
-               case 4 :
-                   for (x = xsize; x > 0; x --, r0 += 4)
-                   {
-                     if (r0[0] > dither[x & 15] &&
-                         r0[2] > dither[x & 15])
-                       *ptr ^= bitmask;
-
-                      if (bitmask > 1)
-                       bitmask >>= 1;
-                     else
-                     {
-                       bitmask = 0x80;
-                       ptr ++;
-                     }
-                   }
-                   break;
-
-               case 5 :
-                   for (x = xsize; x > 0; x --, r0 += 4)
-                   {
-                     if (r0[0] > dither[x & 15] &&
-                         r0[1] > dither[x & 15] &&
-                         r0[2] < dither[x & 15])
-                       *ptr ^= bitmask;
+        bitmask = 0x80 >> (bitoffset & 7);
+        dither  = Floyd16x16[y & 15];
 
-                      if (bitmask > 1)
-                       bitmask >>= 1;
-                     else
-                     {
-                       bitmask = 0x80;
-                       ptr ++;
-                     }
-                   }
-                   break;
-             }
-              break;
+        for (x = xsize; x > 0; x --)
+        {
+         pc = *r0++ > dither[x & 15];
+         pm = *r0++ > dither[x & 15];
+         py = *r0++ > dither[x & 15];
+         pk = pc && pm && py;
 
-          case 8 :
-              if (z == 0)
-             {
-               r0 += 3;
-               r1 += 3;
-             }
-             else
-             {
-               r0 += z - 1;
-               r1 += z - 1;
-             }
+          if (pk && z == 0)
+            *ptr ^= bitmask;
+         else if (pc && pm && (z == 1 || z == 5))
+           *ptr ^= bitmask;    /* Blue (cyan + light magenta) */
+         else if (pc && py && (z == 3 || z == 4))
+           *ptr ^= bitmask;    /* Green (light cyan + yellow) */
+         else if (pm && py && (z == 2 || z == 3))
+           *ptr ^= bitmask;    /* Red (magenta + yellow) */
+         else if (pc && z == 1)
+           *ptr ^= bitmask;
+         else if (pm && z == 2)
+           *ptr ^= bitmask;
+         else if (py && z == 3)
+           *ptr ^= bitmask;
 
-              for (x = xsize; x > 0; x --, r0 += 4, r1 += 4)
-             {
-               if (*r0 == *r1)
-                  *ptr++ = *r0;
-               else
-                  *ptr++ = (*r0 * yerr0 + *r1 * yerr1) / ysize;
-              }
-              break;
-        }
+          if (bitmask > 1)
+           bitmask >>= 1;
+         else
+         {
+           bitmask = 0x80;
+           ptr ++;
+          }
+       }
         break;
   }
 }
@@ -3059,7 +2966,7 @@ format_RGBA(cups_page_header2_t *header,/* I - Page header */
         {
           case 1 :
               bitmask = 128 >> (bitoffset & 7);
-             dither  = Floyd16xc16[y & 15];
+             dither  = Floyd16x16[y & 15];
 
               for (x = xsize ; x > 0; x --)
               {
@@ -3075,14 +2982,11 @@ format_RGBA(cups_page_header2_t *header,/* I - Page header */
                  *ptr ^= bitmask;
 
                 if (bitmask > 2)
-               {
-                 *ptr ^= 16;
                  bitmask >>= 2;
-               }
                else
                {
                  bitmask = 128;
-                 *ptr++ ^= 1;
+                 ptr ++;
                }
               }
               break;
@@ -3093,9 +2997,9 @@ format_RGBA(cups_page_header2_t *header,/* I - Page header */
               for (x = xsize ; x > 0; x --, r0 += 3)
               {
                if ((r0[0] & 63) > dither[x & 7])
-                 *ptr ^= (0x0 & OnPixels[r0[0]]);
+                 *ptr ^= (0xc0 & OnPixels[r0[0]]);
                else
-                 *ptr ^= (0x0 & OffPixels[r0[0]]);
+                 *ptr ^= (0xc0 & OffPixels[r0[0]]);
 
                if ((r0[1] & 63) > dither[x & 7])
                  *ptr ^= (0x30 & OnPixels[r0[1]]);
@@ -3107,7 +3011,7 @@ format_RGBA(cups_page_header2_t *header,/* I - Page header */
                else
                  *ptr ^= (0x0c & OffPixels[r0[2]]);
 
-                *ptr++ ^= 0x03;
+                ptr ++;
               }
               break;
 
@@ -3131,7 +3035,7 @@ format_RGBA(cups_page_header2_t *header,/* I - Page header */
                else
                  *ptr ^= (0xf0 & OffPixels[r0[2]]);
 
-                *ptr++ ^= 0x0f;
+                ptr ++;
               }
               break;
 
@@ -3153,7 +3057,7 @@ format_RGBA(cups_page_header2_t *header,/* I - Page header */
                else
                   *ptr++ = (r0[2] * yerr0 + r1[2] * yerr1) / ysize;
 
-                *ptr++ = 255;
+                ptr ++;
               }
              break;
         }
@@ -3170,7 +3074,7 @@ format_RGBA(cups_page_header2_t *header,/* I - Page header */
         {
           case 1 :
               bitmask = 0x80 >> (bitoffset & 7);
-             dither  = Floyd16xc16[y & 15];
+             dither  = Floyd16x16[y & 15];
 
               for (x = xsize; x > 0; x --)
               {
@@ -3194,7 +3098,7 @@ format_RGBA(cups_page_header2_t *header,/* I - Page header */
               break;
 
           case 2 :
-              bitmask = 0x0 >> (bitoffset & 7);
+              bitmask = 0xc0 >> (bitoffset & 7);
              dither  = Floyd8x8[y & 7];
 
               for (x = xsize; x > 0; x --)
@@ -3218,7 +3122,7 @@ format_RGBA(cups_page_header2_t *header,/* I - Page header */
                  bitmask >>= 2;
                else
                {
-                 bitmask = 0x0;
+                 bitmask = 0xc0;
 
                  cptr ++;
                  mptr ++;
@@ -3294,7 +3198,7 @@ format_RGBA(cups_page_header2_t *header,/* I - Page header */
         {
           case 1 :
               bitmask = 0x80 >> (bitoffset & 7);
-             dither  = Floyd16xc16[y & 15];
+             dither  = Floyd16x16[y & 15];
 
               switch (z)
              {
@@ -3349,7 +3253,7 @@ format_RGBA(cups_page_header2_t *header,/* I - Page header */
               break;
 
           case 2 :
-              bitmask = 0x0 >> (bitoffset & 7);
+              bitmask = 0xc0 >> (bitoffset & 7);
              dither  = Floyd8x8[y & 7];
               r0 += z;
 
@@ -3364,7 +3268,7 @@ format_RGBA(cups_page_header2_t *header,/* I - Page header */
                  bitmask >>= 2;
                else
                {
-                 bitmask = 0x0;
+                 bitmask = 0xc0;
 
                  ptr ++;
                }
@@ -3456,7 +3360,7 @@ format_W(cups_page_header2_t *header,     /* I - Page header */
   {
     case 1 :
         bitmask = 0x80 >> (bitoffset & 7);
-        dither  = Floyd16xc16[y & 15];
+        dither  = Floyd16x16[y & 15];
 
         for (x = xsize; x > 0; x --)
         {
@@ -3474,7 +3378,7 @@ format_W(cups_page_header2_t *header,     /* I - Page header */
         break;
 
     case 2 :
-        bitmask = 0x0 >> (bitoffset & 7);
+        bitmask = 0xc0 >> (bitoffset & 7);
         dither  = Floyd8x8[y & 7];
 
         for (x = xsize; x > 0; x --)
@@ -3488,7 +3392,7 @@ format_W(cups_page_header2_t *header,     /* I - Page header */
            bitmask >>= 2;
          else
          {
-           bitmask = 0x0;
+           bitmask = 0xc0;
 
            ptr ++;
           }
@@ -3580,7 +3484,7 @@ format_YMC(cups_page_header2_t *header,   /* I - Page header */
         {
           case 1 :
               bitmask = 64 >> (bitoffset & 7);
-             dither  = Floyd16xc16[y & 15];
+             dither  = Floyd16x16[y & 15];
 
               for (x = xsize ; x > 0; x --, r0 += 3)
               {
@@ -3680,7 +3584,7 @@ format_YMC(cups_page_header2_t *header,   /* I - Page header */
         {
           case 1 :
               bitmask = 0x80 >> (bitoffset & 7);
-             dither  = Floyd16xc16[y & 15];
+             dither  = Floyd16x16[y & 15];
 
               for (x = xsize; x > 0; x --)
               {
@@ -3704,7 +3608,7 @@ format_YMC(cups_page_header2_t *header,   /* I - Page header */
               break;
 
           case 2 :
-              bitmask = 0x0 >> (bitoffset & 7);
+              bitmask = 0xc0 >> (bitoffset & 7);
              dither  = Floyd8x8[y & 7];
 
               for (x = xsize; x > 0; x --)
@@ -3728,7 +3632,7 @@ format_YMC(cups_page_header2_t *header,   /* I - Page header */
                  bitmask >>= 2;
                else
                {
-                 bitmask = 0x0;
+                 bitmask = 0xc0;
 
                  cptr ++;
                  mptr ++;
@@ -3798,7 +3702,7 @@ format_YMC(cups_page_header2_t *header,   /* I - Page header */
         {
           case 1 :
               bitmask = 0x80 >> (bitoffset & 7);
-             dither  = Floyd16xc16[y & 15];
+             dither  = Floyd16x16[y & 15];
 
               switch (z)
              {
@@ -3853,7 +3757,7 @@ format_YMC(cups_page_header2_t *header,   /* I - Page header */
               break;
 
           case 2 :
-              bitmask = 0x0 >> (bitoffset & 7);
+              bitmask = 0xc0 >> (bitoffset & 7);
              dither  = Floyd8x8[y & 7];
               z       = 2 - z;
               r0      += z;
@@ -3869,7 +3773,7 @@ format_YMC(cups_page_header2_t *header,   /* I - Page header */
                  bitmask >>= 2;
                else
                {
-                 bitmask = 0x0;
+                 bitmask = 0xc0;
 
                  ptr ++;
                }
@@ -3945,6 +3849,7 @@ format_YMCK(cups_page_header2_t *header,/* I - Page header */
   int          bandwidth;              /* Width of a color band */
   int          x,                      /* Current X coordinate on page */
                *dither;                /* Pointer into dither array */
+  int          pc, pm, py;             /* CMY pixels */
 
 
   switch (XPosition)
@@ -3970,24 +3875,33 @@ format_YMCK(cups_page_header2_t *header,/* I - Page header */
         {
           case 1 :
               bitmask = 128 >> (bitoffset & 7);
-              dither  = Floyd16xc16[y & 15];
+              dither  = Floyd16x16[y & 15];
 
-              for (x = xsize ; x > 0; x --, r0 += 4)
+              for (x = xsize ; x > 0; x --)
               {
-               if (r0[2] > dither[x & 15])
-                 *ptr ^= bitmask;
-               bitmask >>= 1;
+               pc = *r0++ > dither[x & 15];
+               pm = *r0++ > dither[x & 15];
+               py = *r0++ > dither[x & 15];
 
-               if (r0[1] > dither[x & 15])
+               if (pc && pm && py)
+               {
+                 bitmask >>= 3;
                  *ptr ^= bitmask;
-               bitmask >>= 1;
+               }
+               else
+               {
+                 if (py)
+                   *ptr ^= bitmask;
+                 bitmask >>= 1;
 
-               if (r0[0] > dither[x & 15])
-                 *ptr ^= bitmask;
-               bitmask >>= 1;
+                 if (pm)
+                   *ptr ^= bitmask;
+                 bitmask >>= 1;
 
-               if (r0[3] > dither[x & 15])
-                 *ptr ^= bitmask;
+                 if (pc)
+                   *ptr ^= bitmask;
+                 bitmask >>= 1;
+                }
 
                 if (bitmask > 1)
                  bitmask >>= 1;
@@ -4006,9 +3920,9 @@ format_YMCK(cups_page_header2_t *header,/* I - Page header */
               for (x = xsize ; x > 0; x --, r0 += 4)
               {
                if ((r0[2] & 63) > dither[x & 7])
-                 *ptr ^= (0x0 & OnPixels[r0[2]]);
+                 *ptr ^= (0xc0 & OnPixels[r0[2]]);
                else
-                 *ptr ^= (0x0 & OffPixels[r0[2]]);
+                 *ptr ^= (0xc0 & OffPixels[r0[2]]);
 
                if ((r0[1] & 63) > dither[x & 7])
                  *ptr ^= (0x30 & OnPixels[r0[1]]);
@@ -4091,18 +4005,25 @@ format_YMCK(cups_page_header2_t *header,/* I - Page header */
         {
           case 1 :
               bitmask = 0x80 >> (bitoffset & 7);
-              dither  = Floyd16xc16[y & 15];
+              dither  = Floyd16x16[y & 15];
 
               for (x = xsize; x > 0; x --)
               {
-               if (*r0++ > dither[x & 15])
-                 *cptr ^= bitmask;
-               if (*r0++ > dither[x & 15])
-                 *mptr ^= bitmask;
-               if (*r0++ > dither[x & 15])
-                 *yptr ^= bitmask;
-               if (*r0++ > dither[x & 15])
-                 *kptr ^= bitmask;
+               pc = *r0++ > dither[x & 15];
+               pm = *r0++ > dither[x & 15];
+               py = *r0++ > dither[x & 15];
+
+               if (pc && pm && py)
+                 *kptr ^= bitmask;
+               else
+               {
+                 if (pc)
+                   *cptr ^= bitmask;
+                 if (pm)
+                   *mptr ^= bitmask;
+                 if (py)
+                   *yptr ^= bitmask;
+                }
 
                 if (bitmask > 1)
                  bitmask >>= 1;
@@ -4119,7 +4040,7 @@ format_YMCK(cups_page_header2_t *header,/* I - Page header */
               break;
 
           case 2 :
-              bitmask = 0x0 >> (bitoffset & 7);
+              bitmask = 0xc0 >> (bitoffset & 7);
               dither  = Floyd8x8[y & 7];
 
               for (x = xsize; x > 0; x --)
@@ -4148,7 +4069,7 @@ format_YMCK(cups_page_header2_t *header,/* I - Page header */
                  bitmask >>= 2;
                else
                {
-                 bitmask = 0x0;
+                 bitmask = 0xc0;
 
                  cptr ++;
                  mptr ++;
@@ -4230,16 +4151,16 @@ format_YMCK(cups_page_header2_t *header,/* I - Page header */
         {
           case 1 :
               bitmask = 0x80 >> (bitoffset & 7);
-              dither  = Floyd16xc16[y & 15];
-
-              if (z < 3)
-               r0 += 2 - z;
-             else
-               r0 += z;
+              dither  = Floyd16x16[y & 15];
 
-              for (x = xsize; x > 0; x --, r0 += 4)
+              for (x = xsize; x > 0; x --)
               {
-               if (*r0 > dither[x & 15])
+               pc = *r0++ > dither[x & 15];
+               pm = *r0++ > dither[x & 15];
+               py = *r0++ > dither[x & 15];
+
+               if ((pc && pm && py && z == 3) ||
+                   (pc && z == 2) || (pm && z == 1) || (py && z == 0))
                  *ptr ^= bitmask;
 
                if (bitmask > 1)
@@ -4253,7 +4174,7 @@ format_YMCK(cups_page_header2_t *header,/* I - Page header */
               break;
 
           case 2 :
-              bitmask = 0x0 >> (bitoffset & 7);
+              bitmask = 0xc0 >> (bitoffset & 7);
               dither  = Floyd8x8[y & 7];
               if (z == 3)
                r0 += 3;
@@ -4271,7 +4192,7 @@ format_YMCK(cups_page_header2_t *header,/* I - Page header */
                  bitmask >>= 2;
                else
                {
-                 bitmask = 0x0;
+                 bitmask = 0xc0;
 
                  ptr ++;
                }
@@ -4389,5 +4310,5 @@ raster_cb(
 
 
 /*
- * End of "$Id: imagetoraster.c 5485 2006-05-02 23:59:56Z mike $".
+ * End of "$Id: imagetoraster.c 5523 2006-05-15 05:02:43Z mike $".
  */
index 047431d41fa268cf183fb94265a0c2c95b5aead2..a5c1c57b45fb52af8033684948be0457b96d9f42 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: interpret.c 5497 2006-05-06 00:24:22Z mike $"
+ * "$Id: interpret.c 5512 2006-05-11 18:06:58Z mike $"
  *
  *   PPD command interpreter for the Common UNIX Printing System (CUPS).
  *
@@ -296,7 +296,7 @@ cupsRasterInterpretPPD(
        break;
 
     case CUPS_CSPACE_KCMYcm :
-       if (h->cupsBitsPerPixel == 1)
+       if (h->cupsBitsPerColor == 1)
        {
          if (h->cupsColorOrder == CUPS_ORDER_CHUNKED)
            h->cupsBitsPerPixel = 8;
@@ -608,5 +608,5 @@ exec_code(
 
 
 /*
- * End of "$Id: interpret.c 5497 2006-05-06 00:24:22Z mike $".
+ * End of "$Id: interpret.c 5512 2006-05-11 18:06:58Z mike $".
  */
index 305c798d85421f29a0c83d099d678b234882b7da..23469f3e359d60fa28dbed94d58f3ef79c0c4c4d 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: pstops.c 5382 2006-04-07 14:58:44Z mike $"
+ * "$Id: pstops.c 5569 2006-05-22 18:30:52Z mike $"
  *
  *   PostScript filter for the Common UNIX Printing System (CUPS).
  *
@@ -184,7 +184,11 @@ static size_t              copy_trailer(cups_file_t *fp, pstops_doc_t *doc,
                                     size_t linelen, size_t linesize);
 static void            do_prolog(pstops_doc_t *doc, ppd_file_t *ppd);
 static void            do_setup(pstops_doc_t *doc, ppd_file_t *ppd);
-static void            doc_printf(pstops_doc_t *doc, const char *format, ...);
+static void            doc_printf(pstops_doc_t *doc, const char *format, ...)
+#ifdef __GNUC__
+__attribute__ ((__format__ (__printf__, 2, 3)))
+#endif /* __GNUC__ */
+;
 static void            doc_puts(pstops_doc_t *doc, const char *s);
 static void            doc_write(pstops_doc_t *doc, const char *s, size_t len);
 static void            end_nup(pstops_doc_t *doc, int number);
@@ -886,6 +890,13 @@ copy_dsc(cups_file_t  *fp,         /* I - File to read from */
     }
   }
 
+ /*
+  * Restore the old showpage operator as needed...
+  */
+
+  if (doc->use_ESPshowpage)
+    puts("userdict/showpage/ESPshowpage load put\n");
+
  /*
   * Write/copy the trailer...
   */
@@ -1061,6 +1072,13 @@ copy_non_dsc(cups_file_t  *fp,           /* I - File to read from */
       }
     }
   }
+
+ /*
+  * Restore the old showpage operator as needed...
+  */
+
+  if (doc->use_ESPshowpage)
+    puts("userdict/showpage/ESPshowpage load put\n");
 }
 
 
@@ -1685,6 +1703,14 @@ static void
 do_setup(pstops_doc_t *doc,            /* I - Document information */
          ppd_file_t   *ppd)            /* I - PPD file */
 {
+ /*
+  * 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");
+
  /*
   * Mark any options from %%IncludeFeature: comments...
   */
@@ -1830,7 +1856,7 @@ end_nup(pstops_doc_t *doc,                /* I - Document information */
         int          number)           /* I - Page number */
 {
   if (doc->mirror || Orientation || doc->number_up > 1)
-    puts("userdict /ESPsave get restore");
+    puts("userdict/ESPsave get restore");
 
   switch (doc->number_up)
   {
@@ -2711,13 +2737,12 @@ start_nup(pstops_doc_t *doc,            /* I - Document information */
           ty = 0.5 * (pagew - 3 * l);
 
           if (doc->normal_landscape)
-            doc_printf(doc, "0.0 %.1f translate -90 rotate\n", pagel);
+            doc_printf(doc, "0 %.1f translate -90 rotate\n", pagel);
          else
-           doc_printf(doc, "%.1f 0.0 translate 90 rotate\n", pagew);
+           doc_printf(doc, "%.1f 0 translate 90 rotate\n", pagew);
 
           doc_printf(doc, "%.1f %.1f translate %.3f %.3f scale\n",
-                     tx + x * y * pagel * 0.5, ty + pagew * 0.333,
-                    w / bboxw, l / bboxl);
+                     tx + x * w, ty + y * l, l / bboxl, w / bboxw);
         }
        else
        {
@@ -2753,17 +2778,17 @@ start_nup(pstops_doc_t *doc,            /* I - Document information */
             l = w * bboxl / bboxw;
           }
 
-          tx = 0.5 * (pagel - 3 * w);
-          ty = 0.5 * (pagew - 2 * l);
+         tx = 0.5 * (pagel - 3 * w);
+         ty = 0.5 * (pagew - 2 * l);
 
           if (doc->normal_landscape)
-           doc_printf(doc, "%.1f 0.0 translate 90 rotate\n", pagew);
+           doc_printf(doc, "%.1f 0 translate 90 rotate\n", pagew);
          else
-            doc_printf(doc, "0.0 %.1f translate -90 rotate\n", pagel);
+            doc_printf(doc, "0 %.1f translate -90 rotate\n", pagel);
 
           doc_printf(doc, "%.1f %.1f translate %.3f %.3f scale\n",
-                     tx + x * pagel * 0.333, ty + y * pagew * 0.5,
-                    w / bboxw, l / bboxl);
+                     tx + w * x, ty + l * y, w / bboxw, l / bboxl);
+
         }
         break;
 
@@ -2910,5 +2935,5 @@ start_nup(pstops_doc_t *doc,              /* I - Document information */
 
 
 /*
- * End of "$Id: pstops.c 5382 2006-04-07 14:58:44Z mike $".
+ * End of "$Id: pstops.c 5569 2006-05-22 18:30:52Z mike $".
  */
index 607deb1a6adc03004112eb5de2af5c06c779aedf..8206a442244d9e12ebe34106593c36594451dd12 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: raster.c 5192 2006-02-27 03:08:47Z mike $"
+ * "$Id: raster.c 5523 2006-05-15 05:02:43Z mike $"
  *
  *   Raster file routines for the Common UNIX Printing System (CUPS).
  *
 #endif /* WIN32 || __EMX__ */
 
 
+/*
+ * Private structures...
+ */
+
+struct _cups_raster_s                  /**** Raster stream data ****/
+{
+  unsigned             sync;           /* Sync word from start of stream */
+  int                  fd;             /* File descriptor */
+  cups_mode_t          mode;           /* Read/write mode */
+  cups_page_header2_t  header;         /* Raster header for current page */
+  int                  count,          /* Current row run-length count */
+                       remaining,      /* Remaining rows in page image */
+                       bpp;            /* Bytes per pixel/color */
+  unsigned char                *pixels,        /* Pixels for current row */
+                       *pend,          /* End of pixel buffer */
+                       *pcurrent;      /* Current byte in pixel buffer */
+};
+
 /*
  * Local functions...
  */
@@ -335,7 +353,9 @@ cupsRasterReadPixels(cups_raster_t *r,      /* I - Raster stream */
        }
       }
 
-      if (r->header.cupsBitsPerColor == 16 &&
+      if ((r->header.cupsBitsPerColor == 16 ||
+           r->header.cupsBitsPerPixel == 12 ||
+           r->header.cupsBitsPerPixel == 16) &&
           (r->sync == CUPS_RASTER_REVSYNC || r->sync == CUPS_RASTER_REVSYNCv1))
       {
        /*
@@ -478,12 +498,16 @@ cupsRasterWritePixels(cups_raster_t *r,   /* I - Raster stream */
   unsigned     remaining;              /* Bytes remaining */
 
 
+#ifdef DEBUG
+  fprintf(stderr, "cupsRasterWritePixels(r=%p, p=%p, len=%u), remaining=%u\n",
+          r, p, len, r->remaining);
+#endif /* DEBUG */
+
   if (r == NULL || r->mode != CUPS_RASTER_WRITE || r->remaining == 0)
     return (0);
 
-  remaining = len;
+  for (remaining = len; remaining > 0; remaining -= bytes, p += bytes)
 
-  while (remaining > 0)
   {
    /*
     * Figure out the number of remaining bytes on the current line...
@@ -527,14 +551,19 @@ cupsRasterWritePixels(cups_raster_t *r,   /* I - Raster stream */
          */
 
          r->remaining --;
+
          if (r->remaining == 0)
            return (cups_raster_write(r));
          else if (r->count == 256)
          {
-           cups_raster_write(r);
+           if (cups_raster_write(r) == 0)
+             return (0);
+
            r->count = 0;
          }
        }
+
+       continue;
       }
     }
 
@@ -562,13 +591,11 @@ cupsRasterWritePixels(cups_raster_t *r,   /* I - Raster stream */
        */
 
        r->remaining --;
+
        if (r->remaining == 0)
          return (cups_raster_write(r));
       }
     }
-
-    remaining -= bytes;
-    p         += bytes;
   }
 
   return (len);
@@ -640,7 +667,8 @@ cups_raster_read_header(
 static void
 cups_raster_update(cups_raster_t *r)   /* I - Raster stream */
 {
-  if (r->sync == CUPS_RASTER_SYNCv1 || r->sync == CUPS_RASTER_REVSYNCv1)
+  if (r->sync == CUPS_RASTER_SYNCv1 || r->sync == CUPS_RASTER_REVSYNCv1 ||
+      r->header.cupsNumColors == 0)
   {
    /*
     * Set the "cupsNumColors" field according to the colorspace...
@@ -653,20 +681,29 @@ cups_raster_update(cups_raster_t *r)      /* I - Raster stream */
       case CUPS_CSPACE_WHITE :
       case CUPS_CSPACE_GOLD :
       case CUPS_CSPACE_SILVER :
-      case CUPS_CSPACE_ICC1 :
           r->header.cupsNumColors = 1;
          break;
 
-      case CUPS_CSPACE_ICC2 :
-          r->header.cupsNumColors = 2;
-         break;
-
       case CUPS_CSPACE_RGB :
       case CUPS_CSPACE_CMY :
       case CUPS_CSPACE_YMC :
       case CUPS_CSPACE_CIEXYZ :
       case CUPS_CSPACE_CIELab :
+      case CUPS_CSPACE_ICC1 :
+      case CUPS_CSPACE_ICC2 :
       case CUPS_CSPACE_ICC3 :
+      case CUPS_CSPACE_ICC4 :
+      case CUPS_CSPACE_ICC5 :
+      case CUPS_CSPACE_ICC6 :
+      case CUPS_CSPACE_ICC7 :
+      case CUPS_CSPACE_ICC8 :
+      case CUPS_CSPACE_ICC9 :
+      case CUPS_CSPACE_ICCA :
+      case CUPS_CSPACE_ICCB :
+      case CUPS_CSPACE_ICCC :
+      case CUPS_CSPACE_ICCD :
+      case CUPS_CSPACE_ICCE :
+      case CUPS_CSPACE_ICCF :
           r->header.cupsNumColors = 3;
          break;
 
@@ -677,7 +714,6 @@ cups_raster_update(cups_raster_t *r)        /* I - Raster stream */
       case CUPS_CSPACE_KCMY :
       case CUPS_CSPACE_GMCK :
       case CUPS_CSPACE_GMCS :
-      case CUPS_CSPACE_ICC4 :
           r->header.cupsNumColors = 4;
          break;
 
@@ -687,21 +723,6 @@ cups_raster_update(cups_raster_t *r)       /* I - Raster stream */
          else
             r->header.cupsNumColors = 4;
          break;
-
-      case CUPS_CSPACE_ICC5 :
-      case CUPS_CSPACE_ICC6 :
-      case CUPS_CSPACE_ICC7 :
-      case CUPS_CSPACE_ICC8 :
-      case CUPS_CSPACE_ICC9 :
-      case CUPS_CSPACE_ICCA :
-      case CUPS_CSPACE_ICCB :
-      case CUPS_CSPACE_ICCC :
-      case CUPS_CSPACE_ICCD :
-      case CUPS_CSPACE_ICCE :
-      case CUPS_CSPACE_ICCF :
-          r->header.cupsNumColors = r->header.cupsColorSpace -
-                                   CUPS_CSPACE_ICC1 + 1;
-         break;
     }
   }
 
@@ -750,6 +771,10 @@ cups_raster_write(cups_raster_t *r)        /* I - Raster stream */
   int          count;                  /* Count */
 
 
+#ifdef DEBUG
+  fprintf(stderr, "cups_raster_write(r=%p)\n", r);
+#endif /* DEBUG */
+
  /*
   * Write the row repeat count...
   */
@@ -757,7 +782,14 @@ cups_raster_write(cups_raster_t *r)        /* I - Raster stream */
   byte = r->count - 1;
 
   if (cups_write(r->fd, &byte, 1) < 1)
+  {
+#ifdef DEBUG
+    fputs("cups_raster_write: Unable to write row repeat count...\n",
+          stderr);
+#endif /* DEBUG */
+
     return (0);
+  }
 
  /*
   * Write using a modified TIFF "packbits" compression...
@@ -776,10 +808,22 @@ cups_raster_write(cups_raster_t *r)       /* I - Raster stream */
 
       byte = 0;
       if (cups_write(r->fd, &byte, 1) < 1)
+      {
+#ifdef DEBUG
+        fputs("cups_raster_write: Unable to write last pixel count...\n", stderr);
+#endif /* DEBUG */
+
         return (0);
+      }
 
       if (cups_write(r->fd, start, r->bpp) < r->bpp)
+      {
+#ifdef DEBUG
+        fputs("cups_raster_write: Unable to write last pixel data...\n", stderr);
+#endif /* DEBUG */
+
         return (0);
+      }
     }
     else if (!memcmp(start, ptr, r->bpp))
     {
@@ -796,10 +840,22 @@ cups_raster_write(cups_raster_t *r)       /* I - Raster stream */
       byte = count - 1;
 
       if (cups_write(r->fd, &byte, 1) < 1)
+      {
+#ifdef DEBUG
+        fputs("cups_raster_write: Unable to write repeated pixel count...\n", stderr);
+#endif /* DEBUG */
+
         return (0);
+      }
 
       if (cups_write(r->fd, start, r->bpp) < r->bpp)
+      {
+#ifdef DEBUG
+        fputs("cups_raster_write: Unable to write repeated pixel data...\n", stderr);
+#endif /* DEBUG */
+
         return (0);
+      }
     }
     else
     {
@@ -820,12 +876,24 @@ cups_raster_write(cups_raster_t *r)       /* I - Raster stream */
       byte = 257 - count;
 
       if (cups_write(r->fd, &byte, 1) < 1)
+      {
+#ifdef DEBUG
+        fputs("cups_raster_write: Unable to write non-repeating pixel count...\n", stderr);
+#endif /* DEBUG */
+
         return (0);
+      }
 
       count *= r->bpp;
 
       if (cups_write(r->fd, start, count) < count)
+      {
+#ifdef DEBUG
+        fputs("cups_raster_write: Unable to write non-repeating pixel data...\n", stderr);
+#endif /* DEBUG */
+
         return (0);
+      }
     }
   }
 
@@ -896,5 +964,5 @@ cups_write(int                 fd,  /* I - File descriptor */
 
 
 /*
- * End of "$Id: raster.c 5192 2006-02-27 03:08:47Z mike $".
+ * End of "$Id: raster.c 5523 2006-05-15 05:02:43Z mike $".
  */
index afd9f73070c391aaf4458215ac21538f5c930717..3c5b671181ad03d7d5c1e98f4ecdde436bba9a38 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: raster.h 5485 2006-05-02 23:59:56Z mike $"
+ * "$Id: raster.h 5516 2006-05-11 23:54:05Z mike $"
  *
  *   Raster file definitions for the Common UNIX Printing System (CUPS).
  *
@@ -303,19 +303,8 @@ typedef struct cups_page_header2_s /**** Version 2 Page Header @since CUPS 1.2@
   char         cupsPageSizeName[64];   /* PageSize name @since CUPS 1.2@ */
 } cups_page_header2_t;
 
-typedef struct _cups_raster_s          /**** Raster stream data ****/
-{
-  unsigned             sync;           /* Sync word from start of stream */
-  int                  fd;             /* File descriptor */
-  cups_mode_t          mode;           /* Read/write mode */
-  cups_page_header2_t  header;         /* Raster header for current page */
-  int                  count,          /* Current row run-length count */
-                       remaining,      /* Remaining rows in page image */
-                       bpp;            /* Bytes per pixel/color */
-  unsigned char                *pixels,        /* Pixels for current row */
-                       *pend,          /* End of pixel buffer */
-                       *pcurrent;      /* Current byte in pixel buffer */
-} cups_raster_t;
+typedef struct _cups_raster_s cups_raster_t;
+                                       /**** Raster stream data ****/
 
 typedef int (*cups_interpret_cb_t)(cups_page_header2_t *header, int preferred_bits);
 
@@ -353,5 +342,5 @@ extern unsigned             cupsRasterWriteHeader2(cups_raster_t *r,
 #endif /* !_CUPS_RASTER_H_ */
 
 /*
- * End of "$Id: raster.h 5485 2006-05-02 23:59:56Z mike $".
+ * End of "$Id: raster.h 5516 2006-05-11 23:54:05Z mike $".
  */
index 90de48f8241543fdcbbc9b02d3eaf82d50f081a0..4b8ee4a0512153ea863995cb819ac9326a8e8cdc 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: rastertolabel.c 5287 2006-03-13 16:41:45Z mike $"
+ * "$Id: rastertolabel.c 5510 2006-05-11 17:41:54Z mike $"
  *
  *   Label printer filter for the Common UNIX Printing System (CUPS).
  *
@@ -30,6 +30,7 @@
  *   EndPage()      - Finish a page of graphics.
  *   CancelJob()    - Cancel the current job...
  *   OutputLine()   - Output a line of graphics.
+ *   PCLCompress()  - Output a PCL (mode 3) compressed line.
  *   ZPLCompress()  - Output a run-length compression sequence.
  *   main()         - Main entry and processing of driver.
  */
 
 
 /*
- * This driver filter currently supports Dymo and Zebra label printers.
+ * This driver filter currently supports Dymo, Intellitech, and Zebra
+ * label printers.
  *
  * The Dymo portion of the driver has been tested with the 300, 330,
- * and 330 Turbo label printers; it may also work with older models.
+ * and 330 Turbo label printers; it may also work with other models.
  * The Dymo printers support printing at 136, 203, and 300 DPI.
  *
- * The Zebra portion of the driver has been tested with the LP-2844Z label
- * printer; it may also work with other models.  The driver supports EPL
- * line mode, EPL page mode, ZPL, and CPCL as defined in Zebra's on-line
- * developer documentation.
+ * The Intellitech portion of the driver has been tested with the
+ * Intellibar 408, 412, and 808 and supports their PCL variant.
+ *
+ * The Zebra portion of the driver has been tested with the LP-2844,
+ * LP-2844Z, QL-320, and QL-420 label printers; it may also work with
+ * other models.  The driver supports EPL line mode, EPL page mode,
+ * ZPL, and CPCL as defined in Zebra's on-line developer documentation.
  */
 
 /*
 #define ZEBRA_ZPL      0x12            /* Zebra ZPL-based printers */
 #define ZEBRA_CPCL     0x13            /* Zebra CPCL-based printers */
 
+#define INTELLITECH_PCL        0x20            /* Intellitech PCL-based printers */
+
 
 /*
  * Globals...
  */
 
 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 */
@@ -95,6 +102,7 @@ void StartPage(ppd_file_t *ppd, cups_page_header_t *header);
 void   EndPage(ppd_file_t *ppd, cups_page_header_t *header);
 void   CancelJob(int sig);
 void   OutputLine(ppd_file_t *ppd, cups_page_header_t *header, int y);
+void   PCLCompress(unsigned char *line, int length);
 void   ZPLCompress(char repeat_char, int repeat_count);
 
 
@@ -147,6 +155,15 @@ Setup(ppd_file_t *ppd)                     /* I - PPD file */
 
     case ZEBRA_CPCL :
         break;
+
+    case INTELLITECH_PCL :
+       /*
+       * Send a PCL reset sequence.
+       */
+
+       putchar(0x1b);
+       putchar('E');
+        break;
   }
 }
 
@@ -213,6 +230,9 @@ StartPage(ppd_file_t         *ppd,  /* I - PPD file */
   fprintf(stderr, "DEBUG: cupsColorOrder = %d\n", header->cupsColorOrder);
   fprintf(stderr, "DEBUG: cupsColorSpace = %d\n", header->cupsColorSpace);
   fprintf(stderr, "DEBUG: cupsCompression = %d\n", header->cupsCompression);
+  fprintf(stderr, "DEBUG: cupsRowCount = %d\n", header->cupsRowCount);
+  fprintf(stderr, "DEBUG: cupsRowFeed = %d\n", header->cupsRowFeed);
+  fprintf(stderr, "DEBUG: cupsRowStep = %d\n", header->cupsRowStep);
 
  /*
   * Register a signal handler to eject the current page if the
@@ -353,6 +373,108 @@ StartPage(ppd_file_t         *ppd,        /* I - PPD file */
               header->HWResolution[1], header->cupsHeight,
               header->NumCopies);
         break;
+
+    case INTELLITECH_PCL :
+       /*
+        * Set the media size...
+       */
+
+       printf("\033&l6D\033&k12H");    /* Set 6 LPI, 10 CPI */
+       printf("\033&l0O");             /* Set portrait orientation */
+
+       switch (header->PageSize[1])
+       {
+         case 540 : /* Monarch Envelope */
+              printf("\033&l80A");     /* Set page size */
+             break;
+
+         case 624 : /* DL Envelope */
+              printf("\033&l90A");     /* Set page size */
+             break;
+
+         case 649 : /* C5 Envelope */
+              printf("\033&l91A");     /* Set page size */
+             break;
+
+         case 684 : /* COM-10 Envelope */
+              printf("\033&l81A");     /* Set page size */
+             break;
+
+         case 756 : /* Executive */
+              printf("\033&l1A");      /* Set page size */
+             break;
+
+         case 792 : /* Letter */
+              printf("\033&l2A");      /* Set page size */
+             break;
+
+         case 842 : /* A4 */
+              printf("\033&l26A");     /* Set page size */
+             break;
+
+         case 1008 : /* Legal */
+              printf("\033&l3A");      /* Set page size */
+             break;
+
+          default : /* Custom size */
+             printf("\033!f%dZ", header->PageSize[1] * 300 / 72);
+             break;
+       }
+
+       printf("\033&l%dP",             /* Set page length */
+               header->PageSize[1] / 12);
+       printf("\033&l0E");             /* Set top margin to 0 */
+        printf("\033&l%dX", header->NumCopies);
+                                       /* Set number copies */
+        printf("\033&l0L");            /* Turn off perforation skip */
+
+       /*
+        * Print settings...
+       */
+
+       if (Page == 1)
+       {
+          if (header->cupsRowFeed)     /* inPrintRate */
+           printf("\033!p%dS", header->cupsRowFeed);
+
+          if (header->cupsCompression != ~0)
+                                       /* inPrintDensity */
+           printf("\033&d%dA", 30 * header->cupsCompression / 100 - 15);
+
+          if (header->cupsRowCount != ~0)
+                                       /* inTearInterval */
+           printf("\033!n%dT", header->cupsRowCount);
+
+          if (header->cupsRowStep != ~0)
+                                       /* inCutInterval */
+           printf("\033!n%dC", header->cupsRowStep);
+        }
+
+       /*
+       * Setup graphics...
+       */
+
+       printf("\033*t%dR", header->HWResolution[0]);
+                                       /* Set resolution */
+
+       printf("\033*r%dS", header->cupsWidth);
+                                       /* Set width */
+       printf("\033*r%dT", header->cupsHeight);
+                                       /* Set height */
+
+       printf("\033&a0H");             /* Set horizontal position */
+       printf("\033&a0V");             /* Set vertical position */
+        printf("\033*r1A");            /* Start graphics */
+        printf("\033*b3M");            /* Set compression */
+
+       /*
+        * Allocate compression buffers...
+       */
+
+       CompBuffer = malloc(2 * header->cupsBytesPerLine + 1);
+       LastBuffer = malloc(header->cupsBytesPerLine);
+       LastSet    = 0;
+        break;
   }
 
  /*
@@ -591,6 +713,11 @@ EndPage(ppd_file_t *ppd,           /* I - PPD file */
         puts("FORM\r");
        puts("PRINT\r");
        break;
+
+    case INTELLITECH_PCL :
+        printf("\033*rB");             /* End GFX */
+        printf("\014");                        /* Eject current page */
+        break;
   }
 
   fflush(stdout);
@@ -788,10 +915,163 @@ OutputLine(ppd_file_t         *ppd,      /* I - PPD file */
          fflush(stdout);
        }
        break;
+
+    case INTELLITECH_PCL :
+       if (Buffer[0] ||
+            memcmp(Buffer, Buffer + 1, header->cupsBytesPerLine - 1))
+        {
+         if (Feed)
+         {
+           printf("\033*b%dY", Feed);
+           Feed    = 0;
+           LastSet = 0;
+         }
+
+          PCLCompress(Buffer, header->cupsBytesPerLine);
+       }
+       else
+         Feed ++;
+        break;
   }
 }
 
 
+/*
+ * 'PCLCompress()' - Output a PCL (mode 3) compressed line.
+ */
+
+void
+PCLCompress(unsigned char *line,       /* I - Line to compress */
+            int           length)      /* I - Length of line */
+{
+  unsigned char        *line_ptr,              /* Current byte pointer */
+               *line_end,              /* End-of-line byte pointer */
+               *comp_ptr,              /* Pointer into compression buffer */
+               *start,                 /* Start of compression sequence */
+               *seed;                  /* Seed buffer pointer */
+  int           count,                 /* Count of bytes for output */
+               offset;                 /* Offset of bytes for output */
+
+
+ /*
+  * Do delta-row compression...
+  */
+
+  line_ptr = line;
+  line_end = line + length;
+
+  comp_ptr = CompBuffer;
+  seed     = LastBuffer;
+
+  while (line_ptr < line_end)
+  {
+   /*
+    * Find the next non-matching sequence...
+    */
+
+    start = line_ptr;
+
+    if (!LastSet)
+    {
+     /*
+      * The seed buffer is invalid, so do the next 8 bytes, max...
+      */
+
+      offset = 0;
+
+      if ((count = line_end - line_ptr) > 8)
+       count = 8;
+
+      line_ptr += count;
+    }
+    else
+    {
+     /*
+      * The seed buffer is valid, so compare against it...
+      */
+
+      while (*line_ptr == *seed &&
+             line_ptr < line_end)
+      {
+        line_ptr ++;
+        seed ++;
+      }
+
+      if (line_ptr == line_end)
+        break;
+
+      offset = line_ptr - start;
+
+     /*
+      * Find up to 8 non-matching bytes...
+      */
+
+      start = line_ptr;
+      count = 0;
+      while (*line_ptr != *seed &&
+             line_ptr < line_end &&
+             count < 8)
+      {
+        line_ptr ++;
+        seed ++;
+        count ++;
+      }
+    }
+
+   /*
+    * Place mode 3 compression data in the buffer; see HP manuals
+    * for details...
+    */
+
+    if (offset >= 31)
+    {
+     /*
+      * Output multi-byte offset...
+      */
+
+      *comp_ptr++ = ((count - 1) << 5) | 31;
+
+      offset -= 31;
+      while (offset >= 255)
+      {
+        *comp_ptr++ = 255;
+        offset    -= 255;
+      }
+
+      *comp_ptr++ = offset;
+    }
+    else
+    {
+     /*
+      * Output single-byte offset...
+      */
+
+      *comp_ptr++ = ((count - 1) << 5) | offset;
+    }
+
+    memcpy(comp_ptr, start, count);
+    comp_ptr += count;
+  }
+
+  line_ptr = CompBuffer;
+  line_end = comp_ptr;
+
+ /*
+  * Set the length of the data and write it...
+  */
+
+  printf("\033*b%dW", comp_ptr - CompBuffer);
+  fwrite(CompBuffer, comp_ptr - CompBuffer, 1, stdout);
+
+ /*
+  * Save this line as a "seed" buffer for the next...
+  */
+
+  memcpy(LastBuffer, line, length);
+  LastSet = 1;
+}
+
+
 /*
  * 'ZPLCompress()' - Output a run-length compression sequence.
  */
@@ -873,7 +1153,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);
   }
 
@@ -1003,5 +1283,5 @@ main(int  argc,                           /* I - Number of command-line arguments */
 
 
 /*
- * End of "$Id: rastertolabel.c 5287 2006-03-13 16:41:45Z mike $".
+ * End of "$Id: rastertolabel.c 5510 2006-05-11 17:41:54Z mike $".
  */
index 6b9ac5ba0f81c35745578fee8195a8da3b5d7cba..a74569ef57bc1a6458bffa0e849b664fb8b81561 100644 (file)
@@ -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-04-14 14:35-0400\n"
+"POT-Creation-Date: 2006-05-21 10:07-0400\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -2599,6 +2599,15 @@ msgid ""
 "    Note: this program only validates the DSC comments, not the PostScript itself.\n"
 msgstr ""
 
+#, c-format
+msgid "Password for %s on %s? "
+msgstr ""
+
+msgid ""
+"      **FAIL**  1284DeviceId must be 1284DeviceID!\n"
+"                REF: Page 72, section 5.5\n"
+msgstr ""
+
 
 #
 # End of "$Id$".
index bbcb8a2be5abd352f09493366bdf2df702f55bf8..eeb6713741779f2e167e1afd6d460cf8c34a6966 100644 (file)
@@ -22,7 +22,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: 2006-05-21 10:07-0400\n"
 "PO-Revision-Date: 2006-03-25 21:48+0100\n"
 "Last-Translator: Juan Pablo González Riopedre <riopedre@tiscali.es>\n"
 "Language-Team: Spanish\n"
@@ -2990,3 +2990,15 @@ msgstr ""
 "\n"
 "    Nota: este programa sólo valida los comentarios DSC, no el PostScript en "
 "sí mismo.\n"
+
+#, c-format
+msgid "Password for %s on %s? "
+msgstr ""
+
+#, fuzzy
+msgid ""
+"      **FAIL**  1284DeviceId must be 1284DeviceID!\n"
+"                REF: Page 72, section 5.5\n"
+msgstr ""
+"      **FALLO**  Preferencia %s incorrecta %s.\n"
+"                REF: Página 122, sección 5.17\n"
index 3b68a7d156a2994bcf054ea018bfed267041c8ae..464407aba9843f38bc895982fcfaf4c2a364ef84 100644 (file)
@@ -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: 2006-05-21 10:07-0400\n"
 "PO-Revision-Date: 2006-03-29 23:44+0900\n"
 "Last-Translator: Kenshi Muto <kmuto@debian.org>\n"
 "Language-Team: Japanese <LL@li.org>\n"
@@ -2926,3 +2926,15 @@ msgstr ""
 "\n"
 "    注意: このプログラムは DSC コメントを検証するだけで、PostScript 自身を検"
 "証するものではありません。\n"
+
+#, c-format
+msgid "Password for %s on %s? "
+msgstr ""
+
+#, fuzzy
+msgid ""
+"      **FAIL**  1284DeviceId must be 1284DeviceID!\n"
+"                REF: Page 72, section 5.5\n"
+msgstr ""
+"      **FAIL**  不正な %s が %s を選んでいます!\n"
+"                REF: 122 ページ、セクション 5.17\n"
diff --git a/locale/cups_pl.po b/locale/cups_pl.po
new file mode 100644 (file)
index 0000000..49c8151
--- /dev/null
@@ -0,0 +1,2949 @@
+#
+# "$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
+#
+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-05-09 17:20+0200\n"
+"Last-Translator: Piotr Drąg <raven@pmail.pl>\n"
+"Language-Team: Polish <pl@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "Options Installed"
+msgstr "Zainstalowane opcje"
+
+msgid "Class"
+msgstr "Klasa"
+
+msgid "Printer"
+msgstr "Drukarka"
+
+msgid "Extra"
+msgstr "Dodatkowe"
+
+msgid "General"
+msgstr "Ogólne"
+
+msgid "Media Size"
+msgstr "Rozmiar nośnika"
+
+msgid "Media Type"
+msgstr "Typ nośnika"
+
+msgid "Media Source"
+msgstr "Źródło nośnika"
+
+msgid "Output Mode"
+msgstr "Tryb wyjścia"
+
+msgid "Resolution"
+msgstr "Rozdzielczość"
+
+msgid "Variable"
+msgstr "Zmienna"
+
+msgid "Yes"
+msgstr "Tak"
+
+msgid "No"
+msgstr "Nie"
+
+msgid "Auto"
+msgstr "Automatycznie"
+
+msgid ""
+"Enter your username and password or the root username and password to access "
+"this page."
+msgstr ""
+"Podaj swoją nazwę użytkownika i hasło lub nazwę użytkownika root i hasło, "
+"aby uzyskać dostęp do tej strony."
+
+msgid "You must use a https: URL to access this page."
+msgstr "Musisz użyć URL-a https:, aby uzyskać dostęp do tej strony."
+
+#, c-format
+msgid "Bad request version number %d.%d!"
+msgstr "Błędny numer wersji żądania %d.%d!"
+
+msgid "No attributes in request!"
+msgstr "Brak właściwości w żądaniu!"
+
+#, c-format
+msgid "Attribute groups are out of order (%x < %x)!"
+msgstr "Grupy właściwości są nieuporządkowane (%x < %x)!"
+
+msgid "Missing required attributes!"
+msgstr "Brakuje wymaganych właściwości!"
+
+#, c-format
+msgid "%s not supported!"
+msgstr "%s jest nieobsługiwane!"
+
+msgid "The printer or class was not found."
+msgstr "Drukarka lub klasa nie została znaleziona."
+
+msgid ""
+"The printer-uri must be of the form \"ipp://HOSTNAME/classes/CLASSNAME\"."
+msgstr ""
+"printer-uri musi być w formie \"ipp://NAZWAKOMPUTERA/classes/NAZWAKLASY\"."
+
+#, c-format
+msgid "The printer-uri \"%s\" contains invalid characters."
+msgstr "printer-uri \"%s\" zawiera nieprawidłowe znaki."
+
+#, c-format
+msgid "A printer named \"%s\" already exists!"
+msgstr "Drukarka o nazwie \"%s\" już istnieje!"
+
+#, c-format
+msgid "Attempt to set %s printer-state to bad value %d!"
+msgstr "Spróbowano ustawić printer-state %s na błędną wartość %d!"
+
+#, c-format
+msgid "add_class: Unknown printer-op-policy \"%s\"."
+msgstr "add_class: nieznane \"%s\" printer-op-policy."
+
+#, c-format
+msgid "add_class: Unknown printer-error-policy \"%s\"."
+msgstr "add_class: nieznane \"%s\" printer-error-policy."
+
+msgid "Unable to allocate memory for file types!"
+msgstr "Nie można przydzielić pamięci dla typów plików!"
+
+#, c-format
+msgid "Character set \"%s\" not supported!"
+msgstr "Zestaw znaków \"%s\" jest nieobsługiwany!"
+
+#, c-format
+msgid "Language \"%s\" not supported!"
+msgstr "Język \"%s\" jest nieobsługiwany!"
+
+#, c-format
+msgid "The notify-user-data value is too large (%d > 63 octets)!"
+msgstr "Wartość notify-user-data jest za duża (%d > 63 oktety)!"
+
+msgid ""
+"The notify-lease-duration attribute cannot be used with job subscriptions."
+msgstr ""
+"Właściwość notify-lease-duration nie może być używana z subskrypcjami zadań."
+
+msgid ""
+"The printer-uri must be of the form \"ipp://HOSTNAME/printers/PRINTERNAME\"."
+msgstr ""
+"printer-uri musi być w formie \"ipp://NAZWAKOMPUTERA/printers/NAZWADRUKARKI"
+"\"."
+
+#, c-format
+msgid "A class named \"%s\" already exists!"
+msgstr "Klasa o nazwie \"%s\" już istnieje!"
+
+#, c-format
+msgid ""
+"File device URIs have been disabled! To enable, see the FileDevice directive "
+"in \"%s/cupsd.conf\"."
+msgstr ""
+"URI pliku urządzenia zostało wyłączone! Aby włączyć, zobacz dyrektywę "
+"FileDevice w \"%s/cupsd.conf\"."
+
+#, c-format
+msgid "Bad device-uri \"%s\"!"
+msgstr "Błędne \"%s\" device-uri!"
+
+#, c-format
+msgid "Bad port-monitor \"%s\"!"
+msgstr "Błędne \"%s\" port-monitor!"
+
+#, c-format
+msgid "Bad printer-state value %d!"
+msgstr "Błędne %d printer-state value!"
+
+#, c-format
+msgid "Unknown printer-op-policy \"%s\"."
+msgstr "Nieznane \"%s\" printer-op-policy."
+
+#, c-format
+msgid "Unknown printer-error-policy \"%s\"."
+msgstr "Nieznane \"%s\" printer-error-polic!"
+
+#, c-format
+msgid "Unable to copy interface script - %s!"
+msgstr "Nie można skopiować skryptu interfejsu - %s!"
+
+#, c-format
+msgid "Unable to copy PPD file - %s!"
+msgstr "Nie można skopiować pliku PPD - %s!"
+
+msgid "Unable to copy PPD file!"
+msgstr "Nie można skopiować pliku PPD!"
+
+msgid "Got a printer-uri attribute but no job-id!"
+msgstr "Otrzymano właściwość printer-uri, ale bez job-id!"
+
+#, c-format
+msgid "Bad job-uri attribute \"%s\"!"
+msgstr "Błędna właściwość \"%s\" job-uri!"
+
+#, c-format
+msgid "Job #%d doesn't exist!"
+msgstr "Zadanie #%d nie istnieje!"
+
+#, c-format
+msgid "Job #%d is not held for authentication!"
+msgstr "Zadanie #%d nie zostało wstrzymane do uwierzytelnienia!"
+
+#, c-format
+msgid "You are not authorized to authenticate job #%d owned by \"%s\"!"
+msgstr ""
+"Nie jesteś upoważniony do uwierzytelnienia zadania #%d należącego do \"%s\"!"
+
+msgid "The printer-uri attribute is required!"
+msgstr "Wymagana jest właściwość printer-uri!"
+
+msgid "Missing requesting-user-name attribute!"
+msgstr "Brakuje właściwości requesting-user-name!"
+
+#, c-format
+msgid "The printer-uri \"%s\" is not valid."
+msgstr "\"%s\" printer-uri jest nieprawidłowe."
+
+#, c-format
+msgid "No active jobs on %s!"
+msgstr "Brak aktywnych zadań na %s!"
+
+#, c-format
+msgid "You are not authorized to delete job #%d owned by \"%s\"!"
+msgstr "Nie jesteś upoważniony do usunięcia zadania #%d należącego do \"%s\"!"
+
+#, c-format
+msgid "Job #%d is already %s - can't cancel."
+msgstr "Zadanie #%d jest już %s - nie można anulować."
+
+msgid "The printer or class is not shared!"
+msgstr "Drukarka lub klasa nie jest współdzielona!"
+
+#, c-format
+msgid "Destination \"%s\" is not accepting jobs."
+msgstr "Cel \"%s\" nie akceptuje zadań."
+
+#, c-format
+msgid "Bad copies value %d."
+msgstr "Błędna wartość kopii %d."
+
+#, c-format
+msgid "Bad page-ranges values %d-%d."
+msgstr "Błędne wartości %d-%d page-ranges."
+
+msgid "Too many active jobs."
+msgstr "Za dużo aktywnych zadań."
+
+msgid "Quota limit reached."
+msgstr "Przekroczono limit Quoty."
+
+#, c-format
+msgid "Unable to add job for destination \"%s\"!"
+msgstr "Nie można dodać zadania do celu \"%s\"!"
+
+msgid "No subscription attributes in request!"
+msgstr "Brak właściwości subskrypcji w żądaniu!"
+
+msgid "notify-events not specified!"
+msgstr "notify-even jest nieokreślone!"
+
+#, c-format
+msgid "Job %d not found!"
+msgstr "Nie znaleziono zadania %d!"
+
+msgid "No default printer"
+msgstr "Brak domyślnej drukarki"
+
+msgid "cups-deviced failed to execute."
+msgstr "Nie powiodło się wykonanie cups-deviced."
+
+msgid "cups-driverd failed to execute."
+msgstr "Nie powiodło się wykonanie cups-driverd."
+
+msgid "No destinations added."
+msgstr "Nie dodano celów."
+
+#, c-format
+msgid "notify-subscription-id %d no good!"
+msgstr "%d notify-subscription-id nie dobre!"
+
+#, c-format
+msgid "Job #%s does not exist!"
+msgstr "Zadanie #%s nie istnieje!"
+
+#, c-format
+msgid "Job #%d does not exist!"
+msgstr "Zadanie #%d nie istnieje!"
+
+msgid "No subscriptions found."
+msgstr "Nie znaleziono subskrypcji."
+
+#, c-format
+msgid "Not authorized to hold job #%d owned by \"%s\"!"
+msgstr "Nie upoważniony do wstrzymania zadania #%d należącego do \"%s\"!"
+
+#, c-format
+msgid "Job #%d is finished and cannot be altered!"
+msgstr "Zadanie #%d zostało zakończone i nie może zostać zmienione!"
+
+#, c-format
+msgid "You are not authorized to move job #%d owned by \"%s\"!"
+msgstr ""
+"Nie jesteś upoważniony do przeniesienia zadania #%d należącego do \"%s\"!"
+
+msgid "job-printer-uri attribute missing!"
+msgstr "Brakuje właściwości job-printer-uri!"
+
+#, c-format
+msgid "Unsupported compression \"%s\"!"
+msgstr "Nieobsługiwana kompresja \"%s\"!"
+
+msgid "No file!?!"
+msgstr "Brak pliku?!?"
+
+#, c-format
+msgid "Could not scan type \"%s\"!"
+msgstr "Nie można przeskanować typu \"%s\"!"
+
+#, c-format
+msgid "Unsupported format '%s/%s'!"
+msgstr "Nieobsługiwany format \"%s/%s\"!"
+
+msgid "Printer not shared!"
+msgstr "Drukarka nie jest współdzielona!"
+
+#, c-format
+msgid "Too many jobs - %d jobs, max jobs is %d."
+msgstr "Za dużo zadań - jest %d zadań, maksymalnie może być %d."
+
+#, c-format
+msgid "Job #%d is not held!"
+msgstr "Zadanie #%d nie zostało wstrzymane!"
+
+#, c-format
+msgid "You are not authorized to release job id %d owned by \"%s\"!"
+msgstr ""
+"Nie jesteś upoważniony do zwolnienia ID zadania %d należącego do \"%s\"!"
+
+#, c-format
+msgid "Job #%d is not complete!"
+msgstr "Zadanie #%d nie zostało zakończone!"
+
+#, c-format
+msgid "Job #%d cannot be restarted - no files!"
+msgstr "Zadanie #%d nie może zostać ponownie uruchomione - brak plików!"
+
+#, c-format
+msgid "You are not authorized to restart job id %d owned by \"%s\"!"
+msgstr ""
+"Nie jesteś upoważniony do ponownego uruchomienia ID zadania %d należącego do "
+"\"%s\"!"
+
+#, c-format
+msgid "You are not authorized to send document for job #%d owned by \"%s\"!"
+msgstr ""
+"Nie jesteś upoważniony do wysłania dokumentu do zadania %d należącego do \"%s"
+"\"!"
+
+#, c-format
+msgid "Bad document-format \"%s\"!"
+msgstr "Błędne \"%s\" document-format!"
+
+#, c-format
+msgid "You are not authorized to alter job id %d owned by \"%s\"!"
+msgstr ""
+"Nie jesteś upoważniony do zmienienia ID zadania %d należącego do \"%s\"!"
+
+#, c-format
+msgid "%s cannot be changed."
+msgstr "%s nie może zostać zmienione."
+
+msgid "Bad job-priority value!"
+msgstr "Błędna wartość job-priority!"
+
+msgid "Job is completed and cannot be changed."
+msgstr "Zadanie zostało zakończone i nie może zostać zmienione."
+
+msgid "Bad job-state value!"
+msgstr "Błędna wartość job-state!"
+
+msgid "Job state cannot be changed."
+msgstr "Stan zadania nie może zostać zmieniony."
+
+#, c-format
+msgid "Unsupported compression attribute %s!"
+msgstr "Nieobsługiwana wartość kompresji %s!"
+
+#, c-format
+msgid "Unsupported format \"%s\"!"
+msgstr "Nieobsługiwany format \"%s\"!"
+
+#, c-format
+msgid "%s is not implemented by the CUPS version of lpc.\n"
+msgstr "%s nie jest zaimplementowane przez lpc w wersji CUPS.\n"
+
+msgid ""
+"Commands may be abbreviated.  Commands are:\n"
+"\n"
+"exit    help    quit    status  ?\n"
+msgstr ""
+"Polecenia mogą być skracane.  Poleceniami są:\n"
+"\n"
+"exit    help    quit    status  ?\n"
+
+msgid "help\t\tget help on commands\n"
+msgstr "help\t\tpomoc o poleceniach\n"
+
+msgid "status\t\tshow status of daemon and queue\n"
+msgstr "status\t\twyświetla stan demonów i kolejki\n"
+
+msgid "?Invalid help command unknown\n"
+msgstr "?Nieprawidłowe, nieznane polecenie pomocy\n"
+
+#, c-format
+msgid "\tprinter is on device '%s' speed -1\n"
+msgstr "\tdrukarka jest na urządzeniu \"%s\" prędkość -1\n"
+
+msgid "\tqueuing is enabled\n"
+msgstr "\tkolejkowanie jest włączone\n"
+
+msgid "\tqueuing is disabled\n"
+msgstr "\tkolejkowanie jest wyłączone\n"
+
+msgid "\tprinting is enabled\n"
+msgstr "\tdrukowanie jest włączone\n"
+
+msgid "\tprinting is disabled\n"
+msgstr "\tdrukowanie jest wyłączone"
+
+msgid "\tno entries\n"
+msgstr "\tbrak wpisów\n"
+
+#, c-format
+msgid "\t%d entries\n"
+msgstr "\t%d wpisów\n"
+
+msgid "\tdaemon present\n"
+msgstr "\tdemon jest obecny\n"
+
+msgid "lpq: Unable to contact server!\n"
+msgstr "lpq: nie można skontaktować się z serwerem!\n"
+
+#, c-format
+msgid "%s: Sorry, no encryption support compiled in!\n"
+msgstr "%s: przepraszam, nie wkompilowano obsługi szyfowania!\n"
+
+#, c-format
+msgid "lpq: Unknown destination \"%s/%s\"!\n"
+msgstr "lpq: nieznany cel \"%s/%s\"!\n"
+
+#, c-format
+msgid "lpq: Unknown destination \"%s\"!\n"
+msgstr "lpq: nieznany cel \"%s\"!\n"
+
+#, c-format
+msgid ""
+"lp: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr ""
+"lp: błąd - %s nazw zmiennych środowiskowych z nieistniejącym celem \"%s\"!\n"
+
+msgid "lpq: error - no default destination available.\n"
+msgstr "lpq: błąd - brak dostępnego domyślnego celu.\n"
+
+#, c-format
+msgid "lpq: get-jobs failed: %s\n"
+msgstr "lpq: get-jobs nie powiodło się: %s\n"
+
+msgid ""
+"Rank   Owner      Pri  Job        Files                       Total Size\n"
+msgstr ""
+"Kolejka   Właściciel      Drukowanie  Zadanie        "
+"Pliki                       Całkowity rozmiar\n"
+
+msgid "Rank    Owner   Job     File(s)                         Total Size\n"
+msgstr ""
+"Kolejka    Właściciel   Zadanie     Pliki                         Całkowity "
+"rozmiar\n"
+
+#, c-format
+msgid "%s: %-33.33s [job %d localhost]\n"
+msgstr "%s: %-33.33s [zadanie %d localhost]\n"
+
+#, c-format
+msgid "        %-39.39s %.0f bytes\n"
+msgstr "        %-39.39s %.0f bajtów\n"
+
+#, c-format
+msgid "%-6s %-10.10s %-4d %-10d %-27.27s %.0f bytes\n"
+msgstr "%-6s %-10.10s %-4d %-10d %-27.27s %.0f bajtów"
+
+#, c-format
+msgid "%-7s %-7.7s %-7d %-31.31s %.0f bytes\n"
+msgstr "%-7s %-7.7s %-7d %-31.31s %.0f bajtów\n"
+
+msgid "no entries\n"
+msgstr "brak wpisów\n"
+
+#, c-format
+msgid "lpq: get-printer-attributes failed: %s\n"
+msgstr "lpq: get-printer-attributes nie powiodło się: %s\n"
+
+#, c-format
+msgid "%s is ready\n"
+msgstr "%s jest gotowe\n"
+
+#, c-format
+msgid "%s is ready and printing\n"
+msgstr "%s jest gotowe i drukuje\n"
+
+#, c-format
+msgid "%s is not ready\n"
+msgstr "%s nie jest gotowe\n"
+
+msgid "Usage: lpq [-P dest] [-l] [+interval]\n"
+msgstr "Użycie: lpq  [-P cel] [-l] [+odstęp]\n"
+
+#, c-format
+msgid "lpr: error - expected value after -%c option!\n"
+msgstr "lpr: błąd - oczekiwana wartość po opcji -%c!\n"
+
+#, c-format
+msgid ""
+"lpr: warning - '%c' format modifier not supported - output may not be "
+"correct!\n"
+msgstr ""
+"lpr - ostrzeżenie - modyfikator formatu \"%c\" jest nieobsługiwany - wyjście "
+"może nie być poprawne!"
+
+msgid "lpr: error - expected option=value after -o option!\n"
+msgstr "lpr: błąd - oczekiwana opcja=wartość po opcji -o!\n"
+
+msgid "lpr: warning - email notification is not currently supported!\n"
+msgstr ""
+"lpr: ostrzeżenie - powiadamianie na e-mail nie jest teraz obsługiwane!\n"
+
+msgid "lpr: error - expected destination after -P option!\n"
+msgstr "lpr: błąd - oczekiwany cel po opcji -P!\n"
+
+msgid "lpr: error - expected copy count after -# option!\n"
+msgstr "lpr: błąd - oczekiwany licznik kopiowania po opcji -#!\n"
+
+#, c-format
+msgid "lpr: error - expected name after -%c option!\n"
+msgstr "lpr: błąd - oczekiwana nazwa po opcji -%c!\n"
+
+msgid "lpr: error - expected username after -U option!\n"
+msgstr "lpr: błąd - oczekiwana nazwa użytkownika po opcji -U!\n"
+
+#, c-format
+msgid "lpr: error - unknown option '%c'!\n"
+msgstr "lpr: błąd - nieznana opcja \"%c\"!\n"
+
+#, c-format
+msgid "lpr: error - unable to access \"%s\" - %s\n"
+msgstr "lpr: błąd - nie można uzyskać dostępu \"%s\" - %s\n"
+
+#, c-format
+msgid "lpr: error - too many files - \"%s\"\n"
+msgstr "lpr: błąd - za dużo plików - \"%s\"\n"
+
+#, c-format
+msgid ""
+"lpr: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr ""
+"lpr: błąd - %s nazw zmiennych środowiskowych z nieistniejącym celem \"%s\"!\n"
+
+msgid "lpr: error - no default destination available.\n"
+msgstr "lpr: błąd - brak dostępnego domyślnego celu.\n"
+
+msgid "lpr: error - scheduler not responding!\n"
+msgstr "lpr: błąd - planista nie odpowiada!\n"
+
+#, c-format
+msgid "lpr: error - unable to create temporary file \"%s\" - %s\n"
+msgstr "lpr: błąd - nie można utworzyć pliku tymczasowego \"%s\" - %s\n"
+
+#, c-format
+msgid "lpr: error - unable to write to temporary file \"%s\" - %s\n"
+msgstr "lpr: błąd - nie można zapisać do pliku tymczasowego \"%s\" - %s\n"
+
+msgid "lpr: error - stdin is empty, so no job has been sent.\n"
+msgstr ""
+"lpr: błąd - standardowe wejście jest puste, więc żadne zadanie nie zostało "
+"wysłane.\n"
+
+#, c-format
+msgid "lpr: error - unable to print file: %s\n"
+msgstr "lpr: błąd - nie można wydrukować pliku: %s\n"
+
+msgid "lprm: Unable to contact server!\n"
+msgstr "lprm: nie można skontaktować się z serwerem!\n"
+
+#, c-format
+msgid "lprm: Unknown destination \"%s\"!\n"
+msgstr "lprm: nieznany cel \"%s\"!\n"
+
+#, c-format
+msgid "lprm: Unknown option '%c'!\n"
+msgstr "lprm: nieznana opcja \"%c\"!\n"
+
+msgid "lprm: Job or printer not found!\n"
+msgstr "lprm: zadanie lub drukarka nie została znaleziona!\n"
+
+msgid "lprm: Not authorized to lprm job(s)!\n"
+msgstr "lprm: nie upoważniony do zadań lprm!\n"
+
+#, c-format
+msgid "lprm: You don't own job ID %d!\n"
+msgstr "lprm: nie jesteś właścicielem zadania o ID %d!\n"
+
+msgid "lprm: Unable to lprm job(s)!\n"
+msgstr "lprm: nie można usunąć zadań używając lprm!\n"
+
+msgid "lprm: Unable to cancel job(s)!\n"
+msgstr "lprm: nie można anulować zadań!\n"
+
+#, c-format
+msgid "%s: Don't know what to do!\n"
+msgstr "%s: nie wiem co robić!\n"
+
+#, c-format
+msgid "%s: Expected server name after -h!\n"
+msgstr "%s: oczekiwana nazwa serwera po -h!\n"
+
+#, c-format
+msgid "%s: Expected reason text after -r!\n"
+msgstr "%s: oczekiwany warunek tekstu po -r!\n"
+
+#, c-format
+msgid "%s: Unknown option '%c'!\n"
+msgstr "%s: nieznana opcja \"%c\"!\n"
+
+#, c-format
+msgid "%s: Unable to connect to server: %s\n"
+msgstr "%s: nie można połączyć się z serwerem: %s\n"
+
+#, c-format
+msgid "%s: Operation failed: %s\n"
+msgstr "%s: operacja nie powiodła się: %s\n"
+
+msgid "cancel: Error - expected hostname after '-h' option!\n"
+msgstr "cancel: błąd - oczekiwana nazwa komputera po opcji \"-h\"!\n"
+
+msgid "cancel: Error - expected username after '-u' option!\n"
+msgstr "cancel: błąd - oczekiwana nazwa użytkownika po opcji \"-u\"!\n"
+
+#, c-format
+msgid "cancel: Unknown option '%c'!\n"
+msgstr "cancel: nieznana opcja \"%c\"!\n"
+
+#, c-format
+msgid "cancel: Unknown destination \"%s\"!\n"
+msgstr "cancel: nieznany cel \"%s\"!\n"
+
+msgid "cancel: Unable to contact server!\n"
+msgstr "cancel: nie można skontaktować się z serwerem!\n"
+
+#, c-format
+msgid "cancel: %s failed: %s\n"
+msgstr "cancel: %s nie powiodło się: %s\n"
+
+#, c-format
+msgid "cupsaddsmb: Missing value on line %d!\n"
+msgstr "cupsaddsmb: brakująca wartość w wierszu %d!\n"
+
+#, c-format
+msgid "cupsaddsmb: Missing double quote on line %d!\n"
+msgstr "cupsaddsmb: brakujący cudzysłów w wierszu %d!\n"
+
+#, c-format
+msgid "cupsaddsmb: Bad option + choice on line %d!\n"
+msgstr "cupsaddsmb: błędna opcja + wybór w wierszu %d!\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to connect to server \"%s\" for %s - %s\n"
+msgstr "cupsaddsmb: nie można połączyć się z serwerem %s\" dla %s - %s\n"
+
+#, c-format
+msgid "cupsaddsmb: No PPD file for printer \"%s\" - skipping!\n"
+msgstr "cupsaddsmb: brak pliku PPD dla drukarki \"%s\" - pomijanie!\n"
+
+#, c-format
+msgid "cupsaddsmb: get-printer-attributes failed for \"%s\": %s\n"
+msgstr "cupsaddsmb: get-printer-attributes nie powiodło się dla \"%s\": %s\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to convert PPD file for %s - %s\n"
+msgstr "cupsaddsmb: nie można przekonwertować pliku PPD dla %s - %s\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to copy Windows 2000 printer driver files (%d)!\n"
+msgstr ""
+"cupsaddsmb: nie można skopiować plików sterownika drukarki Windows 2000 (%"
+"d)!\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to copy CUPS printer driver files (%d)!\n"
+msgstr ""
+"cupsaddsmb: nie można skopiować plików sterownika drukarki CUPS (%d)!\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to install Windows 2000 printer driver files (%d)!\n"
+msgstr ""
+"cupsaddsmb: nie można zainstalować plików sterownika drukarki Windows 2000 (%"
+"d)!\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to copy Windows 9x printer driver files (%d)!\n"
+msgstr ""
+"cupsaddsmb:  nie można skopiować plików sterownika drukarki Windows 9x (%"
+"d)!\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to install Windows 9x printer driver files (%d)!\n"
+msgstr ""
+"cupsaddsmb: nie można zainstalować plików sterownika drukarki Windows 9x (%"
+"d)!\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to set Windows printer driver (%d)!\n"
+msgstr "cupsaddsmb: nie można ustawić sterownika drukarki 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 ""
+"Użycie: cupsaddsmb [opcje] drukarka1 ... drukarkaN\n"
+"       cupsaddsmb [opcje] -a\n"
+"\n"
+"Opcje:\n"
+"  -H serwer-samby  Używa nazwanego serwera Samby\n"
+"  -U użytkownik-samba    Uwierzytelnia używając nazwanego użytkownika Samby\n"
+"  -a               Eksportuje wszystkie drukarki\n"
+"  -h serwer-cups   Używa nazwanego serwera CUPS\n"
+"  -v               (wyświetla polecenia)\n"
+
+msgid "cupstestppd: The -q option is incompatible with the -v option.\n"
+msgstr "cupstestppd: opcja -q jest niezgodna z opcją -v.\n"
+
+msgid "cupstestppd: The -v option is incompatible with the -q option.\n"
+msgstr "cupstestppd: opcja -v jest niezgodna z opcją -q.\n"
+
+#, c-format
+msgid ""
+" FAIL\n"
+"      **FAIL**  Unable to open PPD file - %s\n"
+msgstr ""
+" ZAWIÓDŁ\n"
+"      **ZAWIÓDŁ**  Nie można otworzyć pliku PPD - %s\n"
+
+#, c-format
+msgid ""
+" FAIL\n"
+"      **FAIL**  Unable to open PPD file - %s on line %d.\n"
+msgstr ""
+" ZAWIÓDŁ\n"
+"      **ZAWIÓDŁ**  Nie można otworzyć pliku PPD - %s w wierszu %d.\n"
+
+msgid "                REF: Page 42, section 5.2.\n"
+msgstr "                REF: strona 42, sekcja 5.2.\n"
+
+msgid "                REF: Page 20, section 3.4.\n"
+msgstr "                REF: strona 20, sekcja 3.4.\n"
+
+msgid "                REF: Pages 45-46, section 5.2.\n"
+msgstr "                REF: strony 45-46, sekcja 5.2.\n"
+
+msgid "                REF: Pages 42-45, section 5.2.\n"
+msgstr "                REF: strony 42-45, sekcja 5.2.\n"
+
+msgid "                REF: Pages 48-49, section 5.2.\n"
+msgstr "                REF: strony 48-49, sekcja 5.2.\n"
+
+msgid "                REF: Pages 52-54, section 5.2.\n"
+msgstr "                REF: strony 52-54, sekcja 5.2.\n"
+
+msgid "                REF: Page 15, section 3.2.\n"
+msgstr "                REF: strona 15, sekcja 3.2.\n"
+
+msgid "                REF: Page 15, section 3.1.\n"
+msgstr "                REF: strona 15, sekcja 3.1.\n"
+
+msgid "                REF: Pages 16-17, section 3.2.\n"
+msgstr "                REF: strony 16-17, sekcja 3.2.\n"
+
+msgid "                REF: Page 19, section 3.3.\n"
+msgstr "                REF: strona 19, sekcja 3.3.\n"
+
+msgid "                REF: Page 27, section 3.5.\n"
+msgstr "                REF: strona 27, sekcja 3.5.\n"
+
+msgid ""
+"\n"
+"    DETAILED CONFORMANCE TEST RESULTS\n"
+msgstr ""
+"\n"
+"    SZCZEGÓŁOWE WYNIKI TESTU ZGODNOŚCI\n"
+
+#, c-format
+msgid "        WARN    %s has no corresponding options!\n"
+msgstr "        OSTRZEŻENIE    %s nie posiada odpowiadających opcji!\n"
+
+msgid " FAIL\n"
+msgstr " ZAWIÓDŁ\n"
+
+msgid ""
+"      **FAIL**  REQUIRED DefaultImageableArea\n"
+"                REF: Page 102, section 5.15.\n"
+msgstr ""
+"      **ZAWIÓDŁ**  WYMAGANE DefaultImageableArea\n"
+"                REF: strona 102, sekcja 5.15.\n"
+
+#, c-format
+msgid ""
+"      **FAIL**  BAD DefaultImageableArea %s!\n"
+"                REF: Page 102, section 5.15.\n"
+msgstr ""
+"      **ZAWIÓDŁ**  BŁĘDNE DefaultImageableArea %s!\n"
+"                REF: strona 102, sekcja 5.15.\n"
+
+msgid "        PASS    DefaultImageableArea\n"
+msgstr "        POWODZENIE    DefaultImageableArea\n"
+
+msgid ""
+"      **FAIL**  REQUIRED DefaultPaperDimension\n"
+"                REF: Page 103, section 5.15.\n"
+msgstr ""
+"      **ZAWIÓDŁ**  WYMAGANE DefaultPaperDimension\n"
+"                REF: strona 103, sekcja 5.15.\n"
+
+#, c-format
+msgid ""
+"      **FAIL**  BAD DefaultPaperDimension %s!\n"
+"                REF: Page 103, section 5.15.\n"
+msgstr ""
+"      **ZAWIÓDŁ**  BŁĘDNE DefaultPaperDimension %s!\n"
+"                REF: strona 103, sekcja 5.15.\n"
+
+msgid "        PASS    DefaultPaperDimension\n"
+msgstr "        POWODZENIE    DefaultPaperDimension\n"
+
+#, c-format
+msgid ""
+"      **FAIL**  BAD Default%s %s\n"
+"                REF: Page 40, section 4.5.\n"
+msgstr ""
+"      **ZAWIÓDŁ**  BŁĘDNE Default%s %s\n"
+"                REF: strona 40, sekcja 4.5.\n"
+
+#, c-format
+msgid "        PASS    Default%s\n"
+msgstr "        POWODZENIE    Default%s\n"
+
+#, c-format
+msgid ""
+"      **FAIL**  REQUIRED Default%s\n"
+"                REF: Page 40, section 4.5.\n"
+msgstr ""
+"      **ZAWIÓDŁ**  WYMAGANE Default%s\n"
+"                REF: strona 40, sekcja 4.5.\n"
+
+msgid "        PASS    FileVersion\n"
+msgstr "        POWODZENIE    FileVersion\n"
+
+msgid ""
+"      **FAIL**  REQUIRED FileVersion\n"
+"                REF: Page 56, section 5.3.\n"
+msgstr ""
+"      **ZAWIÓDŁ**  WYMAGANE FileVersion\n"
+"                REF: strona 56, sekcja 5.3.\n"
+
+msgid "        PASS    FormatVersion\n"
+msgstr "        POWODZENIE    FormatVersion\n"
+
+msgid ""
+"      **FAIL**  REQUIRED FormatVersion\n"
+"                REF: Page 56, section 5.3.\n"
+msgstr ""
+"      **ZAWIÓDŁ**  WYMAGANE FormatVersion\n"
+"                REF: strona 56, sekcja 5.3.\n"
+
+msgid "        PASS    LanguageEncoding\n"
+msgstr "        POWODZENIE    LanguageEncoding\n"
+
+msgid ""
+"      **FAIL**  REQUIRED LanguageEncoding\n"
+"                REF: Pages 56-57, section 5.3.\n"
+msgstr ""
+"      **ZAWIÓDŁ**  WYMAGANE LanguageEncoding\n"
+"                REF: strony 56-57, sekcja 5.3.\n"
+
+msgid "        PASS    LanguageVersion\n"
+msgstr "        POWODZENIE    LanguageVersion\n"
+
+msgid ""
+"      **FAIL**  REQUIRED LanguageVersion\n"
+"                REF: Pages 57-58, section 5.3.\n"
+msgstr ""
+"      **ZAWIÓDŁ**  WYMAGANE LanguageVersion\n"
+"                REF: strony 57-58, sekcja 5.3.\n"
+
+msgid ""
+"      **FAIL**  BAD Manufacturer (should be \"HP\")\n"
+"                REF: Page 211, table D.1.\n"
+msgstr ""
+"      **ZAWIÓDŁ**  BŁĘDNE Manufacturer (powinno być \"HP\")\n"
+"                REF: strona 211, tablica D.1.\n"
+
+msgid "        PASS    Manufacturer\n"
+msgstr "        POWODZENIE    Manufacturer\n"
+
+msgid ""
+"      **FAIL**  REQUIRED Manufacturer\n"
+"                REF: Pages 58-59, section 5.3.\n"
+msgstr ""
+"      **ZAWIÓDŁ**  WYMAGANE Manufacturer\n"
+"                REF: strony 58-59, sekcja 5.3.\n"
+
+#, c-format
+msgid ""
+"      **FAIL**  BAD ModelName - \"%c\" not allowed in string.\n"
+"                REF: Pages 59-60, section 5.3.\n"
+msgstr ""
+"      **ZAWIÓDŁ**  BŁĘDNE ModelName - \"%c\" nie jest zezwolone w sągu "
+"znaków.\n"
+"                REF: strony 59-60, sekcja 5.3.\n"
+
+msgid "        PASS    ModelName\n"
+msgstr "        POWODZENIE    ModelName\n"
+
+msgid ""
+"      **FAIL**  REQUIRED ModelName\n"
+"                REF: Pages 59-60, section 5.3.\n"
+msgstr ""
+"      **ZAWIÓDŁ**  WYMAGANE ModelName\n"
+"                REF: strony 59-60, sekcja 5.3.\n"
+
+msgid "        PASS    NickName\n"
+msgstr "        POWODZENIE    NickName\n"
+
+msgid ""
+"      **FAIL**  REQUIRED NickName\n"
+"                REF: Page 60, section 5.3.\n"
+msgstr ""
+"      **ZAWIÓDŁ**  WYMAGANE NickName\n"
+"                REF: strona 60, sekcja 5.3.\n"
+
+msgid "        PASS    PageSize\n"
+msgstr "        POWODZENIE    PageSize\n"
+
+msgid ""
+"      **FAIL**  REQUIRED PageSize\n"
+"                REF: Pages 99-100, section 5.14.\n"
+msgstr ""
+"      **ZAWIÓDŁ**  WYMAGANE PageSize\n"
+"                REF: strony 99-100, sekcja 5.14.\n"
+
+msgid "        PASS    PageRegion\n"
+msgstr "        POWODZENIE    PageRegion\n"
+
+msgid ""
+"      **FAIL**  REQUIRED PageRegion\n"
+"                REF: Page 100, section 5.14.\n"
+msgstr ""
+"      **ZAWIÓDŁ**  WYMAGANE PageRegion\n"
+"                REF: strona 100, sekcja 5.14.\n"
+
+msgid "        PASS    PCFileName\n"
+msgstr "        POWODZENIE    PCFileName\n"
+
+msgid ""
+"      **FAIL**  REQUIRED PCFileName\n"
+"                REF: Pages 61-62, section 5.3.\n"
+msgstr ""
+"      **ZAWIÓDŁ**  WYMAGANE PCFileName\n"
+"                REF: strony 61-62, sekcja 5.3.\n"
+
+msgid ""
+"      **FAIL**  BAD Product - not \"(string)\".\n"
+"                REF: Page 62, section 5.3.\n"
+msgstr ""
+"      ****  BŁĘDNE Product - nie jest \"(string)\".\n"
+"                REF: strona 62, sekcja 5.3.\n"
+
+msgid "        PASS    Product\n"
+msgstr "        PASS    Product\n"
+
+msgid ""
+"      **FAIL**  REQUIRED Product\n"
+"                REF: Page 62, section 5.3.\n"
+msgstr ""
+"      **ZAWIÓDŁ**  WYMAGANE Product\n"
+"                REF: strona 62, sekcja 5.3.\n"
+
+msgid ""
+"      **FAIL**  BAD PSVersion - not \"(string) int\".\n"
+"                REF: Pages 62-64, section 5.3.\n"
+msgstr ""
+"      **ZAWIÓDŁ**  BŁĘDNE PSVersion - nie jest \"(string) int\".\n"
+"                REF: strony 62-64, sekcja 5.3.\n"
+
+msgid "        PASS    PSVersion\n"
+msgstr "        POWODZENIE    PSVersion\n"
+
+msgid ""
+"      **FAIL**  REQUIRED PSVersion\n"
+"                REF: Pages 62-64, section 5.3.\n"
+msgstr ""
+"      **ZAWIÓDŁ**  WYMAGANE PSVersion\n"
+"                REF: strony 62-64, sekcja 5.3.\n"
+
+msgid ""
+"      **FAIL**  BAD ShortNickName - longer than 31 chars.\n"
+"                REF: Pages 64-65, section 5.3.\n"
+msgstr ""
+"      **ZAWIÓDŁ**  BŁĘDNE ShortNickName - dłuższe niż 31 znaków.\n"
+"                REF: strony 64-65, sekcja 5.3.\n"
+
+msgid "        PASS    ShortNickName\n"
+msgstr "        POWODZENIE    ShortNickName\n"
+
+msgid ""
+"      **FAIL**  REQUIRED ShortNickName\n"
+"                REF: Page 64-65, section 5.3.\n"
+msgstr ""
+"      **ZAWIÓDŁ**  WYMAGANE ShortNickName\n"
+"                REF: strony 64-65, sekcja 5.3.\n"
+
+msgid ""
+"      **FAIL**  BAD JobPatchFile attribute in file\n"
+"                REF: Page 24, section 3.4.\n"
+msgstr ""
+"      **ZAWIÓDŁ**  BŁĘDNE JobPatchFile właściwość w pliku\n"
+"                REF: strona 24, sekcja 3.4.\n"
+
+msgid ""
+"      **FAIL**  REQUIRED PageSize\n"
+"                REF: Page 41, section 5.\n"
+"                REF: Page 99, section 5.14.\n"
+msgstr ""
+"      **ZAWIÓDŁ**  WYMAGANE PageSize\n"
+"                REF: strona 41, sekcja 5.\n"
+"                REF: strona 99, sekcja 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 ""
+"      **ZAWIÓDŁ**  WYMAGANE ImageableArea for PageSize %s\n"
+"                REF: strona 41, sekcja 5.\n"
+"                REF: strona 102, sekcja 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 ""
+"      **ZAWIÓDŁ**  WYMAGANE PaperDimension dla PageSize %s\n"
+"                REF: strona 41, sekcja 5.\n"
+"                REF: strona 103, sekcja 5.15.\n"
+
+#, c-format
+msgid ""
+"      **FAIL**  Bad %s choice %s!\n"
+"                REF: Page 84, section 5.9\n"
+msgstr ""
+"      **ZAWIÓDŁ**  Błędny %s wybór %s %s!\n"
+"                REF: strona 84, sekcja 5.9\n"
+
+#, c-format
+msgid ""
+"      **FAIL**  REQUIRED %s does not define choice None!\n"
+"                REF: Page 122, section 5.17\n"
+msgstr ""
+"      **ZAWIÓDŁ**  WYMAGANE %s nie określa braku wyboru!\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 ""
+"      **ZAWIÓDŁ**  Błędny %s wybór %s!\n"
+"                REF: strona 122, sekcja 5.17\n"
+
+msgid " PASS\n"
+msgstr " POWODZENIE\n"
+
+#, c-format
+msgid ""
+"        WARN    Duplex option keyword %s should be named Duplex or "
+"JCLDuplex!\n"
+"                REF: Page 122, section 5.17\n"
+msgstr ""
+"        OSTRZEŻENIE    Nazwa słowa kluczowego dupleksu %s powinna być "
+"nazwana Duplex lub JCLDuplex!\n"
+"                REF: strona 122, sekcja 5.17\n"
+
+msgid "        WARN    Default choices conflicting!\n"
+msgstr "        OSTRZEŻENIE    Konfliktowe domyślne wybory!\n"
+
+#, c-format
+msgid ""
+"        WARN    Obsolete PPD version %.1f!\n"
+"                REF: Page 42, section 5.2.\n"
+msgstr ""
+"        OSTRZEŻENIE    Przestarzała wersja PPD %.1f!\n"
+"                REF: strona 42, sekcja 5.2.\n"
+
+msgid ""
+"        WARN    LanguageEncoding required by PPD 4.3 spec.\n"
+"                REF: Pages 56-57, section 5.3.\n"
+msgstr ""
+"        OSTRZEŻENIE    LanguageEncoding jest wymagane przez specyfikację PPD "
+"4.3.\n"
+"                REF: strony 56-57, sekcja 5.3.\n"
+
+msgid ""
+"        WARN    Manufacturer required by PPD 4.3 spec.\n"
+"                REF: Pages 58-59, section 5.3.\n"
+msgstr ""
+"        OSTRZEŻENIE    Manufacturer jest wymagane przez specyfikację PPD "
+"4.3.\n"
+"                REF: strony 58-59, sekcja 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 ""
+"        OSTRZEŻENIE    PCFileName dłuższe niż 8.3 narusza specyfikację PPD.\n"
+"                REF: strony 61-62, sekcja 5.3.\n"
+
+msgid ""
+"        WARN    ShortNickName required by PPD 4.3 spec.\n"
+"                REF: Pages 64-65, section 5.3.\n"
+msgstr ""
+"        OSTRZEŻENIE    ShortNickName jest wymagane przez specyfikację PPD "
+"4.3.\n"
+"                REF: strony 64-65, sekcja 5.3.\n"
+
+msgid ""
+"        WARN    Protocols contains both PJL and BCP; expected TBCP.\n"
+"                REF: Pages 78-79, section 5.7.\n"
+msgstr ""
+"        OSTRZEŻENIE    Protokoły zawierają zarówno PJL jak i BCP, oczekiwano "
+"TBCP.\n"
+"                REF: strony 78-79, sekcja 5.7.\n"
+
+msgid ""
+"        WARN    Protocols contains PJL but JCL attributes are not set.\n"
+"                REF: Pages 78-79, section 5.7.\n"
+msgstr ""
+"        OSTRZEŻENIE    Protokoły zawierają PJL, ale właściwości JCL nie są "
+"ustawione.\n"
+"                REF: strony 78-79, sekcja 5.7.\n"
+
+#, c-format
+msgid ""
+"        WARN    %s shares a common prefix with %s\n"
+"                REF: Page 15, section 3.2.\n"
+msgstr ""
+"        OSTRZEŻENIE    %s współdzieli wspólny przedrostek z %s %s\n"
+"                REF: strona 15, sekcja 3.2.\n"
+
+#, c-format
+msgid "    %d ERROR%s FOUND\n"
+msgstr "    ZNALEZIONO %d BŁĘDÓW%s\n"
+
+msgid "    NO ERRORS FOUND\n"
+msgstr "    NIE ZNALEZIONO BŁĘDÓW\n"
+
+#, c-format
+msgid ""
+"        WARN    \"%s %s\" conflicts with \"%s %s\"\n"
+"                (constraint=\"%s %s %s %s\")\n"
+msgstr ""
+"        OSTRZEŻENIE    \"%s %s\" jest w konflikcie z \"%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 ""
+"Użycie: cupstestppd [-q] [-r] [-v[v]] nazwapliku1.ppd[.gz] [... nazwaplikuN."
+"ppd[.gz]]\n"
+"       program | cupstestppd [-q] [-r] [-v[v]] -\n"
+
+msgid "lpstat: Need \"completed\" or \"not-completed\" after -W!\n"
+msgstr "lpstat: wymagane jest \"completed\" lub \"not-completed\" po -W!\n"
+
+msgid "lpstat: The -b option requires a destination argument.\n"
+msgstr "lpstat: opcja -b wymaga argumentu docelowego.\n"
+
+msgid "Error: need hostname after '-h' option!\n"
+msgstr "Błąd: wymagana jest nazwa komputera po opcji \"-h\"!\n"
+
+#, c-format
+msgid "lpstat: Unknown option '%c'!\n"
+msgstr "lpstat: nieznana opcja \"%c\"!\n"
+
+#, c-format
+msgid "lpstat: Invalid destination name in list \"%s\"!\n"
+msgstr "lpstat: nieprawidłowa nazwa celu na liście \"%s\"!\n"
+
+#, c-format
+msgid "lpstat: Unknown destination \"%s\"!\n"
+msgstr "lpstat: nieznany cel \"%s\"!\n"
+
+#, c-format
+msgid "lpstat: Unable to connect to server %s on port %d: %s\n"
+msgstr "lpstat: nie można połączyć się z serwerem %s na porcie %d: %s\n"
+
+#, c-format
+msgid "lpstat: get-printers failed: %s\n"
+msgstr "lpstat: get-printers nie powiodło się: %s\n"
+
+#, c-format
+msgid "%s accepting requests since Jan 01 00:00\n"
+msgstr "%s zaakceptowanych żądań od stycznia 01 00:00"
+
+#, c-format
+msgid ""
+"%s not accepting requests since Jan 01 00:00 -\n"
+"\t%s\n"
+msgstr ""
+"%s nie zaakceptowanych żądań od stycznia 01 00:00 -\n"
+"\t%s\n"
+
+#, c-format
+msgid "%s/%s accepting requests since Jan 01 00:00\n"
+msgstr "%s/%s zaakceptowanych żądań od stycznia 01 00:00\n"
+
+#, c-format
+msgid ""
+"%s/%s not accepting requests since Jan 01 00:00 -\n"
+"\t%s\n"
+msgstr ""
+"%s/%s nie zaakceptowanych żądań od stycznia 01 00:00 -\n"
+"\t%s\n"
+
+#, c-format
+msgid "lpstat: get-classes failed: %s\n"
+msgstr "lpstat: get-classes nie powiodło się: %s\n"
+
+#, c-format
+msgid "members of class %s:\n"
+msgstr "elementy klasy %s:\n"
+
+#, c-format
+msgid "system default destination: %s/%s\n"
+msgstr "domyślny cel systemowy: %s/%s\n"
+
+#, c-format
+msgid "system default destination: %s\n"
+msgstr "domyślny cel systemowy: %s\n"
+
+#, c-format
+msgid ""
+"lpstat: error - %s environment variable names non-existent destination \"%s"
+"\"!\n"
+msgstr ""
+"lpstat: błąd - %s nazw zmiennych środowiskowych z nieistniejącym celem \"%s"
+"\"!\n"
+
+msgid "no system default destination\n"
+msgstr "brak domyślnego celu systemowego\n"
+
+#, c-format
+msgid "Output for printer %s is sent to remote printer %s on %s\n"
+msgstr "Wyjście dla drukarki % zostało wysłane do zdalnej drukarki %s na %s\n"
+
+#, c-format
+msgid "Output for printer %s is sent to %s\n"
+msgstr "Wyjście dla drukarki % zostało wysłane do %s\n"
+
+#, c-format
+msgid "Output for printer %s/%s is sent to remote printer %s on %s\n"
+msgstr ""
+"Wyjście dla drukarki %/%s zostało wysłane do zdalnej drukarki %s na %s\n"
+
+#, c-format
+msgid "Output for printer %s/%s is sent to %s\n"
+msgstr "Wyjście dla drukarki %/%s zostało wysłane do %s\n"
+
+#, c-format
+msgid "device for %s: %s\n"
+msgstr "urządzenie dla %s: %s\n"
+
+#, c-format
+msgid "device for %s/%s: %s\n"
+msgstr "urządzenie dla %s/%s: %s\n"
+
+#, c-format
+msgid "lpstat: get-jobs failed: %s\n"
+msgstr "lpstat: get-jobs nie powiodło się: %s\n"
+
+#, c-format
+msgid "\tqueued for %s\n"
+msgstr "\tzakolejkowane dla%s\n"
+
+#, c-format
+msgid "printer %s is idle.  enabled since %s\n"
+msgstr "drukarka %s jest bezczynna. włączona od %s\n"
+
+#, c-format
+msgid "printer %s now printing %s-%d.  enabled since %s\n"
+msgstr "drukarka %s drukuje teraz %s-%d. włączona od %s\n"
+
+#, c-format
+msgid "printer %s disabled since %s -\n"
+msgstr "drukarka %s jest wyłączona od %s -\n"
+
+msgid "\treason unknown\n"
+msgstr "\tnieznana przyczyna\n"
+
+msgid ""
+"\tForm mounted:\n"
+"\tContent types: any\n"
+"\tPrinter types: unknown\n"
+msgstr ""
+"\tZamontowana od:\n"
+"\tTypy zawartości: każde\n"
+"\tTypy drukarek: nieznane\n"
+
+#, c-format
+msgid "\tDescription: %s\n"
+msgstr "\tOpis: %s\n"
+
+msgid "\tAlerts:"
+msgstr "\tAlarmy:"
+
+#, c-format
+msgid "\tLocation: %s\n"
+msgstr "\tPołożenie: %s\n"
+
+msgid "\tConnection: remote\n"
+msgstr "\tPołączenie: zdalne\n"
+
+#, c-format
+msgid "\tInterface: %s.ppd\n"
+msgstr "\tInterfejs: %s.ppd\n"
+
+msgid "\tConnection: direct\n"
+msgstr "\tPołączenie: bezpośrednie\n"
+
+#, c-format
+msgid "\tInterface: %s/interfaces/%s\n"
+msgstr "\tInterfejs: %s/interfejsy/%s\n"
+
+#, c-format
+msgid "\tInterface: %s/ppd/%s.ppd\n"
+msgstr "\tInterfejs: %s/ppd/%s.ppd\n"
+
+msgid "\tOn fault: no alert\n"
+msgstr "\tPrzy niepowodzeniu: brak alarmu\n"
+
+msgid "\tAfter fault: continue\n"
+msgstr "\tPo niepowodzeniu: kontynuuj\n"
+
+msgid "\tUsers allowed:\n"
+msgstr "\tZezwoleni użytkownicy:\n"
+
+msgid "\tUsers denied:\n"
+msgstr "\tZabronieni użytkownicy:\n"
+
+msgid "\t\t(all)\n"
+msgstr "\t\t(wszystko)\n"
+
+msgid "\tForms allowed:\n"
+msgstr "\tZezwolone formy:\n"
+
+msgid "\t\t(none)\n"
+msgstr "\t\t(brak)\n"
+
+msgid "\tBanner required\n"
+msgstr "\tBanner jest wymagany\n"
+
+msgid "\tCharset sets:\n"
+msgstr "\tZestawy znaków:\n"
+
+msgid "\tDefault pitch:\n"
+msgstr "\tDomyślny stopień:\n"
+
+msgid "\tDefault page size:\n"
+msgstr "\tDomyślny rozmiar strony:\n"
+
+msgid "\tDefault port settings:\n"
+msgstr "\tDomyślne ustawienia portu:\n"
+
+#, c-format
+msgid "printer %s/%s is idle.  enabled since %s\n"
+msgstr "drkarka %s/%s jest bezczynna. włączona od %s\n"
+
+#, c-format
+msgid "printer %s/%s now printing %s-%d.  enabled since %s\n"
+msgstr "drukarka %s/%s drukuje teraz %s-%d. włączona od %s\n"
+
+#, c-format
+msgid "printer %s/%s disabled since %s -\n"
+msgstr "drukarka %s/%s jest wyłączona od %s -\n"
+
+msgid "scheduler is running\n"
+msgstr "planista jest uruchomiony\n"
+
+msgid "scheduler is not running\n"
+msgstr "planista nie jest uruchomiony"
+
+#, c-format
+msgid "lpadmin: Unable to connect to server: %s\n"
+msgstr "lpadmin: nie można połączyć się do serwera: %s\n"
+
+msgid ""
+"lpadmin: Unable to add a printer to the class:\n"
+"         You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: nie można dodać drukarki do klasy:\n"
+"         Najpierw musi zostać określona nazwa drukarki!\n"
+
+msgid "lpadmin: Expected class name after '-c' option!\n"
+msgstr "lpadmin: oczekiwana nazwa klasy po opcji \"-c\"!\n"
+
+msgid "lpadmin: Class name can only contain printable characters!\n"
+msgstr "lpadmin: nazwa klasy może zawierać tylko drukowalne znaki!\n"
+
+msgid "lpadmin: Expected printer name after '-d' option!\n"
+msgstr "lpadmin: oczekiwana nazw drukarki po opcji \"-d\"!\n"
+
+msgid "lpadmin: Printer name can only contain printable characters!\n"
+msgstr "lpadmin: nazwa drukaki może zawierać tylko drukowalne znaki!\n"
+
+msgid "lpadmin: Expected hostname after '-h' option!\n"
+msgstr "lpadmin: oczekiwana nazwa komputera po opcji \"-h\"!\n"
+
+msgid ""
+"lpadmin: Unable to set the interface script:\n"
+"         You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: nie można ustawić skryptu interfejsu:\n"
+"         Najpierw musi zostać określona nazwa drukarki!\n"
+
+msgid "lpadmin: Expected interface after '-i' option!\n"
+msgstr "lpadmin: oczekiwany interfejs po opcji \"-i\"!\n"
+
+msgid ""
+"lpadmin: Unable to set the interface script or PPD file:\n"
+"         You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: nie można ustawić skrypt interfejsu lub pliku PPD:\n"
+"         Najpierw musi zostać określona nazwa drukarki!\n"
+
+msgid "lpadmin: Expected model after '-m' option!\n"
+msgstr "lpadmin: oczekiwany model po opcji \"-m\"!\n"
+
+msgid "lpadmin: Expected name=value after '-o' option!\n"
+msgstr "lpadmin: oczekiwana nazwa=wartość po opcji \"-o\"!\n"
+
+msgid "lpadmin: Expected printer after '-p' option!\n"
+msgstr "lpadmin: oczekiwana drukarka po opcji \"-p\"!\n"
+
+msgid ""
+"lpadmin: Unable to remove a printer from the class:\n"
+"         You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: nie można usunąć drukarki z klasy:\n"
+"         Najpierw musi zostać określona nazwa drukarki!\n"
+
+msgid "lpadmin: Expected class after '-r' option!\n"
+msgstr "lpadmin: oczekiwana klasa po opcji \"-r\"!\n"
+
+msgid "lpadmin: Expected allow/deny:userlist after '-u' option!\n"
+msgstr "lpadmin: oczekiwane allow/deny:userlist po opcji \"-u\"!\n"
+
+#, c-format
+msgid "lpadmin: Unknown allow/deny option \"%s\"!\n"
+msgstr "lpadmin: nieznana opcja zezwól/zabroń \"%s\"!\n"
+
+msgid ""
+"lpadmin: Unable to set the device URI:\n"
+"         You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: nie można ustawić URI urządzenia:\n"
+"         Najpierw musi zostać określona nazwa drukarki!\n"
+
+msgid "lpadmin: Expected device URI after '-v' option!\n"
+msgstr "lpadmin: oczekiwane URI urządzenia po opcji \"-v\"!\n"
+
+msgid "lpadmin: Expected printer or class after '-x' option!\n"
+msgstr "lpadmin: oczekiwana drukarka lub klasa po opcji \"-x\"!\n"
+
+msgid ""
+"lpadmin: Unable to set the printer description:\n"
+"         You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: Unable to set the printer description:\n"
+"         Najpierw musi zostać określona nazwa drukarki!\n"
+
+msgid "lpadmin: Expected description after '-D' option!\n"
+msgstr "lpadmin: oczekiwany opis po pocji \"-D\"!\n"
+
+msgid "lpadmin: Expected file type(s) after '-I' option!\n"
+msgstr "lpadmin: oczekiwane typy plików po opcji \"-I\"!\n"
+
+msgid "lpadmin: Warning - content type list ignored!\n"
+msgstr "lpadmin: ostrzeżenie - lista typów zawartości została zignorowana!\n"
+
+msgid ""
+"lpadmin: Unable to set the printer location:\n"
+"         You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: nie można ustawić położenia drukarki:\n"
+"         Najpierw musi zostać określona nazwa drukarki!\n"
+
+msgid "lpadmin: Expected location after '-L' option!\n"
+msgstr "lpadmin: oczekiwane położenie po opcji \"-L\"!\n"
+
+msgid ""
+"lpadmin: Unable to set the PPD file:\n"
+"         You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: nie można ustawić pliku PPD:\n"
+"         Najpierw musi zostać określona nazwa drukarki!\n"
+
+msgid "lpadmin: Expected PPD after '-P' option!\n"
+msgstr "lpadmin: oczekiwany PPD po opcji \"-P\"!\n"
+
+#, c-format
+msgid "lpadmin: Unknown option '%c'!\n"
+msgstr "lpadmin: nieznana opcja \"%c\"!\n"
+
+#, c-format
+msgid "lpadmin: Unknown argument '%s'!\n"
+msgstr "lpadmin: nieznany argument \"%s\"!\n"
+
+msgid ""
+"lpadmin: Unable to set the printer options:\n"
+"         You must specify a printer name first!\n"
+msgstr ""
+"lpadmin: nie można ustawić opcji drukarki:\n"
+"         Najpierw musi zostać określona nazwa drukarki!\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 ""
+"Użycie:\n"
+"\n"
+"    lpadmin [-h serwer] -d cel\n"
+"    lpadmin [-h serwer] -x cel\n"
+"    lpadmin [-h serwer] -p drukarka [-c dodaj-klasę] [-i interfejs] [-m "
+"model]\n"
+"                       [-r usuń-klasę] [-v urządzenie] [-D opis]\n"
+"                       [-P plik-ppd] [-o nazwa=wartość]\n"
+"                       [-u zezwól:użytkownik,użytkownik] [-u zabroń:"
+"użytkownik,użytkownik]\n"
+"\n"
+
+#, c-format
+msgid "lpadmin: Unable to create temporary file: %s\n"
+msgstr "lpadmin: nie można utworzyć pliku tymczasowego: %s\n"
+
+#, c-format
+msgid "lpadmin: Unable to open file \"%s\": %s\n"
+msgstr "lpadmin: nie można otworzyć pliku \"%s\": %s\n"
+
+#, c-format
+msgid "lpadmin: add-printer (set model) failed: %s\n"
+msgstr "lpadmin: add-printer (ustawienie modelu) nie powiodło się: %s\n"
+
+#, c-format
+msgid "lpadmin: add-printer (set description) failed: %s\n"
+msgstr "lpadmin: add-printer (ustawienie opisu) nie powiodło się: %s\n"
+
+#, c-format
+msgid "lpadmin: add-printer (set location) failed: %s\n"
+msgstr "lpadmin: add-printer (ustawienie położenia) nie powiodło się: %s\n"
+
+#, c-format
+msgid "lpadmin: Unable to create temporary file - %s\n"
+msgstr "lpadmin: nie można utworzyć pliku tymczasowego - %s\n"
+
+#, c-format
+msgid "lpadmin: Unable to open PPD file \"%s\" - %s\n"
+msgstr "lpadmin: nie można utworzyć pliku PPD \"%s\" - %s\n"
+
+#, c-format
+msgid "lpadmin: %s failed: %s\n"
+msgstr "lpadmin: %s nie powiodło się: %s\n"
+
+msgid "lp: Expected destination after -d option!\n"
+msgstr "lp: oczekiwany cel po opcji -d!\n"
+
+msgid "lp: Expected form after -f option!\n"
+msgstr "lp: oczekiwana forma po opcji -f!\n"
+
+msgid "lp: Expected hostname after -h option!\n"
+msgstr "lp: oczekiwana nazwa komputera po opcji -h!\n"
+
+msgid "lp: Expected job ID after -i option!\n"
+msgstr "lp: oczekiwany ID zadania po opcji -i!\n"
+
+msgid "lp: Error - cannot print files and alter jobs simultaneously!\n"
+msgstr ""
+"lp: błąd - nie można jednocześnie drukować plików i zmieniać zadania!\n"
+
+msgid "lp: Error - bad job ID!\n"
+msgstr "lp: błąd - błędne ID zadania!\n"
+
+msgid "lp: Expected copies after -n option!\n"
+msgstr "lp: oczekiwane kopie po opcji -n!\n"
+
+msgid "lp: Expected option string after -o option!\n"
+msgstr "lp: oczekiwany łańcuch opcji po opcji -o!\n"
+
+#, c-format
+msgid "lp: Expected priority after -%c option!\n"
+msgstr "lp: oczekiwany priorytet po opcji -%c!\n"
+
+msgid "lp: Priority must be between 1 and 100.\n"
+msgstr "lp: priorytet musi być między 1 a 100.\n"
+
+msgid "lp: Expected title after -t option!\n"
+msgstr "lp: oczekiwany tytuł po opcji -t!\n"
+
+msgid "lp: Expected mode list after -y option!\n"
+msgstr "lp: oczekiwana lista trybów po opcji -y!\n"
+
+msgid "lp: Warning - mode option ignored!\n"
+msgstr "lp: ostrzeżenie - opcja trybu została zignorowana!\n"
+
+msgid "lp: Expected hold name after -H option!\n"
+msgstr "lp: oczekiwana wstrzymana nazwa po opcji -H!\n"
+
+msgid "lp: Need job ID (-i) before \"-H restart\"!\n"
+msgstr "lp: wymagany ID zadania (-) przed \"-H restart\"!\n"
+
+msgid "lp: Expected page list after -P option!\n"
+msgstr "lp: oczekiwana lista stron po opcji -P!\n"
+
+msgid "lp: Expected character set after -S option!\n"
+msgstr "lp: oczekiwany zestaw znaków po opcji -S!\n"
+
+msgid "lp: Warning - character set option ignored!\n"
+msgstr "lp: ostrzeżenie - opcja zestawu znaków została zignorowana!\n"
+
+msgid "lp: Expected content type after -T option!\n"
+msgstr "lp: oczekiwany typ zawartości po opcji -T!\n"
+
+msgid "lp: Warning - content type option ignored!\n"
+msgstr "lp: ostrzeżenie - opcja typu zawartości została zignorowana!\n"
+
+#, c-format
+msgid "lp: Unknown option '%c'!\n"
+msgstr "lp: nieznana opcja \"%c\"!\n"
+
+msgid ""
+"lp: Error - cannot print from stdin if files or a job ID are provided!\n"
+msgstr ""
+"lp: błąd - nie można drukować ze standardowego wejścia, jeśli dostarczone są "
+"pliki lub ID zadania!\n"
+
+#, c-format
+msgid "lp: Unable to access \"%s\" - %s\n"
+msgstr "lp: nie można uzyskać dostępu do \"%s\" - %s\n"
+
+#, c-format
+msgid "lp: Too many files - \"%s\"\n"
+msgstr "lp: za dużo plików - \"%s\"\n"
+
+msgid "lp: error - no default destination available.\n"
+msgstr "lp: błąd - brak dostępnego domyślnego celu.\n"
+
+msgid "lp: error - scheduler not responding!\n"
+msgstr "lp: błąd - planista nie odpowiada!\n"
+
+#, c-format
+msgid "lp: unable to create temporary file \"%s\" - %s\n"
+msgstr "lp: nie można utworzyć pliku tymczasowego \"%s\" - %s\n"
+
+#, c-format
+msgid "lp: error - unable to write to temporary file \"%s\" - %s\n"
+msgstr "lp: błąd - nie można zapisać do pliku tymczasowego \"%s\" - %s\n"
+
+msgid "lp: stdin is empty, so no job has been sent.\n"
+msgstr ""
+"lp: standardowe wejście jest puste, więc żadne zadanie nie zostało wysłane.\n"
+
+#, c-format
+msgid "lp: unable to print file: %s\n"
+msgstr "lp: nie można wydrukować pliku: %s\n"
+
+#, c-format
+msgid "request id is %s-%d (%d file(s))\n"
+msgstr "ID żądania to %s-%d (%d plików)\n"
+
+#, c-format
+msgid "lp: restart-job failed: %s\n"
+msgstr "lp: restart-job nie powiodło się: %s\n"
+
+#, c-format
+msgid "lp: set-job-attributes failed: %s\n"
+msgstr "lp: set-job-attributes nie powiodło się: %s\n"
+
+#, c-format
+msgid "lpinfo: Unable to connect to server: %s\n"
+msgstr "lpinfo: nie można połączyć się do serwera: %s\n"
+
+#, c-format
+msgid "lpinfo: Unknown option '%c'!\n"
+msgstr "lpinfo: nieznana opcja \"%c\"!\n"
+
+#, c-format
+msgid "lpinfo: Unknown argument '%s'!\n"
+msgstr "lpinfo: nieznany argument \"%s\"!\n"
+
+#, c-format
+msgid "lpinfo: cups-get-devices failed: %s\n"
+msgstr "lpinfo: cups-get-devices nie powiodło się: %s\n"
+
+#, c-format
+msgid ""
+"Device: uri = %s\n"
+"        class = %s\n"
+"        info = %s\n"
+"        make-and-model = %s\n"
+msgstr ""
+"Urządzenie: uri = %s\n"
+"        class = %s\n"
+"        info = %s\n"
+"        make-and-model = %s\n"
+
+#, c-format
+msgid "lpinfo: cups-get-ppds failed: %s\n"
+msgstr "lpinfo: cups-get-ppds nie powiodło się: %s\n"
+
+#, c-format
+msgid ""
+"Model:  name = %s\n"
+"        natural_language = %s\n"
+"        make-and-model = %s\n"
+msgstr ""
+"Model:  name = %s\n"
+"        natural_language = %s\n"
+"        make-and-model = %s\n"
+
+#, c-format
+msgid "lpmove: Unknown option '%c'!\n"
+msgstr "lpmove: nieznana opcja \"%c\"!\n"
+
+#, c-format
+msgid "lpmove: Unknown argument '%s'!\n"
+msgstr "lpmove: nieznany argument \"%s\"!\n"
+
+msgid "Usage: lpmove job dest\n"
+msgstr "Użycie: lpmove zadanie cel"
+
+#, c-format
+msgid "lpmove: Unable to connect to server: %s\n"
+msgstr "lpmove: nie można połączyć się z serwerem: %s\n"
+
+#, c-format
+msgid "lpmove: move-job failed: %s\n"
+msgstr "lpmove: move-job nie powiodło się: %s\n"
+
+msgid "lpoptions: Unknown printer or class!\n"
+msgstr "lpoptions: nieznana drukarka lub klasa!\n"
+
+msgid "lpoptions: No printers!?!\n"
+msgstr "lpoptions: brak drukarek?!?\n"
+
+#, c-format
+msgid "lpoptions: Unable to add printer or instance: %s\n"
+msgstr "lpoptions: nie można dodać drukarki lub przykładu: %s\n"
+
+#, c-format
+msgid "lpoptions: Destination %s has no PPD file!\n"
+msgstr "lpopotions: cel %s nie posiada pliku PPD!\n"
+
+#, c-format
+msgid "lpoptions: Unable to open PPD file for %s!\n"
+msgstr "lpoptions: nie można otworzyć pliku PPD dla %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 ""
+"Użycie: lpoptions [-h serwer] [-E] -d drukarka\n"
+"       lpoptions [-h serwer] [-E] [-p drukarka] -l\n"
+"       lpoptions [-h serwer] [-E] -p drukarka -o opcja[=wartość] ...\n"
+"       lpoptions [-h serwer] [-E] -x drukarka\n"
+
+msgid "lppasswd: Only root can add or delete passwords!\n"
+msgstr "lppasswd: tylko root może dodać lub usunąć hasła!\n"
+
+msgid "Enter old password:"
+msgstr "Podaj stare hasło:"
+
+#, c-format
+msgid "lppasswd: Unable to copy password string: %s\n"
+msgstr "lppasswd: nie można skopiować łańcucha hasła: %s\n"
+
+msgid "Enter password:"
+msgstr "Podaj hasło:"
+
+msgid "Enter password again:"
+msgstr "Powtórz hasło:"
+
+msgid "lppasswd: Sorry, passwords don't match!\n"
+msgstr "lppasswd: przepraszam, hasła się nie zgadzają!\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: przepraszam, hasło zostało odrzucone.\n"
+"Hasło musi mieć co najmniej 6 znaków, nie może zawierać nazwy\n"
+"użytkownika i musi zawierać co najmniej jedną literę i liczbę.\n"
+
+msgid "lppasswd: Password file busy!\n"
+msgstr "lppasswd: plik hasła jest zajęty!\n"
+
+#, c-format
+msgid "lppasswd: Unable to open password file: %s\n"
+msgstr "lppasswd: nie można otworzyć pliku hasła: %s\n"
+
+#, c-format
+msgid "lppasswd: Unable to write to password file: %s\n"
+msgstr "lppasswd: nie można zapisać do pliku hasła: %s\n"
+
+#, c-format
+msgid "lppasswd: user \"%s\" and group \"%s\" do not exist.\n"
+msgstr "lppasswd: użytkownik \"%s\" i grupa \"%s\" nie istnieją.\n"
+
+msgid "lppasswd: Sorry, password doesn't match!\n"
+msgstr "lppasswd: przepraszam, hasła się nie zgadzają!\n"
+
+msgid "lppasswd: Password file not updated!\n"
+msgstr "lppasswd: plik hasła nie został zaktualizowany!\n"
+
+#, c-format
+msgid "lppasswd: failed to backup old password file: %s\n"
+msgstr ""
+"lppasswd: utworzenie kopii zapasowej starego pliku hasła nie powiodło się: %"
+"s\n"
+
+#, c-format
+msgid "lppasswd: failed to rename password file: %s\n"
+msgstr "lppasswd: zmiana nazwy pliku hasła nie powiodła się: %s\n"
+
+msgid "Usage: lppasswd [-g groupname]\n"
+msgstr "Użycie: lppasswd [-g nazwagrupy]\n"
+
+msgid ""
+"Usage: lppasswd [-g groupname] [username]\n"
+"       lppasswd [-g groupname] -a [username]\n"
+"       lppasswd [-g groupname] -x [username]\n"
+msgstr ""
+"Użycie: lppasswd [-g nazwagrupy] [nazwaużytkownika]\n"
+"       lppasswd [-g nazwagrupy] -a [nazwaużytkownika]\n"
+"       lppasswd [-g nazwagrupy] -x [nazwaużytkownika]\n"
+
+msgid "Start Printer"
+msgstr "Uruchom drukarkę"
+
+msgid "Stop Printer"
+msgstr "Zatrzymaj drukarkę"
+
+msgid "Start Class"
+msgstr "Uruchom klasę"
+
+msgid "Stop Class"
+msgstr "Zatrzymaj klasę"
+
+msgid "Accept Jobs"
+msgstr "Zaakceptuj zadania"
+
+msgid "Reject Jobs"
+msgstr "Odrzuć zadania"
+
+msgid "Purge Jobs"
+msgstr "Wyczyść zadania"
+
+msgid "Set As Default"
+msgstr "Ustaw jako domyślną"
+
+msgid "Administration"
+msgstr "Administracja"
+
+msgid "Modify Class"
+msgstr "Zmodyfikuj klasę"
+
+msgid "Add Class"
+msgstr "Dodaj klasę"
+
+msgid ""
+"The class name may only contain up to 127 printable characters and may not "
+"contain spaces, slashes (/), or the pound sign (#)."
+msgstr ""
+"Nazwa klasy może zawierać tylko do 127 drukowalnych znaków i nie może "
+"zawierać spacji, ukośników (/) lub znaku #."
+
+msgid "Unable to modify class:"
+msgstr "Nie można zmodyfikować klasy:"
+
+msgid "Unable to add class:"
+msgstr "Nie można dodać klasy:"
+
+msgid "Modify Printer"
+msgstr "Zmodyfikuj drukarkę"
+
+msgid "Add Printer"
+msgstr "Dodaj drukarkę"
+
+msgid ""
+"The printer name may only contain up to 127 printable characters and may not "
+"contain spaces, slashes (/), or the pound sign (#)."
+msgstr ""
+"Nazwa drukarki może zawierać tylko do 127 drukowalnych znaków i nie może "
+"zawierać spacji, ukośników (/) lub znaku #."
+
+msgid "Unable to get list of printer drivers:"
+msgstr "Nie można uzyskać listy sterowników drukarek:"
+
+msgid "Unable to modify printer:"
+msgstr "Nie można zmodyfikować drukarki:"
+
+msgid "Unable to add printer:"
+msgstr "Nie można dodać drukarki:"
+
+msgid "Set Printer Options"
+msgstr "Ustaw opcje drukarki"
+
+msgid "Missing form variable!"
+msgstr "Brakująca zmienna formy!"
+
+msgid "Unable to get PPD file!"
+msgstr "Nie można uzyskać pliku PPD!"
+
+msgid "Unable to open PPD file:"
+msgstr "Nie można otworzyć pliku PPD:"
+
+msgid "Banners"
+msgstr "Bannery"
+
+msgid "Starting Banner"
+msgstr "Uruchamianie bannerów"
+
+msgid "Ending Banner"
+msgstr "Zakończenie bannerów"
+
+msgid "Policies"
+msgstr "Polityki"
+
+msgid "Error Policy"
+msgstr "Błąd polityki"
+
+msgid "Operation Policy"
+msgstr "Polityka operacji"
+
+msgid "PS Binary Protocol"
+msgstr "Binarny protokół PS"
+
+msgid "None"
+msgstr "Brak"
+
+msgid "Unable to set options:"
+msgstr "Nie można ustawić opcji:"
+
+msgid "Change Settings"
+msgstr "Zmień ustawienia"
+
+msgid "Unable to change server settings:"
+msgstr "Nie można zmienić ustawień serwera:"
+
+msgid "Unable to upload cupsd.conf file:"
+msgstr "Nie można wysłać pliku cupsd.conf:"
+
+msgid "Edit Configuration File"
+msgstr "Edytuj plik konfiguracji"
+
+msgid "Unable to create temporary file:"
+msgstr "Nie można utworzyć pliku tymczasowego:"
+
+msgid "Unable to access cupsd.conf file:"
+msgstr "Nie można uzyskać dostępu do pliku cupsd.conf:"
+
+msgid "Unable to edit cupsd.conf files larger than 1MB!"
+msgstr "Nie można modyfikować plików cupsd.conf dłuższych niż 1MB!"
+
+msgid "Delete Class"
+msgstr "Usuń klasę"
+
+msgid "Unable to delete class:"
+msgstr "Nie można usunąć klasy:"
+
+msgid "Delete Printer"
+msgstr "Usuń drukarkę"
+
+msgid "Unable to delete printer:"
+msgstr "Nie można usunąć drukarki:"
+
+msgid "Export Printers to Samba"
+msgstr "Wyeksportuj drukarki do Samby"
+
+msgid "Unable to fork process!"
+msgstr "Nie można rozdzielić procesu!"
+
+msgid "Unable to connect to server!"
+msgstr "Nie można połączyć się do serwera!"
+
+msgid "Unable to get printer attributes!"
+msgstr "Nie można uzyskać właściwości drukarki!"
+
+msgid "Unable to convert PPD file!"
+msgstr "Nie można przekonwertować pliku PPD!"
+
+msgid "Unable to copy Windows 2000 printer driver files!"
+msgstr "Nie można skopiować plików sterownika drukarki Windows 2000!"
+
+msgid "Unable to install Windows 2000 printer driver files!"
+msgstr "Nie można zainstalować plików sterownika drukarki Windows 2000!"
+
+msgid "Unable to copy Windows 9x printer driver files!"
+msgstr "Nie można skopiować plików sterownika drukarki Windows 9x!"
+
+msgid "Unable to install Windows 9x printer driver files!"
+msgstr "Nie można zainstalować plików sterownika drukarki Windows 9x!"
+
+msgid "Unable to set Windows printer driver!"
+msgstr "Nie można ustawić sterownika drukarki Windows!"
+
+msgid "No printer drivers found!"
+msgstr "Nie znaleziono sterowników drukarki!"
+
+msgid "Unable to execute cupsaddsmb command!"
+msgstr "Nie można wykonać polecenia cupsaddsmb!"
+
+#, c-format
+msgid "cupsaddsmb failed with status %d"
+msgstr "cupsaddsmb nie powiodło się ze stanem %d"
+
+#, c-format
+msgid "cupsaddsmb crashed on signal %d"
+msgstr "cupsaddsmb wywalił się na sygnale %d"
+
+msgid "A Samba username is required to export printer drivers!"
+msgstr ""
+"Nazwa użytkownika Samby jest wymagana, aby wyeksportować sterowniki drukarek!"
+
+msgid "A Samba password is required to export printer drivers!"
+msgstr "Hasło Samby jest wymagany, aby wyeksportować sterowniki drukarek!"
+
+msgid "Unable to open cupsd.conf file:"
+msgstr "Nie można otworzyć pliku cupsd.conf:"
+
+msgid "Unable to change printer:"
+msgstr "Nie można zmienić drukarki:"
+
+msgid "Set Allowed Users"
+msgstr "Ustaw zezwolonych użytkowników"
+
+msgid "Unable to get printer attributes:"
+msgstr "Nie można uzyskać właściwości drukarki:"
+
+msgid "Set Publishing"
+msgstr "Ustaw publikowanie"
+
+msgid "Unable to change printer-is-shared attribute:"
+msgstr "Nie można zmienić właściwości printer-is-shared:"
+
+msgid "Classes"
+msgstr "Klasy"
+
+msgid "Unable to get class list:"
+msgstr "Nie można uzyskać listy klas:"
+
+msgid "Unable to get class status:"
+msgstr "Nie można uzyskać stanu klasy:"
+
+msgid "Move Job"
+msgstr "Przenieś zadanie"
+
+msgid "Unable to find destination for job!"
+msgstr "Nie można znaleźć celu dla zadania!"
+
+msgid "Move All Jobs"
+msgstr "Przenieś wszystkie zadania"
+
+msgid "Unable to move job"
+msgstr "Nie można przenieść zadania"
+
+msgid "Unable to move jobs"
+msgstr "Nie można przenieść zadań"
+
+msgid "Print Test Page"
+msgstr "Wypróbuj stronę próbną"
+
+msgid "Unable to print test page:"
+msgstr "Nie można wydrukować strony testowej:"
+
+msgid "Jobs"
+msgstr "Zadania"
+
+msgid "Job operation failed:"
+msgstr "Operacja zadania nie powiodła się:"
+
+msgid "Printers"
+msgstr "Drukarki"
+
+msgid "Unable to get printer list:"
+msgstr "Nie można uzyskać listy drukarek:"
+
+msgid "Unable to get printer status:"
+msgstr "Nie można uzyskać stanu drukarki:"
+
+msgid "OK"
+msgstr "OK"
+
+msgid "Unable to open PPD file"
+msgstr "Nie można otworzyć pliku PPD"
+
+msgid "NULL PPD file pointer"
+msgstr "PUSTY wskaźnik pliku PPD"
+
+msgid "Memory allocation error"
+msgstr "Błąd przydziału pamięci"
+
+msgid "Missing PPD-Adobe-4.x header"
+msgstr "Brakujący nagłówek PPD-Adobe-4.x"
+
+msgid "Missing value string"
+msgstr "Brakujący łańcuch wartości"
+
+msgid "Internal error"
+msgstr "Błąd wewnętrzny"
+
+msgid "Bad OpenGroup"
+msgstr "Błędne OpenGroup"
+
+msgid "OpenGroup without a CloseGroup first"
+msgstr "OpenGroup najpierw bez CloseGroup"
+
+msgid "Bad OpenUI/JCLOpenUI"
+msgstr "Błędne OpenUI/JCLOpenUI"
+
+msgid "OpenUI/JCLOpenUI without a CloseUI/JCLCloseUI first"
+msgstr "OpenUI/JCLOpenUI najpierw bez CloseUI/JCLCloseUI"
+
+msgid "Bad OrderDependency"
+msgstr "Błędne OrderDependency"
+
+msgid "Bad UIConstraints"
+msgstr "Błędne OrderDependency"
+
+msgid "Missing asterisk in column 1"
+msgstr "Brakująca gwiazdka w kolumnie 1"
+
+msgid "Line longer than the maximum allowed (255 characters)"
+msgstr "Wiersz dłuższy niż maksymalnie dozwolony (255 znaków)"
+
+msgid "Illegal control character"
+msgstr "Niedozwolony znak kontrolny"
+
+msgid "Illegal main keyword string"
+msgstr "Niedozwolony główny łańcuch słowa kluczowego"
+
+msgid "Illegal option keyword string"
+msgstr "Niedozwolony łańcuch słowa kluczowego opcji"
+
+msgid "Illegal translation string"
+msgstr "Niedozwolony łańcuch tłumaczenia"
+
+msgid "Illegal whitespace character"
+msgstr "Niedozwolony biały znak"
+
+msgid "Bad custom parameter"
+msgstr "Błędny własny parametr"
+
+msgid "Unknown"
+msgstr "Nieznane"
+
+msgid "Custom"
+msgstr "Własne"
+
+msgid "JCL"
+msgstr "JCL"
+
+msgid "No authentication information provided!"
+msgstr "Nie dostarczono informacji o uwierzytelnianiu!"
+
+#, c-format
+msgid "Password for %s required to access %s via SAMBA: "
+msgstr "Wymagane jest hasło dla %s, aby uzyskać dostęp do %s przez Sambę: "
+
+#, c-format
+msgid "Running command: %s %s -N -U '%s%%%s' -c '%s'\n"
+msgstr "Uruchomione polecenie: %s %s -N -U \"%s%%%s\" -c \"%s\"\n"
+
+#, c-format
+msgid "cupsaddsmb: Unable to run \"%s\": %s\n"
+msgstr "cupsaddsmb: nie można uruchomić \"%s\": %s\n"
+
+msgid "cupsaddsmb: No Windows printer drivers are installed!\n"
+msgstr "cupsaddsmb: nie ma zainstalowanych sterowników drukarek Windows!\n"
+
+msgid "cupsaddsmb: Warning, no Windows 2000 printer drivers are installed!\n"
+msgstr ""
+"cupsaddsmb: ostrzeżenie, nie ma zainstalowanych sterowników drukarek Windows "
+"2000!\n"
+
+#, c-format
+msgid "lpadmin: Printer %s is already a member of class %s.\n"
+msgstr "lpadmin: drukarka %s jest już elementem klasy %s.\n"
+
+msgid "lpadmin: No member names were seen!\n"
+msgstr "lpadmin: nie zobaczono żadnych nazw elementów!\n"
+
+#, c-format
+msgid "lpadmin: Printer %s is not a member of class %s.\n"
+msgstr "lpadmin: drukarka %s nie jest elementem klasy %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 ""
+"Urządzenie: uri = %s\n"
+"        class = %s\n"
+"        info = %s\n"
+"        make-and-model = %s\n"
+"        device-id = %s\n"
+
+#, c-format
+msgid ""
+"Model:  name = %s\n"
+"        natural_language = %s\n"
+"        make-and-model = %s\n"
+"        device-id = %s\n"
+msgstr ""
+"Model:  name = %s\n"
+"        natural_language = %s\n"
+"        make-and-model = %s\n"
+"        device-id = %s\n"
+
+msgid "Usage: lpmove job/src dest\n"
+msgstr "Użycie: lpmove zadanie/źródło cel\n"
+
+msgid "lpstat: Need \"completed\", \"not-completed\", or \"all\" after -W!\n"
+msgstr ""
+"lpstat: wymagane jest \"completed\", \"not-completed\" lub \"all\" po -W!\n"
+
+#, c-format
+msgid "%s accepting requests since %s\n"
+msgstr "%s zaakceptowanych żądań od %s\n"
+
+#, c-format
+msgid ""
+"%s not accepting requests since %s -\n"
+"\t%s\n"
+msgstr ""
+"%s nie zaakceptowanych żądań od %s -\n"
+"\t%s\n"
+
+#, c-format
+msgid "%s/%s accepting requests since %s\n"
+msgstr "%s/%s zaakceptowanych żądań od %s\n"
+
+#, c-format
+msgid ""
+"%s/%s not accepting requests since %s -\n"
+"\t%s\n"
+msgstr ""
+"%s/%s nie zaakceptowanych żądań od %s -\n"
+"\t%s\n"
+
+msgid "lpc> "
+msgstr "lpc> "
+
+#, c-format
+msgid "%s: Unable to contact server!\n"
+msgstr "%s: nie można skontaktować się z serwerem!\n"
+
+#, c-format
+msgid "%s: Error - expected username after '-U' option!\n"
+msgstr "%s: błąd - oczekiwana nazwa użytkownika po opcji \"-U\"!\n"
+
+#, c-format
+msgid "%s: Error - unknown destination \"%s/%s\"!\n"
+msgstr "%s: błąd - nieznany cel \"%s/%s\"!\n"
+
+#, c-format
+msgid "%s: Unknown destination \"%s\"!\n"
+msgstr "%: nieznany cel \"%s\"!\n"
+
+#, c-format
+msgid "%s: Error - expected hostname after '-h' option!\n"
+msgstr "%s: błąd - oczekiwana nazwa komputera po opcji \"-h\"!\n"
+
+#, c-format
+msgid ""
+"%s: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr ""
+"%s: błąd - %s nazw zmiennych środowiskowych z nieistniejącym celem \"%s\"!\n"
+
+#, c-format
+msgid "%s: error - no default destination available.\n"
+msgstr "%s: błąd - brak dostępnego domyślnego celu.\n"
+
+msgid ""
+"Usage: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]\n"
+msgstr ""
+"Użycie: lpq [-P cel] [-U nazwaużytkownika] [-h nazwakomputera[:port]] [-l] "
+"[+przerwanie]\n"
+
+#, c-format
+msgid "%s: Error - expected hostname after '-H' option!\n"
+msgstr "%s: błąd - oczekiwana nazwa komputera po opcji \"-H\"!\n"
+
+#, c-format
+msgid "%s: Error - expected value after '-%c' option!\n"
+msgstr "%s: błąd - oczekiwana wartość po opcji \"-%c\"!\n"
+
+#, c-format
+msgid ""
+"%s: Warning - '%c' format modifier not supported - output may not be "
+"correct!\n"
+msgstr ""
+"%s: ostrzeżenie - modyfikator formatu \"%c\" jest nieobsługiwany - wyjście "
+"może nie być prawidłowe!\n"
+
+#, c-format
+msgid "%s: error - expected option=value after '-o' option!\n"
+msgstr "%s: błąd - oczekiwana opcja=wartość po opcji \"-o\"!\n"
+
+#, c-format
+msgid "%s: Error - expected destination after '-P' option!\n"
+msgstr "%s: błąd - oczekiwany cel po opcji \"-P\"!\n"
+
+#, c-format
+msgid "%s: Error - expected copy count after '-#' option!\n"
+msgstr "%s: błąd - oczekiwany licznik kopii po opcji \"-#\"!\n"
+
+#, c-format
+msgid "%s: Error - expected name after '-%c' option!\n"
+msgstr "%s: błąd - oczekiwana nazwa po opcji \"-%c\"!\n"
+
+#, c-format
+msgid "%s: Error - unknown option '%c'!\n"
+msgstr "%s: błąd - nieznana opcja \"%c\"!\n"
+
+#, c-format
+msgid "%s: Error - unable to access \"%s\" - %s\n"
+msgstr "%s: błąd - nie można uzyskać dostępu do \"%s\" - %s\n"
+
+#, c-format
+msgid "%s: Error - too many files - \"%s\"\n"
+msgstr "%s: błąd - za dużo plików - \"%s\"\n"
+
+#, c-format
+msgid ""
+"%s: Error - %s environment variable names non-existent destination \"%s\"!\n"
+msgstr ""
+"%s: błąd - %s nazw zmiennych środowiskowych z nieistniejącym celem \"%s\"!\n"
+
+#, c-format
+msgid "%s: Error - no default destination available.\n"
+msgstr "%s: błąd - brak dostępnego domyślnego celu.\n"
+
+#, c-format
+msgid "%s: Error - scheduler not responding!\n"
+msgstr "%s: błąd - planista nie odpowiada!\n"
+
+#, c-format
+msgid "%s: Error - unable to create temporary file \"%s\" - %s\n"
+msgstr "%s: błąd - nie można utworzyć pliku tymczasowego \"%s\" - %s\n"
+
+#, c-format
+msgid "%s: Error - unable to write to temporary file \"%s\" - %s\n"
+msgstr "%s: błąd - nie można zapisać do pliku tymczasowego \"%s\" - %s\n"
+
+#, c-format
+msgid "%s: Error - stdin is empty, so no job has been sent.\n"
+msgstr ""
+"%s: błąd - standardowe wejście jest puste, więc żadne zadanie nie zostało "
+"wysłane.\n"
+
+#, c-format
+msgid "%s: Error - unknown destination \"%s\"!\n"
+msgstr "%s: błąd - nieznany cel \"%s\"!\n"
+
+#, c-format
+msgid "%s: Error - expected reason text after '-r' option!\n"
+msgstr "%s: błąd - oczekiwany tekst przyczyny po opcji \"-r\"!\n"
+
+#, c-format
+msgid "%s: Error - expected username after '-u' option!\n"
+msgstr "%s: błąd - oczekiwana nazwa komputera po opcji \"-u\"!\n"
+
+#, c-format
+msgid "%s: %s failed: %s\n"
+msgstr "%s: %s nie powiodło się: %s\n"
+
+#, c-format
+msgid "%s: Error - expected destination after '-d' option!\n"
+msgstr "%s: błąd - oczekiwany cel po opcji \"-d\"!\n"
+
+#, c-format
+msgid "%s: Error - expected form after '-f' option!\n"
+msgstr "%s: błąd - oczekiwana forma po opcji \"-f\"!\n"
+
+#, c-format
+msgid "%s: Warning - form option ignored!\n"
+msgstr "%s: ostrzeżenie - opcja formy została zignorowana!\n"
+
+#, c-format
+msgid "%s: Expected job ID after '-i' option!\n"
+msgstr "%s: oczekiwany ID zadania po opcji \"-i\"!\n"
+
+#, c-format
+msgid "%s: Error - cannot print files and alter jobs simultaneously!\n"
+msgstr ""
+"%s: błąd - nie można jednocześnie drukować plików i zmieniać zadania!\n"
+
+#, c-format
+msgid "%s: Error - bad job ID!\n"
+msgstr "%: błąd - błędny ID zadania!\n"
+
+#, c-format
+msgid "%s: Error - expected copies after '-n' option!\n"
+msgstr "%: błąd - oczekiwane kopie po opcji \"-n\"!\n"
+
+#, c-format
+msgid "%s: Error - expected option string after '-o' option!\n"
+msgstr "%s: błąd - oczekiwany łańcuch tekstowy opcji po opcji \"-o\"!\n"
+
+#, c-format
+msgid "%s: Error - expected priority after '-%c' option!\n"
+msgstr "%s: błąd - oczekiwany priorytet po opcji \"-%c\"!\n"
+
+#, c-format
+msgid "%s: Error - priority must be between 1 and 100.\n"
+msgstr "%s: błąd - priorytet musi być między 1 a 100.\n"
+
+#, c-format
+msgid "%s: Error - expected title after '-t' option!\n"
+msgstr "%s: błąd - oczekiwany tytuł po opcji \"-t\"!\n"
+
+#, c-format
+msgid "%s: Error - expected mode list after '-y' option!\n"
+msgstr "%s: błąd - oczekiwana lista trybów po opcji \"-y\"!\n"
+
+#, c-format
+msgid "%s: Warning - mode option ignored!\n"
+msgstr "%s: ostrzeżenie - opcja trybu została zignorowana!\n"
+
+#, c-format
+msgid "%s: Error - expected hold name after '-H' option!\n"
+msgstr "%s: błąd - oczekiwana wstrzymana nazwa po opcji \"-H\"!\n"
+
+#, c-format
+msgid "%s: Need job ID ('-i jobid') before '-H restart'!\n"
+msgstr "%s: wymagany jest ID zadania (\"-i idzadania\") po \"-H restart\"!"
+
+#, c-format
+msgid "%s: Error - expected page list after '-P' option!\n"
+msgstr "%: błąd - oczekiwana lista stron po opcji \"-P\"!\n"
+
+#, c-format
+msgid "%s: Error - expected character set after '-S' option!\n"
+msgstr "%s: błąd - oczekiwany zestaw znaków po opcji \"-S\"!\n"
+
+#, c-format
+msgid "%s: Warning - character set option ignored!\n"
+msgstr "%s: ostrzeżenie - opcja zestawu znaków została zignorowana!\n"
+
+#, c-format
+msgid "%s: Error - expected content type after '-T' option!\n"
+msgstr "%s: błąd - oczekiwany typ zawartości po opcji \"-T\"!\n"
+
+#, c-format
+msgid "%s: Warning - content type option ignored!\n"
+msgstr "%s: ostrzeżenie - opcja typu zawartości została zignorowana!\n"
+
+#, c-format
+msgid ""
+"%s: Error - cannot print from stdin if files or a job ID are provided!\n"
+msgstr ""
+"%s: błąd - nie można drukować ze standardowego wejścia, jeśli dostarczone są "
+"pliki lub ID zadania!\n"
+
+#, c-format
+msgid ""
+"%s: Error - need \"completed\", \"not-completed\", or \"all\" after '-W' "
+"option!\n"
+msgstr ""
+"%s: błąd - wymagane jest \"completed\", \"not-completed\" lub \"all\" po -"
+"W!\n"
+
+#, c-format
+msgid "%s: Error - expected destination after '-b' option!\n"
+msgstr "%: błąd - oczekiwany cel po opcji \"-b\"!\n"
+
+#, c-format
+msgid "%s: Invalid destination name in list \"%s\"!\n"
+msgstr "%s: nieprawidłowa nazwa celu na liście \"%s\"!\n"
+
+#, c-format
+msgid "%s: Unable to connect to server\n"
+msgstr "%s: nie można połączyć się z serwerem\n"
+
+msgid "Print Job:"
+msgstr "Zadanie drukowania:"
+
+msgid "pending"
+msgstr "oczekujące"
+
+msgid "held"
+msgstr "wstrzymane"
+
+msgid "processing"
+msgstr "przetwarzane"
+
+msgid "stopped"
+msgstr "zatrzymane"
+
+msgid "canceled"
+msgstr "anlowane"
+
+msgid "aborted"
+msgstr "przerwane"
+
+msgid "completed"
+msgstr "zakończone"
+
+msgid "unknown"
+msgstr "nieznane"
+
+msgid "untitled"
+msgstr "nienazwane"
+
+msgid "Printer:"
+msgstr "Drukarka:"
+
+msgid "idle"
+msgstr "bezczynna"
+
+msgid "Missing notify-subscription-ids attribute!"
+msgstr "Brakująca właściwość notify-subscription-ids!"
+
+msgid "Job subscriptions cannot be renewed!"
+msgstr "Subskrypcje zadania nie mogą zostać ponowione!"
+
+msgid "cupsd: Expected config filename after \"-c\" option!\n"
+msgstr "cupsd: oczekiwana nazwa pliku konfiguracji po opcji \"-c\"!\n"
+
+msgid "cupsd: launchd(8) support not compiled in, running in normal mode.\n"
+msgstr ""
+"cupsd: obsługa launchd(8) nie została wkompilowana, uruchamianie w normalnym "
+"trybie.\n"
+
+#, c-format
+msgid "cupsd: Unknown option \"%c\" - aborting!\n"
+msgstr "cupsd: nieznana opcja \"%c\" - przerywanie!\n"
+
+#, c-format
+msgid "cupsd: Unknown argument \"%s\" - aborting!\n"
+msgstr "cupsd: nieznany argument \"%s\" - przerywanie!\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 ""
+"Użycie: cupsd [-c plik-konfiguracji] [-f] [-F] [-h] [-l]\n"
+"\n"
+"-c plik-konfiguracji      Wczytuje alternatywny plik konfiguracji\n"
+"-f                  Uruchamia na przednim planie\n"
+"-F                  Uruchamia na przednim planie, ale odłączone\n"
+"-h                  Wyświetla wiadomości o użyciu\n"
+"-l                  Uruchamia cupsd z launchd(8)\n"
+
+#, c-format
+msgid "        WARN    Line %d only contains whitespace!\n"
+msgstr "        OSTRZEŻENIE    Wiersz %d zawiera wyłącznie białe znaki!\n"
+
+msgid ""
+"        WARN    File contains a mix of CR, LF, and CR LF line endings!\n"
+msgstr ""
+"        OSTRZEŻENIE    Plik zawiera mieszaninę zakończeń wierszy CR, LF i CR "
+"LF!\n"
+
+msgid ""
+"        WARN    Non-Windows PPD files should use lines ending with only LF, "
+"not CR LF!\n"
+msgstr ""
+"        OSTRZEŻENIE    Pliki PPD nie pochodzące z Windows powinny używać "
+"tylko zakończeń wierszy LF, nie CR LF!"
+
+msgid "Printer Maintenance"
+msgstr "Konserwacja drukarki"
+
+msgid "Unable to send maintenance job:"
+msgstr "Nie można wysłać zadania konserwacji:"
+
+#, c-format
+msgid "cupsaddsmb: No PPD file for printer \"%s\" - %s\n"
+msgstr "cupsaddsmb: brak pliku PPD dla drukarki \"%s\" - %s\n"
+
+#, c-format
+msgid "      **FAIL**  %s %s does not exist!\n"
+msgstr "      **ZAWIÓDŁ**  %s %s nie istnieje!\n"
+
+#, c-format
+msgid "      **FAIL**  Bad language \"%s\"!\n"
+msgstr "      **ZAWIÓDŁ**  Błędny język \"%s\"!\n"
+
+#, c-format
+msgid "      **FAIL**  Missing \"%s\" translation string for option %s!\n"
+msgstr ""
+"      **ZAWIÓDŁ**  Brakujący łańcuch tekstowy tłumaczenia \"%s\" dla opcji %"
+"s!\n"
+
+#, c-format
+msgid ""
+"      **FAIL**  Default translation string for option %s contains 8-bit "
+"characters!\n"
+msgstr ""
+"      **ZAWIÓDŁ**  Domyślny łańcuch tekstowy tłumaczenia dla opcji %s "
+"zawiera 8 bitowe znaki!\n"
+
+#, c-format
+msgid ""
+"      **FAIL**  Missing \"%s\" translation string for option %s, choice %s!\n"
+msgstr ""
+"      **ZAWIÓDŁ**  Brakujący łańcuch tekstowy tłumaczenia \"%s\" dla opcji %"
+"s, wybierz %s!\n"
+
+#, c-format
+msgid ""
+"      **FAIL**  Default translation string for option %s choice %s contains "
+"8-bit characters!\n"
+msgstr ""
+"      **ZAWIÓDŁ**  Domyślny łańcuch tekstowy tłumaczenia dla opcji %s wyboru "
+"%s zawiera 8 bitowe znaki!\n"
+
+#, c-format
+msgid "      **FAIL**  Bad cupsFilter value \"%s\"!\n"
+msgstr "      **ZAWIÓDŁ**  Błędna wartość cupsFilter \"%s\"!\n"
+
+msgid "Help"
+msgstr "Pomoc"
+
+#, c-format
+msgid "Missing value on line %d!\n"
+msgstr "Brakująca wartość w wierszu %d!\n"
+
+#, c-format
+msgid "Missing double quote on line %d!\n"
+msgstr "Brakujący cudzysłów w wierszu %d!\n"
+
+#, c-format
+msgid "Bad option + choice on line %d!\n"
+msgstr "Błędna opcja + wybór w wierszu %d!\n"
+
+#, c-format
+msgid "Unable to copy Windows 2000 printer driver files (%d)!\n"
+msgstr "Nie można skopiować plików sterownika drukarki Windows 2000 (%d)!"
+
+#, c-format
+msgid "Unable to copy CUPS printer driver files (%d)!\n"
+msgstr "Nie można skopiować plików sterownika drukarki CUPS (%d)!\n"
+
+#, c-format
+msgid "Unable to install Windows 2000 printer driver files (%d)!\n"
+msgstr "Nie można zainstalować plików sterownika drukarki Windows 2000 (%d)!"
+
+#, c-format
+msgid "Unable to copy Windows 9x printer driver files (%d)!\n"
+msgstr "Nie można skopiować plików sterownika drukarki Windows 9x (%d)!"
+
+#, c-format
+msgid "Unable to install Windows 9x printer driver files (%d)!\n"
+msgstr "Nie można zainstalować plików sterownika drukarki Windows 9x (%d)!"
+
+msgid "No Windows printer drivers are installed!\n"
+msgstr "Brak zainstalowanych sterowników drukarek Windows!\n"
+
+msgid "Warning, no Windows 2000 printer drivers are installed!\n"
+msgstr "Ostrzeżenie, brak zainstalowanych sterowników drukarek Windows 2000!\n"
+
+#, c-format
+msgid "Unable to set Windows printer driver (%d)!\n"
+msgstr "Nie można ustawić sterownika drukarki 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 ""
+"Użycie: cupsaddsmb [opcje] drukarka1 ... drukarkaN\n"
+"       cupsaddsmb [opcje] -a\n"
+"\n"
+"Opcje:\n"
+"  -H serwer-samby  Używa nazwanego serwera Samby\n"
+"  -U użytkownik-samby    Uwierzytelnia używając nazwanego użytkownika Samby\n"
+"  -a               Eksportuje wszystkie drukarki\n"
+"  -h serwer-cups   Używa nazwanego serwera CUPS\n"
+"  -v               (wyświetla polecenia)\n"
+
+#, c-format
+msgid "Unable to copy Windows 2000 printer driver files (%d)!"
+msgstr "Nie można skopiować plików sterowników drukarek Windows 2000 (%d)!"
+
+#, c-format
+msgid "Unable to copy CUPS printer driver files (%d)!"
+msgstr "Nie można skopiować plików sterowników drukarek CUPS (%d)!"
+
+#, c-format
+msgid "Unable to install Windows 2000 printer driver files (%d)!"
+msgstr "Nie można zainstalować plików sterowników drukarek Windows 2000 (%d)!"
+
+#, c-format
+msgid "Unable to copy Windows 9x printer driver files (%d)!"
+msgstr "Nie można skopiować plików sterowników drukarek Windows 9x (%d)!"
+
+#, c-format
+msgid "Unable to install Windows 9x printer driver files (%d)!"
+msgstr "Nie można zainstalować plików sterowników drukarek Windows 9x (%d)!"
+
+msgid "No Windows printer drivers are installed!"
+msgstr "Brak zainstalowanych sterowników drukarek!"
+
+msgid "Warning, no Windows 2000 printer drivers are installed!"
+msgstr "Ostrzeżenie, brak zainstalowanych sterowników drukarek Windows 2000!"
+
+#, c-format
+msgid "open of %s failed: %s"
+msgstr "otwarcie z %s nie powiodło się: %s"
+
+#, c-format
+msgid "Running command: %s %s -N -A %s -c '%s'\n"
+msgstr "Uruchamianie poleceń: %s %s -N -A %s -c \"%s\"\n"
+
+#, c-format
+msgid "stat of %s failed: %s"
+msgstr "użycie stat z %s nie powiodło się: %s"
+
+#, c-format
+msgid "Job #%d is already cancelled - can't cancel."
+msgstr "Zadanie #%d zostało już anulowane - nie można anulować."
+
+#, c-format
+msgid "Job #%d is already aborted - can't cancel."
+msgstr "Zadanie #%d zostało już przerwane - nie można anulować."
+
+#, c-format
+msgid "Job #%d is already completed - can't cancel."
+msgstr "Zadanie #%d zostało już zakończone - nie można anulować."
+
+#, c-format
+msgid ""
+"You must access this page using the URL <A HREF=\"https://%s:%d%s\">https://%"
+"s:%d%s</A>."
+msgstr ""
+"Aby uzyskać dostęp do tej strony, użyj URL-a <A HREF=\"https://%s:%d%s"
+"\">https://%s:%d%s</A>."
+
+#, c-format
+msgid "Unsupported format '%s'!"
+msgstr "Nieobsługiwany format \"%s\"!"
+
+msgid "FAIL\n"
+msgstr "ZAWIÓDŁ\n"
+
+#, c-format
+msgid ""
+"    Line %d is longer than 255 characters (%d)!\n"
+"        REF: Page 25, Line Length\n"
+msgstr ""
+
+msgid ""
+"    Missing %!PS-Adobe-3.0 on first line!\n"
+"        REF: Page 17, 3.1 Conforming Documents\n"
+msgstr ""
+"    Brakujące %!PS-Adobe-3.0 w pierwszym wierszu!\n"
+"        REF: strona 17, 3.1 Podporządkowywanie dokumentów\n"
+
+#, c-format
+msgid ""
+"    Bad %%%%Pages: on line %d!\n"
+"        REF: Page 43, %%%%Pages:\n"
+msgstr ""
+"    Błędne %%%%Pages: w wierszu %d!\n"
+"        REF: strona 43, %%%%Pages:\n"
+
+#, c-format
+msgid ""
+"    Bad %%%%BoundingBox: on line %d!\n"
+"        REF: Page 39, %%%%BoundingBox:\n"
+msgstr ""
+"    Błędne %%%%BoundingBox: w wierszu %d!\n"
+"        REF: strona 39, %%%%BoundingBox:\n"
+
+#, c-format
+msgid ""
+"    Bad %%%%Page: on line %d!\n"
+"        REF: Page 53, %%%%Page:\n"
+msgstr ""
+"    Błędne %%%%Page: w wierszu %d!\n"
+"        REF: strona 53, %%%%Page:\n"
+
+#, c-format
+msgid ""
+"    Missing or bad %%BoundingBox: comment!\n"
+"        REF: Page 39, %%BoundingBox:\n"
+msgstr ""
+"    Brakujące lub błędne %%BoundingBox: komentarz!\n"
+"        REF: strona 39, %%BoundingBox:\n"
+
+#, c-format
+msgid ""
+"    Missing or bad %%Pages: comment!\n"
+"        REF: Page 43, %%Pages:\n"
+msgstr ""
+"    Brakujące lub błędne %%Pages: komentarz!\n"
+"        REF: strona 43, %%Pages:\n"
+
+#, c-format
+msgid ""
+"    Missing %%EndComments comment!\n"
+"        REF: Page 41, %%EndComments\n"
+msgstr ""
+"    Brakujący komentarz %%EndComments!\n"
+"        REF: strona 41, %%EndComments\n"
+
+#, c-format
+msgid ""
+"    Missing or bad %%Page: comments!\n"
+"        REF: Page 53, %%Page:\n"
+msgstr ""
+"    Brakujące lub błędne %%Page: kometarze!\n"
+"        REF: strona 53, %%Page:\n"
+
+#, c-format
+msgid "    Too many %%EndDocument comments!\n"
+msgstr "    Za dużo komentarzy %%EndDocument!\n"
+
+#, c-format
+msgid "    Too many %%BeginDocument comments!\n"
+msgstr "    Za dużo komentarzy %%BeginDocument!\n"
+
+#, c-format
+msgid "    Saw %d lines that exceeded 255 characters!\n"
+msgstr "    Zobaczono %d wierszy przekraczających 255 znaków!\n"
+
+msgid "PASS\n"
+msgstr "POWODZENIE\n"
+
+msgid "    Warning: file contains binary data!\n"
+msgstr "    Ostrzeżenie: plik zawiera dane binarne!\n"
+
+#, c-format
+msgid "    Warning: obsolete DSC version %.1f in file!\n"
+msgstr "    Ostrzeżenie: przestarzała wersja DSC %.1f w pliku!\n"
+
+#, c-format
+msgid "    Warning: no %%EndComments comment in file!\n"
+msgstr "    Ostrzeżenie: brak komentarza %%EndComments w pliku!\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 ""
+"Użycie: cupstestdsc [opcje] nazwapliku.ps [... nazwapliku.ps]\n"
+"       cupstestdsc [opcje] -\n"
+"\n"
+"Opcje:\n"
+"\n"
+"    -h       Wyświetla użycie programu\n"
+"\n"
+"    Uwaga: ten program sprawdza tylko komentarze DSC, nie PostScriptowe..\n"
+
+#, c-format
+msgid "Password for %s on %s? "
+msgstr ""
+
+#, fuzzy
+msgid ""
+"      **FAIL**  1284DeviceId 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"
index 27d0ed065fa5d0871ca47a0606da8a53283ea7b1..a245aa8139745f90e4bfd3362fba56c064ddbd62 100644 (file)
@@ -28,12 +28,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-03-23 21:52-0500\n"
+"POT-Creation-Date: 2006-05-21 10:07-0400\n"
 "PO-Revision-Date: 2006-04-16 00:55+0100\n"
 "Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 msgid "Options Installed"
@@ -78,8 +78,12 @@ 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."
@@ -105,8 +109,10 @@ 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."
@@ -143,19 +149,27 @@ 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\"!"
@@ -448,7 +462,8 @@ 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"
@@ -458,11 +473,14 @@ 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"
@@ -507,8 +525,12 @@ 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"
@@ -542,7 +564,8 @@ 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"
@@ -668,7 +691,9 @@ 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"
@@ -676,15 +701,20 @@ 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"
@@ -1067,10 +1097,12 @@ 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"
@@ -1123,7 +1155,8 @@ 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
@@ -1150,10 +1183,12 @@ 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"
@@ -1226,7 +1261,9 @@ 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"
@@ -1520,10 +1557,12 @@ 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
@@ -1623,8 +1662,11 @@ 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"
@@ -1808,7 +1850,8 @@ 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"
@@ -1859,8 +1902,12 @@ 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:"
@@ -1874,8 +1921,12 @@ 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:"
@@ -2162,7 +2213,8 @@ 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"
@@ -2205,7 +2257,8 @@ 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"
@@ -2255,15 +2308,19 @@ 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"
@@ -2274,8 +2331,12 @@ 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"
@@ -2306,7 +2367,8 @@ 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
@@ -2426,12 +2488,19 @@ 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"
@@ -2522,11 +2591,17 @@ 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"
@@ -2551,16 +2626,26 @@ 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"
@@ -2591,7 +2676,8 @@ 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"
@@ -2685,8 +2771,12 @@ 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 <A HREF=\"https://%s:%d%s\">https://%s:%d%s</A>."
-msgstr "Du måste komma åt sidan med url:en <A HREF=\"https://%s:%d%s\">https://%s:%d%s</A>."
+msgid ""
+"You must access this page using the URL <A HREF=\"https://%s:%d%s\">https://%"
+"s:%d%s</A>."
+msgstr ""
+"Du måste komma åt sidan med url:en <A HREF=\"https://%s:%d%s\">https://%s:%d%"
+"s</A>."
 
 #, c-format
 msgid "Unsupported format '%s'!"
@@ -2800,7 +2890,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 ""
 "Användning: cupstestdsc [flaggor] filnamn.ps [... filnamn.ps]\n"
 "       cupstestdsc [flaggor] -\n"
@@ -2809,5 +2900,17 @@ 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 ""
+
+#, 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"
diff --git a/ppd/intelbar.ppd b/ppd/intelbar.ppd
new file mode 100644 (file)
index 0000000..f2af1a3
--- /dev/null
@@ -0,0 +1,219 @@
+*PPD-Adobe: "4.3"
+*%
+*% "$Id$"
+*%
+*%   Sample IntelliBar label printer driver PPD file for the Common UNIX
+*%   Printing System (CUPS).
+*%
+*%   Copyright 2001-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
+*%
+*FormatVersion:        "4.3"
+*FileVersion:  "1.2"
+*LanguageVersion: English 
+*LanguageEncoding: ISOLatin1
+*PCFileName:   "INTELBAR.PPD"
+*Manufacturer: "Intellitech"
+*Product:      "(GNU Ghostscript)"
+*Product:      "(ESP Ghostscript)"
+*cupsVersion:  1.2
+*cupsManualCopies: False
+*cupsFilter:   "application/vnd.cups-raster 0 rastertolabel"
+*cupsModelNumber: 32
+*ModelName:     "Intellitech IntelliBar Series Label Printer"
+*ShortNickName: "Intellitech IntelliBar Series"
+*NickName:      "Intellitech IntelliBar Series Label Printer v1.2"
+*PSVersion:    "(3010.000) 81501"
+*LanguageLevel:        "3"
+*ColorDevice:  False
+*DefaultColorSpace: Gray
+*FileSystem:   False
+*Throughput:   "8"
+*LandscapeOrientation: Plus90
+*TTRasterizer: Type42
+
+*OpenUI *PageSize/Media Size: PickOne
+*OrderDependency: 10 AnySetup *PageSize
+*DefaultPageSize: w288h432
+*PageSize w288h432/Label - 4.00x6.00": "<</PageSize[288 432]/ImagingBBox null>>setpagedevice"
+*CloseUI: *PageSize
+
+*OpenUI *PageRegion: PickOne
+*OrderDependency: 10 AnySetup *PageRegion
+*DefaultPageRegion: w288h432
+*PageRegion w288h432/Label - 4.00x6.00": "<</PageSize[288 432]/ImagingBBox null>>setpagedevice"
+*CloseUI: *PageRegion
+
+*DefaultImageableArea: w288h432
+*ImageableArea w288h432/Label - 4.00x6.00": "0 5.76 288 426.24"
+
+*DefaultPaperDimension: w288h432
+*PaperDimension w288h432/Label - 4.00x6.00": "288 432"
+
+*MaxMediaWidth: "630"
+*MaxMediaHeight: "7128"
+*HWMargins: 0 5.76 0 5.76
+*CustomPageSize True: "pop pop pop <</PageSize[5 -2 roll]/ImagingBBox null>>setpagedevice"
+*ParamCustomPageSize Width: 1 points 36 630
+*ParamCustomPageSize Height: 2 points 36 7128
+*ParamCustomPageSize WidthOffset: 3 points 0 0
+*ParamCustomPageSize HeightOffset: 4 points 0 0
+*ParamCustomPageSize Orientation: 5 int 0 0
+
+*OpenUI *Resolution/Output Resolution: PickOne
+*OrderDependency: 20 AnySetup *Resolution
+*DefaultResolution: 300dpi
+*Resolution 300dpi/300 DPI: "<</HWResolution[300 300]>>setpagedevice"
+*CloseUI: *Resolution
+
+*OpenGroup: PrinterSettings/Printer Settings
+*OpenUI *inPrintDensity/Print Density: PickOne
+*OrderDependency: 20 DocumentSetup *inPrintDensity
+*DefaultinPrintDensity: Default
+*inPrintDensity Default/PrinterDefault: "<<cupsCompression -1>>setpagedevice"
+*inPrintDensity -15: "<</cupsCompression 0>>setpagedevice"
+*inPrintDensity -14: "<</cupsCompression 3>>setpagedevice"
+*inPrintDensity -13: "<</cupsCompression 6>>setpagedevice"
+*inPrintDensity -12: "<</cupsCompression 10>>setpagedevice"
+*inPrintDensity -11: "<</cupsCompression 13>>setpagedevice"
+*inPrintDensity -10: "<</cupsCompression 16>>setpagedevice"
+*inPrintDensity -9: "<</cupsCompression 20>>setpagedevice"
+*inPrintDensity -8: "<</cupsCompression 23>>setpagedevice"
+*inPrintDensity -7: "<</cupsCompression 26>>setpagedevice"
+*inPrintDensity -6: "<</cupsCompression 30>>setpagedevice"
+*inPrintDensity -5: "<</cupsCompression 33>>setpagedevice"
+*inPrintDensity -4: "<</cupsCompression 36>>setpagedevice"
+*inPrintDensity -3: "<</cupsCompression 40>>setpagedevice"
+*inPrintDensity -2: "<</cupsCompression 43>>setpagedevice"
+*inPrintDensity -1: "<</cupsCompression 46>>setpagedevice"
+*inPrintDensity 0: "<</cupsCompression 50>>setpagedevice"
+*inPrintDensity 1: "<</cupsCompression 53>>setpagedevice"
+*inPrintDensity 2: "<</cupsCompression 56>>setpagedevice"
+*inPrintDensity 3: "<</cupsCompression 60>>setpagedevice"
+*inPrintDensity 4: "<</cupsCompression 63>>setpagedevice"
+*inPrintDensity 5: "<</cupsCompression 66>>setpagedevice"
+*inPrintDensity 6: "<</cupsCompression 70>>setpagedevice"
+*inPrintDensity 7: "<</cupsCompression 73>>setpagedevice"
+*inPrintDensity 8: "<</cupsCompression 76>>setpagedevice"
+*inPrintDensity 9: "<</cupsCompression 80>>setpagedevice"
+*inPrintDensity 10: "<</cupsCompression 83>>setpagedevice"
+*inPrintDensity 11: "<</cupsCompression 86>>setpagedevice"
+*inPrintDensity 12: "<</cupsCompression 90>>setpagedevice"
+*inPrintDensity 13: "<</cupsCompression 93>>setpagedevice"
+*inPrintDensity 14: "<</cupsCompression 96>>setpagedevice"
+*inPrintDensity 15: "<</cupsCompression 100>>setpagedevice"
+*CloseUI: *inPrintDensity
+
+*OpenUI *inPrintRate/Print Speed: PickOne
+*OrderDependency: 20 DocumentSetup *inPrintRate
+*DefaultinPrintRate: Default
+*inPrintRate Default/PrinterDefault: "<</cupsRowFeed 0>>setpagedevice"
+*inPrintRate 15/15 mm/sec.: "<</cupsRowFeed 15>>setpagedevice"
+*inPrintRate 20/20 mm/sec.: "<</cupsRowFeed 20>>setpagedevice"
+*inPrintRate 30/30 mm/sec.: "<</cupsRowFeed 30>>setpagedevice"
+*inPrintRate 40/40 mm/sec.: "<</cupsRowFeed 40>>setpagedevice"
+*inPrintRate 60/60 mm/sec.: "<</cupsRowFeed 60>>setpagedevice"
+*inPrintRate 80/80 mm/sec.: "<</cupsRowFeed 80>>setpagedevice"
+*inPrintRate 100/100 mm/sec.: "<</cupsRowFeed 100>>setpagedevice"
+*inPrintRate 120/120 mm/sec.: "<</cupsRowFeed 120>>setpagedevice"
+*inPrintRate 150/150 mm/sec.: "<</cupsRowFeed 150>>setpagedevice"
+*inPrintRate 200/200 mm/sec.: "<</cupsRowFeed 200>>setpagedevice"
+*inPrintRate 250/250 mm/sec.: "<</cupsRowFeed 250>>setpagedevice"
+*inPrintRate 300/300 mm/sec.: "<</cupsRowFeed 300>>setpagedevice"
+*CloseUI: *inPrintRate
+
+*OpenUI *inTearInterval/Print and Tear: PickOne
+*OrderDependency: 20 DocumentSetup *inTearInterval
+*DefaultinTearInterval: Default
+*inTearInterval Default/PrinterDefault: "<</cupsRowCount -1>>setpagedevice"
+*inTearInterval None/Disabled: "<</cupsRowCount 0>>setpagedevice"
+*inTearInterval 1/Every Label: "<</cupsRowCount 1>>setpagedevice"
+*inTearInterval 2/Every 2 Labels: "<</cupsRowCount 2>>setpagedevice"
+*inTearInterval 3/Every 3 Labels: "<</cupsRowCount 3>>setpagedevice"
+*inTearInterval 4/Every 4 Labels: "<</cupsRowCount 4>>setpagedevice"
+*inTearInterval 5/Every 5 Labels: "<</cupsRowCount 5>>setpagedevice"
+*inTearInterval 6/Every 6 Labels: "<</cupsRowCount 6>>setpagedevice"
+*inTearInterval 7/Every 7 Labels: "<</cupsRowCount 7>>setpagedevice"
+*inTearInterval 8/Every 8 Labels: "<</cupsRowCount 8>>setpagedevice"
+*inTearInterval 9/Every 9 Labels: "<</cupsRowCount 9>>setpagedevice"
+*inTearInterval 10/Every 10 Labels: "<</cupsRowCount 10>>setpagedevice"
+*CloseUI: *inTearInterval
+
+*CustominTearInterval True: "<</cupsRowCount 2 1 roll>>setpagedevice"
+*ParamCustominTearInterval Interval: 1 int 1 99
+
+*OpenUI *inCutInterval/Print and Cut: PickOne
+*OrderDependency: 20 DocumentSetup *inCutInterval
+*DefaultinCutInterval: Default
+*inCutInterval Default/PrinterDefault: "<</cupsRowStep -1>>setpagedevice"
+*inCutInterval None/Disabled: "<</cupsRowStep 0>>setpagedevice"
+*inCutInterval 1/Every Label: "<</cupsRowStep 1>>setpagedevice"
+*inCutInterval 2/Every 2 Labels: "<</cupsRowStep 2>>setpagedevice"
+*inCutInterval 3/Every 3 Labels: "<</cupsRowStep 3>>setpagedevice"
+*inCutInterval 4/Every 4 Labels: "<</cupsRowStep 4>>setpagedevice"
+*inCutInterval 5/Every 5 Labels: "<</cupsRowStep 5>>setpagedevice"
+*inCutInterval 6/Every 6 Labels: "<</cupsRowStep 6>>setpagedevice"
+*inCutInterval 7/Every 7 Labels: "<</cupsRowStep 7>>setpagedevice"
+*inCutInterval 8/Every 8 Labels: "<</cupsRowStep 8>>setpagedevice"
+*inCutInterval 9/Every 9 Labels: "<</cupsRowStep 9>>setpagedevice"
+*inCutInterval 10/Every 10 Labels: "<</cupsRowStep 10>>setpagedevice"
+*CloseUI: *inCutInterval
+
+*CustominCutInterval True: "<</cupsRowStep 2 1 roll>>setpagedevice"
+*ParamCustominCutInterval Interval: 1 int 1 99
+*CloseGroup: *PrinterSettings
+
+*DefaultFont: Courier
+*Font AvantGarde-Book: Standard "(001.006S)" Standard ROM
+*Font AvantGarde-BookOblique: Standard "(001.006S)" Standard ROM
+*Font AvantGarde-Demi: Standard "(001.007S)" Standard ROM
+*Font AvantGarde-DemiOblique: Standard "(001.007S)" Standard ROM
+*Font Bookman-Demi: Standard "(001.004S)" Standard ROM
+*Font Bookman-DemiItalic: Standard "(001.004S)" Standard ROM
+*Font Bookman-Light: Standard "(001.004S)" Standard ROM
+*Font Bookman-LightItalic: Standard "(001.004S)" Standard ROM
+*Font Courier: Standard "(002.004S)" Standard ROM
+*Font Courier-Bold: Standard "(002.004S)" Standard ROM
+*Font Courier-BoldOblique: Standard "(002.004S)" Standard ROM
+*Font Courier-Oblique: Standard "(002.004S)" Standard ROM
+*Font Helvetica: Standard "(001.006S)" Standard ROM
+*Font Helvetica-Bold: Standard "(001.007S)" Standard ROM
+*Font Helvetica-BoldOblique: Standard "(001.007S)" Standard ROM
+*Font Helvetica-Narrow: Standard "(001.006S)" Standard ROM
+*Font Helvetica-Narrow-Bold: Standard "(001.007S)" Standard ROM
+*Font Helvetica-Narrow-BoldOblique: Standard "(001.007S)" Standard ROM
+*Font Helvetica-Narrow-Oblique: Standard "(001.006S)" Standard ROM
+*Font Helvetica-Oblique: Standard "(001.006S)" Standard ROM
+*Font NewCenturySchlbk-Bold: Standard "(001.009S)" Standard ROM
+*Font NewCenturySchlbk-BoldItalic: Standard "(001.007S)" Standard ROM
+*Font NewCenturySchlbk-Italic: Standard "(001.006S)" Standard ROM
+*Font NewCenturySchlbk-Roman: Standard "(001.007S)" Standard ROM
+*Font Palatino-Bold: Standard "(001.005S)" Standard ROM
+*Font Palatino-BoldItalic: Standard "(001.005S)" Standard ROM
+*Font Palatino-Italic: Standard "(001.005S)" Standard ROM
+*Font Palatino-Roman: Standard "(001.005S)" Standard ROM
+*Font Symbol: Special "(001.007S)" Special ROM
+*Font Times-Bold: Standard "(001.007S)" Standard ROM
+*Font Times-BoldItalic: Standard "(001.009S)" Standard ROM
+*Font Times-Italic: Standard "(001.007S)" Standard ROM
+*Font Times-Roman: Standard "(001.007S)" Standard ROM
+*Font ZapfChancery-MediumItalic: Standard "(001.007S)" Standard ROM
+*Font ZapfDingbats: Special "(001.004S)" Standard ROM
+*%
+*% End of "$Id: zebra.ppd 5130 2006-02-17 20:25:33Z mike $".
+*%
index 7d07230c1c83874af5c9c0f8c5c9a6d427afae84..c478eda0f76e3e0a671ca6e238069107a70bb040 100644 (file)
@@ -1,6 +1,6 @@
 *PPD-Adobe: "4.3"
 *%
-*% "$Id: zebra.ppd 5130 2006-02-17 20:25:33Z mike $"
+*% "$Id: zebra.ppd 5510 2006-05-11 17:41:54Z mike $"
 *%
 *%   Sample Zebra label printer driver PPD file for the Common UNIX Printing
 *%   System (CUPS).
 *MediaType Saved/PrinterDefault: ""
 *MediaType Thermal/Thermal Transfer Media: "<</MediaType(Thermal)>>setpagedevice"
 *MediaType Direct/Direct Thermal Media: "<</MediaType(Direct)>>setpagedevice"
-*CloseUI: *zeMediaType
+*CloseUI: *MediaType
 
 *OpenGroup: PrinterSettings/Printer Settings
 *OpenUI *Darkness/Media Darkness: PickOne
 *Font ZapfChancery-MediumItalic: Standard "(001.007S)" Standard ROM
 *Font ZapfDingbats: Special "(001.004S)" Standard ROM
 *%
-*% End of "$Id: zebra.ppd 5130 2006-02-17 20:25:33Z mike $".
+*% End of "$Id: zebra.ppd 5510 2006-05-11 17:41:54Z mike $".
 *%
index 6958f4045fb02a17a4ed1c4b88129d1fbad606a2..db46f8d03262ba1e9707361ef28ca0e2f9924cb4 100644 (file)
 *OpenUI *zePrintRate/Print Rate: PickOne
 *OrderDependency: 20 AnySetup *zePrintRate
 *DefaultzePrintRate: Default
-*zePrintRate Default/PrinterDefault: Default
+*zePrintRate Default/PrinterDefault: ""
 *zePrintRate 1/1 inch/sec.: ""
 *zePrintRate 2/2 inches/sec.: ""
 *zePrintRate 3/3 inches/sec.: ""
index 817e4e8a37779189185083e41f71db3eb605c14f..1e157654bbc98b205879cc1f42408819b3a6ec96 100644 (file)
 *OpenUI *zePrintRate/Print Rate: PickOne
 *OrderDependency: 20 AnySetup *zePrintRate
 *DefaultzePrintRate: Default
-*zePrintRate Default/PrinterDefault: Default
+*zePrintRate Default/PrinterDefault: ""
 *zePrintRate 1/1 inch/sec.: ""
 *zePrintRate 1.5/1.5 inch/sec.: ""
 *zePrintRate 2/2 inches/sec.: ""
index e4ad8ca1d53cf5df6b8401a1e0ec12fc98a96fdb..6bd77471308190453a02a30610e6b7ebc49dcdb6 100644 (file)
 *MediaType Saved/PrinterDefault: ""
 *MediaType Thermal/Thermal Transfer Media: "<</MediaType(Thermal)>>setpagedevice"
 *MediaType Direct/Direct Thermal Media: "<</MediaType(Direct)>>setpagedevice"
-*CloseUI: *zeMediaType
+*CloseUI: *MediaType
 
 *OpenGroup: PrinterSettings/Printer Settings
 *OpenUI *Darkness/Media Darkness: PickOne
 *OpenUI *zePrintRate/Print Rate: PickOne
 *OrderDependency: 20 AnySetup *zePrintRate
 *DefaultzePrintRate: Default
-*zePrintRate Default/PrinterDefault: Default
+*zePrintRate Default/PrinterDefault: ""
 *zePrintRate 1/1 inch/sec.: ""
 *zePrintRate 1.5/1.5 inch/sec.: ""
 *zePrintRate 2/2 inches/sec.: ""
index 78e82d52ec8eacfce733864f8004e4bfcccfb16e..895a14225d390f3168d3a7a95fc6fb2811d4b5cf 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: auth.c 5464 2006-04-26 01:34:14Z mike $"
+ * "$Id: auth.c 5567 2006-05-22 15:33:11Z mike $"
  *
  *   Authorization routines for the Common UNIX Printing System (CUPS).
  *
@@ -119,7 +119,7 @@ typedef struct cupsd_authdata_s             /**** Authentication data ****/
  * Local globals...
  */
 
-#if defined(__hpux) && defined(HAVE_LIBPAM)
+#if defined(__hpux) && HAVE_LIBPAM
 static cupsd_authdata_t        *auth_data;     /* Current client being authenticated */
 #endif /* __hpux && HAVE_LIBPAM */
 
@@ -1497,7 +1497,8 @@ cupsdIsAuthorized(cupsd_client_t *con,    /* I - Connection */
 
   cupsdLogMessage(CUPSD_LOG_DEBUG2,
                   "cupsdIsAuthorized: con->uri=\"%s\", con->best=%p(%s)",
-                  con->uri, con->best, con->best ? con->best->location : "");
+                  con->uri, con->best, con->best ? con->best->location ?
+                                          con->best->location : "(null)" : "");
   if (owner)
     cupsdLogMessage(CUPSD_LOG_DEBUG2,
                     "cupsdIsAuthorized: owner=\"%s\"", owner);
@@ -2167,5 +2168,5 @@ to64(char          *s,                    /* O - Output string */
 
 
 /*
- * End of "$Id: auth.c 5464 2006-04-26 01:34:14Z mike $".
+ * End of "$Id: auth.c 5567 2006-05-22 15:33:11Z mike $".
  */
index e174223db262286e56b74736dc2c6720605821fc..a08f91fc98a5f40e94aec36ab28373505284a835 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: client.c 5491 2006-05-04 20:53:35Z mike $"
+ * "$Id: client.c 5567 2006-05-22 15:33:11Z mike $"
  *
  *   Client routines for the Common UNIX Printing System (CUPS) scheduler.
  *
@@ -1376,7 +1376,8 @@ cupsdReadClient(cupsd_client_t *con)      /* I - Client to read from */
               cupsdLogMessage(CUPSD_LOG_DEBUG2,
                              "cupsdReadClient: %d command=\"%s\", "
                              "options = \"%s\"",
-                             con->http.fd, con->command, con->options);
+                             con->http.fd, con->command,
+                             con->options ? con->options : "(null)");
 
              if (con->http.version <= HTTP_1_0)
                con->http.keep_alive = HTTP_KEEPALIVE_OFF;
@@ -3507,7 +3508,7 @@ pipe_command(cupsd_client_t *con, /* I - Client connection */
 
   cupsdLogMessage(CUPSD_LOG_DEBUG2,
                   "pipe_command: command=\"%s\", options=\"%s\"",
-                  command, options);
+                  command, options ? options : "(null)");
 
   argv[0]      = command;
   query_string = NULL;
@@ -3824,5 +3825,5 @@ write_file(cupsd_client_t *con,           /* I - Client connection */
 
 
 /*
- * End of "$Id: client.c 5491 2006-05-04 20:53:35Z mike $".
+ * End of "$Id: client.c 5567 2006-05-22 15:33:11Z mike $".
  */
index e1fd525c0889a2f75c1d70ba9b6c9160b68df132..b27ac8c41cb2af20bf4f5ef4ee81855be6ba9499 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: dirsvc.c 5448 2006-04-22 03:57:26Z mike $"
+ * "$Id: dirsvc.c 5548 2006-05-19 19:38:31Z mike $"
  *
  *   Directory services routines for the Common UNIX Printing System (CUPS).
  *
@@ -665,10 +665,10 @@ cupsdSendBrowseDelete(
   * Announce the deletion...
   */
 
-  if (BrowseLocalProtocols & BROWSE_CUPS)
+  if ((BrowseLocalProtocols & BROWSE_CUPS) && BrowseSocket >= 0)
     send_cups_browse(p);
 #ifdef HAVE_LIBSLP
-  if (BrowseLocalProtocols & BROWSE_SLP)
+  if ((BrowseLocalProtocols & BROWSE_SLP) && BrowseSLPHandle)
     slp_dereg_printer(p);
 #endif /* HAVE_LIBSLP */
 }
@@ -934,6 +934,8 @@ cupsdStartBrowsing(void)
 
     BrowseSLPRefresh = 0;
   }
+  else
+    BrowseSLPHandle = NULL;
 #endif /* HAVE_LIBSLP */
 
 #ifdef HAVE_OPENLDAP
@@ -1161,7 +1163,7 @@ cupsdStopBrowsing(void)
   }
 #endif /* HAVE_LIBSLP */
 
-#ifdef HAVE_OPENDAP
+#ifdef HAVE_OPENLDAP
   if (((BrowseLocalProtocols | BrowseRemoteProtocols) & BROWSE_LDAP) &&
       BrowseLDAPHandle)
   {
@@ -3128,5 +3130,5 @@ slp_url_callback(
 
 
 /*
- * End of "$Id: dirsvc.c 5448 2006-04-22 03:57:26Z mike $".
+ * End of "$Id: dirsvc.c 5548 2006-05-19 19:38:31Z mike $".
  */
index b3a5f58ebc2c1f0d83022b9ecb6c6fb492e1feb7..0a78c9d6c5d0a47d6ed3ae48f51baa0dc6e7bf45 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: ipp.c 5438 2006-04-19 21:21:05Z mike $"
+ * "$Id: ipp.c 5552 2006-05-20 12:00:37Z mike $"
  *
  *   IPP routines for the Common UNIX Printing System (CUPS) scheduler.
  *
@@ -126,8 +126,7 @@ static void accept_jobs(cupsd_client_t *con, ipp_attribute_t *uri);
 static void    add_class(cupsd_client_t *con, ipp_attribute_t *uri);
 static int     add_file(cupsd_client_t *con, cupsd_job_t *job,
                         mime_type_t *filetype, int compression);
-static cupsd_job_t *add_job(cupsd_client_t *con, ipp_attribute_t *uri,
-                           cupsd_printer_t **dprinter,
+static cupsd_job_t *add_job(cupsd_client_t *con, cupsd_printer_t *printer,
                            mime_type_t *filetype);
 static void    add_job_state_reasons(cupsd_client_t *con, cupsd_job_t *job);
 static void    add_job_subscriptions(cupsd_client_t *con, cupsd_job_t *job);
@@ -627,6 +626,15 @@ cupsdProcessIPPRequest(
 
     if (cupsdSendHeader(con, HTTP_OK, "application/ipp"))
     {
+#ifdef CUPSD_USE_CHUNKING
+     /*
+      * Because older versions of CUPS (1.1.17 and older) and some IPP
+      * clients do not implement chunking properly, we should not use
+      * chunking by default.  This may become the default in future
+      * CUPS releases, or we might add a configuration directive for
+      * it.
+      */
+
       if (con->http.version == HTTP_1_1)
       {
        con->http.data_encoding = HTTP_ENCODE_CHUNKED;
@@ -634,6 +642,7 @@ cupsdProcessIPPRequest(
        httpPrintf(HTTP(con), "Transfer-Encoding: chunked\r\n\r\n");
       }
       else
+#endif /* CUPSD_USE_CHUNKING */
       {
        con->http.data_encoding  = HTTP_ENCODE_LENGTH;
        con->http.data_remaining = ippLength(con->response);
@@ -690,12 +699,6 @@ accept_jobs(cupsd_client_t  *con,  /* I - Client connection */
 {
   http_status_t        status;                 /* Policy status */
   cups_ptype_t dtype;                  /* Destination type (printer or class) */
-  char         method[HTTP_MAX_URI],   /* Method portion of URI */
-               username[HTTP_MAX_URI], /* Username portion of URI */
-               host[HTTP_MAX_URI],     /* Host portion of URI */
-               resource[HTTP_MAX_URI]; /* Resource portion of URI */
-  int          port;                   /* Port portion of URI */
-  const char   *name;                  /* Printer name */
   cupsd_printer_t *printer;            /* Printer data */
 
 
@@ -706,11 +709,7 @@ accept_jobs(cupsd_client_t  *con,  /* I - Client connection */
   * Is the destination valid?
   */
 
-  httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method,
-                  sizeof(method), username, sizeof(username), host,
-                 sizeof(host), &port, resource, sizeof(resource));
-
-  if ((name = cupsdValidateDest(host, resource, &dtype, &printer)) == NULL)
+  if (!cupsdValidateDest(uri->values[0].string.text, &dtype, &printer))
   {
    /*
     * Bad URI...
@@ -741,12 +740,19 @@ accept_jobs(cupsd_client_t  *con, /* I - Client connection */
   cupsdAddPrinterHistory(printer);
 
   if (dtype & CUPS_PRINTER_CLASS)
+  {
     cupsdSaveAllClasses();
+
+    cupsdLogMessage(CUPSD_LOG_INFO, "Class \"%s\" now accepting jobs (\"%s\").",
+                    printer->name, get_username(con));
+  }
   else
+  {
     cupsdSaveAllPrinters();
 
-  cupsdLogMessage(CUPSD_LOG_INFO, "Printer \"%s\" now accepting jobs (\"%s\").", name,
-                  get_username(con));
+    cupsdLogMessage(CUPSD_LOG_INFO, "Printer \"%s\" now accepting jobs (\"%s\").",
+                    printer->name, get_username(con));
+  }
 
  /*
   * Everything was ok, so return OK status...
@@ -774,7 +780,6 @@ add_class(cupsd_client_t  *con,             /* I - Client connection */
   cupsd_printer_t *pclass,             /* Class */
                *member;                /* Member printer/class */
   cups_ptype_t dtype;                  /* Destination type */
-  const char   *dest;                  /* Printer or class name */
   ipp_attribute_t *attr;               /* Printer attribute */
   int          modify;                 /* Non-zero if we just modified */
   char         newname[IPP_MAX_NAME];  /* New class name */
@@ -993,11 +998,7 @@ add_class(cupsd_client_t  *con,            /* I - Client connection */
       * Search for the printer or class URI...
       */
 
-      httpSeparateURI(HTTP_URI_CODING_ALL, attr->values[i].string.text, method,
-                      sizeof(method), username, sizeof(username), host,
-                     sizeof(host), &port, resource, sizeof(resource));
-
-      if ((dest = cupsdValidateDest(host, resource, &dtype, &member)) == NULL)
+      if (!cupsdValidateDest(attr->values[i].string.text, &dtype, &member))
       {
        /*
        * Bad URI...
@@ -1134,54 +1135,24 @@ add_file(cupsd_client_t *con,           /* I - Connection to client */
 
 static cupsd_job_t *                   /* O - Job object */
 add_job(cupsd_client_t  *con,          /* I - Client connection */
-        ipp_attribute_t *uri,          /* I - printer-uri */
-       cupsd_printer_t **dprinter,     /* I - Destination printer */
+       cupsd_printer_t *printer,       /* I - Destination printer */
        mime_type_t     *filetype)      /* I - First print file type, if any */
 {
   http_status_t        status;                 /* Policy status */
   ipp_attribute_t *attr;               /* Current attribute */
-  const char   *dest;                  /* Destination */
-  cups_ptype_t dtype;                  /* Destination type (printer or class) */
   const char   *val;                   /* Default option value */
   int          priority;               /* Job priority */
   char         *title;                 /* Job name/title */
   cupsd_job_t  *job;                   /* Current job */
-  char         job_uri[HTTP_MAX_URI],  /* Job URI */
-               method[HTTP_MAX_URI],   /* Method portion of URI */
-               username[HTTP_MAX_URI], /* Username portion of URI */
-               host[HTTP_MAX_URI],     /* Host portion of URI */
-               resource[HTTP_MAX_URI]; /* Resource portion of URI */
-  int          port;                   /* Port portion of URI */
-  cupsd_printer_t *printer;            /* Printer data */
+  char         job_uri[HTTP_MAX_URI];  /* Job URI */
   int          kbytes;                 /* Size of print file */
   int          i;                      /* Looping var */
   int          lowerpagerange;         /* Page range bound */
 
 
-  cupsdLogMessage(CUPSD_LOG_DEBUG2, "add_job(%p[%d], %s)", con,
-                  con->http.fd, uri->values[0].string.text);
-
- /*
-  * Is the destination valid?
-  */
-
-  httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method,
-                  sizeof(method), username, sizeof(username), host,
-                 sizeof(host), &port, resource, sizeof(resource));
-
-  if ((dest = cupsdValidateDest(host, resource, &dtype, &printer)) == NULL)
-  {
-   /*
-    * Bad URI...
-    */
-
-    send_ipp_status(con, IPP_NOT_FOUND,
-                    _("The printer or class was not found."));
-    return (NULL);
-  }
-
-  if (dprinter)
-    *dprinter = printer;
+  cupsdLogMessage(CUPSD_LOG_DEBUG2, "add_job(%p[%d], %p(%s), %p(%s/%s))",
+                  con, con->http.fd, printer, printer->name,
+                 filetype, filetype->super, filetype->type);
 
  /*
   * Check remote printing to non-shared printer...
@@ -1219,7 +1190,7 @@ add_job(cupsd_client_t  *con,             /* I - Client connection */
   {
     send_ipp_status(con, IPP_NOT_ACCEPTING,
                     _("Destination \"%s\" is not accepting jobs."),
-                    dest);
+                    printer->name);
     return (NULL);
   }
 
@@ -1286,7 +1257,7 @@ add_job(cupsd_client_t  *con,             /* I - Client connection */
   if (MaxJobs && cupsArrayCount(Jobs) >= MaxJobs)
     cupsdCleanJobs();
 
-  if (cupsArrayCount(Jobs) >= MaxJobs && MaxJobs)
+  if (MaxJobs && cupsArrayCount(Jobs) >= MaxJobs)
   {
     send_ipp_status(con, IPP_NOT_POSSIBLE,
                     _("Too many active jobs."));
@@ -1328,11 +1299,13 @@ add_job(cupsd_client_t  *con,           /* I - Client connection */
   if ((job = cupsdAddJob(priority, printer->name)) == NULL)
   {
     send_ipp_status(con, IPP_INTERNAL_ERROR,
-                    _("Unable to add job for destination \"%s\"!"), dest);
+                    _("Unable to add job for destination \"%s\"!"),
+                   printer->name);
     return (NULL);
   }
 
-  job->dtype   = dtype;
+  job->dtype   = printer->type & (CUPS_PRINTER_CLASS | CUPS_PRINTER_IMPLICIT |
+                                  CUPS_PRINTER_REMOTE);
   job->attrs   = con->request;
   con->request = NULL;
 
@@ -2757,11 +2730,10 @@ cancel_all_jobs(cupsd_client_t  *con,   /* I - Client connection */
                ipp_attribute_t *uri)   /* I - Job or Printer URI */
 {
   http_status_t        status;                 /* Policy status */
-  const char   *dest;                  /* Destination */
   cups_ptype_t dtype;                  /* Destination type */
-  char         method[HTTP_MAX_URI],   /* Method portion of URI */
+  char         scheme[HTTP_MAX_URI],   /* Scheme portion of URI */
                userpass[HTTP_MAX_URI], /* Username portion of URI */
-               host[HTTP_MAX_URI],     /* Host portion of URI */
+               hostname[HTTP_MAX_URI], /* Host portion of URI */
                resource[HTTP_MAX_URI]; /* Resource portion of URI */
   int          port;                   /* Port portion of URI */
   ipp_attribute_t *attr;               /* Attribute in request */
@@ -2820,16 +2792,17 @@ cancel_all_jobs(cupsd_client_t  *con,   /* I - Client connection */
   * And if the destination is valid...
   */
 
-  httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method,
-                  sizeof(method), userpass, sizeof(userpass), host,
-                 sizeof(host), &port, resource, sizeof(resource));
-
-  if ((dest = cupsdValidateDest(host, resource, &dtype, &printer)) == NULL)
+  if (!cupsdValidateDest(uri->values[0].string.text, &dtype, &printer))
   {
    /*
     * Bad URI?
     */
 
+    httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text,
+                    scheme, sizeof(scheme), userpass, sizeof(userpass),
+                   hostname, sizeof(hostname), &port,
+                   resource, sizeof(resource));
+
     if ((!strncmp(resource, "/printers/", 10) && resource[10]) ||
         (!strncmp(resource, "/classes/", 9) && resource[9]))
     {
@@ -2837,13 +2810,6 @@ cancel_all_jobs(cupsd_client_t  *con,    /* I - Client connection */
                       _("The printer or class was not found."));
       return;
     }
-    else if (strcmp(resource, "/printers/"))
-    {
-      send_ipp_status(con, IPP_NOT_FOUND,
-                      _("The printer-uri \"%s\" is not valid."),
-                     uri->values[0].string.text);
-      return;
-    }
 
    /*
     * Check policy...
@@ -2870,7 +2836,8 @@ cancel_all_jobs(cupsd_client_t  *con,     /* I - Client connection */
     * Check policy...
     */
 
-    if ((status = cupsdCheckPolicy(printer->op_policy_ptr, con, NULL)) != HTTP_OK)
+    if ((status = cupsdCheckPolicy(printer->op_policy_ptr, con,
+                                   NULL)) != HTTP_OK)
     {
       send_http_error(con, status);
       return;
@@ -2880,10 +2847,11 @@ cancel_all_jobs(cupsd_client_t  *con,   /* I - Client connection */
     * Cancel all of the jobs on the named printer...
     */
 
-    cupsdCancelJobs(dest, username, purge);
+    cupsdCancelJobs(printer->name, username, purge);
 
     cupsdLogMessage(CUPSD_LOG_INFO, "All jobs on \"%s\" were %s by \"%s\".",
-                    dest, purge ? "purged" : "cancelled", get_username(con));
+                    printer->name, purge ? "purged" : "cancelled",
+                   get_username(con));
   }
 
   con->response->request.status.status_code = IPP_OK;
@@ -2900,13 +2868,12 @@ cancel_job(cupsd_client_t  *con,        /* I - Client connection */
 {
   ipp_attribute_t *attr;               /* Current attribute */
   int          jobid;                  /* Job ID */
-  char         method[HTTP_MAX_URI],   /* Method portion of URI */
+  char         scheme[HTTP_MAX_URI],   /* Scheme portion of URI */
                username[HTTP_MAX_URI], /* Username portion of URI */
                host[HTTP_MAX_URI],     /* Host portion of URI */
                resource[HTTP_MAX_URI]; /* Resource portion of URI */
   int          port;                   /* Port portion of URI */
   cupsd_job_t  *job;                   /* Job information */
-  const char   *dest;                  /* Destination */
   cups_ptype_t dtype;                  /* Destination type (printer or class) */
   cupsd_printer_t *printer;            /* Printer data */
 
@@ -2938,11 +2905,7 @@ cancel_job(cupsd_client_t  *con, /* I - Client connection */
       * Find the current job on the specified printer...
       */
 
-      httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method,
-                      sizeof(method), username, sizeof(username), host,
-                     sizeof(host), &port, resource, sizeof(resource));
-
-      if ((dest = cupsdValidateDest(host, resource, &dtype, &printer)) == NULL)
+      if (!cupsdValidateDest(uri->values[0].string.text, &dtype, &printer))
       {
        /*
        * Bad URI...
@@ -2969,7 +2932,7 @@ cancel_job(cupsd_client_t  *con,  /* I - Client connection */
             job;
             job = (cupsd_job_t *)cupsArrayNext(ActiveJobs))
          if (job->state_value <= IPP_JOB_PROCESSING &&
-             !strcasecmp(job->dest, dest))
+             !strcasecmp(job->dest, printer->name))
            break;
 
        if (job)
@@ -2977,7 +2940,7 @@ cancel_job(cupsd_client_t  *con,  /* I - Client connection */
        else
        {
          send_ipp_status(con, IPP_NOT_POSSIBLE, _("No active jobs on %s!"),
-                         dest);
+                         printer->name);
          return;
        }
       }
@@ -2989,8 +2952,8 @@ cancel_job(cupsd_client_t  *con,  /* I - Client connection */
     * Got a job URI; parse it to get the job ID...
     */
 
-    httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method,
-                    sizeof(method), username, sizeof(username), host,
+    httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, scheme,
+                    sizeof(scheme), username, sizeof(username), host,
                    sizeof(host), &port, resource, sizeof(resource));
  
     if (strncmp(resource, "/jobs/", 6))
@@ -4449,17 +4412,33 @@ static void
 create_job(cupsd_client_t  *con,       /* I - Client connection */
           ipp_attribute_t *uri)        /* I - Printer URI */
 {
-  cupsd_job_t  *job;                   /* New job */
+  cupsd_printer_t      *printer;       /* Printer */
+  cupsd_job_t          *job;           /* New job */
 
 
   cupsdLogMessage(CUPSD_LOG_DEBUG2, "create_job(%p[%d], %s)", con,
                   con->http.fd, uri->values[0].string.text);
 
+ /*
+  * Is the destination valid?
+  */
+
+  if (!cupsdValidateDest(uri->values[0].string.text, NULL, &printer))
+  {
+   /*
+    * Bad URI...
+    */
+
+    send_ipp_status(con, IPP_NOT_FOUND,
+                    _("The printer or class was not found."));
+    return;
+  }
+
  /*
   * Create the job object...
   */
 
-  if ((job = add_job(con, uri, NULL, NULL)) == NULL)
+  if ((job = add_job(con, printer, NULL)) == NULL)
     return;
 
  /*
@@ -4605,8 +4584,8 @@ create_requested_array(ipp_t *request)    /* I - IPP request */
       cupsArrayAdd(ra, "notify-lease-duration-default");
       cupsArrayAdd(ra, "notify-lease-duration-supported");
       cupsArrayAdd(ra, "notify-max-events-supported");
-      cupsArrayAdd(ra, "notify-notify-events-default");
-      cupsArrayAdd(ra, "notify-notify-events-supported");
+      cupsArrayAdd(ra, "notify-events-default");
+      cupsArrayAdd(ra, "notify-events-supported");
       cupsArrayAdd(ra, "notify-pull-method-supported");
       cupsArrayAdd(ra, "notify-schemes-supported");
       cupsArrayAdd(ra, "operations-supported");
@@ -4730,7 +4709,8 @@ create_subscription(
     dtype   = CUPS_PRINTER_CLASS;
     printer = NULL;
   }
-  else if ((dest = cupsdValidateDest(host, resource, &dtype, &printer)) == NULL)
+  else if ((dest = cupsdValidateDest(uri->values[0].string.text, &dtype,
+                                     &printer)) == NULL)
   {
    /*
     * Bad URI...
@@ -4747,7 +4727,8 @@ create_subscription(
 
   if (printer)
   {
-    if ((status = cupsdCheckPolicy(printer->op_policy_ptr, con, NULL)) != HTTP_OK)
+    if ((status = cupsdCheckPolicy(printer->op_policy_ptr, con,
+                                   NULL)) != HTTP_OK)
     {
       send_http_error(con, status);
       return;
@@ -4951,13 +4932,7 @@ delete_printer(cupsd_client_t  *con,     /* I - Client connection */
                ipp_attribute_t *uri)   /* I - URI of printer or class */
 {
   http_status_t        status;                 /* Policy status */
-  const char   *dest;                  /* Destination */
   cups_ptype_t dtype;                  /* Destination type (printer or class) */
-  char         method[HTTP_MAX_URI],   /* Method portion of URI */
-               username[HTTP_MAX_URI], /* Username portion of URI */
-               host[HTTP_MAX_URI],     /* Host portion of URI */
-               resource[HTTP_MAX_URI]; /* Resource portion of URI */
-  int          port;                   /* Port portion of URI */
   cupsd_printer_t *printer;            /* Printer/class */
   char         filename[1024];         /* Script/PPD filename */
 
@@ -4969,11 +4944,7 @@ delete_printer(cupsd_client_t  *con,     /* I - Client connection */
   * Do we have a valid URI?
   */
 
-  httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method,
-                  sizeof(method), username, sizeof(username), host,
-                 sizeof(host), &port, resource, sizeof(resource));
-
-  if ((dest = cupsdValidateDest(host, resource, &dtype, &printer)) == NULL)
+  if (!cupsdValidateDest(uri->values[0].string.text, &dtype, &printer))
   {
    /*
     * Bad URI...
@@ -4998,7 +4969,7 @@ delete_printer(cupsd_client_t  *con,      /* I - Client connection */
   * Remove old jobs...
   */
 
-  cupsdCancelJobs(dest, NULL, 1);
+  cupsdCancelJobs(printer->name, NULL, 1);
 
  /*
   * Remove old subscriptions and send a "deleted printer" event...
@@ -5007,7 +4978,7 @@ delete_printer(cupsd_client_t  *con,      /* I - Client connection */
   cupsdAddEvent(CUPSD_EVENT_PRINTER_DELETED, printer, NULL,
                 "%s \"%s\" deleted by \"%s\".",
                (dtype & CUPS_PRINTER_CLASS) ? "Class" : "Printer",
-               dest, get_username(con));
+               printer->name, get_username(con));
 
   cupsdExpireSubscriptions(printer, NULL);
  
@@ -5015,24 +4986,26 @@ delete_printer(cupsd_client_t  *con,    /* I - Client connection */
   * Remove any old PPD or script files...
   */
 
-  snprintf(filename, sizeof(filename), "%s/interfaces/%s", ServerRoot, dest);
+  snprintf(filename, sizeof(filename), "%s/interfaces/%s", ServerRoot,
+           printer->name);
   unlink(filename);
 
-  snprintf(filename, sizeof(filename), "%s/ppd/%s.ppd", ServerRoot, dest);
+  snprintf(filename, sizeof(filename), "%s/ppd/%s.ppd", ServerRoot,
+           printer->name);
   unlink(filename);
 
   if (dtype & CUPS_PRINTER_CLASS)
   {
-    cupsdLogMessage(CUPSD_LOG_INFO, "Class \"%s\" deleted by \"%s\".", dest,
-                    get_username(con));
+    cupsdLogMessage(CUPSD_LOG_INFO, "Class \"%s\" deleted by \"%s\".",
+                    printer->name, get_username(con));
 
     cupsdDeletePrinter(printer, 0);
     cupsdSaveAllClasses();
   }
   else
   {
-    cupsdLogMessage(CUPSD_LOG_INFO, "Printer \"%s\" deleted by \"%s\".", dest,
-                    get_username(con));
+    cupsdLogMessage(CUPSD_LOG_INFO, "Printer \"%s\" deleted by \"%s\".",
+                    printer->name, get_username(con));
 
     cupsdDeletePrinter(printer, 0);
     cupsdSaveAllPrinters();
@@ -5275,7 +5248,7 @@ get_jobs(cupsd_client_t  *con,            /* I - Client connection */
   const char   *dest;                  /* Destination */
   cups_ptype_t dtype;                  /* Destination type (printer or class) */
   cups_ptype_t dmask;                  /* Destination type mask */
-  char         method[HTTP_MAX_URI],   /* Method portion of URI */
+  char         scheme[HTTP_MAX_URI],   /* Scheme portion of URI */
                username[HTTP_MAX_URI], /* Username portion of URI */
                host[HTTP_MAX_URI],     /* Host portion of URI */
                resource[HTTP_MAX_URI]; /* Resource portion of URI */
@@ -5297,8 +5270,8 @@ get_jobs(cupsd_client_t  *con,            /* I - Client connection */
   * Is the destination valid?
   */
 
-  httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method,
-                  sizeof(method), username, sizeof(username), host,
+  httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, scheme,
+                  sizeof(scheme), username, sizeof(username), host,
                  sizeof(host), &port, resource, sizeof(resource));
 
   if (!strcmp(resource, "/") ||
@@ -5323,7 +5296,8 @@ get_jobs(cupsd_client_t  *con,            /* I - Client connection */
     dmask   = CUPS_PRINTER_CLASS;
     printer = NULL;
   }
-  else if ((dest = cupsdValidateDest(host, resource, &dtype, &printer)) == NULL)
+  else if ((dest = cupsdValidateDest(uri->values[0].string.text, &dtype,
+                                     &printer)) == NULL)
   {
    /*
     * Bad URI...
@@ -5342,7 +5316,8 @@ get_jobs(cupsd_client_t  *con,            /* I - Client connection */
 
   if (printer)
   {
-    if ((status = cupsdCheckPolicy(printer->op_policy_ptr, con, NULL)) != HTTP_OK)
+    if ((status = cupsdCheckPolicy(printer->op_policy_ptr, con,
+                                   NULL)) != HTTP_OK)
     {
       send_http_error(con, status);
       return;
@@ -5678,17 +5653,7 @@ get_printer_attrs(cupsd_client_t  *con,  /* I - Client connection */
                  ipp_attribute_t *uri) /* I - Printer URI */
 {
   http_status_t                status;         /* Policy status */
-  const char           *dest;          /* Destination */
   cups_ptype_t         dtype;          /* Destination type (printer or class) */
-  char                 method[HTTP_MAX_URI],
-                                       /* Method portion of URI */
-                       username[HTTP_MAX_URI],
-                                       /* Username portion of URI */
-                       host[HTTP_MAX_URI],
-                                       /* Host portion of URI */
-                       resource[HTTP_MAX_URI];
-                                       /* Resource portion of URI */
-  int                  port;           /* Port portion of URI */
   cupsd_printer_t      *printer;       /* Printer/class */
   cups_array_t         *ra;            /* Requested attributes array */
 
@@ -5700,11 +5665,7 @@ get_printer_attrs(cupsd_client_t  *con,  /* I - Client connection */
   * Is the destination valid?
   */
 
-  httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method,
-                  sizeof(method), username, sizeof(username), host,
-                 sizeof(host), &port, resource, sizeof(resource));
-
-  if ((dest = cupsdValidateDest(host, resource, &dtype, &printer)) == NULL)
+  if (!cupsdValidateDest(uri->values[0].string.text, &dtype, &printer))
   {
    /*
     * Bad URI...
@@ -5967,8 +5928,8 @@ get_subscriptions(cupsd_client_t  *con,   /* I - Client connection */
   cups_array_t         *ra;            /* Requested attributes array */
   ipp_attribute_t      *attr;          /* Attribute */
   cups_ptype_t         dtype;          /* Destination type (printer or class) */
-  char                 method[HTTP_MAX_URI],
-                                       /* Method portion of URI */
+  char                 scheme[HTTP_MAX_URI],
+                                       /* Scheme portion of URI */
                        username[HTTP_MAX_URI],
                                        /* Username portion of URI */
                        host[HTTP_MAX_URI],
@@ -5988,8 +5949,8 @@ get_subscriptions(cupsd_client_t  *con,   /* I - Client connection */
   * Is the destination valid?
   */
 
-  httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method,
-                  sizeof(method), username, sizeof(username), host,
+  httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, scheme,
+                  sizeof(scheme), username, sizeof(username), host,
                  sizeof(host), &port, resource, sizeof(resource));
 
   if (!strcmp(resource, "/") ||
@@ -6012,7 +5973,7 @@ get_subscriptions(cupsd_client_t  *con,   /* I - Client connection */
       return;
     }
   }
-  else if (!cupsdValidateDest(host, resource, &dtype, &printer))
+  else if (!cupsdValidateDest(uri->values[0].string.text, &dtype, &printer))
   {
    /*
     * Bad URI...
@@ -6271,7 +6232,7 @@ move_job(cupsd_client_t  *con,            /* I - Client connection */
                *dest;                  /* Destination */
   cups_ptype_t stype,                  /* Source type (printer or class) */
                dtype;                  /* Destination type (printer or class) */
-  char         method[HTTP_MAX_URI],   /* Method portion of URI */
+  char         scheme[HTTP_MAX_URI],   /* Scheme portion of URI */
                username[HTTP_MAX_URI], /* Username portion of URI */
                host[HTTP_MAX_URI],     /* Host portion of URI */
                resource[HTTP_MAX_URI]; /* Resource portion of URI */
@@ -6299,11 +6260,8 @@ move_job(cupsd_client_t  *con,           /* I - Client connection */
     return;
   }
     
-  httpSeparateURI(HTTP_URI_CODING_ALL, attr->values[0].string.text, method,
-                  sizeof(method), username, sizeof(username), host,
-                 sizeof(host), &port, resource, sizeof(resource));
-
-  if ((dest = cupsdValidateDest(host, resource, &dtype, &dprinter)) == NULL)
+  if ((dest = cupsdValidateDest(attr->values[0].string.text, &dtype,
+                                &dprinter)) == NULL)
   {
    /*
     * Bad URI...
@@ -6318,7 +6276,8 @@ move_job(cupsd_client_t  *con,            /* I - Client connection */
   * Check policy...
   */
 
-  if ((status = cupsdCheckPolicy(dprinter->op_policy_ptr, con, NULL)) != HTTP_OK)
+  if ((status = cupsdCheckPolicy(dprinter->op_policy_ptr, con,
+                                 NULL)) != HTTP_OK)
   {
     send_http_error(con, status);
     return;
@@ -6328,8 +6287,8 @@ move_job(cupsd_client_t  *con,            /* I - Client connection */
   * See if we have a job URI or a printer URI...
   */
 
-  httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method,
-                  sizeof(method), username, sizeof(username), host,
+  httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, scheme,
+                  sizeof(scheme), username, sizeof(username), host,
                  sizeof(host), &port, resource, sizeof(resource));
 
   if (!strcmp(uri->name, "printer-uri"))
@@ -6345,7 +6304,8 @@ move_job(cupsd_client_t  *con,            /* I - Client connection */
       * Move all jobs...
       */
 
-      if ((src = cupsdValidateDest(host, resource, &stype, &sprinter)) == NULL)
+      if ((src = cupsdValidateDest(uri->values[0].string.text, &stype,
+                                   &sprinter)) == NULL)
       {
        /*
        * Bad URI...
@@ -6643,6 +6603,7 @@ print_job(cupsd_client_t  *con,           /* I - Client connection */
 {
   ipp_attribute_t *attr;               /* Current attribute */
   ipp_attribute_t *format;             /* Document-format attribute */
+  const char   *default_format;        /* document-format-default value */
   cupsd_job_t  *job;                   /* New job */
   char         filename[1024];         /* Job filename */
   mime_type_t  *filetype;              /* Type of file */
@@ -6699,6 +6660,21 @@ print_job(cupsd_client_t  *con,          /* I - Client connection */
     return;
   }
 
+ /*
+  * Is the destination valid?
+  */
+
+  if (!cupsdValidateDest(uri->values[0].string.text, NULL, &printer))
+  {
+   /*
+    * Bad URI...
+    */
+
+    send_ipp_status(con, IPP_NOT_FOUND,
+                    _("The printer or class was not found."));
+    return;
+  }
+
  /*
   * Is it a format we support?
   */
@@ -6710,7 +6686,8 @@ print_job(cupsd_client_t  *con,           /* I - Client connection */
     * Grab format from client...
     */
 
-    if (sscanf(format->values[0].string.text, "%15[^/]/%31[^;]", super, type) != 2)
+    if (sscanf(format->values[0].string.text, "%15[^/]/%31[^;]", super,
+               type) != 2)
     {
       send_ipp_status(con, IPP_BAD_REQUEST,
                       _("Could not scan type \"%s\"!"),
@@ -6718,10 +6695,26 @@ print_job(cupsd_client_t  *con,         /* I - Client connection */
       return;
     }
   }
+  else if ((default_format = cupsGetOption("document-format",
+                                           printer->num_options,
+                                          printer->options)) != NULL)
+  {
+   /*
+    * Use default document format...
+    */
+
+    if (sscanf(default_format, "%15[^/]/%31[^;]", super, type) != 2)
+    {
+      send_ipp_status(con, IPP_BAD_REQUEST,
+                      _("Could not scan type \"%s\"!"),
+                     default_format);
+      return;
+    }
+  }
   else
   {
    /*
-    * No document format attribute?  Auto-type it!
+    * Auto-type it!
     */
 
     strcpy(super, "application");
@@ -6744,32 +6737,35 @@ print_job(cupsd_client_t  *con,         /* I - Client connection */
                             doc_name ? doc_name->values[0].string.text : NULL,
                            &compression);
 
-    if (filetype)
-    {
-     /*
-      * Replace the document-format attribute value with the auto-typed one.
-      */
+    if (!filetype)
+      filetype = mimeType(MimeDatabase, super, type);
+  }
+  else
+    filetype = mimeType(MimeDatabase, super, type);
+
+  if (filetype &&
+      (!format ||
+       (!strcmp(super, "application") && !strcmp(type, "octet-stream"))))
+  {
+   /*
+    * Replace the document-format attribute value with the auto-typed or
+    * default one.
+    */
 
-      snprintf(mimetype, sizeof(mimetype), "%s/%s", filetype->super,
-               filetype->type);
+    snprintf(mimetype, sizeof(mimetype), "%s/%s", filetype->super,
+             filetype->type);
 
-      if (format)
-      {
-         _cupsStrFree(format->values[0].string.text);
+    if (format)
+    {
+      _cupsStrFree(format->values[0].string.text);
 
-       format->values[0].string.text = _cupsStrAlloc(mimetype);
-      }
-      else
-        ippAddString(con->request, IPP_TAG_JOB, IPP_TAG_MIMETYPE,
-                    "document-format", NULL, mimetype);
+      format->values[0].string.text = _cupsStrAlloc(mimetype);
     }
     else
-      filetype = mimeType(MimeDatabase, super, type);
+      ippAddString(con->request, IPP_TAG_JOB, IPP_TAG_MIMETYPE,
+                  "document-format", NULL, mimetype);
   }
-  else
-    filetype = mimeType(MimeDatabase, super, type);
-
-  if (!filetype)
+  else if (!filetype)
   {
     send_ipp_status(con, IPP_DOCUMENT_FORMAT,
                     _("Unsupported format \'%s/%s\'!"), super, type);
@@ -6798,7 +6794,7 @@ print_job(cupsd_client_t  *con,           /* I - Client connection */
   * Create the job object...
   */
 
-  if ((job = add_job(con, uri, &printer, filetype)) == NULL)
+  if ((job = add_job(con, printer, filetype)) == NULL)
     return;
 
  /*
@@ -6832,8 +6828,10 @@ print_job(cupsd_client_t  *con,          /* I - Client connection */
   * See if we need to add the ending sheet...
   */
 
+  attr = ippFindAttribute(job->attrs, "job-sheets", IPP_TAG_NAME);
+
   if (!(printer->type & (CUPS_PRINTER_REMOTE | CUPS_PRINTER_IMPLICIT)) &&
-      attr->num_values > 1)
+      attr && attr->num_values > 1)
   {
    /*
     * Yes...
@@ -7061,12 +7059,6 @@ reject_jobs(cupsd_client_t  *con,        /* I - Client connection */
 {
   http_status_t        status;                 /* Policy status */
   cups_ptype_t dtype;                  /* Destination type (printer or class) */
-  char         method[HTTP_MAX_URI],   /* Method portion of URI */
-               username[HTTP_MAX_URI], /* Username portion of URI */
-               host[HTTP_MAX_URI],     /* Host portion of URI */
-               resource[HTTP_MAX_URI]; /* Resource portion of URI */
-  int          port;                   /* Port portion of URI */
-  const char   *name;                  /* Printer name */
   cupsd_printer_t *printer;            /* Printer data */
   ipp_attribute_t *attr;               /* printer-state-message text */
 
@@ -7078,11 +7070,7 @@ reject_jobs(cupsd_client_t  *con,        /* I - Client connection */
   * Is the destination valid?
   */
 
-  httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method,
-                  sizeof(method), username, sizeof(username), host,
-                 sizeof(host), &port, resource, sizeof(resource));
-
-  if ((name = cupsdValidateDest(host, resource, &dtype, &printer)) == NULL)
+  if (!cupsdValidateDest(uri->values[0].string.text, &dtype, &printer))
   {
    /*
     * Bad URI...
@@ -7123,14 +7111,14 @@ reject_jobs(cupsd_client_t  *con,       /* I - Client connection */
     cupsdSaveAllClasses();
 
     cupsdLogMessage(CUPSD_LOG_INFO, "Class \"%s\" rejecting jobs (\"%s\").",
-                    name, get_username(con));
+                    printer->name, get_username(con));
   }
   else
   {
     cupsdSaveAllPrinters();
 
     cupsdLogMessage(CUPSD_LOG_INFO, "Printer \"%s\" rejecting jobs (\"%s\").",
-                    name, get_username(con));
+                    printer->name, get_username(con));
   }
 
  /*
@@ -7586,6 +7574,7 @@ send_document(cupsd_client_t  *con,       /* I - Client connection */
 {
   ipp_attribute_t      *attr;          /* Current attribute */
   ipp_attribute_t      *format;        /* Document-format attribute */
+  const char           *default_format;/* document-format-default value */
   int                  jobid;          /* Job ID number */
   cupsd_job_t          *job;           /* Current job */
   char                 job_uri[HTTP_MAX_URI],
@@ -7675,6 +7664,8 @@ send_document(cupsd_client_t  *con,       /* I - Client connection */
     return;
   }
 
+  printer = cupsdFindDest(job->dest);
+
  /*
   * See if the job is owned by the requesting user...
   */
@@ -7742,6 +7733,22 @@ send_document(cupsd_client_t  *con,      /* I - Client connection */
       return;
     }
   }
+  else if ((default_format = cupsGetOption("document-format",
+                                           printer->num_options,
+                                          printer->options)) != NULL)
+  {
+   /*
+    * Use default document format...
+    */
+
+    if (sscanf(default_format, "%15[^/]/%31[^;]", super, type) != 2)
+    {
+      send_ipp_status(con, IPP_BAD_REQUEST,
+                      _("Could not scan type \"%s\"!"),
+                     default_format);
+      return;
+    }
+  }
   else
   {
    /*
@@ -7768,31 +7775,35 @@ send_document(cupsd_client_t  *con,     /* I - Client connection */
                             doc_name ? doc_name->values[0].string.text : NULL,
                            &compression);
 
-    if (filetype)
-    {
-     /*
-      * Replace the document-format attribute value with the auto-typed one.
-      */
-
-      snprintf(mimetype, sizeof(mimetype), "%s/%s", filetype->super,
-               filetype->type);
-
-      if (format)
-      {
-       _cupsStrFree(format->values[0].string.text);
-       format->values[0].string.text = _cupsStrAlloc(mimetype);
-      }
-      else
-        ippAddString(con->request, IPP_TAG_JOB, IPP_TAG_MIMETYPE,
-                    "document-format", NULL, mimetype);
-    }
-    else
+    if (!filetype)
       filetype = mimeType(MimeDatabase, super, type);
   }
   else
     filetype = mimeType(MimeDatabase, super, type);
 
-  if (!filetype)
+  if (filetype &&
+      (!format ||
+       (!strcmp(super, "application") && !strcmp(type, "octet-stream"))))
+  {
+   /*
+    * Replace the document-format attribute value with the auto-typed or
+    * default one.
+    */
+
+    snprintf(mimetype, sizeof(mimetype), "%s/%s", filetype->super,
+             filetype->type);
+
+    if (format)
+    {
+      _cupsStrFree(format->values[0].string.text);
+
+      format->values[0].string.text = _cupsStrAlloc(mimetype);
+    }
+    else
+      ippAddString(con->request, IPP_TAG_JOB, IPP_TAG_MIMETYPE,
+                  "document-format", NULL, mimetype);
+  }
+  else if (!filetype)
   {
     send_ipp_status(con, IPP_DOCUMENT_FORMAT,
                     _("Unsupported format \'%s/%s\'!"), super, type);
@@ -7806,8 +7817,6 @@ send_document(cupsd_client_t  *con,       /* I - Client connection */
     return;
   }
 
-  printer = cupsdFindDest(job->dest);
-
   if (printer->filetypes && !cupsArrayFind(printer->filetypes, filetype))
   {
     snprintf(mimetype, sizeof(mimetype), "%s/%s", filetype->super,
@@ -8034,16 +8043,6 @@ set_default(cupsd_client_t  *con,        /* I - Client connection */
 {
   http_status_t                status;         /* Policy status */
   cups_ptype_t         dtype;          /* Destination type (printer or class) */
-  char                 method[HTTP_MAX_URI],
-                                       /* Method portion of URI */
-                       username[HTTP_MAX_URI],
-                                       /* Username portion of URI */
-                       host[HTTP_MAX_URI],
-                                       /* Host portion of URI */
-                       resource[HTTP_MAX_URI];
-                                       /* Resource portion of URI */
-  int                  port;           /* Port portion of URI */
-  const char           *name;          /* Printer name */
   cupsd_printer_t      *printer;       /* Printer */
 
 
@@ -8054,11 +8053,7 @@ set_default(cupsd_client_t  *con,        /* I - Client connection */
   * Is the destination valid?
   */
 
-  httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method,
-                  sizeof(method), username, sizeof(username), host,
-                 sizeof(host), &port, resource, sizeof(resource));
-
-  if ((name = cupsdValidateDest(host, resource, &dtype, &printer)) == NULL)
+  if (!cupsdValidateDest(uri->values[0].string.text, &dtype, &printer))
   {
    /*
     * Bad URI...
@@ -8091,8 +8086,8 @@ set_default(cupsd_client_t  *con, /* I - Client connection */
   cupsdWritePrintcap();
 
   cupsdLogMessage(CUPSD_LOG_INFO,
-                  "Default destination set to \"%s\" by \"%s\".", name,
-                  get_username(con));
+                  "Default destination set to \"%s\" by \"%s\".",
+                 printer->name, get_username(con));
 
  /*
   * Everything was ok, so return OK status...
@@ -8594,9 +8589,8 @@ set_printer_defaults(
                       attr->values[0].string.text);
       cupsdSetString(&printer->error_policy, attr->values[0].string.text);
     }
-    else if (!strcmp(attr->name, "document-format-default") ||
-             !strcmp(attr->name, "notify-lease-duration-default") ||
-             !strcmp(attr->name, "notify-notify-events-default"))
+    else if (!strcmp(attr->name, "notify-lease-duration-default") ||
+             !strcmp(attr->name, "notify-events-default"))
       continue;
 
    /*
@@ -8698,16 +8692,6 @@ start_printer(cupsd_client_t  *con,      /* I - Client connection */
 {
   http_status_t                status;         /* Policy status */
   cups_ptype_t         dtype;          /* Destination type (printer or class) */
-  char                 method[HTTP_MAX_URI],
-                                       /* Method portion of URI */
-                       username[HTTP_MAX_URI],
-                                       /* Username portion of URI */
-                       host[HTTP_MAX_URI],
-                                       /* Host portion of URI */
-                       resource[HTTP_MAX_URI];
-                                       /* Resource portion of URI */
-  int                  port;           /* Port portion of URI */
-  const char           *name;          /* Printer name */
   cupsd_printer_t      *printer;       /* Printer data */
 
 
@@ -8718,11 +8702,7 @@ start_printer(cupsd_client_t  *con,      /* I - Client connection */
   * Is the destination valid?
   */
 
-  httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method,
-                  sizeof(method), username, sizeof(username), host,
-                 sizeof(host), &port, resource, sizeof(resource));
-
-  if ((name = cupsdValidateDest(host, resource, &dtype, &printer)) == NULL)
+  if (!cupsdValidateDest(uri->values[0].string.text, &dtype, &printer))
   {
    /*
     * Bad URI...
@@ -8753,17 +8733,19 @@ start_printer(cupsd_client_t  *con,     /* I - Client connection */
 
   if (dtype & CUPS_PRINTER_CLASS)
   {
-    cupsdLogMessage(CUPSD_LOG_INFO, "Class \"%s\" started by \"%s\".", name,
-                    get_username(con));
+    cupsdLogMessage(CUPSD_LOG_INFO, "Class \"%s\" started by \"%s\".",
+                    printer->name, get_username(con));
     cupsdAddEvent(CUPSD_EVENT_PRINTER_MODIFIED, printer, NULL,
-                  "Class \"%s\" started by \"%s\".", name, get_username(con));
+                  "Class \"%s\" started by \"%s\".", printer->name,
+                 get_username(con));
   }
   else
   {
-    cupsdLogMessage(CUPSD_LOG_INFO, "Printer \"%s\" started by \"%s\".", name,
-                    get_username(con));
+    cupsdLogMessage(CUPSD_LOG_INFO, "Printer \"%s\" started by \"%s\".",
+                    printer->name, get_username(con));
     cupsdAddEvent(CUPSD_EVENT_PRINTER_MODIFIED, printer, NULL,
-                  "Printer \"%s\" started by \"%s\".", name, get_username(con));
+                  "Printer \"%s\" started by \"%s\".", printer->name,
+                 get_username(con));
   }
 
   cupsdCheckJobs();
@@ -8786,16 +8768,6 @@ stop_printer(cupsd_client_t  *con,       /* I - Client connection */
 {
   http_status_t                status;         /* Policy status */
   cups_ptype_t         dtype;          /* Destination type (printer or class) */
-  char                 method[HTTP_MAX_URI],
-                                       /* Method portion of URI */
-                       username[HTTP_MAX_URI],
-                                       /* Username portion of URI */
-                       host[HTTP_MAX_URI],
-                                       /* Host portion of URI */
-                       resource[HTTP_MAX_URI];
-                                       /* Resource portion of URI */
-  int                  port;           /* Port portion of URI */
-  const char           *name;          /* Printer name */
   cupsd_printer_t      *printer;       /* Printer data */
   ipp_attribute_t      *attr;          /* printer-state-message attribute */
 
@@ -8807,11 +8779,7 @@ stop_printer(cupsd_client_t  *con,       /* I - Client connection */
   * Is the destination valid?
   */
 
-  httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method,
-                  sizeof(method), username, sizeof(username), host,
-                 sizeof(host), &port, resource, sizeof(resource));
-
-  if ((name = cupsdValidateDest(host, resource, &dtype, &printer)) == NULL)
+  if (!cupsdValidateDest(uri->values[0].string.text, &dtype, &printer))
   {
    /*
     * Bad URI...
@@ -8849,17 +8817,19 @@ stop_printer(cupsd_client_t  *con,      /* I - Client connection */
 
   if (dtype & CUPS_PRINTER_CLASS)
   {
-    cupsdLogMessage(CUPSD_LOG_INFO, "Class \"%s\" stopped by \"%s\".", name,
-                    get_username(con));
+    cupsdLogMessage(CUPSD_LOG_INFO, "Class \"%s\" stopped by \"%s\".",
+                    printer->name, get_username(con));
     cupsdAddEvent(CUPSD_EVENT_PRINTER_MODIFIED, printer, NULL,
-                  "Class \"%s\" stopped by \"%s\".", name, get_username(con));
+                  "Class \"%s\" stopped by \"%s\".", printer->name,
+                 get_username(con));
   }
   else
   {
-    cupsdLogMessage(CUPSD_LOG_INFO, "Printer \"%s\" stopped by \"%s\".", name,
-                    get_username(con));
+    cupsdLogMessage(CUPSD_LOG_INFO, "Printer \"%s\" stopped by \"%s\".",
+                    printer->name, get_username(con));
     cupsdAddEvent(CUPSD_EVENT_PRINTER_MODIFIED, printer, NULL,
-                  "Printer \"%s\" stopped by \"%s\".", name, get_username(con));
+                  "Printer \"%s\" stopped by \"%s\".", printer->name,
+                 get_username(con));
   }
 
  /*
@@ -8986,15 +8956,6 @@ validate_job(cupsd_client_t  *con,       /* I - Client connection */
   ipp_attribute_t      *attr;          /* Current attribute */
   ipp_attribute_t      *format;        /* Document-format attribute */
   cups_ptype_t         dtype;          /* Destination type (printer or class) */
-  char                 method[HTTP_MAX_URI],
-                                       /* Method portion of URI */
-                       username[HTTP_MAX_URI],
-                                       /* Username portion of URI */
-                       host[HTTP_MAX_URI],
-                                       /* Host portion of URI */
-                       resource[HTTP_MAX_URI];
-                                       /* Resource portion of URI */
-  int                  port;           /* Port portion of URI */
   char                 super[MIME_MAX_SUPER],
                                        /* Supertype of file */
                        type[MIME_MAX_TYPE];
@@ -9054,11 +9015,7 @@ validate_job(cupsd_client_t  *con,       /* I - Client connection */
   * Is the destination valid?
   */
 
-  httpSeparateURI(HTTP_URI_CODING_ALL, uri->values[0].string.text, method,
-                  sizeof(method), username, sizeof(username), host,
-                 sizeof(host), &port, resource, sizeof(resource));
-
-  if (cupsdValidateDest(host, resource, &dtype, &printer) == NULL)
+  if (!cupsdValidateDest(uri->values[0].string.text, &dtype, &printer))
   {
    /*
     * Bad URI...
@@ -9158,5 +9115,5 @@ validate_user(cupsd_job_t    *job,        /* I - Job */
 
 
 /*
- * End of "$Id: ipp.c 5438 2006-04-19 21:21:05Z mike $".
+ * End of "$Id: ipp.c 5552 2006-05-20 12:00:37Z mike $".
  */
index dae83615806f0631316468c80d42c4a879501a55..de0d6005cf7b5fd0feaf6ba34cb72c43aa000687 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: job.c 5494 2006-05-05 17:44:36Z mike $"
+ * "$Id: job.c 5543 2006-05-18 20:51:33Z mike $"
  *
  *   Job management routines for the Common UNIX Printing System (CUPS).
  *
@@ -865,13 +865,6 @@ cupsdLoadJob(cupsd_job_t *job)             /* I - Job */
   cups_file_t          *fp;            /* Job file */
   int                  fileid;         /* Current file ID */
   ipp_attribute_t      *attr;          /* Job attribute */
-  char                 scheme[32],     /* Scheme portion of URI */
-                       username[64],   /* Username portion of URI */
-                       host[HTTP_MAX_HOST],
-                                       /* Host portion of URI */
-                       resource[HTTP_MAX_URI];
-                                       /* Resource portion of URI */
-  int                  port;           /* Port portion of URI */
   const char           *dest;          /* Destination */
   mime_type_t          **filetypes;    /* New filetypes array */
   int                  *compressions;  /* New compressions array */
@@ -879,7 +872,7 @@ cupsdLoadJob(cupsd_job_t *job)              /* I - Job */
 
   if (job->attrs)
   {
-    if (job->state_value >= IPP_JOB_STOPPED)
+    if (job->state_value > IPP_JOB_STOPPED)
       job->access_time = time(NULL);
 
     return;
@@ -955,11 +948,7 @@ cupsdLoadJob(cupsd_job_t *job)             /* I - Job */
       return;
     }
 
-    httpSeparateURI(HTTP_URI_CODING_ALL, attr->values[0].string.text, scheme,
-                    sizeof(scheme), username, sizeof(username), host,
-                   sizeof(host), &port, resource, sizeof(resource));
-
-    if ((dest = cupsdValidateDest(host, resource, &(job->dtype),
+    if ((dest = cupsdValidateDest(attr->values[0].string.text, &(job->dtype),
                                   NULL)) == NULL)
     {
       cupsdLogMessage(CUPSD_LOG_ERROR,
@@ -2027,7 +2016,7 @@ load_job_cache(const char *filename)      /* I - job.cache filename */
     {
       cupsArrayAdd(Jobs, job);
 
-      if (job->state_value < IPP_JOB_STOPPED)
+      if (job->state_value <= IPP_JOB_STOPPED)
       {
         cupsArrayAdd(ActiveJobs, job);
        cupsdLoadJob(job);
@@ -2285,7 +2274,7 @@ load_request_root(void)
 
       cupsArrayAdd(Jobs, job);
 
-      if (job->state_value < IPP_JOB_STOPPED)
+      if (job->state_value <= IPP_JOB_STOPPED)
         cupsArrayAdd(ActiveJobs,job);
       else
         unload_job(job);
@@ -2643,8 +2632,23 @@ start_job(cupsd_job_t     *job,          /* I - Job ID */
 
   if (job->current_file == 0)
   {
+   /*
+    * Set the processing time...
+    */
+
     set_time(job, "time-at-processing");
+
+   /*
+    * Create the backchannel pipes and make them non-blocking...
+    */
+
     cupsdOpenPipe(job->back_pipes);
+
+    fcntl(job->back_pipes[0], F_SETFL,
+          fcntl(job->back_pipes[0], F_GETFL) | O_NONBLOCK);
+
+    fcntl(job->back_pipes[1], F_SETFL,
+          fcntl(job->back_pipes[1], F_GETFL) | O_NONBLOCK);
   }
 
  /*
@@ -3440,5 +3444,5 @@ unload_job(cupsd_job_t *job)              /* I - Job */
 
 
 /*
- * End of "$Id: job.c 5494 2006-05-05 17:44:36Z mike $".
+ * End of "$Id: job.c 5543 2006-05-18 20:51:33Z mike $".
  */
index b5a715d3a36d1477a05922205661c0593362518e..1beabcf1fda2385e040784f48417184ad7a2307f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: printers.c 5491 2006-05-04 20:53:35Z mike $"
+ * "$Id: printers.c 5533 2006-05-16 19:45:14Z mike $"
  *
  *   Printer routines for the Common UNIX Printing System (CUPS).
  *
@@ -406,10 +406,6 @@ cupsdCreateCommonData(void)
   /* copies-supported */
   ippAddRange(CommonData, IPP_TAG_PRINTER, "copies-supported", 1, MaxCopies);
 
-  /* document-format-default */
-  ippAddString(CommonData, IPP_TAG_PRINTER, IPP_TAG_MIMETYPE,
-               "document-format-default", NULL, "application/octet-stream");
-
   /* generated-natural-language-supported */
   ippAddString(CommonData, IPP_TAG_PRINTER, IPP_TAG_LANGUAGE,
                "generated-natural-language-supported", NULL, DefaultLanguage);
@@ -2404,18 +2400,25 @@ cupsdUpdatePrinters(void)
 
 const char *                           /* O - Printer or class name */
 cupsdValidateDest(
-    const char      *hostname,         /* I - Host name */
-    const char      *resource,         /* I - Resource name */
+    const char      *uri,              /* I - Printer URI */
     cups_ptype_t    *dtype,            /* O - Type (printer or class) */
     cupsd_printer_t **printer)         /* O - Printer pointer */
 {
   cupsd_printer_t      *p;             /* Current printer */
   char                 localname[1024],/* Localized hostname */
                        *lptr,          /* Pointer into localized hostname */
-                       *sptr;          /* Pointer into server name */
-
-
-  DEBUG_printf(("cupsdValidateDest(\"%s\", \"%s\", %p, %p)\n", hostname, resource,
+                       *sptr,          /* Pointer into server name */
+                       *rptr,          /* Pointer into resource */
+                       scheme[32],     /* Scheme portion of URI */
+                       username[64],   /* Username portion of URI */
+                       hostname[HTTP_MAX_HOST],
+                                       /* Host portion of URI */
+                       resource[HTTP_MAX_URI];
+                                       /* Resource portion of URI */
+  int                  port;           /* Port portion of URI */
+
+
+  DEBUG_printf(("cupsdValidateDest(uri=\"%s\", dtype=%p, printer=%p)\n", uri,
                 dtype, printer));
 
  /*
@@ -2425,7 +2428,16 @@ cupsdValidateDest(
   if (printer)
     *printer = NULL;
 
-  *dtype = (cups_ptype_t)0;
+  if (dtype)
+    *dtype = (cups_ptype_t)0;
+
+ /*
+  * Pull the hostname and resource from the URI...
+  */
+
+  httpSeparateURI(HTTP_URI_CODING_ALL, uri, scheme, sizeof(scheme),
+                  username, sizeof(username), hostname, sizeof(hostname),
+                 &port, resource, sizeof(resource));
 
  /*
   * See if the resource is a class or printer...
@@ -2437,7 +2449,7 @@ cupsdValidateDest(
     * Class...
     */
 
-    resource += 9;
+    rptr = resource + 9;
   }
   else if (!strncmp(resource, "/printers/", 10))
   {
@@ -2445,7 +2457,7 @@ cupsdValidateDest(
     * Printer...
     */
 
-    resource += 10;
+    rptr = resource + 10;
   }
   else
   {
@@ -2460,17 +2472,19 @@ cupsdValidateDest(
   * See if the printer or class name exists...
   */
 
-  p = cupsdFindDest(resource);
+  p = cupsdFindDest(rptr);
 
-  if (p == NULL && strchr(resource, '@') == NULL)
+  if (p == NULL && strchr(rptr, '@') == NULL)
     return (NULL);
   else if (p != NULL)
   {
     if (printer)
       *printer = p;
 
-    *dtype = p->type & (CUPS_PRINTER_CLASS | CUPS_PRINTER_IMPLICIT |
-                        CUPS_PRINTER_REMOTE);
+    if (dtype)
+      *dtype = p->type & (CUPS_PRINTER_CLASS | CUPS_PRINTER_IMPLICIT |
+                          CUPS_PRINTER_REMOTE);
+
     return (p->name);
   }
 
@@ -2479,7 +2493,7 @@ cupsdValidateDest(
   */
 
   if (!strcasecmp(hostname, "localhost"))
-    hostname = ServerName;
+    strlcpy(hostname, ServerName, sizeof(hostname));
 
   strlcpy(localname, hostname, sizeof(localname));
 
@@ -2521,13 +2535,15 @@ cupsdValidateDest(
        p;
        p = (cupsd_printer_t *)cupsArrayNext(Printers))
     if (!strcasecmp(p->hostname, localname) &&
-        !strcasecmp(p->name, resource))
+        !strcasecmp(p->name, rptr))
     {
       if (printer)
         *printer = p;
 
-      *dtype = p->type & (CUPS_PRINTER_CLASS | CUPS_PRINTER_IMPLICIT |
-                          CUPS_PRINTER_REMOTE);
+      if (dtype)
+       *dtype = p->type & (CUPS_PRINTER_CLASS | CUPS_PRINTER_IMPLICIT |
+                            CUPS_PRINTER_REMOTE);
+
       return (p->name);
     }
 
@@ -2776,6 +2792,10 @@ add_printer_defaults(cupsd_printer_t *p)/* I - Printer */
     ippAddInteger(p->attrs, IPP_TAG_PRINTER, IPP_TAG_INTEGER, "copies-default",
                   1);
 
+  if (!cupsGetOption("document-format", p->num_options, p->options))
+    ippAddString(CommonData, IPP_TAG_PRINTER, IPP_TAG_MIMETYPE,
+                "document-format-default", NULL, "application/octet-stream");
+
   if (!cupsGetOption("job-hold-until", p->num_options, p->options))
     ippAddString(p->attrs, IPP_TAG_PRINTER, IPP_TAG_KEYWORD,
                  "job-hold-until-default", NULL, "no-hold");
@@ -2924,10 +2944,6 @@ add_printer_formats(cupsd_printer_t *p)  /* I - Printer */
        type;
        type = mimeNextType(MimeDatabase))
   {
-    if (!strcasecmp(type->super, "application") &&
-       !strcasecmp(type->type, "octet-stream"))
-      continue;
-
     snprintf(mimetype, sizeof(mimetype), "%s/%s", type->super, type->type);
 
     if ((filters = mimeFilter(MimeDatabase, type, p->filetype, NULL)) != NULL)
@@ -2953,14 +2969,20 @@ add_printer_formats(cupsd_printer_t *p) /* I - Printer */
   * Add the file formats that can be filtered...
   */
 
+  if ((type = mimeType(MimeDatabase, "application", "octet-stream")) == NULL ||
+      !cupsArrayFind(p->filetypes, type))
+    i = 1;
+  else
+    i = 0;
 
   attr = ippAddStrings(p->attrs, IPP_TAG_PRINTER, IPP_TAG_MIMETYPE,
                        "document-format-supported",
                       cupsArrayCount(p->filetypes) + 1, NULL, NULL);
 
-  attr->values[0].string.text = _cupsStrAlloc("application/octet-stream");
+  if (i)
+    attr->values[0].string.text = _cupsStrAlloc("application/octet-stream");
 
-  for (i = 1, type = (mime_type_t *)cupsArrayFirst(p->filetypes);
+  for (type = (mime_type_t *)cupsArrayFirst(p->filetypes);
        type;
        i ++, type = (mime_type_t *)cupsArrayNext(p->filetypes))
   {
@@ -3033,7 +3055,7 @@ write_irix_config(cupsd_printer_t *p)     /* I - Printer to update */
 {
   char         filename[1024];         /* Interface script filename */
   cups_file_t  *fp;                    /* Interface script file */
-
+  ipp_attribute_t *attr;               /* Attribute data */
 
 
  /*
@@ -3278,5 +3300,5 @@ write_irix_state(cupsd_printer_t *p)      /* I - Printer to update */
 
 
 /*
- * End of "$Id: printers.c 5491 2006-05-04 20:53:35Z mike $".
+ * End of "$Id: printers.c 5533 2006-05-16 19:45:14Z mike $".
  */
index ef8b3470909ef672748f076245de2e754c02b845..7d502b681e062aa4f688a0056c2708922e1c4268 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: printers.h 5330 2006-03-23 21:07:20Z mike $"
+ * "$Id: printers.h 5533 2006-05-16 19:45:14Z mike $"
  *
  *   Printer definitions for the Common UNIX Printing System (CUPS) scheduler.
  *
@@ -135,8 +135,7 @@ extern void         cupsdStopPrinter(cupsd_printer_t *p, int update);
 extern void            cupsdUpdatePrinters(void);
 extern cupsd_quota_t   *cupsdUpdateQuota(cupsd_printer_t *p, const char *username,
                                          int pages, int k);
-extern const char      *cupsdValidateDest(const char *hostname,
-                                          const char *resource,
+extern const char      *cupsdValidateDest(const char *uri,
                                           cups_ptype_t *dtype,
                                           cupsd_printer_t **printer);
 extern void            cupsdWritePrintcap(void);
@@ -146,5 +145,5 @@ extern char         *cupsdSanitizeURI(const char *uri, char *buffer,
 
 
 /*
- * End of "$Id: printers.h 5330 2006-03-23 21:07:20Z mike $".
+ * End of "$Id: printers.h 5533 2006-05-16 19:45:14Z mike $".
  */
index 7efb1c6a8882225fb4124877b4307c84023164c0..64897975c6aec8dd2ed26912fa0e90541679a25a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: testmime.c 5061 2006-02-03 16:32:18Z mike $"
+ * "$Id: testmime.c 5533 2006-05-16 19:45:14Z mike $"
  *
  *   MIME test program for the Common UNIX Printing System (CUPS).
  *
@@ -98,6 +98,8 @@ main(int  argc,                               /* I - Number of command-line args */
       if (src)
        printf("%s: %s/%s%s\n", argv[i], src->super, src->type,
               compression ? " (gzipped)" : "");
+      else if ((src = mimeType(mime, "application", "octet-stream")) != NULL)
+       printf("%s: application/octet-stream\n", argv[i]);
       else
       {
        printf("%s: unknown\n", argv[i]);
@@ -158,7 +160,8 @@ main(int  argc,                             /* I - Number of command-line args */
             filter->dst->super, filter->dst->type,
             filter->filter, filter->cost);
 
-    type_dir(mime, "..");
+    type_dir(mime, "../doc");
+    type_dir(mime, "../man");
   }
 
   return (0);
@@ -280,6 +283,9 @@ type_dir(mime_t     *mime,          /* I - MIME database */
 
   while ((dent = cupsDirRead(dir)) != NULL)
   {
+    if (dent->filename[0] == '.')
+      continue;
+
     snprintf(filename, sizeof(filename), "%s/%s", dirname, dent->filename);
 
     if (S_ISDIR(dent->fileinfo.st_mode))
@@ -325,5 +331,5 @@ type_dir(mime_t     *mime,          /* I - MIME database */
 
 
 /*
- * End of "$Id: testmime.c 5061 2006-02-03 16:32:18Z mike $".
+ * End of "$Id: testmime.c 5533 2006-05-16 19:45:14Z mike $".
  */
index f5885d82b4fcbb7422c406199abc0e9cac443366..0177cc7eb33cefab9ccd7368e211b1bffc4cedd1 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: cupstestppd.c 5422 2006-04-18 15:16:00Z mike $"
+ * "$Id: cupstestppd.c 5548 2006-05-19 19:38:31Z mike $"
  *
  *   PPD test program for the Common UNIX Printing System (CUPS).
  *
@@ -1176,7 +1176,8 @@ main(int  argc,                   /* I - Number of command-line arguments */
        }
       }
 
-      if (ppdFindAttr(ppd, "1284DeviceId", NULL))
+      if ((attr = ppdFindAttr(ppd, "1284DeviceID", NULL)) &&
+          strcmp(attr->name, "1284DeviceID"))
       {
        if (verbose >= 0)
        {
@@ -1729,5 +1730,5 @@ usage(void)
 
 
 /*
- * End of "$Id: cupstestppd.c 5422 2006-04-18 15:16:00Z mike $".
+ * End of "$Id: cupstestppd.c 5548 2006-05-19 19:38:31Z mike $".
  */
index 35498d904a63e01b1055d810434b858bcb3deb40..1d60982536285ff0e2a467a6871602624bd7da18 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: lpadmin.c 5154 2006-02-23 01:36:15Z mike $"
+ * "$Id: lpadmin.c 5544 2006-05-18 21:00:16Z mike $"
  *
  *   "lpadmin" command for the Common UNIX Printing System (CUPS).
  *
@@ -466,6 +466,25 @@ main(int  argc,                    /* I - Number of command-line arguments */
              return (1);
            break;
 
+        case 'U' : /* Username */
+           if (argv[i][2] != '\0')
+             cupsSetUser(argv[i] + 2);
+           else
+           {
+             i ++;
+             if (i >= argc)
+             {
+               _cupsLangPrintf(stderr,
+                               _("%s: Error - expected username after "
+                                 "\'-U\' option!\n"),
+                               argv[0]);
+               return (1);
+             }
+
+              cupsSetUser(argv[i]);
+           }
+           break;
+           
         case 'u' : /* Allow/deny users */
            if (argv[i][2])
              val = argv[i] + 2;
@@ -1965,5 +1984,5 @@ validate_name(const char *name)           /* I - Name to check */
 
 
 /*
- * End of "$Id: lpadmin.c 5154 2006-02-23 01:36:15Z mike $".
+ * End of "$Id: lpadmin.c 5544 2006-05-18 21:00:16Z mike $".
  */
index bce318bc1d7fbf41ee5146012ec3642af4909395..5a6f3172795d9cb667a27dab809d1a99e4b4ff8a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * "$Id: lpstat.c 5331 2006-03-23 21:21:19Z mike $"
+ * "$Id: lpstat.c 5527 2006-05-15 19:37:11Z mike $"
  *
  *   "lpstat" command for the Common UNIX Printing System (CUPS).
  *
@@ -235,10 +235,10 @@ main(int  argc,                   /* I - Number of command-line arguments */
            }
            else
            {
-             _cupsLangPuts(stderr,
-                           _("%s: Error - expected destination after "
-                             "\'-b\' option!\n"),
-                           argv[0]);
+             _cupsLangPrintf(stderr,
+                             _("%s: Error - expected destination after "
+                               "\'-b\' option!\n"),
+                             argv[0]);
 
              return (1);
            }
@@ -2248,5 +2248,5 @@ show_scheduler(http_t *http)      /* I - HTTP connection to server */
 
 
 /*
- * End of "$Id: lpstat.c 5331 2006-03-23 21:21:19Z mike $".
+ * End of "$Id: lpstat.c 5527 2006-05-15 19:37:11Z mike $".
  */
index 9e36defe521c1de6251b38778265dee2e1dda976..97cc2bef03e4896817a37a0aaea8b395289d18d4 100644 (file)
@@ -18,7 +18,7 @@
 <TD>{job_k_octets}k&nbsp;</TD>
 <TD>{job_media_sheets_completed=0?Desconocido:{?job_media_sheets_completed}}</TD>
 <TD>{job_state=3?pendiente desde<BR>{time_at_creation}:{job_state=4?retenido desde<BR>{time_at_creation}:
-{job_state=5?en proceso desde<BR>{time_at_processing}:{job_state=6?parado el<BR>{time_at_completed}:
+{job_state=5?en proceso desde<BR>{time_at_processing}:{job_state=6?parado:
 {job_state=7?cancelado el<BR>{time_at_completed}:{job_state=8?abandonado:completado el<BR>{time_at_completed}}}}}}}&nbsp;</TD>
 <TD>
 {job_preserved>0?
index 371bc30beb86d85a3f7bed90ec7791f558e47aa9..be029120e67f36734a8fe8c6389a61f8a44f4530 100644 (file)
@@ -18,7 +18,7 @@
 <TD>{job_k_octets}k&nbsp;</TD>
 <TD>{job_media_sheets_completed=0?不明:{?job_media_sheets_completed}}</TD>
 <TD>{job_state=3?{time_at_creation}<BR>から保留中:{job_state=4?{time_at_creation}<BR>からホールド中:
-{job_state=5?{time_at_processing}<BR>から処理中:{job_state=6?{time_at_completed}<BR>に停止:
+{job_state=5?{time_at_processing}<BR>から処理中:{job_state=6?に停止:
 {job_state=7?{time_at_completed}<BR>にキャンセル:{time_at_completed}<BR>{job_state=8?に中断:に完了}}}}}}&nbsp;</TD>
 <TD>
 {job_preserved>0?
index 4f22096f314c33be618321e02ff4b6cd8ffea441..08d20784960b6a7a27bc49775025d1bf71bab971 100644 (file)
@@ -18,7 +18,7 @@
 <TD>{job_k_octets}k&nbsp;</TD>
 <TD>{job_media_sheets_completed=0?Unknown:{?job_media_sheets_completed}}</TD>
 <TD>{job_state=3?pending since<BR>{time_at_creation}:{job_state=4?held since<BR>{time_at_creation}:
-{job_state=5?processing since<BR>{time_at_processing}:{job_state=6?stopped at<BR>{time_at_completed}:
+{job_state=5?processing since<BR>{time_at_processing}:{job_state=6?stopped:
 {job_state=7?cancelled at<BR>{time_at_completed}:{job_state=8?aborted:completed at<BR>{time_at_completed}}}}}}}&nbsp;</TD>
 <TD>
 {job_preserved>0?
index 34006839617773ba630aa1d87786d00a076e5012..6120c878d286fc5d2d8a2d2792c722f24e9c7085 100644 (file)
@@ -1,7 +1,7 @@
 <FORM METHOD="POST" ACTION="/admin">
 <INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
 
-<H2 CLASS="title">Utwórz Grupę</H2>
+<H2 CLASS="title">Dodaj klasę</H2>
 
 <TABLE>
 <TR>
@@ -17,7 +17,7 @@
 <TD><INPUT TYPE="TEXT" NAME="PRINTER_INFO" SIZE="40" MAXLENGTH="127"></TD>
 </TR>
 <TR>
-<TH CLASS="label">Składniki:</TH>
+<TH CLASS="label">Elementy:</TH>
 <TD>
 <SELECT NAME="MEMBER_URIS" SIZE="10" MULTIPLE>
 {[member_uris]<OPTION VALUE="{member_uris}" {?member_selected}>{member_names}}
@@ -26,7 +26,7 @@
 </TR>
 <TR>
 <TD></TD>
-<TD><INPUT TYPE="IMAGE" SRC="/images/button-add-class.gif" ALT="Dodaj Klasę"></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-add-class.gif" ALT="Dodaj klasę"></TD>
 </TR>
 </TABLE>
 
index 4dee7d5bc6a276b691550d880915d1d82e5afd6f..a264e05f2dcd998b594d9da216e5e6cd7f581ee9 100644 (file)
@@ -1,27 +1,27 @@
 <FORM METHOD="POST" ACTION="/admin">
 <INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
 
-<H2 CLASS="title">Dodaj Nową Drukarkę</H2>
+<H2 CLASS="title">Dodaj nową drukarkę</H2>
 
 <TABLE>
 <TR>
 <TH CLASS="label">Nazwa:</TH>
 <TD><INPUT TYPE="TEXT" NAME="PRINTER_NAME" SIZE="40" MAXLENGTH="127"><BR>
-<SMALL>(Może zawierać wszystkie drukowalne znaki oprócz "/", "#", i spacji)</SMALL></TD>
+<SMALL>(Może zawierać dowolne drukowalne znaki z wyjątkiem "/", "#" i spacji)</SMALL></TD>
 </TR>
 <TR>
 <TH CLASS="label">Położenie:</TH>
 <TD><INPUT TYPE="TEXT" NAME="PRINTER_LOCATION" SIZE="40" MAXLENGTH="127"><BR>
-<SMALL>(Położenie zrozumiałe dla ludzi takie jak "Laboratorium 1")</SMALL></TD>
+<SMALL>(Położenie czytelne dla człowieka, takie jak "Laboratorium 1")</SMALL></TD>
 </TR>
 <TR>
 <TH CLASS="label">Opis:</TH>
 <TD><INPUT TYPE="TEXT" NAME="PRINTER_INFO" SIZE="40" MAXLENGTH="127"><BR>
-<SMALL>(Opis zrozumiały dla ludzi taki jak "HP LaserJet z Dupleksem")</SMALL></TD>
+<SMALL>(Opis czytelny dla człowieka, taki jak "HP LaserJet z Dupleksem")</SMALL></TD>
 </TR>
 <TR>
 <TD></TD>
-<TD><INPUT TYPE="IMAGE" SRC="/images/button-continue.gif" ALT="Dalej"></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-continue.gif" ALT="Kontynuuj"></TD>
 </TR>
 </TABLE>
 
index 9d88d5557eb8eae7f8c7103382201b6db297e20e..5dd0ac8187bbf792b58a6be752a1641717c4a716 100644 (file)
@@ -1,38 +1,38 @@
-<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" SUMMARY="Administration Tasks">
+<TABLE CELLPADDING="0" CELLSPACING="0" WIDTH="100%" SUMMARY="Zadania administracyjne">
 <TR><TD VALIGN="TOP" NOWRAP>
 
 <H2 CLASS="title">Drukarki</H2>
 
 <P>
 <A HREF="/admin?op=add-printer"><IMG
-SRC="/images/button-add-printer.gif" ALT="Dodaj Drukarkę" CLASS="button"></A>
+SRC="/images/button-add-printer.gif" ALT="Dodaj drukarkę" CLASS="button"></A>
 <A HREF="/printers/"><IMG SRC="/images/button-manage-printers.gif"
-ALT="Manage Printers" CLASS="button"></A>
+ALT="Zarządzaj drukarkami" CLASS="button"></A>
 {have_samba?<A HREF="/admin/?op=export-samba"><IMG
-SRC="/images/button-export-samba.gif" ALT="Eksportuj do Samby"
+SRC="/images/button-export-samba.gif" ALT="Wyeksportuj drukarki do Samby"
 CLASS="button"></A>:}
 </P>
 
-{#device_uri=0?:<P><B>Znaleziono Nową Drukarkę:</B></P><UL>{[device_uri]
-<LI>{device_make_and_model} ({device_info})
-<A HREF="/admin?op=add-printer&amp;{device_options}"><IMG
-SRC="/images/button-add-this-printer.gif" ALT="Dodaj Tę Drukarkę" CLASS="button"
-ALIGN="MIDDLE"></A></LI>
+{#device_uri=0?:<P><B>Znaleziono nowe drukarki:</B></P><UL>{[device_uri]
+<LI><A HREF="/admin?op=add-printer&amp;{device_options}"><IMG
+SRC="/images/button-add-this-printer.gif" ALT="Dodaj tę drukarkę" CLASS="button"
+ALIGN="MIDDLE"></A>
+{device_make_and_model} ({device_info})</LI>
 }</UL>}
 
-<H2 CLASS="title">Grupy</H2>
+<H2 CLASS="title">Klasy</H2>
 
 <P>
 <A HREF="/admin?op=add-class"><IMG SRC="/images/button-add-class.gif"
-ALT="Utwórz Grupę" CLASS="button"></A>
+ALT="Dodaj klasę" CLASS="button"></A>
 <A HREF="/classes/"><IMG SRC="/images/button-manage-classes.gif"
-ALT="Zarządzaj Grupami" CLASS="button"></A>
+ALT="Zarządzaj klasami" CLASS="button"></A>
 </P>
 
-<H2 CLASS="title">Wydruki</H2>
+<H2 CLASS="title">Zadania</H2>
 
 <P>
-<A HREF="/jobs/"><IMG SRC="/images/button-manage-jobs.gif" ALT="Zarządzaj Wydrukami" CLASS="button"></A>
+<A HREF="/jobs/"><IMG SRC="/images/button-manage-jobs.gif" ALT="Zarządzaj zadaniami" CLASS="button"></A>
 </P>
 
 </TD><TD>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD><TD VALIGN="TOP">
@@ -41,15 +41,15 @@ ALT="Zarządzaj Grupami" CLASS="button"></A>
 
 <P>
 <A HREF="/admin?op=config-server"><IMG
-SRC="/images/button-edit-configuration-file.gif" ALT="Edytuj Plik Konfiguracji" CLASS="button"></A>
+SRC="/images/button-edit-configuration-file.gif" ALT="Edytuj plik konfiguracji" CLASS="button"></A>
 <A HREF="/admin/log/access_log" TARGET="_blank"><IMG
-SRC="/images/button-view-access-log.gif" ALT="Pokaż Dziennik Dostępu"
+SRC="/images/button-view-access-log.gif" ALT="Wyświetl dziennik dostępu"
 CLASS="button"></A>
 <A HREF="/admin/log/error_log" TARGET="_blank"><IMG
-SRC="/images/button-view-error-log.gif" ALT="Pokaż Dziennik Błędów"
+SRC="/images/button-view-error-log.gif" ALT="Wyświetl dziennik błędów"
 CLASS="button"></A>
 <A HREF="/admin/log/page_log" TARGET="_blank"><IMG
-SRC="/images/button-view-page-log.gif" ALT="Pokaż Dziennik Wydruków"
+SRC="/images/button-view-page-log.gif" ALT="Wyświetl dziennik strony"
 CLASS="button"></A>
 </P>
 
@@ -58,16 +58,16 @@ CLASS="button"></A>
 
 <FORM METHOD="POST" ACTION="/admin">
 
-<P><B>Podstawowe Ustawienia Serwera:</B></P>
+<P><B>Podstawowe ustawienia serwera:</B></P>
 
 <P><INPUT TYPE="HIDDEN" NAME="OP" VALUE="config-server">
-<INPUT TYPE="CHECKBOX" NAME="REMOTE_PRINTERS" {?remote_printers}> Pokazuj drukarki udostępnione przez inne systemy<BR>
-<INPUT TYPE="CHECKBOX" NAME="SHARE_PRINTERS" {?share_printers}> Udostępniaj opublikowane drukarki podłączone do tego systemu<BR>
-<INPUT TYPE="CHECKBOX" NAME="REMOTE_ADMIN" {?remote_admin}> Zezwalaj na zdalną administrację<BR>
-<INPUT TYPE="CHECKBOX" NAME="USER_CANCEL_ANY" {?user_cancel_any}> Zezwalaj użytkownikom na anulowanie wszystkich wydruków  (nie tylko własnych)<BR>
-<INPUT TYPE="CHECKBOX" NAME="DEBUG_LOGGING" {?debug_logging}> Zachowuj informacje odpluskwiania dla rozwiązania problemów</P>
+<INPUT TYPE="CHECKBOX" NAME="REMOTE_PRINTERS" {?remote_printers}> Wyświetl drukarki udostępniane przez inne systemy<BR>
+<INPUT TYPE="CHECKBOX" NAME="SHARE_PRINTERS" {?share_printers}> Udostępnij opublikowane drukarki połączone do tego systemu<BR>
+<INPUT TYPE="CHECKBOX" NAME="REMOTE_ADMIN" {?remote_admin}> Pozwól na zdalną administrację<BR>
+<INPUT TYPE="CHECKBOX" NAME="USER_CANCEL_ANY" {?user_cancel_any}> Pozwól użytkownikom na anulowanie każdego zadania (nie tylko ich)<BR>
+<INPUT TYPE="CHECKBOX" NAME="DEBUG_LOGGING" {?debug_logging}> Zapisz informacje o debugowaniu do rozwiązywania problemów</P>
 
-<P><INPUT TYPE="IMAGE" SRC="/images/button-change-settings.gif" ALT="Zmień Ustawienia"></P>
+<P><INPUT TYPE="IMAGE" SRC="/images/button-change-settings.gif" ALT="Zmień ustawienia"></P>
 
 </FORM>}
 
index 80fdd0208dd6d5834ccb7ac6e414b7506d3d0ccb..fe8d9a697653921152d6433992f835edf1332244 100644 (file)
@@ -5,11 +5,11 @@
 <INPUT TYPE="HIDDEN" NAME="PRINTER_INFO" VALUE="{?printer_info}">
 <INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE_AND_MODEL" VALUE="{?current_make_and_model}">
 
-<H2 CLASS="title">Komunikacja z urządzeniem {printer_name}</H2>
+<H2 CLASS="title">Urządzenie {printer_name}</H2>
 
 <TABLE>
 <TR>
-<TH CLASS="label">Interfejs:</TH>
+<TH CLASS="label">Urządzenie:</TH>
 <TD>
 <SELECT NAME="DEVICE_URI">
 {[device_uri]<OPTION VALUE="{device_uri}{?device_make_and_model!Unknown?|{device_make_and_model}:}" {?current_device_uri={device_uri}?SELECTED:{current_device_scheme={device_uri}?SELECTED:}}>
@@ -19,7 +19,7 @@
 </TR>
 <TR>
 <TD></TD>
-<TD><INPUT TYPE="IMAGE" SRC="/images/button-continue.gif" ALT="Dalej"></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-continue.gif" ALT="Kontynuuj"></TD>
 </TR>
 </TABLE>
 
index 3f242742c90707223be05dbc1b4913edc35f8cbf..c67963008ecc636a81c3610eb6b99939f7c1e641 100644 (file)
@@ -9,7 +9,7 @@
 <INPUT TYPE="HIDDEN" NAME="PARITY" VALUE="{?parity}">
 <INPUT TYPE="HIDDEN" NAME="FLOW" VALUE="{?flow}">
 
-<H2 CLASS="title">Producent urządzenia {printer_name}</H2>
+<H2 CLASS="title">Producent {printer_name}</H2>
 
 <TABLE>
 <TR>
 </TR>
 <TR>
 <TD></TD>
-<TD><INPUT TYPE="IMAGE" SRC="/images/button-continue.gif" ALT="Dalej"></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-continue.gif" ALT="Kontynuuj"></TD>
 </TR>
 <TR>
 <TD></TD>
 <TD>&nbsp;</TD>
 </TR>
 <TR>
-<TH CLASS="label">Lub Zaakceptuj Plik PPD:</TH>
+<TH CLASS="label">Lub dostarcz plik PPD:</TH>
 <TD><INPUT TYPE="HIDDEN" NAME="MAX_FILE_SIZE" VALUE="262144"><INPUT
 TYPE="FILE" NAME="PPD_FILE"></TD>
 </TR>
 <TR>
 <TD></TD>
-<TD><INPUT TYPE="IMAGE" SRC="/images/button-{op}.gif" ALT="{op=add-printer?Dodaj Drukarkę:Modyfikuj Drukarkę}"></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-{op}.gif" ALT="{op=add-printer?Dodaj drukarkę:Zmodyfikuj drukarkę}"></TD>
 </TR>
 </TABLE>
 
index 20ace5fa9aae6cb9363fc796ec5259a2d996150a..c3ef95875aecb33d7f592016fcce7e9cb2651209 100644 (file)
@@ -9,11 +9,11 @@
 <INPUT TYPE="HIDDEN" NAME="PARITY" VALUE="{?parity}">
 <INPUT TYPE="HIDDEN" NAME="FLOW" VALUE="{?flow}">
 
-<H2 CLASS="title">Typ/Sterownik urządzenia {printer_name}</H2>
+<H2 CLASS="title">Model/sterownik {printer_name}</H2>
 
 <TABLE>
 <TR>
-<TH CLASS="label">Typ:</TH>
+<TH CLASS="label">Model:</TH>
 <TD>
 <SELECT NAME="PPD_NAME" SIZE="10">
 {[ppd_name]<OPTION VALUE="{ppd_name}" {?current_make_and_model={ppd_make_and_model}?SELECTED:}>{ppd_make_and_model} ({ppd_natural_language})
 </TD>
 </TR>
 <TR>
-<TH CLASS="label">Lub Zaakceptuj Plik PPD:</TH>
+<TH CLASS="label">Lub dostarcz plik PPD:</TH>
 <TD><INPUT TYPE="HIDDEN" NAME="MAX_FILE_SIZE" VALUE="262144"><INPUT
 TYPE="FILE" NAME="PPD_FILE"></TD>
 </TR>
 <TR>
 <TD></TD>
-<TD><INPUT TYPE="IMAGE" SRC="/images/button-{op}.gif" ALT="{op=add-printer?Dodaj Drukarkę:Modyfikuj Drukarkę}"></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-{op}.gif" ALT="{op=add-printer?Dodaj drukarkę:Zmodyfikuj drukarkę}"></TD>
 </TR>
 </TABLE>
 
index b709955062c4206aa80f3666b9cf27dd2e62d373..beade694ba79dc743a2740ab3488331f180a9449 100644 (file)
@@ -5,17 +5,17 @@
 <INPUT TYPE="HIDDEN" NAME="PRINTER_INFO" VALUE="{?printer_info}">
 <INPUT TYPE="HIDDEN" NAME="DEVICE_URI" VALUE="{device_uri}">
 
-<H2 CLASS="title">Ustawienia Portu Szeregowego dla Urządzenia {printer_name}</H2>
+<H2 CLASS="title">Ustawienia portu szeregowego {printer_name}</H2>
 
 <TABLE>
 <TR>
-<TH CLASS="label">Szybkość Transmisji:</TH>
+<TH CLASS="label">Prędkość transmisji:</TH>
 <TD><SELECT NAME="BAUDRATE">
 {[baudrates]<OPTION {?baudrate={baudrates}?SELECTED:}>{baudrates}}
 </SELECT></TD>
 </TR>
 <TR>
-<TH CLASS="label">KontrolaParzystości:</TH>
+<TH CLASS="label">Parzystość:</TH>
 <TD><SELECT NAME="PARITY">
 <OPTION VALUE="none" {?parity=none?SELECTED:}>Brak
 <OPTION VALUE="even" {?parity=even?SELECTED:}>Parzystość
 </SELECT></TD>
 </TR>
 <TR>
-<TH CLASS="label">Bity Danych:</TH>
+<TH CLASS="label">Bity danych:</TH>
 <TD><SELECT NAME="BITS">
 <OPTION {?bits=8?SELECTED:}>8
 <OPTION {?bits=7?SELECTED:}>7
 </SELECT></TD>
 </TR>
 <TR>
-<TH CLASS="label">Kontrola Przepływu:</TH>
+<TH CLASS="label">Kontrola przepływu:</TH>
 <TD><SELECT NAME="FLOW">
 <OPTION VALUE="none" {?flow=none?SELECTED:}>Brak
-<OPTION VALUE="soft" {?flow=soft?SELECTED:}>XON/XOFF (Programowa)
-<OPTION VALUE="hard" {?flow=hard?SELECTED:}>RTS/CTS (Sprzętowa)
-<OPTION VALUE="dtrdsr" {?flow=dtrdsr?SELECTED:}>DTR/DSR (Sprzętowa)
+<OPTION VALUE="soft" {?flow=soft?SELECTED:}>XON/XOFF (programowa)
+<OPTION VALUE="hard" {?flow=hard?SELECTED:}>RTS/CTS (sprzętowa)
+<OPTION VALUE="dtrdsr" {?flow=dtrdsr?SELECTED:}>DTR/DSR (sprzętowa)
 </SELECT></TD>
 </TR>
 <TR>
 <TD></TD>
-<TD><INPUT TYPE="IMAGE" SRC="/images/button-continue.gif" ALT="Dalej"></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-continue.gif" ALT="Kontynuuj"></TD>
 </TR>
 </TABLE>
 
index bdef0078cade71971db56a986b127f5b52a7079f..fe424ddf78bb60c12c7685c5fc9a705e3addab3b 100644 (file)
 <TD></TD>
 <TD>Przykłady:
 <PRE>
-    http://hostname:631/ipp/
-    http://hostname:631/ipp/port1
+    http://nazwakomputera:631/ipp/
+    http://nazwakomputera:631/ipp/port1
 
-    ipp://hostname/ipp/
-    ipp://hostname/ipp/port1
+    ipp://nazwakomputera/ipp/
+    ipp://nazwakomputera/ipp/port1
 
-    lpd://hostname/queue
+    lpd://nazwakomputera/kolejka
 
-    socket://hostname
-    socket://hostname:9100
+    gniazdo://nazwakomputera
+    gniazdo://nazwakomputera:9100
 </PRE>
 
-<P>Zobacz <A HREF="/help/network.html" TARGET="_blank">"Używanie Drukarek Sieciowych"</A> aby określić poprawny URI twojej drukarki.</P>
+<P>Zobacz <A HREF="/help/network.html" TARGET="_blank">"Drukarki sieciowe"</A>, aby uzyskać poprawny URI do użycia z drukarką.</P>
 
 </TD>
 </TR>
 <TR>
 <TD></TD>
-<TD><INPUT TYPE="IMAGE" SRC="/images/button-continue.gif" ALT="Dalej"></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-continue.gif" ALT="Kontynuuj"></TD>
 </TR>
 </TABLE>
 
index a0903d584995b8d57b28d6702ff525a9892195cd..6cf3488b4a16c59a2a776cf04b1c995807e6a53c 100644 (file)
@@ -1 +1 @@
-<P>Grupa <A HREF="/classes/{printer_name}">{printer_name}</A> została pomyślnie dodana.
+<P>Klasa <A HREF="/classes/{printer_name}">{printer_name}</A> została pomyślnie dodana.
index 392a8ed4bbd20af1989da62398043239f810cbda..01290e66be352497b0d50fce2e849075f440f088 100644 (file)
@@ -1,7 +1,7 @@
-<P><B>Ostrzeżenie:</B> Czy napewno chcesz usunąć grupę
+<P><B>Ostrzeżenie:</B> Czy jesteś pewny, że chcesz usunąć klasę
 {printer_name}?</P>
 
 <P ALIGN="CENTER"><A
 HREF="/admin?op=delete-class&printer_name={printer_name}&confirm=yes"><IMG
-SRC="/images/button-delete-class.gif" ALT="Usuń Grupę"
+SRC="/images/button-delete-class.gif" ALT="Usuń klasę"
 CLASS="button"></A></P>
index 21e7360b5100f47b49d438672e9668e5bd2f65e6..3a156a940307f7c0325e72f7e1120c773b13e508 100644 (file)
@@ -1 +1 @@
-<P>Grupa {printer_name} została pomyślnie usunięta.
+<P>Klasa {printer_name} została pomyślnie usunięta.
index 7654c73df4f89ae250a6146605825f5077345e15..fcc4b096f12537666e69624b2dfcb89f4f7e5644 100644 (file)
@@ -1 +1 @@
-<H3 CLASS="title">Wydruki</H3>
+<H3 CLASS="title">Zadania</H3>
index 083882ab9e55161c112a3053a9e56a4ffcaac799..938ef56843fe6c0ed194d423339003305d87cf67 100644 (file)
@@ -1 +1 @@
-<P>Grupa <A HREF="/classes/{printer_name}">{printer_name}</A> została pomyślnie zmodyfikowana.
+<P>Klasa <A HREF="/classes/{printer_name}">{printer_name}</A> została pomyślnie zmodyfikowana.
index f76eb5b207ebd57f215bf069b6de37c5425cb87c..22460443e775ded2822e5e4b45477d8b70ac95f3 100644 (file)
@@ -1 +1 @@
-<P ALIGN="CENTER">{total=0?Brak grup:Wyświetlam {#printer_name} z {total} grup{total=1?y:}}.</P>
+<P ALIGN="CENTER">{total=0?Brak klas:Wyświetlanie {#printer_name} z {total} klas{total=1?:}}.</P>
index d42e145de61e707b45b6c6c9c9aaca0deffdb2ef..15a6e5abc2b3fa78e872fb8f52ee2c56507e6b18 100644 (file)
@@ -1,6 +1,6 @@
 {#printer_name=0?:
 {[printer_name]
-<H2 CLASS="title"><A HREF="{printer_uri_supported}">{printer_name}</A>{default_name={printer_name}? (Default Printer):}
+<H2 CLASS="title"><A HREF="{printer_uri_supported}">{printer_name}</A>{default_name={printer_name}? (Domyślna drukarka):}
 {?printer_state_message=?:<SPAN CLASS="message">"{printer_state_message}"</SPAN>}</H2>
 
 <TABLE WIDTH="100%" CLASS="button" CELLSPACING="0" CELLPADDING="0" SUMMARY="{printer_name}">
@@ -9,44 +9,44 @@
 <IMG SRC="/images/classes.gif" CLASS="button" ALT=""></A></TD>
 <TD VALIGN=TOP><B>Opis:</B> {printer_info}<BR>
 <B>Położenie:</B> {printer_location}<BR>
-<B>Stan Grupy:</B> {printer_state=3?bezczynna:{printer_state=4?drukuje:zatrzymana}},
-{printer_is_accepting_jobs=0?odrzuca wydruki:akceptuje wydruki}, {printer_is_shared=0?nie: opublikowana}.
-{?member_uris=?:<BR>Składniki: {member_uris}}
+<B>Stan klasy:</B> {printer_state=3?bezczynna:{printer_state=4?processing:zatrzymana}},
+{printer_is_accepting_jobs=0?odrzucanie zadań:akceptowanie zadań}, {printer_is_shared=0?nie opublikowana:opublikowana}.
+{?member_uris=?:<BR>Elementy: {member_uris}}
 
 <P>
 <A HREF="{printer_uri_supported}?op=print-test-page">
-<IMG SRC="/images/button-print-test-page.gif" ALT="Drukuj Stronę Testową" CLASS="button"></A>
+<IMG SRC="/images/button-print-test-page.gif" ALT="Wydrukuj stronę próbną" CLASS="button"></A>
 {printer_state=5?
-<A HREF="{admin_uri}?op=start-class&amp;printer_name={%printer_name}&amp;is_class=Y">
-<IMG SRC="/images/button-start-class.gif" ALT="Start Grupy" CLASS="button"></A>
+<A HREF="{admin_uri}?op=start-class&amp;printer_name={printer_name}&amp;is_class=Y">
+<IMG SRC="/images/button-start-class.gif" ALT="Uruchom klasę" CLASS="button"></A>
 :
-<A HREF="{admin_uri}?op=stop-class&amp;printer_name={%printer_name}&amp;is_class=Y">
-<IMG SRC="/images/button-stop-class.gif" ALT="Zatrzymaj Grupę" CLASS="button"></A>
+<A HREF="{admin_uri}?op=stop-class&amp;printer_name={printer_name}&amp;is_class=Y">
+<IMG SRC="/images/button-stop-class.gif" ALT="Zatrzymaj klasę" CLASS="button"></A>
 }
 {printer_is_accepting_jobs=0?
-<A HREF="{admin_uri}?op=accept-jobs&amp;printer_name={%printer_name}&amp;is_class=Y">
-<IMG SRC="/images/button-accept-jobs.gif" ALT="Akceptuj Wydruki" CLASS="button"></A>
+<A HREF="{admin_uri}?op=accept-jobs&amp;printer_name={printer_name}&amp;is_class=Y">
+<IMG SRC="/images/button-accept-jobs.gif" ALT="Zaakceptuj zadania" CLASS="button"></A>
 :
-<A HREF="{admin_uri}?op=reject-jobs&amp;printer_name={%printer_name}&amp;is_class=Y">
-<IMG SRC="/images/button-reject-jobs.gif" ALT="Odrzucaj Wydruki" CLASS="button"></A>
+<A HREF="{admin_uri}?op=reject-jobs&amp;printer_name={printer_name}&amp;is_class=Y">
+<IMG SRC="/images/button-reject-jobs.gif" ALT="Odrzuć zadania" CLASS="button"></A>
 }
-<A HREF="{admin_uri}?op=purge-jobs&amp;printer_name={%printer_name}&amp;is_class=Y">
-<IMG SRC="/images/button-cancel-all-jobs.gif" ALT="Skasuj Wszystkie Wydruki" CLASS="button"></A>
+<A HREF="{admin_uri}?op=purge-jobs&amp;printer_name={printer_name}&amp;is_class=Y">
+<IMG SRC="/images/button-cancel-all-jobs.gif" ALT="Anuluj wszystkie zadania" CLASS="button"></A>
 {printer_is_shared=0?
-<A HREF="{admin_uri}?op=set-sharing&amp;printer_name={%printer_name}&amp;shared=1&amp;is_class=Y">
-<IMG SRC="/images/button-publish-printer.gif" ALT="Publikuj Drukarkę" CLASS="button"></A>
+<A HREF="{admin_uri}?op=set-sharing&amp;printer_name={printer_name}&amp;shared=1&amp;is_class=Y">
+<IMG SRC="/images/button-publish-printer.gif" ALT="Opublikuj drukarkę" CLASS="button"></A>
 :
-<A HREF="{admin_uri}?op=set-sharing&amp;printer_name={%printer_name}&amp;shared=0&amp;is_class=Y">
-<IMG SRC="/images/button-unpublish-printer.gif" ALT="Nie Publikuj Drukarki" CLASS="button"></A>
+<A HREF="{admin_uri}?op=set-sharing&amp;printer_name={printer_name}&amp;shared=0&amp;is_class=Y">
+<IMG SRC="/images/button-unpublish-printer.gif" ALT="Nie publikuj drukarki" CLASS="button"></A>
 }
-<A HREF="{admin_uri}?op=modify-class&amp;printer_name={%printer_name}">
-<IMG SRC="/images/button-modify-class.gif" ALT="Modyfikuj Grupę" CLASS="button"></A>
-<A HREF="{admin_uri}?op=delete-class&amp;printer_name={%printer_name}">
-<IMG SRC="/images/button-delete-class.gif" ALT="Usuń Grupę" CLASS="button"></A>
-<A HREF="{admin_uri}?op=set-as-default&amp;printer_name={%printer_name}&amp;is_class=Y">
-<IMG SRC="/images/button-set-as-default.gif" ALT="Ustaw Jako Domyślną" CLASS="button"></A>
-<A HREF="{admin_uri}?op=set-allowed-users&amp;printer_name={%printer_name}&amp;is_class=Y">
-<IMG SRC="/images/button-set-allowed-users.gif" ALT="Ustaw Uprawnienia Użytkowników" CLASS="button"></A>
+<A HREF="{admin_uri}?op=modify-class&amp;printer_name={printer_name}">
+<IMG SRC="/images/button-modify-class.gif" ALT="Zmodyfikuj klasę" CLASS="button"></A>
+<A HREF="{admin_uri}?op=delete-class&amp;printer_name={printer_name}">
+<IMG SRC="/images/button-delete-class.gif" ALT="Usuń klasę" CLASS="button"></A>
+<A HREF="{admin_uri}?op=set-as-default&amp;printer_name={printer_name}&amp;is_class=Y">
+<IMG SRC="/images/button-set-as-default.gif" ALT="Ustaw jako domyślną" CLASS="button"></A>
+<A HREF="{admin_uri}?op=set-allowed-users&amp;printer_name={printer_name}&amp;is_class=Y">
+<IMG SRC="/images/button-set-allowed-users.gif" ALT="Pozwól zezwolonym użytkownikom" CLASS="button"></A>
 </P>
 </TD>
 </TR>
index d07c53cd603b1692a3037c6229a53adff63e0462..0b585f6ec433773de21fcb771c8f1485109bb6ec 100644 (file)
@@ -1,10 +1,10 @@
 <FORM ACTION="/help/{?HELPFILE}" METHOD="GET">
 {TOPIC?<INPUT TYPE="HIDDEN" NAME="TOPIC" VALUE="{TOPIC}">:}
 
-<P ALIGN="CENTER"><B>Przeszukaj 
-{HELPTITLE?{HELPTITLE}:{TOPIC?{TOPIC}:Wszystkie Dokumenty}}:</B> <INPUT
+<P ALIGN="CENTER"><B>Wyszukaj we
+{HELPTITLE?{HELPTITLE}:{TOPIC?{TOPIC}:wszystkich dokumentach}}:</B> <INPUT
 TYPE="TEXT" NAME="QUERY" VALUE="{?QUERY}" SIZE="60"> <INPUT
-TYPE="IMAGE" SRC="/images/button-search.gif" ALT="Szukaj">
+TYPE="IMAGE" SRC="/images/button-search.gif" ALT="Wyszukaj">
 <A HREF="/help/{?HELPFILE}{QUERY?{TOPIC??TOPIC={TOPIC}:}:}"><IMG
 SRC="/images/button-clear.gif" ALT="Wyczyść" CLASS="button"></A></P>
 
@@ -12,29 +12,36 @@ SRC="/images/button-clear.gif" ALT="Wyczyść" CLASS="button"></A></P>
 
 <!-- Bookmarks -->
 <DIV CLASS="sidebar">
-<H3 CLASS="title">Dokumenty Pomocy On-Line</H3>
+<H3 CLASS="title">Dokumenty pomocy on-line</H3>
 
-<P CLASS="l0"><A HREF="/help{QUERY??QUERY={QUERY}:}">Wszystkie Dokumenty</A></P>
+<P CLASS="l0"><A HREF="/help{QUERY??QUERY={QUERY}:}">Wszystkie dokumenty</A></P>
 <HR>
 
 {[BMTEXT]<P CLASS="l{BMINDENT}"><A HREF="{BMLINK}">{BMTEXT}</A></P>
 }
 </DIV>
 
-{QUERY?<P>Rezultaty przeszukiwania - {HELPFILE?{HELPTITLE}:{TOPIC?{TOPIC}:Wszystkie Dokumenty}}\:</P>
+{QUERY?<P>Wyniki wyszukiwania we {HELPFILE?{HELPTITLE}:{TOPIC?{TOPIC}:wszystkich dokumentach}}\:</P>
 {QTEXT?<UL>
 {[QTEXT]<LI><A HREF="{QLINK}">{QTEXT}</A>{QPTEXT? (w <I><A HREF="{QPLINK}">{QPTEXT}</A></I>):}</LI>}
 {QTEXT?</UL>:}
-:<P>Nie znaleziono.</P>}
+:<P>Nie znaleziono wyników.</P>}
 <HR NOSHADE>:}
 {HELPTITLE?<H1>{HELPTITLE}
 <A HREF="/help/{HELPFILE}?PRINTABLE=YES" TARGET="_blank"><IMG
-SRC="/images/button-view-printable-version.gif" ALT="Pokaż wersję do Wydruku"
-CLASS="button"></A></H1>:<H1>Strony Pomocy CUPS</H1>
-
-<P>To jest interfejs pomocy on-line CUPS. Wprowadź poszukiwane słowa powyżej lub klikaj na odnośniki aby wyświetlić dokumenty pomocy on-line.</P>
-
-<P>Jeśli dopiero zaczynasz pracę z  CUPS, przeczytaj stronę "<a
-href="overview.html">Przegląd Możliwości CUPS</a>". Doświadczeni użytkownicy powinni przeczytać stronę "<a href="whatsnew.html">Co Nowego w CUPS 1.2</a>".</P>
-
-<P>Strona domowa <A HREF="http://www.cups.org/">CUPS Home Page</A> także zawiera wiele informacji, w tym forum dyskusyjne użytkowników, odpowiedzi na często-zadawane pytania oraz formularze do zgłaszania raportów o błędach i prośby o nowe funkcjonalności.</P>}
+SRC="/images/button-view-printable-version.gif" ALT="Wyświetl wersję drukowalną"
+CLASS="button"></A></H1>:<H1>Strony pomocy CUPS</H1>
+
+<P>To jest interfejs on-line pomocy CUPS. Podaj wyszukiwane
+słowa powyżej lub naciśnij na jakiś odnośnik do dokumentacji,
+aby wyświetlić dokumentację pomocy on-line.</P>
+
+<P>Jeśli jesteś nowy w CUPS-ie, przeczytaj stronę "<a
+href="overview.html">Wstęp do CUPS</a>". Użytkownicy dobrze
+znający CUPS powinni przeczytać stronę "<a href="whatsnew.html">
+Co nowego w CUPS 1.2</a>".</P>
+
+<P>The <A HREF="http://www.cups.org/">Strona domowa CUPS</A> także
+dostarcza wielu zasobów, w tym fora dyskusyjne użytkowników,
+odpowiedzi na najczęściej zadawane pytania oraz formularz do
+wysyłania raportów błędów i żądań funkcji.</P>}
index 9ef4c1653a68aab2c44963371bfe0bd9ea212c49..39a89ccd8c946f0b427a283e40dd408ff6ea438a 100644 (file)
@@ -1 +1 @@
-<P><A HREF="{job_printer_uri}">Wydruk {job_id}</A> został anulowany.
+<P><A HREF="{job_printer_uri}">Zadanie {job_id}</A> zostało anulowane.
index 526afbb9b35aaab69feb5b4dfbcb465b9e5d6c5c..999c29ba56096291e6d20932b4509015fb9d945b 100644 (file)
@@ -1 +1 @@
-<P><A HREF="{job_printer_uri}">Wydruk {job_id}</A> został wstrzymany.
+<P><A HREF="{job_printer_uri}">Zadanie {job_id}</A> zostało wstrzymane od drukowania.
index f5766842be3f8b512d7c8c2eaf68bb8781866ee5..ec671bca6423a13671d0f4b8bdaa8ae1d5565275 100644 (file)
@@ -2,11 +2,11 @@
 <INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
 {job_id?<INPUT TYPE="HIDDEN" NAME="JOB_ID" VALUE="{job_id}">:}
 
-<H2 CLASS="title">{job_id?Przenieś Wydruk {job_id}:Przenieś Wszystkie Wydruki}</H2>
+<H2 CLASS="title">{job_id?Przenieś zadanie {job_id}:Przenieś wszystkie zadania}</H2>
 
 <TABLE>
 <TR>
-<TH CLASS="label">Miejsce przeznaczenia:</TH>
+<TH CLASS="label">Nowy cel:</TH>
 <TD>
 <SELECT NAME="JOB_PRINTER_URI" SIZE="10">
 {[job_printer_uri]<OPTION VALUE="{job_printer_uri}">{job_printer_name}}
@@ -15,7 +15,7 @@
 </TR>
 <TR>
 <TD></TD>
-<TD><INPUT TYPE="IMAGE" SRC="/images/button-move-job{job_id?:s}.gif" ALT="{job_id?Przenieś Wydruk:Przenieś Wszystkie Wydruki}"></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-move-job{job_id?:s}.gif" ALT="Przenieś zadania{job_id?:}"></TD>
 </TR>
 </TABLE>
 
index 99ac7612424765d38fa8edeb9fe8ba9bc575e427..596ebaa731d66bdf527441c7b6d8ceb815a7995f 100644 (file)
@@ -1,2 +1,2 @@
-<P>{job_id?Wydruk <A HREF="/jobs/{job_id}">{job_id}</A> przeniesiony :Wydruki przeniesione} do
+<P>{job_id?<A HREF="/jobs/{job_id}">Zadanie {job_id}</A>:Wszystkie zadania} zostało przeniesione do 
 <A HREF="{job_printer_uri}">{job_printer_name}</A>.</P>
index 0ed6d576603066888c554b16b33008e62a370fc3..753d21c488ea043739bc3282a4dc6c5ced8f3c63 100644 (file)
@@ -1 +1 @@
-<P>Wydruk <A HREF="{job_printer_uri}">{job_id}</A> został wznowiony.
+<P><A HREF="{job_printer_uri}">Zadanie {job_id}</A> zostało zwolnione od drukowania.
index e9c1d213edbe2cd7ba7cf160ad2c650a9d0f4520..be2d26f283272c08a16c2ff69c9035fba4435068 100644 (file)
@@ -1 +1 @@
-<P><A HREF="{job_printer_uri}">Wydruk {job_id}</A> został powtórzony.
+<P><A HREF="{job_printer_uri}">Zadanie {job_id}</A> zostało ponownie uruchomione.
index 7a24eb6eb00f1a33f59ac8f5038f63e17a9804b2..a5ac33d950a300d75c715144d5ed5fb49e03c951 100644 (file)
@@ -1,15 +1,15 @@
 <P>{?which_jobs=?<A
-HREF="{?printer_name=?/jobs:{printer_uri_supported}}?which_jobs=completed"><IMG
-SRC="/images/button-show-completed.gif" CLASS="button" ALT="Pokaż Zakończone Wydruki"></A>
-<A HREF="{?printer_name=?/jobs:{printer_uri_supported}}?which_jobs=all"><IMG
-SRC="/images/button-show-all.gif" CLASS="button" ALT="Pokaż Wszystkie Wydruki">:{which_jobs=all?<A
-HREF="{?printer_name=?/jobs:{printer_uri_supported}}?which_jobs=completed"><IMG
-SRC="/images/button-show-completed.gif" CLASS="button" ALT="Pokaż Zakończone Wydruki"></A>
-<A HREF="{?printer_name=?/jobs:{printer_uri_supported}}"><IMG
-SRC="/images/button-show-active.gif" CLASS="button" ALT="Pokaż Aktywne Wydruki">:<A
-HREF="{?printer_name=?/jobs:{printer_uri_supported}}"><IMG
-SRC="/images/button-show-active.gif" CLASS="button" ALT="Pokaż Aktywne Wydruki"></A>
-<A HREF="{?printer_name=?/jobs:{printer_uri_supported}}?which_jobs=all"><IMG
-SRC="/images/button-show-all.gif" CLASS="button" ALT="Pokaż Aktywne Wydruki">}}</A></P>
+HREF="{?printer_name=?/zadania:{printer_uri_supported}}?which_jobs=completed"><IMG
+SRC="/images/button-show-completed.gif" CLASS="button" ALT="Wyświetl zakończone zadania"></A>
+<A HREF="{?printer_name=?/zadania:{printer_uri_supported}}?which_jobs=all"><IMG
+SRC="/images/button-show-all.gif" CLASS="button" ALT="Wyświetl wszystkie zadania">:{which_jobs=all?<A
+HREF="{?printer_name=?/zadania:{printer_uri_supported}}?which_jobs=completed"><IMG
+SRC="/images/button-show-completed.gif" CLASS="button" ALT="Wyświetl zakończone zadania"></A>
+<A HREF="{?printer_name=?/zadania:{printer_uri_supported}}"><IMG
+SRC="/images/button-show-active.gif" CLASS="button" ALT="Wyświetl aktywne zadania">:<A
+HREF="{?printer_name=?/zadania:{printer_uri_supported}}"><IMG
+SRC="/images/button-show-active.gif" CLASS="button" ALT="Wyświetl aktywne zadania"></A>
+<A HREF="{?printer_name=?/zadania:{printer_uri_supported}}?which_jobs=all"><IMG
+SRC="/images/button-show-all.gif" CLASS="button" ALT="Wyświetl wszystkie zadania">}}</A></P>
 
-<P ALIGN="CENTER">{total=0?Brak wydruków:Wyświetlam {#job_id} z {total} {?which_jobs=?aktywny{total=1?:ch}:{which_jobs=all?:zakończony{total=1?:ch}}} wydruk{total=1?:ów}}.</P>
+<P ALIGN="CENTER">{total=0?Brak zadań:Wyświetlanie {#job_id} z {total} {?which_jobs=?active:{which_jobs=all?:zakończonych}} zadań{total=1?:}}.</P>
index 4cb95ab10b2f706f33deebce9569abba8b55ff3d..ff583b986b6d7eb1ae726b46ec414177c3fff86b 100644 (file)
@@ -1,40 +1,40 @@
 {#job_id=0?:
-<TABLE CELLPADDING="0" CELLSPACING="0" CLASS="button" WIDTH="100%" SUMMARY="Job List">
+<TABLE CELLPADDING="0" CELLSPACING="0" CLASS="button" WIDTH="100%" SUMMARY="Lista zadań">
 <TR CLASS="data">
 <TH>ID&nbsp;</TH>
-<TH>Name&nbsp;</TH>
-<TH>User&nbsp;</TH>
-<TH>Size&nbsp;</TH>
-<TH>Pages&nbsp;</TH>
-<TH>State&nbsp;</TH>
-<TH>Control&nbsp;</TH>
+<TH>Nazwa&nbsp;</TH>
+<TH>Użytkownik&nbsp;</TH>
+<TH>Rozmiar&nbsp;</TH>
+<TH>Strony&nbsp;</TH>
+<TH>Stan&nbsp;</TH>
+<TH>Kontrola&nbsp;</TH>
 </TR>
 
 {[job_id]
 <TR CLASS="data" VALIGN="TOP">
 <TD><A HREF="{job_printer_uri}">{job_printer_name}</A>-{job_id}&nbsp;</TD>
-<TD>{?job_name=?Nieznana:{job_name}}&nbsp;</TD>
+<TD>{?job_name=?Nieznane:{job_name}}&nbsp;</TD>
 <TD>{job_originating_user_name}&nbsp;</TD>
 <TD>{job_k_octets}k&nbsp;</TD>
-<TD>{job_media_sheets_completed=0?brak danych:{?job_media_sheets_completed}}</TD>
-<TD>{job_state=3?oczekuje od<BR>{time_at_creation}:{job_state=4?wstrzymany od<BR>{time_at_creation}:
-{job_state=5?drukowany od<BR>{time_at_processing}:{job_state=6?zatrzymany<BR>{time_at_completed}:
-{job_state=7?anulowany<BR>{time_at_completed}:{job_state=8?przerwany:zakończony<BR>{time_at_completed}}}}}}}&nbsp;</TD>
+<TD>{job_media_sheets_completed=0?Nieznane:{?job_media_sheets_completed}}</TD>
+<TD>{job_state=3?oczekiwanie od<BR>{time_at_creation}:{job_state=4?wstrzymane od<BR>{time_at_creation}:
+{job_state=5?przetwarzanie od<BR>{time_at_processing}:{job_state=6?zatrzymane:
+{job_state=7?anulowane o<BR>{time_at_completed}:{job_state=8?przerwane:zakończone o<BR>{time_at_completed}}}}}}}&nbsp;</TD>
 <TD>
 {job_preserved>0?
 <A HREF="/jobs/?op=restart-job&amp;job_id={job_id}&amp;job_printer_uri={job_printer_uri}">
-<IMG SRC="/images/button-restart-job.gif" ALT="Wydrukuj Ponownie" CLASS="button"></A>:}
+<IMG SRC="/images/button-restart-job.gif" ALT="Ponownie wydrukuj zadanie" CLASS="button"></A>:}
 {job_state=4?
 <A HREF="/jobs/?op=release-job&amp;job_id={job_id}&amp;job_printer_uri={job_printer_uri}">
-<IMG SRC="/images/button-release-job.gif" ALT="Wznów Wydruk" CLASS="button"></A>:}
+<IMG SRC="/images/button-release-job.gif" ALT="Zwolnij zadanie" CLASS="button"></A>:}
 {job_state=3?
 <A HREF="/jobs/?op=hold-job&amp;job_id={job_id}&amp;job_printer_uri={job_printer_uri}">
-<IMG SRC="/images/button-hold-job.gif" ALT="Wstrzymaj Wydruk" CLASS="button"></A>:}
+<IMG SRC="/images/button-hold-job.gif" ALT="Wstrzymaj zadanie" CLASS="button"></A>:}
 {job_state<7?
 <A HREF="/jobs/?op=cancel-job&amp;job_id={job_id}&amp;job_printer_uri={job_printer_uri}">
-<IMG SRC="/images/button-cancel-job.gif" ALT="Anuluj Wydruk" CLASS="button"></A>
+<IMG SRC="/images/button-cancel-job.gif" ALT="Anuluj zadanie" CLASS="button"></A>
 <A HREF="/jobs/?op=move-job&amp;job_id={job_id}"><IMG
-SRC="/images/button-move-job.gif" ALT="Przenieś Wydruk" CLASS="button"></A>:}
+SRC="/images/button-move-job.gif" ALT="Przenieś zadanie" CLASS="button"></A>:}
 &nbsp;</TD>
 </TR>
 }
index e29936b02ff8949bca48a7249d6f2189b200db0c..baef534606277b859cf36065bd943da8dba9c590 100644 (file)
@@ -1,2 +1,2 @@
-<P>Komendy administracyjne wysłane; ID wydruku to <A HREF="/printers/{printer_name}">
+<P>Polecenia utrzymywania zostały wysłane; ID zadania to <A HREF="/printers/{printer_name}">
 {printer_name}-{job_id}</A>.</P>
index a48fc19bcc77b2581a003823cf7f46c9a04556b9..d1c27db900fc52f3a1a24415506bb2d8400f3123 100644 (file)
@@ -1,7 +1,7 @@
 <FORM METHOD="POST" ACTION="/admin">
 <INPUT TYPE="HIDDEN" NAME="OP" VALUE="{op}">
 
-<H2 CLASS="title">Modyfikuj Grupę {printer_name}</H2>
+<H2 CLASS="title">Zmodyfikuj klasę {printer_name}</H2>
 
 <TABLE>
 <TR>
@@ -18,7 +18,7 @@
 <TD><INPUT TYPE="TEXT" NAME="PRINTER_INFO" VALUE="{?printer_info}" SIZE="40" MAXLENGTH="127"></TD>
 </TR>
 <TR>
-<TH CLASS="label">Składniki:</TH>
+<TH CLASS="label">Elementy:</TH>
 <TD>
 <SELECT NAME="MEMBER_URIS" SIZE="10" MULTIPLE>
 {[member_uris]<OPTION VALUE="{member_uris}" {?member_selected}>{member_names}}
@@ -27,7 +27,7 @@
 </TR>
 <TR>
 <TD></TD>
-<TD><INPUT TYPE="IMAGE" SRC="/images/button-modify-class.gif" ALT="Modyfikuj Grupę"></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-modify-class.gif" ALT="Zmodyfikuj klasę"></TD>
 </TR>
 </TABLE>
 
index 220ac7f8e72ecba5436fe44665dee3fcc9128ef4..1c9eb470426cca69ea08611e05737b1ab93f12d0 100644 (file)
@@ -3,7 +3,7 @@
 {?device_uri=?:<INPUT TYPE="HIDDEN" NAME="CURRENT_DEVICE_URI" VALUE="{device_uri}">}
 {?printer_make_and_model=?:<INPUT TYPE="HIDDEN" NAME="CURRENT_MAKE_AND_MODEL" VALUE="{printer_make_and_model}">}
 
-<H2 CLASS="title">Modyfikuj Drukarkę {printer_name}</H2>
+<H2 CLASS="title">Zmodyfikuj drukarkę {printer_name}</H2>
 
 <TABLE>
 <TR>
 <TR>
 <TH CLASS="label">Położenie:</TH>
 <TD><INPUT TYPE="TEXT" NAME="PRINTER_LOCATION" VALUE="{?printer_location}" SIZE="40" MAXLENGTH="127"><BR>
-<SMALL>(Położenie zrozumiałe dla ludzi takie jak "Laboratorium 1")</SMALL></TD>
+<SMALL>(Położenie czytelne dla człowieka, takie jak "Laboratorium 1")</SMALL></TD>
 </TR>
 <TR>
-<TH CLASS="label">Description:</TH>
+<TH CLASS="label">Opis:</TH>
 <TD><INPUT TYPE="TEXT" NAME="PRINTER_INFO" VALUE="{?printer_info}" SIZE="40" MAXLENGTH="127"><BR>
-<SMALL>(Opis zrozumiały dla ludzi taki jak "HP LaserJet z Dupleksem")</SMALL></TD>
+<SMALL>(Opis czytelny dla człowieka, taki jak "HP LaserJet z Dupleksem")</SMALL></TD>
 </TR>
 <TR>
 <TD></TD>
-<TD><INPUT TYPE="IMAGE" SRC="/images/button-continue.gif" ALT="Dalej"></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-continue.gif" ALT="Kontynuuj"></TD>
 </TR>
 </TABLE>
 
index cacdafdefd49cc51d7b3d3dd64ac46c9f4b5a346..9d808c9056c952e5ee47b3ae4ff2a6f74a988e2b 100644 (file)
@@ -1,7 +1,7 @@
-<P><B>Error:</B> Poniższe opcje powodują konflikt:</P>
+<P><B>Błąd:</B> Następujące opcje są w konflikcie:</P>
 
 <UL>
 {[ckeyword]<LI><A HREF="#{ckeyword}">{ckeytext}</A></LI>
 }</UL>
 
-<P>Proszę zmienić jedną lub więcej z tych opcji aby rozwiązać konflikty.</P>
+<P>Zmień jedną lub więcej opcji, aby rozwiązań konflikty.</P>
index 6a9fd800c897f2717a7059f0cb56faf1bb4874df..11a29b02b7581fe5b9f21e4ed0ade9b303b10233 100644 (file)
@@ -1,5 +1,5 @@
 <TR>
 <TD></TD>
-<TD><INPUT TYPE="IMAGE" SRC="/images/button-set-printer-options.gif" ALT="Ustaw Opcje Drukarki"></TD>
+<TD><INPUT TYPE="IMAGE" SRC="/images/button-set-printer-options.gif" ALT="Ustaw opcje drukarki"></TD>
 </TR>
 </TABLE>
index be2b79da8e471b3f9e1a40adf28b80807b895be8..740c29b97faf6d3695edaa9413233a8ae991a578 100644 (file)
@@ -1,7 +1,7 @@
-<TABLE WIDTH="100%" CLASS="pager" SUMMARY="Paging Bar">
+<TABLE WIDTH="100%" CLASS="pager" SUMMARY="Pasek stronowania">
 <TR>
-       <TD WIDTH="33%">{PREVURL?<A HREF="{PREVURL}"><IMG SRC="/images/button-show-previous.gif" ALT="Pokaż Poprzedni" CLASS="button"></A>:&nbsp;}</TD>
-       <TD WIDTH="34%" ALIGN="CENTER">{ORDER=dec?<A HREF="{THISURL}&amp;ORDER=asc"><IMG SRC="/images/button-sort-ascending.gif" ALT="Sortuj Rosnąco" CLASS="button"></A>:<A HREF="{THISURL}&amp;ORDER=dec"><IMG SRC="/images/button-sort-descending.gif" ALT="Sortuj Malejąco" CLASS="button"></A>}</TD>
-       <TD WIDTH="33%" ALIGN="RIGHT">{NEXTURL?<A HREF="{NEXTURL}"><IMG SRC="/images/button-show-next.gif" ALT="Pokaż Następny" CLASS="button"></A>:&nbsp;}</TD>
+       <TD WIDTH="33%">{PREVURL?<A HREF="{PREVURL}"><IMG SRC="/images/button-show-previous.gif" ALT="Wyświetl poprzednie" CLASS="button"></A>:&nbsp;}</TD>
+       <TD WIDTH="34%" ALIGN="CENTER">{ORDER=dec?<A HREF="{THISURL}&amp;ORDER=asc"><IMG SRC="/images/button-sort-ascending.gif" ALT="Posortuj rosnąco" CLASS="button"></A>:<A HREF="{THISURL}&amp;ORDER=dec"><IMG SRC="/images/button-sort-descending.gif" ALT="Posortuj malejąco" CLASS="button"></A>}</TD>
+       <TD WIDTH="33%" ALIGN="RIGHT">{NEXTURL?<A HREF="{NEXTURL}"><IMG SRC="/images/button-show-next.gif" ALT="Wyświetl następne" CLASS="button"></A>:&nbsp;}</TD>
 </TR>
 </TABLE>
index 7ecfb94bf1b802c984c0a7e4a0bd538003a1eb03..d08f7afa2e610cbdf90549e821f3158aff2c08f3 100644 (file)
@@ -1,3 +1,3 @@
-<P>{is_class?Grupa:Drukarka} <A
-HREF="/{is_class?Grupa:Drukarka}/{printer_name}">{printer_name}</A>
-przyjmuje wydruki.</P>
+<P>{is_class?Klasa:Drukarka} <A
+HREF="/{is_class?klasy:drukarki}/{printer_name}">{printer_name}</A>
+teraz akceptuje zadania.</P>
index 2a35101daf39c3c2feefddb5b3f22ccf9dee9c80..87733896d4cafb9f84ebb169fb60691ec7eefa10 100644 (file)
@@ -1,7 +1,7 @@
-<P><B>Ostrzeżenie:</B> Czy napewno chcesz usunąć drukarkę
+<P><B>Ostrzeżenie:</B> Czy jesteś pewny, że chcesz usunąć drukarkę
 {printer_name}?</P>
 
 <P ALIGN="CENTER"><A
 HREF="/admin?op=delete-printer&printer_name={printer_name}&confirm=yes"><IMG
-SRC="/images/button-delete-printer.gif" ALT="Usuń Drukarkę"
+SRC="/images/button-delete-printer.gif" ALT="Usuń drukarkę"
 CLASS="button"></A></P>
index 9d09220023e33562fdb655af1de4d255d0a4a481..bab58d17896613cfeea812cc93bb5befac56fbbd 100644 (file)
@@ -1,5 +1,7 @@
-<P>{is_class?Grupa:Drukarka} <A
-HREF="/{is_class?classes:printers}/{printer_name}">{printer_name}</A>
-została ustawiona jako domyślna na tym serwerze.</P>
+<P>{is_class?Klasa:Drukarka} <A
+HREF="/{is_class?klasy:drukarki}/{printer_name}">{printer_name}</A>
+została utworzona domyślną drukarką na serwerze.</P>
 
-<BLOCKQUOTE><B>Uwaga:</B> Domyślne ustawienia każdego użytkownika, które zostały określone przez polecenie <TT>lpoptions</TT> zignorują te ustawiena domyślne.</BLOCKQUOTE>
+<BLOCKQUOTE><B>Uwaga:</B> każdy domyślny użytkownik, który został ustawiony przez
+polecenie <TT>lpoptions</TT> zastąpi te domyślne
+ustawienie.</BLOCKQUOTE>
index 7654c73df4f89ae250a6146605825f5077345e15..fcc4b096f12537666e69624b2dfcb89f4f7e5644 100644 (file)
@@ -1 +1 @@
-<H3 CLASS="title">Wydruki</H3>
+<H3 CLASS="title">Zadania</H3>
index 7c9653a5db49983d5b18d9f756665d918eb2d1d0..0cb831cc0d1555a82a829dc7863175cd13113fa0 100644 (file)
@@ -1 +1,2 @@
-<P>Drukarka <A HREF="/printers/{printer_name}">{printer_name}</A> została pomyślnie zmodyfikowana.
+<P>Drukarka <A HREF="/printers/{printer_name}">{printer_name}</A> została
+pomyślnie zmodyfikowana.
index a9f94132898a52604f6c5d484cde3cedcf83c99c..e349fa41eda090eb67f12329d79ac7cb0af739d4 100644 (file)
@@ -1,3 +1,3 @@
-<P>Wszystkie wydruki z {is_class?Grupy:Drukarki} <A
-HREF="/{is_class?classes:printers}/{printer_name}">{printer_name}</A>
-zostały skasowane.</P>
+<P>{is_class?Klasa:Drukarka} <A
+HREF="/{is_class?klasy:drukarki/{printer_name}">{printer_name}</A>
+została wyczyszczone ze wszystkich zadań.</P>
index 7037fb5b4fa89f944ec4b38e5a3c4ef0f3023e61..4e5fb3cc790f9558af333013dc7e6b350c8c1555 100644 (file)
@@ -1,3 +1,3 @@
-<P>{is_class?Grupa:Drukarka} <A
-HREF="/{is_class?classes:printers}/{printer_name}">{printer_name}</A>
-odrzuca wydruki.</P>
+<P>{is_class?Klasa:Drukarka} <A
+HREF="/{is_class?klasy:drukarki}/{printer_name}">{printer_name}</A>
+już nie akceptuje zadań.</P>
index a85d54e0669364e89835a8e242582474505e9839..28c2f472a691ba82026b8d018873bdcb6ccbc6a8 100644 (file)
@@ -1,3 +1,3 @@
-<P>{is_class?Grupa:Drukarka} <A
-HREF="/{is_class?classes:printers}/{printer_name}">{printer_name}</A>
+<P>{is_class?Klasa:Drukarka} <A
+HREF="/{is_class?klasy:drukarki}/{printer_name}">{printer_name}</A>
 została uruchomiona.</P>
index 86c2d6de1d3ef9fb30529bb3fe7349aae4101bf8..caebd4ef171a8e3af78b2c4d6399739665908fce 100644 (file)
@@ -1,3 +1,3 @@
-<P>{is_class?Grupa:Drukarka} <A
-HREF="/{is_class?classes:printers}/{printer_name}">{printer_name}</A>
+<P>{is_class?Klasa:Drukarka} <A
+HREF="/{is_class?klasy:drukarki}/{printer_name}">{printer_name}</A>
 została zatrzymana.</P>
index 4d31f2b1a8dba0622cdebf8b0c78fbb0f8479e85..f749dad4f1aabfafa3f1fc1f5cccdbb0963350cd 100644 (file)
@@ -1 +1 @@
-<P ALIGN="CENTER">{total=0?Brak drukarek:Wyświetlam {#printer_name} z {total}{total=1?drukarkę:drukarek}}.</P>
+<P ALIGN="CENTER">{total=0?Brak drukarek:Wyświetlanie {#printer_name} z {total} drukarek{total=1?:}}.</P>
index 9cc02fe2d71a4809799af756c4c856bcf3330a4a..df0117dda7186c6ee9d63f83813c253fb8649f3a 100644 (file)
@@ -1,62 +1,62 @@
 {printer_type?:}{#printer_name=0?:
 {[printer_name]
-<H2 CLASS="title"><A HREF="{printer_uri_supported}">{printer_name}</A>{default_name={printer_name}? (Drukarka Domyślna):}
+<H2 CLASS="title"><A HREF="{printer_uri_supported}">{printer_name}</A>{default_name={printer_name}? (Domyślna drukarka):}
 {?printer_state_message=?:<SPAN CLASS="message">"{printer_state_message}"</SPAN>}</H2>
 
 <TABLE WIDTH="100%" CLASS="button" CELLSPACING="0" CELLPADDING="0" SUMMARY="{printer_name}">
 <TR>
 <TD VALIGN="TOP"><A HREF="{printer_uri_supported}">
-<IMG SRC="/images/printer-{printer_state=3?bezczynna:{printer_state=4?drukuje:zatrzymana}}.gif" CLASS="button" ALT=""></A>
+<IMG SRC="/images/printer-{printer_state=3?bezczynna:{printer_state=4?przetwarzanie:zatrzymana}}.gif" CLASS="button" ALT=""></A>
 </TD>
 <TD VALIGN="TOP"><B>Opis:</B> {printer_info}<BR>
 <B>Położenie:</B> {printer_location}<BR>
-<B>Producent i Typ:</B> {printer_make_and_model}<BR>
-<B>Stan Drukarki:</B> {printer_state=3?bezczynna:{printer_state=4?drukuje:zatrzymana}},
-{printer_is_accepting_jobs=0?odrzuca wydruki:akceptuje wydruki}, {printer_is_shared=0?nie:} opublikowana.
-{?device_uri=?:<BR><B>URI Urządzenia:</B> {device_uri}}
+<B>Producent i model:</B> {printer_make_and_model}<BR>
+<B>Stan drukarki:</B> {printer_state=3?bezczynna:{printer_state=4?przetwarzanie:zatrzymana}},
+{printer_is_accepting_jobs=0?odrzucanie zadań:akceptowanie zadań}, {printer_is_shared=0?nie opublikowana:opublikowana}.
+{?device_uri=?:<BR><B>URI urządzenia:</B> {device_uri}}
 
 <P>
 <A HREF="{printer_uri_supported}?op=print-test-page">
-<IMG SRC="/images/button-print-test-page.gif" ALT="Drukuj Stronę Testową" CLASS="button"></A>
+<IMG SRC="/images/button-print-test-page.gif" ALT="Wydrukuj stronę próbną" CLASS="button"></A>
 {?cupscommand=1?<A HREF="{printer_uri_supported}?op=clean-print-heads">
-<IMG SRC="/images/button-clean-print-heads.gif" ALT="Wyczyść Głowice Drukujące" CLASS="button"></A>
+<IMG SRC="/images/button-clean-print-heads.gif" ALT="Wyczyść głowice drukowania" CLASS="button"></A>
 <A HREF="{printer_uri_supported}?op=print-self-test-page">
-<IMG SRC="/images/button-print-self-test-page.gif" ALT="Drukuj Auto-Test Drukarki" CLASS="button"></A>:}
+<IMG SRC="/images/button-print-self-test-page.gif" ALT="Wydrukuj samodzielną stronę próbną" CLASS="button"></A>:}
 {printer_state=5?
-<A HREF="{admin_uri}?op=start-printer&amp;printer_name={%printer_name}">
-<IMG SRC="/images/button-start-printer.gif" ALT="Start Drukarki" CLASS="button"></A>
+<A HREF="{admin_uri}?op=start-printer&amp;printer_name={printer_name}">
+<IMG SRC="/images/button-start-printer.gif" ALT="Uruchom drukarkę" CLASS="button"></A>
 :
-<A HREF="{admin_uri}?op=stop-printer&amp;printer_name={%printer_name}">
-<IMG SRC="/images/button-stop-printer.gif" ALT="Zatrzymaj Drukarkę" CLASS="button"></A>
+<A HREF="{admin_uri}?op=stop-printer&amp;printer_name={printer_name}">
+<IMG SRC="/images/button-stop-printer.gif" ALT="Zatrzymaj drukarkę" CLASS="button"></A>
 }
 {printer_is_accepting_jobs=0?
-<A HREF="{admin_uri}?op=accept-jobs&amp;printer_name={%printer_name}">
-<IMG SRC="/images/button-accept-jobs.gif" ALT="Akceptuj Wydruki" CLASS="button"></A>
+<A HREF="{admin_uri}?op=accept-jobs&amp;printer_name={printer_name}">
+<IMG SRC="/images/button-accept-jobs.gif" ALT="Zaakceptuj zadania" CLASS="button"></A>
 :
-<A HREF="{admin_uri}?op=reject-jobs&amp;printer_name={%printer_name}">
-<IMG SRC="/images/button-reject-jobs.gif" ALT="Odrzucaj Wydruki" CLASS="button"></A>
+<A HREF="{admin_uri}?op=reject-jobs&amp;printer_name={printer_name}">
+<IMG SRC="/images/button-reject-jobs.gif" ALT="Odrzuć zadania" CLASS="button"></A>
 }
-<A HREF="{printer_uri_supported}?op=move-jobs&amp;printer_name={%printer_name}">
-<IMG SRC="/images/button-move-jobs.gif" ALT="Przenieś Wszystkie Wydruki" CLASS="button"></A>
-<A HREF="{admin_uri}?op=purge-jobs&amp;printer_name={%printer_name}">
-<IMG SRC="/images/button-cancel-all-jobs.gif" ALT="Skasuj Wszystkie Wydruki" CLASS="button"></A>
+<A HREF="{printer_uri_supported}?op=move-jobs&amp;printer_name={printer_name}">
+<IMG SRC="/images/button-move-jobs.gif" ALT="Przenieś wszystkie zadania" CLASS="button"></A>
+<A HREF="{admin_uri}?op=purge-jobs&amp;printer_name={printer_name}">
+<IMG SRC="/images/button-cancel-all-jobs.gif" ALT="Anuluj wszystkie zadania" CLASS="button"></A>
 {printer_is_shared=0?
-<A HREF="{admin_uri}?op=set-sharing&amp;printer_name={%printer_name}&amp;shared=1">
-<IMG SRC="/images/button-publish-printer.gif" ALT="Publikuj Drukarkę" CLASS="button"></A>
+<A HREF="{admin_uri}?op=set-sharing&amp;printer_name={printer_name}&amp;shared=1">
+<IMG SRC="/images/button-publish-printer.gif" ALT="Opublikuj drukarke" CLASS="button"></A>
 :
-<A HREF="{admin_uri}?op=set-sharing&amp;printer_name={%printer_name}&amp;shared=0">
-<IMG SRC="/images/button-unpublish-printer.gif" ALT="Nie Publikuj Drukarki" CLASS="button"></A>
+<A HREF="{admin_uri}?op=set-sharing&amp;printer_name={printer_name}&amp;shared=0">
+<IMG SRC="/images/button-unpublish-printer.gif" ALT="Odpublikuj drukarkę" CLASS="button"></A>
 }
-<A HREF="{admin_uri}?op=modify-printer&amp;printer_name={%printer_name}">
-<IMG SRC="/images/button-modify-printer.gif" ALT="Modyfikuj Drukarkę" CLASS="button"></A>
-<A HREF="{admin_uri}?op=set-printer-options&amp;printer_name={%printer_name}">
-<IMG SRC="/images/button-set-printer-options.gif" ALT="Ustaw Opcje Drukarki" CLASS="button"></A>
-<A HREF="{admin_uri}?op=delete-printer&amp;printer_name={%printer_name}">
-<IMG SRC="/images/button-delete-printer.gif" ALT="Usuń Drukarkę" CLASS="button"></A>
-<A HREF="{admin_uri}?op=set-as-default&amp;printer_name={%printer_name}">
-<IMG SRC="/images/button-set-as-default.gif" ALT="Ustaw jako Domyślną" CLASS="button"></A>
-<A HREF="{admin_uri}?op=set-allowed-users&amp;printer_name={%printer_name}">
-<IMG SRC="/images/button-set-allowed-users.gif" ALT="Ustaw Uprawnienia Użytkowników" CLASS="button"></A>
+<A HREF="{admin_uri}?op=modify-printer&amp;printer_name={printer_name}">
+<IMG SRC="/images/button-modify-printer.gif" ALT="Zmodyfikuj drukarkę" CLASS="button"></A>
+<A HREF="{admin_uri}?op=set-printer-options&amp;printer_name={printer_name}">
+<IMG SRC="/images/button-set-printer-options.gif" ALT="Ustaw opcje drukarki" CLASS="button"></A>
+<A HREF="{admin_uri}?op=delete-printer&amp;printer_name={printer_name}">
+<IMG SRC="/images/button-delete-printer.gif" ALT="Usuń drukarkę" CLASS="button"></A>
+<A HREF="{admin_uri}?op=set-as-default&amp;printer_name={printer_name}">
+<IMG SRC="/images/button-set-as-default.gif" ALT="Ustaw jako domyślną" CLASS="button"></A>
+<A HREF="{admin_uri}?op=set-allowed-users&amp;printer_name={printer_name}">
+<IMG SRC="/images/button-set-allowed-users.gif" ALT="Ustaw zezwolonych użytkowników" CLASS="button"></A>
 </P>
 </TD>
 </TR>
index 0f2935a12bbaf5657582f9c8969e87c263a629c5..57091c8d48931a5aa1e661860ccaf687396761e6 100644 (file)
@@ -1 +1 @@
-<p>Proszę czekać - ponowne uruchomienie serwera wydruków...</p>
+<p>Proszę chwilę poczekać podczas ponownego uruchamiania serwera...</p>
index 6fbd67dbee4cff889e4c86a8e8f0438ab3612632..5341cafa310f0b696f30b840f82b18f40f6e6796 100644 (file)
@@ -12,37 +12,43 @@ function select_printers() {
 <FORM METHOD="POST" ACTION="/admin/" NAME="export_samba">
 <INPUT TYPE="HIDDEN" NAME="OP" VALUE="export-samba">
 
-<H2 CLASS="title">Eksportuj do Samby</H2>
+<H2 CLASS="title">Wyeksportuj drukarki do Samby</H2>
 
-{error?<P>Nie można wyeksportować do Samby\:</P>
+{error?<P>Nie można wyeksportować drukarek do Samby\:</P>
 <BLOCKQUOTE>{error}</BLOCKQUOTE>
-<P>Przeanalizuj <A HREF="/admin/log/error_log"
-TARGET="_blank">dziennik&nbsp;błędów</A> aby uzyskać więcej informacji.</P>:
-<P>Ta strona umożliwia eksport twoich drukarek do Samby aby klienci Windows mieli do nich dostęp poprzez ikony <VAR>Otoczenia Sieciowego</VAR> lub <VAR>Moje Miejsca Sieciowe</VAR> na swoich komputerach. Musisz uprzednio zainstalować sterownik PostScript dla Windows zgodnie z opisem  w pliku pomocy polecenia <A HREF="/help/man-cupsaddsmb.html" TARGET="_blank">cupsaddsmb(8)</A>.</P>}
+<P>Zobacz plik <A HREF="/admin/log/error_log"
+TARGET="_blank">error_log</A>, aby uzyskać więcej informacji.</P>:
+<P>Ta strona pozwala na wyeksportowanie drukarek do Samby, więc
+klienci Windows mogą mieć do nich dostęp przez ikony <VAR>Otoczenie
+sieciowe</VAR> lub <VAR>Miejsca sieciowe</VAR> na ich
+pulpitach. Poprzednio musisz zainstalować sterowniki drukarek
+Windows PostScript tak, jak to opisano na stronie podręcznika <A
+HREF="/help/man-cupsaddsmb.html"
+TARGET="_blank">cupsaddsmb(8)</A>.</P>}
 
 <TABLE>
 <TR>
-<TH CLASS="label">Printers:</TH>
+<TH CLASS="label">Drukarki:</TH>
 <TD>
 <SELECT NAME="EXPORT_NAME" SIZE="10" MULTIPLE>
 {[printer_name]<OPTION VALUE="{printer_name}"{export_all? SELECTED:{printer_export? SELECTED:}}>{printer_name}}
 </SELECT><BR>
 <INPUT TYPE="CHECKBOX" NAME="EXPORT_ALL"{export_all? CHECKED:}
-onChange="select_printers()"> Export All Printers
+onChange="select_printers()"> Wyeksportuj wszystkie drukarki
 </TD>
 </TR>
 <TR>
-<TH CLASS="label">Samba Username:</TH>
-<TD><INPUT TYPE="TEXT" NAME="USERNAME" VALUE="{?USERNAME}"> (required)</TD>
+<TH CLASS="label">Nazwa użytkownika Samby:</TH>
+<TD><INPUT TYPE="TEXT" NAME="USERNAME" VALUE="{?USERNAME}"> (wymagane)</TD>
 </TR>
 <TR>
-<TH CLASS="label">Samba Password:</TH>
-<TD><INPUT TYPE="PASSWORD" NAME="PASSWORD" VALUE=""> (required)</TD>
+<TH CLASS="label">Hasło Samby:</TH>
+<TD><INPUT TYPE="PASSWORD" NAME="PASSWORD" VALUE=""> (wymagane)</TD>
 </TR>
 <TR>
 <TD></TD>
 <TD><INPUT TYPE="IMAGE" SRC="/images/button-export-samba.gif"
-ALT="Export Printers to Samba"></TD>
+ALT="Wyeksportuj drukarki do Samby"></TD>
 </TR>
 </TABLE>
 
index 1b7356a37822cf9d58f6368dc1500ea00b367758..f1ba3dcf2755a1492cadadffd4a5b2f265f82e54 100644 (file)
@@ -1 +1 @@
-<P>Eksport do Samby zakończył się powodzeniem.</P>
+<P>Drukarki zostały pomyślnie wyeksportowane do Samby.</P>
index 5bb4bd5d4c03595e32575aa7b5cce8e61e8d3fc1..053439abf1c75437432138fc5fd4e4de1883969f 100644 (file)
@@ -2,10 +2,10 @@
 {WHICH_JOBS?<INPUT TYPE="HIDDEN" NAME="WHICH_JOBS" VALUE="{WHICH_JOBS}">:}
 {ORDER?<INPUT TYPE="HIDDEN" NAME="ORDER" VALUE="{ORDER}">:}
 
-<P ALIGN="CENTER"><B>Przeszukaj 
-{SEARCH_DEST?{SEARCH_DEST}:{SECTION=classes?Grupy:{SECTION=jobs?Wydruki:Drukarki}}}:</B>
+<P ALIGN="CENTER"><B>Wyszukaj w
+{SEARCH_DEST?{SEARCH_DEST}:{SECTION=classes?Klasach:{SECTION=jobs?Zadaniach:Drukarkach}}}:</B>
 <INPUT TYPE="TEXT" NAME="QUERY" VALUE="{?QUERY}" SIZE="60"> <INPUT
-TYPE="IMAGE" SRC="/images/button-search.gif" ALT="Szukaj">
+TYPE="IMAGE" SRC="/images/button-search.gif" ALT="Wyszukaj">
 <A
 HREF="/{SECTION}/{?SEARCH_DEST}{WHICH_JOBS??WHICH_JOBS={WHICH_JOBS}{ORDER?&amp;ORDER={ORDER}:}:{ORDER??ORDER={ORDER}:}}"><IMG
 SRC="/images/button-clear.gif" ALT="Wyczyść" CLASS="button"></A></P>
index 447ffbc53998c5673d00834e06499654646563c3..6cbfd31e46cf44c9c05d60dcc989fe26371654ff 100644 (file)
@@ -1,2 +1,2 @@
-<P>Strona testowa wysłana na drukarkę; ID wydruku to <A HREF="/{SECTION}/{printer_name}">
+<P>Strona próbna została wysłana; ID zadania to <A HREF="/{SECTION}/{printer_name}">
 {printer_name}-{job_id}</A>.</P>
index 9fe5f6788b043698dc490089265d7519aa8e0f80..5b07fca5226ff2c997dbcd92ba7fdd98aa7c9786 100644 (file)
@@ -6,10 +6,10 @@
 WIDTH="15" HEIGHT="15" ALT=""></TD>
 <TD COLSPAN="2" WIDTH="100%" STYLE="padding: 5;">
 
-<P><SMALL>The Common UNIX Printing System, CUPS, and the CUPS logo are the
-trademark property of <A HREF="http://www.easysw.com">Easy Software
-Products</A>. CUPS is copyright 1997-2006 by Easy Software Products,
-All Rights Reserved.</SMALL></P>
+<P><SMALL>Common UNIX Printing System, CUPS i logo CUPS są
+zarejestrowanymi znakami towarowymi <A HREF="http://www.easysw.com">Easy Software
+Products</A>. Copyright 1997-2006 Easy Software Products,
+wszelkie prawa zastrzeżone.</SMALL></P>
 
 </TD>
 
index a17107a14580300034a95099b193ececc8cc1fa8..856d51f9e0d6b10069226d1d71490b2c2ce4f327 100644 (file)
@@ -3,7 +3,7 @@
 <INPUT TYPE="HIDDEN" NAME="PRINTER_NAME" VALUE="{printer_name}">
 {IS_CLASS?<INPUT TYPE="HIDDEN" NAME="IS_CLASS" VALUE="{IS_CLASS}">:}
 
-<H2 CLASS="title">Użytkownicy Uprawnieni do {printer_name}</H2>
+<H2 CLASS="title">Zezwoleni użytkownicy dla {printer_name}</H2>
 
 <TABLE>
 <TR>
 <TD>
 <INPUT TYPE='TEXT' NAME='users' SIZE='60' VALUE='{?requesting_user_name_allowed}{?requesting_user_name_denied}'>
 <BR>
-<INPUT TYPE='RADIO' NAME='type' VALUE='requesting-user-name-allowed' {requesting_user_name_allowed?checked:}>Zezwalaj tym użytkownikom na drukowanie
-<INPUT TYPE='RADIO' NAME='type' VALUE='requesting-user-name-denied' {requesting_user_name_denied?checked:}>Zabraniaj tym użytkownikom na drukowania
+<INPUT TYPE='RADIO' NAME='type' VALUE='requesting-user-name-allowed' {requesting_user_name_allowed?sprawdzone:}>Pozwól tym użytkownikom na drukowanie
+<INPUT TYPE='RADIO' NAME='type' VALUE='requesting-user-name-denied' {requesting_user_name_denied?sprawdzone:}>Zabroń tym użytkownikom drukowania
 </TD>
 </TR>
 <TR>
 <TD></TD>
 <TD>
-<INPUT TYPE="IMAGE" SRC="/images/button-set-allowed-users.gif" ALT="Ustaw Uprawnienia Użytkowników">
+<INPUT TYPE="IMAGE" SRC="/images/button-set-allowed-users.gif" ALT="Ustaw zezwolonych użytkowników">
 </TD>
 </TR>
 </TABLE>
index cf0470d6ea46b30043214205d3e4ab7e94d95ab9..af5fc474dd2286ca4f3e6b9557839d6a2e74a756 100644 (file)
@@ -18,7 +18,7 @@
 <TD>{job_k_octets}k&nbsp;</TD>
 <TD>{job_media_sheets_completed=0?Okänt:{?job_media_sheets_completed}}</TD>
 <TD>{job_state=3?väntar sedan<BR>{time_at_creation}:{job_state=4?hålls kvar sedan<BR>{time_at_creation}:
-{job_state=5?behandlas sedan<BR>{time_at_processing}:{job_state=6?stoppad kl<BR>{time_at_completed}:
+{job_state=5?behandlas sedan<BR>{time_at_processing}:{job_state=6?stoppad:
 {job_state=7?cancelled at<BR>{time_at_completed}:{job_state=8?aborted:färdig kl<BR>{time_at_completed}}}}}}}&nbsp;</TD>
 <TD>
 {job_preserved>0?
index a72fef4b5644d66a868f76da1aca25c1d242b986..955a8f42dcd086965d54e25ce52b52d74395b3aa 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-# "$Id: makesrcdist 5304 2006-03-18 01:21:37Z mike $"
+# "$Id: makesrcdist 5502 2006-05-08 21:09:15Z mike $"
 #
 # makesrcdist - make a source distribution of CUPS.
 #
@@ -18,9 +18,9 @@ if test $# = 0; then
        echo Updating for snapshot...
        svn up
        rev=`svnversion . | sed -e '1,$s/[a-zA-Z]//g'`
-       version="1.2svn"
+       version="1.3svn"
        revision="-r$rev"
-       fileversion="1.2svn-r$rev"
+       fileversion="1.3svn-r$rev"
        fileurl="ftp://ftp.easysw.com/pub/cups/test/cups-$fileversion-source.tar."
        url="."
 else
@@ -81,5 +81,5 @@ rm -rf cups-$version
 echo "Done!"
 
 #
-# End of "$Id: makesrcdist 5304 2006-03-18 01:21:37Z mike $".
+# End of "$Id: makesrcdist 5502 2006-05-08 21:09:15Z mike $".
 #
index 655853a3b38fa042abcca39620f091d352f9b826..4bc74b58042cbbace7b60aab3a00a072447716f9 100755 (executable)
@@ -12,7 +12,7 @@ fi
 rev=`svnversion . | awk -F: '{print $NF}' | sed -e '1,$s/[a-zA-Z]*//g'`
 
 if test $# = 0; then
-       version="1.2svn-r$rev"
+       version="1.3svn-r$rev"
 else
        version=$1
 fi
@@ -69,7 +69,7 @@ for file in packaging/cups-desc.plist packaging/cups-info.plist \
        echo Updating $file...
        sed -e '1,$s/@CUPS_VERSION@/'$version'/g' \
                -e '1,$s/@CUPS_REVISION@//g' \
-               -e '1,$s/@CUPS_RELEASE@/1.2.'$rev'/g' \
+               -e '1,$s/@CUPS_RELEASE@/1.3.'$rev'/g' \
                <$file.in >$file
 done