--- /dev/null
+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.
-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.
#
-# "$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).
#
#
ARCH32FLAGS = @ARCH32FLAGS@
+DSO32FLAGS = @DSO32FLAGS@
INSTALL32 = @INSTALL32@
LIB32CUPS = @LIB32CUPS@
LIB32CUPSIMAGE = @LIB32CUPSIMAGE@
UNINSTALL32 = @UNINSTALL32@
ARCH64FLAGS = @ARCH64FLAGS@
+DSO64FLAGS = @DSO64FLAGS@
INSTALL64 = @INSTALL64@
LIB64CUPS = @LIB64CUPS@
LIB64CUPSIMAGE = @LIB64CUPSIMAGE@
#
-# 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 $"
#
#
-# "$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).
#
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; \
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
#
-# End of "$Id: Makefile 5498 2006-05-07 16:52:14Z mike $".
+# End of "$Id: Makefile 5546 2006-05-19 12:44:15Z mike $".
#
/*
- * "$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).
*
*ptr++ = *optptr++;
*ptr = '\0';
- if (*optptr == '+')
+ if (*optptr == '+' || *optptr == '&')
optptr ++;
}
else
/*
- * 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 $".
*/
/*
- * "$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).
*
*ptr++ = *options++;
*ptr = '\0';
- if (*options == '+')
+ if (*options == '+' || *options == '&')
options ++;
}
else
/*
- * 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 $".
*/
/*
- * "$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).
*
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 */
(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...
*/
do
{
FD_ZERO(&input);
- FD_SET(fd, &input);
+ if (usebc)
+ FD_SET(fd, &input);
+
FD_ZERO(&output);
FD_SET(fd, &output);
}
/*
- * 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 $".
*/
/*
- * "$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).
*
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);
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);
};
+ 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"));
"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);
*keyptr = '\0';
- if (!strcmp(keyword, "PageRegion"))
+ if (!strcmp(keyword, "PageRegion") ||
+ !strcmp(keyword, "PaperDimension") ||
+ !strcmp(keyword, "ImageableArea"))
var = cgiGetVariable("PageSize");
else
var = cgiGetVariable(keyword);
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);
}
else
{
- cgiSetVariable("refresh_page", "5;/admin/?OP=redirect");
+ cgiSetVariable("refresh_page", "5;URL=/admin/?OP=redirect");
cgiStartHTML(cgiText(_("Change Settings")));
cgiCopyTemplateLang("restart.tmpl");
}
}
else
{
- cgiSetVariable("refresh_page", "5;/admin/?OP=redirect");
+ cgiSetVariable("refresh_page", "5;URL=/admin/?OP=redirect");
cgiStartHTML(cgiText(_("Edit Configuration File")));
cgiCopyTemplateLang("restart.tmpl");
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);
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")));
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")));
/*
- * 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 $".
*/
/*
- * "$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).
*
* See who is logged in...
*/
- if ((user = getenv("REMOTE_USER")) == NULL)
- user = "guest";
+ user = getenv("REMOTE_USER");
/*
* Connect to the HTTP server...
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 */
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");
*/
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);
}
/*
- * 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 $".
*/
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)
{
/*
- * "$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).
*
{
(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 $".
*/
/*
- * "$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).
*
{
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);
}
*/
cgiFormEncode(uri, resource, sizeof(uri));
- snprintf(refresh, sizeof(refresh), "2;%s", uri);
+ snprintf(refresh, sizeof(refresh), "2;URL=%s", uri);
cgiSetVariable("refresh_page", refresh);
}
fprintf(stderr, "DEBUG2: cgiSetIPPObjectVars(obj=%p, prefix=\"%s\", "
"element=%d)\n",
- obj, prefix, element);
+ obj, prefix ? prefix : "(null)", element);
/*
* Set common CGI template variables...
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...
/*
- * 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 $".
*/
/*
- * "$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).
*
* See who is logged in...
*/
- if ((user = getenv("REMOTE_USER")) == NULL)
- user = "guest";
+ user = getenv("REMOTE_USER");
/*
* Connect to the HTTP 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);
}
fprintf(stderr, "DEBUG: show_all_printers(http=%p, user=\"%s\")\n",
- http, user);
+ http, user ? user : "(null)");
/*
* Show the standard header...
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");
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
*/
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);
}
/*
- * 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 $".
*/
/*
- * "$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.
*
fprintf(stderr, "DEBUG: cgiCopyTemplateFile(out=%p, tmpl=\"%s\")\n", out,
- tmpl);
+ tmpl ? tmpl : "(null)");
/*
* Open the template 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;
}
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...
/*
- * 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 $".
*/
/*
- * "$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.
*
{
(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
/*
- * 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 $".
*/
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
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'`"
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
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
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"
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"
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"
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"
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"
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"
# 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
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"
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"
# 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"
# 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
;;
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
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
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)
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
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
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"))
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
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
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"
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
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)
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=""
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
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
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...
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)
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
#! /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@
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"
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
;;
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 $".
#
#
-# "$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).
#
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
#
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
#
-# 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
#
#
-# End of "$Id: Makefile 5491 2006-05-04 20:53:35Z mike $".
+# End of "$Id: Makefile 5563 2006-05-21 17:18:40Z mike $".
#
/*
- * "$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).
*
* 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;
/*
- * 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 $".
*/
/*
- * "$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).
*
* Write error - abort on fatal errors...
*/
- if (errno != EINTR && errno != EAGAIN)
+ if (errno != EINTR)
return (-1);
}
else
/*
- * 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 $".
*/
/*
- * "$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).
*
* 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
#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 $".
*/
/*
- * "$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).
*
{ "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 },
{ "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 },
{ "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 },
/*
- * 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 $".
*/
/*
- * "$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.
* 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));
}
}
/*
- * 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 $".
*/
/*
- * "$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).
*
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);
#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 $".
*/
/*
- * "$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).
*
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...
*/
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);
+ }
}
/*
- * 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 $".
*/
/*
- * "$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).
*
if (!nameptr || *nameptr != 'x')
return (NULL);
- l = _cupsStrScand(nameptr, &nameptr, loc);
+ l = _cupsStrScand(nameptr + 1, &nameptr, loc);
if (!nameptr)
return (NULL);
/*
- * 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 $".
*/
/*
- * "$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).
*
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",
response = NULL;
status = HTTP_ERROR;
+ expect = HTTP_CONTINUE;
while (response == NULL)
{
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));
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));
/*
- * 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 $".
*/
/*
- * "$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).
*
if (*format == '*')
{
- // Get width from argument...
+ /*
+ * Get width from argument...
+ */
+
format ++;
width = va_arg(ap, int);
if (*format == '*')
{
- // Get precision from argument...
+ /*
+ * Get precision from argument...
+ */
+
format ++;
prec = va_arg(ap, int);
/*
- * 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 $".
*/
--- /dev/null
+<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>
<!-- SECTION: Specifications -->
<HEAD>
<TITLE>CUPS Raster Format</TITLE>
+ <LINK REL="STYLESHEET" TYPE="test/css" HREF="../cups.css">
</HEAD>
<BODY>
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>
<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>
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>
<TD>cupsRowStep</TD>
<TD>Driver-specific 0 to 2<SUP>32</SUP> - 1</TD>
</TR>
+</TBODY>
</TABLE></DIV>
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>
<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>
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>
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>
+ </I></LI>
+
+ <LI>8-bit Decoding:<BR>
+ <I>L = L8 / 2.55<BR>
+ a = a8 - 128<BR>
+ b = b8 - 128<BR>
+ </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>
+ </I></LI>
+
+ <LI>16-bit Decoding:<BR>
+ <I>L = L16 / 655.35<BR>
+ a = a16 / 256 - 128<BR>
+ b = b16 / 256 - 128<BR>
+ </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>
+ </I></LI>
+
+ <LI>8-bit Decoding:<BR>
+ <I>X = X8 / 231.8181<BR>
+ Y = Y8 / 231.8181<BR>
+ Z = Z8 / 231.8181<BR>
+ </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>
+ </I></LI>
+
+ <LI>16-bit Decoding:<BR>
+ <I>X = X16 / 59577.2727<BR>
+ Y = Y16 / 59577.2727<BR>
+ Z = Z16 / 59577.2727<BR>
+ </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>
<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>
<A CLASS="sel" HREF="/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
HEIGHT="4" ALIGN="TOP" BORDER="0"
-ALT=""> Strona Główna <IMG
+ALT=""> Strona domowa <IMG
SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
BORDER="0" ALT=""></A>
<A CLASS="unsel" HREF="/classes/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
HEIGHT="4" ALIGN="TOP" BORDER="0"
-ALT=""> Grupy <IMG
+ALT=""> Klasy <IMG
SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
BORDER="0" ALT=""></A>
<A CLASS="unsel" HREF="/help/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
HEIGHT="4" ALIGN="TOP" BORDER="0"
-ALT=""> Dokumentacja/Pomoc <IMG
+ALT=""> Dokumentacja/pomoc <IMG
SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
BORDER="0" ALT=""></A>
<A CLASS="unsel" HREF="/jobs/"><IMG SRC="/images/tab-left.gif" WIDTH="4"
HEIGHT="4" ALIGN="TOP" BORDER="0"
-ALT=""> Wydruki <IMG
+ALT=""> Zadania <IMG
SRC="/images/tab-right.gif" WIDTH="4" HEIGHT="4" ALIGN="TOP"
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>®</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>®</SUP> X i większości dystrybucji Linuksa<SUP>®</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>®</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>®</SUP> X i większości dystrybucji Linuksa<SUP>®</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>
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>
#
-# "$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).
#
clean:
$(RM) $(OBJS) $(TARGETS)
$(RM) libcupsimage.so libcupsimage.sl libcupsimage.dylib
- $(RM) libcupsimage.32.so libcupsimage.64.so
+ $(RM) -r 32bit 64bit
#
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
#
-# 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
#
#
-# End of "$Id: Makefile 5491 2006-05-04 20:53:35Z mike $".
+# End of "$Id: Makefile 5563 2006-05-21 17:18:40Z mike $".
#
/*
- * "$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
for (y = img->ysize - 1; y >= 0; y --)
{
- if (img->colorspace == CUPS_IMAGE_RGB)
- ptr = out;
- else
- ptr = in;
+ ptr = in;
switch (depth)
{
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)
/*
- * 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 $".
*/
/*
- * "$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".
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);
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 --;
* 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;
}
*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);
* 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...
* 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...
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
* 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...
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;
}
/*
- * 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 $".
*/
/*
- * "$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
break;
case CUPS_IMAGE_RGB :
case CUPS_IMAGE_RGB_CMYK :
+ for (i = ncolors - 1; i >= 0; i --)
+ cupsImageRGBToRGB(cmap[i], cmap[i], 1);
break;
}
/*
- * 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 $".
*/
/*
- * "$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
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
default :
break;
+ case CUPS_IMAGE_RGB :
+ cupsImageRGBToRGB(in, out, img->xsize);
+ break;
case CUPS_IMAGE_WHITE :
cupsImageRGBToWhite(in, out, img->xsize);
break;
/*
- * 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 $".
*/
/*
- * "$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).
*
* 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
* 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);
}
}
}
/*
- * 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 $".
*/
/*
- * "$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
{
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 --)
{
*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)
/*
- * 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 $".
*/
/*
- * "$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).
*
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);
/*
- * 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 $".
*/
/*
- * "$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
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;
}
}
/*
- * 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 $".
*/
/*
- * "$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
}
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);
}
}
/*
- * 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 $".
*/
/*
- * "$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
}
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);
}
}
/*
- * 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 $".
*/
/*
- * "$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
}
}
- 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
}
}
- 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;
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
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;
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
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);
}
}
/*
- * 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 $".
*/
/*
- * "$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).
*
* 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.
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 },
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);
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 */
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 :
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;
secondary = CUPS_IMAGE_CMYK;
}
break;
+
+ case CUPS_CSPACE_CMY :
+ case CUPS_CSPACE_YMC :
+ primary = CUPS_IMAGE_CMY;
+ secondary = CUPS_IMAGE_CMY;
+ break;
+ break;
}
/*
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);
* 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...
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;
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;
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 (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;
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...
OnPixels[i] = 17 * (i / 17 + 1);
OffPixels[i] = 17 * (i / 16);
}
-
- OnPixels[255] = OffPixels[255] = 0xff;
break;
}
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 ++)
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...
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) <
* 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];
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;
}
/*
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) <
}
+/*
+ * '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.
*/
{
case 1 :
bitmask = 64 >> (bitoffset & 7);
- dither = Floyd16xc16[y & 15];
+ dither = Floyd16x16[y & 15];
for (x = xsize ; x > 0; x --)
{
{
case 1 :
bitmask = 0x80 >> (bitoffset & 7);
- dither = Floyd16xc16[y & 15];
+ dither = Floyd16x16[y & 15];
for (x = xsize; x > 0; x --)
{
break;
case 2 :
- bitmask = 0x0 >> (bitoffset & 7);
+ bitmask = 0xc0 >> (bitoffset & 7);
dither = Floyd8x8[y & 7];
for (x = xsize; x > 0; x --)
bitmask >>= 2;
else
{
- bitmask = 0x0;
+ bitmask = 0xc0;
cptr ++;
mptr ++;
{
case 1 :
bitmask = 0x80 >> (bitoffset & 7);
- dither = Floyd16xc16[y & 15];
+ dither = Floyd16x16[y & 15];
switch (z)
{
break;
case 2 :
- bitmask = 0x0 >> (bitoffset & 7);
+ bitmask = 0xc0 >> (bitoffset & 7);
dither = Floyd8x8[y & 7];
r0 += z;
bitmask >>= 2;
else
{
- bitmask = 0x0;
+ bitmask = 0xc0;
ptr ++;
}
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)
{
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;
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]]);
{
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;
break;
case 2 :
- bitmask = 0x0 >> (bitoffset & 7);
+ bitmask = 0xc0 >> (bitoffset & 7);
dither = Floyd8x8[y & 7];
for (x = xsize; x > 0; x --)
bitmask >>= 2;
else
{
- bitmask = 0x0;
+ bitmask = 0xc0;
cptr ++;
mptr ++;
{
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)
break;
case 2 :
- bitmask = 0x0 >> (bitoffset & 7);
+ bitmask = 0xc0 >> (bitoffset & 7);
dither = Floyd8x8[y & 7];
r0 += z;
bitmask >>= 2;
else
{
- bitmask = 0x0;
+ bitmask = 0xc0;
ptr ++;
}
{
case 1 :
bitmask = 0x80 >> (bitoffset & 7);
- dither = Floyd16xc16[y & 15];
+ dither = Floyd16x16[y & 15];
for (x = xsize; x > 0; x --)
{
break;
case 2 :
- bitmask = 0x0 >> (bitoffset & 7);
+ bitmask = 0xc0 >> (bitoffset & 7);
dither = Floyd8x8[y & 7];
for (x = xsize; x > 0; x --)
bitmask >>= 2;
else
{
- bitmask = 0x0;
+ bitmask = 0xc0;
ptr ++;
}
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)
{
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;
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]]);
{
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;
break;
case 2 :
- bitmask = 0x0 >> (bitoffset & 7);
+ bitmask = 0xc0 >> (bitoffset & 7);
dither = Floyd8x8[y & 7];
for (x = xsize; x > 0; x --)
bitmask >>= 2;
else
{
- bitmask = 0x0;
+ bitmask = 0xc0;
cptr ++;
mptr ++;
{
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)
break;
case 2 :
- bitmask = 0x0 >> (bitoffset & 7);
+ bitmask = 0xc0 >> (bitoffset & 7);
dither = Floyd8x8[y & 7];
if (z == 0)
r0 += 3;
bitmask >>= 2;
else
{
- bitmask = 0x0;
+ bitmask = 0xc0;
ptr ++;
}
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;
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;
}
}
{
case 1 :
bitmask = 128 >> (bitoffset & 7);
- dither = Floyd16xc16[y & 15];
+ dither = Floyd16x16[y & 15];
for (x = xsize ; x > 0; x --)
{
*ptr ^= bitmask;
if (bitmask > 2)
- {
- *ptr ^= 16;
bitmask >>= 2;
- }
else
{
bitmask = 128;
- *ptr++ ^= 1;
+ ptr ++;
}
}
break;
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]]);
else
*ptr ^= (0x0c & OffPixels[r0[2]]);
- *ptr++ ^= 0x03;
+ ptr ++;
}
break;
else
*ptr ^= (0xf0 & OffPixels[r0[2]]);
- *ptr++ ^= 0x0f;
+ ptr ++;
}
break;
else
*ptr++ = (r0[2] * yerr0 + r1[2] * yerr1) / ysize;
- *ptr++ = 255;
+ ptr ++;
}
break;
}
{
case 1 :
bitmask = 0x80 >> (bitoffset & 7);
- dither = Floyd16xc16[y & 15];
+ dither = Floyd16x16[y & 15];
for (x = xsize; x > 0; x --)
{
break;
case 2 :
- bitmask = 0x0 >> (bitoffset & 7);
+ bitmask = 0xc0 >> (bitoffset & 7);
dither = Floyd8x8[y & 7];
for (x = xsize; x > 0; x --)
bitmask >>= 2;
else
{
- bitmask = 0x0;
+ bitmask = 0xc0;
cptr ++;
mptr ++;
{
case 1 :
bitmask = 0x80 >> (bitoffset & 7);
- dither = Floyd16xc16[y & 15];
+ dither = Floyd16x16[y & 15];
switch (z)
{
break;
case 2 :
- bitmask = 0x0 >> (bitoffset & 7);
+ bitmask = 0xc0 >> (bitoffset & 7);
dither = Floyd8x8[y & 7];
r0 += z;
bitmask >>= 2;
else
{
- bitmask = 0x0;
+ bitmask = 0xc0;
ptr ++;
}
{
case 1 :
bitmask = 0x80 >> (bitoffset & 7);
- dither = Floyd16xc16[y & 15];
+ dither = Floyd16x16[y & 15];
for (x = xsize; x > 0; x --)
{
break;
case 2 :
- bitmask = 0x0 >> (bitoffset & 7);
+ bitmask = 0xc0 >> (bitoffset & 7);
dither = Floyd8x8[y & 7];
for (x = xsize; x > 0; x --)
bitmask >>= 2;
else
{
- bitmask = 0x0;
+ bitmask = 0xc0;
ptr ++;
}
{
case 1 :
bitmask = 64 >> (bitoffset & 7);
- dither = Floyd16xc16[y & 15];
+ dither = Floyd16x16[y & 15];
for (x = xsize ; x > 0; x --, r0 += 3)
{
{
case 1 :
bitmask = 0x80 >> (bitoffset & 7);
- dither = Floyd16xc16[y & 15];
+ dither = Floyd16x16[y & 15];
for (x = xsize; x > 0; x --)
{
break;
case 2 :
- bitmask = 0x0 >> (bitoffset & 7);
+ bitmask = 0xc0 >> (bitoffset & 7);
dither = Floyd8x8[y & 7];
for (x = xsize; x > 0; x --)
bitmask >>= 2;
else
{
- bitmask = 0x0;
+ bitmask = 0xc0;
cptr ++;
mptr ++;
{
case 1 :
bitmask = 0x80 >> (bitoffset & 7);
- dither = Floyd16xc16[y & 15];
+ dither = Floyd16x16[y & 15];
switch (z)
{
break;
case 2 :
- bitmask = 0x0 >> (bitoffset & 7);
+ bitmask = 0xc0 >> (bitoffset & 7);
dither = Floyd8x8[y & 7];
z = 2 - z;
r0 += z;
bitmask >>= 2;
else
{
- bitmask = 0x0;
+ bitmask = 0xc0;
ptr ++;
}
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)
{
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;
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]]);
{
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;
break;
case 2 :
- bitmask = 0x0 >> (bitoffset & 7);
+ bitmask = 0xc0 >> (bitoffset & 7);
dither = Floyd8x8[y & 7];
for (x = xsize; x > 0; x --)
bitmask >>= 2;
else
{
- bitmask = 0x0;
+ bitmask = 0xc0;
cptr ++;
mptr ++;
{
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)
break;
case 2 :
- bitmask = 0x0 >> (bitoffset & 7);
+ bitmask = 0xc0 >> (bitoffset & 7);
dither = Floyd8x8[y & 7];
if (z == 3)
r0 += 3;
bitmask >>= 2;
else
{
- bitmask = 0x0;
+ bitmask = 0xc0;
ptr ++;
}
/*
- * 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 $".
*/
/*
- * "$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).
*
break;
case CUPS_CSPACE_KCMYcm :
- if (h->cupsBitsPerPixel == 1)
+ if (h->cupsBitsPerColor == 1)
{
if (h->cupsColorOrder == CUPS_ORDER_CHUNKED)
h->cupsBitsPerPixel = 8;
/*
- * 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 $".
*/
/*
- * "$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).
*
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);
}
}
+ /*
+ * Restore the old showpage operator as needed...
+ */
+
+ if (doc->use_ESPshowpage)
+ puts("userdict/showpage/ESPshowpage load put\n");
+
/*
* Write/copy the trailer...
*/
}
}
}
+
+ /*
+ * Restore the old showpage operator as needed...
+ */
+
+ if (doc->use_ESPshowpage)
+ puts("userdict/showpage/ESPshowpage load put\n");
}
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...
*/
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)
{
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
{
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;
/*
- * 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 $".
*/
/*
- * "$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...
*/
}
}
- 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))
{
/*
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...
*/
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;
}
}
*/
r->remaining --;
+
if (r->remaining == 0)
return (cups_raster_write(r));
}
}
-
- remaining -= bytes;
- p += bytes;
}
return (len);
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...
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;
case CUPS_CSPACE_KCMY :
case CUPS_CSPACE_GMCK :
case CUPS_CSPACE_GMCS :
- case CUPS_CSPACE_ICC4 :
r->header.cupsNumColors = 4;
break;
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;
}
}
int count; /* Count */
+#ifdef DEBUG
+ fprintf(stderr, "cups_raster_write(r=%p)\n", r);
+#endif /* DEBUG */
+
/*
* Write the row repeat count...
*/
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...
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))
{
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
{
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);
+ }
}
}
/*
- * 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 $".
*/
/*
- * "$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).
*
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);
#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 $".
*/
/*
- * "$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).
*
* 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 */
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);
case ZEBRA_CPCL :
break;
+
+ case INTELLITECH_PCL :
+ /*
+ * Send a PCL reset sequence.
+ */
+
+ putchar(0x1b);
+ putchar('E');
+ break;
}
}
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
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;
}
/*
puts("FORM\r");
puts("PRINT\r");
break;
+
+ case INTELLITECH_PCL :
+ printf("\033*rB"); /* End GFX */
+ printf("\014"); /* Eject current page */
+ break;
}
fflush(stdout);
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.
*/
* and return.
*/
- fputs("ERROR: rastertodymo job-id user title copies options [file]\n", stderr);
+ fputs("ERROR: rastertolabel job-id user title copies options [file]\n", stderr);
return (1);
}
/*
- * End of "$Id: rastertolabel.c 5287 2006-03-13 16:41:45Z mike $".
+ * End of "$Id: rastertolabel.c 5510 2006-05-11 17:41:54Z mike $".
*/
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"
" 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$".
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"
"\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"
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"
"\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"
--- /dev/null
+#
+# "$Id$"
+#
+# Message catalog template for the Common UNIX Printing System (CUPS).
+#
+# Copyright 2005-2006 by Easy Software Products.
+#
+# These coded instructions, statements, and computer programs are the
+# property of Easy Software Products and are protected by Federal
+# copyright law. Distribution and use rights are outlined in the file
+# "LICENSE.txt" which should have been included with this file. If this
+# file is missing or damaged please contact Easy Software Products
+# at:
+#
+# Attn: CUPS Licensing Information
+# Easy Software Products
+# 44141 Airport View Drive, Suite 204
+# Hollywood, Maryland 20636 USA
+#
+# Voice: (301) 373-9600
+# EMail: cups-info@cups.org
+# WWW: http://www.cups.org
+#
+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"
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"
msgid "Auto"
msgstr "Auto"
-msgid "Enter your username and password or the root username and password to access this page."
-msgstr "Ange ditt användarnamn och lösenord eller root-användnamnet och lösenord för att komma åt denna sida."
+msgid ""
+"Enter your username and password or the root username and password to access "
+"this page."
+msgstr ""
+"Ange ditt användarnamn och lösenord eller root-användnamnet och lösenord för "
+"att komma åt denna sida."
msgid "You must use a https: URL to access this page."
msgstr "Du måste använda en https:-url för att komma åt denna sida."
msgid "The printer or class was not found."
msgstr "Skrivaren eller klassen hittades inte."
-msgid "The printer-uri must be of the form \"ipp://HOSTNAME/classes/CLASSNAME\"."
-msgstr "Printer-uri måste vara i formatet \"ipp://VÄRDNAMN/classes/KLASSNAMN\"."
+msgid ""
+"The printer-uri must be of the form \"ipp://HOSTNAME/classes/CLASSNAME\"."
+msgstr ""
+"Printer-uri måste vara i formatet \"ipp://VÄRDNAMN/classes/KLASSNAMN\"."
#, c-format
msgid "The printer-uri \"%s\" contains invalid characters."
msgid "The notify-user-data value is too large (%d > 63 octets)!"
msgstr "Värdet för notify-user-data är för stort (%d > 63 okteter)!"
-msgid "The notify-lease-duration attribute cannot be used with job subscriptions."
-msgstr "Attributet notify-lease-duration kan inte användas med jobbprenumerationer."
+msgid ""
+"The notify-lease-duration attribute cannot be used with job subscriptions."
+msgstr ""
+"Attributet notify-lease-duration kan inte användas med jobbprenumerationer."
-msgid "The printer-uri must be of the form \"ipp://HOSTNAME/printers/PRINTERNAME\"."
-msgstr "Printer-uri måste vara i formatet \"ipp://VÄRDNAMN/printers/SKRIVARNAMN\"."
+msgid ""
+"The printer-uri must be of the form \"ipp://HOSTNAME/printers/PRINTERNAME\"."
+msgstr ""
+"Printer-uri måste vara i formatet \"ipp://VÄRDNAMN/printers/SKRIVARNAMN\"."
#, c-format
msgid "A class named \"%s\" already exists!"
msgstr "En klass med namnet \"%s\" finns redan!"
#, c-format
-msgid "File device URIs have been disabled! To enable, see the FileDevice directive in \"%s/cupsd.conf\"."
-msgstr "Felenhets URI:er har blivit inaktiverat! För att aktivera, se direktivet FileDevice i \"%s/cupsd.conf\"."
+msgid ""
+"File device URIs have been disabled! To enable, see the FileDevice directive "
+"in \"%s/cupsd.conf\"."
+msgstr ""
+"Felenhets URI:er har blivit inaktiverat! För att aktivera, se direktivet "
+"FileDevice i \"%s/cupsd.conf\"."
#, c-format
msgid "Bad device-uri \"%s\"!"
msgstr "lpq: Okänt mål \"%s\"!\n"
#, c-format
-msgid "lp: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgid ""
+"lp: error - %s environment variable names non-existent destination \"%s\"!\n"
msgstr "lp: fel - miljövariabeln %s namnger icke-existerande mål \"%s\"!\n"
msgid "lpq: error - no default destination available.\n"
msgid "lpq: get-jobs failed: %s\n"
msgstr "lpq: get-jobs misslyckades: %s\n"
-msgid "Rank Owner Pri Job Files Total Size\n"
-msgstr "Rank Ägare Pri Jobb Filer Total storlek\n"
+msgid ""
+"Rank Owner Pri Job Files Total Size\n"
+msgstr ""
+"Rank Ägare Pri Jobb Filer Total storlek\n"
msgid "Rank Owner Job File(s) Total Size\n"
-msgstr "Rank Ägare Jobb Fil(er) Total storlek\n"
+msgstr ""
+"Rank Ägare Jobb Fil(er) Total storlek\n"
#, c-format
msgid "%s: %-33.33s [job %d localhost]\n"
msgstr "lpr: fel - förväntade värde efter flaggan -%c!\n"
#, c-format
-msgid "lpr: warning - '%c' format modifier not supported - output may not be correct!\n"
-msgstr "lpr: varning - \"%c\"-formatmodifierare stöds inte - utmatning kanske inte blir korrekt!\n"
+msgid ""
+"lpr: warning - '%c' format modifier not supported - output may not be "
+"correct!\n"
+msgstr ""
+"lpr: varning - \"%c\"-formatmodifierare stöds inte - utmatning kanske inte "
+"blir korrekt!\n"
msgid "lpr: error - expected option=value after -o option!\n"
msgstr "lpr: fel - förväntade alternativ=värde efter flaggan -o!\n"
msgstr "lpr: fel - för många filer - \"%s\"\n"
#, c-format
-msgid "lpr: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgid ""
+"lpr: error - %s environment variable names non-existent destination \"%s\"!\n"
msgstr "lpr: fel - miljövariabeln %s namnger icke-existerande mål \"%s\"!\n"
msgid "lpr: error - no default destination available.\n"
#, c-format
msgid "cupsaddsmb: Unable to copy Windows 2000 printer driver files (%d)!\n"
-msgstr "cupsaddsmb: Kunde inte kopiera filer för Windows 2000-skrivardrivrutin (%d)!\n"
+msgstr ""
+"cupsaddsmb: Kunde inte kopiera filer för Windows 2000-skrivardrivrutin (%"
+"d)!\n"
#, c-format
msgid "cupsaddsmb: Unable to copy CUPS printer driver files (%d)!\n"
#, c-format
msgid "cupsaddsmb: Unable to install Windows 2000 printer driver files (%d)!\n"
-msgstr "cupsaddsmb: Kunde inte installera filer för Windows 2000-skrivardrivrutin (%d)!\n"
+msgstr ""
+"cupsaddsmb: Kunde inte installera filer för Windows 2000-skrivardrivrutin (%"
+"d)!\n"
#, c-format
msgid "cupsaddsmb: Unable to copy Windows 9x printer driver files (%d)!\n"
-msgstr "cupsaddsmb: Kunde inte kopiera filer för Windows 9x-skrivardrivrutin (%d)!\n"
+msgstr ""
+"cupsaddsmb: Kunde inte kopiera filer för Windows 9x-skrivardrivrutin (%d)!\n"
#, c-format
msgid "cupsaddsmb: Unable to install Windows 9x printer driver files (%d)!\n"
-msgstr "cupsaddsmb: Kunde inte installera filer för Windows 9x-skrivardrivrutin (%d)!\n"
+msgstr ""
+"cupsaddsmb: Kunde inte installera filer för Windows 9x-skrivardrivrutin (%"
+"d)!\n"
#, c-format
msgid "cupsaddsmb: Unable to set Windows printer driver (%d)!\n"
#, c-format
msgid ""
-" WARN Duplex option keyword %s should be named Duplex or JCLDuplex!\n"
+" WARN Duplex option keyword %s should be named Duplex or "
+"JCLDuplex!\n"
" REF: Page 122, section 5.17\n"
msgstr ""
-" VARN Nyckelord för Duplex-alternativet %s bör vara Duplex eller JCLDuplex!\n"
+" VARN Nyckelord för Duplex-alternativet %s bör vara Duplex eller "
+"JCLDuplex!\n"
" REF: Sida 122, sektion 5.17\n"
msgid " WARN Default choices conflicting!\n"
" WARN Protocols contains PJL but JCL attributes are not set.\n"
" REF: Pages 78-79, section 5.7.\n"
msgstr ""
-" VARN Protokollen innehåller PJL men JCL-attributen är inte inställda.\n"
+" VARN Protokollen innehåller PJL men JCL-attributen är inte "
+"inställda.\n"
" REF: Sidorna 78-79, sektion 5.7.\n"
#, c-format
" (begränsare=\"%s %s %s %s\")\n"
msgid ""
-"Usage: cupstestppd [-q] [-r] [-v[v]] filename1.ppd[.gz] [... filenameN.ppd[.gz]]\n"
+"Usage: cupstestppd [-q] [-r] [-v[v]] filename1.ppd[.gz] [... filenameN.ppd[."
+"gz]]\n"
" program | cupstestppd [-q] [-r] [-v[v]] -\n"
msgstr ""
-"Användning: cupstestppd [-q] [-r] [-v[v]] filnamn1.ppd[.gz] [... filnamnN.ppd[.gz]]\n"
+"Användning: cupstestppd [-q] [-r] [-v[v]] filnamn1.ppd[.gz] [... filnamnN.ppd"
+"[.gz]]\n"
" program | cupstestppd [-q] [-r] [-v[v]] -\n"
msgid "lpstat: Need \"completed\" or \"not-completed\" after -W!\n"
msgstr "systemstandardmål: %s\n"
#, c-format
-msgid "lpstat: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgid ""
+"lpstat: error - %s environment variable names non-existent destination \"%s"
+"\"!\n"
msgstr "lpstat: fel - miljövariabeln %s namnger icke-existerande mål \"%s\"!\n"
msgid "no system default destination\n"
"\n"
" lpadmin [-h server] -d mål\n"
" lpadmin [-h server] -x mål\n"
-" lpadmin [-h server] -p skrivare [-c lägg-till-klass] [-i gränssnitt] [-m modell]\n"
+" lpadmin [-h server] -p skrivare [-c lägg-till-klass] [-i gränssnitt] [-m "
+"modell]\n"
" [-r ta-bort-klass] [-v enhet] [-D beskrivning]\n"
" [-P ppd-fil] [-o namn=värde]\n"
-" [-u allow:användare,användare] [-u deny:användare,användare]\n"
+" [-u allow:användare,användare] [-u deny:användare,"
+"användare]\n"
"\n"
#, c-format
msgid "lp: Unknown option '%c'!\n"
msgstr "lp: Okänd flagga \"%c\"!\n"
-msgid "lp: Error - cannot print from stdin if files or a job ID are provided!\n"
-msgstr "lp: Fel - kan inte skriva ut från standard in om filer eller ett jobb-id anges!\n"
+msgid ""
+"lp: Error - cannot print from stdin if files or a job ID are provided!\n"
+msgstr ""
+"lp: Fel - kan inte skriva ut från standard in om filer eller ett jobb-id "
+"anges!\n"
#, c-format
msgid "lp: Unable to access \"%s\" - %s\n"
#, c-format
msgid "lppasswd: failed to backup old password file: %s\n"
-msgstr "lppasswd: misslyckades med att säkerhetskopiera gamla lösenordsfilen: %s\n"
+msgstr ""
+"lppasswd: misslyckades med att säkerhetskopiera gamla lösenordsfilen: %s\n"
#, c-format
msgid "lppasswd: failed to rename password file: %s\n"
msgid "Add Class"
msgstr "Lägg till klass"
-msgid "The class name may only contain up to 127 printable characters and may not contain spaces, slashes (/), or the pound sign (#)."
-msgstr "Klassnamnet får endast innehålla upp till 127 skrivbara tecken och får inte innehålla blanksteg, snedstreck (/) eller fyrkantstecknet (#)."
+msgid ""
+"The class name may only contain up to 127 printable characters and may not "
+"contain spaces, slashes (/), or the pound sign (#)."
+msgstr ""
+"Klassnamnet får endast innehålla upp till 127 skrivbara tecken och får inte "
+"innehålla blanksteg, snedstreck (/) eller fyrkantstecknet (#)."
msgid "Unable to modify class:"
msgstr "Kunde inte ändra klass:"
msgid "Add Printer"
msgstr "Lägg till skrivare"
-msgid "The printer name may only contain up to 127 printable characters and may not contain spaces, slashes (/), or the pound sign (#)."
-msgstr "Skrivarnamnet får endast innehålla upp till 127 skrivbara tecken och får inte innehålla blanksteg, snedstreck (/) eller fyrkantstecknet (#)."
+msgid ""
+"The printer name may only contain up to 127 printable characters and may not "
+"contain spaces, slashes (/), or the pound sign (#)."
+msgstr ""
+"Skrivarnamnet får endast innehålla upp till 127 skrivbara tecken och får "
+"inte innehålla blanksteg, snedstreck (/) eller fyrkantstecknet (#)."
msgid "Unable to get list of printer drivers:"
msgstr "Kunde inte få tag på listan av skrivardrivrutiner:"
msgstr "cupsaddsmb: Inga Windows-skrivardrivrutiner är installerade!\n"
msgid "cupsaddsmb: Warning, no Windows 2000 printer drivers are installed!\n"
-msgstr "cupsaddsmb: Varning, inga Windows 2000-skrivardrivrutiner är installerade!\n"
+msgstr ""
+"cupsaddsmb: Varning, inga Windows 2000-skrivardrivrutiner är installerade!\n"
#, c-format
msgid "lpadmin: Printer %s is already a member of class %s.\n"
msgstr "Användning: lpmove jobb/källa mål\n"
msgid "lpstat: Need \"completed\", \"not-completed\", or \"all\" after -W!\n"
-msgstr "lpstat: Behöver \"completed\", \"not-completed\" eller \"all\" efter -W!\n"
+msgstr ""
+"lpstat: Behöver \"completed\", \"not-completed\" eller \"all\" efter -W!\n"
#, c-format
msgid "%s accepting requests since %s\n"
msgstr "%s: Fel - förväntade värdnamn efter flaggan \"-h\"!\n"
#, c-format
-msgid "%s: error - %s environment variable names non-existent destination \"%s\"!\n"
+msgid ""
+"%s: error - %s environment variable names non-existent destination \"%s\"!\n"
msgstr "%s: fel - miljövariabeln %s namnger icke-existerande mål \"%s\"!\n"
#, c-format
msgid "%s: error - no default destination available.\n"
msgstr "%s: fel - inget standardmål tillgängligt.\n"
-msgid "Usage: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]\n"
-msgstr "Användning: lpq [-P mål] [-U användarnamn] [-h värdnamn[:port]] [-l] [+intervall]\n"
+msgid ""
+"Usage: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]\n"
+msgstr ""
+"Användning: lpq [-P mål] [-U användarnamn] [-h värdnamn[:port]] [-l] "
+"[+intervall]\n"
#, c-format
msgid "%s: Error - expected hostname after '-H' option!\n"
msgstr "%s: Fel - förväntade värde efter flaggan \"-%c\"!\n"
#, c-format
-msgid "%s: Warning - '%c' format modifier not supported - output may not be correct!\n"
-msgstr "%s: Varning - \"'%c\"- formatmodifieraren stöds inte - utmatning kanske inte blir korrekt!\n"
+msgid ""
+"%s: Warning - '%c' format modifier not supported - output may not be "
+"correct!\n"
+msgstr ""
+"%s: Varning - \"'%c\"- formatmodifieraren stöds inte - utmatning kanske inte "
+"blir korrekt!\n"
#, c-format
msgid "%s: error - expected option=value after '-o' option!\n"
msgstr "%s: Fel - för många filer - \"%s\"\n"
#, c-format
-msgid "%s: Error - %s environment variable names non-existent destination \"%s\"!\n"
+msgid ""
+"%s: Error - %s environment variable names non-existent destination \"%s\"!\n"
msgstr "%s: Fel - miljövariabeln %s namnger icke-existerande mål \"%s\"!\n"
#, c-format
msgstr "%s: Varning - flagga för innehållstyp ignorerades!\n"
#, c-format
-msgid "%s: Error - cannot print from stdin if files or a job ID are provided!\n"
-msgstr "%s: Fel - kan inte skriva ut från standard in om filer eller ett jobb-id anges!\n"
+msgid ""
+"%s: Error - cannot print from stdin if files or a job ID are provided!\n"
+msgstr ""
+"%s: Fel - kan inte skriva ut från standard in om filer eller ett jobb-id "
+"anges!\n"
#, c-format
-msgid "%s: Error - need \"completed\", \"not-completed\", or \"all\" after '-W' option!\n"
-msgstr "%s: Fel - behöver \"completed\", \"not-completed\" eller \"all\" efter flaggan \"-W\"!\n"
+msgid ""
+"%s: Error - need \"completed\", \"not-completed\", or \"all\" after '-W' "
+"option!\n"
+msgstr ""
+"%s: Fel - behöver \"completed\", \"not-completed\" eller \"all\" efter "
+"flaggan \"-W\"!\n"
#, c-format
msgid "%s: Error - expected destination after '-b' option!\n"
msgid " WARN Line %d only contains whitespace!\n"
msgstr " VARN Rad %d innehåller endast blanktecken!\n"
-msgid " WARN File contains a mix of CR, LF, and CR LF line endings!\n"
-msgstr " VARN Filen innehåller en blandning av CR, LF och CR LF-radslut!\n"
+msgid ""
+" WARN File contains a mix of CR, LF, and CR LF line endings!\n"
+msgstr ""
+" VARN Filen innehåller en blandning av CR, LF och CR LF-radslut!\n"
-msgid " WARN Non-Windows PPD files should use lines ending with only LF, not CR LF!\n"
-msgstr " VARN Icke-Windows PPD-filer bör använda radslut med endast LF, inte CR LF!\n"
+msgid ""
+" WARN Non-Windows PPD files should use lines ending with only LF, "
+"not CR LF!\n"
+msgstr ""
+" VARN Icke-Windows PPD-filer bör använda radslut med endast LF, "
+"inte CR LF!\n"
msgid "Printer Maintenance"
msgstr "Skrivarunderhåll"
msgstr " **FEL** Saknar översättningssträng \"%s\" för flaggan %s!\n"
#, c-format
-msgid " **FAIL** Default translation string for option %s contains 8-bit characters!\n"
-msgstr " **FEL** Standardöversättningssträng för flaggan %s innehåller 8-bitars tecken!\n"
+msgid ""
+" **FAIL** Default translation string for option %s contains 8-bit "
+"characters!\n"
+msgstr ""
+" **FEL** Standardöversättningssträng för flaggan %s innehåller 8-"
+"bitars tecken!\n"
#, c-format
-msgid " **FAIL** Missing \"%s\" translation string for option %s, choice %s!\n"
-msgstr " **FEL** Saknar översättningssträng \"%s\" för flaggan %s, val %s!\n"
+msgid ""
+" **FAIL** Missing \"%s\" translation string for option %s, choice %s!\n"
+msgstr ""
+" **FEL** Saknar översättningssträng \"%s\" för flaggan %s, val %s!\n"
#, c-format
-msgid " **FAIL** Default translation string for option %s choice %s contains 8-bit characters!\n"
-msgstr " **FEL** Standardöversättningssträng för flaggan %s val %s innehåller 8-bitars tecken!\n"
+msgid ""
+" **FAIL** Default translation string for option %s choice %s contains "
+"8-bit characters!\n"
+msgstr ""
+" **FEL** Standardöversättningssträng för flaggan %s val %s innehåller "
+"8-bitars tecken!\n"
#, c-format
msgid " **FAIL** Bad cupsFilter value \"%s\"!\n"
#, c-format
msgid "Unable to install Windows 2000 printer driver files (%d)!\n"
-msgstr "Kunde inte installera filer för Windows 2000-skrivardrivrutiner (%d)!\n"
+msgstr ""
+"Kunde inte installera filer för Windows 2000-skrivardrivrutiner (%d)!\n"
#, c-format
msgid "Unable to copy Windows 9x printer driver files (%d)!\n"
msgstr "Jobb #%d är redan färdigt - kan inte avbryta."
#, c-format
-msgid "You must access this page using the URL <A HREF=\"https://%s:%d%s\">https://%s:%d%s</A>."
-msgstr "Du måste komma åt sidan med url:en <A HREF=\"https://%s:%d%s\">https://%s:%d%s</A>."
+msgid ""
+"You must access this page using the URL <A HREF=\"https://%s:%d%s\">https://%"
+"s:%d%s</A>."
+msgstr ""
+"Du måste komma åt sidan med url:en <A HREF=\"https://%s:%d%s\">https://%s:%d%"
+"s</A>."
#, c-format
msgid "Unsupported format '%s'!"
"\n"
" -h Show program usage\n"
"\n"
-" Note: this program only validates the DSC comments, not the PostScript itself.\n"
+" Note: this program only validates the DSC comments, not the PostScript "
+"itself.\n"
msgstr ""
"Användning: cupstestdsc [flaggor] filnamn.ps [... filnamn.ps]\n"
" cupstestdsc [flaggor] -\n"
"\n"
" -h Visa programanvändning\n"
"\n"
-" Notera: detta program validerar endast DSC-kommentarer, inte själva PostScript.\n"
+" Notera: detta program validerar endast DSC-kommentarer, inte själva "
+"PostScript.\n"
+#, c-format
+msgid "Password for %s on %s? "
+msgstr ""
+
+#, 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"
--- /dev/null
+*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 $".
+*%
*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 $".
*%
*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.: ""
*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.: ""
*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.: ""
/*
- * "$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).
*
* 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 */
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);
/*
- * 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 $".
*/
/*
- * "$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.
*
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;
cupsdLogMessage(CUPSD_LOG_DEBUG2,
"pipe_command: command=\"%s\", options=\"%s\"",
- command, options);
+ command, options ? options : "(null)");
argv[0] = command;
query_string = NULL;
/*
- * 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 $".
*/
/*
- * "$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).
*
* 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 */
}
BrowseSLPRefresh = 0;
}
+ else
+ BrowseSLPHandle = NULL;
#endif /* HAVE_LIBSLP */
#ifdef HAVE_OPENLDAP
}
#endif /* HAVE_LIBSLP */
-#ifdef HAVE_OPENDAP
+#ifdef HAVE_OPENLDAP
if (((BrowseLocalProtocols | BrowseRemoteProtocols) & BROWSE_LDAP) &&
BrowseLDAPHandle)
{
/*
- * 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 $".
*/
/*
- * "$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.
*
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);
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;
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);
{
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 */
* 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...
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...
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 */
* 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...
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...
{
send_ipp_status(con, IPP_NOT_ACCEPTING,
_("Destination \"%s\" is not accepting jobs."),
- dest);
+ printer->name);
return (NULL);
}
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."));
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;
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 */
* 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]))
{
_("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...
* 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;
* 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;
{
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 */
* 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...
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)
else
{
send_ipp_status(con, IPP_NOT_POSSIBLE, _("No active jobs on %s!"),
- dest);
+ printer->name);
return;
}
}
* 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))
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;
/*
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");
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...
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;
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 */
* 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...
* Remove old jobs...
*/
- cupsdCancelJobs(dest, NULL, 1);
+ cupsdCancelJobs(printer->name, NULL, 1);
/*
* Remove old subscriptions and send a "deleted printer" event...
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);
* 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();
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 */
* 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, "/") ||
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...
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;
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 */
* 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...
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],
* 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, "/") ||
return;
}
}
- else if (!cupsdValidateDest(host, resource, &dtype, &printer))
+ else if (!cupsdValidateDest(uri->values[0].string.text, &dtype, &printer))
{
/*
* Bad URI...
*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 */
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...
* 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;
* 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"))
* Move all jobs...
*/
- if ((src = cupsdValidateDest(host, resource, &stype, &sprinter)) == NULL)
+ if ((src = cupsdValidateDest(uri->values[0].string.text, &stype,
+ &sprinter)) == NULL)
{
/*
* Bad URI...
{
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 */
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?
*/
* 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\"!"),
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");
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);
* Create the job object...
*/
- if ((job = add_job(con, uri, &printer, filetype)) == NULL)
+ if ((job = add_job(con, printer, filetype)) == NULL)
return;
/*
* 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...
{
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 */
* 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...
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));
}
/*
{
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],
return;
}
+ printer = cupsdFindDest(job->dest);
+
/*
* See if the job is owned by the requesting user...
*/
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
{
/*
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);
return;
}
- printer = cupsdFindDest(job->dest);
-
if (printer->filetypes && !cupsArrayFind(printer->filetypes, filetype))
{
snprintf(mimetype, sizeof(mimetype), "%s/%s", filetype->super,
{
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 */
* 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...
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...
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;
/*
{
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 */
* 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...
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();
{
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 */
* 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...
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));
}
/*
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];
* 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...
/*
- * 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 $".
*/
/*
- * "$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).
*
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 */
if (job->attrs)
{
- if (job->state_value >= IPP_JOB_STOPPED)
+ if (job->state_value > IPP_JOB_STOPPED)
job->access_time = time(NULL);
return;
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,
{
cupsArrayAdd(Jobs, job);
- if (job->state_value < IPP_JOB_STOPPED)
+ if (job->state_value <= IPP_JOB_STOPPED)
{
cupsArrayAdd(ActiveJobs, job);
cupsdLoadJob(job);
cupsArrayAdd(Jobs, job);
- if (job->state_value < IPP_JOB_STOPPED)
+ if (job->state_value <= IPP_JOB_STOPPED)
cupsArrayAdd(ActiveJobs,job);
else
unload_job(job);
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);
}
/*
/*
- * 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 $".
*/
/*
- * "$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).
*
/* 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);
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));
/*
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...
* Class...
*/
- resource += 9;
+ rptr = resource + 9;
}
else if (!strncmp(resource, "/printers/", 10))
{
* Printer...
*/
- resource += 10;
+ rptr = resource + 10;
}
else
{
* 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);
}
*/
if (!strcasecmp(hostname, "localhost"))
- hostname = ServerName;
+ strlcpy(hostname, ServerName, sizeof(hostname));
strlcpy(localname, hostname, sizeof(localname));
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);
}
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");
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)
* 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))
{
{
char filename[1024]; /* Interface script filename */
cups_file_t *fp; /* Interface script file */
-
+ ipp_attribute_t *attr; /* Attribute data */
/*
/*
- * 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 $".
*/
/*
- * "$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.
*
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);
/*
- * 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 $".
*/
/*
- * "$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).
*
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]);
filter->dst->super, filter->dst->type,
filter->filter, filter->cost);
- type_dir(mime, "..");
+ type_dir(mime, "../doc");
+ type_dir(mime, "../man");
}
return (0);
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))
/*
- * 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 $".
*/
/*
- * "$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).
*
}
}
- if (ppdFindAttr(ppd, "1284DeviceId", NULL))
+ if ((attr = ppdFindAttr(ppd, "1284DeviceID", NULL)) &&
+ strcmp(attr->name, "1284DeviceID"))
{
if (verbose >= 0)
{
/*
- * 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 $".
*/
/*
- * "$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).
*
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;
/*
- * 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 $".
*/
/*
- * "$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).
*
}
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);
}
/*
- * 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 $".
*/
<TD>{job_k_octets}k </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}}}}}}} </TD>
<TD>
{job_preserved>0?
<TD>{job_k_octets}k </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?に中断:に完了}}}}}} </TD>
<TD>
{job_preserved>0?
<TD>{job_k_octets}k </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}}}}}}} </TD>
<TD>
{job_preserved>0?
<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>
<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}}
</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>
<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>
-<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&{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&{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> </TD><TD VALIGN="TOP">
<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>
<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>}
<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:}}>
</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>
<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> </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>
<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>
<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>
<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>
-<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.
-<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>
-<P>Grupa {printer_name} została pomyślnie usunięta.
+<P>Klasa {printer_name} została pomyślnie usunięta.
-<H3 CLASS="title">Wydruki</H3>
+<H3 CLASS="title">Zadania</H3>
-<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.
-<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>
{#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}">
<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&printer_name={%printer_name}&is_class=Y">
-<IMG SRC="/images/button-start-class.gif" ALT="Start Grupy" CLASS="button"></A>
+<A HREF="{admin_uri}?op=start-class&printer_name={printer_name}&is_class=Y">
+<IMG SRC="/images/button-start-class.gif" ALT="Uruchom klasę" CLASS="button"></A>
:
-<A HREF="{admin_uri}?op=stop-class&printer_name={%printer_name}&is_class=Y">
-<IMG SRC="/images/button-stop-class.gif" ALT="Zatrzymaj Grupę" CLASS="button"></A>
+<A HREF="{admin_uri}?op=stop-class&printer_name={printer_name}&is_class=Y">
+<IMG SRC="/images/button-stop-class.gif" ALT="Zatrzymaj klasę" CLASS="button"></A>
}
{printer_is_accepting_jobs=0?
-<A HREF="{admin_uri}?op=accept-jobs&printer_name={%printer_name}&is_class=Y">
-<IMG SRC="/images/button-accept-jobs.gif" ALT="Akceptuj Wydruki" CLASS="button"></A>
+<A HREF="{admin_uri}?op=accept-jobs&printer_name={printer_name}&is_class=Y">
+<IMG SRC="/images/button-accept-jobs.gif" ALT="Zaakceptuj zadania" CLASS="button"></A>
:
-<A HREF="{admin_uri}?op=reject-jobs&printer_name={%printer_name}&is_class=Y">
-<IMG SRC="/images/button-reject-jobs.gif" ALT="Odrzucaj Wydruki" CLASS="button"></A>
+<A HREF="{admin_uri}?op=reject-jobs&printer_name={printer_name}&is_class=Y">
+<IMG SRC="/images/button-reject-jobs.gif" ALT="Odrzuć zadania" CLASS="button"></A>
}
-<A HREF="{admin_uri}?op=purge-jobs&printer_name={%printer_name}&is_class=Y">
-<IMG SRC="/images/button-cancel-all-jobs.gif" ALT="Skasuj Wszystkie Wydruki" CLASS="button"></A>
+<A HREF="{admin_uri}?op=purge-jobs&printer_name={printer_name}&is_class=Y">
+<IMG SRC="/images/button-cancel-all-jobs.gif" ALT="Anuluj wszystkie zadania" CLASS="button"></A>
{printer_is_shared=0?
-<A HREF="{admin_uri}?op=set-sharing&printer_name={%printer_name}&shared=1&is_class=Y">
-<IMG SRC="/images/button-publish-printer.gif" ALT="Publikuj Drukarkę" CLASS="button"></A>
+<A HREF="{admin_uri}?op=set-sharing&printer_name={printer_name}&shared=1&is_class=Y">
+<IMG SRC="/images/button-publish-printer.gif" ALT="Opublikuj drukarkę" CLASS="button"></A>
:
-<A HREF="{admin_uri}?op=set-sharing&printer_name={%printer_name}&shared=0&is_class=Y">
-<IMG SRC="/images/button-unpublish-printer.gif" ALT="Nie Publikuj Drukarki" CLASS="button"></A>
+<A HREF="{admin_uri}?op=set-sharing&printer_name={printer_name}&shared=0&is_class=Y">
+<IMG SRC="/images/button-unpublish-printer.gif" ALT="Nie publikuj drukarki" CLASS="button"></A>
}
-<A HREF="{admin_uri}?op=modify-class&printer_name={%printer_name}">
-<IMG SRC="/images/button-modify-class.gif" ALT="Modyfikuj Grupę" CLASS="button"></A>
-<A HREF="{admin_uri}?op=delete-class&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&printer_name={%printer_name}&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&printer_name={%printer_name}&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&printer_name={printer_name}">
+<IMG SRC="/images/button-modify-class.gif" ALT="Zmodyfikuj klasę" CLASS="button"></A>
+<A HREF="{admin_uri}?op=delete-class&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&printer_name={printer_name}&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&printer_name={printer_name}&is_class=Y">
+<IMG SRC="/images/button-set-allowed-users.gif" ALT="Pozwól zezwolonym użytkownikom" CLASS="button"></A>
</P>
</TD>
</TR>
<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>
<!-- 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>}
-<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.
-<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.
<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}}
</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>
-<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>
-<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.
-<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.
<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>
{#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 </TH>
-<TH>Name </TH>
-<TH>User </TH>
-<TH>Size </TH>
-<TH>Pages </TH>
-<TH>State </TH>
-<TH>Control </TH>
+<TH>Nazwa </TH>
+<TH>Użytkownik </TH>
+<TH>Rozmiar </TH>
+<TH>Strony </TH>
+<TH>Stan </TH>
+<TH>Kontrola </TH>
</TR>
{[job_id]
<TR CLASS="data" VALIGN="TOP">
<TD><A HREF="{job_printer_uri}">{job_printer_name}</A>-{job_id} </TD>
-<TD>{?job_name=?Nieznana:{job_name}} </TD>
+<TD>{?job_name=?Nieznane:{job_name}} </TD>
<TD>{job_originating_user_name} </TD>
<TD>{job_k_octets}k </TD>
-<TD>{job_media_sheets_completed=0?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}}}}}}} </TD>
+<TD>{job_media_sheets_completed=0?Nieznane:{?job_media_sheets_completed}}</TD>
+<TD>{job_state=3?oczekiwanie od<BR>{time_at_creation}:{job_state=4?wstrzymane od<BR>{time_at_creation}:
+{job_state=5?przetwarzanie od<BR>{time_at_processing}:{job_state=6?zatrzymane:
+{job_state=7?anulowane o<BR>{time_at_completed}:{job_state=8?przerwane:zakończone o<BR>{time_at_completed}}}}}}} </TD>
<TD>
{job_preserved>0?
<A HREF="/jobs/?op=restart-job&job_id={job_id}&job_printer_uri={job_printer_uri}">
-<IMG SRC="/images/button-restart-job.gif" ALT="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&job_id={job_id}&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&job_id={job_id}&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&job_id={job_id}&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&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>:}
</TD>
</TR>
}
-<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>
<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>
<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}}
</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>
{?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>
-<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>
<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>
-<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>: }</TD>
- <TD WIDTH="34%" ALIGN="CENTER">{ORDER=dec?<A HREF="{THISURL}&ORDER=asc"><IMG SRC="/images/button-sort-ascending.gif" ALT="Sortuj Rosnąco" CLASS="button"></A>:<A HREF="{THISURL}&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>: }</TD>
+ <TD WIDTH="33%">{PREVURL?<A HREF="{PREVURL}"><IMG SRC="/images/button-show-previous.gif" ALT="Wyświetl poprzednie" CLASS="button"></A>: }</TD>
+ <TD WIDTH="34%" ALIGN="CENTER">{ORDER=dec?<A HREF="{THISURL}&ORDER=asc"><IMG SRC="/images/button-sort-ascending.gif" ALT="Posortuj rosnąco" CLASS="button"></A>:<A HREF="{THISURL}&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>: }</TD>
</TR>
</TABLE>
-<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>
-<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>
-<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>
-<H3 CLASS="title">Wydruki</H3>
+<H3 CLASS="title">Zadania</H3>
-<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.
-<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>
-<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>
-<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>
-<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>
-<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>
{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&printer_name={%printer_name}">
-<IMG SRC="/images/button-start-printer.gif" ALT="Start Drukarki" CLASS="button"></A>
+<A HREF="{admin_uri}?op=start-printer&printer_name={printer_name}">
+<IMG SRC="/images/button-start-printer.gif" ALT="Uruchom drukarkę" CLASS="button"></A>
:
-<A HREF="{admin_uri}?op=stop-printer&printer_name={%printer_name}">
-<IMG SRC="/images/button-stop-printer.gif" ALT="Zatrzymaj Drukarkę" CLASS="button"></A>
+<A HREF="{admin_uri}?op=stop-printer&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&printer_name={%printer_name}">
-<IMG SRC="/images/button-accept-jobs.gif" ALT="Akceptuj Wydruki" CLASS="button"></A>
+<A HREF="{admin_uri}?op=accept-jobs&printer_name={printer_name}">
+<IMG SRC="/images/button-accept-jobs.gif" ALT="Zaakceptuj zadania" CLASS="button"></A>
:
-<A HREF="{admin_uri}?op=reject-jobs&printer_name={%printer_name}">
-<IMG SRC="/images/button-reject-jobs.gif" ALT="Odrzucaj Wydruki" CLASS="button"></A>
+<A HREF="{admin_uri}?op=reject-jobs&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&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&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&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&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&printer_name={%printer_name}&shared=1">
-<IMG SRC="/images/button-publish-printer.gif" ALT="Publikuj Drukarkę" CLASS="button"></A>
+<A HREF="{admin_uri}?op=set-sharing&printer_name={printer_name}&shared=1">
+<IMG SRC="/images/button-publish-printer.gif" ALT="Opublikuj drukarke" CLASS="button"></A>
:
-<A HREF="{admin_uri}?op=set-sharing&printer_name={%printer_name}&shared=0">
-<IMG SRC="/images/button-unpublish-printer.gif" ALT="Nie Publikuj Drukarki" CLASS="button"></A>
+<A HREF="{admin_uri}?op=set-sharing&printer_name={printer_name}&shared=0">
+<IMG SRC="/images/button-unpublish-printer.gif" ALT="Odpublikuj drukarkę" CLASS="button"></A>
}
-<A HREF="{admin_uri}?op=modify-printer&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&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&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&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&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&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&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&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&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&printer_name={printer_name}">
+<IMG SRC="/images/button-set-allowed-users.gif" ALT="Ustaw zezwolonych użytkowników" CLASS="button"></A>
</P>
</TD>
</TR>
-<p>Proszę czekać - ponowne uruchomienie serwera wydruków...</p>
+<p>Proszę chwilę poczekać podczas ponownego uruchamiania serwera...</p>
<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 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>
-<P>Eksport do Samby zakończył się powodzeniem.</P>
+<P>Drukarki zostały pomyślnie wyeksportowane do Samby.</P>
{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?&ORDER={ORDER}:}:{ORDER??ORDER={ORDER}:}}"><IMG
SRC="/images/button-clear.gif" ALT="Wyczyść" CLASS="button"></A></P>
-<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>
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>
<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>
<TD>{job_k_octets}k </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}}}}}}} </TD>
<TD>
{job_preserved>0?
#!/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.
#
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
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 $".
#
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
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