Comparar commits

..

1 Commits

Autor SHA1 Mensagem Data
msweet a95630d541 Import cups.org releases
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/tags/release-1.5.2@4306 a1ca3aef-8c08-0410-bb20-df032aa958be
2013-05-10 18:56:23 +00:00
1006 arquivos alterados com 244261 adições e 17431 exclusões
-228
Ver Arquivo
@@ -1,228 +0,0 @@
CHANGES-1.5.txt
---------------
CHANGES IN CUPS V1.5.1
- Documentation updates (STR #3885, STR #3886, STR #3946, STR #3969)
- Localization updates (STR #3840, STR #3989, STR #3997)
- Build fixes (STR #3956, STR #3999)
- The SNMP backend did not validate the device URIs reported by printers
(STR #4004)
- cupsBackendReport() did not handle newlines in 1284 Device IDs
(STR #4005)
- USB backend fixes for libusb (STR #3965, STR #3978)
- The DBUS notifier did not validate string parameters (STR #3984)
- Group quota ACLs did not work with Kerberos (STR #3972)
- The IPP backend did not retry when a printer responded with
client-error-not-possible (STR #3963)
- PostScript PPDs with filters used the wrong command filter (STR #3973)
- The scheduler incorrectly used free() on a POSIX ACL value, which
could cause a crash (STR #3970)
- PPD files using the MacStandard encoding did not work.
- The web interface did not work on some platforms (STR #3902)
- The lpstat command would crash when then "-u" option was used by a
non-administrator (STR #3953)
- Japanese supply level reporting did not always work.
- The DBUS notifier could crash (STR #3947)
- Relaxed some of the page size checks in cupstestppd.
- The ipptool program now reports attributes that are repeated within
the same attribute group.
- Updated the PWG raster support to match the current draft
specification.
- Fixed some IPP conformance issues in the scheduler.
- Added ipptool support for repeating requests.
- Added IPP/2.2 conformance tests and greatly improved the IPP/1.1,
IPP/2.0, and IPP/2.1 conformance testing.
- IPP messages containing mixed integer/rangeOfInteger values did not
work (STR #3942)
- The ipptool program now provides additional diagnostics for badly-
formatted responses (STR #3857)
- When possible, the IPP backend now stops sending job data early on a
cancel.
- cupsSendRequest and cupsWriteRequestData did not properly read all
HTTP headers, preventing authentication and encryption upgrades from
working in all cases.
- The client.conf Server directive is no longer supported on Mac OS X
10.7 and later.
- The IPP backend sent the wrong margins in media-col.
- The scheduler did not save or restore large Kerberos credentials for
jobs.
- The dnssd backend did not properly browse for secure IPP printers.
- httpAssembleURI* did not properly escape all special characters in the
username/password field.
- The scheduler now logs config file errors to stderr (STR #3936)
- The configure script incorrectly used bundle-based localizations on
Linux (STR #3938)
- The cups-driverd helper program did not cache .drv files properly,
sometimes leading to a crash (STR #3921)
- CUPS did not build on stock Mac OS X installations.
- Encryption was broken with OpenSSL.
- ipptool's XML output used date/time values with timezone offsets,
which are not supported by Mac OS X's NSDate class.
- Several programs did not support the cupsFilter2 keyword in PPD files.
- The IPP backend incorrectly reported spool-area-full states.
- cupsMarkOptions() did not protect against a bad PPD that was missing
one or more standard Duplex options.
- The PostScript filter did not mirror N-up output properly.
- The ipptool program did not validate UTF-8 strings in XML output.
- Fixed supply level reporting for some printers.
- The scheduler no longer automatically logs debug messages for jobs
that were held or canceled.
- The cupsSendRequest function did not flush remaining response data
from a previous request, leading to apparent chunking issues.
- The scheduler did not report the correct version in the Server: header
(STR #3903)
- The scheduler did not support 1284 device IDs reported by driver
interface programs longer than 127 characters (STR #3871)
- The image filters did not support loading images larger than the
RIPCache setting (STR #3901)
- "PAGE: total NNN" messages did not get logged properly (STR #3887)
- Updated the PWG Raster support to conform to the current draft of the
PWG Raster Format specification.
- The PWG Raster filter did not always write the correct number of
padding lines on the bottom of the page (STR #3904)
- When reporting a denial-of-service attack from the domain socket, the
address reported does not always contain the correct path (STR #3888)
- Badly formed GIF files could cause the image filters to crash
(STR #3914)
- Jobs canceled at the printer were retried by the IPP backend.
- "cupsfilter -u" deleted the input file instead of the PPD file.
- The scheduler did not compute the cost of PPD filters defined using
the cupsFilter2 keyword properly.
- The scheduler did not correctly support the maxsize() attribute for
PPD filters.
CHANGES IN CUPS V1.5.0
- Documentation updates.
- Localization update (STR #3865)
- Needed to limit TLS to v1.0 on some versions of Mac OS X.
- The snmp backend did not work with some printers.
CHANGES IN CUPS V1.5rc1
- Compile fixes (STR #3849, STR #3850)
- The scheduler didn't check for empty values for several configuration
directives (STR #3861)
- ipptool didn't generate valid XML when a test was skipped.
- Added additional error checking to the 1284 device ID code (STR #3858)
- Fixed some compatibility issues migrating from the old usblp backend
to the libusb backend (STR #3860)
- Fixed the wake-from-sleep printing behavior on Mac OS X.
- The scheduler incorrectly allowed jobs to be held from a terminating
state.
- The cups-driverd program could crash when a PPD was renamed.
- The dnssd backend took too long to discover printers on large or busy
networks with the new default timeout used by lpinfo and the web
interface. This resulted in "lost" printers.
CHANGES IN CUPS V1.5b2
- Documentation updates.
- Localization updates (STR #3845)
- Compiler warning cleanup.
- Fixed PIE support for Linux (STR #3846)
- Made httpSetTimeout API public and use it in the IPP backend to avoid
timeout errors.
- The scheduler incorrectly set the "authenticated" printer-type bit for
remote queues using authentication.
CHANGES IN CUPS V1.5b1
- The CUPS library now supports per-connection HTTP timeouts and
callbacks.
- The CUPS library now supports (limited) SSL/TLS X.509 certificate
validation and revocation (STR #1616)
- Updated the PostScript filter to support IncludeFeature in more
circumstances (STR #3417)
- The schedule did not correctly parse some IPv6 addresses and masks in
the cupsd.conf file (STR #3533)
- Fixed a case-insensitive string comparison issue for locales that do
not treat "I" and "i" as equivalent (STR #3800)
- The scheduler reported an incorrect job-printer-uri value when sharing
was not enabled (STR #3639)
- The scheduler now allows the ServerAlias directive to contain multiple
hostnames separated by spaces or commas (STR #3813)
- The scheduler now sets the process group for child processes and
manages the group (STR #2829)
- Fixed some minor issues discovered by a Coverity scan (STR #3838)
- The scheduler now more carefully creates and removes configuration,
cache, and state files (STR #3715)
- The lpadmin command now allows default option values to be deleted
(STR #2959)
- The lpadmin command now allows the cupsIPPSupplies and
cupsSNMPSupplies keywords to be set in a PPD file (STR #3825)
- Moving a held job no longer releases it (STR #3839)
- Restored support for GNU TLS and OpenSSL with threading enabled
(STR #3605)
- Fixed a confusing error message from cups-polld (STR #3806)
- Increased the default RIPCache value to 128MB (STR #3535)
- MIME errors are now routed to the error_log file (STR #2410)
- Updated PDF filter to support new Ghostscript ps2write device
(STR #3766)
- Updated PDF filter to support new Poppler option to preserve page
sizes in PDF files when the user has not selected a particular media
size (STR #3689)
- Added new PWG Raster filter for IPP Everywhere printer support.
- Added job-uuid, printer-uuid, and subscription-uuid attributes.
- Added support for the cupsSingleFile PPD keyword.
- Dropped support for the printer-state-history attribute (STR #3654)
- Added support for a new cupsIPPSupplies keyword in PPD files to allow
drivers to disable IPP supply level reporting.
- Added support for a new cupsFilter2 keyword in PPD files to allow for
the propagation of the actual MIME media type produced by a filter.
- The scheduler did not always get the correct Kerberos username when
authenticating (STR #3670)
- Added new cupsRasterOpenIO function and CUPS_RASTER_WRITE_PWG to the
CUPS imaging library to support printing to IPP Everywhere raster
printers.
- The scheduler now provides default values for the pages-per-minute and
pages-per-minute-color attributes for PPD files that lack a
Throughput keyword.
- Email notifications did not work on Mac OS X.
- The cupstestppd program now shows an error for files missing a
CloseGroup keyword (STR #3668)
- Name resolution errors no longer cause queues to stop (STR #3719,
STR #3753)
- Added a new cups-exec helper program that applies security profiles
to filters, port monitors, backends, CGI programs, and mini-daemons.
- The web interface can now be disabled using the WebInterface directive
in cupsd.conf (STR #2625)
- The scheduler now provides privacy controls for jobs and subscriptions
(STR #2969)
- Added new cupsArrayNew3 API which offers memory management of array
elements.
- Added several new color spaces to the CUPS raster format (STR #3419)
- The Validate-Job operation now uses the same policy as Print-Job by
default.
- CUPS now uses iconv to implement all of its character encoding
support (STR #3097)
- The scheduler now implements the Cancel-Jobs, Cancel-My-Jobs, and
Close-Job operations along with the job-ids operation attribute from
PWG 5100.11.
- The main CUPS header (<cups/cups.h>) no longer includes the PPD header
(<cups/ppd.h>).
- The scheduler and CUPS API now support the print-quality job template
attribute.
- The scheduler no longer supports the old Mac OS X Server quota
plugin.
- The scheduler now allows writing to /Users/Shared from print filters
on Mac OS X.
- CUPS no longer supports the old ~/.cupsrc or ~/.lpoptions files from
CUPS 1.1.x. The ~/.cups/client.conf and ~/.cups/lpoptions files that
were introduced in CUPS 1.2 must now be used.
- The ipptest tool is now a first-class user program and has several
improvements along with new documentation (STR #3484)
- The cupstestppd tool now warns about non-unique filenames and
provides a way to ignore all filename warnings.
- Dropped support for the recoverable: and recovered: message prefixes.
- The scheduler now requires that filters and backends have group write
permissions disabled.
- The PPD compiler now checks for overlapping filenames when writing
PPD files.
- The HP-GL/2 filter is no longer included with CUPS (STR #3322)
- The SCSI backend is no longer included with CUPS (STR #3500)
-107
Ver Arquivo
@@ -1,107 +0,0 @@
CHANGES-IPPTOOL.txt - 2012-01-10
--------------------------------
This file provides a list of changes to the ipptool binary distribution posted
on cups.org.
2012-01-10
- Fixed an issue with the IPP/1.1 test file where the "waiting for job
completion" test did not work.
- The attribute groups out of order error was not shown for the
operation-attributes-tag group.
2011-12-02
- Fixed a truncated XML output bug that would happen for certain errors.
- Fixed the order-of-groups tests.
- Fixed "WITH-VALUE >N" for rangeOfInteger attributes.
- The Windows installer was missing the get-printer-attributes.test
file.
- The Linux binaries are now compiled for all LSB 4.x-compliant Linux
distributions.
- The Linux binaries no longer support SSL or TLS.
2011-10-05
- Fixed a crasher bug that showed up on Windows.
- The IPP/1.1 test would hang if the initial Print-Job test failed.
- Fixed a typo in the IPP/2.0 test.
2011-10-03
- Using OF-TYPE with the "no-value" or "unknown" out-of-band value tags
now works without special WITH-VALUE strings.
- ipptool now shows an error when an attribute appears more than once
within the same attribute group.
- ipptool did not display attributes as specified by the DISPLAY
directive when a test error failed.
- Fixed one spot where DEFINE-VALUE was still treated as an error when
the EXPECT test failed.
- uriScheme values were not displayed properly.
- Updated the IPP/1.1 tests to properly validate support for
job-hold-until-default and job-hold-until-supported when the Hold-Job
operation is supported.
- Updated the IPP/1.1 tests to properly check for the various standard
media sizes for the printing tests.
- Updated the IPP/1.1 tests to accept "no-value" for media-default an
orientation-requested-default.
- Updated the IPP/1.1 tests to accept "unknown" for job-state.
- Updated the IPP/1.1 tests to not perform the bogus URI printing tests
unless the "document-uri" variable is defined.
- Updated the IPP/2.0 tests to properly validate media-col
"media-xxx-supported" attributes.
- Updated the IPP/2.2 tests to properly validate media-ready and
media-col-ready.
2011-09-28
- Test output now includes a summary and overall score at the end.
- The MATCH-VALUE predicate now correctly deals with a failed EXPECT
condition.
- The IPP/1.1 test suite now looks for legacy media names and uses them
if the corresponding PWG standard names are not present.
- The IPP/1.1 test suite now tests the Print-Job+Release-Job when the
printer supports the job-hold-until attribute, Hold-Job operation, and
Release-Job operation.
2011-09-21
- Fixes for HTTP chunking, timeout, and encryption issues reported by
various users.
- Greatly improved IPP tests with added IPP/2.2 tests.
- New test documents - 1-page and 4-page mixed A4/Letter PDF/PS and a
couple JPEGs.
- New REPEAT directives to programmatically repeat tests as needed.
2011-08-16
- The Windows version no longer requires Visual Studio to be installed.
- The Windows version now supports SSL.
- Added "ipps" URI support.
- Added a new "-T" option.
- Added support for fractional seconds for the -i option and DELAY
directive.
- Added support for authentication.
- Added DEFINE-MATCH, DEFINE-NO-MATCH, DEFINE-VALUE, IF-NOT-DEFINED,
IGNORE-ERRORS, SKIP-IF-DEFINED, SKIP-IF-NOT-DEFINED,
SKIP-PREVIOUS-ERROR directives.
- WITH-VALUE now supports variable expansion.
- Updated the IPP/1.1 conformance test to skip the "my-jobs different
user" test if the printer URI contains a username.
- Updated the IPP conformance tests to validate media, media-default,
and media-supported values.
- No longer error out if a Printer returns a different version number in
the response when the request contains the version 0.0.
2010-10-16
- Initial release of standalone binary.
+231 -38
Ver Arquivo
@@ -1,40 +1,233 @@
CHANGES.txt - 1.6b1 - 2012-01-30
--------------------------------
CHANGES.txt - 2012-02-05
------------------------
CHANGES IN CUPS V1.6b1
CHANGES IN CUPS V1.5.2
- The configure script and build system no longer support building of
separate 32-bit and 64-bit libraries.
- The "brightness", "columns", "fitplot", "gamma", "hue",
"natural-scaling", "penwidth", "position", "ppi", "saturation", and
"scaling" options are not longer supported (STR #4010)
- The "page-bottom", "page-left", "page-right", "page-top",
"prettyprint", and "wrap" options have been deprecated (STR #4010)
- The scheduler now reports the standard "number-of-documents" attribute
instead of the CUPS-specific "document-count" attribute in
job objects.
- Added new destination connection and enumeration functions (STR #3924)
- Added new option, localization, and job submission functions that do
not depend on PPD files (STR #3925)
- Added a new MaxJobTime directive for cupsd that specifies the maximum
amount of time allowed for a job to complete before it is canceled.
- The default password callback now supports passwords up to 127
characters.
- The scheduler now supports a DefaultAuthType of "auto" to
automatically choose between Basic (username/password) and Negotiate
(Kerberos) authentication.
- cupsSideChannelSNMPGet/Walk now support OIDs and values up to 64k in
length.
- CUPS no longer supports automatic remote printers or implicit classes
via the CUPS, LDAP, or SLP protocols (STR #3922, STR #3923)
- The PPD APIs are now deprecated and will be removed in a future
version of CUPS (STR #3927)
- The default IPP version for requests is now 2.0 (STR #3929)
- The IPP APIs no longer expose the ipp_t or ipp_attribute_t structures
and instead provide accessor functions (STR #3928)
- The scheduler will no longer run programs with group write permission.
- The PHP module has been removed (STR #3932)
- The bannertops, commandtoescpx, commandtopclx, imagetops,
imagetoraster, pdftops, rastertoescpx, rastertopclx, and texttops
filters have been removed (STR #3930)
- The serial and parallel backends have been removed (STR 3935)
- Reposted what should have been CUPS 1.5.1.
CHANGES IN CUPS V1.5.1
- Documentation updates (STR #3885, STR #3886, STR #3946, STR #3969)
- Localization updates (STR #3840, STR #3989, STR #3997)
- Build fixes (STR #3956, STR #3999)
- The SNMP backend did not validate the device URIs reported by printers
(STR #4004)
- cupsBackendReport() did not handle newlines in 1284 Device IDs
(STR #4005)
- USB backend fixes for libusb (STR #3965, STR #3978)
- The DBUS notifier did not validate string parameters (STR #3984)
- Group quota ACLs did not work with Kerberos (STR #3972)
- The IPP backend did not retry when a printer responded with
client-error-not-possible (STR #3963)
- PostScript PPDs with filters used the wrong command filter (STR #3973)
- The scheduler incorrectly used free() on a POSIX ACL value, which
could cause a crash (STR #3970)
- PPD files using the MacStandard encoding did not work.
- The web interface did not work on some platforms (STR #3902)
- The lpstat command would crash when then "-u" option was used by a
non-administrator (STR #3953)
- Japanese supply level reporting did not always work.
- The DBUS notifier could crash (STR #3947)
- Relaxed some of the page size checks in cupstestppd.
- The ipptool program now reports attributes that are repeated within
the same attribute group.
- Updated the PWG raster support to match the current draft
specification.
- Fixed some IPP conformance issues in the scheduler.
- Added ipptool support for repeating requests.
- Added IPP/2.2 conformance tests and greatly improved the IPP/1.1,
IPP/2.0, and IPP/2.1 conformance testing.
- IPP messages containing mixed integer/rangeOfInteger values did not
work (STR #3942)
- The ipptool program now provides additional diagnostics for badly-
formatted responses (STR #3857)
- When possible, the IPP backend now stops sending job data early on a
cancel.
- cupsSendRequest and cupsWriteRequestData did not properly read all
HTTP headers, preventing authentication and encryption upgrades from
working in all cases.
- The client.conf Server directive is no longer supported on Mac OS X
10.7 and later.
- The IPP backend sent the wrong margins in media-col.
- The scheduler did not save or restore large Kerberos credentials for
jobs.
- The dnssd backend did not properly browse for secure IPP printers.
- httpAssembleURI* did not properly escape all special characters in the
username/password field.
- The scheduler now logs config file errors to stderr (STR #3936)
- The configure script incorrectly used bundle-based localizations on
Linux (STR #3938)
- The cups-driverd helper program did not cache .drv files properly,
sometimes leading to a crash (STR #3921)
- CUPS did not build on stock Mac OS X installations.
- Encryption was broken with OpenSSL.
- ipptool's XML output used date/time values with timezone offsets,
which are not supported by Mac OS X's NSDate class.
- Several programs did not support the cupsFilter2 keyword in PPD files.
- The IPP backend incorrectly reported spool-area-full states.
- cupsMarkOptions() did not protect against a bad PPD that was missing
one or more standard Duplex options.
- The PostScript filter did not mirror N-up output properly.
- The ipptool program did not validate UTF-8 strings in XML output.
- Fixed supply level reporting for some printers.
- The scheduler no longer automatically logs debug messages for jobs
that were held or canceled.
- The cupsSendRequest function did not flush remaining response data
from a previous request, leading to apparent chunking issues.
- The scheduler did not report the correct version in the Server: header
(STR #3903)
- The scheduler did not support 1284 device IDs reported by driver
interface programs longer than 127 characters (STR #3871)
- The image filters did not support loading images larger than the
RIPCache setting (STR #3901)
- "PAGE: total NNN" messages did not get logged properly (STR #3887)
- Updated the PWG Raster support to conform to the current draft of the
PWG Raster Format specification.
- The PWG Raster filter did not always write the correct number of
padding lines on the bottom of the page (STR #3904)
- When reporting a denial-of-service attack from the domain socket, the
address reported does not always contain the correct path (STR #3888)
- Badly formed GIF files could cause the image filters to crash
(STR #3914)
- Jobs canceled at the printer were retried by the IPP backend.
- "cupsfilter -u" deleted the input file instead of the PPD file.
- The scheduler did not compute the cost of PPD filters defined using
the cupsFilter2 keyword properly.
- The scheduler did not correctly support the maxsize() attribute for
PPD filters.
CHANGES IN CUPS V1.5.0
- Documentation updates.
- Localization update (STR #3865)
- Needed to limit TLS to v1.0 on some versions of Mac OS X.
- The snmp backend did not work with some printers.
CHANGES IN CUPS V1.5rc1
- Compile fixes (STR #3849, STR #3850)
- The scheduler didn't check for empty values for several configuration
directives (STR #3861)
- ipptool didn't generate valid XML when a test was skipped.
- Added additional error checking to the 1284 device ID code (STR #3858)
- Fixed some compatibility issues migrating from the old usblp backend
to the libusb backend (STR #3860)
- Fixed the wake-from-sleep printing behavior on Mac OS X.
- The scheduler incorrectly allowed jobs to be held from a terminating
state.
- The cups-driverd program could crash when a PPD was renamed.
- The dnssd backend took too long to discover printers on large or busy
networks with the new default timeout used by lpinfo and the web
interface. This resulted in "lost" printers.
CHANGES IN CUPS V1.5b2
- Documentation updates.
- Localization updates (STR #3845)
- Compiler warning cleanup.
- Fixed PIE support for Linux (STR #3846)
- Made httpSetTimeout API public and use it in the IPP backend to avoid
timeout errors.
- The scheduler incorrectly set the "authenticated" printer-type bit for
remote queues using authentication.
CHANGES IN CUPS V1.5b1
- The CUPS library now supports per-connection HTTP timeouts and
callbacks.
- The CUPS library now supports (limited) SSL/TLS X.509 certificate
validation and revocation (STR #1616)
- Updated the PostScript filter to support IncludeFeature in more
circumstances (STR #3417)
- The schedule did not correctly parse some IPv6 addresses and masks in
the cupsd.conf file (STR #3533)
- Fixed a case-insensitive string comparison issue for locales that do
not treat "I" and "i" as equivalent (STR #3800)
- The scheduler reported an incorrect job-printer-uri value when sharing
was not enabled (STR #3639)
- The scheduler now allows the ServerAlias directive to contain multiple
hostnames separated by spaces or commas (STR #3813)
- The scheduler now sets the process group for child processes and
manages the group (STR #2829)
- Fixed some minor issues discovered by a Coverity scan (STR #3838)
- The scheduler now more carefully creates and removes configuration,
cache, and state files (STR #3715)
- The lpadmin command now allows default option values to be deleted
(STR #2959)
- The lpadmin command now allows the cupsIPPSupplies and
cupsSNMPSupplies keywords to be set in a PPD file (STR #3825)
- Moving a held job no longer releases it (STR #3839)
- Restored support for GNU TLS and OpenSSL with threading enabled
(STR #3605)
- Fixed a confusing error message from cups-polld (STR #3806)
- Increased the default RIPCache value to 128MB (STR #3535)
- MIME errors are now routed to the error_log file (STR #2410)
- Updated PDF filter to support new Ghostscript ps2write device
(STR #3766)
- Updated PDF filter to support new Poppler option to preserve page
sizes in PDF files when the user has not selected a particular media
size (STR #3689)
- Added new PWG Raster filter for IPP Everywhere printer support.
- Added job-uuid, printer-uuid, and subscription-uuid attributes.
- Added support for the cupsSingleFile PPD keyword.
- Dropped support for the printer-state-history attribute (STR #3654)
- Added support for a new cupsIPPSupplies keyword in PPD files to allow
drivers to disable IPP supply level reporting.
- Added support for a new cupsFilter2 keyword in PPD files to allow for
the propagation of the actual MIME media type produced by a filter.
- The scheduler did not always get the correct Kerberos username when
authenticating (STR #3670)
- Added new cupsRasterOpenIO function and CUPS_RASTER_WRITE_PWG to the
CUPS imaging library to support printing to IPP Everywhere raster
printers.
- The scheduler now provides default values for the pages-per-minute and
pages-per-minute-color attributes for PPD files that lack a
Throughput keyword.
- Email notifications did not work on Mac OS X.
- The cupstestppd program now shows an error for files missing a
CloseGroup keyword (STR #3668)
- Name resolution errors no longer cause queues to stop (STR #3719,
STR #3753)
- Added a new cups-exec helper program that applies security profiles
to filters, port monitors, backends, CGI programs, and mini-daemons.
- The web interface can now be disabled using the WebInterface directive
in cupsd.conf (STR #2625)
- The scheduler now provides privacy controls for jobs and subscriptions
(STR #2969)
- Added new cupsArrayNew3 API which offers memory management of array
elements.
- Added several new color spaces to the CUPS raster format (STR #3419)
- The Validate-Job operation now uses the same policy as Print-Job by
default.
- CUPS now uses iconv to implement all of its character encoding
support (STR #3097)
- The scheduler now implements the Cancel-Jobs, Cancel-My-Jobs, and
Close-Job operations along with the job-ids operation attribute from
PWG 5100.11.
- The main CUPS header (<cups/cups.h>) no longer includes the PPD header
(<cups/ppd.h>).
- The scheduler and CUPS API now support the print-quality job template
attribute.
- The scheduler no longer supports the old Mac OS X Server quota
plugin.
- The scheduler now allows writing to /Users/Shared from print filters
on Mac OS X.
- CUPS no longer supports the old ~/.cupsrc or ~/.lpoptions files from
CUPS 1.1.x. The ~/.cups/client.conf and ~/.cups/lpoptions files that
were introduced in CUPS 1.2 must now be used.
- The ipptest tool is now a first-class user program and has several
improvements along with new documentation (STR #3484)
- The cupstestppd tool now warns about non-unique filenames and
provides a way to ignore all filename warnings.
- Dropped support for the recoverable: and recovered: message prefixes.
- The scheduler now requires that filters and backends have group write
permissions disabled.
- The PPD compiler now checks for overlapping filenames when writing
PPD files.
- The HP-GL/2 filter is no longer included with CUPS (STR #3322)
- The SCSI backend is no longer included with CUPS (STR #3500)
+1 -1
Ver Arquivo
@@ -1,4 +1,4 @@
INSTALL - CUPS v1.5.0 - 2011-07-25
INSTALL - CUPS v1.5.2 - 2012-02-05
----------------------------------
This file describes how to compile and install CUPS from source code. For more
+3 -31
Ver Arquivo
@@ -1,8 +1,6 @@
IPPTOOL.txt - 2011-12-02
IPPTOOL.txt - 2011-09-20
------------------------
See the file CHANGES-IPPTOOL.txt for a list of changes to this software.
INTRODUCTION
@@ -103,34 +101,6 @@ GETTING SUPPORT AND OTHER RESOURCES
See the CUPS web site at "http://www.cups.org/" for other resources.
REPORTING BUGS
If you believe you have discovered a bug in ipptool, please fill out the
bug form at:
http://www.cups.org/str.php
Be sure to identify the version of CUPS and ipptool (if you downloaded the
standalone version) you are using, the printer (if any) and firmware
version, and include any files that apply.
If you downloaded the standalone version of ipptool, please also re-run the
test with debug logging enabled. Run the following commands on Windows to
enable debug logging:
set CUPS_DEBUG_LOG=ipptool.log
set CUPS_DEBUG_LEVEL=6
For Linux and Mac OS X use:
CUPS_DEBUG_LOG=ipptool.log; export CUPS_DEBUG_LOG
CUPS_DEBUG_LEVEL=6; export CUPS_DEBUG_LEVEL
Then when you run the ipptool command a new "ipptool.log" file will be
created with detailed information - attach this file to the bug you file
as well.
LEGAL STUFF
CUPS is Copyright 2007-2011 by Apple Inc. CUPS and the CUPS logo are
@@ -138,6 +108,8 @@ LEGAL STUFF
The MD5 Digest code is Copyright 1999 Aladdin Enterprises.
This software is based in part on the work of the Independent JPEG Group.
CUPS is provided under the terms of version 2 of the GNU General Public
License and GNU Library General Public License. This program is distributed
in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+52 -4
Ver Arquivo
@@ -3,7 +3,7 @@
#
# Common makefile definitions for CUPS.
#
# Copyright 2007-2012 by Apple Inc.
# Copyright 2007-2011 by Apple Inc.
# Copyright 1997-2007 by Easy Software Products, all rights reserved.
#
# These coded instructions, statements, and computer programs are the
@@ -30,6 +30,7 @@ LD = @LD@
LIBTOOL = @LIBTOOL@
LN = @LN@ -sf
MV = @MV@
PHPCONFIG = @PHPCONFIG@
RANLIB = @RANLIB@
RM = @RM@ -f
RMDIR = @RMDIR@
@@ -78,14 +79,19 @@ UNINSTALL_LANGUAGES = @UNINSTALL_LANGUAGES@
LIBCUPS = @LIBCUPS@
LIBCUPSCGI = @LIBCUPSCGI@
LIBCUPSDRIVER = @LIBCUPSDRIVER@
LIBCUPSIMAGE = @LIBCUPSIMAGE@
LIBCUPSMIME = @LIBCUPSMIME@
LIBCUPSPPDC = @LIBCUPSPPDC@
LIBCUPSSTATIC = @LIBCUPSSTATIC@
LIBGSSAPI = @LIBGSSAPI@
LIBJPEG = @LIBJPEG@
LIBLDAP = @LIBLDAP@
LIBMALLOC = @LIBMALLOC@
LIBMXML = @LIBMXML@
LIBPAPER = @LIBPAPER@
LIBPNG = @LIBPNG@
LIBSLP = @LIBSLP@
LIBGSSAPI = @LIBGSSAPI@
LIBTIFF = @LIBTIFF@
LIBUSB = @LIBUSB@
LIBWRAP = @LIBWRAP@
LIBZ = @LIBZ@
@@ -112,6 +118,10 @@ INSTALLXPC = @INSTALLXPC@
# Program options...
#
# ARCHFLAGS Defines the default architecture build options.
# ARCH32FLAGS Defines the 32-bit architecture build options, used
# when compiling separate 32/64-bit libraries.
# ARCH64FLAGS Defines the 64-bit architecture build options, used
# when compiling separate 32/64-bit libraries.
# OPTIM Defines the common compiler optimization/debugging options
# for all architectures.
# OPTIONS Defines other compile-time options (currently only -DDEBUG
@@ -125,6 +135,7 @@ ALL_CXXFLAGS = -I.. -D_CUPS_SOURCE $(CXXFLAGS) $(SSLFLAGS) \
ARCHFLAGS = @ARCHFLAGS@
ARFLAGS = @ARFLAGS@
BACKLIBS = @BACKLIBS@
BANNERTOPS = @BANNERTOPS@
BUILDDIRS = @BUILDDIRS@
CFLAGS = @CPPFLAGS@ @CFLAGS@
COMMONLIBS = @LIBS@
@@ -136,22 +147,51 @@ DNSSD_BACKEND = @DNSSD_BACKEND@
DSOFLAGS = -L../cups @DSOFLAGS@
DSOLIBS = @DSOLIBS@ $(COMMONLIBS)
DNSSDLIBS = @DNSSDLIBS@
FONTS = @FONTS@
IMGLIBS = @IMGLIBS@
IMGFILTERS = @IMGFILTERS@
LAUNCHDLIBS = @LAUNCHDLIBS@
LDFLAGS = -L../cgi-bin -L../cups -L../filter -L../ppdc \
-L../scheduler @LDARCHFLAGS@ \
@LDFLAGS@ @RELROFLAGS@ @PIEFLAGS@ $(OPTIM)
LEGACY_BACKENDS = @LEGACY_BACKENDS@
LINKCUPS = @LINKCUPS@ $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) $(LIBZ)
LINKCUPSIMAGE = @LINKCUPSIMAGE@
LIBS = $(LINKCUPS) $(COMMONLIBS)
OPTIM = @OPTIM@
OPTIONS =
PAMLIBS = @PAMLIBS@
PAP = @PAP@
PDFTOPS = @PDFTOPS@
PHPDIR = @PHPDIR@
PHPOPTIONS = @PHPOPTIONS@ -I../.. `$(PHPCONFIG) --includes`
SERVERLIBS = @SERVERLIBS@
SSLFLAGS = @SSLFLAGS@
SSLLIBS = @SSLLIBS@
TEXTTOPS = @TEXTTOPS@
UNITTESTS = @UNITTESTS@
#
# Separate 32/64-bit library support...
#
ARCH32FLAGS = @ARCH32FLAGS@
DSO32FLAGS = @DSO32FLAGS@
INSTALL32 = @INSTALL32@
LIB32CUPS = @LIB32CUPS@
LIB32CUPSIMAGE = @LIB32CUPSIMAGE@
LIB32DIR = $(BUILDROOT)@LIB32DIR@
UNINSTALL32 = @UNINSTALL32@
ARCH64FLAGS = @ARCH64FLAGS@
DSO64FLAGS = @DSO64FLAGS@
INSTALL64 = @INSTALL64@
LIB64CUPS = @LIB64CUPS@
LIB64CUPSIMAGE = @LIB64CUPSIMAGE@
LIB64DIR = $(BUILDROOT)@LIB64DIR@
UNINSTALL64 = @UNINSTALL64@
#
# Directories...
#
@@ -234,12 +274,20 @@ DBUSDIR = @DBUSDIR@
#
.SILENT:
.SUFFIXES: .1 .1.gz .1m .1m.gz .3 .3.gz .5 .5.gz .7 .7.gz .8 .8.gz .a .c .cxx .h .man .o .gz
.SUFFIXES: .1 .1.gz .1m .1m.gz .3 .3.gz .5 .5.gz .7 .7.gz .8 .8.gz .a .c .cxx .h .man .o .32.o .64.o .gz
.c.o:
echo Compiling $<...
$(CC) $(ARCHFLAGS) $(OPTIM) $(ALL_CFLAGS) -c -o $@ $<
.c.32.o:
echo Compiling 32-bit $<...
$(CC) $(ARCH32FLAGS) $(OPTIM) $(ALL_CFLAGS) -c -o $@ $<
.c.64.o:
echo Compiling 64-bit $<...
$(CC) $(ARCH64FLAGS) $(OPTIM) $(ALL_CFLAGS) -c -o $@ $<
.cxx.o:
echo Compiling $<...
$(CXX) $(ARCHFLAGS) $(OPTIM) $(ALL_CXXFLAGS) -c -o $@ $<
+4 -8
Ver Arquivo
@@ -20,7 +20,7 @@ include Makedefs
# Directories to make...
#
DIRS = cups test $(BUILDDIRS)
DIRS = cups test $(BUILDDIRS) $(PHPDIR) $(FONTS)
#
@@ -234,11 +234,7 @@ test: all unittests
check: all unittests
echo Running CUPS test suite with defaults...
cd test; ./run-stp-tests.sh 1 0 n n
debugcheck: all unittests
echo Running CUPS test suite with debug printfs...
cd test; ./run-stp-tests.sh 1 0 n y
cd test; ./run-stp-tests.sh 1 0 n
#
@@ -246,13 +242,13 @@ debugcheck: all unittests
#
apihelp:
for dir in cgi-bin cups filter ppdc scheduler; do\
for dir in cgi-bin cups filter driver ppdc scheduler; do\
echo Generating API help in $$dir... ;\
(cd $$dir; $(MAKE) $(MFLAGS) apihelp) || exit 1;\
done
framedhelp:
for dir in cgi-bin cups filter ppdc scheduler; do\
for dir in cgi-bin cups filter driver ppdc scheduler; do\
echo Generating framed API help in $$dir... ;\
(cd $$dir; $(MAKE) $(MFLAGS) framedhelp) || exit 1;\
done
+3 -3
Ver Arquivo
@@ -1,5 +1,5 @@
README - CUPS v1.5.0 - 2011-07-25
----------------------------------
README - CUPS v1.5.2 - 2012-02-05
---------------------------------
Looking for compile instructions? Read the file "INSTALL.txt"
instead...
@@ -150,7 +150,7 @@ PRINTING FILES
LEGAL STUFF
CUPS is Copyright 2007-2011 by Apple Inc. CUPS and the CUPS logo are
CUPS is Copyright 2007-2012 by Apple Inc. CUPS and the CUPS logo are
trademarks of Apple Inc.
The MD5 Digest code is Copyright 1999 Aladdin Enterprises.
+101 -72
Ver Arquivo
@@ -1,72 +1,101 @@
ipp.o: ipp.c backend-private.h ../cups/cups-private.h ../cups/cups.h \
../cups/file.h ../cups/versioning.h ../cups/ipp.h ../cups/http.h \
../cups/array.h ../cups/language.h ../cups/string-private.h \
../config.h ../cups/debug-private.h ../cups/ppd-private.h \
../cups/ppd.h ../cups/pwg-private.h ../cups/http-private.h \
../cups/md5-private.h ../cups/ipp-private.h ../cups/language-private.h \
../cups/transcode.h ../cups/thread-private.h ../cups/snmp-private.h \
../cups/backend.h ../cups/sidechannel.h ../cups/array-private.h
lpd.o: lpd.c ../cups/http-private.h ../config.h ../cups/http.h \
../cups/versioning.h ../cups/array.h ../cups/md5-private.h \
../cups/ipp-private.h ../cups/ipp.h backend-private.h \
../cups/cups-private.h ../cups/cups.h ../cups/file.h \
../cups/language.h ../cups/string-private.h ../cups/debug-private.h \
../cups/ppd-private.h ../cups/ppd.h ../cups/pwg-private.h \
../cups/language-private.h ../cups/transcode.h \
../cups/thread-private.h ../cups/snmp-private.h ../cups/backend.h \
../cups/sidechannel.h
dnssd.o: dnssd.c backend-private.h ../cups/cups-private.h ../cups/cups.h \
../cups/file.h ../cups/versioning.h ../cups/ipp.h ../cups/http.h \
../cups/array.h ../cups/language.h ../cups/string-private.h \
../config.h ../cups/debug-private.h ../cups/ppd-private.h \
../cups/ppd.h ../cups/pwg-private.h ../cups/http-private.h \
../cups/md5-private.h ../cups/ipp-private.h ../cups/language-private.h \
../cups/transcode.h ../cups/thread-private.h ../cups/snmp-private.h \
../cups/backend.h ../cups/sidechannel.h
snmp.o: snmp.c backend-private.h ../cups/cups-private.h ../cups/cups.h \
../cups/file.h ../cups/versioning.h ../cups/ipp.h ../cups/http.h \
../cups/array.h ../cups/language.h ../cups/string-private.h \
../config.h ../cups/debug-private.h ../cups/ppd-private.h \
../cups/ppd.h ../cups/pwg-private.h ../cups/http-private.h \
../cups/md5-private.h ../cups/ipp-private.h ../cups/language-private.h \
../cups/transcode.h ../cups/thread-private.h ../cups/snmp-private.h \
../cups/backend.h ../cups/sidechannel.h
socket.o: socket.c ../cups/http-private.h ../config.h ../cups/http.h \
../cups/versioning.h ../cups/array.h ../cups/md5-private.h \
../cups/ipp-private.h ../cups/ipp.h backend-private.h \
../cups/cups-private.h ../cups/cups.h ../cups/file.h \
../cups/language.h ../cups/string-private.h ../cups/debug-private.h \
../cups/ppd-private.h ../cups/ppd.h ../cups/pwg-private.h \
../cups/language-private.h ../cups/transcode.h \
../cups/thread-private.h ../cups/snmp-private.h ../cups/backend.h \
../cups/sidechannel.h
test1284.o: test1284.c ../cups/string-private.h ../config.h ieee1284.c \
backend-private.h ../cups/cups-private.h ../cups/cups.h ../cups/file.h \
../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/language.h ../cups/debug-private.h ../cups/ppd-private.h \
../cups/ppd.h ../cups/pwg-private.h ../cups/http-private.h \
../cups/md5-private.h ../cups/ipp-private.h ../cups/language-private.h \
../cups/transcode.h ../cups/thread-private.h ../cups/snmp-private.h \
../cups/backend.h ../cups/sidechannel.h
testbackend.o: testbackend.c ../cups/string-private.h ../config.h \
../cups/cups.h ../cups/file.h ../cups/versioning.h ../cups/ipp.h \
../cups/http.h ../cups/array.h ../cups/language.h \
../cups/sidechannel.h
testsupplies.o: testsupplies.c backend-private.h ../cups/cups-private.h \
../cups/cups.h ../cups/file.h ../cups/versioning.h ../cups/ipp.h \
../cups/http.h ../cups/array.h ../cups/language.h \
../cups/string-private.h ../config.h ../cups/debug-private.h \
../cups/ppd-private.h ../cups/ppd.h ../cups/pwg-private.h \
../cups/http-private.h ../cups/md5-private.h ../cups/ipp-private.h \
../cups/language-private.h ../cups/transcode.h \
../cups/thread-private.h ../cups/snmp-private.h ../cups/backend.h \
../cups/sidechannel.h
usb.o: usb.c backend-private.h ../cups/cups-private.h ../cups/cups.h \
../cups/file.h ../cups/versioning.h ../cups/ipp.h ../cups/http.h \
../cups/array.h ../cups/language.h ../cups/string-private.h \
../config.h ../cups/debug-private.h ../cups/ppd-private.h \
../cups/ppd.h ../cups/pwg-private.h ../cups/http-private.h \
../cups/md5-private.h ../cups/ipp-private.h ../cups/language-private.h \
../cups/transcode.h ../cups/thread-private.h ../cups/snmp-private.h \
../cups/backend.h ../cups/sidechannel.h usb-darwin.c \
../cups/file-private.h
# DO NOT DELETE THIS LINE -- make depend depends on it.
ipp.o: backend-private.h ../cups/cups-private.h ../cups/cups.h ../cups/file.h
ipp.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
ipp.o: ../cups/language.h ../cups/string-private.h ../config.h
ipp.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
ipp.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
ipp.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
ipp.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
ipp.o: ../cups/thread-private.h ../cups/snmp-private.h ../cups/backend.h
ipp.o: ../cups/sidechannel.h ../cups/array-private.h
lpd.o: ../cups/http-private.h ../config.h ../cups/http.h
lpd.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
lpd.o: backend-private.h ../cups/cups-private.h ../cups/cups.h ../cups/file.h
lpd.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
lpd.o: ../cups/language.h ../cups/string-private.h ../cups/debug-private.h
lpd.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
lpd.o: ../cups/pwg-private.h ../cups/http-private.h
lpd.o: ../cups/language-private.h ../cups/transcode.h
lpd.o: ../cups/thread-private.h ../cups/snmp-private.h ../cups/backend.h
lpd.o: ../cups/sidechannel.h
dnssd.o: backend-private.h ../cups/cups-private.h ../cups/cups.h
dnssd.o: ../cups/file.h ../cups/versioning.h ../cups/ipp.h ../cups/http.h
dnssd.o: ../cups/array.h ../cups/language.h ../cups/string-private.h
dnssd.o: ../config.h ../cups/debug-private.h ../cups/ppd-private.h
dnssd.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
dnssd.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
dnssd.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
dnssd.o: ../cups/transcode.h ../cups/thread-private.h ../cups/snmp-private.h
dnssd.o: ../cups/backend.h ../cups/sidechannel.h ../cups/array.h
parallel.o: backend-private.h ../cups/cups-private.h ../cups/cups.h
parallel.o: ../cups/file.h ../cups/versioning.h ../cups/ipp.h ../cups/http.h
parallel.o: ../cups/array.h ../cups/language.h ../cups/string-private.h
parallel.o: ../config.h ../cups/debug-private.h ../cups/ppd-private.h
parallel.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
parallel.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
parallel.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
parallel.o: ../cups/transcode.h ../cups/thread-private.h
parallel.o: ../cups/snmp-private.h ../cups/backend.h ../cups/sidechannel.h
serial.o: backend-private.h ../cups/cups-private.h ../cups/cups.h
serial.o: ../cups/file.h ../cups/versioning.h ../cups/ipp.h ../cups/http.h
serial.o: ../cups/array.h ../cups/language.h ../cups/string-private.h
serial.o: ../config.h ../cups/debug-private.h ../cups/ppd-private.h
serial.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
serial.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
serial.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
serial.o: ../cups/transcode.h ../cups/thread-private.h ../cups/snmp-private.h
serial.o: ../cups/backend.h ../cups/sidechannel.h
snmp.o: backend-private.h ../cups/cups-private.h ../cups/cups.h
snmp.o: ../cups/file.h ../cups/versioning.h ../cups/ipp.h ../cups/http.h
snmp.o: ../cups/array.h ../cups/language.h ../cups/string-private.h
snmp.o: ../config.h ../cups/debug-private.h ../cups/ppd-private.h
snmp.o: ../cups/ppd.h ../cups/cups.h ../cups/pwg-private.h
snmp.o: ../cups/http-private.h ../cups/http.h ../cups/md5-private.h
snmp.o: ../cups/ipp-private.h ../cups/ipp.h ../cups/language-private.h
snmp.o: ../cups/transcode.h ../cups/thread-private.h ../cups/snmp-private.h
snmp.o: ../cups/backend.h ../cups/sidechannel.h ../cups/array.h
snmp.o: ../cups/file.h ../cups/http-private.h
socket.o: ../cups/http-private.h ../config.h ../cups/http.h
socket.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
socket.o: backend-private.h ../cups/cups-private.h ../cups/cups.h
socket.o: ../cups/file.h ../cups/versioning.h ../cups/ipp.h ../cups/http.h
socket.o: ../cups/array.h ../cups/language.h ../cups/string-private.h
socket.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
socket.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
socket.o: ../cups/language-private.h ../cups/transcode.h
socket.o: ../cups/thread-private.h ../cups/snmp-private.h ../cups/backend.h
socket.o: ../cups/sidechannel.h
test1284.o: ../cups/string-private.h ../config.h ieee1284.c backend-private.h
test1284.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
test1284.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
test1284.o: ../cups/language.h ../cups/string-private.h
test1284.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
test1284.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
test1284.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
test1284.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
test1284.o: ../cups/thread-private.h ../cups/snmp-private.h ../cups/backend.h
test1284.o: ../cups/sidechannel.h
testbackend.o: ../cups/string-private.h ../config.h ../cups/cups.h
testbackend.o: ../cups/file.h ../cups/versioning.h ../cups/ipp.h
testbackend.o: ../cups/http.h ../cups/array.h ../cups/language.h
testbackend.o: ../cups/sidechannel.h
testsupplies.o: backend-private.h ../cups/cups-private.h ../cups/cups.h
testsupplies.o: ../cups/file.h ../cups/versioning.h ../cups/ipp.h
testsupplies.o: ../cups/http.h ../cups/array.h ../cups/language.h
testsupplies.o: ../cups/string-private.h ../config.h ../cups/debug-private.h
testsupplies.o: ../cups/ppd-private.h ../cups/ppd.h ../cups/cups.h
testsupplies.o: ../cups/pwg-private.h ../cups/http-private.h ../cups/http.h
testsupplies.o: ../cups/md5-private.h ../cups/ipp-private.h ../cups/ipp.h
testsupplies.o: ../cups/language-private.h ../cups/transcode.h
testsupplies.o: ../cups/thread-private.h ../cups/snmp-private.h
testsupplies.o: ../cups/backend.h ../cups/sidechannel.h
usb.o: backend-private.h ../cups/cups-private.h ../cups/cups.h ../cups/file.h
usb.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
usb.o: ../cups/language.h ../cups/string-private.h ../config.h
usb.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
usb.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
usb.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
usb.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
usb.o: ../cups/thread-private.h ../cups/snmp-private.h ../cups/backend.h
usb.o: ../cups/sidechannel.h
+28 -34
Ver Arquivo
@@ -3,7 +3,7 @@
#
# Backend makefile for CUPS.
#
# Copyright 2007-2012 by Apple Inc.
# Copyright 2007-2011 by Apple Inc.
# Copyright 1997-2007 by Easy Software Products, all rights reserved.
#
# These coded instructions, statements, and computer programs are the
@@ -21,37 +21,13 @@ include ../Makedefs
# Object files...
#
RBACKENDS = \
ipp \
lpd \
$(DNSSD_BACKEND)
UBACKENDS = \
snmp \
socket \
usb
UNITTESTS = \
test1284 \
testbackend \
testsupplies
TARGETS = \
libbackend.a \
$(RBACKENDS) \
$(UBACKENDS)
LIBOBJS = \
ieee1284.o \
network.o \
runloop.o \
snmp-supplies.o
OBJS = \
ipp.o \
lpd.o \
dnssd.o \
snmp.o \
socket.o \
test1284.o \
testbackend.o \
testsupplies.o \
usb.o
RBACKENDS = ipp lpd $(DNSSD_BACKEND)
UBACKENDS = $(LEGACY_BACKENDS) serial snmp socket usb
UNITTESTS = test1284 testbackend testsupplies
TARGETS = libbackend.a $(RBACKENDS) $(UBACKENDS)
LIBOBJS = ieee1284.o network.o runloop.o snmp-supplies.o
OBJS = ipp.o lpd.o dnssd.o parallel.o serial.o snmp.o \
socket.o test1284.o testbackend.o testsupplies.o usb.o
#
@@ -80,7 +56,7 @@ unittests: $(UNITTESTS)
#
clean:
$(RM) $(OBJS) $(TARGETS) $(UNITTESTS) $(LIBOBJS) http https ipps mdns
$(RM) $(OBJS) $(TARGETS) $(UNITTESTS) $(LIBOBJS) http mdns
#
@@ -88,7 +64,7 @@ clean:
#
depend:
$(CC) -MM $(ALL_CFLAGS) $(OBJS:.o=.c) >Dependencies
makedepend -Y -I.. -fDependencies $(OBJS:.o=.c) >/dev/null 2>&1
#
@@ -250,6 +226,24 @@ lpd: lpd.o ../cups/$(LIBCUPS) libbackend.a
$(CC) $(LDFLAGS) -o lpd lpd.o libbackend.a $(LIBS)
#
# parallel
#
parallel: parallel.o ../cups/$(LIBCUPS) libbackend.a
echo Linking $@...
$(CC) $(LDFLAGS) -o parallel parallel.o libbackend.a $(LIBS)
#
# serial
#
serial: serial.o ../cups/$(LIBCUPS) libbackend.a
echo Linking $@...
$(CC) $(LDFLAGS) -o serial serial.o libbackend.a $(BACKLIBS) $(LIBS)
#
# snmp
#
+57 -217
Ver Arquivo
@@ -3,7 +3,7 @@
*
* IPP backend for CUPS.
*
* Copyright 2007-2012 by Apple Inc.
* Copyright 2007-2011 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
@@ -63,7 +63,6 @@ typedef struct _cups_monitor_s /**** Monitoring data ****/
int port, /* Port number */
version, /* IPP version */
job_id; /* Job ID for submitted job */
const char *job_name; /* Job name for submitted job */
http_encryption_t encryption; /* Use encryption? */
ipp_jstate_t job_state; /* Current job state */
ipp_pstate_t printer_state; /* Current printer state */
@@ -83,8 +82,6 @@ static const char * const jattrs[] = /* Job attributes we want */
{
"job-impressions-completed",
"job-media-sheets-completed",
"job-name",
"job-originating-user-name",
"job-state",
"job-state-reasons"
};
@@ -208,7 +205,6 @@ main(int argc, /* I - Number of command-line args */
int port; /* Port number (not used) */
char portname[255]; /* Port name */
char uri[HTTP_MAX_URI]; /* Updated URI without user/pass */
char print_job_name[1024]; /* Update job-name for Print-Job */
http_status_t http_status; /* Status of HTTP request */
ipp_status_t ipp_status; /* Status of IPP request */
http_t *http; /* HTTP connection */
@@ -235,9 +231,7 @@ main(int argc, /* I - Number of command-line args */
ipp_attribute_t *doc_handling_sup; /* multiple-document-handling-supported */
ipp_attribute_t *printer_state; /* printer-state attribute */
ipp_attribute_t *printer_accepting; /* printer-is-accepting-jobs */
int create_job = 0, /* Does printer support Create-Job? */
send_document = 0, /* Does printer support Send-Document? */
validate_job = 0; /* Does printer support Validate-Job? */
int validate_job; /* Does printer support Validate-Job? */
int copies, /* Number of copies for job */
copies_remaining; /* Number of copies remaining */
const char *content_type, /* CONTENT_TYPE environment variable */
@@ -795,6 +789,7 @@ main(int argc, /* I - Number of command-line args */
supported = NULL;
operations_sup = NULL;
doc_handling_sup = NULL;
validate_job = 0;
do
{
@@ -1047,21 +1042,11 @@ main(int argc, /* I - Number of command-line args */
"cups-ipp-missing-get-printer-attributes");
for (i = 0; i < operations_sup->num_values; i ++)
{
if (operations_sup->values[i].integer == IPP_VALIDATE_JOB)
{
validate_job = 1;
else if (operations_sup->values[i].integer == IPP_CREATE_JOB)
create_job = 1;
else if (operations_sup->values[i].integer == IPP_SEND_DOCUMENT)
send_document = 1;
}
if (!send_document)
{
fputs("DEBUG: Printer supports Create-Job but not Send-Document.\n",
stderr);
create_job = 0;
}
break;
}
if (!validate_job)
update_reasons(NULL, "+cups-ipp-conformance-failure-report,"
@@ -1131,7 +1116,7 @@ main(int argc, /* I - Number of command-line args */
{
copies_remaining = 1;
if (argc < 7 && !_cups_strncasecmp(final_content_type, "image/", 6))
if (argc < 7 && !send_options)
copies = 1;
}
else
@@ -1235,17 +1220,6 @@ main(int argc, /* I - Number of command-line args */
monitor.job_state = IPP_JOB_PENDING;
monitor.printer_state = IPP_PRINTER_IDLE;
if (create_job)
{
monitor.job_name = argv[3];
}
else
{
snprintf(print_job_name, sizeof(print_job_name), "%s - %s", argv[1],
argv[3]);
monitor.job_name = print_job_name;
}
_cupsThreadCreate((_cups_thread_func_t)monitor_printer, &monitor);
/*
@@ -1254,8 +1228,8 @@ main(int argc, /* I - Number of command-line args */
while (!job_canceled && validate_job)
{
request = new_request(IPP_VALIDATE_JOB, version, uri, argv[2],
monitor.job_name, num_options, options, compression,
request = new_request(IPP_VALIDATE_JOB, version, uri, argv[2], argv[3],
num_options, options, compression,
copies_sup ? copies : 1, document_format, pc,
media_col_sup, doc_handling_sup);
@@ -1332,17 +1306,16 @@ main(int argc, /* I - Number of command-line args */
if (job_canceled)
break;
request = new_request((num_files > 1 || create_job) ? IPP_CREATE_JOB :
IPP_PRINT_JOB,
version, uri, argv[2], monitor.job_name, num_options,
options, compression, copies_sup ? copies : 1,
document_format, pc, media_col_sup, doc_handling_sup);
request = new_request(num_files > 1 ? IPP_CREATE_JOB : IPP_PRINT_JOB,
version, uri, argv[2], argv[3], num_options, options,
compression, copies_sup ? copies : 1, document_format,
pc, media_col_sup, doc_handling_sup);
/*
* Do the request...
*/
if (num_files > 1 || create_job)
if (num_files > 1)
response = cupsDoRequest(http, request, resource);
else
{
@@ -1360,13 +1333,7 @@ main(int argc, /* I - Number of command-line args */
if (http_status == HTTP_CONTINUE && request->state == IPP_DATA)
{
if (num_files == 1)
{
if ((fd = open(files[0], O_RDONLY)) < 0)
{
_cupsLangPrintError("ERROR", _("Unable to open print file"));
return (CUPS_BACKEND_FAILED);
}
}
fd = open(files[0], O_RDONLY);
else
{
fd = 0;
@@ -1415,7 +1382,7 @@ main(int argc, /* I - Number of command-line args */
ipp_status = cupsLastError();
fprintf(stderr, "DEBUG: %s: %s (%s)\n",
(num_files > 1 || create_job) ? "Create-Job" : "Print-Job",
num_files > 1 ? "Create-Job" : "Print-Job",
ippErrorString(ipp_status), cupsLastErrorString());
if (ipp_status > IPP_OK_CONFLICT)
@@ -1499,15 +1466,14 @@ main(int argc, /* I - Number of command-line args */
_("Print file accepted - job ID %d."), job_id);
}
fprintf(stderr, "DEBUG: job-id=%d\n", job_id);
ippDelete(response);
if (job_canceled)
break;
if (job_id && (num_files > 1 || create_job))
if (job_id && num_files > 1)
{
for (i = 0; num_files == 0 || i < num_files; i ++)
for (i = 0; i < num_files; i ++)
{
/*
* Check for side-channel requests...
@@ -1533,34 +1499,16 @@ main(int argc, /* I - Number of command-line args */
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME,
"requesting-user-name", NULL, argv[2]);
if ((i + 1) >= num_files)
if ((i + 1) == num_files)
ippAddBoolean(request, IPP_TAG_OPERATION, "last-document", 1);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_MIMETYPE,
"document-format", NULL, document_format);
"document-format", NULL, content_type);
fprintf(stderr, "DEBUG: Sending file %d using chunking...\n", i + 1);
http_status = cupsSendRequest(http, request, resource, 0);
if (http_status == HTTP_CONTINUE && request->state == IPP_DATA)
{
if (num_files == 0)
{
fd = 0;
http_status = cupsWriteRequestData(http, buffer, bytes);
}
else
{
if ((fd = open(files[i], O_RDONLY)) < 0)
{
_cupsLangPrintError("ERROR", _("Unable to open print file"));
return (CUPS_BACKEND_FAILED);
}
}
}
else
fd = -1;
if (fd >= 0)
if (http_status == HTTP_CONTINUE && request->state == IPP_DATA &&
(fd = open(files[i], O_RDONLY)) >= 0)
{
while (!job_canceled &&
(bytes = read(fd, buffer, sizeof(buffer))) > 0)
@@ -1577,8 +1525,7 @@ main(int argc, /* I - Number of command-line args */
}
}
if (fd > 0)
close(fd);
close(fd);
}
ippDelete(cupsGetResponse(http, resource));
@@ -1595,8 +1542,6 @@ main(int argc, /* I - Number of command-line args */
_("Unable to add document to print job."));
break;
}
else if (num_files == 0 || fd < 0)
break;
}
}
@@ -1686,7 +1631,6 @@ main(int argc, /* I - Number of command-line args */
_cupsLangPrintFilter(stderr, "ERROR",
_("Unable to get print job status."));
ipp_status = IPP_OK;
break;
}
}
@@ -2028,11 +1972,6 @@ monitor_printer(
ipp_attribute_t *attr; /* Attribute in response */
int delay, /* Current delay */
prev_delay; /* Previous delay */
ipp_op_t job_op; /* Operation to use */
int job_id; /* Job ID */
const char *job_name; /* Job name */
ipp_jstate_t job_state; /* Job state */
const char *job_user; /* Job originating user name */
/*
@@ -2067,95 +2006,46 @@ monitor_printer(
monitor->user,
monitor->version);
/*
* Check the status of the job itself...
*/
job_op = monitor->job_id > 0 ? IPP_GET_JOB_ATTRIBUTES : IPP_GET_JOBS;
request = ippNewRequest(job_op);
request->request.op.version[0] = monitor->version / 10;
request->request.op.version[1] = monitor->version % 10;
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri",
NULL, monitor->uri);
if (job_op == IPP_GET_JOB_ATTRIBUTES)
ippAddInteger(request, IPP_TAG_OPERATION, IPP_TAG_INTEGER, "job-id",
monitor->job_id);
if (monitor->user && monitor->user[0])
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME,
"requesting-user-name", NULL, monitor->user);
ippAddStrings(request, IPP_TAG_OPERATION, IPP_TAG_KEYWORD,
"requested-attributes",
(int)(sizeof(jattrs) / sizeof(jattrs[0])), NULL, jattrs);
/*
* Do the request...
*/
response = cupsDoRequest(http, request, monitor->resource);
fprintf(stderr, "DEBUG: %s: %s (%s)\n", ippOpString(job_op),
ippErrorString(cupsLastError()), cupsLastErrorString());
if (job_op == IPP_GET_JOB_ATTRIBUTES)
if (monitor->job_id > 0)
{
/*
* Check the status of the job itself...
*/
request = ippNewRequest(IPP_GET_JOB_ATTRIBUTES);
request->request.op.version[0] = monitor->version / 10;
request->request.op.version[1] = monitor->version % 10;
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri",
NULL, monitor->uri);
ippAddInteger(request, IPP_TAG_OPERATION, IPP_TAG_INTEGER, "job-id",
monitor->job_id);
if (monitor->user && monitor->user[0])
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_NAME,
"requesting-user-name", NULL, monitor->user);
ippAddStrings(request, IPP_TAG_OPERATION, IPP_TAG_KEYWORD,
"requested-attributes",
(int)(sizeof(jattrs) / sizeof(jattrs[0])), NULL, jattrs);
/*
* Do the request...
*/
response = cupsDoRequest(http, request, monitor->resource);
fprintf(stderr, "DEBUG: Get-Job-Attributes: %s (%s)\n",
ippErrorString(cupsLastError()), cupsLastErrorString());
if ((attr = ippFindAttribute(response, "job-state",
IPP_TAG_ENUM)) != NULL)
monitor->job_state = (ipp_jstate_t)attr->values[0].integer;
else
monitor->job_state = IPP_JOB_COMPLETED;
ippDelete(response);
}
else if (response)
{
for (attr = response->attrs; attr; attr = attr->next)
{
job_id = 0;
job_name = NULL;
job_state = IPP_JOB_PENDING;
job_user = NULL;
while (attr && attr->group_tag != IPP_TAG_JOB)
attr = attr->next;
if (!attr)
break;
while (attr && attr->group_tag == IPP_TAG_JOB)
{
if (!strcmp(attr->name, "job-id") &&
attr->value_tag == IPP_TAG_INTEGER)
job_id = attr->values[0].integer;
else if (!strcmp(attr->name, "job-name") &&
(attr->value_tag == IPP_TAG_NAME ||
attr->value_tag == IPP_TAG_NAMELANG))
job_name = attr->values[0].string.text;
else if (!strcmp(attr->name, "job-state") &&
attr->value_tag == IPP_TAG_ENUM)
job_state = attr->values[0].integer;
else if (!strcmp(attr->name, "job-originating-user-name") &&
(attr->value_tag == IPP_TAG_NAME ||
attr->value_tag == IPP_TAG_NAMELANG))
job_user = attr->values[0].string.text;
attr = attr->next;
}
if (job_id > 0 && job_name && !strcmp(job_name, monitor->job_name) &&
job_user && monitor->user && !strcmp(job_user, monitor->user))
{
monitor->job_id = job_id;
monitor->job_state = job_state;
break;
}
if (!attr)
break;
}
}
ippDelete(response);
/*
* Disconnect from the printer - we'll reconnect on the next poll...
@@ -2173,15 +2063,6 @@ monitor_printer(
delay = _cupsNextDelay(delay, &prev_delay);
}
/*
* Cancel the job if necessary...
*/
if (job_canceled && monitor->job_id > 0)
if (!httpReconnect(http))
cancel_job(http, monitor->uri, monitor->job_id, monitor->resource,
monitor->user, monitor->version);
/*
* Cleanup and return...
*/
@@ -2207,7 +2088,7 @@ new_request(
cups_option_t *options, /* I - Options to send */
const char *compression, /* I - compression value or NULL */
int copies, /* I - copies value or 0 */
const char *format, /* I - document-format value or NULL */
const char *format, /* I - documet-format value or NULL */
_ppd_cache_t *pc, /* I - PPD cache and mapping data */
ipp_attribute_t *media_col_sup, /* I - media-col-supported values */
ipp_attribute_t *doc_handling_sup) /* I - multiple-document-handling-supported values */
@@ -2282,9 +2163,6 @@ new_request(
{
if (pc)
{
int num_finishings = 0, /* Number of finishing values */
finishings[10]; /* Finishing enum values */
/*
* Send standard IPP attributes...
*/
@@ -2406,7 +2284,6 @@ new_request(
}
if (doc_handling_sup &&
(!format || _cups_strncasecmp(format, "image/", 6)) &&
(keyword = cupsGetOption("collate", num_options, options)) != NULL)
{
if (!_cups_strcasecmp(keyword, "true"))
@@ -2422,43 +2299,6 @@ new_request(
break;
}
}
/*
* Map finishing options...
*/
num_finishings = _ppdCacheGetFinishingValues(pc, num_options, options,
(int)(sizeof(finishings) /
sizeof(finishings[0])),
finishings);
if (num_finishings > 0)
ippAddIntegers(request, IPP_TAG_JOB, IPP_TAG_ENUM, "finishings",
num_finishings, finishings);
/*
* Map FaxOut options...
*/
if ((keyword = cupsGetOption("phone", num_options, options)) != NULL)
{
ipp_t *destination; /* destination collection */
char tel_uri[1024]; /* tel: URI */
destination = ippNew();
httpAssembleURI(HTTP_URI_CODING_ALL, tel_uri, sizeof(tel_uri), "tel",
NULL, NULL, 0, keyword);
ippAddString(destination, IPP_TAG_JOB, IPP_TAG_URI, "destination-uri",
NULL, tel_uri);
if ((keyword = cupsGetOption("faxPrefix", num_options,
options)) != NULL && *keyword)
ippAddString(destination, IPP_TAG_JOB, IPP_TAG_TEXT,
"pre-dial-string", NULL, keyword);
ippAddCollection(request, IPP_TAG_JOB, "destination-uris", destination);
ippDelete(destination);
}
}
else
{
+1 -1
Ver Arquivo
@@ -71,7 +71,7 @@ backendNetworkSideCB(
{
cups_sc_command_t command; /* Request command */
cups_sc_status_t status; /* Request/response status */
char data[65536]; /* Request/response data */
char data[2048]; /* Request/response data */
int datalen; /* Request/response data size */
const char *device_id; /* 1284DEVICEID env var */
+676
Ver Arquivo
@@ -0,0 +1,676 @@
/*
* "$Id$"
*
* Parallel port backend for CUPS.
*
* Copyright 2007-2011 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
* property of Apple Inc. and are protected by Federal copyright
* law. Distribution and use rights are outlined in the file "LICENSE.txt"
* "LICENSE" which should have been included with this file. If this
* file is missing or damaged, see the license at "http://www.cups.org/".
*
* This file is subject to the Apple OS-Developed Software exception.
*
* Contents:
*
* main() - Send a file to the specified parallel port.
* list_devices() - List all parallel devices.
* side_cb() - Handle side-channel requests...
*/
/*
* Include necessary headers.
*/
#include "backend-private.h"
#ifdef __hpux
# include <sys/time.h>
#else
# include <sys/select.h>
#endif /* __hpux */
#ifdef WIN32
# include <io.h>
#else
# include <unistd.h>
# include <fcntl.h>
# include <termios.h>
# include <sys/socket.h>
#endif /* WIN32 */
#ifdef __sgi
# include <invent.h>
# ifndef INV_EPP_ECP_PLP
# define INV_EPP_ECP_PLP 6 /* From 6.3/6.4/6.5 sys/invent.h */
# define INV_ASO_SERIAL 14 /* serial portion of SGI ASO board */
# define INV_IOC3_DMA 16 /* DMA mode IOC3 serial */
# define INV_IOC3_PIO 17 /* PIO mode IOC3 serial */
# define INV_ISA_DMA 19 /* DMA mode ISA serial -- O2 */
# endif /* !INV_EPP_ECP_PLP */
#endif /* __sgi */
/*
* Local functions...
*/
static void list_devices(void);
static int side_cb(int print_fd, int device_fd, int snmp_fd,
http_addr_t *addr, int use_bc);
/*
* 'main()' - Send a file to the specified parallel port.
*
* Usage:
*
* printer-uri job-id user title copies options [file]
*/
int /* O - Exit status */
main(int argc, /* I - Number of command-line arguments (6 or 7) */
char *argv[]) /* I - Command-line arguments */
{
char method[255], /* Method in URI */
hostname[1024], /* Hostname */
username[255], /* Username info (not used) */
resource[1024], /* Resource info (device and options) */
*options; /* Pointer to options */
int port; /* Port number (not used) */
int print_fd, /* Print file */
device_fd, /* Parallel device */
use_bc; /* Read back-channel data? */
int copies; /* Number of copies to print */
ssize_t tbytes; /* Total number of bytes written */
struct termios opts; /* Parallel port options */
#if defined(HAVE_SIGACTION) && !defined(HAVE_SIGSET)
struct sigaction action; /* Actions for POSIX signals */
#endif /* HAVE_SIGACTION && !HAVE_SIGSET */
/*
* Make sure status messages are not buffered...
*/
setbuf(stderr, NULL);
/*
* Ignore SIGPIPE signals...
*/
#ifdef HAVE_SIGSET
sigset(SIGPIPE, SIG_IGN);
#elif defined(HAVE_SIGACTION)
memset(&action, 0, sizeof(action));
action.sa_handler = SIG_IGN;
sigaction(SIGPIPE, &action, NULL);
#else
signal(SIGPIPE, SIG_IGN);
#endif /* HAVE_SIGSET */
/*
* Check command-line...
*/
if (argc == 1)
{
list_devices();
return (CUPS_BACKEND_OK);
}
else if (argc < 6 || argc > 7)
{
_cupsLangPrintf(stderr,
_("Usage: %s job-id user title copies options [file]"),
argv[0]);
return (CUPS_BACKEND_FAILED);
}
/*
* If we have 7 arguments, print the file named on the command-line.
* Otherwise, send stdin instead...
*/
if (argc == 6)
{
print_fd = 0;
copies = 1;
}
else
{
/*
* Try to open the print file...
*/
if ((print_fd = open(argv[6], O_RDONLY)) < 0)
{
_cupsLangPrintError("ERROR", _("Unable to open print file"));
return (CUPS_BACKEND_FAILED);
}
copies = atoi(argv[4]);
}
/*
* Extract the device name and options from the URI...
*/
httpSeparateURI(HTTP_URI_CODING_ALL, cupsBackendDeviceURI(argv),
method, sizeof(method), username, sizeof(username),
hostname, sizeof(hostname), &port,
resource, sizeof(resource));
/*
* See if there are any options...
*/
if ((options = strchr(resource, '?')) != NULL)
{
/*
* Yup, terminate the device name string and move to the first
* character of the options...
*/
*options++ = '\0';
}
/*
* Open the parallel port device...
*/
fputs("STATE: +connecting-to-device\n", stderr);
do
{
#if defined(__linux) || defined(__FreeBSD__)
/*
* The Linux and FreeBSD parallel port drivers currently are broken WRT
* select() and bidirection I/O...
*/
device_fd = open(resource, O_WRONLY | O_EXCL);
use_bc = 0;
#else
if ((device_fd = open(resource, O_RDWR | O_EXCL)) < 0)
{
device_fd = open(resource, O_WRONLY | O_EXCL);
use_bc = 0;
}
else
use_bc = 1;
#endif /* __linux || __FreeBSD__ */
if (device_fd == -1)
{
if (getenv("CLASS") != NULL)
{
/*
* If the CLASS environment variable is set, the job was submitted
* to a class and not to a specific queue. In this case, we want
* to abort immediately so that the job can be requeued on the next
* available printer in the class.
*/
_cupsLangPrintFilter(stderr, "INFO",
_("Unable to contact printer, queuing on next "
"printer in class."));
/*
* Sleep 5 seconds to keep the job from requeuing too rapidly...
*/
sleep(5);
return (CUPS_BACKEND_FAILED);
}
if (errno == EBUSY)
{
_cupsLangPrintFilter(stderr, "INFO",
_("Printer busy; will retry in 30 seconds."));
sleep(30);
}
else if (errno == ENXIO || errno == EIO || errno == ENOENT)
{
_cupsLangPrintFilter(stderr, "INFO",
_("Printer not connected; will retry in 30 "
"seconds."));
sleep(30);
}
else
{
_cupsLangPrintError("ERROR", _("Unable to open device file"));
return (CUPS_BACKEND_FAILED);
}
}
}
while (device_fd < 0);
fputs("STATE: -connecting-to-device\n", stderr);
/*
* Set any options provided...
*/
tcgetattr(device_fd, &opts);
opts.c_lflag &= ~(ICANON | ECHO | ISIG); /* Raw mode */
/**** No options supported yet ****/
tcsetattr(device_fd, TCSANOW, &opts);
/*
* Finally, send the print file...
*/
tbytes = 0;
while (copies > 0 && tbytes >= 0)
{
copies --;
if (print_fd != 0)
{
fputs("PAGE: 1 1\n", stderr);
lseek(print_fd, 0, SEEK_SET);
}
tbytes = backendRunLoop(print_fd, device_fd, -1, NULL, use_bc, 1, side_cb);
if (print_fd != 0 && tbytes >= 0)
_cupsLangPrintFilter(stderr, "INFO", _("Print file sent."));
}
/*
* Close the socket connection and input file and return...
*/
close(device_fd);
if (print_fd != 0)
close(print_fd);
return (CUPS_BACKEND_OK);
}
/*
* 'list_devices()' - List all parallel devices.
*/
static void
list_devices(void)
{
#if defined(__hpux) || defined(__sgi) || defined(__sun)
static char *funky_hex = "0123456789abcdefghijklmnopqrstuvwxyz";
/* Funky hex numbering used for some devices */
#endif /* __hpux || __sgi || __sun */
#ifdef __linux
int i; /* Looping var */
int fd; /* File descriptor */
char device[255], /* Device filename */
basedevice[255], /* Base device filename for ports */
device_id[1024], /* Device ID string */
make_model[1024], /* Make and model */
info[1024], /* Info string */
uri[1024]; /* Device URI */
if (!access("/dev/parallel/", 0))
strcpy(basedevice, "/dev/parallel/");
else if (!access("/dev/printers/", 0))
strcpy(basedevice, "/dev/printers/");
else
strcpy(basedevice, "/dev/lp");
for (i = 0; i < 4; i ++)
{
/*
* Open the port, if available...
*/
sprintf(device, "%s%d", basedevice, i);
if ((fd = open(device, O_RDWR | O_EXCL)) < 0)
fd = open(device, O_WRONLY);
if (fd >= 0)
{
/*
* Now grab the IEEE 1284 device ID string...
*/
snprintf(uri, sizeof(uri), "parallel:%s", device);
if (!backendGetDeviceID(fd, device_id, sizeof(device_id),
make_model, sizeof(make_model),
NULL, uri, sizeof(uri)))
{
snprintf(info, sizeof(info), "%s LPT #%d", make_model, i + 1);
cupsBackendReport("direct", uri, make_model, info, device_id, NULL);
}
else
{
snprintf(info, sizeof(info), "LPT #%d", i + 1);
cupsBackendReport("direct", uri, NULL, info, NULL, NULL);
}
close(fd);
}
}
#elif defined(__sgi)
int i, j, n; /* Looping vars */
char device[255]; /* Device filename */
inventory_t *inv; /* Hardware inventory info */
/*
* IRIX maintains a hardware inventory of most devices...
*/
setinvent();
while ((inv = getinvent()) != NULL)
{
if (inv->inv_class == INV_PARALLEL &&
(inv->inv_type == INV_ONBOARD_PLP ||
inv->inv_type == INV_EPP_ECP_PLP))
{
/*
* Standard parallel port...
*/
puts("direct parallel:/dev/plp \"Unknown\" \"Onboard Parallel Port\"");
}
else if (inv->inv_class == INV_PARALLEL &&
inv->inv_type == INV_EPC_PLP)
{
/*
* EPC parallel port...
*/
printf("direct parallel:/dev/plp%d \"Unknown\" \"Integral EPC parallel port, Ebus slot %d\"\n",
inv->inv_controller, inv->inv_controller);
}
}
endinvent();
/*
* Central Data makes serial and parallel "servers" that can be
* connected in a number of ways. Look for ports...
*/
for (i = 0; i < 10; i ++)
for (j = 0; j < 8; j ++)
for (n = 0; n < 32; n ++)
{
if (i == 8) /* EtherLite */
sprintf(device, "/dev/lpn%d%c", j, funky_hex[n]);
else if (i == 9) /* PCI */
sprintf(device, "/dev/lpp%d%c", j, funky_hex[n]);
else /* SCSI */
sprintf(device, "/dev/lp%d%d%c", i, j, funky_hex[n]);
if (access(device, 0) == 0)
{
if (i == 8)
printf("direct parallel:%s \"Unknown\" \"Central Data EtherLite Parallel Port, ID %d, port %d\"\n",
device, j, n);
else if (i == 9)
printf("direct parallel:%s \"Unknown\" \"Central Data PCI Parallel Port, ID %d, port %d\"\n",
device, j, n);
else
printf("direct parallel:%s \"Unknown\" \"Central Data SCSI Parallel Port, logical bus %d, ID %d, port %d\"\n",
device, i, j, n);
}
}
#elif defined(__sun)
int i, j, n; /* Looping vars */
char device[255]; /* Device filename */
/*
* Standard parallel ports...
*/
for (i = 0; i < 10; i ++)
{
sprintf(device, "/dev/ecpp%d", i);
if (access(device, 0) == 0)
printf("direct parallel:%s \"Unknown\" \"Sun IEEE-1284 Parallel Port #%d\"\n",
device, i + 1);
}
for (i = 0; i < 10; i ++)
{
sprintf(device, "/dev/bpp%d", i);
if (access(device, 0) == 0)
printf("direct parallel:%s \"Unknown\" \"Sun Standard Parallel Port #%d\"\n",
device, i + 1);
}
for (i = 0; i < 3; i ++)
{
sprintf(device, "/dev/lp%d", i);
if (access(device, 0) == 0)
printf("direct parallel:%s \"Unknown\" \"PC Parallel Port #%d\"\n",
device, i + 1);
}
/*
* MAGMA parallel ports...
*/
for (i = 0; i < 40; i ++)
{
sprintf(device, "/dev/pm%02d", i);
if (access(device, 0) == 0)
printf("direct parallel:%s \"Unknown\" \"MAGMA Parallel Board #%d Port #%d\"\n",
device, (i / 10) + 1, (i % 10) + 1);
}
/*
* Central Data parallel ports...
*/
for (i = 0; i < 9; i ++)
for (j = 0; j < 8; j ++)
for (n = 0; n < 32; n ++)
{
if (i == 8) /* EtherLite */
sprintf(device, "/dev/sts/lpN%d%c", j, funky_hex[n]);
else
sprintf(device, "/dev/sts/lp%c%d%c", i + 'C', j,
funky_hex[n]);
if (access(device, 0) == 0)
{
if (i == 8)
printf("direct parallel:%s \"Unknown\" \"Central Data EtherLite Parallel Port, ID %d, port %d\"\n",
device, j, n);
else
printf("direct parallel:%s \"Unknown\" \"Central Data SCSI Parallel Port, logical bus %d, ID %d, port %d\"\n",
device, i, j, n);
}
}
#elif defined(__hpux)
int i, j, n; /* Looping vars */
char device[255]; /* Device filename */
/*
* Standard parallel ports...
*/
if (access("/dev/rlp", 0) == 0)
puts("direct parallel:/dev/rlp \"Unknown\" \"Standard Parallel Port (/dev/rlp)\"");
for (i = 0; i < 7; i ++)
for (j = 0; j < 7; j ++)
{
sprintf(device, "/dev/c%dt%dd0_lp", i, j);
if (access(device, 0) == 0)
printf("direct parallel:%s \"Unknown\" \"Parallel Port #%d,%d\"\n",
device, i, j);
}
/*
* Central Data parallel ports...
*/
for (i = 0; i < 9; i ++)
for (j = 0; j < 8; j ++)
for (n = 0; n < 32; n ++)
{
if (i == 8) /* EtherLite */
sprintf(device, "/dev/lpN%d%c", j, funky_hex[n]);
else
sprintf(device, "/dev/lp%c%d%c", i + 'C', j,
funky_hex[n]);
if (access(device, 0) == 0)
{
if (i == 8)
printf("direct parallel:%s \"Unknown\" \"Central Data EtherLite Parallel Port, ID %d, port %d\"\n",
device, j, n);
else
printf("direct parallel:%s \"Unknown\" \"Central Data SCSI Parallel Port, logical bus %d, ID %d, port %d\"\n",
device, i, j, n);
}
}
#elif defined(__osf__)
int i; /* Looping var */
int fd; /* File descriptor */
char device[255]; /* Device filename */
for (i = 0; i < 3; i ++)
{
sprintf(device, "/dev/lp%d", i);
if ((fd = open(device, O_WRONLY)) >= 0)
{
close(fd);
printf("direct parallel:%s \"Unknown\" \"Parallel Port #%d\"\n", device, i + 1);
}
}
#elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__DragonFly__) || defined(__FreeBSD_kernel__)
int i; /* Looping var */
int fd; /* File descriptor */
char device[255]; /* Device filename */
for (i = 0; i < 3; i ++)
{
sprintf(device, "/dev/lpt%d", i);
if ((fd = open(device, O_WRONLY)) >= 0)
{
close(fd);
printf("direct parallel:%s \"Unknown\" \"Parallel Port #%d (interrupt-driven)\"\n", device, i + 1);
}
sprintf(device, "/dev/lpa%d", i);
if ((fd = open(device, O_WRONLY)) >= 0)
{
close(fd);
printf("direct parallel:%s \"Unknown\" \"Parallel Port #%d (polled)\"\n", device, i + 1);
}
}
#elif defined(_AIX)
int i; /* Looping var */
int fd; /* File descriptor */
char device[255]; /* Device filename */
for (i = 0; i < 8; i ++)
{
sprintf(device, "/dev/lp%d", i);
if ((fd = open(device, O_WRONLY)) >= 0)
{
close(fd);
printf("direct parallel:%s \"Unknown\" \"Parallel Port #%d\"\n", device, i + 1);
}
}
#endif
}
/*
* 'side_cb()' - Handle side-channel requests...
*/
static int /* O - 0 on success, -1 on error */
side_cb(int print_fd, /* I - Print file */
int device_fd, /* I - Device file */
int snmp_fd, /* I - SNMP socket (unused) */
http_addr_t *addr, /* I - Device address (unused) */
int use_bc) /* I - Using back-channel? */
{
cups_sc_command_t command; /* Request command */
cups_sc_status_t status; /* Request/response status */
char data[2048]; /* Request/response data */
int datalen; /* Request/response data size */
(void)snmp_fd;
(void)addr;
datalen = sizeof(data);
if (cupsSideChannelRead(&command, &status, data, &datalen, 1.0))
return (-1);
switch (command)
{
case CUPS_SC_CMD_DRAIN_OUTPUT :
if (backendDrainOutput(print_fd, device_fd))
status = CUPS_SC_STATUS_IO_ERROR;
else if (tcdrain(device_fd))
status = CUPS_SC_STATUS_IO_ERROR;
else
status = CUPS_SC_STATUS_OK;
datalen = 0;
break;
case CUPS_SC_CMD_GET_BIDI :
status = CUPS_SC_STATUS_OK;
data[0] = use_bc;
datalen = 1;
break;
case CUPS_SC_CMD_GET_DEVICE_ID :
memset(data, 0, sizeof(data));
if (backendGetDeviceID(device_fd, data, sizeof(data) - 1,
NULL, 0, NULL, NULL, 0))
{
status = CUPS_SC_STATUS_NOT_IMPLEMENTED;
datalen = 0;
}
else
{
status = CUPS_SC_STATUS_OK;
datalen = strlen(data);
}
break;
default :
status = CUPS_SC_STATUS_NOT_IMPLEMENTED;
datalen = 0;
break;
}
return (cupsSideChannelWrite(command, status, data, datalen, 1.0));
}
/*
* End of "$Id$".
*/
+1327
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+5 -24
Ver Arquivo
@@ -3,7 +3,7 @@
*
* Backend test program for CUPS.
*
* Copyright 2007-2012 by Apple Inc.
* Copyright 2007-2010 by Apple Inc.
* Copyright 1997-2005 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
@@ -47,7 +47,7 @@ static int job_canceled = 0;
*/
static void sigterm_handler(int sig);
static void usage(void) __attribute__((noreturn));
static void usage(void);
static void walk_cb(const char *oid, const char *data, int datalen,
void *context);
@@ -57,7 +57,7 @@ static void walk_cb(const char *oid, const char *data, int datalen,
*
* Usage:
*
* testbackend [-s] [-t] device-uri job-id user title copies options [file]
* betest [-s] [-t] device-uri job-id user title copies options [file]
*/
int /* O - Exit status */
@@ -75,9 +75,7 @@ main(int argc, /* I - Number of command-line args */
const char *oid = ".1.3.6.1.2.1.43.10.2.1.4.1.1";
/* OID to lookup or walk */
char scheme[255], /* Scheme in URI == backend */
backend[1024], /* Backend path */
libpath[1024], /* Path for libcups */
*ptr; /* Pointer into path */
backend[1024]; /* Backend path */
const char *serverbin; /* CUPS_SERVERBIN environment variable */
int fd, /* Temporary file descriptor */
back_fds[2], /* Back-channel pipe */
@@ -89,23 +87,6 @@ main(int argc, /* I - Number of command-line args */
status; /* Exit status */
/*
* Get the current directory and point the run-time linker at the "cups"
* subdirectory...
*/
if (getcwd(libpath, sizeof(libpath)) &&
(ptr = strrchr(libpath, '/')) != NULL && !strcmp(ptr, "/backend"))
{
strlcpy(ptr, "/cups", sizeof(libpath) - (ptr - libpath));
if (access(libpath, 0))
#ifdef __APPLE__
setenv("DYLD_LIBRARY_PATH", libpath, 1);
#else
setenv("LD_LIBRARY_PATH", libpath, 1);
#endif /* __APPLE__ */
}
/*
* See if we have side-channel tests to do...
*/
@@ -588,7 +569,7 @@ main(int argc, /* I - Number of command-line args */
kill(data_pid, SIGTERM);
kill(back_pid, SIGTERM);
}
while ((pid = wait(&status)) > 0)
{
if (status)
+34 -28
Ver Arquivo
@@ -1,28 +1,34 @@
lpc.o: lpc.c ../cups/cups-private.h ../cups/cups.h ../cups/file.h \
../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/language.h ../cups/string-private.h ../config.h \
../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h \
../cups/pwg-private.h ../cups/http-private.h ../cups/md5-private.h \
../cups/ipp-private.h ../cups/language-private.h ../cups/transcode.h \
../cups/thread-private.h
lpq.o: lpq.c ../cups/cups-private.h ../cups/cups.h ../cups/file.h \
../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/language.h ../cups/string-private.h ../config.h \
../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h \
../cups/pwg-private.h ../cups/http-private.h ../cups/md5-private.h \
../cups/ipp-private.h ../cups/language-private.h ../cups/transcode.h \
../cups/thread-private.h
lpr.o: lpr.c ../cups/cups-private.h ../cups/cups.h ../cups/file.h \
../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/language.h ../cups/string-private.h ../config.h \
../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h \
../cups/pwg-private.h ../cups/http-private.h ../cups/md5-private.h \
../cups/ipp-private.h ../cups/language-private.h ../cups/transcode.h \
../cups/thread-private.h
lprm.o: lprm.c ../cups/cups-private.h ../cups/cups.h ../cups/file.h \
../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/language.h ../cups/string-private.h ../config.h \
../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h \
../cups/pwg-private.h ../cups/http-private.h ../cups/md5-private.h \
../cups/ipp-private.h ../cups/language-private.h ../cups/transcode.h \
../cups/thread-private.h
# DO NOT DELETE THIS LINE -- make depend depends on it.
lpc.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
lpc.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
lpc.o: ../cups/language.h ../cups/string-private.h ../config.h
lpc.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
lpc.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
lpc.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
lpc.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
lpc.o: ../cups/thread-private.h
lpq.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
lpq.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
lpq.o: ../cups/language.h ../cups/string-private.h ../config.h
lpq.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
lpq.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
lpq.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
lpq.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
lpq.o: ../cups/thread-private.h
lpr.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
lpr.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
lpr.o: ../cups/language.h ../cups/string-private.h ../config.h
lpr.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
lpr.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
lpr.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
lpr.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
lpr.o: ../cups/thread-private.h
lprm.o: ../cups/cups-private.h ../cups/cups.h ../cups/file.h
lprm.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
lprm.o: ../cups/language.h ../cups/string-private.h ../config.h
lprm.o: ../cups/debug-private.h ../cups/ppd-private.h ../cups/ppd.h
lprm.o: ../cups/cups.h ../cups/pwg-private.h ../cups/http-private.h
lprm.o: ../cups/http.h ../cups/md5-private.h ../cups/ipp-private.h
lprm.o: ../cups/ipp.h ../cups/language-private.h ../cups/transcode.h
lprm.o: ../cups/thread-private.h
+2 -2
Ver Arquivo
@@ -3,7 +3,7 @@
#
# Berkeley commands makefile for CUPS.
#
# Copyright 2007-2012 by Apple Inc.
# Copyright 2007-2011 by Apple Inc.
# Copyright 1997-2006 by Easy Software Products, all rights reserved.
#
# These coded instructions, statements, and computer programs are the
@@ -54,7 +54,7 @@ clean:
#
depend:
$(CC) -MM $(ALL_CFLAGS) $(OBJS:.o=.c) >Dependencies
makedepend -Y -I.. -fDependencies $(OBJS:.o=.c) >/dev/null 2>&1
#
+1 -1
Ver Arquivo
@@ -39,7 +39,7 @@ static http_t *connect_server(const char *, http_t *);
static int show_jobs(const char *, http_t *, const char *,
const char *, const int, const int);
static void show_printer(const char *, http_t *, const char *);
static void usage(void) __attribute__((noreturn));
static void usage(void);
/*
+75 -73
Ver Arquivo
@@ -1,73 +1,75 @@
help-index.o: help-index.c cgi-private.h cgi.h ../cups/cups.h \
../cups/file.h ../cups/versioning.h ../cups/ipp.h ../cups/http.h \
../cups/array.h ../cups/language.h help-index.h \
../cups/debug-private.h ../cups/language-private.h ../cups/transcode.h \
../cups/string-private.h ../config.h ../cups/ipp-private.h \
../cups/dir.h
html.o: html.c cgi-private.h cgi.h ../cups/cups.h ../cups/file.h \
../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/language.h help-index.h ../cups/debug-private.h \
../cups/language-private.h ../cups/transcode.h \
../cups/string-private.h ../config.h ../cups/ipp-private.h
ipp-var.o: ipp-var.c cgi-private.h cgi.h ../cups/cups.h ../cups/file.h \
../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/language.h help-index.h ../cups/debug-private.h \
../cups/language-private.h ../cups/transcode.h \
../cups/string-private.h ../config.h ../cups/ipp-private.h
search.o: search.c cgi-private.h cgi.h ../cups/cups.h ../cups/file.h \
../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/language.h help-index.h ../cups/debug-private.h \
../cups/language-private.h ../cups/transcode.h \
../cups/string-private.h ../config.h ../cups/ipp-private.h
template.o: template.c cgi-private.h cgi.h ../cups/cups.h ../cups/file.h \
../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/language.h help-index.h ../cups/debug-private.h \
../cups/language-private.h ../cups/transcode.h \
../cups/string-private.h ../config.h ../cups/ipp-private.h
var.o: var.c cgi-private.h cgi.h ../cups/cups.h ../cups/file.h \
../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/language.h help-index.h ../cups/debug-private.h \
../cups/language-private.h ../cups/transcode.h \
../cups/string-private.h ../config.h ../cups/ipp-private.h \
../cups/md5-private.h
admin.o: admin.c cgi-private.h cgi.h ../cups/cups.h ../cups/file.h \
../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/language.h help-index.h ../cups/debug-private.h \
../cups/language-private.h ../cups/transcode.h \
../cups/string-private.h ../config.h ../cups/ipp-private.h \
../cups/adminutil.h ../cups/ppd.h
classes.o: classes.c cgi-private.h cgi.h ../cups/cups.h ../cups/file.h \
../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/language.h help-index.h ../cups/debug-private.h \
../cups/language-private.h ../cups/transcode.h \
../cups/string-private.h ../config.h ../cups/ipp-private.h
help.o: help.c cgi-private.h cgi.h ../cups/cups.h ../cups/file.h \
../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/language.h help-index.h ../cups/debug-private.h \
../cups/language-private.h ../cups/transcode.h \
../cups/string-private.h ../config.h ../cups/ipp-private.h
jobs.o: jobs.c cgi-private.h cgi.h ../cups/cups.h ../cups/file.h \
../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/language.h help-index.h ../cups/debug-private.h \
../cups/language-private.h ../cups/transcode.h \
../cups/string-private.h ../config.h ../cups/ipp-private.h
makedocset.o: makedocset.c cgi.h ../cups/cups.h ../cups/file.h \
../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/language.h help-index.h
printers.o: printers.c cgi-private.h cgi.h ../cups/cups.h ../cups/file.h \
../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/language.h help-index.h ../cups/debug-private.h \
../cups/language-private.h ../cups/transcode.h \
../cups/string-private.h ../config.h ../cups/ipp-private.h
testcgi.o: testcgi.c cgi.h ../cups/cups.h ../cups/file.h \
../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/language.h help-index.h
testhi.o: testhi.c cgi.h ../cups/cups.h ../cups/file.h \
../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/language.h help-index.h
testtemplate.o: testtemplate.c cgi.h ../cups/cups.h ../cups/file.h \
../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/language.h help-index.h
websearch.o: websearch.c cgi.h ../cups/cups.h ../cups/file.h \
../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/language.h help-index.h
# DO NOT DELETE
help-index.o: cgi-private.h cgi.h ../cups/cups.h ../cups/file.h
help-index.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h
help-index.o: ../cups/array.h ../cups/language.h ../cups/array.h help-index.h
help-index.o: ../cups/debug-private.h ../cups/language-private.h
help-index.o: ../cups/transcode.h ../cups/string-private.h ../config.h
help-index.o: ../cups/dir.h
html.o: cgi-private.h cgi.h ../cups/cups.h ../cups/file.h
html.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
html.o: ../cups/language.h ../cups/array.h help-index.h
html.o: ../cups/debug-private.h ../cups/language-private.h
html.o: ../cups/transcode.h ../cups/string-private.h ../config.h
ipp-var.o: cgi-private.h cgi.h ../cups/cups.h ../cups/file.h
ipp-var.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
ipp-var.o: ../cups/language.h ../cups/array.h help-index.h
ipp-var.o: ../cups/debug-private.h ../cups/language-private.h
ipp-var.o: ../cups/transcode.h ../cups/string-private.h ../config.h
search.o: cgi-private.h cgi.h ../cups/cups.h ../cups/file.h
search.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
search.o: ../cups/language.h ../cups/array.h help-index.h
search.o: ../cups/debug-private.h ../cups/language-private.h
search.o: ../cups/transcode.h ../cups/string-private.h ../config.h
template.o: cgi-private.h cgi.h ../cups/cups.h ../cups/file.h
template.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
template.o: ../cups/language.h ../cups/array.h help-index.h
template.o: ../cups/debug-private.h ../cups/language-private.h
template.o: ../cups/transcode.h ../cups/string-private.h ../config.h
var.o: cgi-private.h cgi.h ../cups/cups.h ../cups/file.h ../cups/versioning.h
var.o: ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/language.h
var.o: ../cups/array.h help-index.h ../cups/debug-private.h
var.o: ../cups/language-private.h ../cups/transcode.h
var.o: ../cups/string-private.h ../config.h ../cups/http.h
var.o: ../cups/md5-private.h
admin.o: cgi-private.h cgi.h ../cups/cups.h ../cups/file.h
admin.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
admin.o: ../cups/language.h ../cups/array.h help-index.h
admin.o: ../cups/debug-private.h ../cups/language-private.h
admin.o: ../cups/transcode.h ../cups/string-private.h ../config.h
admin.o: ../cups/adminutil.h ../cups/cups.h ../cups/ppd.h
classes.o: cgi-private.h cgi.h ../cups/cups.h ../cups/file.h
classes.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
classes.o: ../cups/language.h ../cups/array.h help-index.h
classes.o: ../cups/debug-private.h ../cups/language-private.h
classes.o: ../cups/transcode.h ../cups/string-private.h ../config.h
help.o: cgi-private.h cgi.h ../cups/cups.h ../cups/file.h
help.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
help.o: ../cups/language.h ../cups/array.h help-index.h
help.o: ../cups/debug-private.h ../cups/language-private.h
help.o: ../cups/transcode.h ../cups/string-private.h ../config.h
jobs.o: cgi-private.h cgi.h ../cups/cups.h ../cups/file.h
jobs.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
jobs.o: ../cups/language.h ../cups/array.h help-index.h
jobs.o: ../cups/debug-private.h ../cups/language-private.h
jobs.o: ../cups/transcode.h ../cups/string-private.h ../config.h
makedocset.o: cgi.h ../cups/cups.h ../cups/file.h ../cups/versioning.h
makedocset.o: ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/language.h
makedocset.o: ../cups/array.h help-index.h
printers.o: cgi-private.h cgi.h ../cups/cups.h ../cups/file.h
printers.o: ../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h
printers.o: ../cups/language.h ../cups/array.h help-index.h
printers.o: ../cups/debug-private.h ../cups/language-private.h
printers.o: ../cups/transcode.h ../cups/string-private.h ../config.h
testcgi.o: cgi.h ../cups/cups.h ../cups/file.h ../cups/versioning.h
testcgi.o: ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/language.h
testcgi.o: ../cups/array.h help-index.h
testhi.o: cgi.h ../cups/cups.h ../cups/file.h ../cups/versioning.h
testhi.o: ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/language.h
testhi.o: ../cups/array.h help-index.h
testtemplate.o: cgi.h ../cups/cups.h ../cups/file.h ../cups/versioning.h
testtemplate.o: ../cups/ipp.h ../cups/http.h ../cups/array.h
testtemplate.o: ../cups/language.h ../cups/array.h help-index.h
websearch.o: cgi.h ../cups/cups.h ../cups/file.h ../cups/versioning.h
websearch.o: ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/language.h
websearch.o: ../cups/array.h help-index.h
+2 -2
Ver Arquivo
@@ -3,7 +3,7 @@
#
# CGI makefile for CUPS.
#
# Copyright 2007-2012 by Apple Inc.
# Copyright 2007-2010 by Apple Inc.
# Copyright 1997-2006 by Easy Software Products.
#
# These coded instructions, statements, and computer programs are the
@@ -90,7 +90,7 @@ clean:
#
depend:
$(CC) -MM $(ALL_CFLAGS) $(OBJS:.o=.c) >Dependencies
makedepend -Y -I.. -fDependencies $(OBJS:.o=.c) >/dev/null 2>&1
#
+147 -6
Ver Arquivo
@@ -586,7 +586,8 @@ do_am_class(http_t *http, /* I - HTTP connection */
ippAddInteger(request, IPP_TAG_OPERATION, IPP_TAG_ENUM, "printer-type",
CUPS_PRINTER_LOCAL);
ippAddInteger(request, IPP_TAG_OPERATION, IPP_TAG_ENUM, "printer-type-mask",
CUPS_PRINTER_CLASS | CUPS_PRINTER_REMOTE);
CUPS_PRINTER_CLASS | CUPS_PRINTER_REMOTE |
CUPS_PRINTER_IMPLICIT);
/*
* Do the request and get back a response...
@@ -1559,6 +1560,8 @@ do_config_server(http_t *http) /* I - HTTP connection */
const char *debug_logging, /* DEBUG_LOGGING value */
*remote_admin, /* REMOTE_ADMIN value */
*remote_any, /* REMOTE_ANY value */
*remote_printers,
/* REMOTE_PRINTERS value */
*share_printers,/* SHARE_PRINTERS value */
*user_cancel_any,
/* USER_CANCEL_ANY value */
@@ -1574,6 +1577,10 @@ do_config_server(http_t *http) /* I - HTTP connection */
/* MaxJobs value */
*max_log_size = NULL;
/* MaxLogSize value */
char local_protocols[255],
/* BrowseLocalProtocols */
remote_protocols[255];
/* BrowseRemoteProtocols */
const char *current_browse_web_if,
/* BrowseWebIF value */
*current_preserve_job_history,
@@ -1584,8 +1591,12 @@ do_config_server(http_t *http) /* I - HTTP connection */
/* MaxClients value */
*current_max_jobs,
/* MaxJobs value */
*current_max_log_size;
*current_max_log_size,
/* MaxLogSize value */
*current_local_protocols,
/* BrowseLocalProtocols */
*current_remote_protocols;
/* BrowseRemoteProtocols */
#ifdef HAVE_GSSAPI
char default_auth_type[255];
/* DefaultAuthType value */
@@ -1600,6 +1611,7 @@ do_config_server(http_t *http) /* I - HTTP connection */
debug_logging = cgiGetVariable("DEBUG_LOGGING") ? "1" : "0";
remote_admin = cgiGetVariable("REMOTE_ADMIN") ? "1" : "0";
remote_any = cgiGetVariable("REMOTE_ANY") ? "1" : "0";
remote_printers = cgiGetVariable("REMOTE_PRINTERS") ? "1" : "0";
share_printers = cgiGetVariable("SHARE_PRINTERS") ? "1" : "0";
user_cancel_any = cgiGetVariable("USER_CANCEL_ANY") ? "1" : "0";
@@ -1625,6 +1637,66 @@ do_config_server(http_t *http) /* I - HTTP connection */
if (!max_log_size || atof(max_log_size) <= 0.0)
max_log_size = "1m";
if (cgiGetVariable("BROWSE_LOCAL_CUPS"))
strcpy(local_protocols, "cups");
else
local_protocols[0] = '\0';
#ifdef HAVE_DNSSD
if (cgiGetVariable("BROWSE_LOCAL_DNSSD"))
{
if (local_protocols[0])
strcat(local_protocols, " dnssd");
else
strcat(local_protocols, "dnssd");
}
#endif /* HAVE_DNSSD */
#ifdef HAVE_LDAP
if (cgiGetVariable("BROWSE_LOCAL_LDAP"))
{
if (local_protocols[0])
strcat(local_protocols, " ldap");
else
strcat(local_protocols, "ldap");
}
#endif /* HAVE_LDAP */
#ifdef HAVE_LIBSLP
if (cgiGetVariable("BROWSE_LOCAL_SLP"))
{
if (local_protocols[0])
strcat(local_protocols, " slp");
else
strcat(local_protocols, "slp");
}
#endif /* HAVE_SLP */
if (cgiGetVariable("BROWSE_REMOTE_CUPS"))
strcpy(remote_protocols, "cups");
else
remote_protocols[0] = '\0';
#ifdef HAVE_LDAP
if (cgiGetVariable("BROWSE_REMOTE_LDAP"))
{
if (remote_protocols[0])
strcat(remote_protocols, " ldap");
else
strcat(remote_protocols, "ldap");
}
#endif /* HAVE_LDAP */
#ifdef HAVE_LIBSLP
if (cgiGetVariable("BROWSE_REMOTE_SLP"))
{
if (remote_protocols[0])
strcat(remote_protocols, " slp");
else
strcat(remote_protocols, "slp");
}
#endif /* HAVE_SLP */
}
/*
@@ -1688,6 +1760,16 @@ do_config_server(http_t *http) /* I - HTTP connection */
settings)) == NULL)
current_max_log_size = "1m";
if ((current_local_protocols = cupsGetOption("BrowseLocalProtocols",
num_settings,
settings)) == NULL)
current_local_protocols = CUPS_DEFAULT_BROWSE_LOCAL_PROTOCOLS;
if ((current_remote_protocols = cupsGetOption("BrowseRemoteProtocols",
num_settings,
settings)) == NULL)
current_remote_protocols = CUPS_DEFAULT_BROWSE_REMOTE_PROTOCOLS;
/*
* See if the settings have changed...
*/
@@ -1698,6 +1780,8 @@ do_config_server(http_t *http) /* I - HTTP connection */
num_settings, settings)) ||
strcmp(remote_any, cupsGetOption(CUPS_SERVER_REMOTE_ANY,
num_settings, settings)) ||
strcmp(remote_printers, cupsGetOption(CUPS_SERVER_REMOTE_PRINTERS,
num_settings, settings)) ||
strcmp(share_printers, cupsGetOption(CUPS_SERVER_SHARE_PRINTERS,
num_settings, settings)) ||
#ifdef HAVE_GSSAPI
@@ -1709,7 +1793,9 @@ do_config_server(http_t *http) /* I - HTTP connection */
num_settings, settings));
if (advanced && !changed)
changed = _cups_strcasecmp(browse_web_if, current_browse_web_if) ||
changed = _cups_strcasecmp(local_protocols, current_local_protocols) ||
_cups_strcasecmp(remote_protocols, current_remote_protocols) ||
_cups_strcasecmp(browse_web_if, current_browse_web_if) ||
_cups_strcasecmp(preserve_job_history, current_preserve_job_history) ||
_cups_strcasecmp(preserve_job_files, current_preserve_job_files) ||
_cups_strcasecmp(max_clients, current_max_clients) ||
@@ -1731,6 +1817,8 @@ do_config_server(http_t *http) /* I - HTTP connection */
remote_admin, num_settings, &settings);
num_settings = cupsAddOption(CUPS_SERVER_REMOTE_ANY,
remote_any, num_settings, &settings);
num_settings = cupsAddOption(CUPS_SERVER_REMOTE_PRINTERS,
remote_printers, num_settings, &settings);
num_settings = cupsAddOption(CUPS_SERVER_SHARE_PRINTERS,
share_printers, num_settings, &settings);
num_settings = cupsAddOption(CUPS_SERVER_USER_CANCEL_ANY,
@@ -1746,6 +1834,12 @@ do_config_server(http_t *http) /* I - HTTP connection */
* Add advanced settings...
*/
if (_cups_strcasecmp(local_protocols, current_local_protocols))
num_settings = cupsAddOption("BrowseLocalProtocols", local_protocols,
num_settings, &settings);
if (_cups_strcasecmp(remote_protocols, current_remote_protocols))
num_settings = cupsAddOption("BrowseRemoteProtocols", remote_protocols,
num_settings, &settings);
if (_cups_strcasecmp(browse_web_if, current_browse_web_if))
num_settings = cupsAddOption("BrowseWebIF", browse_web_if,
num_settings, &settings);
@@ -1784,8 +1878,7 @@ do_config_server(http_t *http) /* I - HTTP connection */
else
{
if (advanced)
cgiSetVariable("refresh_page", "5;URL=/admin/?OP=redirect&"
"URL=/admin/?ADVANCEDSETTINGS=YES");
cgiSetVariable("refresh_page", "5;URL=/admin/?OP=redirect&URL=/admin/?ADVANCEDSETTINGS=YES");
else
cgiSetVariable("refresh_page", "5;URL=/admin/?OP=redirect");
cgiStartHTML(cgiText(_("Change Settings")));
@@ -2266,7 +2359,8 @@ do_export(http_t *http) /* I - HTTP connection */
"printer-type", 0);
ippAddInteger(request, IPP_TAG_OPERATION, IPP_TAG_ENUM,
"printer-type-mask", CUPS_PRINTER_CLASS | CUPS_PRINTER_REMOTE);
"printer-type-mask", CUPS_PRINTER_CLASS | CUPS_PRINTER_REMOTE |
CUPS_PRINTER_IMPLICIT);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_KEYWORD,
"requested-attributes", NULL, "printer-name");
@@ -2602,6 +2696,10 @@ do_menu(http_t *http) /* I - HTTP connection */
settings)) != NULL && atoi(val))
cgiSetVariable("REMOTE_ANY", "CHECKED");
if ((val = cupsGetOption(CUPS_SERVER_REMOTE_PRINTERS, num_settings,
settings)) != NULL && atoi(val))
cgiSetVariable("REMOTE_PRINTERS", "CHECKED");
if ((val = cupsGetOption(CUPS_SERVER_SHARE_PRINTERS, num_settings,
settings)) != NULL && atoi(val))
cgiSetVariable("SHARE_PRINTERS", "CHECKED");
@@ -2624,6 +2722,49 @@ do_menu(http_t *http) /* I - HTTP connection */
cgiSetVariable("HAVE_DNSSD", "1");
#endif /* HAVE_DNSSD */
#ifdef HAVE_LDAP
cgiSetVariable("HAVE_LDAP", "1");
#endif /* HAVE_LDAP */
#ifdef HAVE_LIBSLP
cgiSetVariable("HAVE_LIBSLP", "1");
#endif /* HAVE_LIBSLP */
if ((val = cupsGetOption("BrowseRemoteProtocols", num_settings,
settings)) == NULL)
if ((val = cupsGetOption("BrowseProtocols", num_settings,
settings)) == NULL)
val = CUPS_DEFAULT_BROWSE_REMOTE_PROTOCOLS;
if (strstr(val, "cups") || strstr(val, "CUPS"))
cgiSetVariable("BROWSE_REMOTE_CUPS", "CHECKED");
if (strstr(val, "ldap") || strstr(val, "LDAP"))
cgiSetVariable("BROWSE_REMOTE_LDAP", "CHECKED");
if (strstr(val, "slp") || strstr(val, "SLP"))
cgiSetVariable("BROWSE_REMOTE_SLP", "CHECKED");
if ((val = cupsGetOption("BrowseLocalProtocols", num_settings,
settings)) == NULL)
if ((val = cupsGetOption("BrowseProtocols", num_settings,
settings)) == NULL)
val = CUPS_DEFAULT_BROWSE_LOCAL_PROTOCOLS;
if (strstr(val, "cups") || strstr(val, "CUPS"))
cgiSetVariable("BROWSE_LOCAL_CUPS", "CHECKED");
if (strstr(val, "dnssd") || strstr(val, "DNSSD") ||
strstr(val, "dns-sd") || strstr(val, "DNS-SD") ||
strstr(val, "bonjour") || strstr(val, "BONJOUR"))
cgiSetVariable("BROWSE_LOCAL_DNSSD", "CHECKED");
if (strstr(val, "ldap") || strstr(val, "LDAP"))
cgiSetVariable("BROWSE_LOCAL_LDAP", "CHECKED");
if (strstr(val, "slp") || strstr(val, "SLP"))
cgiSetVariable("BROWSE_LOCAL_SLP", "CHECKED");
if ((val = cupsGetOption("BrowseWebIF", num_settings,
settings)) == NULL)
val = "No";
+1 -2
Ver Arquivo
@@ -3,7 +3,7 @@
*
* Private CGI definitions for CUPS.
*
* Copyright 2007-2011 by Apple Inc.
* Copyright 2007-2010 by Apple Inc.
* Copyright 1997-2006 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
@@ -21,7 +21,6 @@
#include <cups/debug-private.h>
#include <cups/language-private.h>
#include <cups/string-private.h>
#include <cups/ipp-private.h> /* TODO: Update so we don't need this */
/*
+30 -27
Ver Arquivo
@@ -161,8 +161,7 @@ static int help_load_file(help_index_t *hi,
static help_node_t *help_new_node(const char *filename, const char *anchor,
const char *section, const char *text,
time_t mtime, off_t offset,
size_t length)
__attribute__((nonnull(1,3,4)));
size_t length);
static int help_sort_by_name(help_node_t *p1, help_node_t *p2);
static int help_sort_by_score(help_node_t *p1, help_node_t *p2);
static int help_sort_words(help_word_t *w1, help_word_t *w2);
@@ -178,7 +177,7 @@ helpDeleteIndex(help_index_t *hi) /* I - Help index */
help_node_t *node; /* Current node */
DEBUG_printf(("helpDeleteIndex(hi=%p)", hi));
DEBUG_printf(("helpDeleteIndex(hi=%p)\n", hi));
if (!hi)
return;
@@ -210,8 +209,8 @@ helpFindNode(help_index_t *hi, /* I - Index */
help_node_t key; /* Search key */
DEBUG_printf(("helpFindNode(hi=%p, filename=\"%s\", anchor=\"%s\")",
hi, filename, anchor));
DEBUG_printf(("helpFindNode(hi=%p, filename=\"%s\", anchor=\"%s\")\n",
hi, filename ? filename : "(nil)", anchor ? anchor : "(nil)"));
/*
* Range check input...
@@ -260,7 +259,7 @@ helpLoadIndex(const char *hifile, /* I - Index filename */
help_word_t *word; /* Current word */
DEBUG_printf(("helpLoadIndex(hifile=\"%s\", directory=\"%s\")",
DEBUG_printf(("helpLoadIndex(hifile=\"%s\", directory=\"%s\")\n",
hifile, directory));
/*
@@ -465,7 +464,7 @@ helpSaveIndex(help_index_t *hi, /* I - Index */
help_word_t *word; /* Current word */
DEBUG_printf(("helpSaveIndex(hi=%p, hifile=\"%s\")", hi, hifile));
DEBUG_printf(("helpSaveIndex(hi=%p, hifile=\"%s\")\n", hi, hifile));
/*
* Try creating a new index file...
@@ -546,8 +545,9 @@ helpSearchIndex(help_index_t *hi, /* I - Index */
int matches; /* Number of matches */
DEBUG_printf(("helpSearchIndex(hi=%p, query=\"%s\", filename=\"%s\")",
hi, query, filename));
DEBUG_printf(("helpSearchIndex(hi=%p, query=\"%s\", filename=\"%s\")\n",
hi, query ? query : "(nil)",
filename ? filename : "(nil)"));
/*
* Range check...
@@ -670,7 +670,7 @@ help_add_word(help_node_t *n, /* I - Node */
key; /* Search key */
DEBUG_printf(("2help_add_word(n=%p, text=\"%s\")", n, text));
DEBUG_printf(("help_add_word(n=%p, text=\"%s\")\n", n, text));
/*
* Create the words array as needed...
@@ -723,7 +723,7 @@ help_delete_node(help_node_t *n) /* I - Node */
help_word_t *w; /* Current word */
DEBUG_printf(("2help_delete_node(n=%p)", n));
DEBUG_printf(("help_delete_node(n=%p)\n", n));
if (!n)
return;
@@ -758,7 +758,7 @@ help_delete_node(help_node_t *n) /* I - Node */
static void
help_delete_word(help_word_t *w) /* I - Word */
{
DEBUG_printf(("2help_delete_word(w=%p)", w));
DEBUG_printf(("help_delete_word(w=%p)\n", w));
if (!w)
return;
@@ -789,8 +789,8 @@ help_load_directory(
help_node_t *node; /* Current node */
DEBUG_printf(("2help_load_directory(hi=%p, directory=\"%s\", relative=\"%s\")",
hi, directory, relative));
DEBUG_printf(("help_load_directory(hi=%p, directory=\"%s\", relative=\"%s\")\n",
hi, directory ? directory : "(nil)", relative ? relative : "(nil)"));
/*
* Open the directory and scan it...
@@ -901,8 +901,9 @@ help_load_file(
int wordlen; /* Length of word */
DEBUG_printf(("2help_load_file(hi=%p, filename=\"%s\", relative=\"%s\", "
"mtime=%ld)", hi, filename, relative, mtime));
DEBUG_printf(("help_load_file(hi=%p, filename=\"%s\", relative=\"%s\", mtime=%ld)\n",
hi, filename ? filename : "(nil)",
relative ? relative : "(nil)", mtime));
if ((fp = cupsFileOpen(filename, "r")) == NULL)
return (-1);
@@ -1228,9 +1229,11 @@ help_new_node(const char *filename, /* I - Filename */
help_node_t *n; /* Node */
DEBUG_printf(("2help_new_node(filename=\"%s\", anchor=\"%s\", text=\"%s\", "
"mtime=%ld, offset=%ld, length=%ld)", filename, anchor, text,
(long)mtime, (long)offset, (long)length));
DEBUG_printf(("help_new_node(filename=\"%s\", anchor=\"%s\", text=\"%s\", "
"mtime=%ld, offset=%ld, length=%ld)\n",
filename ? filename : "(nil)", anchor ? anchor : "(nil)",
text ? text : "(nil)", (long)mtime, (long)offset,
(long)length));
n = (help_node_t *)calloc(1, sizeof(help_node_t));
if (!n)
@@ -1259,9 +1262,9 @@ help_sort_by_name(help_node_t *n1, /* I - First node */
int diff; /* Difference */
DEBUG_printf(("2help_sort_by_name(n1=%p(%s#%s), n2=%p(%s#%s)",
n1, n1->filename, n1->anchor,
n2, n2->filename, n2->anchor));
DEBUG_printf(("help_sort_by_name(n1=%p(%s#%s), n2=%p(%s#%s)\n",
n1, n1->filename, n1->anchor ? n1->anchor : "",
n2, n2->filename, n2->anchor ? n2->anchor : ""));
if ((diff = strcmp(n1->filename, n2->filename)) != 0)
return (diff);
@@ -1288,10 +1291,10 @@ help_sort_by_score(help_node_t *n1, /* I - First node */
int diff; /* Difference */
DEBUG_printf(("2help_sort_by_score(n1=%p(%d \"%s\" \"%s\"), "
"n2=%p(%d \"%s\" \"%s\")",
n1, n1->score, n1->section, n1->text,
n2, n2->score, n2->section, n2->text));
DEBUG_printf(("help_sort_by_score(n1=%p(%d \"%s\" \"%s\"), "
"n2=%p(%d \"%s\" \"%s\")\n",
n1, n1->score, n1->section ? n1->section : "", n1->text,
n2, n2->score, n2->section ? n2->section : "", n2->text));
if (n1->score != n2->score)
return (n2->score - n1->score);
@@ -1316,7 +1319,7 @@ static int /* O - Difference */
help_sort_words(help_word_t *w1, /* I - Second word */
help_word_t *w2) /* I - Second word */
{
DEBUG_printf(("2help_sort_words(w1=%p(\"%s\"), w2=%p(\"%s\"))",
DEBUG_printf(("help_sort_words(w1=%p(\"%s\"), w2=%p(\"%s\"))\n",
w1, w1->text, w2, w2->text));
return (_cups_strcasecmp(w1->text, w2->text));
+38
Ver Arquivo
@@ -38,13 +38,51 @@
# PostScript filters
#
@DEFAULT_PDFTOPS@application/pdf application/vnd.cups-postscript 66 pdftops
application/postscript application/vnd.cups-postscript 66 pstops
@DEFAULT_TEXTTOPS@application/x-cshell application/postscript 33 texttops
@DEFAULT_TEXTTOPS@application/x-csource application/postscript 33 texttops
@DEFAULT_TEXTTOPS@application/x-perl application/postscript 33 texttops
@DEFAULT_TEXTTOPS@application/x-shell application/postscript 33 texttops
@DEFAULT_TEXTTOPS@text/plain application/postscript 33 texttops
@DEFAULT_TEXTTOPS@text/css application/postscript 33 texttops
@DEFAULT_TEXTTOPS@text/html application/postscript 33 texttops
@DEFAULT_IMAGEFILTERS@image/gif application/vnd.cups-postscript 66 imagetops
@DEFAULT_IMAGEFILTERS@image/png application/vnd.cups-postscript 66 imagetops
@DEFAULT_IMAGEFILTERS@image/jpeg application/vnd.cups-postscript 66 imagetops
@DEFAULT_IMAGEFILTERS@image/tiff application/vnd.cups-postscript 66 imagetops
@DEFAULT_IMAGEFILTERS@image/x-bitmap application/vnd.cups-postscript 66 imagetops
@DEFAULT_IMAGEFILTERS@image/x-photocd application/vnd.cups-postscript 66 imagetops
@DEFAULT_IMAGEFILTERS@image/x-portable-anymap application/vnd.cups-postscript 66 imagetops
@DEFAULT_IMAGEFILTERS@image/x-portable-bitmap application/vnd.cups-postscript 66 imagetops
@DEFAULT_IMAGEFILTERS@image/x-portable-graymap application/vnd.cups-postscript 66 imagetops
@DEFAULT_IMAGEFILTERS@image/x-portable-pixmap application/vnd.cups-postscript 66 imagetops
@DEFAULT_IMAGEFILTERS@image/x-sgi-rgb application/vnd.cups-postscript 66 imagetops
@DEFAULT_IMAGEFILTERS@image/x-xbitmap application/vnd.cups-postscript 66 imagetops
@DEFAULT_IMAGEFILTERS@image/x-xpixmap application/vnd.cups-postscript 66 imagetops
@DEFAULT_IMAGEFILTERS@image/x-sun-raster application/vnd.cups-postscript 66 imagetops
@DEFAULT_BANNERTOPS@application/vnd.cups-banner application/postscript 33 bannertops
########################################################################
#
# Raster filters...
#
@DEFAULT_IMAGEFILTERS@image/gif application/vnd.cups-raster 100 imagetoraster
@DEFAULT_IMAGEFILTERS@image/png application/vnd.cups-raster 100 imagetoraster
@DEFAULT_IMAGEFILTERS@image/jpeg application/vnd.cups-raster 100 imagetoraster
@DEFAULT_IMAGEFILTERS@image/tiff application/vnd.cups-raster 100 imagetoraster
@DEFAULT_IMAGEFILTERS@image/x-bitmap application/vnd.cups-raster 100 imagetoraster
@DEFAULT_IMAGEFILTERS@image/x-photocd application/vnd.cups-raster 100 imagetoraster
@DEFAULT_IMAGEFILTERS@image/x-portable-anymap application/vnd.cups-raster 100 imagetoraster
@DEFAULT_IMAGEFILTERS@image/x-portable-bitmap application/vnd.cups-raster 100 imagetoraster
@DEFAULT_IMAGEFILTERS@image/x-portable-graymap application/vnd.cups-raster 100 imagetoraster
@DEFAULT_IMAGEFILTERS@image/x-portable-pixmap application/vnd.cups-raster 100 imagetoraster
@DEFAULT_IMAGEFILTERS@image/x-sgi-rgb application/vnd.cups-raster 100 imagetoraster
@DEFAULT_IMAGEFILTERS@image/x-xbitmap application/vnd.cups-raster 100 imagetoraster
@DEFAULT_IMAGEFILTERS@image/x-xpixmap application/vnd.cups-raster 100 imagetoraster
@DEFAULT_IMAGEFILTERS@image/x-sun-raster application/vnd.cups-raster 100 imagetoraster
# PWG Raster filter for IPP Everywhere...
application/vnd.cups-raster image/pwg-raster 100 rastertopwg
+140
Ver Arquivo
@@ -0,0 +1,140 @@
dnl
dnl "$Id: cups-3264.m4 9771 2011-05-12 05:21:56Z mike $"
dnl
dnl 32/64-bit library support stuff for CUPS.
dnl
dnl Copyright 2007-2011 by Apple Inc.
dnl Copyright 1997-2006 by Easy Software Products, all rights reserved.
dnl
dnl These coded instructions, statements, and computer programs are the
dnl property of Apple Inc. and are protected by Federal copyright
dnl law. Distribution and use rights are outlined in the file "LICENSE.txt"
dnl which should have been included with this file. If this file is
dnl file is missing or damaged, see the license at "http://www.cups.org/".
dnl
dnl Setup support for separate 32/64-bit library generation...
AC_ARG_ENABLE(32bit, [ --enable-32bit generate 32-bit libraries on 32/64-bit systems])
INSTALL32=""
LIB32CUPS=""
LIB32CUPSIMAGE=""
LIB32DIR=""
UNINSTALL32=""
AC_SUBST(INSTALL32)
AC_SUBST(LIB32CUPS)
AC_SUBST(LIB32CUPSIMAGE)
AC_SUBST(LIB32DIR)
AC_SUBST(UNINSTALL32)
AC_ARG_ENABLE(64bit, [ --enable-64bit generate 64-bit libraries on 32/64-bit systems])
INSTALL64=""
LIB64CUPS=""
LIB64CUPSIMAGE=""
LIB64DIR=""
UNINSTALL64=""
AC_SUBST(INSTALL64)
AC_SUBST(LIB64CUPS)
AC_SUBST(LIB64CUPSIMAGE)
AC_SUBST(LIB64DIR)
AC_SUBST(UNINSTALL64)
case "$uname" in
HP-UX*)
if test "x$enable_32bit" = xyes; then
# Build 32-bit libraries, 64-bit base...
INSTALL32="install32bit"
LIB32CUPS="32bit/libcups.so.2"
LIB32CUPSIMAGE="32bit/libcupsimage.so.2"
LIB32DIR="$exec_prefix/lib"
if test -d /usr/lib/hpux32; then
LIB32DIR="${LIB32DIR}/hpux32"
fi
UNINSTALL32="uninstall32bit"
fi
if test "x$enable_64bit" = xyes; then
# Build 64-bit libraries, 32-bit base...
INSTALL64="install64bit"
LIB64CUPS="64bit/libcups.so.2"
LIB64CUPSIMAGE="64bit/libcupsimage.so.2"
LIB64DIR="$exec_prefix/lib"
if test -d /usr/lib/hpux64; then
LIB64DIR="${LIB64DIR}/hpux64"
fi
UNINSTALL64="uninstall64bit"
fi
;;
IRIX)
if test "x$enable_32bit" = xyes; then
INSTALL32="install32bit"
LIB32CUPS="32bit/libcups.so.2"
LIB32CUPSIMAGE="32bit/libcupsimage.so.2"
LIB32DIR="$prefix/lib32"
UNINSTALL32="uninstall32bit"
fi
if test "x$enable_64bit" = xyes; then
# Build 64-bit libraries, 32-bit base...
INSTALL64="install64bit"
LIB64CUPS="64bit/libcups.so.2"
LIB64CUPSIMAGE="64bit/libcupsimage.so.2"
LIB64DIR="$prefix/lib64"
UNINSTALL64="uninstall64bit"
fi
;;
Linux*)
if test "x$enable_32bit" = xyes; then
# Build 32-bit libraries, 64-bit base...
INSTALL32="install32bit"
LIB32CUPS="32bit/libcups.so.2"
LIB32CUPSIMAGE="32bit/libcupsimage.so.2"
LIB32DIR="$exec_prefix/lib"
if test -d /usr/lib32; then
LIB32DIR="${LIB32DIR}32"
fi
UNINSTALL32="uninstall32bit"
fi
if test "x$enable_64bit" = xyes; then
# Build 64-bit libraries, 32-bit base...
INSTALL64="install64bit"
LIB64CUPS="64bit/libcups.so.2"
LIB64CUPSIMAGE="64bit/libcupsimage.so.2"
LIB64DIR="$exec_prefix/lib"
if test -d /usr/lib64; then
LIB64DIR="${LIB64DIR}64"
fi
UNINSTALL64="uninstall64bit"
fi
;;
SunOS*)
if test "x$enable_32bit" = xyes; then
# Build 32-bit libraries, 64-bit base...
INSTALL32="install32bit"
LIB32CUPS="32bit/libcups.so.2"
LIB32CUPSIMAGE="32bit/libcupsimage.so.2"
LIB32DIR="$exec_prefix/lib/32"
UNINSTALL32="uninstall32bit"
fi
if test "x$enable_64bit" = xyes; then
# Build 64-bit libraries, 32-bit base...
INSTALL64="install64bit"
LIB64CUPS="64bit/libcups.so.2"
LIB64CUPSIMAGE="64bit/libcupsimage.so.2"
LIB64DIR="$exec_prefix/lib/64"
UNINSTALL64="uninstall64bit"
fi
;;
esac
dnl
dnl End of "$Id: cups-3264.m4 9771 2011-05-12 05:21:56Z mike $".
dnl
+10 -27
Ver Arquivo
@@ -1,5 +1,5 @@
dnl
dnl "$Id: cups-common.m4 10192 2012-01-20 21:49:02Z mike $"
dnl "$Id: cups-common.m4 10067 2011-10-13 05:44:32Z mike $"
dnl
dnl Common configuration stuff for CUPS.
dnl
@@ -20,11 +20,11 @@ dnl Set the name of the config header file...
AC_CONFIG_HEADER(config.h)
dnl Version number information...
CUPS_VERSION="1.6svn"
CUPS_VERSION="1.5.1"
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'`"
fi
#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'`"
#fi
CUPS_BUILD="cups-$CUPS_VERSION"
AC_ARG_WITH(cups_build, [ --with-cups-build set "cups-config --build" string ],
@@ -124,7 +124,6 @@ AC_SUBST(LIBPAPER)
dnl Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADER(stdlib.h,AC_DEFINE(HAVE_STDLIB_H))
AC_CHECK_HEADER(crypt.h,AC_DEFINE(HAVE_CRYPT_H))
AC_CHECK_HEADER(langinfo.h,AC_DEFINE(HAVE_LANGINFO_H))
AC_CHECK_HEADER(malloc.h,AC_DEFINE(HAVE_MALLOC_H))
@@ -147,16 +146,6 @@ AC_CHECK_HEADER(iconv.h,
SAVELIBS="$SAVELIBS $LIBS")
LIBS="$SAVELIBS")
dnl Checks for Mini-XML (www.minixml.org)...
LIBMXML=""
AC_CHECK_HEADER(mxml.h,
SAVELIBS="$LIBS"
AC_SEARCH_LIBS(mmxlNewElement,mxml,
AC_DEFINE(HAVE_MXML_H)
LIBMXML="-lmxml")
LIBS="$SAVELIBS")
AC_SUBST(LIBMXML)
dnl Checks for statfs and its many headers...
AC_CHECK_HEADER(sys/mount.h,AC_DEFINE(HAVE_SYS_MOUNT_H))
AC_CHECK_HEADER(sys/statfs.h,AC_DEFINE(HAVE_SYS_STATFS_H))
@@ -253,15 +242,6 @@ if test x$enable_tcp_wrappers = xyes; then
LIBWRAP="-lwrap")])
fi
dnl ZLIB
LIBZ=""
AC_CHECK_HEADER(zlib.h,
AC_CHECK_LIB(z, gzgets,
AC_DEFINE(HAVE_LIBZ)
LIBZ="-lz"
LIBS="$LIBS -lz"))
AC_SUBST(LIBZ)
dnl Flags for "ar" command...
case $uname in
Darwin* | *BSD*)
@@ -331,9 +311,11 @@ dnl Extra platform-specific libraries...
CUPS_DEFAULT_PRINTOPERATOR_AUTH="@SYSTEM"
CUPS_SYSTEM_AUTHKEY=""
INSTALLXPC=""
LEGACY_BACKENDS="parallel"
case $uname in
Darwin*)
LEGACY_BACKENDS=""
BACKLIBS="$BACKLIBS -framework IOKit"
SERVERLIBS="$SERVERLIBS -framework IOKit -weak_framework ApplicationServices"
LIBS="-framework SystemConfiguration -framework CoreFoundation -framework Security $LIBS"
@@ -423,6 +405,7 @@ AC_SUBST(CUPS_DEFAULT_PRINTOPERATOR_AUTH)
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_PRINTOPERATOR_AUTH, "$CUPS_DEFAULT_PRINTOPERATOR_AUTH")
AC_SUBST(CUPS_SYSTEM_AUTHKEY)
AC_SUBST(INSTALLXPC)
AC_SUBST(LEGACY_BACKENDS)
dnl Check for build components
COMPONENTS="all"
@@ -434,7 +417,7 @@ AC_ARG_WITH(components, [ --with-components set components to build:
case "$COMPONENTS" in
all)
BUILDDIRS="filter backend berkeley cgi-bin monitor notifier ppdc scheduler systemv conf data desktop locale man doc examples templates"
BUILDDIRS="filter backend berkeley cgi-bin driver monitor notifier ppdc scheduler systemv conf data desktop locale man doc examples templates"
;;
core)
@@ -449,5 +432,5 @@ esac
AC_SUBST(BUILDDIRS)
dnl
dnl End of "$Id: cups-common.m4 10192 2012-01-20 21:49:02Z mike $".
dnl End of "$Id: cups-common.m4 10067 2011-10-13 05:44:32Z mike $".
dnl
+269 -5
Ver Arquivo
@@ -1,9 +1,9 @@
dnl
dnl "$Id: cups-compiler.m4 10190 2012-01-20 16:22:58Z mike $"
dnl "$Id: cups-compiler.m4 9981 2011-09-09 17:28:58Z mike $"
dnl
dnl Compiler stuff for CUPS.
dnl
dnl Copyright 2007-2012 by Apple Inc.
dnl Copyright 2007-2011 by Apple Inc.
dnl Copyright 1997-2007 by Easy Software Products, all rights reserved.
dnl
dnl These coded instructions, statements, and computer programs are the
@@ -66,8 +66,8 @@ fi
if test -z "$with_ldarchflags"; then
if test "$uname" = Darwin; then
# Only create Intel programs by default
LDARCHFLAGS="`echo $ARCHFLAGS | sed -e '1,$s/-arch ppc64//'`"
# Only create 32-bit programs by default
LDARCHFLAGS="`echo $ARCHFLAGS | sed -e '1,$s/-arch x86_64//' -e '1,$s/-arch ppc64//'`"
else
LDARCHFLAGS="$ARCHFLAGS"
fi
@@ -78,6 +78,15 @@ fi
AC_SUBST(ARCHFLAGS)
AC_SUBST(LDARCHFLAGS)
dnl Setup support for separate 32/64-bit library generation...
AC_ARG_WITH(arch32flags, [ --with-arch32flags set 32-bit architecture flags])
ARCH32FLAGS=""
AC_SUBST(ARCH32FLAGS)
AC_ARG_WITH(arch64flags, [ --with-arch64flags set 64-bit architecture flags])
ARCH64FLAGS=""
AC_SUBST(ARCH64FLAGS)
dnl Read-only data/program support on Linux...
AC_ARG_ENABLE(relro, [ --enable-relro build with the GCC relro option])
@@ -91,6 +100,9 @@ AC_SUBST(PIEFLAGS)
RELROFLAGS=""
AC_SUBST(RELROFLAGS)
PHPOPTIONS=""
AC_SUBST(PHPOPTIONS)
if test -n "$GCC"; then
# Add GCC-specific compiler options...
if test -z "$OPTIM"; then
@@ -145,6 +157,7 @@ if test -n "$GCC"; then
# Additional warning options for development testing...
if test -d .svn; then
OPTIM="-Wshadow -Werror $OPTIM"
PHPOPTIONS="-Wno-shadow"
else
AC_MSG_CHECKING(if GCC supports -Wno-tautological-compare)
OLDCFLAGS="$CFLAGS"
@@ -167,12 +180,154 @@ if test -n "$GCC"; then
CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=2"
;;
HP-UX*)
if test "x$enable_32bit" = xyes; then
# Build 32-bit libraries, 64-bit base...
if test -z "$with_arch32flags"; then
ARCH32FLAGS="-milp32"
else
ARCH32FLAGS="$with_arch32flags"
fi
if test -z "$with_archflags"; then
if test -z "$with_arch64flags"; then
ARCHFLAGS="-mlp64"
else
ARCHFLAGS="$with_arch64flags"
fi
fi
fi
if test "x$enable_64bit" = xyes; then
# Build 64-bit libraries, 32-bit base...
if test -z "$with_arch64flags"; then
ARCH64FLAGS="-mlp64"
else
ARCH64FLAGS="$with_arch64flags"
fi
if test -z "$with_archflags"; then
if test -z "$with_arch32flags"; then
ARCHFLAGS="-milp32"
else
ARCHFLAGS="$with_arch32flags"
fi
fi
fi
;;
IRIX)
if test "x$enable_32bit" = xyes; then
# Build 32-bit libraries, 64-bit base...
if test -z "$with_arch32flags"; then
ARCH32FLAGS="-n32 -mips3"
else
ARCH32FLAGS="$with_arch32flags"
fi
if test -z "$with_archflags"; then
if test -z "$with_arch64flags"; then
ARCHFLAGS="-64 -mips4"
else
ARCHFLAGS="$with_arch64flags"
fi
fi
fi
if test "x$enable_64bit" = xyes; then
# Build 64-bit libraries, 32-bit base...
if test -z "$with_arch64flags"; then
ARCH64FLAGS="-64 -mips4"
else
ARCH64FLAGS="$with_arch64flags"
fi
if test -z "$with_archflags"; then
if test -z "$with_arch32flags"; then
ARCHFLAGS="-n32 -mips3"
else
ARCHFLAGS="$with_arch32flags"
fi
fi
fi
;;
Linux*)
# The -z relro option is provided by the Linux linker command to
# make relocatable data read-only.
if test x$enable_relro = xyes; then
RELROFLAGS="-Wl,-z,relro"
fi
if test "x$enable_32bit" = xyes; then
# Build 32-bit libraries, 64-bit base...
if test -z "$with_arch32flags"; then
ARCH32FLAGS="-m32"
else
ARCH32FLAGS="$with_arch32flags"
fi
if test -z "$with_archflags"; then
if test -z "$with_arch64flags"; then
ARCHFLAGS="-m64"
else
ARCHFLAGS="$with_arch64flags"
fi
fi
fi
if test "x$enable_64bit" = xyes; then
# Build 64-bit libraries, 32-bit base...
if test -z "$with_arch64flags"; then
ARCH64FLAGS="-m64"
else
ARCH64FLAGS="$with_arch64flags"
fi
if test -z "$with_archflags"; then
if test -z "$with_arch32flags"; then
ARCHFLAGS="-m32"
else
ARCHFLAGS="$with_arch32flags"
fi
fi
fi
;;
SunOS*)
if test "x$enable_32bit" = xyes; then
# Build 32-bit libraries, 64-bit base...
if test -z "$with_arch32flags"; then
ARCH32FLAGS="-m32"
else
ARCH32FLAGS="$with_arch32flags"
fi
if test -z "$with_archflags"; then
if test -z "$with_arch64flags"; then
ARCHFLAGS="-m64"
else
ARCHFLAGS="$with_arch64flags"
fi
fi
fi
if test "x$enable_64bit" = xyes; then
# Build 64-bit libraries, 32-bit base...
if test -z "$with_arch64flags"; then
ARCH64FLAGS="-m64"
else
ARCH64FLAGS="$with_arch64flags"
fi
if test -z "$with_archflags"; then
if test -z "$with_arch32flags"; then
ARCHFLAGS="-m32"
else
ARCHFLAGS="$with_arch32flags"
fi
fi
fi
;;
esac
else
@@ -201,6 +356,40 @@ else
if test $PICFLAG = 1; then
OPTIM="+z $OPTIM"
fi
if test "x$enable_32bit" = xyes; then
# Build 32-bit libraries, 64-bit base...
if test -z "$with_arch32flags"; then
ARCH32FLAGS="+DD32"
else
ARCH32FLAGS="$with_arch32flags"
fi
if test -z "$with_archflags"; then
if test -z "$with_arch64flags"; then
ARCHFLAGS="+DD64"
else
ARCHFLAGS="$with_arch64flags"
fi
fi
fi
if test "x$enable_64bit" = xyes; then
# Build 64-bit libraries, 32-bit base...
if test -z "$with_arch64flags"; then
ARCH64FLAGS="+DD64"
else
ARCH64FLAGS="$with_arch64flags"
fi
if test -z "$with_archflags"; then
if test -z "$with_arch32flags"; then
ARCHFLAGS="+DD32"
else
ARCHFLAGS="$with_arch32flags"
fi
fi
fi
;;
IRIX)
if test -z "$OPTIM"; then
@@ -214,6 +403,40 @@ else
if test "x$with_optim" = x; then
OPTIM="-fullwarn -woff 1183,1209,1349,1506,3201 $OPTIM"
fi
if test "x$enable_32bit" = xyes; then
# Build 32-bit libraries, 64-bit base...
if test -z "$with_arch32flags"; then
ARCH32FLAGS="-n32 -mips3"
else
ARCH32FLAGS="$with_arch32flags"
fi
if test -z "$with_archflags"; then
if test -z "$with_arch64flags"; then
ARCHFLAGS="-64 -mips4"
else
ARCHFLAGS="$with_arch64flags"
fi
fi
fi
if test "x$enable_64bit" = xyes; then
# Build 64-bit libraries, 32-bit base...
if test -z "$with_arch64flags"; then
ARCH64FLAGS="-64 -mips4"
else
ARCH64FLAGS="$with_arch64flags"
fi
if test -z "$with_archflags"; then
if test -z "$with_arch32flags"; then
ARCHFLAGS="-n32 -mips3"
else
ARCHFLAGS="$with_arch32flags"
fi
fi
fi
;;
OSF*)
# Tru64 UNIX aka Digital UNIX aka OSF/1
@@ -238,6 +461,47 @@ else
if test $PICFLAG = 1; then
OPTIM="-KPIC $OPTIM"
fi
if test "x$enable_32bit" = xyes; then
# Compiling on a Solaris system, build 64-bit
# binaries with separate 32-bit libraries...
ARCH32FLAGS="-xarch=generic"
if test "x$with_optim" = x; then
# Suppress all of Sun's questionable
# warning messages, and default to
# 64-bit compiles of everything else...
OPTIM="-w $OPTIM"
fi
if test -z "$with_archflags"; then
if test -z "$with_arch64flags"; then
ARCHFLAGS="-xarch=generic64"
else
ARCHFLAGS="$with_arch64flags"
fi
fi
else
if test "x$enable_64bit" = xyes; then
# Build 64-bit libraries...
ARCH64FLAGS="-xarch=generic64"
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 -z "$with_archflags"; then
if test -z "$with_arch32flags"; then
ARCHFLAGS="-xarch=generic"
else
ARCHFLAGS="$with_arch32flags"
fi
fi
fi
;;
UNIX_SVR*)
# UnixWare
@@ -295,5 +559,5 @@ case $uname in
esac
dnl
dnl End of "$Id: cups-compiler.m4 10190 2012-01-20 16:22:58Z mike $".
dnl End of "$Id: cups-compiler.m4 9981 2011-09-09 17:28:58Z mike $".
dnl
+120 -6
Ver Arquivo
@@ -1,5 +1,5 @@
dnl
dnl "$Id: cups-defaults.m4 10104 2011-11-04 06:37:03Z mike $"
dnl "$Id: cups-defaults.m4 9750 2011-05-06 22:53:53Z mike $"
dnl
dnl Default cupsd configuration settings for CUPS.
dnl
@@ -64,6 +64,7 @@ AC_ARG_WITH(fatal_errors, [ --with-fatal-errors set default FatalErrors val
AC_SUBST(CUPS_FATAL_ERRORS)
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_FATAL_ERRORS, "$CUPS_FATAL_ERRORS")
dnl Default LogLevel
AC_ARG_WITH(log_level, [ --with-log-level set default LogLevel value, default=warn],
CUPS_LOG_LEVEL="$withval",
@@ -90,16 +91,16 @@ fi
AC_SUBST(CUPS_BROWSING)
dnl Default BrowseLocalProtocols
AC_ARG_WITH(local_protocols, [ --with-local-protocols set default BrowseLocalProtocols, default=""],
AC_ARG_WITH(local_protocols, [ --with-local-protocols set default BrowseLocalProtocols, default="CUPS"],
default_local_protocols="$withval",
default_local_protocols="default")
if test x$with_local_protocols != xno; then
if test "x$default_local_protocols" = "xdefault"; then
if test "x$DNSSDLIBS" != "x"; then
CUPS_BROWSE_LOCAL_PROTOCOLS="dnssd"
else
CUPS_BROWSE_LOCAL_PROTOCOLS=""
CUPS_BROWSE_LOCAL_PROTOCOLS="CUPS dnssd"
else
CUPS_BROWSE_LOCAL_PROTOCOLS="CUPS"
fi
else
CUPS_BROWSE_LOCAL_PROTOCOLS="$default_local_protocols"
@@ -112,6 +113,41 @@ AC_SUBST(CUPS_BROWSE_LOCAL_PROTOCOLS)
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_BROWSE_LOCAL_PROTOCOLS,
"$CUPS_BROWSE_LOCAL_PROTOCOLS")
dnl Default BrowseRemoteProtocols
AC_ARG_WITH(remote_protocols, [ --with-remote-protocols set default BrowseRemoteProtocols, default="CUPS"],
default_remote_protocols="$withval",
default_remote_protocols="default")
if test x$with_remote_protocols != xno; then
if test "x$default_remote_protocols" = "xdefault"; then
if test "$uname" = "Darwin" -a $uversion -ge 90; then
CUPS_BROWSE_REMOTE_PROTOCOLS=""
else
CUPS_BROWSE_REMOTE_PROTOCOLS="CUPS"
fi
else
CUPS_BROWSE_REMOTE_PROTOCOLS="$default_remote_protocols"
fi
else
CUPS_BROWSE_REMOTE_PROTOCOLS=""
fi
AC_SUBST(CUPS_BROWSE_REMOTE_PROTOCOLS)
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_BROWSE_REMOTE_PROTOCOLS,
"$CUPS_BROWSE_REMOTE_PROTOCOLS")
dnl Default BrowseShortNames
AC_ARG_ENABLE(browse_short, [ --disable-browse-short-names
disable BrowseShortNames by default])
if test "x$enable_browse_short" = xno; then
CUPS_BROWSE_SHORT_NAMES="No"
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_BROWSE_SHORT_NAMES, 0)
else
CUPS_BROWSE_SHORT_NAMES="Yes"
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_BROWSE_SHORT_NAMES, 1)
fi
AC_SUBST(CUPS_BROWSE_SHORT_NAMES)
dnl Default DefaultShared
AC_ARG_ENABLE(default_shared, [ --disable-default-shared
disable DefaultShared by default])
@@ -124,6 +160,38 @@ else
fi
AC_SUBST(CUPS_DEFAULT_SHARED)
dnl Default ImplicitClasses
AC_ARG_ENABLE(implicit, [ --disable-implicit-classes
disable ImplicitClasses by default])
if test "x$enable_implicit" = xno; then
CUPS_IMPLICIT_CLASSES="No"
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_IMPLICIT_CLASSES, 0)
else
CUPS_IMPLICIT_CLASSES="Yes"
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_IMPLICIT_CLASSES, 1)
fi
AC_SUBST(CUPS_IMPLICIT_CLASSES)
dnl Default UseNetworkDefault
AC_ARG_ENABLE(use_network_default, [ --enable-use-network-default
set UseNetworkDefault to Yes by default])
if test "x$enable_use_network_default" != xno; then
AC_MSG_CHECKING(whether to use network default printers)
if test "x$enable_use_network_default" = xyes -o $uname != Darwin; then
CUPS_USE_NETWORK_DEFAULT="Yes"
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_USE_NETWORK_DEFAULT, 1)
AC_MSG_RESULT(yes)
else
CUPS_USE_NETWORK_DEFAULT="No"
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_USE_NETWORK_DEFAULT, 0)
AC_MSG_RESULT(no)
fi
else
CUPS_USE_NETWORK_DEFAULT="No"
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_USE_NETWORK_DEFAULT, 0)
fi
AC_SUBST(CUPS_USE_NETWORK_DEFAULT)
dnl Determine the correct username and group for this OS...
AC_ARG_WITH(cups_user, [ --with-cups-user set default user for CUPS],
CUPS_USER="$withval",
@@ -366,6 +434,52 @@ AC_ARG_WITH(ipp-port, [ --with-ipp-port set port number for IPP, defaul
AC_SUBST(DEFAULT_IPP_PORT)
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_IPP_PORT,$DEFAULT_IPP_PORT)
dnl Filters
AC_ARG_ENABLE(bannertops, [ --enable-bannertops always build the banner filter ])
AC_ARG_ENABLE(texttops, [ --enable-texttops always build the text filter ])
if test "x$enable_bannertops" = xno; then
BANNERTOPS=""
DEFAULT_BANNERTOPS="#"
elif test "x$enable_bannertops" = xyes; then
BANNERTOPS="bannertops"
DEFAULT_BANNERTOPS=""
elif test $uname = Darwin; then
BANNERTOPS=""
DEFAULT_BANNERTOPS="#"
else
BANNERTOPS="bannertops"
DEFAULT_BANNERTOPS=""
fi
if test "x$enable_texttops" = xno; then
TEXTTOPS=""
DEFAULT_TEXTTOPS="#"
elif test "x$enable_texttops" = xyes; then
TEXTTOPS="texttops"
DEFAULT_TEXTTOPS=""
elif test $uname = Darwin; then
TEXTTOPS=""
DEFAULT_TEXTTOPS="#"
else
TEXTTOPS="texttops"
DEFAULT_TEXTTOPS=""
fi
AC_SUBST(BANNERTOPS)
AC_SUBST(DEFAULT_BANNERTOPS)
AC_SUBST(DEFAULT_TEXTTOPS)
AC_SUBST(TEXTTOPS)
dnl Fonts
if test "x$BANNERTOPS" = x -a "x$TEXTTOPS" = x; then
FONTS=""
else
FONTS="fonts"
fi
AC_SUBST(FONTS)
dnl Web interface...
AC_ARG_ENABLE(webif, [ --enable-webif enable the web interface by default, default=no for Mac OS X])
case "x$enable_webif" in
@@ -392,5 +506,5 @@ AC_SUBST(CUPS_WEBIF)
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_WEBIF, $CUPS_DEFAULT_WEBIF)
dnl
dnl End of "$Id: cups-defaults.m4 10104 2011-11-04 06:37:03Z mike $".
dnl End of "$Id: cups-defaults.m4 9750 2011-05-06 22:53:53Z mike $".
dnl
+2 -3
Ver Arquivo
@@ -1,5 +1,5 @@
dnl
dnl "$Id: cups-gssapi.m4 10137 2011-12-02 04:04:49Z mike $"
dnl "$Id: cups-gssapi.m4 10083 2011-10-19 20:21:16Z mike $"
dnl
dnl GSSAPI/Kerberos library detection for CUPS.
dnl
@@ -163,9 +163,8 @@ else
CUPS_DEFAULT_GSSSERVICENAME=""
fi
AC_SUBST(CUPS_DEFAULT_GSSSERVICENAME)
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_GSSSERVICENAME, "$CUPS_DEFAULT_GSSSERVICENAME")
dnl
dnl End of "$Id: cups-gssapi.m4 10137 2011-12-02 04:04:49Z mike $".
dnl End of "$Id: cups-gssapi.m4 10083 2011-10-19 20:21:16Z mike $".
dnl
+112
Ver Arquivo
@@ -0,0 +1,112 @@
dnl
dnl "$Id: cups-image.m4 9750 2011-05-06 22:53:53Z mike $"
dnl
dnl Image library/filter stuff for CUPS.
dnl
dnl Copyright 2007-2011 by Apple Inc.
dnl Copyright 1997-2006 by Easy Software Products, all rights reserved.
dnl
dnl These coded instructions, statements, and computer programs are the
dnl property of Apple Inc. and are protected by Federal copyright
dnl law. Distribution and use rights are outlined in the file "LICENSE.txt"
dnl which should have been included with this file. If this file is
dnl file is missing or damaged, see the license at "http://www.cups.org/".
dnl
dnl See if we want the image filters included at all...
AC_ARG_ENABLE(image, [ --enable-image always build the image filters])
DEFAULT_IMAGEFILTERS="#"
IMGFILTERS=""
if test "x$enable_image" != xno; then
AC_MSG_CHECKING(whether to build image filters)
if test "x$enable_image" = xyes -o $uname != Darwin; then
IMGFILTERS="imagetops imagetoraster"
DEFAULT_IMAGEFILTERS=""
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
fi
AC_SUBST(DEFAULT_IMAGEFILTERS)
AC_SUBST(IMGFILTERS)
dnl Check for image libraries...
AC_ARG_ENABLE(jpeg, [ --disable-jpeg disable JPEG support])
AC_ARG_ENABLE(png, [ --disable-png disable PNG support])
AC_ARG_ENABLE(tiff, [ --disable-tiff disable TIFF support])
LIBJPEG=""
LIBPNG=""
LIBTIFF=""
LIBZ=""
AC_SUBST(LIBJPEG)
AC_SUBST(LIBPNG)
AC_SUBST(LIBTIFF)
AC_SUBST(LIBZ)
dnl Image libraries use math library functions...
AC_SEARCH_LIBS(pow, m)
dnl Save the current libraries since we don't want the image libraries
dnl included with every program...
SAVELIBS="$LIBS"
dnl JPEG library...
if test x$enable_jpeg != xno; then
AC_CHECK_HEADER(jpeglib.h,
AC_CHECK_LIB(jpeg, jpeg_destroy_decompress,
AC_DEFINE(HAVE_LIBJPEG)
LIBJPEG="-ljpeg"
LIBS="$LIBS -ljpeg"))
else
AC_MSG_NOTICE([JPEG support disabled with --disable-jpeg.])
fi
dnl ZLIB library...
AC_CHECK_HEADER(zlib.h,
AC_CHECK_LIB(z, gzgets,
AC_DEFINE(HAVE_LIBZ)
LIBZ="-lz"
LIBS="$LIBS -lz"))
dnl PNG library...
if test x$enable_png != xno; then
AC_CHECK_HEADER(png.h,
AC_CHECK_LIB(png, png_create_read_struct,
AC_DEFINE(HAVE_LIBPNG)
LIBPNG="-lpng"))
else
AC_MSG_NOTICE([PNG support disabled with --disable-png.])
fi
dnl TIFF library...
if test x$enable_tiff != xno; then
AC_CHECK_HEADER(tiff.h,
AC_CHECK_LIB(tiff, TIFFReadScanline,
AC_DEFINE(HAVE_LIBTIFF)
LIBTIFF="-ltiff"))
else
AC_MSG_NOTICE([TIFF support disabled with --disable-tiff.])
fi
dnl Restore original LIBS settings...
LIBS="$SAVELIBS"
EXPORT_LIBJPEG="$LIBJPEG"
EXPORT_LIBPNG="$LIBPNG"
EXPORT_LIBTIFF="$LIBTIFF"
EXPORT_LIBZ="$LIBZ"
AC_SUBST(EXPORT_LIBJPEG)
AC_SUBST(EXPORT_LIBPNG)
AC_SUBST(EXPORT_LIBTIFF)
AC_SUBST(EXPORT_LIBZ)
AC_CHECK_HEADER(stdlib.h,AC_DEFINE(HAVE_STDLIB_H))
dnl
dnl End of "$Id: cups-image.m4 9750 2011-05-06 22:53:53Z mike $".
dnl
+52
Ver Arquivo
@@ -0,0 +1,52 @@
dnl
dnl "$Id: cups-ldap.m4 9771 2011-05-12 05:21:56Z mike $"
dnl
dnl LDAP configuration stuff for CUPS.
dnl
dnl Copyright 2007-2011 by Apple Inc.
dnl Copyright 2003-2006 by Easy Software Products, all rights reserved.
dnl
dnl These coded instructions, statements, and computer programs are the
dnl property of Apple Inc. and are protected by Federal copyright
dnl law. Distribution and use rights are outlined in the file "LICENSE.txt"
dnl which should have been included with this file. If this file is
dnl file is missing or damaged, see the license at "http://www.cups.org/".
dnl
AC_ARG_ENABLE(ldap, [ --disable-ldap disable LDAP support])
AC_ARG_WITH(ldap-libs, [ --with-ldap-libs set directory for LDAP library],
LDFLAGS="-L$withval $LDFLAGS"
DSOFLAGS="-L$withval $DSOFLAGS",)
AC_ARG_WITH(ldap-includes, [ --with-ldap-includes set directory for LDAP includes],
CFLAGS="-I$withval $CFLAGS"
CPPFLAGS="-I$withval $CPPFLAGS",)
LIBLDAP=""
if test x$enable_ldap != xno; then
AC_CHECK_HEADER(ldap.h, [
AC_CHECK_LIB(ldap, ldap_initialize,
AC_DEFINE(HAVE_LDAP)
AC_DEFINE(HAVE_OPENLDAP)
LIBLDAP="-lldap"
AC_CHECK_LIB(ldap, ldap_start_tls,
AC_DEFINE(HAVE_LDAP_SSL)),
AC_CHECK_LIB(ldap, ldap_init,
AC_DEFINE(HAVE_LDAP)
AC_DEFINE(HAVE_MOZILLA_LDAP)
LIBLDAP="-lldap"
AC_CHECK_HEADER(ldap_ssl.h, AC_DEFINE(HAVE_LDAP_SSL_H),,[#include <ldap.h>])
AC_CHECK_LIB(ldap, ldapssl_init,
AC_DEFINE(HAVE_LDAP_SSL)))
)
AC_CHECK_LIB(ldap, ldap_set_rebind_proc, AC_DEFINE(HAVE_LDAP_REBIND_PROC))
])
fi
AC_SUBST(LIBLDAP)
dnl
dnl End of "$Id: cups-ldap.m4 9771 2011-05-12 05:21:56Z mike $".
dnl
+113
Ver Arquivo
@@ -0,0 +1,113 @@
dnl
dnl "$Id: cups-pdf.m4 9750 2011-05-06 22:53:53Z mike $"
dnl
dnl PDF filter configuration stuff for CUPS.
dnl
dnl Copyright 2007-2011 by Apple Inc.
dnl Copyright 2006 by Easy Software Products, all rights reserved.
dnl
dnl These coded instructions, statements, and computer programs are the
dnl property of Apple Inc. and are protected by Federal copyright
dnl law. Distribution and use rights are outlined in the file "LICENSE.txt"
dnl which should have been included with this file. If this file is
dnl file is missing or damaged, see the license at "http://www.cups.org/".
dnl
AC_ARG_WITH(pdftops, [ --with-pdftops set pdftops filter (gs,/path/to/gs,pdftops,/path/to/pdftops,none), default=pdftops ])
PDFTOPS=""
CUPS_PDFTOPS=""
CUPS_GHOSTSCRIPT=""
case "x$with_pdftops" in
x) # Default/auto
if test $uname != Darwin; then
AC_PATH_PROG(CUPS_PDFTOPS, pdftops)
if test "x$CUPS_PDFTOPS" != x; then
AC_DEFINE(HAVE_PDFTOPS)
PDFTOPS="pdftops"
else
AC_PATH_PROG(CUPS_GHOSTSCRIPT, gs)
if test "x$CUPS_GHOSTSCRIPT" != x; then
AC_DEFINE(HAVE_GHOSTSCRIPT)
PDFTOPS="pdftops"
fi
fi
fi
;;
xgs)
AC_PATH_PROG(CUPS_GHOSTSCRIPT, gs)
if test "x$CUPS_GHOSTSCRIPT" != x; then
AC_DEFINE(HAVE_GHOSTSCRIPT)
PDFTOPS="pdftops"
else
AC_MSG_ERROR(Unable to find gs program!)
exit 1
fi
;;
x/*/gs) # Use /path/to/gs without any check:
CUPS_GHOSTSCRIPT="$with_pdftops"
AC_DEFINE(HAVE_GHOSTSCRIPT)
PDFTOPS="pdftops"
;;
xpdftops)
AC_PATH_PROG(CUPS_PDFTOPS, pdftops)
if test "x$CUPS_PDFTOPS" != x; then
AC_DEFINE(HAVE_PDFTOPS)
PDFTOPS="pdftops"
else
AC_MSG_ERROR(Unable to find pdftops program!)
exit 1
fi
;;
x/*/pdftops) # Use /path/to/pdftops without any check:
CUPS_PDFTOPS="$with_pdftops"
AC_DEFINE(HAVE_PDFTOPS)
PDFTOPS="pdftops"
;;
xnone) # Make no pdftops filter if with_pdftops=none:
;;
*) # Invalid with_pdftops value:
AC_MSG_ERROR(Invalid with_pdftops value!)
exit 1
;;
esac
if test "x$CUPS_PDFTOPS" != x; then
AC_MSG_CHECKING(whether pdftops supports -origpagesizes)
if ($CUPS_PDFTOPS -h 2>&1 | grep -q -- -origpagesizes); then
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_PDFTOPS_WITH_ORIGPAGESIZES)
else
AC_MSG_RESULT(no)
fi
DEFAULT_PDFTOPS=""
elif test "x$CUPS_GHOSTSCRIPT" != x; then
AC_MSG_CHECKING(whether gs supports the ps2write device)
if ($CUPS_GHOSTSCRIPT -h 2>&1 | grep -q ps2write); then
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_GHOSTSCRIPT_PS2WRITE)
else
AC_MSG_RESULT(no)
fi
DEFAULT_PDFTOPS=""
else
DEFAULT_PDFTOPS="#"
fi
AC_DEFINE_UNQUOTED(CUPS_PDFTOPS, "$CUPS_PDFTOPS")
AC_DEFINE_UNQUOTED(CUPS_GHOSTSCRIPT, "$CUPS_GHOSTSCRIPT")
AC_SUBST(DEFAULT_PDFTOPS)
AC_SUBST(PDFTOPS)
dnl
dnl End of "$Id: cups-pdf.m4 9750 2011-05-06 22:53:53Z mike $".
dnl
+13 -2
Ver Arquivo
@@ -1,5 +1,5 @@
dnl
dnl "$Id: cups-scripting.m4 9927 2011-08-27 09:28:30Z mike $"
dnl "$Id: cups-scripting.m4 9099 2010-04-11 07:16:05Z mike $"
dnl
dnl Scripting configuration stuff for CUPS.
dnl
@@ -68,6 +68,17 @@ else
AC_DEFINE(HAVE_PHP)
fi
PHPDIR=""
if test "x$CUPS_PHP" != xno; then
AC_PATH_PROG(PHPCONFIG, php-config)
if test "x$PHPCONFIG" != x; then
PHPDIR="scripting/php"
fi
fi
AC_SUBST(PHPDIR)
dnl Do we have Python?
AC_ARG_WITH(python, [ --with-python set Python interpreter for web interfaces ],
CUPS_PYTHON="$withval",
@@ -85,5 +96,5 @@ if test "x$CUPS_PYTHON" != x; then
fi
dnl
dnl End of "$Id: cups-scripting.m4 9927 2011-08-27 09:28:30Z mike $".
dnl End of "$Id: cups-scripting.m4 9099 2010-04-11 07:16:05Z mike $".
dnl
+37 -5
Ver Arquivo
@@ -1,9 +1,9 @@
dnl
dnl "$Id: cups-sharedlibs.m4 10190 2012-01-20 16:22:58Z mike $"
dnl "$Id: cups-sharedlibs.m4 9153 2010-06-16 00:48:25Z mike $"
dnl
dnl Shared library support for CUPS.
dnl
dnl Copyright 2007-2012 by Apple Inc.
dnl Copyright 2007-2010 by Apple Inc.
dnl Copyright 1997-2005 by Easy Software Products, all rights reserved.
dnl
dnl These coded instructions, statements, and computer programs are the
@@ -27,6 +27,7 @@ if test x$enable_shared != xno; then
SunOS*)
LIBCUPS="lib$cupsbase.so.2"
LIBCUPSCGI="libcupscgi.so.1"
LIBCUPSDRIVER="libcupsdriver.so.1"
LIBCUPSIMAGE="libcupsimage.so.2"
LIBCUPSMIME="libcupsmime.so.1"
LIBCUPSPPDC="libcupsppdc.so.1"
@@ -37,6 +38,7 @@ if test x$enable_shared != xno; then
UNIX_S*)
LIBCUPS="lib$cupsbase.so.2"
LIBCUPSCGI="libcupscgi.so.1"
LIBCUPSDRIVER="libcupsdriver.so.1"
LIBCUPSIMAGE="libcupsimage.so.2"
LIBCUPSMIME="libcupsmime.so.1"
LIBCUPSPPDC="libcupsppdc.so.1"
@@ -49,6 +51,7 @@ if test x$enable_shared != xno; then
ia64)
LIBCUPS="lib$cupsbase.so.2"
LIBCUPSCGI="libcupscgi.so.1"
LIBCUPSDRIVER="libcupsdriver.so.1"
LIBCUPSIMAGE="libcupsimage.so.2"
LIBCUPSMIME="libcupsmime.so.1"
LIBCUPSPPDC="libcupsppdc.so.1"
@@ -59,6 +62,7 @@ if test x$enable_shared != xno; then
*)
LIBCUPS="lib$cupsbase.sl.2"
LIBCUPSCGI="libcupscgi.sl.1"
LIBCUPSDRIVER="libcupsdriver.sl.1"
LIBCUPSIMAGE="libcupsimage.sl.2"
LIBCUPSMIME="libcupsmime.sl.1"
LIBCUPSPPDC="libcupsppdc.sl.1"
@@ -71,6 +75,7 @@ if test x$enable_shared != xno; then
IRIX)
LIBCUPS="lib$cupsbase.so.2"
LIBCUPSCGI="libcupscgi.so.1"
LIBCUPSDRIVER="libcupsdriver.so.1"
LIBCUPSIMAGE="libcupsimage.so.2"
LIBCUPSMIME="libcupsmime.so.1"
LIBCUPSPPDC="libcupsppdc.so.1"
@@ -81,6 +86,7 @@ if test x$enable_shared != xno; then
OSF1* | Linux | GNU | *BSD*)
LIBCUPS="lib$cupsbase.so.2"
LIBCUPSCGI="libcupscgi.so.1"
LIBCUPSDRIVER="libcupsdriver.so.1"
LIBCUPSIMAGE="libcupsimage.so.2"
LIBCUPSMIME="libcupsmime.so.1"
LIBCUPSPPDC="libcupsppdc.so.1"
@@ -91,6 +97,7 @@ if test x$enable_shared != xno; then
Darwin*)
LIBCUPS="lib$cupsbase.2.dylib"
LIBCUPSCGI="libcupscgi.1.dylib"
LIBCUPSDRIVER="libcupsdriver.1.dylib"
LIBCUPSIMAGE="libcupsimage.2.dylib"
LIBCUPSMIME="libcupsmime.1.dylib"
LIBCUPSPPDC="libcupsppdc.1.dylib"
@@ -102,6 +109,7 @@ if test x$enable_shared != xno; then
LIBCUPS="lib${cupsbase}_s.a"
LIBCUPSBASE="${cupsbase}_s"
LIBCUPSCGI="libcupscgi_s.a"
LIBCUPSDRIVER="libcupsdriver_s.a"
LIBCUPSIMAGE="libcupsimage_s.a"
LIBCUPSMIME="libcupsmime_s.a"
LIBCUPSPPDC="libcupsppdc_s.a"
@@ -114,6 +122,7 @@ if test x$enable_shared != xno; then
echo " option with compiler."
LIBCUPS="lib$cupsbase.so.2"
LIBCUPSCGI="libcupscgi.so.1"
LIBCUPSDRIVER="libcupsdriver.so.1"
LIBCUPSIMAGE="libcupsimage.so.2"
LIBCUPSMIME="libcupsmime.so.1"
LIBCUPSPPDC="libcupsppdc.so.1"
@@ -126,6 +135,7 @@ else
PICFLAG=0
LIBCUPS="lib$cupsbase.a"
LIBCUPSCGI="libcupscgi.a"
LIBCUPSDRIVER="libcupsdriver.a"
LIBCUPSIMAGE="libcupsimage.a"
LIBCUPSMIME="libcupsmime.a"
LIBCUPSPPDC="libcupsppdc.a"
@@ -133,12 +143,20 @@ else
DSOXX=":"
fi
# 32-bit and 64-bit libraries need variations of the standard
# DSOFLAGS...
DSO32FLAGS="$DSOFLAGS"
DSO64FLAGS="$DSOFLAGS"
AC_SUBST(DSO)
AC_SUBST(DSOXX)
AC_SUBST(DSOFLAGS)
AC_SUBST(DSO32FLAGS)
AC_SUBST(DSO64FLAGS)
AC_SUBST(LIBCUPS)
AC_SUBST(LIBCUPSBASE)
AC_SUBST(LIBCUPSCGI)
AC_SUBST(LIBCUPSDRIVER)
AC_SUBST(LIBCUPSIMAGE)
AC_SUBST(LIBCUPSMIME)
AC_SUBST(LIBCUPSPPDC)
@@ -149,6 +167,7 @@ if test x$enable_shared = xno; then
LINKCUPSIMAGE="../filter/libcupsimage.a"
EXTLINKCUPS="-lcups"
EXTLINKCUPSDRIVER="-lcupsdriver"
EXTLINKCUPSIMAGE="-lcupsimage"
else
if test $uname = AIX; then
@@ -156,17 +175,20 @@ else
LINKCUPSIMAGE="-lcupsimage_s"
EXTLINKCUPS="-lcups_s"
EXTLINKCUPSDRIVER="-lcupsdriver_s"
EXTLINKCUPSIMAGE="-lcupsimage_s"
else
LINKCUPS="-l${cupsbase}"
LINKCUPSIMAGE="-lcupsimage"
EXTLINKCUPS="-lcups"
EXTLINKCUPSDRIVER="-lcupsdriver"
EXTLINKCUPSIMAGE="-lcupsimage"
fi
fi
AC_SUBST(EXTLINKCUPS)
AC_SUBST(EXTLINKCUPSDRIVER)
AC_SUBST(EXTLINKCUPSIMAGE)
AC_SUBST(LINKCUPS)
AC_SUBST(LINKCUPSIMAGE)
@@ -179,7 +201,7 @@ if test "$DSO" != ":"; then
# rather than to the executables. This makes things smaller if you
# are using any static libraries, and it also allows us to distribute
# a single DSO rather than a bunch...
DSOLIBS="\$(LIBZ)"
DSOLIBS="\$(LIBTIFF) \$(LIBPNG) \$(LIBJPEG) \$(LIBZ)"
IMGLIBS=""
# Tell the run-time linkers where to find a DSO. Some platforms
@@ -191,9 +213,13 @@ if test "$DSO" != ":"; then
case "$uarch" in
ia64)
DSOFLAGS="-Wl,+s,+b,$libdir $DSOFLAGS"
DSO32FLAGS="-Wl,+s,+b,$LIB32DIR $DSO32FLAGS"
DSO64FLAGS="-Wl,+s,+b,$LIB64DIR $DSO64FLAGS"
;;
*)
DSOFLAGS="+s +b $libdir $DSOFLAGS"
DSO32FLAGS="+s +b $LIB32DIR $DSO32FLAGS"
DSO64FLAGS="+s +b $LIB64DIR $DSO64FLAGS"
;;
esac
LDFLAGS="$LDFLAGS -Wl,+s,+b,$libdir"
@@ -203,6 +229,8 @@ if test "$DSO" != ":"; then
# 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
@@ -211,6 +239,8 @@ if test "$DSO" != ":"; then
# *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
@@ -219,6 +249,8 @@ if test "$DSO" != ":"; then
# 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
@@ -226,7 +258,7 @@ if test "$DSO" != ":"; then
esac
else
DSOLIBS=""
IMGLIBS="\$(LIBZ)"
IMGLIBS="\$(LIBTIFF) \$(LIBPNG) \$(LIBJPEG) \$(LIBZ)"
fi
AC_SUBST(DSOLIBS)
@@ -234,5 +266,5 @@ AC_SUBST(IMGLIBS)
AC_SUBST(EXPORT_LDFLAGS)
dnl
dnl End of "$Id: cups-sharedlibs.m4 10190 2012-01-20 16:22:58Z mike $".
dnl End of "$Id: cups-sharedlibs.m4 9153 2010-06-16 00:48:25Z mike $".
dnl
+38
Ver Arquivo
@@ -0,0 +1,38 @@
dnl
dnl "$Id: cups-slp.m4 9771 2011-05-12 05:21:56Z mike $"
dnl
dnl OpenSLP configuration stuff for CUPS.
dnl
dnl Copyright 2007-2011 by Apple Inc.
dnl Copyright 1997-2005 by Easy Software Products, all rights reserved.
dnl
dnl These coded instructions, statements, and computer programs are the
dnl property of Apple Inc. and are protected by Federal copyright
dnl law. Distribution and use rights are outlined in the file "LICENSE.txt"
dnl which should have been included with this file. If this file is
dnl file is missing or damaged, see the license at "http://www.cups.org/".
dnl
AC_ARG_ENABLE(slp, [ --disable-slp disable SLP support])
AC_ARG_WITH(openslp-libs, [ --with-openslp-libs set directory for OpenSLP library],
LDFLAGS="-L$withval $LDFLAGS"
DSOFLAGS="-L$withval $DSOFLAGS",)
AC_ARG_WITH(openslp-includes, [ --with-openslp-includes set directory for OpenSLP includes],
CFLAGS="-I$withval $CFLAGS"
CPPFLAGS="-I$withval $CPPFLAGS",)
LIBSLP=""
if test x$enable_slp != xno; then
AC_CHECK_HEADER(slp.h,
AC_CHECK_LIB(slp, SLPOpen,
AC_DEFINE(HAVE_LIBSLP)
LIBSLP="-lslp"))
fi
AC_SUBST(LIBSLP)
dnl
dnl End of "$Id: cups-slp.m4 9771 2011-05-12 05:21:56Z mike $".
dnl
+6 -9
Ver Arquivo
@@ -3,7 +3,7 @@
*
* Configuration file for CUPS.
*
* Copyright 2007-2012 by Apple Inc.
* Copyright 2007-2011 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
@@ -62,8 +62,12 @@
*/
#define CUPS_DEFAULT_BROWSING 1
#define CUPS_DEFAULT_BROWSE_LOCAL_PROTOCOLS ""
#define CUPS_DEFAULT_BROWSE_LOCAL_PROTOCOLS "CUPS"
#define CUPS_DEFAULT_BROWSE_REMOTE_PROTOCOLS "CUPS"
#define CUPS_DEFAULT_BROWSE_SHORT_NAMES 1
#define CUPS_DEFAULT_DEFAULT_SHARED 1
#define CUPS_DEFAULT_IMPLICIT_CLASSES 1
#define CUPS_DEFAULT_USE_NETWORK_DEFAULT 1
/*
@@ -737,13 +741,6 @@
#undef HAVE_XPC
/*
* Do we have Mini-XML?
*/
#undef HAVE_MXML_H
#endif /* !_CUPS_CONFIG_H_ */
/*
+6 -1
Ver Arquivo
@@ -3,7 +3,7 @@ dnl "$Id$"
dnl
dnl Configuration script for CUPS.
dnl
dnl Copyright 2007-2012 by Apple Inc.
dnl Copyright 2007-2010 by Apple Inc.
dnl Copyright 1997-2007 by Easy Software Products, all rights reserved.
dnl
dnl These coded instructions, statements, and computer programs are the
@@ -20,13 +20,17 @@ sinclude(config-scripts/cups-common.m4)
sinclude(config-scripts/cups-directories.m4)
sinclude(config-scripts/cups-manpages.m4)
sinclude(config-scripts/cups-3264.m4)
sinclude(config-scripts/cups-sharedlibs.m4)
sinclude(config-scripts/cups-libtool.m4)
sinclude(config-scripts/cups-compiler.m4)
sinclude(config-scripts/cups-image.m4)
sinclude(config-scripts/cups-network.m4)
sinclude(config-scripts/cups-poll.m4)
sinclude(config-scripts/cups-slp.m4)
sinclude(config-scripts/cups-gssapi.m4)
sinclude(config-scripts/cups-ldap.m4)
sinclude(config-scripts/cups-threads.m4)
sinclude(config-scripts/cups-ssl.m4)
sinclude(config-scripts/cups-pam.m4)
@@ -34,6 +38,7 @@ sinclude(config-scripts/cups-largefile.m4)
sinclude(config-scripts/cups-dnssd.m4)
sinclude(config-scripts/cups-launchd.m4)
sinclude(config-scripts/cups-defaults.m4)
sinclude(config-scripts/cups-pdf.m4)
sinclude(config-scripts/cups-scripting.m4)
INSTALL_LANGUAGES=""
+20 -6
Ver Arquivo
@@ -1,10 +1,10 @@
#! /bin/sh
#
# "$Id$"
#
#
# CUPS configuration utility.
#
# Copyright 2007-2011 by Apple Inc.
# Copyright 2007-2010 by Apple Inc.
# Copyright 2001-2006 by Easy Software Products, all rights reserved.
#
# These coded instructions, statements, and computer programs are the
@@ -15,7 +15,7 @@
#
VERSION="@CUPS_VERSION@"
APIVERSION="1.6"
APIVERSION="1.5"
BUILD="@CUPS_BUILD@"
prefix=@prefix@
@@ -35,7 +35,8 @@ INSTALLSTATIC=@INSTALLSTATIC@
# flags for C++ compiler:
CFLAGS=""
LDFLAGS="@EXPORT_LDFLAGS@"
LIBS="@LIBGSSAPI@ @EXPORT_SSLLIBS@ @LIBZ@ @LIBS@"
LIBS="@LIBGSSAPI@ @EXPORT_SSLLIBS@ @EXPORT_LIBZ@ @LIBS@"
IMGLIBS="@EXPORT_LIBTIFF@ @EXPORT_LIBJPEG@ @EXPORT_LIBPNG@"
# Check for local invocation...
selfdir=`dirname $0`
@@ -45,6 +46,9 @@ if test -f "$selfdir/cups/cups.h"; then
LDFLAGS="-L$selfdir/cups -L$selfdir/filter $LDFLAGS"
libdir="$selfdir/cups"
imagelibdir="$selfdir/filter"
if test ! -f "$selfdir/cups/raster.h"; then
ln -s ../filter/raster.h "$selfdir/cups"
fi
else
if test $includedir != /usr/include; then
CFLAGS="$CFLAGS -I$includedir"
@@ -64,7 +68,7 @@ usage ()
echo " cups-config --datadir"
echo " cups-config --help"
echo " cups-config --ldflags"
echo " cups-config [--image] [--static] --libs"
echo " cups-config [--driver] [--image] [--static] --libs"
echo " cups-config --serverbin"
echo " cups-config --serverroot"
echo " cups-config --version"
@@ -79,6 +83,7 @@ fi
# Parse command line options
static=no
image=no
driver=no
while test $# -gt 0; do
case $1 in
@@ -94,6 +99,9 @@ while test $# -gt 0; do
--datadir)
echo $cups_datadir
;;
--driver)
driver=yes
;;
--help)
usage 0
;;
@@ -109,10 +117,16 @@ while test $# -gt 0; do
if test $image = yes; then
libs="@EXTLINKCUPSIMAGE@ $libs"
fi
if test $driver = yes; then
libs="@EXTLINKCUPSDRIVER@ $libs"
fi
else
libs="$libdir/libcups.a $LIBS";
if test $image = yes; then
libs="$libdir/libcupsimage.a $libs"
libs="$libdir/libcupsimage.a $IMGLIBS $libs"
fi
if test $driver = yes; then
libs="$libdir/libcupsdriver.a $libs"
fi
fi
echo $libs
+735 -250
Ver Arquivo
@@ -1,250 +1,735 @@
adminutil.o: adminutil.c cups-private.h ../cups/cups.h file.h \
versioning.h ipp.h http.h array.h language.h string-private.h \
../config.h debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h adminutil.h
array.o: array.c string-private.h ../config.h debug-private.h \
../cups/versioning.h array-private.h ../cups/array.h
attr.o: attr.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h \
http.h array.h language.h string-private.h ../config.h debug-private.h \
ppd-private.h ../cups/ppd.h pwg-private.h http-private.h md5-private.h \
ipp-private.h language-private.h ../cups/transcode.h thread-private.h
auth.o: auth.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h \
http.h array.h language.h string-private.h ../config.h debug-private.h \
ppd-private.h ../cups/ppd.h pwg-private.h http-private.h md5-private.h \
ipp-private.h language-private.h ../cups/transcode.h thread-private.h
backchannel.o: backchannel.c cups.h file.h versioning.h ipp.h http.h \
array.h language.h
backend.o: backend.c cups-private.h ../cups/cups.h file.h versioning.h \
ipp.h http.h array.h language.h string-private.h ../config.h \
debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h backend.h
conflicts.o: conflicts.c cups-private.h ../cups/cups.h file.h \
versioning.h ipp.h http.h array.h language.h string-private.h \
../config.h debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
custom.o: custom.c cups-private.h ../cups/cups.h file.h versioning.h \
ipp.h http.h array.h language.h string-private.h ../config.h \
debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
debug.o: debug.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h \
http.h array.h language.h string-private.h ../config.h debug-private.h \
ppd-private.h ../cups/ppd.h pwg-private.h http-private.h md5-private.h \
ipp-private.h language-private.h ../cups/transcode.h thread-private.h
dest.o: dest.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h \
http.h array.h language.h string-private.h ../config.h debug-private.h \
ppd-private.h ../cups/ppd.h pwg-private.h http-private.h md5-private.h \
ipp-private.h language-private.h ../cups/transcode.h thread-private.h
dest-job.o: dest-job.c cups-private.h ../cups/cups.h file.h versioning.h \
ipp.h http.h array.h language.h string-private.h ../config.h \
debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
dest-localization.o: dest-localization.c cups-private.h ../cups/cups.h \
file.h versioning.h ipp.h http.h array.h language.h string-private.h \
../config.h debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
dest-options.o: dest-options.c cups-private.h ../cups/cups.h file.h \
versioning.h ipp.h http.h array.h language.h string-private.h \
../config.h debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
dir.o: dir.c string-private.h ../config.h debug-private.h \
../cups/versioning.h dir.h
emit.o: emit.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h \
http.h array.h language.h string-private.h ../config.h debug-private.h \
ppd-private.h ../cups/ppd.h pwg-private.h http-private.h md5-private.h \
ipp-private.h language-private.h ../cups/transcode.h thread-private.h
encode.o: encode.c cups-private.h ../cups/cups.h file.h versioning.h \
ipp.h http.h array.h language.h string-private.h ../config.h \
debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
file.o: file.c file-private.h cups-private.h ../cups/cups.h file.h \
versioning.h ipp.h http.h array.h language.h string-private.h \
../config.h debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
getdevices.o: getdevices.c cups-private.h ../cups/cups.h file.h \
versioning.h ipp.h http.h array.h language.h string-private.h \
../config.h debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
getifaddrs.o: getifaddrs.c http-private.h ../config.h ../cups/http.h \
versioning.h array.h md5-private.h ipp-private.h ../cups/ipp.h
getputfile.o: getputfile.c cups-private.h ../cups/cups.h file.h \
versioning.h ipp.h http.h array.h language.h string-private.h \
../config.h debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
globals.o: globals.c cups-private.h ../cups/cups.h file.h versioning.h \
ipp.h http.h array.h language.h string-private.h ../config.h \
debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
http.o: http.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h \
http.h array.h language.h string-private.h ../config.h debug-private.h \
ppd-private.h ../cups/ppd.h pwg-private.h http-private.h md5-private.h \
ipp-private.h language-private.h ../cups/transcode.h thread-private.h
http-addr.o: http-addr.c cups-private.h ../cups/cups.h file.h \
versioning.h ipp.h http.h array.h language.h string-private.h \
../config.h debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
http-addrlist.o: http-addrlist.c cups-private.h ../cups/cups.h file.h \
versioning.h ipp.h http.h array.h language.h string-private.h \
../config.h debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
http-support.o: http-support.c cups-private.h ../cups/cups.h file.h \
versioning.h ipp.h http.h array.h language.h string-private.h \
../config.h debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
ipp.o: ipp.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h \
http.h array.h language.h string-private.h ../config.h debug-private.h \
ppd-private.h ../cups/ppd.h pwg-private.h http-private.h md5-private.h \
ipp-private.h language-private.h ../cups/transcode.h thread-private.h
ipp-support.o: ipp-support.c cups-private.h ../cups/cups.h file.h \
versioning.h ipp.h http.h array.h language.h string-private.h \
../config.h debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
langprintf.o: langprintf.c cups-private.h ../cups/cups.h file.h \
versioning.h ipp.h http.h array.h language.h string-private.h \
../config.h debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
language.o: language.c cups-private.h ../cups/cups.h file.h versioning.h \
ipp.h http.h array.h language.h string-private.h ../config.h \
debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
localize.o: localize.c cups-private.h ../cups/cups.h file.h versioning.h \
ipp.h http.h array.h language.h string-private.h ../config.h \
debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
mark.o: mark.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h \
http.h array.h language.h string-private.h ../config.h debug-private.h \
ppd-private.h ../cups/ppd.h pwg-private.h http-private.h md5-private.h \
ipp-private.h language-private.h ../cups/transcode.h thread-private.h
md5.o: md5.c md5-private.h string-private.h ../config.h
md5passwd.o: md5passwd.c http-private.h ../config.h ../cups/http.h \
versioning.h array.h md5-private.h ipp-private.h ../cups/ipp.h \
string-private.h
notify.o: notify.c cups-private.h ../cups/cups.h file.h versioning.h \
ipp.h http.h array.h language.h string-private.h ../config.h \
debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
options.o: options.c cups-private.h ../cups/cups.h file.h versioning.h \
ipp.h http.h array.h language.h string-private.h ../config.h \
debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
page.o: page.c string-private.h ../config.h debug-private.h \
../cups/versioning.h ppd.h cups.h file.h ipp.h http.h array.h \
language.h
ppd.o: ppd.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h \
http.h array.h language.h string-private.h ../config.h debug-private.h \
ppd-private.h ../cups/ppd.h pwg-private.h http-private.h md5-private.h \
ipp-private.h language-private.h ../cups/transcode.h thread-private.h
ppd-cache.o: ppd-cache.c cups-private.h ../cups/cups.h file.h \
versioning.h ipp.h http.h array.h language.h string-private.h \
../config.h debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
pwg-media.o: pwg-media.c cups-private.h ../cups/cups.h file.h \
versioning.h ipp.h http.h array.h language.h string-private.h \
../config.h debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
request.o: request.c cups-private.h ../cups/cups.h file.h versioning.h \
ipp.h http.h array.h language.h string-private.h ../config.h \
debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
sidechannel.o: sidechannel.c sidechannel.h versioning.h cups-private.h \
../cups/cups.h file.h ipp.h http.h array.h language.h string-private.h \
../config.h debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
snmp.o: snmp.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h \
http.h array.h language.h string-private.h ../config.h debug-private.h \
ppd-private.h ../cups/ppd.h pwg-private.h http-private.h md5-private.h \
ipp-private.h language-private.h ../cups/transcode.h thread-private.h \
snmp-private.h
snprintf.o: snprintf.c string-private.h ../config.h
string.o: string.c string-private.h ../config.h debug-private.h \
../cups/versioning.h thread-private.h array.h
tempfile.o: tempfile.c cups-private.h ../cups/cups.h file.h versioning.h \
ipp.h http.h array.h language.h string-private.h ../config.h \
debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
thread.o: thread.c cups-private.h ../cups/cups.h file.h versioning.h \
ipp.h http.h array.h language.h string-private.h ../config.h \
debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
transcode.o: transcode.c cups-private.h ../cups/cups.h file.h \
versioning.h ipp.h http.h array.h language.h string-private.h \
../config.h debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
usersys.o: usersys.c cups-private.h ../cups/cups.h file.h versioning.h \
ipp.h http.h array.h language.h string-private.h ../config.h \
debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
util.o: util.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h \
http.h array.h language.h string-private.h ../config.h debug-private.h \
ppd-private.h ../cups/ppd.h pwg-private.h http-private.h md5-private.h \
ipp-private.h language-private.h ../cups/transcode.h thread-private.h
testadmin.o: testadmin.c adminutil.h cups.h file.h versioning.h ipp.h \
http.h array.h language.h string-private.h ../config.h
testarray.o: testarray.c string-private.h ../config.h debug-private.h \
../cups/versioning.h array.h dir.h
testconflicts.o: testconflicts.c cups.h file.h versioning.h ipp.h http.h \
array.h language.h ppd.h string-private.h ../config.h
testcups.o: testcups.c string-private.h ../config.h cups.h file.h \
versioning.h ipp.h http.h array.h language.h ppd.h
testfile.o: testfile.c string-private.h ../config.h debug-private.h \
../cups/versioning.h file.h
testhttp.o: testhttp.c string-private.h ../config.h http-private.h \
../cups/http.h versioning.h array.h md5-private.h ipp-private.h \
../cups/ipp.h
testi18n.o: testi18n.c string-private.h ../config.h language-private.h \
../cups/transcode.h language.h array.h versioning.h
testipp.o: testipp.c file.h versioning.h string-private.h ../config.h \
ipp-private.h ../cups/ipp.h http.h array.h
testoptions.o: testoptions.c cups-private.h ../cups/cups.h file.h \
versioning.h ipp.h http.h array.h language.h string-private.h \
../config.h debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
testlang.o: testlang.c cups-private.h ../cups/cups.h file.h versioning.h \
ipp.h http.h array.h language.h string-private.h ../config.h \
debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
testppd.o: testppd.c cups-private.h ../cups/cups.h file.h versioning.h \
ipp.h http.h array.h language.h string-private.h ../config.h \
debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h
testpwg.o: testpwg.c ppd-private.h ../cups/cups.h file.h versioning.h \
ipp.h http.h array.h language.h ../cups/ppd.h pwg-private.h \
file-private.h cups-private.h string-private.h ../config.h \
debug-private.h http-private.h md5-private.h ipp-private.h \
language-private.h ../cups/transcode.h thread-private.h
testsnmp.o: testsnmp.c cups-private.h ../cups/cups.h file.h versioning.h \
ipp.h http.h array.h language.h string-private.h ../config.h \
debug-private.h ppd-private.h ../cups/ppd.h pwg-private.h \
http-private.h md5-private.h ipp-private.h language-private.h \
../cups/transcode.h thread-private.h snmp-private.h
# DO NOT DELETE
adminutil.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
adminutil.o: array.h language.h string-private.h ../config.h debug-private.h
adminutil.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
adminutil.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
adminutil.o: language-private.h ../cups/transcode.h thread-private.h
adminutil.o: adminutil.h
array.o: string-private.h ../config.h debug-private.h array-private.h array.h
array.o: versioning.h
attr.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
attr.o: array.h language.h string-private.h ../config.h debug-private.h
attr.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
attr.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
attr.o: language-private.h ../cups/transcode.h thread-private.h
auth.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
auth.o: array.h language.h string-private.h ../config.h debug-private.h
auth.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
auth.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
auth.o: language-private.h ../cups/transcode.h thread-private.h
backchannel.o: cups.h
backend.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
backend.o: array.h language.h string-private.h ../config.h debug-private.h
backend.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
backend.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
backend.o: language-private.h ../cups/transcode.h thread-private.h backend.h
conflicts.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
conflicts.o: array.h language.h string-private.h ../config.h debug-private.h
conflicts.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
conflicts.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
conflicts.o: language-private.h ../cups/transcode.h thread-private.h
custom.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
custom.o: array.h language.h string-private.h ../config.h debug-private.h
custom.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
custom.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
custom.o: language-private.h ../cups/transcode.h thread-private.h
debug.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
debug.o: array.h language.h string-private.h ../config.h debug-private.h
debug.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
debug.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
debug.o: language-private.h ../cups/transcode.h thread-private.h
dest.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
dest.o: array.h language.h string-private.h ../config.h debug-private.h
dest.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
dest.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
dest.o: language-private.h ../cups/transcode.h thread-private.h
dir.o: string-private.h ../config.h debug-private.h dir.h versioning.h
emit.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
emit.o: array.h language.h string-private.h ../config.h debug-private.h
emit.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
emit.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
emit.o: language-private.h ../cups/transcode.h thread-private.h
encode.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
encode.o: array.h language.h string-private.h ../config.h debug-private.h
encode.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
encode.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
encode.o: language-private.h ../cups/transcode.h thread-private.h
file.o: file-private.h cups-private.h ../cups/cups.h file.h versioning.h
file.o: ipp.h http.h array.h language.h string-private.h ../config.h
file.o: debug-private.h ppd-private.h ../cups/ppd.h cups.h pwg-private.h
file.o: http-private.h ../cups/http.h md5-private.h ipp-private.h
file.o: ../cups/ipp.h language-private.h ../cups/transcode.h thread-private.h
getdevices.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
getdevices.o: array.h language.h string-private.h ../config.h debug-private.h
getdevices.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
getdevices.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
getdevices.o: language-private.h ../cups/transcode.h thread-private.h
getifaddrs.o: http-private.h ../config.h ../cups/http.h md5-private.h
getifaddrs.o: ipp-private.h ../cups/ipp.h
getputfile.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
getputfile.o: array.h language.h string-private.h ../config.h debug-private.h
getputfile.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
getputfile.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
getputfile.o: language-private.h ../cups/transcode.h thread-private.h
globals.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
globals.o: array.h language.h string-private.h ../config.h debug-private.h
globals.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
globals.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
globals.o: language-private.h ../cups/transcode.h thread-private.h
http.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
http.o: array.h language.h string-private.h ../config.h debug-private.h
http.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
http.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
http.o: language-private.h ../cups/transcode.h thread-private.h
http-addr.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
http-addr.o: array.h language.h string-private.h ../config.h debug-private.h
http-addr.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
http-addr.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
http-addr.o: language-private.h ../cups/transcode.h thread-private.h
http-addrlist.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h
http-addrlist.o: http.h array.h language.h string-private.h ../config.h
http-addrlist.o: debug-private.h ppd-private.h ../cups/ppd.h cups.h
http-addrlist.o: pwg-private.h http-private.h ../cups/http.h md5-private.h
http-addrlist.o: ipp-private.h ../cups/ipp.h language-private.h
http-addrlist.o: ../cups/transcode.h thread-private.h
http-support.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h
http-support.o: http.h array.h language.h string-private.h ../config.h
http-support.o: debug-private.h ppd-private.h ../cups/ppd.h cups.h
http-support.o: pwg-private.h http-private.h ../cups/http.h md5-private.h
http-support.o: ipp-private.h ../cups/ipp.h language-private.h
http-support.o: ../cups/transcode.h thread-private.h
ipp.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h array.h
ipp.o: language.h string-private.h ../config.h debug-private.h ppd-private.h
ipp.o: ../cups/ppd.h cups.h pwg-private.h http-private.h ../cups/http.h
ipp.o: md5-private.h ipp-private.h ../cups/ipp.h language-private.h
ipp.o: ../cups/transcode.h thread-private.h
ipp-support.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
ipp-support.o: array.h language.h string-private.h ../config.h
ipp-support.o: debug-private.h ppd-private.h ../cups/ppd.h cups.h
ipp-support.o: pwg-private.h http-private.h ../cups/http.h md5-private.h
ipp-support.o: ipp-private.h ../cups/ipp.h language-private.h
ipp-support.o: ../cups/transcode.h thread-private.h
langprintf.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
langprintf.o: array.h language.h string-private.h ../config.h debug-private.h
langprintf.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
langprintf.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
langprintf.o: language-private.h ../cups/transcode.h thread-private.h
language.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
language.o: array.h language.h string-private.h ../config.h debug-private.h
language.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
language.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
language.o: language-private.h ../cups/transcode.h thread-private.h
localize.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
localize.o: array.h language.h string-private.h ../config.h debug-private.h
localize.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
localize.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
localize.o: language-private.h ../cups/transcode.h thread-private.h
mark.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
mark.o: array.h language.h string-private.h ../config.h debug-private.h
mark.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
mark.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
mark.o: language-private.h ../cups/transcode.h thread-private.h
md5.o: md5-private.h string-private.h ../config.h
md5passwd.o: http-private.h ../config.h ../cups/http.h md5-private.h
md5passwd.o: ipp-private.h ../cups/ipp.h string-private.h
notify.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
notify.o: array.h language.h string-private.h ../config.h debug-private.h
notify.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
notify.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
notify.o: language-private.h ../cups/transcode.h thread-private.h
options.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
options.o: array.h language.h string-private.h ../config.h debug-private.h
options.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
options.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
options.o: language-private.h ../cups/transcode.h thread-private.h
page.o: string-private.h ../config.h debug-private.h ppd.h cups.h array.h
page.o: versioning.h file.h
ppd.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h array.h
ppd.o: language.h string-private.h ../config.h debug-private.h ppd-private.h
ppd.o: ../cups/ppd.h cups.h pwg-private.h http-private.h ../cups/http.h
ppd.o: md5-private.h ipp-private.h ../cups/ipp.h language-private.h
ppd.o: ../cups/transcode.h thread-private.h
ppd-cache.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
ppd-cache.o: array.h language.h string-private.h ../config.h debug-private.h
ppd-cache.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
ppd-cache.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
ppd-cache.o: language-private.h ../cups/transcode.h thread-private.h
pwg-media.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
pwg-media.o: array.h language.h string-private.h ../config.h debug-private.h
pwg-media.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
pwg-media.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
pwg-media.o: language-private.h ../cups/transcode.h thread-private.h
request.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
request.o: array.h language.h string-private.h ../config.h debug-private.h
request.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
request.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
request.o: language-private.h ../cups/transcode.h thread-private.h
sidechannel.o: sidechannel.h versioning.h string-private.h ../config.h
sidechannel.o: debug-private.h
snmp.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
snmp.o: array.h language.h string-private.h ../config.h debug-private.h
snmp.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
snmp.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
snmp.o: language-private.h ../cups/transcode.h thread-private.h
snmp.o: snmp-private.h
snprintf.o: string-private.h ../config.h
string.o: string-private.h ../config.h debug-private.h thread-private.h
string.o: array.h versioning.h
tempfile.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
tempfile.o: array.h language.h string-private.h ../config.h debug-private.h
tempfile.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
tempfile.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
tempfile.o: language-private.h ../cups/transcode.h thread-private.h
thread.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
thread.o: array.h language.h string-private.h ../config.h debug-private.h
thread.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
thread.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
thread.o: language-private.h ../cups/transcode.h thread-private.h
transcode.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
transcode.o: array.h language.h string-private.h ../config.h debug-private.h
transcode.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
transcode.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
transcode.o: language-private.h ../cups/transcode.h thread-private.h
usersys.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
usersys.o: array.h language.h string-private.h ../config.h debug-private.h
usersys.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
usersys.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
usersys.o: language-private.h ../cups/transcode.h thread-private.h
util.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
util.o: array.h language.h string-private.h ../config.h debug-private.h
util.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
util.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
util.o: language-private.h ../cups/transcode.h thread-private.h
testadmin.o: adminutil.h cups.h string-private.h ../config.h
testarray.o: string-private.h ../config.h debug-private.h array.h
testarray.o: versioning.h dir.h
testconflicts.o: cups.h ppd.h array.h versioning.h file.h string-private.h
testconflicts.o: ../config.h
testcups.o: string-private.h ../config.h cups.h ppd.h array.h versioning.h
testcups.o: file.h
testfile.o: string-private.h ../config.h debug-private.h file.h versioning.h
testhttp.o: string-private.h ../config.h http-private.h ../cups/http.h
testhttp.o: md5-private.h ipp-private.h ../cups/ipp.h
testi18n.o: string-private.h ../config.h language-private.h
testi18n.o: ../cups/transcode.h language.h array.h versioning.h
testipp.o: file.h versioning.h string-private.h ../config.h ipp-private.h
testipp.o: ../cups/ipp.h
testoptions.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
testoptions.o: array.h language.h string-private.h ../config.h
testoptions.o: debug-private.h ppd-private.h ../cups/ppd.h cups.h
testoptions.o: pwg-private.h http-private.h ../cups/http.h md5-private.h
testoptions.o: ipp-private.h ../cups/ipp.h language-private.h
testoptions.o: ../cups/transcode.h thread-private.h
testlang.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
testlang.o: array.h language.h string-private.h ../config.h debug-private.h
testlang.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
testlang.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
testlang.o: language-private.h ../cups/transcode.h thread-private.h
testppd.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
testppd.o: array.h language.h string-private.h ../config.h debug-private.h
testppd.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
testppd.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
testppd.o: language-private.h ../cups/transcode.h thread-private.h
testpwg.o: ppd-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
testpwg.o: array.h language.h ../cups/ppd.h cups.h pwg-private.h
testpwg.o: file-private.h cups-private.h string-private.h ../config.h
testpwg.o: debug-private.h http-private.h ../cups/http.h md5-private.h
testpwg.o: ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
testpwg.o: thread-private.h
testsnmp.o: cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
testsnmp.o: array.h language.h string-private.h ../config.h debug-private.h
testsnmp.o: ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
testsnmp.o: ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
testsnmp.o: language-private.h ../cups/transcode.h thread-private.h
testsnmp.o: snmp-private.h
# DO NOT DELETE
adminutil.32.o: adminutil.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
adminutil.32.o: adminutil.c array.h language.h string-private.h ../config.h debug-private.h
adminutil.32.o: adminutil.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
adminutil.32.o: adminutil.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
adminutil.32.o: adminutil.c language-private.h ../cups/transcode.h thread-private.h
adminutil.32.o: adminutil.c adminutil.h
array.32.o: array.c string-private.h ../config.h debug-private.h array-private.h array.h
array.32.o: array.c versioning.h
attr.32.o: attr.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
attr.32.o: attr.c array.h language.h string-private.h ../config.h debug-private.h
attr.32.o: attr.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
attr.32.o: attr.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
attr.32.o: attr.c language-private.h ../cups/transcode.h thread-private.h
auth.32.o: auth.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
auth.32.o: auth.c array.h language.h string-private.h ../config.h debug-private.h
auth.32.o: auth.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
auth.32.o: auth.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
auth.32.o: auth.c language-private.h ../cups/transcode.h thread-private.h
backchannel.32.o: backchannel.c cups.h
backend.32.o: backend.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
backend.32.o: backend.c array.h language.h string-private.h ../config.h debug-private.h
backend.32.o: backend.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
backend.32.o: backend.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
backend.32.o: backend.c language-private.h ../cups/transcode.h thread-private.h backend.h
conflicts.32.o: conflicts.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
conflicts.32.o: conflicts.c array.h language.h string-private.h ../config.h debug-private.h
conflicts.32.o: conflicts.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
conflicts.32.o: conflicts.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
conflicts.32.o: conflicts.c language-private.h ../cups/transcode.h thread-private.h
custom.32.o: custom.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
custom.32.o: custom.c array.h language.h string-private.h ../config.h debug-private.h
custom.32.o: custom.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
custom.32.o: custom.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
custom.32.o: custom.c language-private.h ../cups/transcode.h thread-private.h
debug.32.o: debug.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
debug.32.o: debug.c array.h language.h string-private.h ../config.h debug-private.h
debug.32.o: debug.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
debug.32.o: debug.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
debug.32.o: debug.c language-private.h ../cups/transcode.h thread-private.h
dest.32.o: dest.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
dest.32.o: dest.c array.h language.h string-private.h ../config.h debug-private.h
dest.32.o: dest.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
dest.32.o: dest.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
dest.32.o: dest.c language-private.h ../cups/transcode.h thread-private.h
dir.32.o: dir.c string-private.h ../config.h debug-private.h dir.h versioning.h
emit.32.o: emit.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
emit.32.o: emit.c array.h language.h string-private.h ../config.h debug-private.h
emit.32.o: emit.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
emit.32.o: emit.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
emit.32.o: emit.c language-private.h ../cups/transcode.h thread-private.h
encode.32.o: encode.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
encode.32.o: encode.c array.h language.h string-private.h ../config.h debug-private.h
encode.32.o: encode.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
encode.32.o: encode.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
encode.32.o: encode.c language-private.h ../cups/transcode.h thread-private.h
file.32.o: file.c file-private.h cups-private.h ../cups/cups.h file.h versioning.h
file.32.o: file.c ipp.h http.h array.h language.h string-private.h ../config.h
file.32.o: file.c debug-private.h ppd-private.h ../cups/ppd.h cups.h pwg-private.h
file.32.o: file.c http-private.h ../cups/http.h md5-private.h ipp-private.h
file.32.o: file.c ../cups/ipp.h language-private.h ../cups/transcode.h thread-private.h
getdevices.32.o: getdevices.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
getdevices.32.o: getdevices.c array.h language.h string-private.h ../config.h debug-private.h
getdevices.32.o: getdevices.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
getdevices.32.o: getdevices.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
getdevices.32.o: getdevices.c language-private.h ../cups/transcode.h thread-private.h
getifaddrs.32.o: getifaddrs.c http-private.h ../config.h ../cups/http.h md5-private.h
getifaddrs.32.o: getifaddrs.c ipp-private.h ../cups/ipp.h
getputfile.32.o: getputfile.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
getputfile.32.o: getputfile.c array.h language.h string-private.h ../config.h debug-private.h
getputfile.32.o: getputfile.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
getputfile.32.o: getputfile.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
getputfile.32.o: getputfile.c language-private.h ../cups/transcode.h thread-private.h
globals.32.o: globals.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
globals.32.o: globals.c array.h language.h string-private.h ../config.h debug-private.h
globals.32.o: globals.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
globals.32.o: globals.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
globals.32.o: globals.c language-private.h ../cups/transcode.h thread-private.h
http.32.o: http.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
http.32.o: http.c array.h language.h string-private.h ../config.h debug-private.h
http.32.o: http.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
http.32.o: http.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
http.32.o: http.c language-private.h ../cups/transcode.h thread-private.h
http-addr.32.o: http-addr.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
http-addr.32.o: http-addr.c array.h language.h string-private.h ../config.h debug-private.h
http-addr.32.o: http-addr.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
http-addr.32.o: http-addr.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
http-addr.32.o: http-addr.c language-private.h ../cups/transcode.h thread-private.h
http-addrlist.32.o: http-addrlist.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h
http-addrlist.32.o: http-addrlist.c http.h array.h language.h string-private.h ../config.h
http-addrlist.32.o: http-addrlist.c debug-private.h ppd-private.h ../cups/ppd.h cups.h
http-addrlist.32.o: http-addrlist.c pwg-private.h http-private.h ../cups/http.h md5-private.h
http-addrlist.32.o: http-addrlist.c ipp-private.h ../cups/ipp.h language-private.h
http-addrlist.32.o: http-addrlist.c ../cups/transcode.h thread-private.h
http-support.32.o: http-support.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h
http-support.32.o: http-support.c http.h array.h language.h string-private.h ../config.h
http-support.32.o: http-support.c debug-private.h ppd-private.h ../cups/ppd.h cups.h
http-support.32.o: http-support.c pwg-private.h http-private.h ../cups/http.h md5-private.h
http-support.32.o: http-support.c ipp-private.h ../cups/ipp.h language-private.h
http-support.32.o: http-support.c ../cups/transcode.h thread-private.h
ipp.32.o: ipp.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h array.h
ipp.32.o: ipp.c language.h string-private.h ../config.h debug-private.h ppd-private.h
ipp.32.o: ipp.c ../cups/ppd.h cups.h pwg-private.h http-private.h ../cups/http.h
ipp.32.o: ipp.c md5-private.h ipp-private.h ../cups/ipp.h language-private.h
ipp.32.o: ipp.c ../cups/transcode.h thread-private.h
ipp-support.32.o: ipp-support.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
ipp-support.32.o: ipp-support.c array.h language.h string-private.h ../config.h
ipp-support.32.o: ipp-support.c debug-private.h ppd-private.h ../cups/ppd.h cups.h
ipp-support.32.o: ipp-support.c pwg-private.h http-private.h ../cups/http.h md5-private.h
ipp-support.32.o: ipp-support.c ipp-private.h ../cups/ipp.h language-private.h
ipp-support.32.o: ipp-support.c ../cups/transcode.h thread-private.h
langprintf.32.o: langprintf.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
langprintf.32.o: langprintf.c array.h language.h string-private.h ../config.h debug-private.h
langprintf.32.o: langprintf.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
langprintf.32.o: langprintf.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
langprintf.32.o: langprintf.c language-private.h ../cups/transcode.h thread-private.h
language.32.o: language.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
language.32.o: language.c array.h language.h string-private.h ../config.h debug-private.h
language.32.o: language.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
language.32.o: language.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
language.32.o: language.c language-private.h ../cups/transcode.h thread-private.h
localize.32.o: localize.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
localize.32.o: localize.c array.h language.h string-private.h ../config.h debug-private.h
localize.32.o: localize.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
localize.32.o: localize.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
localize.32.o: localize.c language-private.h ../cups/transcode.h thread-private.h
mark.32.o: mark.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
mark.32.o: mark.c array.h language.h string-private.h ../config.h debug-private.h
mark.32.o: mark.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
mark.32.o: mark.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
mark.32.o: mark.c language-private.h ../cups/transcode.h thread-private.h
md5.32.o: md5.c md5-private.h string-private.h ../config.h
md5passwd.32.o: md5passwd.c http-private.h ../config.h ../cups/http.h md5-private.h
md5passwd.32.o: md5passwd.c ipp-private.h ../cups/ipp.h string-private.h
notify.32.o: notify.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
notify.32.o: notify.c array.h language.h string-private.h ../config.h debug-private.h
notify.32.o: notify.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
notify.32.o: notify.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
notify.32.o: notify.c language-private.h ../cups/transcode.h thread-private.h
options.32.o: options.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
options.32.o: options.c array.h language.h string-private.h ../config.h debug-private.h
options.32.o: options.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
options.32.o: options.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
options.32.o: options.c language-private.h ../cups/transcode.h thread-private.h
page.32.o: page.c string-private.h ../config.h debug-private.h ppd.h cups.h array.h
page.32.o: page.c versioning.h file.h
ppd.32.o: ppd.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h array.h
ppd.32.o: ppd.c language.h string-private.h ../config.h debug-private.h ppd-private.h
ppd.32.o: ppd.c ../cups/ppd.h cups.h pwg-private.h http-private.h ../cups/http.h
ppd.32.o: ppd.c md5-private.h ipp-private.h ../cups/ipp.h language-private.h
ppd.32.o: ppd.c ../cups/transcode.h thread-private.h
ppd-cache.32.o: ppd-cache.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
ppd-cache.32.o: ppd-cache.c array.h language.h string-private.h ../config.h debug-private.h
ppd-cache.32.o: ppd-cache.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
ppd-cache.32.o: ppd-cache.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
ppd-cache.32.o: ppd-cache.c language-private.h ../cups/transcode.h thread-private.h
pwg-media.32.o: pwg-media.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
pwg-media.32.o: pwg-media.c array.h language.h string-private.h ../config.h debug-private.h
pwg-media.32.o: pwg-media.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
pwg-media.32.o: pwg-media.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
pwg-media.32.o: pwg-media.c language-private.h ../cups/transcode.h thread-private.h
request.32.o: request.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
request.32.o: request.c array.h language.h string-private.h ../config.h debug-private.h
request.32.o: request.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
request.32.o: request.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
request.32.o: request.c language-private.h ../cups/transcode.h thread-private.h
sidechannel.32.o: sidechannel.c sidechannel.h versioning.h string-private.h ../config.h
sidechannel.32.o: sidechannel.c debug-private.h
snmp.32.o: snmp.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
snmp.32.o: snmp.c array.h language.h string-private.h ../config.h debug-private.h
snmp.32.o: snmp.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
snmp.32.o: snmp.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
snmp.32.o: snmp.c language-private.h ../cups/transcode.h thread-private.h
snmp.32.o: snmp.c snmp-private.h
snprintf.32.o: snprintf.c string-private.h ../config.h
string.32.o: string.c string-private.h ../config.h debug-private.h thread-private.h
string.32.o: string.c array.h versioning.h
tempfile.32.o: tempfile.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
tempfile.32.o: tempfile.c array.h language.h string-private.h ../config.h debug-private.h
tempfile.32.o: tempfile.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
tempfile.32.o: tempfile.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
tempfile.32.o: tempfile.c language-private.h ../cups/transcode.h thread-private.h
thread.32.o: thread.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
thread.32.o: thread.c array.h language.h string-private.h ../config.h debug-private.h
thread.32.o: thread.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
thread.32.o: thread.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
thread.32.o: thread.c language-private.h ../cups/transcode.h thread-private.h
transcode.32.o: transcode.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
transcode.32.o: transcode.c array.h language.h string-private.h ../config.h debug-private.h
transcode.32.o: transcode.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
transcode.32.o: transcode.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
transcode.32.o: transcode.c language-private.h ../cups/transcode.h thread-private.h
usersys.32.o: usersys.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
usersys.32.o: usersys.c array.h language.h string-private.h ../config.h debug-private.h
usersys.32.o: usersys.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
usersys.32.o: usersys.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
usersys.32.o: usersys.c language-private.h ../cups/transcode.h thread-private.h
util.32.o: util.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
util.32.o: util.c array.h language.h string-private.h ../config.h debug-private.h
util.32.o: util.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
util.32.o: util.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
util.32.o: util.c language-private.h ../cups/transcode.h thread-private.h
testadmin.32.o: testadmin.c adminutil.h cups.h string-private.h ../config.h
testarray.32.o: testarray.c string-private.h ../config.h debug-private.h array.h
testarray.32.o: testarray.c versioning.h dir.h
testconflicts.32.o: testconflicts.c cups.h ppd.h array.h versioning.h file.h string-private.h
testconflicts.32.o: testconflicts.c ../config.h
testcups.32.o: testcups.c string-private.h ../config.h cups.h ppd.h array.h versioning.h
testcups.32.o: testcups.c file.h
testfile.32.o: testfile.c string-private.h ../config.h debug-private.h file.h versioning.h
testhttp.32.o: testhttp.c string-private.h ../config.h http-private.h ../cups/http.h
testhttp.32.o: testhttp.c md5-private.h ipp-private.h ../cups/ipp.h
testi18n.32.o: testi18n.c string-private.h ../config.h language-private.h
testi18n.32.o: testi18n.c ../cups/transcode.h language.h array.h versioning.h
testipp.32.o: testipp.c file.h versioning.h string-private.h ../config.h ipp-private.h
testipp.32.o: testipp.c ../cups/ipp.h
testoptions.32.o: testoptions.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
testoptions.32.o: testoptions.c array.h language.h string-private.h ../config.h
testoptions.32.o: testoptions.c debug-private.h ppd-private.h ../cups/ppd.h cups.h
testoptions.32.o: testoptions.c pwg-private.h http-private.h ../cups/http.h md5-private.h
testoptions.32.o: testoptions.c ipp-private.h ../cups/ipp.h language-private.h
testoptions.32.o: testoptions.c ../cups/transcode.h thread-private.h
testlang.32.o: testlang.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
testlang.32.o: testlang.c array.h language.h string-private.h ../config.h debug-private.h
testlang.32.o: testlang.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
testlang.32.o: testlang.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
testlang.32.o: testlang.c language-private.h ../cups/transcode.h thread-private.h
testppd.32.o: testppd.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
testppd.32.o: testppd.c array.h language.h string-private.h ../config.h debug-private.h
testppd.32.o: testppd.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
testppd.32.o: testppd.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
testppd.32.o: testppd.c language-private.h ../cups/transcode.h thread-private.h
testpwg.32.o: testpwg.c ppd-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
testpwg.32.o: testpwg.c array.h language.h ../cups/ppd.h cups.h pwg-private.h
testpwg.32.o: testpwg.c file-private.h cups-private.h string-private.h ../config.h
testpwg.32.o: testpwg.c debug-private.h http-private.h ../cups/http.h md5-private.h
testpwg.32.o: testpwg.c ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
testpwg.32.o: testpwg.c thread-private.h
testsnmp.32.o: testsnmp.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
testsnmp.32.o: testsnmp.c array.h language.h string-private.h ../config.h debug-private.h
testsnmp.32.o: testsnmp.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
testsnmp.32.o: testsnmp.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
testsnmp.32.o: testsnmp.c language-private.h ../cups/transcode.h thread-private.h
testsnmp.32.o: testsnmp.c snmp-private.h
# DO NOT DELETE
adminutil.64.o: adminutil.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
adminutil.64.o: adminutil.c array.h language.h string-private.h ../config.h debug-private.h
adminutil.64.o: adminutil.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
adminutil.64.o: adminutil.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
adminutil.64.o: adminutil.c language-private.h ../cups/transcode.h thread-private.h
adminutil.64.o: adminutil.c adminutil.h
array.64.o: array.c string-private.h ../config.h debug-private.h array-private.h array.h
array.64.o: array.c versioning.h
attr.64.o: attr.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
attr.64.o: attr.c array.h language.h string-private.h ../config.h debug-private.h
attr.64.o: attr.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
attr.64.o: attr.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
attr.64.o: attr.c language-private.h ../cups/transcode.h thread-private.h
auth.64.o: auth.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
auth.64.o: auth.c array.h language.h string-private.h ../config.h debug-private.h
auth.64.o: auth.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
auth.64.o: auth.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
auth.64.o: auth.c language-private.h ../cups/transcode.h thread-private.h
backchannel.64.o: backchannel.c cups.h
backend.64.o: backend.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
backend.64.o: backend.c array.h language.h string-private.h ../config.h debug-private.h
backend.64.o: backend.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
backend.64.o: backend.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
backend.64.o: backend.c language-private.h ../cups/transcode.h thread-private.h backend.h
conflicts.64.o: conflicts.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
conflicts.64.o: conflicts.c array.h language.h string-private.h ../config.h debug-private.h
conflicts.64.o: conflicts.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
conflicts.64.o: conflicts.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
conflicts.64.o: conflicts.c language-private.h ../cups/transcode.h thread-private.h
custom.64.o: custom.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
custom.64.o: custom.c array.h language.h string-private.h ../config.h debug-private.h
custom.64.o: custom.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
custom.64.o: custom.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
custom.64.o: custom.c language-private.h ../cups/transcode.h thread-private.h
debug.64.o: debug.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
debug.64.o: debug.c array.h language.h string-private.h ../config.h debug-private.h
debug.64.o: debug.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
debug.64.o: debug.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
debug.64.o: debug.c language-private.h ../cups/transcode.h thread-private.h
dest.64.o: dest.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
dest.64.o: dest.c array.h language.h string-private.h ../config.h debug-private.h
dest.64.o: dest.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
dest.64.o: dest.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
dest.64.o: dest.c language-private.h ../cups/transcode.h thread-private.h
dir.64.o: dir.c string-private.h ../config.h debug-private.h dir.h versioning.h
emit.64.o: emit.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
emit.64.o: emit.c array.h language.h string-private.h ../config.h debug-private.h
emit.64.o: emit.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
emit.64.o: emit.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
emit.64.o: emit.c language-private.h ../cups/transcode.h thread-private.h
encode.64.o: encode.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
encode.64.o: encode.c array.h language.h string-private.h ../config.h debug-private.h
encode.64.o: encode.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
encode.64.o: encode.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
encode.64.o: encode.c language-private.h ../cups/transcode.h thread-private.h
file.64.o: file.c file-private.h cups-private.h ../cups/cups.h file.h versioning.h
file.64.o: file.c ipp.h http.h array.h language.h string-private.h ../config.h
file.64.o: file.c debug-private.h ppd-private.h ../cups/ppd.h cups.h pwg-private.h
file.64.o: file.c http-private.h ../cups/http.h md5-private.h ipp-private.h
file.64.o: file.c ../cups/ipp.h language-private.h ../cups/transcode.h thread-private.h
getdevices.64.o: getdevices.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
getdevices.64.o: getdevices.c array.h language.h string-private.h ../config.h debug-private.h
getdevices.64.o: getdevices.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
getdevices.64.o: getdevices.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
getdevices.64.o: getdevices.c language-private.h ../cups/transcode.h thread-private.h
getifaddrs.64.o: getifaddrs.c http-private.h ../config.h ../cups/http.h md5-private.h
getifaddrs.64.o: getifaddrs.c ipp-private.h ../cups/ipp.h
getputfile.64.o: getputfile.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
getputfile.64.o: getputfile.c array.h language.h string-private.h ../config.h debug-private.h
getputfile.64.o: getputfile.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
getputfile.64.o: getputfile.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
getputfile.64.o: getputfile.c language-private.h ../cups/transcode.h thread-private.h
globals.64.o: globals.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
globals.64.o: globals.c array.h language.h string-private.h ../config.h debug-private.h
globals.64.o: globals.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
globals.64.o: globals.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
globals.64.o: globals.c language-private.h ../cups/transcode.h thread-private.h
http.64.o: http.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
http.64.o: http.c array.h language.h string-private.h ../config.h debug-private.h
http.64.o: http.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
http.64.o: http.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
http.64.o: http.c language-private.h ../cups/transcode.h thread-private.h
http-addr.64.o: http-addr.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
http-addr.64.o: http-addr.c array.h language.h string-private.h ../config.h debug-private.h
http-addr.64.o: http-addr.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
http-addr.64.o: http-addr.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
http-addr.64.o: http-addr.c language-private.h ../cups/transcode.h thread-private.h
http-addrlist.64.o: http-addrlist.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h
http-addrlist.64.o: http-addrlist.c http.h array.h language.h string-private.h ../config.h
http-addrlist.64.o: http-addrlist.c debug-private.h ppd-private.h ../cups/ppd.h cups.h
http-addrlist.64.o: http-addrlist.c pwg-private.h http-private.h ../cups/http.h md5-private.h
http-addrlist.64.o: http-addrlist.c ipp-private.h ../cups/ipp.h language-private.h
http-addrlist.64.o: http-addrlist.c ../cups/transcode.h thread-private.h
http-support.64.o: http-support.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h
http-support.64.o: http-support.c http.h array.h language.h string-private.h ../config.h
http-support.64.o: http-support.c debug-private.h ppd-private.h ../cups/ppd.h cups.h
http-support.64.o: http-support.c pwg-private.h http-private.h ../cups/http.h md5-private.h
http-support.64.o: http-support.c ipp-private.h ../cups/ipp.h language-private.h
http-support.64.o: http-support.c ../cups/transcode.h thread-private.h
ipp.64.o: ipp.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h array.h
ipp.64.o: ipp.c language.h string-private.h ../config.h debug-private.h ppd-private.h
ipp.64.o: ipp.c ../cups/ppd.h cups.h pwg-private.h http-private.h ../cups/http.h
ipp.64.o: ipp.c md5-private.h ipp-private.h ../cups/ipp.h language-private.h
ipp.64.o: ipp.c ../cups/transcode.h thread-private.h
ipp-support.64.o: ipp-support.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
ipp-support.64.o: ipp-support.c array.h language.h string-private.h ../config.h
ipp-support.64.o: ipp-support.c debug-private.h ppd-private.h ../cups/ppd.h cups.h
ipp-support.64.o: ipp-support.c pwg-private.h http-private.h ../cups/http.h md5-private.h
ipp-support.64.o: ipp-support.c ipp-private.h ../cups/ipp.h language-private.h
ipp-support.64.o: ipp-support.c ../cups/transcode.h thread-private.h
langprintf.64.o: langprintf.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
langprintf.64.o: langprintf.c array.h language.h string-private.h ../config.h debug-private.h
langprintf.64.o: langprintf.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
langprintf.64.o: langprintf.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
langprintf.64.o: langprintf.c language-private.h ../cups/transcode.h thread-private.h
language.64.o: language.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
language.64.o: language.c array.h language.h string-private.h ../config.h debug-private.h
language.64.o: language.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
language.64.o: language.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
language.64.o: language.c language-private.h ../cups/transcode.h thread-private.h
localize.64.o: localize.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
localize.64.o: localize.c array.h language.h string-private.h ../config.h debug-private.h
localize.64.o: localize.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
localize.64.o: localize.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
localize.64.o: localize.c language-private.h ../cups/transcode.h thread-private.h
mark.64.o: mark.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
mark.64.o: mark.c array.h language.h string-private.h ../config.h debug-private.h
mark.64.o: mark.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
mark.64.o: mark.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
mark.64.o: mark.c language-private.h ../cups/transcode.h thread-private.h
md5.64.o: md5.c md5-private.h string-private.h ../config.h
md5passwd.64.o: md5passwd.c http-private.h ../config.h ../cups/http.h md5-private.h
md5passwd.64.o: md5passwd.c ipp-private.h ../cups/ipp.h string-private.h
notify.64.o: notify.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
notify.64.o: notify.c array.h language.h string-private.h ../config.h debug-private.h
notify.64.o: notify.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
notify.64.o: notify.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
notify.64.o: notify.c language-private.h ../cups/transcode.h thread-private.h
options.64.o: options.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
options.64.o: options.c array.h language.h string-private.h ../config.h debug-private.h
options.64.o: options.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
options.64.o: options.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
options.64.o: options.c language-private.h ../cups/transcode.h thread-private.h
page.64.o: page.c string-private.h ../config.h debug-private.h ppd.h cups.h array.h
page.64.o: page.c versioning.h file.h
ppd.64.o: ppd.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h array.h
ppd.64.o: ppd.c language.h string-private.h ../config.h debug-private.h ppd-private.h
ppd.64.o: ppd.c ../cups/ppd.h cups.h pwg-private.h http-private.h ../cups/http.h
ppd.64.o: ppd.c md5-private.h ipp-private.h ../cups/ipp.h language-private.h
ppd.64.o: ppd.c ../cups/transcode.h thread-private.h
ppd-cache.64.o: ppd-cache.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
ppd-cache.64.o: ppd-cache.c array.h language.h string-private.h ../config.h debug-private.h
ppd-cache.64.o: ppd-cache.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
ppd-cache.64.o: ppd-cache.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
ppd-cache.64.o: ppd-cache.c language-private.h ../cups/transcode.h thread-private.h
pwg-media.64.o: pwg-media.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
pwg-media.64.o: pwg-media.c array.h language.h string-private.h ../config.h debug-private.h
pwg-media.64.o: pwg-media.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
pwg-media.64.o: pwg-media.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
pwg-media.64.o: pwg-media.c language-private.h ../cups/transcode.h thread-private.h
request.64.o: request.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
request.64.o: request.c array.h language.h string-private.h ../config.h debug-private.h
request.64.o: request.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
request.64.o: request.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
request.64.o: request.c language-private.h ../cups/transcode.h thread-private.h
sidechannel.64.o: sidechannel.c sidechannel.h versioning.h string-private.h ../config.h
sidechannel.64.o: sidechannel.c debug-private.h
snmp.64.o: snmp.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
snmp.64.o: snmp.c array.h language.h string-private.h ../config.h debug-private.h
snmp.64.o: snmp.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
snmp.64.o: snmp.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
snmp.64.o: snmp.c language-private.h ../cups/transcode.h thread-private.h
snmp.64.o: snmp.c snmp-private.h
snprintf.64.o: snprintf.c string-private.h ../config.h
string.64.o: string.c string-private.h ../config.h debug-private.h thread-private.h
string.64.o: string.c array.h versioning.h
tempfile.64.o: tempfile.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
tempfile.64.o: tempfile.c array.h language.h string-private.h ../config.h debug-private.h
tempfile.64.o: tempfile.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
tempfile.64.o: tempfile.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
tempfile.64.o: tempfile.c language-private.h ../cups/transcode.h thread-private.h
thread.64.o: thread.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
thread.64.o: thread.c array.h language.h string-private.h ../config.h debug-private.h
thread.64.o: thread.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
thread.64.o: thread.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
thread.64.o: thread.c language-private.h ../cups/transcode.h thread-private.h
transcode.64.o: transcode.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
transcode.64.o: transcode.c array.h language.h string-private.h ../config.h debug-private.h
transcode.64.o: transcode.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
transcode.64.o: transcode.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
transcode.64.o: transcode.c language-private.h ../cups/transcode.h thread-private.h
usersys.64.o: usersys.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
usersys.64.o: usersys.c array.h language.h string-private.h ../config.h debug-private.h
usersys.64.o: usersys.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
usersys.64.o: usersys.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
usersys.64.o: usersys.c language-private.h ../cups/transcode.h thread-private.h
util.64.o: util.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
util.64.o: util.c array.h language.h string-private.h ../config.h debug-private.h
util.64.o: util.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
util.64.o: util.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
util.64.o: util.c language-private.h ../cups/transcode.h thread-private.h
testadmin.64.o: testadmin.c adminutil.h cups.h string-private.h ../config.h
testarray.64.o: testarray.c string-private.h ../config.h debug-private.h array.h
testarray.64.o: testarray.c versioning.h dir.h
testconflicts.64.o: testconflicts.c cups.h ppd.h array.h versioning.h file.h string-private.h
testconflicts.64.o: testconflicts.c ../config.h
testcups.64.o: testcups.c string-private.h ../config.h cups.h ppd.h array.h versioning.h
testcups.64.o: testcups.c file.h
testfile.64.o: testfile.c string-private.h ../config.h debug-private.h file.h versioning.h
testhttp.64.o: testhttp.c string-private.h ../config.h http-private.h ../cups/http.h
testhttp.64.o: testhttp.c md5-private.h ipp-private.h ../cups/ipp.h
testi18n.64.o: testi18n.c string-private.h ../config.h language-private.h
testi18n.64.o: testi18n.c ../cups/transcode.h language.h array.h versioning.h
testipp.64.o: testipp.c file.h versioning.h string-private.h ../config.h ipp-private.h
testipp.64.o: testipp.c ../cups/ipp.h
testoptions.64.o: testoptions.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
testoptions.64.o: testoptions.c array.h language.h string-private.h ../config.h
testoptions.64.o: testoptions.c debug-private.h ppd-private.h ../cups/ppd.h cups.h
testoptions.64.o: testoptions.c pwg-private.h http-private.h ../cups/http.h md5-private.h
testoptions.64.o: testoptions.c ipp-private.h ../cups/ipp.h language-private.h
testoptions.64.o: testoptions.c ../cups/transcode.h thread-private.h
testlang.64.o: testlang.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
testlang.64.o: testlang.c array.h language.h string-private.h ../config.h debug-private.h
testlang.64.o: testlang.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
testlang.64.o: testlang.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
testlang.64.o: testlang.c language-private.h ../cups/transcode.h thread-private.h
testppd.64.o: testppd.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
testppd.64.o: testppd.c array.h language.h string-private.h ../config.h debug-private.h
testppd.64.o: testppd.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
testppd.64.o: testppd.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
testppd.64.o: testppd.c language-private.h ../cups/transcode.h thread-private.h
testpwg.64.o: testpwg.c ppd-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
testpwg.64.o: testpwg.c array.h language.h ../cups/ppd.h cups.h pwg-private.h
testpwg.64.o: testpwg.c file-private.h cups-private.h string-private.h ../config.h
testpwg.64.o: testpwg.c debug-private.h http-private.h ../cups/http.h md5-private.h
testpwg.64.o: testpwg.c ipp-private.h ../cups/ipp.h language-private.h ../cups/transcode.h
testpwg.64.o: testpwg.c thread-private.h
testsnmp.64.o: testsnmp.c cups-private.h ../cups/cups.h file.h versioning.h ipp.h http.h
testsnmp.64.o: testsnmp.c array.h language.h string-private.h ../config.h debug-private.h
testsnmp.64.o: testsnmp.c ppd-private.h ../cups/ppd.h cups.h pwg-private.h http-private.h
testsnmp.64.o: testsnmp.c ../cups/http.h md5-private.h ipp-private.h ../cups/ipp.h
testsnmp.64.o: testsnmp.c language-private.h ../cups/transcode.h thread-private.h
testsnmp.64.o: testsnmp.c snmp-private.h
+70 -15
Ver Arquivo
@@ -3,7 +3,7 @@
#
# API library Makefile for CUPS.
#
# Copyright 2007-2012 by Apple Inc.
# Copyright 2007-2011 by Apple Inc.
# Copyright 1997-2006 by Easy Software Products, all rights reserved.
#
# These coded instructions, statements, and computer programs are the
@@ -32,9 +32,6 @@ LIBOBJS = \
custom.o \
debug.o \
dest.o \
dest-job.o \
dest-localization.o \
dest-options.o \
dir.o \
emit.o \
encode.o \
@@ -71,7 +68,12 @@ LIBOBJS = \
transcode.o \
usersys.o \
util.o
TESTOBJS = \
LIB32OBJS = $(LIBOBJS:.o=.32.o)
LIB64OBJS = $(LIBOBJS:.o=.64.o)
OBJS = \
$(LIBOBJS) \
$(LIB32OBJS) \
$(LIB64OBJS) \
testadmin.o \
testarray.o \
testconflicts.o \
@@ -85,9 +87,6 @@ TESTOBJS = \
testppd.o \
testpwg.o \
testsnmp.o
OBJS = \
$(LIBOBJS) \
$(TESTOBJS)
#
@@ -121,7 +120,6 @@ HEADERSPRIV = \
md5-private.h \
ppd-private.h \
pwg-private.h \
raster-private.h \
snmp-private.h \
string-private.h \
thread-private.h
@@ -133,7 +131,9 @@ HEADERSPRIV = \
LIBTARGETS = \
$(LIBCUPSSTATIC) \
$(LIBCUPS)
$(LIBCUPS) \
$(LIB32CUPS) \
$(LIB64CUPS)
UNITTARGETS = \
testadmin \
@@ -182,6 +182,7 @@ unittests: $(UNITTARGETS)
clean:
$(RM) $(OBJS) $(TARGETS) $(UNITTARGETS)
$(RM) libcups.so libcups.sl libcups.dylib
$(RM) -r 32bit 64bit
#
@@ -189,7 +190,13 @@ clean:
#
depend:
$(CC) -MM $(ALL_CFLAGS) $(OBJS:.o=.c) >Dependencies
touch Dependencies.tmp
makedepend -Y -I.. -fDependencies.tmp $(OBJS:.o=.c) >/dev/null 2>&1
$(RM) Dependencies
cp Dependencies.tmp Dependencies
sed -E -e '1,$$s/^([^.]+)\.o:/\1\.32.o: \1\.c /' Dependencies.tmp >>Dependencies
sed -E -e '1,$$s/^([^.]+)\.o:/\1\.64.o: \1\.c /' Dependencies.tmp >>Dependencies
$(RM) Dependencies.tmp
#
@@ -236,7 +243,7 @@ install-headers:
# Install libraries...
#
install-libs: $(INSTALLSTATIC)
install-libs: $(INSTALLSTATIC) $(INSTALL32) $(INSTALL64)
echo Installing libraries in $(LIBDIR)...
$(INSTALL_DIR) -m 755 $(LIBDIR)
$(INSTALL_LIB) $(LIBCUPS) $(LIBDIR)
@@ -259,12 +266,24 @@ installstatic:
$(RANLIB) $(LIBDIR)/$(LIBCUPSSTATIC)
$(CHMOD) 555 $(LIBDIR)/$(LIBCUPSSTATIC)
install32bit:
echo Installing libraries in $(LIB32DIR)...
$(INSTALL_DIR) -m 755 $(LIB32DIR)
$(INSTALL_LIB) 32bit/libcups.so.2 $(LIB32DIR)/libcups.so.2
$(LN) libcups.so.2 $(LIB32DIR)/libcups.so
install64bit:
echo Installing libraries in $(LIB64DIR)...
$(INSTALL_DIR) -m 755 $(LIB64DIR)
$(INSTALL_LIB) 64bit/libcups.so.2 $(LIB64DIR)/libcups.so.2
$(LN) libcups.so.2 $(LIB64DIR)/libcups.so
#
# Uninstall object and target files...
#
uninstall:
uninstall: $(UNINSTALL32) $(UNINSTALL64)
$(RM) $(LIBDIR)/libcups.2.dylib
$(RM) $(LIBDIR)/$(LIBCUPSSTATIC)
$(RM) $(LIBDIR)/libcups.dylib
@@ -279,6 +298,16 @@ uninstall:
done
-$(RMDIR) $(INCLUDEDIR)/cups
uninstall32bit:
$(RM) $(LIB32DIR)/libcups.so
$(RM) $(LIB32DIR)/libcups.so.2
-$(RMDIR) $(LIB32DIR)
uninstall64bit:
$(RM) $(LIB64DIR)/libcups.so
$(RM) $(LIB64DIR)/libcups.so.2
-$(RMDIR) $(LIB64DIR)
#
# libcups.so.2, libcups.sl.2
@@ -292,6 +321,32 @@ libcups.so.2 libcups.sl.2: $(LIBOBJS)
$(LN) $@ `basename $@ .2`
#
# 32bit/libcups.so.2
#
32bit/libcups.so.2: $(LIB32OBJS)
echo Linking 32-bit $@...
-mkdir 32bit
$(DSO) $(ARCH32FLAGS) $(DSO32FLAGS) -o $@ $(LIB32OBJS) $(LIBGSSAPI) \
$(DNSSDLIBS) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
$(RM) 32bit/libcups.so
$(LN) libcups.so.2 32bit/libcups.so
#
# 64bit/libcups.so.2
#
64bit/libcups.so.2: $(LIB64OBJS)
echo Linking 64-bit $@...
-mkdir 64bit
$(DSO) $(ARCH64FLAGS) $(DSO64FLAGS) -o $@ $(LIB64OBJS) $(LIBGSSAPI) \
$(DNSSDLIBS) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
$(RM) 64bit/libcups.so
$(LN) libcups.so.2 64bit/libcups.so
#
# libcups.2.dylib
#
@@ -530,7 +585,7 @@ apihelp:
file.h file.c dir.h dir.c >../doc/help/api-filedir.html
mxmldoc --tokens api-filedir.xml >../doc/help/api-filedir.tokens
$(RM) api-filedir.xml
mxmldoc --section "Programming" --title "PPD API (DEPRECATED)" \
mxmldoc --section "Programming" --title "PPD API" \
--css ../doc/cups-printable.css \
--header api-ppd.header --intro api-ppd.shtml \
api-ppd.xml \
@@ -582,7 +637,7 @@ framedhelp:
--header api-filedir.header --intro api-filedir.shtml \
file.h file.c dir.h dir.c
mxmldoc --framed api-ppd \
--section "Programming" --title "PPD API (DEPRECATED)" \
--section "Programming" --title "PPD API" \
--css ../doc/cups-printable.css \
--header api-ppd.header --intro api-ppd.shtml \
ppd.h attr.c conflicts.c custom.c emit.c localize.c mark.c \
+140 -23
Ver Arquivo
@@ -970,6 +970,8 @@ cupsAdminGetServerSettings(
remote_admin = 0, /* Remote administration allowed? */
remote_any = 0, /* Remote access from anywhere allowed? */
browsing = 1, /* Browsing enabled? */
browse_allow = 1, /* Browse address set? */
browse_address = 0, /* Browse address set? */
cancel_policy = 1, /* Cancel-job policy set? */
debug_logging = 0; /* LogLevel debug set? */
int linenum = 0, /* Line number in file */
@@ -1018,16 +1020,26 @@ cupsAdminGetServerSettings(
}
else if (!_cups_strcasecmp(line, "Browsing"))
{
browsing = !_cups_strcasecmp(value, "yes") ||
!_cups_strcasecmp(value, "on") ||
browsing = !_cups_strcasecmp(value, "yes") || !_cups_strcasecmp(value, "on") ||
!_cups_strcasecmp(value, "true");
}
else if (!_cups_strcasecmp(line, "BrowseAddress"))
{
browse_address = 1;
}
else if (!_cups_strcasecmp(line, "BrowseAllow"))
{
browse_allow = 1;
}
else if (!_cups_strcasecmp(line, "BrowseOrder"))
{
browse_allow = !_cups_strncasecmp(value, "deny,", 5);
}
else if (!_cups_strcasecmp(line, "LogLevel"))
{
debug_logging = !_cups_strncasecmp(value, "debug", 5);
}
else if (!_cups_strcasecmp(line, "<Policy") &&
!_cups_strcasecmp(value, "default"))
else if (!_cups_strcasecmp(line, "<Policy") && !_cups_strcasecmp(value, "default"))
{
in_policy = 1;
}
@@ -1051,8 +1063,7 @@ cupsAdminGetServerSettings(
if (*valptr)
*valptr++ = '\0';
if (!_cups_strcasecmp(value, "cancel-job") ||
!_cups_strcasecmp(value, "all"))
if (!_cups_strcasecmp(value, "cancel-job") || !_cups_strcasecmp(value, "all"))
{
in_cancel_job = 1;
break;
@@ -1080,8 +1091,7 @@ cupsAdminGetServerSettings(
in_location = 0;
}
else if (!_cups_strcasecmp(line, "Allow") && value &&
_cups_strcasecmp(value, "localhost") &&
_cups_strcasecmp(value, "127.0.0.1")
_cups_strcasecmp(value, "localhost") && _cups_strcasecmp(value, "127.0.0.1")
#ifdef AF_LOCAL
&& *value != '/'
#endif /* AF_LOCAL */
@@ -1125,9 +1135,15 @@ cupsAdminGetServerSettings(
cg->cupsd_num_settings,
&(cg->cupsd_settings));
cg->cupsd_num_settings = cupsAddOption(CUPS_SERVER_REMOTE_PRINTERS,
(browsing && browse_allow) ?
"1" : "0",
cg->cupsd_num_settings,
&(cg->cupsd_settings));
cg->cupsd_num_settings = cupsAddOption(CUPS_SERVER_SHARE_PRINTERS,
(remote_access && browsing) ? "1" :
"0",
(remote_access && browsing &&
browse_address) ? "1" : "0",
cg->cupsd_num_settings,
&(cg->cupsd_settings));
@@ -1188,7 +1204,8 @@ cupsAdminSetServerSettings(
in_conf_location, /* In the /admin/conf location? */
in_root_location; /* In the / location? */
const char *val; /* Setting value */
int share_printers, /* Share local printers */
int remote_printers, /* Show remote printers */
share_printers, /* Share local printers */
remote_admin, /* Remote administration allowed? */
remote_any, /* Remote access from anywhere? */
user_cancel_any, /* Cancel-job policy set? */
@@ -1202,7 +1219,8 @@ cupsAdminSetServerSettings(
wrote_root_location; /* Wrote the / location? */
int indent; /* Indentation */
int cupsd_num_settings; /* New number of settings */
int old_share_printers, /* Share local printers */
int old_remote_printers, /* Show remote printers */
old_share_printers, /* Share local printers */
old_remote_admin, /* Remote administration allowed? */
old_user_cancel_any, /* Cancel-job policy set? */
old_debug_logging; /* LogLevel debug set? */
@@ -1276,6 +1294,15 @@ cupsAdminSetServerSettings(
DEBUG_printf(("1cupsAdminSetServerSettings: old remote_any=%d",
remote_any));
if ((val = cupsGetOption(CUPS_SERVER_REMOTE_PRINTERS, cupsd_num_settings,
cupsd_settings)) != NULL)
old_remote_printers = atoi(val);
else
old_remote_printers = 1;
DEBUG_printf(("1cupsAdminSetServerSettings: old remote_printers=%d",
old_remote_printers));
if ((val = cupsGetOption(CUPS_SERVER_SHARE_PRINTERS, cupsd_num_settings,
cupsd_settings)) != NULL)
old_share_printers = atoi(val);
@@ -1347,6 +1374,26 @@ cupsAdminSetServerSettings(
DEBUG_printf(("1cupsAdminSetServerSettings: remote_admin=%d",
remote_admin));
if ((val = cupsGetOption(CUPS_SERVER_REMOTE_PRINTERS, num_settings,
settings)) != NULL)
{
remote_printers = atoi(val);
if (remote_printers == old_remote_printers)
{
/*
* No change to this setting...
*/
remote_printers = -1;
}
}
else
remote_printers = -1;
DEBUG_printf(("1cupsAdminSetServerSettings: remote_printers=%d",
remote_printers));
if ((val = cupsGetOption(CUPS_SERVER_SHARE_PRINTERS, num_settings,
settings)) != NULL)
{
@@ -1470,33 +1517,80 @@ cupsAdminSetServerSettings(
cupsFilePrintf(temp, "Listen %s\n", value);
}
else if ((!_cups_strcasecmp(line, "Browsing") ||
!_cups_strcasecmp(line, "BrowseLocalProtocols")) &&
share_printers >= 0)
!_cups_strcasecmp(line, "BrowseAddress") ||
!_cups_strcasecmp(line, "BrowseAllow") ||
!_cups_strcasecmp(line, "BrowseDeny") ||
!_cups_strcasecmp(line, "BrowseLocalProtocols") ||
!_cups_strcasecmp(line, "BrowseRemoteProtocols") ||
!_cups_strcasecmp(line, "BrowseOrder")) &&
(remote_printers >= 0 || share_printers >= 0))
{
if (!wrote_browsing)
{
int new_remote_printers = (remote_printers > 0 ||
(remote_printers == -1 &&
old_remote_printers > 0));
int new_share_printers = (share_printers > 0 ||
(share_printers == -1 &&
old_share_printers > 0));
wrote_browsing = 1;
if (new_share_printers)
if (new_remote_printers || new_share_printers)
{
const char *localp = cupsGetOption("BrowseLocalProtocols",
num_settings, settings);
const char *remotep = cupsGetOption("BrowseRemoteProtocols",
num_settings, settings);
if (!localp || !localp[0])
localp = cupsGetOption("BrowseLocalProtocols", cupsd_num_settings,
cupsd_settings);
cupsFilePuts(temp, "# Share local printers on the local network.\n");
if (!remotep)
remotep = cupsGetOption("BrowseRemoteProtocols", cupsd_num_settings,
cupsd_settings);
if (new_remote_printers && new_share_printers)
cupsFilePuts(temp,
"# Enable printer sharing and shared printers.\n");
else if (new_remote_printers)
cupsFilePuts(temp,
"# Show shared printers on the local network.\n");
else
cupsFilePuts(temp,
"# Share local printers on the local network.\n");
cupsFilePuts(temp, "Browsing On\n");
cupsFilePuts(temp, "BrowseOrder allow,deny\n");
if (!localp)
localp = CUPS_DEFAULT_BROWSE_LOCAL_PROTOCOLS;
if (new_remote_printers)
{
cupsFilePuts(temp, "BrowseAllow all\n");
cupsFilePrintf(temp, "BrowseLocalProtocols %s\n", localp);
if (!remotep)
remotep = CUPS_DEFAULT_BROWSE_REMOTE_PROTOCOLS;
cupsFilePrintf(temp, "BrowseRemoteProtocols %s\n", remotep);
}
else
cupsFilePuts(temp, "BrowseRemoteProtocols\n");
cupsd_num_settings = cupsAddOption("BrowseRemoteProtocols", remotep,
cupsd_num_settings,
&cupsd_settings);
if (new_share_printers)
{
cupsFilePuts(temp, "BrowseAddress @LOCAL\n");
if (!localp)
localp = CUPS_DEFAULT_BROWSE_LOCAL_PROTOCOLS;
cupsFilePrintf(temp, "BrowseLocalProtocols %s\n", localp);
}
else
cupsFilePuts(temp, "BrowseLocalProtocols\n");
cupsd_num_settings = cupsAddOption("BrowseLocalProtocols", localp,
cupsd_num_settings,
@@ -1504,7 +1598,8 @@ cupsAdminSetServerSettings(
}
else
{
cupsFilePuts(temp, "# Disable printer sharing.\n");
cupsFilePuts(temp,
"# Disable printer sharing and shared printers.\n");
cupsFilePuts(temp, "Browsing Off\n");
}
}
@@ -1770,12 +1865,25 @@ cupsAdminSetServerSettings(
* Write any missing info...
*/
if (!wrote_browsing && share_printers >= 0)
if (!wrote_browsing && (remote_printers >= 0 || share_printers >= 0))
{
if (share_printers > 0)
if (remote_printers > 0 || share_printers > 0)
{
cupsFilePuts(temp, "# Share local printers on the local network.\n");
if (remote_printers > 0 && share_printers > 0)
cupsFilePuts(temp, "# Enable printer sharing and shared printers.\n");
else if (remote_printers > 0)
cupsFilePuts(temp, "# Show shared printers on the local network.\n");
else
cupsFilePuts(temp, "# Share local printers on the local network.\n");
cupsFilePuts(temp, "Browsing On\n");
cupsFilePuts(temp, "BrowseOrder allow,deny\n");
if (remote_printers > 0)
cupsFilePuts(temp, "BrowseAllow all\n");
if (share_printers > 0)
cupsFilePuts(temp, "BrowseAddress @LOCAL\n");
}
else
{
@@ -1982,6 +2090,15 @@ cupsAdminSetServerSettings(
remote_any ? "1" : "0",
cupsd_num_settings, &cupsd_settings);
if (remote_printers >= 0)
cupsd_num_settings = cupsAddOption(CUPS_SERVER_REMOTE_PRINTERS,
remote_printers ? "1" : "0",
cupsd_num_settings, &cupsd_settings);
else
cupsd_num_settings = cupsAddOption(CUPS_SERVER_REMOTE_PRINTERS,
old_remote_printers ? "1" : "0",
cupsd_num_settings, &cupsd_settings);
if (share_printers >= 0)
cupsd_num_settings = cupsAddOption(CUPS_SERVER_SHARE_PRINTERS,
share_printers ? "1" : "0",
+2 -2
Ver Arquivo
@@ -3,7 +3,7 @@
*
* Administration utility API definitions for CUPS.
*
* Copyright 2007-2011 by Apple Inc.
* Copyright 2007-2010 by Apple Inc.
* Copyright 2001-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
@@ -42,7 +42,7 @@ extern "C" {
# define CUPS_SERVER_DEBUG_LOGGING "_debug_logging"
# define CUPS_SERVER_REMOTE_ADMIN "_remote_admin"
# define CUPS_SERVER_REMOTE_ANY "_remote_any"
/*# define CUPS_SERVER_REMOTE_PRINTERS "_remote_printers"*/
# define CUPS_SERVER_REMOTE_PRINTERS "_remote_printers"
# define CUPS_SERVER_SHARE_PRINTERS "_share_printers"
# define CUPS_SERVER_USER_CANCEL_ANY "_user_cancel_any"
+2 -4
Ver Arquivo
@@ -1,5 +1,5 @@
<!--
"$Id: api-ppd.header 10103 2011-11-03 20:44:57Z mike $"
"$Id: api-ppd.header 9771 2011-05-12 05:21:56Z mike $"
PPD API header for CUPS.
@@ -12,9 +12,7 @@
file is missing or damaged, see the license at "http://www.cups.org/".
-->
<h1 class='title'>PPD API (DEPRECATED)</h1>
<blockquote>The PPD API is deprecated starting in CUPS 1.6. Please use the new Job Ticket APIs in the <a href="api-cups.html">CUPS API</a> documentation. These functions will be removed in a future release of CUPS.</blockquote>
<h1 class='title'>PPD API</h1>
<div class='summary'><table summary='General Information'>
<thead>
+1 -3
Ver Arquivo
@@ -1,5 +1,5 @@
<!--
"$Id: api-ppd.shtml 10103 2011-11-03 20:44:57Z mike $"
"$Id: api-ppd.shtml 9727 2011-04-28 21:20:12Z mike $"
PPD API introduction for CUPS.
@@ -15,8 +15,6 @@
<h2 class='title'><a name='OVERVIEW'>Overview</a></h2>
<blockquote>The PPD API is deprecated starting in CUPS 1.6. Please use the new Job Ticket APIs in the <a href="api-cups.html">CUPS API</a> documentation. These functions will be removed in a future release of CUPS.</blockquote>
<p>The CUPS PPD API provides read-only access the data in PostScript Printer
Description ("PPD") files which are used for all printers with a driver. With
it you can obtain the data necessary to display printer options to users, mark
+4 -53
Ver Arquivo
@@ -3,7 +3,7 @@
*
* Private definitions for CUPS.
*
* Copyright 2007-2012 by Apple Inc.
* Copyright 2007-2011 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
@@ -50,14 +50,6 @@ extern "C" {
* Types...
*/
typedef struct _cups_buffer_s /**** Read/write buffer ****/
{
struct _cups_buffer_s *next; /* Next buffer in list */
size_t size; /* Size of buffer */
char used, /* Is this buffer used? */
d[1]; /* Data buffer */
} _cups_buffer_t;
typedef struct _cups_globals_s /**** CUPS global state data ****/
{
/* Multiple places... */
@@ -103,7 +95,7 @@ typedef struct _cups_globals_s /**** CUPS global state data ****/
/* ipp.c */
ipp_uchar_t ipp_date[11]; /* RFC-1903 date/time data */
_cups_buffer_t *cups_buffers; /* Buffer list */
_ipp_buffer_t *ipp_buffers; /* Buffer list */
/* ipp-support.c */
int ipp_port; /* IPP port number */
@@ -146,8 +138,7 @@ typedef struct _cups_globals_s /**** CUPS global state data ****/
http_encryption_t encryption; /* Encryption setting */
char user[65], /* User name */
server[256], /* Server address */
servername[256],/* Server hostname */
password[128]; /* Password for default callback */
servername[256];/* Server hostname */
cups_password_cb2_t password_cb; /* Password callback */
void *password_data; /* Password user data */
http_tls_credentials_t tls_credentials;
@@ -169,40 +160,6 @@ typedef struct _cups_globals_s /**** CUPS global state data ****/
/* PPD filename */
} _cups_globals_t;
typedef struct _cups_media_db_s /* Media database */
{
char *color, /* Media color, if any */
*key, /* Media key, if any */
*info, /* Media human-readable name, if any */
*size_name, /* Media PWG size name, if provided */
*source, /* Media source, if any */
*type; /* Media type, if any */
int width, /* Width in hundredths of millimeters */
length, /* Length in hundredths of
* millimeters */
bottom, /* Bottom margin in hundredths of
* millimeters */
left, /* Left margin in hundredths of
* millimeters */
right, /* Right margin in hundredths of
* millimeters */
top; /* Top margin in hundredths of
* millimeters */
} _cups_media_db_t;
struct _cups_dinfo_s /* Destination capability and status
* information */
{
const char *uri; /* Printer URI */
char *resource; /* Resource path */
ipp_t *attrs; /* Printer attributes */
cups_array_t *constraints; /* Job constraints */
cups_array_t *localizations; /* Localization information */
cups_array_t *media_db; /* Media database */
_cups_media_db_t min_size, /* Minimum size */
max_size; /* Maximum size */
};
/*
* Prototypes...
@@ -217,17 +174,11 @@ extern void _cupsAppleSetDefaultPrinter(CFStringRef name);
extern void _cupsAppleSetUseLastPrinter(int uselast);
# endif /* __APPLE__ */
extern char *_cupsBufferGet(size_t size);
extern void _cupsBufferRelease(char *b);
extern http_t *_cupsConnect(void);
extern int _cupsGet1284Values(const char *device_id,
cups_option_t **values);
extern const char *_cupsGetDestResource(cups_dest_t *dest, char *resource,
size_t resourcesize);
extern int _cupsGetDests(http_t *http, ipp_op_t op,
const char *name, cups_dest_t **dests,
cups_ptype_t type, cups_ptype_t mask);
const char *name, cups_dest_t **dests);
extern const char *_cupsGetPassword(const char *prompt);
extern void _cupsGlobalLock(void);
extern _cups_globals_t *_cupsGlobals(void);
+74 -327
Ver Arquivo
@@ -3,7 +3,7 @@
*
* API definitions for CUPS.
*
* Copyright 2007-2012 by Apple Inc.
* Copyright 2007-2011 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
@@ -30,15 +30,23 @@
typedef off_t ssize_t; /* @private@ */
# endif /* WIN32 && !__CUPS_SSIZE_T_DEFINED */
# ifdef __BLOCKS__
# include <dispatch/dispatch.h>
# endif /* __BLOCKS__ */
# include "file.h"
# include "ipp.h"
# include "language.h"
/*
* With GCC 3.0 and higher, we can mark old APIs "deprecated" so you get
* a warning at compile-time.
*/
# if defined(__GNUC__) && __GNUC__ > 2
# define _CUPS_DEPRECATED __attribute__ ((__deprecated__))
# else
# define _CUPS_DEPRECATED
# endif /* __GNUC__ && __GNUC__ > 2 */
/*
* C++ magic...
*/
@@ -52,160 +60,37 @@ extern "C" {
* Constants...
*/
# define CUPS_VERSION 1.0599
# define CUPS_VERSION_MAJOR 1
# define CUPS_VERSION_MINOR 6
# define CUPS_VERSION_PATCH -1
# define CUPS_VERSION 1.0502
# define CUPS_VERSION_MAJOR 1
# define CUPS_VERSION_MINOR 5
# define CUPS_VERSION_PATCH 2
# define CUPS_BC_FD 3
/* Back-channel file descriptor for
* select/poll */
# define CUPS_DATE_ANY (time_t)-1
# define CUPS_EXCLUDE_NONE (const char *)0
# define CUPS_FORMAT_AUTO "application/octet-stream"
# define CUPS_FORMAT_COMMAND "application/vnd.cups-command"
# define CUPS_FORMAT_JPEG "image/jpeg"
# define CUPS_FORMAT_PDF "application/pdf"
# define CUPS_FORMAT_POSTSCRIPT "application/postscript"
# define CUPS_FORMAT_RAW "application/vnd.cups-raw"
# define CUPS_FORMAT_TEXT "text/plain"
# define CUPS_HTTP_DEFAULT (http_t *)0
# define CUPS_INCLUDE_ALL (const char *)0
# define CUPS_JOBID_ALL -1
# define CUPS_JOBID_CURRENT 0
# define CUPS_LENGTH_VARIABLE (ssize_t)0
# define CUPS_TIMEOUT_DEFAULT 0
# define CUPS_WHICHJOBS_ALL -1
# define CUPS_WHICHJOBS_ACTIVE 0
# define CUPS_WHICHJOBS_COMPLETED 1
/* Flags for cupsConnectDest and cupsEnumDests */
# define CUPS_DEST_FLAGS_NONE 0x00
/* No flags are set */
# define CUPS_DEST_FLAGS_UNCONNECTED 0x01
/* There is not connection */
# define CUPS_DEST_FLAGS_MORE 0x02
/* There are more destinations */
# define CUPS_DEST_FLAGS_REMOVED 0x04
/* The destination has gone away */
# define CUPS_DEST_FLAGS_ERROR 0x08
/* An error occurred */
# define CUPS_DEST_FLAGS_RESOLVING 0x10
/* The destination address is being
* resolved */
# define CUPS_DEST_FLAGS_CONNECTING 0x20
/* A connection is being established */
# define CUPS_DEST_FLAGS_CANCELED 0x40
/* Operation was canceled */
/* Flags for cupsGetDestMediaByName/Size */
# define CUPS_MEDIA_FLAGS_DEFAULT 0x00
/* Find the closest size supported by
* the printer */
# define CUPS_MEDIA_FLAGS_BORDERLESS 0x01
/* Find a borderless size */
# define CUPS_MEDIA_FLAGS_DUPLEX 0x02
/* Find a size compatible with 2-sided
* printing */
# define CUPS_MEDIA_FLAGS_EXACT 0x04
/* Find an exact match for the size */
# define CUPS_MEDIA_FLAGS_READY 0x08
/* If the printer supports media
* sensing, find the size amongst the
* "ready" media. */
/* Options and values */
# define CUPS_COPIES "copies"
# define CUPS_COPIES_SUPPORTED "copies-supported"
# define CUPS_FINISHINGS "finishings"
# define CUPS_FINISHINGS_SUPPORTED "finishings-supported"
# define CUPS_FINISHINGS_BIND "7"
# define CUPS_FINISHINGS_COVER "6"
# define CUPS_FINISHINGS_FOLD "10"
# define CUPS_FINISHINGS_NONE "3"
# define CUPS_FINISHINGS_PUNCH "5"
# define CUPS_FINISHINGS_STAPLE "4"
# define CUPS_FINISHINGS_TRIM "11"
# define CUPS_MEDIA "media"
# define CUPS_MEDIA_READY "media-ready"
# define CUPS_MEDIA_SUPPORTED "media-supported"
# define CUPS_MEDIA_3X5 "na_index-3x5_3x5in"
# define CUPS_MEDIA_4X6 "na_index-4x6_4x6in"
# define CUPS_MEDIA_5X7 "na_5x7_5x7in"
# define CUPS_MEDIA_8X10 "na_govt-letter_8x10in"
# define CUPS_MEDIA_A3 "iso_a3_297x420mm"
# define CUPS_MEDIA_A4 "iso_a4_210x297mm"
# define CUPS_MEDIA_A5 "iso_a5_148x210mm"
# define CUPS_MEDIA_A6 "iso_a6_105x148mm"
# define CUPS_MEDIA_ENV10 "na_number-10_4.125x9.5in"
# define CUPS_MEDIA_ENVDL "iso_dl_110x220mm"
# define CUPS_MEDIA_LEGAL "na_legal_8.5x14in"
# define CUPS_MEDIA_LETTER "na_letter_8.5x11in"
# define CUPS_MEDIA_PHOTO_L "oe_photo-l_3.5x5in"
# define CUPS_MEDIA_SUPERBA3 "na_super-b_13x19in"
# define CUPS_MEDIA_TABLOID "na_ledger_11x17in"
# define CUPS_MEDIA_SOURCE "media-source"
# define CUPS_MEDIA_SOURCE_SUPPORTED "media-source-supported"
# define CUPS_MEDIA_SOURCE_AUTO "auto"
# define CUPS_MEDIA_SOURCE_MANUAL "manual"
# define CUPS_MEDIA_TYPE "media-type"
# define CUPS_MEDIA_TYPE_SUPPORTED "media-type-supported"
# define CUPS_MEDIA_TYPE_AUTO "auto"
# define CUPS_MEDIA_TYPE_ENVELOPE "envelope"
# define CUPS_MEDIA_TYPE_LABELS "labels"
# define CUPS_MEDIA_TYPE_LETTERHEAD "stationery-letterhead"
# define CUPS_MEDIA_TYPE_PHOTO "photographic"
# define CUPS_MEDIA_TYPE_PHOTO_GLOSSY "photographic-glossy"
# define CUPS_MEDIA_TYPE_PHOTO_MATTE "photographic-matte"
# define CUPS_MEDIA_TYPE_PLAIN "stationery"
# define CUPS_MEDIA_TYPE_TRANSPARENCY "transparency"
# define CUPS_NUMBER_UP "number-up"
# define CUPS_NUMBER_UP_SUPPORTED "number-up-supported"
# define CUPS_ORIENTATION "orientation-requested"
# define CUPS_ORIENTATION_SUPPORTED "orientation-requested-supported"
# define CUPS_ORIENTATION_PORTRAIT "3"
# define CUPS_ORIENTATION_LANDSCAPE "4"
# define CUPS_PRINT_COLOR_MODE "print-color-mode"
# define CUPS_PRINT_COLOR_MODE_SUPPORTED "print-color-mode-supported"
# define CUPS_PRINT_COLOR_MODE_AUTO "auto"
# define CUPS_PRINT_COLOR_MODE_MONOCHROME "monochrome"
# define CUPS_PRINT_COLOR_MODE_COLOR "color"
# define CUPS_PRINT_QUALITY "print-quality"
# define CUPS_PRINT_QUALITY_SUPPORTED "print-quality-supported"
# define CUPS_PRINT_QUALITY_DRAFT "3"
# define CUPS_PRINT_QUALITY_NORMAL "4"
# define CUPS_PRINT_QUALITY_HIGH "5"
# define CUPS_SIDES "sides"
# define CUPS_SIDES_SUPPORTED "sides-supported"
# define CUPS_SIDES_ONE_SIDED "one-sided"
# define CUPS_SIDES_TWO_SIDED_PORTRAIT "two-sided-long-edge"
# define CUPS_SIDES_TWO_SIDED_LANDSCAPE "two-sided-short-edge"
# define CUPS_BC_FD 3 /* Back-channel file descriptor for select/poll */
# define CUPS_DATE_ANY (time_t)-1
# define CUPS_EXCLUDE_NONE (const char *)0
# define CUPS_FORMAT_AUTO "application/octet-stream"
# define CUPS_FORMAT_COMMAND "application/vnd.cups-command"
# define CUPS_FORMAT_PDF "application/pdf"
# define CUPS_FORMAT_POSTSCRIPT "application/postscript"
# define CUPS_FORMAT_RAW "application/vnd.cups-raw"
# define CUPS_FORMAT_TEXT "text/plain"
# define CUPS_HTTP_DEFAULT (http_t *)0
# define CUPS_INCLUDE_ALL (const char *)0
# define CUPS_JOBID_ALL -1
# define CUPS_JOBID_CURRENT 0
# define CUPS_LENGTH_VARIABLE (ssize_t)0
# define CUPS_TIMEOUT_DEFAULT 0
# define CUPS_WHICHJOBS_ALL -1
# define CUPS_WHICHJOBS_ACTIVE 0
# define CUPS_WHICHJOBS_COMPLETED 1
/*
* Types and structures...
*/
typedef unsigned cups_ptype_t; /* Printer type/capability bits */
enum cups_ptype_e /* Printer type/capability bit
* constants */
typedef unsigned cups_ptype_t; /**** Printer type/capability bits ****/
enum cups_ptype_e /**** Printer type/capability bit constants ****/
{ /* Not a typedef'd enum so we can OR */
CUPS_PRINTER_LOCAL = 0x0000, /* Local printer or class */
CUPS_PRINTER_CLASS = 0x0001, /* Printer class */
@@ -224,32 +109,36 @@ enum cups_ptype_e /* Printer type/capability bit
CUPS_PRINTER_MEDIUM = 0x2000, /* Can do Tabloid/B/C/A3/A2 */
CUPS_PRINTER_LARGE = 0x4000, /* Can do D/E/A1/A0 */
CUPS_PRINTER_VARIABLE = 0x8000, /* Can do variable sizes */
CUPS_PRINTER_IMPLICIT = 0x10000, /* Implicit class @private@
* @since Deprecated@ */
CUPS_PRINTER_IMPLICIT = 0x10000, /* Implicit class */
CUPS_PRINTER_DEFAULT = 0x20000, /* Default printer on network */
CUPS_PRINTER_FAX = 0x40000, /* Fax queue */
CUPS_PRINTER_REJECTING = 0x80000, /* Printer is rejecting jobs */
CUPS_PRINTER_DELETE = 0x100000, /* Delete printer
* @since CUPS 1.2/Mac OS X 10.5@ */
CUPS_PRINTER_NOT_SHARED = 0x200000, /* Printer is not shared
* @since CUPS 1.2/Mac OS X 10.5@ */
CUPS_PRINTER_AUTHENTICATED = 0x400000,/* Printer requires authentication
* @since CUPS 1.2/Mac OS X 10.5@ */
CUPS_PRINTER_COMMANDS = 0x800000, /* Printer supports maintenance commands
* @since CUPS 1.2/Mac OS X 10.5@ */
CUPS_PRINTER_DISCOVERED = 0x1000000, /* Printer was automatically discovered
* and added @private@
* @since Deprecated@ */
CUPS_PRINTER_SCANNER = 0x2000000, /* Scanner-only device
* @since CUPS 1.4/Mac OS X 10.6@ */
CUPS_PRINTER_MFP = 0x4000000, /* Printer with scanning capabilities
* @since CUPS 1.4/Mac OS X 10.6@ */
CUPS_PRINTER_OPTIONS = 0x6fffc /* ~(CLASS | REMOTE | IMPLICIT |
* DEFAULT | FAX | REJECTING | DELETE |
* NOT_SHARED | AUTHENTICATED |
* COMMANDS | DISCOVERED) @private@ */
CUPS_PRINTER_DELETE = 0x100000, /* Delete printer @since CUPS 1.2/Mac OS X 10.5@ */
CUPS_PRINTER_NOT_SHARED = 0x200000, /* Printer is not shared @since CUPS 1.2/Mac OS X 10.5@ */
CUPS_PRINTER_AUTHENTICATED = 0x400000,/* Printer requires authentication @since CUPS 1.2/Mac OS X 10.5@ */
CUPS_PRINTER_COMMANDS = 0x800000, /* Printer supports maintenance commands @since CUPS 1.2/Mac OS X 10.5@ */
CUPS_PRINTER_DISCOVERED = 0x1000000, /* Printer was automatically discovered and added @since CUPS 1.3/Mac OS X 10.5@ */
CUPS_PRINTER_SCANNER = 0x2000000, /* Scanner-only device @since CUPS 1.4/Mac OS X 10.6@ */
CUPS_PRINTER_MFP = 0x4000000, /* Printer with scanning capabilities @since CUPS 1.4/Mac OS X 10.6@ */
CUPS_PRINTER_OPTIONS = 0x6fffc /* ~(CLASS | REMOTE | IMPLICIT | DEFAULT | FAX | REJECTING | DELETE | NOT_SHARED | AUTHENTICATED | COMMANDS | DISCOVERED) @private@ */
};
typedef const char *(*cups_password_cb_t)(const char *prompt);
/**** Password callback ****/
typedef const char *(*cups_password_cb2_t)(const char *prompt, http_t *http,
const char *method,
const char *resource,
void *user_data);
/**** New password callback @since CUPS 1.4/Mac OS X 10.6@ ****/
typedef void (*cups_device_cb_t)(const char *device_class,
const char *device_id, const char *device_info,
const char *device_make_and_model,
const char *device_uri,
const char *device_location, void *user_data);
/**** Device callback @since CUPS 1.4/Mac OS X 10.6@ ****/
typedef struct cups_option_s /**** Printer Options ****/
{
char *name; /* Name of option */
@@ -265,10 +154,6 @@ typedef struct cups_dest_s /**** Destination ****/
cups_option_t *options; /* Options */
} cups_dest_t;
typedef struct _cups_dinfo_s cups_dinfo_t;
/* Destination capability and status
* information @since CUPS 1.6@ */
typedef struct cups_job_s /**** Job ****/
{
int id; /* The job ID */
@@ -284,61 +169,14 @@ typedef struct cups_job_s /**** Job ****/
time_t processing_time; /* Time the job was processed */
} cups_job_t;
typedef struct cups_size_s /**** Media Size @since CUPS 1.6@ ****/
{
char media[128]; /* Media name to use */
int width, /* Width in hundredths of millimeters */
length, /* Length in hundredths of
* millimeters */
bottom, /* Bottom margin in hundredths of
* millimeters */
left, /* Left margin in hundredths of
* millimeters */
right, /* Right margin in hundredths of
* millimeters */
top; /* Top margin in hundredths of
* millimeters */
} cups_size_t;
typedef int (*cups_client_cert_cb_t)(http_t *http, void *tls,
cups_array_t *distinguished_names,
void *user_data);
/* Client credentials callback
* @since CUPS 1.5/Mac OS X 10.7@ */
typedef int (*cups_dest_cb_t)(void *user_data, unsigned flags,
cups_dest_t *dest);
/* Destination enumeration callback
* @since CUPS 1.6@ */
# ifdef __BLOCKS__
typedef int (^cups_dest_block_t)(unsigned flags, cups_dest_t *dest);
/* Destination enumeration block
* @since CUPS 1.6@ */
# endif /* __BLOCKS__ */
typedef void (*cups_device_cb_t)(const char *device_class,
const char *device_id, const char *device_info,
const char *device_make_and_model,
const char *device_uri,
const char *device_location, void *user_data);
/* Device callback
* @since CUPS 1.4/Mac OS X 10.6@ */
typedef const char *(*cups_password_cb_t)(const char *prompt);
/* Password callback */
typedef const char *(*cups_password_cb2_t)(const char *prompt, http_t *http,
const char *method,
const char *resource,
void *user_data);
/* New password callback
* @since CUPS 1.4/Mac OS X 10.6@ */
/**** Client credentials callback @since CUPS 1.5/Mac OS X 10.7@ ****/
typedef int (*cups_server_cert_cb_t)(http_t *http, void *tls,
cups_array_t *certs, void *user_data);
/* Server credentials callback
* @since CUPS 1.5/Mac OS X 10.7@ */
/**** Server credentials callback @since CUPS 1.5/Mac OS X 10.7@ ****/
/*
@@ -381,8 +219,7 @@ extern int cupsAddOption(const char *name, const char *value,
int num_options, cups_option_t **options);
extern void cupsEncodeOptions(ipp_t *ipp, int num_options,
cups_option_t *options);
extern void cupsFreeOptions(int num_options,
cups_option_t *options);
extern void cupsFreeOptions(int num_options, cups_option_t *options);
extern const char *cupsGetOption(const char *name, int num_options,
cups_option_t *options);
extern int cupsParseOptions(const char *arg, int num_options,
@@ -398,25 +235,21 @@ extern const char *cupsUser(void);
/**** New in CUPS 1.1.20 ****/
extern int cupsDoAuthentication(http_t *http, const char *method,
const char *resource)
_CUPS_API_1_1_20;
const char *resource) _CUPS_API_1_1_20;
extern http_status_t cupsGetFile(http_t *http, const char *resource,
const char *filename) _CUPS_API_1_1_20;
extern http_status_t cupsGetFd(http_t *http, const char *resource, int fd);
extern http_status_t cupsPutFile(http_t *http, const char *resource,
const char *filename) _CUPS_API_1_1_20;
extern http_status_t cupsPutFd(http_t *http, const char *resource, int fd)
_CUPS_API_1_1_20;
extern http_status_t cupsPutFd(http_t *http, const char *resource, int fd) _CUPS_API_1_1_20;
/**** New in CUPS 1.1.21 ****/
extern const char *cupsGetDefault2(http_t *http) _CUPS_API_1_1_21;
extern int cupsGetDests2(http_t *http, cups_dest_t **dests)
_CUPS_API_1_1_21;
extern int cupsGetDests2(http_t *http, cups_dest_t **dests) _CUPS_API_1_1_21;
extern int cupsGetJobs2(http_t *http, cups_job_t **jobs,
const char *name, int myjobs,
int whichjobs) _CUPS_API_1_1_21;
extern const char *cupsGetPPD2(http_t *http, const char *name)
_CUPS_API_1_1_21;
extern const char *cupsGetPPD2(http_t *http, const char *name) _CUPS_API_1_1_21;
extern int cupsPrintFile2(http_t *http, const char *name,
const char *filename,
const char *title, int num_options,
@@ -424,8 +257,7 @@ extern int cupsPrintFile2(http_t *http, const char *name,
extern int cupsPrintFiles2(http_t *http, const char *name,
int num_files, const char **files,
const char *title, int num_options,
cups_option_t *options)
_CUPS_API_1_1_21;
cups_option_t *options) _CUPS_API_1_1_21;
extern int cupsSetDests2(http_t *http, int num_dests,
cups_dest_t *dests) _CUPS_API_1_1_21;
@@ -438,10 +270,8 @@ extern void cupsEncodeOptions2(ipp_t *ipp, int num_options,
cups_option_t *options,
ipp_tag_t group_tag) _CUPS_API_1_2;
extern const char *cupsLastErrorString(void) _CUPS_API_1_2;
extern char *cupsNotifySubject(cups_lang_t *lang, ipp_t *event)
_CUPS_API_1_2;
extern char *cupsNotifyText(cups_lang_t *lang, ipp_t *event)
_CUPS_API_1_2;
extern char *cupsNotifySubject(cups_lang_t *lang, ipp_t *event) _CUPS_API_1_2;
extern char *cupsNotifyText(cups_lang_t *lang, ipp_t *event) _CUPS_API_1_2;
extern int cupsRemoveOption(const char *name, int num_options,
cups_option_t **options) _CUPS_API_1_2;
extern cups_file_t *cupsTempFile2(char *filename, int len) _CUPS_API_1_2;
@@ -450,12 +280,10 @@ extern cups_file_t *cupsTempFile2(char *filename, int len) _CUPS_API_1_2;
extern ipp_t *cupsDoIORequest(http_t *http, ipp_t *request,
const char *resource, int infile,
int outfile) _CUPS_API_1_3;
extern char *cupsGetServerPPD(http_t *http, const char *name)
_CUPS_API_1_3;
extern char *cupsGetServerPPD(http_t *http, const char *name) _CUPS_API_1_3;
extern int cupsRemoveDest(const char *name,
const char *instance,
int num_dests, cups_dest_t **dests)
_CUPS_API_1_3;
int num_dests, cups_dest_t **dests) _CUPS_API_1_3;
extern void cupsSetDefaultDest(const char *name,
const char *instance,
int num_dests,
@@ -505,87 +333,6 @@ extern int cupsSetCredentials(cups_array_t *certs) _CUPS_API_1_5;
extern void cupsSetServerCertCB(cups_server_cert_cb_t cb,
void *user_data) _CUPS_API_1_5;
/**** New in CUPS 1.6 ****/
extern ipp_status_t cupsCancelDestJob(http_t *http, cups_dest_t *dest,
int job_id) _CUPS_API_1_6;
extern int cupsCheckDestSupported(http_t *http, cups_dest_t *dest,
cups_dinfo_t *info,
const char *option,
const char *value) _CUPS_API_1_6;
extern ipp_status_t cupsCloseDestJob(http_t *http, cups_dest_t *dest,
int job_id) _CUPS_API_1_6;
extern http_t *cupsConnectDest(cups_dest_t *dest, unsigned flags,
int msec, int *cancel,
char *resource, size_t resourcesize,
cups_dest_cb_t cb, void *user_data)
_CUPS_API_1_6;
# ifdef __BLOCKS__
extern http_t *cupsConnectDestBlock(cups_dest_t *dest,
unsigned flags, int msec,
int *cancel, char *resource,
size_t resourcesize,
cups_dest_block_t block)
_CUPS_API_1_6;
# endif /* __BLOCKS__ */
extern int cupsCopyDest(cups_dest_t *dest, int num_dests,
cups_dest_t **dests) _CUPS_API_1_6;
extern cups_dinfo_t *cupsCopyDestInfo(http_t *http, cups_dest_t *dest)
_CUPS_API_1_6;
extern int cupsCopyDestConflicts(http_t *http, cups_dest_t *dest,
cups_dinfo_t *info,
int num_options,
cups_option_t *options,
const char *new_option,
const char *new_value,
int *num_conflicts,
cups_option_t **conflicts,
int *num_resolved,
cups_option_t **resolved)
_CUPS_API_1_6;
extern ipp_status_t cupsCreateDestJob(http_t *http, cups_dest_t *dest,
cups_dinfo_t *info, int *job_id,
const char *title, int num_options,
cups_option_t *options) _CUPS_API_1_6;
extern int cupsEnumDests(unsigned flags, int msec, int *cancel,
cups_ptype_t type, cups_ptype_t mask,
cups_dest_cb_t cb, void *user_data)
_CUPS_API_1_6;
# ifdef __BLOCKS__
extern int cupsEnumDestsBlock(unsigned flags, int msec,
int *cancel, cups_ptype_t type,
cups_ptype_t mask,
cups_dest_block_t block)
_CUPS_API_1_6;
# endif /* __BLOCKS__ */
extern ipp_status_t cupsFinishDestDocument(http_t *http,
cups_dest_t *dest) _CUPS_API_1_6;
extern void cupsFreeDestInfo(cups_dinfo_t *dinfo) _CUPS_API_1_6;
extern int cupsGetDestMediaByName(http_t *http, cups_dest_t *dest,
cups_dinfo_t *dinfo,
const char *media,
unsigned flags,
cups_size_t *size) _CUPS_API_1_6;
extern int cupsGetDestMediaBySize(http_t *http, cups_dest_t *dest,
cups_dinfo_t *dinfo,
int width, int length,
unsigned flags,
cups_size_t *size) _CUPS_API_1_6;
extern const char *cupsLocalizeDestOption(http_t *http, cups_dest_t *dest,
cups_dinfo_t *info,
const char *option)
_CUPS_API_1_6;
extern const char *cupsLocalizeDestValue(http_t *http, cups_dest_t *dest,
cups_dinfo_t *info,
const char *option,
const char *value)
_CUPS_API_1_6;
extern http_status_t cupsStartDestDocument(http_t *http, cups_dest_t *dest,
cups_dinfo_t *info, int job_id,
const char *docname,
const char *format,
int num_options,
cups_option_t *options,
int last_document) _CUPS_API_1_6;
# ifdef __cplusplus
}
+5 -14
Ver Arquivo
@@ -3,7 +3,7 @@
*
* Private debugging macros for CUPS.
*
* Copyright 2007-2012 by Apple Inc.
* Copyright 2007-2010 by Apple Inc.
* Copyright 1997-2005 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
@@ -18,14 +18,6 @@
#ifndef _CUPS_DEBUG_PRIVATE_H_
# define _CUPS_DEBUG_PRIVATE_H_
/*
* Include necessary headers...
*/
# include <cups/versioning.h>
/*
* C++ magic...
*/
@@ -96,15 +88,14 @@ extern "C" {
extern int _cups_debug_fd;
extern int _cups_debug_level;
extern void DLLExport _cups_debug_printf(const char *format, ...)
__attribute__ ((__format__ (__printf__, 1, 2)));
#ifdef __GNUC__
__attribute__ ((__format__ (__printf__, 1, 2)))
#endif /* __GNUC__ */
;
extern void DLLExport _cups_debug_puts(const char *s);
extern void DLLExport _cups_debug_set(const char *logfile,
const char *level, const char *filter,
int force);
# ifdef WIN32
extern int _cups_gettimeofday(struct timeval *tv, void *tz);
# define gettimeofday(a,b) _cups_gettimeofday(a, b)
# endif /* WIN32 */
# ifdef __cplusplus
}
+19 -104
Ver Arquivo
@@ -3,7 +3,7 @@
*
* Debugging functions for CUPS.
*
* Copyright 2008-2012 by Apple Inc.
* Copyright 2008-2010 by Apple Inc.
*
* These coded instructions, statements, and computer programs are the
* property of Apple Inc. and are protected by Federal copyright
@@ -32,22 +32,22 @@
# include <time.h>
# include <io.h>
# define getpid (int)GetCurrentProcessId
int /* O - 0 on success, -1 on failure */
_cups_gettimeofday(struct timeval *tv, /* I - Timeval struct */
void *tz) /* I - Timezone */
{
static int /* O - 0 on success, -1 on failure */
gettimeofday(struct timeval *tv, /* I - Timeval struct */
void *tz) /* I - Timezone */
{
struct _timeb timebuffer; /* Time buffer struct */
_ftime(&timebuffer);
tv->tv_sec = (long)timebuffer.time;
tv->tv_usec = timebuffer.millitm * 1000;
tv->tv_usec = timebuffer.millitm * 1000;
return 0;
}
#else
# include <sys/time.h>
# include <unistd.h>
# include <regex.h>
#endif /* WIN32 */
#include <fcntl.h>
#include <regex.h>
/*
@@ -65,10 +65,8 @@ int _cups_debug_level = 1;
* Local globals...
*/
# ifndef WIN32
static regex_t *debug_filter = NULL;
/* Filter expression for messages */
# endif /* !WIN32 */
static int debug_init = 0; /* Did we initialize debugging? */
static _cups_mutex_t debug_mutex = _CUPS_MUTEX_INITIALIZER;
/* Mutex to control initialization */
@@ -338,54 +336,41 @@ debug_vsnprintf(char *buffer, /* O - Output buffer */
{
*bufptr++ = '\\';
*bufptr++ = 'n';
bytes += 2;
}
else if (*s == '\r')
{
*bufptr++ = '\\';
*bufptr++ = 'r';
bytes += 2;
}
else if (*s == '\t')
{
*bufptr++ = '\\';
*bufptr++ = 't';
bytes += 2;
}
else if (*s == '\\')
{
*bufptr++ = '\\';
*bufptr++ = '\\';
bytes += 2;
}
else if (*s == '\'')
{
*bufptr++ = '\\';
*bufptr++ = '\'';
bytes += 2;
}
else if (*s == '\"')
{
*bufptr++ = '\\';
*bufptr++ = '\"';
bytes += 2;
}
else if ((*s & 255) < ' ')
{
if ((bufptr + 2) >= bufend)
break;
*bufptr++ = '\\';
*bufptr++ = '0';
*bufptr++ = '0' + *s / 8;
*bufptr++ = '0' + (*s & 7);
bytes += 4;
}
else
{
*bufptr++ = *s;
bytes ++;
}
}
bufend ++;
@@ -455,7 +440,6 @@ _cups_debug_printf(const char *format, /* I - Printf-style format string */
if (level > _cups_debug_level)
return;
# ifndef WIN32
if (debug_filter)
{
int result; /* Filter result */
@@ -467,7 +451,6 @@ _cups_debug_printf(const char *format, /* I - Printf-style format string */
if (result)
return;
}
# endif /* !WIN32 */
/*
* Format the message...
@@ -480,18 +463,15 @@ _cups_debug_printf(const char *format, /* I - Printf-style format string */
(int)(curtime.tv_sec % 60), (int)(curtime.tv_usec / 1000));
va_start(ap, format);
bytes = debug_vsnprintf(buffer + 13, sizeof(buffer) - 14, format, ap) + 13;
debug_vsnprintf(buffer + 13, sizeof(buffer) - 14, format, ap);
va_end(ap);
if (bytes >= (sizeof(buffer) - 1))
bytes = strlen(buffer);
if (buffer[bytes - 1] != '\n')
{
buffer[sizeof(buffer) - 2] = '\n';
bytes = sizeof(buffer) - 1;
}
else if (buffer[bytes - 1] != '\n')
{
buffer[bytes++] = '\n';
buffer[bytes] = '\0';
buffer[bytes] = '\n';
bytes ++;
buffer[bytes] = '\0';
}
/*
@@ -509,76 +489,15 @@ _cups_debug_printf(const char *format, /* I - Printf-style format string */
void DLLExport
_cups_debug_puts(const char *s) /* I - String to output */
{
struct timeval curtime; /* Current time */
char buffer[2048]; /* Output buffer */
size_t bytes; /* Number of bytes in buffer */
int level; /* Log level in message */
char format[4]; /* C%s */
/*
* See if we need to do any logging...
*/
format[0] = *s++;
format[1] = '%';
format[2] = 's';
format[3] = '\0';
if (!debug_init)
_cups_debug_set(getenv("CUPS_DEBUG_LOG"), getenv("CUPS_DEBUG_LEVEL"),
getenv("CUPS_DEBUG_FILTER"), 0);
if (_cups_debug_fd < 0)
return;
/*
* Filter as needed...
*/
if (isdigit(s[0]))
level = *s++ - '0';
else
level = 0;
if (level > _cups_debug_level)
return;
# ifndef WIN32
if (debug_filter)
{
int result; /* Filter result */
_cupsMutexLock(&debug_mutex);
result = regexec(debug_filter, s, 0, NULL, 0);
_cupsMutexUnlock(&debug_mutex);
if (result)
return;
}
# endif /* !WIN32 */
/*
* Format the message...
*/
gettimeofday(&curtime, NULL);
bytes = snprintf(buffer, sizeof(buffer), "%02d:%02d:%02d.%03d %s",
(int)((curtime.tv_sec / 3600) % 24),
(int)((curtime.tv_sec / 60) % 60),
(int)(curtime.tv_sec % 60), (int)(curtime.tv_usec / 1000),
s);
if (bytes >= (sizeof(buffer) - 1))
{
buffer[sizeof(buffer) - 2] = '\n';
bytes = sizeof(buffer) - 1;
}
else if (buffer[bytes - 1] != '\n')
{
buffer[bytes++] = '\n';
buffer[bytes] = '\0';
}
/*
* Write it out...
*/
write(_cups_debug_fd, buffer, bytes);
_cups_debug_printf(format, s);
}
@@ -606,13 +525,11 @@ _cups_debug_set(const char *logfile, /* I - Log file or NULL */
_cups_debug_fd = -1;
}
# ifndef WIN32
if (debug_filter)
{
regfree((regex_t *)debug_filter);
debug_filter = NULL;
}
# endif /* !WIN32 */
_cups_debug_level = 1;
@@ -639,7 +556,6 @@ _cups_debug_set(const char *logfile, /* I - Log file or NULL */
if (level)
_cups_debug_level = atoi(level);
# ifndef WIN32
if (filter)
{
if ((debug_filter = (regex_t *)calloc(1, sizeof(regex_t))) == NULL)
@@ -653,7 +569,6 @@ _cups_debug_set(const char *logfile, /* I - Log file or NULL */
debug_filter = NULL;
}
}
# endif /* !WIN32 */
debug_init = 1;
}
-145
Ver Arquivo
@@ -1,145 +0,0 @@
/*
* "$Id$"
*
* Destination job support for CUPS.
*
* Copyright 2012 by Apple Inc.
*
* These coded instructions, statements, and computer programs are the
* property of Apple Inc. 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
* file is missing or damaged, see the license at "http://www.cups.org/".
*
* This file is subject to the Apple OS-Developed Software exception.
*
* Contents:
*
 * cupsCancelDestJob() - Cancel a job on a destination.
* cupsCloseDestJob() - Close a job and start printing.
* cupsCreateDestJob() - Create a job on a destination.
* cupsFinishDestDocument() - Finish the current document.
* cupsStartDestDocument() - Start a new document.
*/
/*
* Include necessary headers...
*/
#include "cups-private.h"
/*
* 'cupsCancelDestJob()' - Cancel a job on a destination.
*
* The "job_id" is the number returned by cupsCreateDestJob.
*
* Returns IPP_OK on success and IPP_NOT_AUTHORIZED or IPP_FORBIDDEN on
* failure.
*
* @since CUPS 1.6@
*/
ipp_status_t
cupsCancelDestJob(http_t *http, /* I - Connection to destination */
cups_dest_t *dest, /* I - Destination */
int job_id) /* I - Job ID */
{
return (IPP_NOT_FOUND);
}
/*
* 'cupsCloseDestJob()' - Close a job and start printing.
*
* Use when the last call to cupsStartDocument passed 0 for "last_document".
* "job_id" is the job ID returned by cupsCreateDestJob. Returns IPP_OK on
* success.
*
* @since CUPS 1.6@
*/
ipp_status_t
cupsCloseDestJob(
http_t *http, /* I - Connection to destination */
cups_dest_t *dest, /* I - Destination */
int job_id) /* I - Job ID */
{
return (IPP_NOT_FOUND);
}
/*
* 'cupsCreateDestJob()' - Create a job on a destination.
*
* Returns IPP_OK or IPP_OK_SUBST on success, saving the job ID in the variable
* pointed to by "job_id".
*
* @since CUPS 1.6@
*/
ipp_status_t /* O - IPP status code */
cupsCreateDestJob(
http_t *http, /* I - Connection to destination */
cups_dest_t *dest, /* I - Destination */
cups_dinfo_t *info, /* I - Destination information */
int *job_id, /* O - Job ID or 0 on error */
const char *title, /* I - Job name */
int num_options, /* I - Number of job options */
cups_option_t *options) /* I - Job options */
{
*job_id = 0;
return (IPP_NOT_POSSIBLE);
}
/*
* 'cupsFinishDestDocument()' - Finish the current document.
*
* Returns IPP_OK on success.
*
* @since CUPS 1.6@
*/
ipp_status_t
cupsFinishDestDocument(
http_t *http, /* I - Connection to destination */
cups_dest_t *dest) /* I - Destination */
{
return (IPP_NOT_FOUND);
}
/*
* 'cupsStartDestDocument()' - Start a new document.
*
* "job_id" is the job ID returned by cupsCreateDestJob. "docname" is the name
* of the document/file being printed, "format" is the MIME media type for the
* document (see CUPS_FORMAT_xxx constants), and "num_options" and "options"
* are the options do be applied to the document. "last_document" should be 1
* if this is the last document to be submitted in the job. Returns
* HTTP_CONTINUE on success.
*
* @since CUPS 1.6@
*/
http_status_t
cupsStartDestDocument(
http_t *http, /* I - Connection to destination */
cups_dest_t *dest, /* I - Destination */
cups_dinfo_t *info, /* I - Destination information */
int job_id, /* I - Job ID */
const char *docname, /* I - Document name */
const char *format, /* I - Document format */
int num_options, /* I - Number of document options */
cups_option_t *options, /* I - Document options */
int last_document) /* I - 1 if this is the last document */
{
return (HTTP_CONTINUE);
}
/*
* End of "$Id$".
*/
-76
Ver Arquivo
@@ -1,76 +0,0 @@
/*
* "$Id$"
*
* Destination localization support for CUPS.
*
* Copyright 2012 by Apple Inc.
*
* These coded instructions, statements, and computer programs are the
* property of Apple Inc. 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
* file is missing or damaged, see the license at "http://www.cups.org/".
*
* This file is subject to the Apple OS-Developed Software exception.
*
* Contents:
*
 * cupsLocalizeDestOption() - Get the localized string for a destination
* option.
* cupsLocalizeDestValue() - Get the localized string for a destination
* option+value pair.
*/
/*
* Include necessary headers...
*/
#include "cups-private.h"
/*
* 'cupsLocalizeDestOption()' - Get the localized string for a destination
* option.
*
* The returned string is stored in the localization array and will become
* invalid if the localization array is deleted.
*
* @since CUPS 1.6@
*/
const char * /* O - Localized string */
cupsLocalizeDestOption(
http_t *http, /* I - Connection to destination */
cups_dest_t *dest, /* I - Destination */
cups_dinfo_t *dinfo, /* I - Destination information */
const char *option) /* I - Option to localize */
{
return (option);
}
/*
* 'cupsLocalizeDestValue()' - Get the localized string for a destination
* option+value pair.
*
* The returned string is stored in the localization array and will become
* invalid if the localization array is deleted.
*
* @since CUPS 1.6@
*/
const char * /* O - Localized string */
cupsLocalizeDestValue(
http_t *http, /* I - Connection to destination */
cups_dest_t *dest, /* I - Destination */
cups_dinfo_t *dinfo, /* I - Destination information */
const char *option, /* I - Option to localize */
const char *value) /* I - Value to localize */
{
return (value);
}
/*
* End of "$Id$".
*/
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+63 -1370
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+34 -49
Ver Arquivo
@@ -47,22 +47,15 @@ static const _ipp_option_t ipp_options[] =
{ 0, "columns", IPP_TAG_INTEGER, IPP_TAG_JOB },
{ 0, "columns-default", IPP_TAG_INTEGER, IPP_TAG_PRINTER },
{ 0, "compression", IPP_TAG_KEYWORD, IPP_TAG_OPERATION },
{ 0, "copies", IPP_TAG_INTEGER, IPP_TAG_JOB,
IPP_TAG_DOCUMENT },
{ 0, "copies", IPP_TAG_INTEGER, IPP_TAG_JOB },
{ 0, "copies-default", IPP_TAG_INTEGER, IPP_TAG_PRINTER },
{ 0, "device-uri", IPP_TAG_URI, IPP_TAG_PRINTER },
{ 1, "document-copies", IPP_TAG_RANGE, IPP_TAG_JOB,
IPP_TAG_DOCUMENT },
{ 0, "document-format", IPP_TAG_MIMETYPE, IPP_TAG_OPERATION },
{ 0, "document-format-default", IPP_TAG_MIMETYPE, IPP_TAG_PRINTER },
{ 1, "document-numbers", IPP_TAG_RANGE, IPP_TAG_JOB,
IPP_TAG_DOCUMENT },
{ 1, "exclude-schemes", IPP_TAG_NAME, IPP_TAG_OPERATION },
{ 1, "finishings", IPP_TAG_ENUM, IPP_TAG_JOB,
IPP_TAG_DOCUMENT },
{ 1, "finishings", IPP_TAG_ENUM, IPP_TAG_JOB },
{ 1, "finishings-default", IPP_TAG_ENUM, IPP_TAG_PRINTER },
{ 0, "fit-to-page", IPP_TAG_BOOLEAN, IPP_TAG_JOB,
IPP_TAG_DOCUMENT },
{ 0, "fit-to-page", IPP_TAG_BOOLEAN, IPP_TAG_JOB },
{ 0, "fit-to-page-default", IPP_TAG_BOOLEAN, IPP_TAG_PRINTER },
{ 0, "fitplot", IPP_TAG_BOOLEAN, IPP_TAG_JOB },
{ 0, "fitplot-default", IPP_TAG_BOOLEAN, IPP_TAG_PRINTER },
@@ -88,20 +81,14 @@ static const _ipp_option_t ipp_options[] =
{ 0, "marker-message", IPP_TAG_TEXT, IPP_TAG_PRINTER },
{ 1, "marker-names", IPP_TAG_NAME, IPP_TAG_PRINTER },
{ 1, "marker-types", IPP_TAG_KEYWORD, IPP_TAG_PRINTER },
{ 1, "media", IPP_TAG_KEYWORD, IPP_TAG_JOB,
IPP_TAG_DOCUMENT },
{ 0, "media-col", IPP_TAG_BEGIN_COLLECTION, IPP_TAG_JOB,
IPP_TAG_DOCUMENT },
{ 1, "media", IPP_TAG_KEYWORD, IPP_TAG_JOB },
{ 0, "media-col", IPP_TAG_BEGIN_COLLECTION, IPP_TAG_JOB },
{ 0, "media-col-default", IPP_TAG_BEGIN_COLLECTION, IPP_TAG_PRINTER },
{ 0, "media-color", IPP_TAG_KEYWORD, IPP_TAG_JOB,
IPP_TAG_DOCUMENT },
{ 0, "media-color", IPP_TAG_KEYWORD, IPP_TAG_JOB },
{ 1, "media-default", IPP_TAG_KEYWORD, IPP_TAG_PRINTER },
{ 0, "media-key", IPP_TAG_KEYWORD, IPP_TAG_JOB,
IPP_TAG_DOCUMENT },
{ 0, "media-size", IPP_TAG_BEGIN_COLLECTION, IPP_TAG_JOB,
IPP_TAG_DOCUMENT },
{ 0, "media-type", IPP_TAG_KEYWORD, IPP_TAG_JOB,
IPP_TAG_DOCUMENT },
{ 0, "media-key", IPP_TAG_KEYWORD, IPP_TAG_JOB },
{ 0, "media-size", IPP_TAG_BEGIN_COLLECTION, IPP_TAG_JOB },
{ 0, "media-type", IPP_TAG_KEYWORD, IPP_TAG_JOB },
{ 0, "mirror", IPP_TAG_BOOLEAN, IPP_TAG_JOB },
{ 0, "mirror-default", IPP_TAG_BOOLEAN, IPP_TAG_PRINTER },
{ 0, "natural-scaling", IPP_TAG_INTEGER, IPP_TAG_JOB },
@@ -116,27 +103,20 @@ static const _ipp_option_t ipp_options[] =
{ 0, "notify-recipient-uri", IPP_TAG_URI, IPP_TAG_SUBSCRIPTION },
{ 0, "notify-time-interval", IPP_TAG_INTEGER, IPP_TAG_SUBSCRIPTION },
{ 0, "notify-user-data", IPP_TAG_STRING, IPP_TAG_SUBSCRIPTION },
{ 0, "number-up", IPP_TAG_INTEGER, IPP_TAG_JOB,
IPP_TAG_DOCUMENT },
{ 0, "number-up", IPP_TAG_INTEGER, IPP_TAG_JOB },
{ 0, "number-up-default", IPP_TAG_INTEGER, IPP_TAG_PRINTER },
{ 0, "orientation-requested", IPP_TAG_ENUM, IPP_TAG_JOB,
IPP_TAG_DOCUMENT },
{ 0, "orientation-requested", IPP_TAG_ENUM, IPP_TAG_JOB },
{ 0, "orientation-requested-default", IPP_TAG_ENUM, IPP_TAG_PRINTER },
{ 1, "overrides", IPP_TAG_BEGIN_COLLECTION, IPP_TAG_JOB,
IPP_TAG_DOCUMENT },
{ 0, "page-bottom", IPP_TAG_INTEGER, IPP_TAG_JOB },
{ 0, "page-bottom-default", IPP_TAG_INTEGER, IPP_TAG_PRINTER },
{ 0, "page-left", IPP_TAG_INTEGER, IPP_TAG_JOB },
{ 0, "page-left-default", IPP_TAG_INTEGER, IPP_TAG_PRINTER },
{ 1, "page-ranges", IPP_TAG_RANGE, IPP_TAG_JOB,
IPP_TAG_DOCUMENT },
{ 1, "page-ranges", IPP_TAG_RANGE, IPP_TAG_JOB },
{ 1, "page-ranges-default", IPP_TAG_RANGE, IPP_TAG_PRINTER },
{ 0, "page-right", IPP_TAG_INTEGER, IPP_TAG_JOB },
{ 0, "page-right-default", IPP_TAG_INTEGER, IPP_TAG_PRINTER },
{ 0, "page-top", IPP_TAG_INTEGER, IPP_TAG_JOB },
{ 0, "page-top-default", IPP_TAG_INTEGER, IPP_TAG_PRINTER },
{ 1, "pages", IPP_TAG_RANGE, IPP_TAG_JOB,
IPP_TAG_DOCUMENT },
{ 0, "penwidth", IPP_TAG_INTEGER, IPP_TAG_JOB },
{ 0, "penwidth-default", IPP_TAG_INTEGER, IPP_TAG_PRINTER },
{ 0, "port-monitor", IPP_TAG_NAME, IPP_TAG_PRINTER },
@@ -145,8 +125,7 @@ static const _ipp_option_t ipp_options[] =
{ 0, "ppi-default", IPP_TAG_INTEGER, IPP_TAG_PRINTER },
{ 0, "prettyprint", IPP_TAG_BOOLEAN, IPP_TAG_JOB },
{ 0, "prettyprint-default", IPP_TAG_BOOLEAN, IPP_TAG_PRINTER },
{ 0, "print-quality", IPP_TAG_ENUM, IPP_TAG_JOB,
IPP_TAG_DOCUMENT },
{ 0, "print-quality", IPP_TAG_ENUM, IPP_TAG_JOB },
{ 0, "print-quality-default", IPP_TAG_ENUM, IPP_TAG_PRINTER },
{ 1, "printer-commands", IPP_TAG_KEYWORD, IPP_TAG_PRINTER },
{ 0, "printer-error-policy", IPP_TAG_NAME, IPP_TAG_PRINTER },
@@ -157,8 +136,7 @@ static const _ipp_option_t ipp_options[] =
{ 0, "printer-make-and-model", IPP_TAG_TEXT, IPP_TAG_PRINTER },
{ 0, "printer-more-info", IPP_TAG_URI, IPP_TAG_PRINTER },
{ 0, "printer-op-policy", IPP_TAG_NAME, IPP_TAG_PRINTER },
{ 0, "printer-resolution", IPP_TAG_RESOLUTION, IPP_TAG_JOB,
IPP_TAG_DOCUMENT },
{ 0, "printer-resolution", IPP_TAG_RESOLUTION, IPP_TAG_JOB },
{ 0, "printer-state", IPP_TAG_ENUM, IPP_TAG_PRINTER },
{ 0, "printer-state-change-time", IPP_TAG_INTEGER, IPP_TAG_PRINTER },
{ 1, "printer-state-reasons", IPP_TAG_KEYWORD, IPP_TAG_PRINTER },
@@ -176,15 +154,12 @@ static const _ipp_option_t ipp_options[] =
{ 0, "saturation-default", IPP_TAG_INTEGER, IPP_TAG_PRINTER },
{ 0, "scaling", IPP_TAG_INTEGER, IPP_TAG_JOB },
{ 0, "scaling-default", IPP_TAG_INTEGER, IPP_TAG_PRINTER },
{ 0, "sides", IPP_TAG_KEYWORD, IPP_TAG_JOB,
IPP_TAG_DOCUMENT },
{ 0, "sides", IPP_TAG_KEYWORD, IPP_TAG_JOB },
{ 0, "sides-default", IPP_TAG_KEYWORD, IPP_TAG_PRINTER },
{ 0, "wrap", IPP_TAG_BOOLEAN, IPP_TAG_JOB },
{ 0, "wrap-default", IPP_TAG_BOOLEAN, IPP_TAG_PRINTER },
{ 0, "x-dimension", IPP_TAG_INTEGER, IPP_TAG_JOB,
IPP_TAG_DOCUMENT },
{ 0, "y-dimension", IPP_TAG_INTEGER, IPP_TAG_JOB,
IPP_TAG_DOCUMENT }
{ 0, "x-dimension", IPP_TAG_INTEGER, IPP_TAG_JOB },
{ 0, "y-dimension", IPP_TAG_INTEGER, IPP_TAG_JOB }
};
@@ -307,7 +282,7 @@ cupsEncodeOptions2(
if ((match = _ippFindOption(option->name)) != NULL)
{
if (match->group_tag != group_tag && match->alt_group_tag != group_tag)
if (match->group_tag != group_tag)
continue;
value_tag = match->value_tag;
@@ -319,11 +294,9 @@ cupsEncodeOptions2(
namelen = (int)strlen(option->name);
if (namelen < 10 ||
(strcmp(option->name + namelen - 8, "-default") &&
strcmp(option->name + namelen - 10, "-supported")))
if (namelen < 9 || strcmp(option->name + namelen - 8, "-default"))
{
if (group_tag != IPP_TAG_JOB && group_tag != IPP_TAG_DOCUMENT)
if (group_tag != IPP_TAG_JOB)
continue;
}
else if (group_tag != IPP_TAG_PRINTER)
@@ -370,8 +343,7 @@ cupsEncodeOptions2(
* Allocate memory for the attribute values...
*/
if ((attr = ippAddStrings(ipp, group_tag, value_tag, option->name, count,
NULL, NULL)) == NULL)
if ((attr = _ippAddAttr(ipp, count)) == NULL)
{
/*
* Ran out of memory!
@@ -381,6 +353,19 @@ cupsEncodeOptions2(
return;
}
/*
* Now figure out what type of value we have...
*/
attr->group_tag = group_tag;
attr->value_tag = value_tag;
/*
* Copy the name over...
*/
attr->name = _cupsStrAlloc(option->name);
if (count > 1)
{
/*
+15 -3
Ver Arquivo
@@ -168,13 +168,19 @@ _cupsFileCheck(
* Verify permission of the file itself:
*
* 1. Must be owned by root
* 2. Must not be writable by group
* 2. Must not be writable by group unless group is root/wheel/admin
* 3. Must not be setuid
* 4. Must not be writable by others
*/
if (fileinfo.st_uid || /* 1. Must be owned by root */
(fileinfo.st_mode & S_IWGRP) || /* 2. Must not be writable by group */
#ifdef __APPLE__
((fileinfo.st_mode & S_IWGRP) && fileinfo.st_gid &&
fileinfo.st_gid != 80) || /* 2. Must not be writable by group */
#else
((fileinfo.st_mode & S_IWGRP) && fileinfo.st_gid) ||
/* 2. Must not be writable by group */
#endif /* __APPLE__ */
(fileinfo.st_mode & S_ISUID) || /* 3. Must not be setuid */
(fileinfo.st_mode & S_IWOTH)) /* 4. Must not be writable by others */
{
@@ -213,7 +219,13 @@ _cupsFileCheck(
}
if (fileinfo.st_uid || /* 1. Must be owned by root */
(fileinfo.st_mode & S_IWGRP) || /* 2. Must not be writable by group */
#ifdef __APPLE__
((fileinfo.st_mode & S_IWGRP) && fileinfo.st_gid &&
fileinfo.st_gid != 80) || /* 2. Must not be writable by group */
#else
((fileinfo.st_mode & S_IWGRP) && fileinfo.st_gid) ||
/* 2. Must not be writable by group */
#endif /* __APPLE__ */
(fileinfo.st_mode & S_ISUID) || /* 3. Must not be setuid */
(fileinfo.st_mode & S_IWOTH)) /* 4. Must not be writable by others */
{
+11 -15
Ver Arquivo
@@ -72,29 +72,26 @@ extern const char *cupsFileFind(const char *filename, const char *path,
int bufsize) _CUPS_API_1_2;
extern int cupsFileFlush(cups_file_t *fp) _CUPS_API_1_2;
extern int cupsFileGetChar(cups_file_t *fp) _CUPS_API_1_2;
extern char *cupsFileGetConf(cups_file_t *fp, char *buf,
size_t buflen, char **value,
int *linenum) _CUPS_API_1_2;
extern char *cupsFileGetConf(cups_file_t *fp, char *buf, size_t buflen,
char **value, int *linenum) _CUPS_API_1_2;
extern size_t cupsFileGetLine(cups_file_t *fp, char *buf,
size_t buflen) _CUPS_API_1_2;
extern char *cupsFileGets(cups_file_t *fp, char *buf, size_t buflen)
_CUPS_API_1_2;
extern char *cupsFileGets(cups_file_t *fp, char *buf, size_t buflen) _CUPS_API_1_2;
extern int cupsFileLock(cups_file_t *fp, int block) _CUPS_API_1_2;
extern int cupsFileNumber(cups_file_t *fp) _CUPS_API_1_2;
extern cups_file_t *cupsFileOpen(const char *filename, const char *mode)
_CUPS_API_1_2;
extern cups_file_t *cupsFileOpen(const char *filename, const char *mode) _CUPS_API_1_2;
extern cups_file_t *cupsFileOpenFd(int fd, const char *mode) _CUPS_API_1_2;
extern int cupsFilePeekChar(cups_file_t *fp) _CUPS_API_1_2;
extern int cupsFilePrintf(cups_file_t *fp, const char *format, ...)
__attribute__((__format__ (__printf__, 2, 3)))
_CUPS_API_1_2;
#ifdef __GNUC__
__attribute__ ((__format__ (__printf__, 2, 3)))
#endif /* __GNUC__ */
_CUPS_API_1_2;
extern int cupsFilePutChar(cups_file_t *fp, int c) _CUPS_API_1_2;
extern ssize_t cupsFilePutConf(cups_file_t *fp, const char *directive,
const char *value) _CUPS_API_1_4;
extern int cupsFilePuts(cups_file_t *fp, const char *s)
_CUPS_API_1_2;
extern ssize_t cupsFileRead(cups_file_t *fp, char *buf, size_t bytes)
_CUPS_API_1_2;
extern int cupsFilePuts(cups_file_t *fp, const char *s) _CUPS_API_1_2;
extern ssize_t cupsFileRead(cups_file_t *fp, char *buf, size_t bytes) _CUPS_API_1_2;
extern off_t cupsFileRewind(cups_file_t *fp) _CUPS_API_1_2;
extern off_t cupsFileSeek(cups_file_t *fp, off_t pos) _CUPS_API_1_2;
extern cups_file_t *cupsFileStderr(void) _CUPS_API_1_2;
@@ -102,8 +99,7 @@ extern cups_file_t *cupsFileStdin(void) _CUPS_API_1_2;
extern cups_file_t *cupsFileStdout(void) _CUPS_API_1_2;
extern off_t cupsFileTell(cups_file_t *fp) _CUPS_API_1_2;
extern int cupsFileUnlock(cups_file_t *fp) _CUPS_API_1_2;
extern ssize_t cupsFileWrite(cups_file_t *fp, const char *buf,
size_t bytes) _CUPS_API_1_2;
extern ssize_t cupsFileWrite(cups_file_t *fp, const char *buf, size_t bytes) _CUPS_API_1_2;
# ifdef __cplusplus
+2 -2
Ver Arquivo
@@ -3,7 +3,7 @@
*
* cupsGetDevices implementation for CUPS.
*
* Copyright 2008-2011 by Apple Inc.
* Copyright 2008-2010 by Apple Inc.
*
* These coded instructions, statements, and computer programs are the
* property of Apple Inc. and are protected by Federal copyright
@@ -258,7 +258,7 @@ cupsGetDevices(
httpFlush(http);
if (status == HTTP_ERROR)
_cupsSetError(IPP_INTERNAL_ERROR, strerror(http->error), 0);
_cupsSetError(IPP_ERROR, NULL, 0);
else
{
attr = ippFindAttribute(response, "status-message", IPP_TAG_TEXT);
+2 -2
Ver Arquivo
@@ -301,14 +301,14 @@ cups_globals_alloc(void)
static void
cups_globals_free(_cups_globals_t *cg) /* I - Pointer to global data */
{
_cups_buffer_t *buffer, /* Current read/write buffer */
_ipp_buffer_t *buffer, /* Current IPP read/write buffer */
*next; /* Next buffer */
if (cg->last_status_message)
_cupsStrFree(cg->last_status_message);
for (buffer = cg->cups_buffers; buffer; buffer = next)
for (buffer = cg->ipp_buffers; buffer; buffer = next)
{
next = buffer->next;
free(buffer);
+25 -180
Ver Arquivo
@@ -3,7 +3,7 @@
*
* HTTP address list routines for CUPS.
*
* Copyright 2007-2012 by Apple Inc.
* Copyright 2007-2011 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
@@ -15,8 +15,6 @@
* Contents:
*
* httpAddrConnect() - Connect to any of the addresses in the list.
* httpAddrConnect2() - Connect to any of the addresses in the list with a
* timeout and optional cancel.
* httpAddrFreeList() - Free an address list.
* httpAddrGetList() - Get a list of addresses for a hostname.
*/
@@ -29,9 +27,6 @@
#ifdef HAVE_RESOLV_H
# include <resolv.h>
#endif /* HAVE_RESOLV_H */
#ifdef HAVE_POLL
# include <poll.h>
#endif /* HAVE_POLL */
/*
@@ -44,62 +39,24 @@ http_addrlist_t * /* O - Connected address or NULL on failure */
httpAddrConnect(
http_addrlist_t *addrlist, /* I - List of potential addresses */
int *sock) /* O - Socket */
{
DEBUG_printf(("httpAddrConnect(addrlist=%p, sock=%p)", addrlist, sock));
return (httpAddrConnect2(addrlist, sock, 30000, NULL));
}
/*
* 'httpAddrConnect2()' - Connect to any of the addresses in the list with a
* timeout and optional cancel.
*
* @since CUPS 1.6@
*/
http_addrlist_t * /* O - Connected address or NULL on failure */
httpAddrConnect2(
http_addrlist_t *addrlist, /* I - List of potential addresses */
int *sock, /* O - Socket */
int msec, /* I - Timeout in milliseconds */
int *cancel) /* I - Pointer to "cancel" variable */
{
int val; /* Socket option value */
#ifdef O_NONBLOCK
socklen_t len; /* Length of value */
int flags, /* Socket flags */
remaining; /* Remaining timeout */
# ifdef HAVE_POLL
struct pollfd pfd; /* Polled file descriptor */
# else
fd_set input_set, /* select() input set */
output_set; /* select() output set */
struct timeval timeout; /* Timeout */
# endif /* HAVE_POLL */
int nfds; /* Result from select()/poll() */
#endif /* O_NONBLOCK */
#ifdef __APPLE__
struct timeval timeout; /* Socket timeout value */
#endif /* __APPLE__ */
#ifdef DEBUG
char temp[256]; /* Temporary address string */
#endif /* DEBUG */
DEBUG_printf(("httpAddrConnect2(addrlist=%p, sock=%p, msec=%d, cancel=%p)",
addrlist, sock, msec, cancel));
DEBUG_printf(("httpAddrConnect(addrlist=%p, sock=%p)", addrlist, sock));
if (!sock)
{
errno = EINVAL;
_cupsSetError(IPP_INTERNAL_ERROR, strerror(errno), 0);
return (NULL);
}
if (cancel && *cancel)
return (NULL);
if (msec <= 0)
msec = INT_MAX;
/*
* Loop through each address until we connect or run out of addresses...
*/
@@ -110,7 +67,7 @@ httpAddrConnect2(
* Create the socket...
*/
DEBUG_printf(("2httpAddrConnect2: Trying %s:%d...",
DEBUG_printf(("2httpAddrConnect: Trying %s:%d...",
httpAddrString(&(addrlist->addr), temp, sizeof(temp)),
_httpAddrPort(&(addrlist->addr))));
@@ -148,6 +105,17 @@ httpAddrConnect2(
setsockopt(*sock, SOL_SOCKET, SO_NOSIGPIPE, &val, sizeof(val));
#endif /* SO_NOSIGPIPE */
#ifdef __APPLE__
/*
* Use a 30-second read timeout when connecting to limit the amount of time
* we block...
*/
timeout.tv_sec = 30;
timeout.tv_usec = 0;
setsockopt(*sock, SOL_SOCKET, SO_RCVTIMEO, &timeout, sizeof(timeout));
#endif /* __APPLE__ */
/*
* Using TCP_NODELAY improves responsiveness, especially on systems
* with a slow loopback interface...
@@ -169,18 +137,6 @@ httpAddrConnect2(
fcntl(*sock, F_SETFD, FD_CLOEXEC);
#endif /* FD_CLOEXEC */
#ifdef O_NONBLOCK
/*
* Do an asynchronous connect by setting the socket non-blocking...
*/
DEBUG_printf(("httpAddrConnect2: Setting non-blocking connect()"));
flags = fcntl(*sock, F_GETFL, 0);
if (msec > 0)
fcntl(*sock, F_SETFL, flags | O_NONBLOCK);
#endif /* O_NONBLOCK */
/*
* Then connect...
*/
@@ -188,107 +144,16 @@ httpAddrConnect2(
if (!connect(*sock, &(addrlist->addr.addr),
httpAddrLength(&(addrlist->addr))))
{
DEBUG_printf(("1httpAddrConnect2: Connected to %s:%d...",
DEBUG_printf(("1httpAddrConnect: Connected to %s:%d...",
httpAddrString(&(addrlist->addr), temp, sizeof(temp)),
_httpAddrPort(&(addrlist->addr))));
#ifdef O_NONBLOCK
fcntl(*sock, F_SETFL, flags);
#endif /* O_NONBLOCK */
return (addrlist);
break;
}
#ifdef O_NONBLOCK
# ifdef WIN32
if (errno == WSAEINPROGRESS)
# else
if (errno == EINPROGRESS)
# endif /* WIN32 */
{
DEBUG_puts("1httpAddrConnect2: Finishing async connect()");
for (remaining = msec; remaining > 0; remaining -= 250)
{
do
{
if (cancel && *cancel)
{
/*
* Close this socket and return...
*/
DEBUG_puts("1httpAddrConnect2: Canceled connect()");
# ifdef WIN32
closesocket(*sock);
# else
close(*sock);
# endif /* WIN32 */
*sock = -1;
return (NULL);
}
# ifdef HAVE_POLL
pfd.fd = *sock;
pfd.events = POLLIN | POLLOUT;
nfds = poll(&pfd, 1, remaining > 250 ? 250 : remaining);
DEBUG_printf(("1httpAddrConnect2: poll() returned %d (%d)", nfds,
errno));
# else
FD_ZERO(&input_set);
FD_SET(*sock, &input_set);
output_set = input_set;
timeout.tv_sec = 0;
timeout.tv_usec = (remaining > 250 ? 250 : remaining) * 1000;
nfds = select(*sock + 1, &input_set, &output_set, NULL, &timeout);
DEBUG_printf(("1httpAddrConnect2: select() returned %d (%d)", nfds,
errno));
# endif /* HAVE_POLL */
}
# ifdef WIN32
while (nfds < 0 && (WSAGetLastError() == WSAEINTR ||
WSAGetLastError() == WSAEWOULDBLOCK));
# else
while (nfds < 0 && (errno == EINTR || errno == EAGAIN));
# endif /* WIN32 */
if (nfds > 0)
{
len = sizeof(val);
if (getsockopt(*sock, SOL_SOCKET, SO_ERROR, &val, &len) >= 0)
{
DEBUG_printf(("1httpAddrConnect2: Connected to %s:%d...",
httpAddrString(&(addrlist->addr), temp, sizeof(temp)),
_httpAddrPort(&(addrlist->addr))));
fcntl(*sock, F_SETFL, flags);
return (addrlist);
}
break;
}
}
}
#endif /* O_NONBLOCK */
DEBUG_printf(("1httpAddrConnect2: Unable to connect to %s:%d: %s",
DEBUG_printf(("1httpAddrConnect: Unable to connect to %s:%d: %s",
httpAddrString(&(addrlist->addr), temp, sizeof(temp)),
_httpAddrPort(&(addrlist->addr)), strerror(errno)));
#ifndef WIN32
if (errno == EINPROGRESS)
errno = ETIMEDOUT;
#endif /* !WIN32 */
/*
* Close this socket and move to the next address...
*/
@@ -304,11 +169,7 @@ httpAddrConnect2(
}
if (!addrlist)
#ifdef WIN32
_cupsSetError(IPP_SERVICE_UNAVAILABLE, "Connection failed", 0);
#else
_cupsSetError(IPP_SERVICE_UNAVAILABLE, strerror(errno), 0);
#endif /* WIN32 */
return (addrlist);
}
@@ -395,6 +256,7 @@ httpAddrGetList(const char *hostname, /* I - Hostname, IP address, or NULL for p
}
#endif /* HAVE_RES_INIT */
/*
* Lookup the address the best way we can...
*/
@@ -495,7 +357,6 @@ httpAddrGetList(const char *hostname, /* I - Hostname, IP address, or NULL for p
if (!temp)
{
httpAddrFreeList(first);
_cupsSetError(IPP_INTERNAL_ERROR, strerror(errno), 0);
return (NULL);
}
@@ -525,13 +386,8 @@ httpAddrGetList(const char *hostname, /* I - Hostname, IP address, or NULL for p
freeaddrinfo(results);
}
else
{
if (error == EAI_FAIL)
cg->need_res_init = 1;
_cupsSetError(IPP_INTERNAL_ERROR, gai_strerror(error), 0);
}
else if (error == EAI_FAIL)
cg->need_res_init = 1;
#else
if (hostname)
@@ -649,13 +505,8 @@ httpAddrGetList(const char *hostname, /* I - Hostname, IP address, or NULL for p
addr = temp;
}
}
else
{
if (h_errno == NO_RECOVERY)
cg->need_res_init = 1;
_cupsSetError(IPP_INTERNAL_ERROR, hstrerror(h_errno), 0);
}
else if (h_errno == NO_RECOVERY)
cg->need_res_init = 1;
}
#endif /* HAVE_GETADDRINFO */
}
@@ -693,8 +544,6 @@ httpAddrGetList(const char *hostname, /* I - Hostname, IP address, or NULL for p
else
{
httpAddrFreeList(first);
_cupsSetError(IPP_INTERNAL_ERROR, _("Unknown service name."), 1);
return (NULL);
}
@@ -717,7 +566,6 @@ httpAddrGetList(const char *hostname, /* I - Hostname, IP address, or NULL for p
temp = (http_addrlist_t *)calloc(1, sizeof(http_addrlist_t));
if (!temp)
{
_cupsSetError(IPP_INTERNAL_ERROR, strerror(errno), 0);
httpAddrFreeList(first);
return (NULL);
}
@@ -746,7 +594,6 @@ httpAddrGetList(const char *hostname, /* I - Hostname, IP address, or NULL for p
temp = (http_addrlist_t *)calloc(1, sizeof(http_addrlist_t));
if (!temp)
{
_cupsSetError(IPP_INTERNAL_ERROR, strerror(errno), 0);
httpAddrFreeList(first);
return (NULL);
}
@@ -778,7 +625,6 @@ httpAddrGetList(const char *hostname, /* I - Hostname, IP address, or NULL for p
temp = (http_addrlist_t *)calloc(1, sizeof(http_addrlist_t));
if (!temp)
{
_cupsSetError(IPP_INTERNAL_ERROR, strerror(errno), 0);
httpAddrFreeList(first);
return (NULL);
}
@@ -802,7 +648,6 @@ httpAddrGetList(const char *hostname, /* I - Hostname, IP address, or NULL for p
temp = (http_addrlist_t *)calloc(1, sizeof(http_addrlist_t));
if (!temp)
{
_cupsSetError(IPP_INTERNAL_ERROR, strerror(errno), 0);
httpAddrFreeList(first);
return (NULL);
}
+280 -330
Ver Arquivo
@@ -3,7 +3,7 @@
*
* HTTP routines for CUPS.
*
* Copyright 2007-2012 by Apple Inc.
* Copyright 2007-2011 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* This file contains Kerberos support code, copyright 2006 by
@@ -19,105 +19,103 @@
*
* Contents:
*
* httpAddCredential() - Allocates and adds a single credential to an
* array.
* _httpBIOMethods() - Get the OpenSSL BIO methods for HTTP
* connections.
* httpBlocking() - Set blocking/non-blocking behavior on a
* connection.
* httpCheck() - Check to see if there is a pending response
* from the server.
* httpClearCookie() - Clear the cookie value(s).
* httpClearFields() - Clear HTTP request fields.
* httpClose() - Close an HTTP connection.
* httpConnect() - Connect to a HTTP server.
* httpConnectEncrypt() - Connect to a HTTP server using encryption.
* httpCopyCredentials() - Copy the credentials associated with an
* encrypted connection.
* _httpCreate() - Create an unconnected HTTP connection.
* _httpCreateCredentials() - Create credentials in the internal format.
* httpDelete() - Send a DELETE request to the server.
* _httpDisconnect() - Disconnect a HTTP connection.
* httpEncryption() - Set the required encryption on the link.
* httpError() - Get the last error on a connection.
* httpFlush() - Flush data from a HTTP connection.
* httpFlushWrite() - Flush data in write buffer.
* _httpFreeCredentials() - Free internal credentials.
* httpFreeCredentials() - Free an array of credentials.
* httpGet() - Send a GET request to the server.
* httpGetAuthString() - Get the current authorization string.
* httpGetBlocking() - Get the blocking/non-block state of a
* connection.
* httpGetCookie() - Get any cookie data from the response.
* httpGetFd() - Get the file descriptor associated with a
* connection.
* httpGetField() - Get a field value from a request/response.
* httpGetLength() - Get the amount of data remaining from the
* content-length or transfer-encoding fields.
* httpGetLength2() - Get the amount of data remaining from the
* content-length or transfer-encoding fields.
* httpGets() - Get a line of text from a HTTP connection.
* httpGetState() - Get the current state of the HTTP request.
* httpGetStatus() - Get the status of the last HTTP request.
* httpGetSubField() - Get a sub-field value.
* httpGetSubField2() - Get a sub-field value.
* httpGetVersion() - Get the HTTP version at the other end.
* httpHead() - Send a HEAD request to the server.
* httpInitialize() - Initialize the HTTP interface library and set
* the default HTTP proxy (if any).
* httpOptions() - Send an OPTIONS request to the server.
* _httpPeek() - Peek at data from a HTTP connection.
* httpPost() - Send a POST request to the server.
* httpPrintf() - Print a formatted string to a HTTP connection.
* httpPut() - Send a PUT request to the server.
* httpRead() - Read data from a HTTP connection.
* httpRead2() - Read data from a HTTP connection.
* _httpReadCDSA() - Read function for the CDSA library.
* _httpReadGNUTLS() - Read function for the GNU TLS library.
* httpReconnect() - Reconnect to a HTTP server.
* httpReconnect2() - Reconnect to a HTTP server with timeout and
* optional cancel.
* httpSetAuthString() - Set the current authorization string.
* httpSetCredentials() - Set the credentials associated with an
* encrypted connection.
* httpSetCookie() - Set the cookie value(s).
* httpSetExpect() - Set the Expect: header in a request.
* httpSetField() - Set the value of an HTTP header.
* httpSetLength() - Set the content-length and content-encoding.
* httpSetTimeout() - Set read/write timeouts and an optional
* callback.
* httpTrace() - Send an TRACE request to the server.
* _httpUpdate() - Update the current HTTP status for incoming
* data.
* httpUpdate() - Update the current HTTP state for incoming
* data.
* _httpWait() - Wait for data available on a connection (no
* flush).
* httpWait() - Wait for data available on a connection.
* httpWrite() - Write data to a HTTP connection.
* httpWrite2() - Write data to a HTTP connection.
* _httpWriteCDSA() - Write function for the CDSA library.
* _httpWriteGNUTLS() - Write function for the GNU TLS library.
* http_bio_ctrl() - Control the HTTP connection.
* http_bio_free() - Free OpenSSL data.
* http_bio_new() - Initialize an OpenSSL BIO structure.
* http_bio_puts() - Send a string for OpenSSL.
* http_bio_read() - Read data for OpenSSL.
* http_bio_write() - Write data for OpenSSL.
* http_debug_hex() - Do a hex dump of a buffer.
* http_field() - Return the field index for a field name.
* http_read_ssl() - Read from a SSL/TLS connection.
* http_send() - Send a request with all fields and the trailing
* blank line.
* http_set_credentials() - Set the SSL/TLS credentials.
* http_set_timeout() - Set the socket timeout values.
* http_set_wait() - Set the default wait value for reads.
* http_setup_ssl() - Set up SSL/TLS support on a connection.
* http_shutdown_ssl() - Shut down SSL/TLS on a connection.
* http_upgrade() - Force upgrade to TLS encryption.
* http_write() - Write a buffer to a HTTP connection.
* http_write_chunk() - Write a chunked buffer.
* http_write_ssl() - Write to a SSL/TLS connection.
* httpAddCredential() - Allocates and adds a single credential to an
* array.
* _httpBIOMethods() - Get the OpenSSL BIO methods for HTTP
* connections.
* httpBlocking() - Set blocking/non-blocking behavior on a
* connection.
* httpCheck() - Check to see if there is a pending response
* from the server.
* httpClearCookie() - Clear the cookie value(s).
* httpClearFields() - Clear HTTP request fields.
* httpClose() - Close an HTTP connection.
* httpConnect() - Connect to a HTTP server.
* httpConnectEncrypt() - Connect to a HTTP server using encryption.
* httpCopyCredentials() - Copy the credentials associated with an
* encrypted connection.
* _httpCreate() - Create an unconnected HTTP connection.
* _httpCreateCredentials() - Create credentials in the internal format.
* httpDelete() - Send a DELETE request to the server.
* _httpDisconnect() - Disconnect a HTTP connection.
* httpEncryption() - Set the required encryption on the link.
* httpError() - Get the last error on a connection.
* httpFlush() - Flush data from a HTTP connection.
* httpFlushWrite() - Flush data in write buffer.
* _httpFreeCredentials() - Free internal credentials.
* httpFreeCredentials() - Free an array of credentials.
* httpGet() - Send a GET request to the server.
* httpGetAuthString() - Get the current authorization string.
* httpGetBlocking() - Get the blocking/non-block state of a
* connection.
* httpGetCookie() - Get any cookie data from the response.
* httpGetFd() - Get the file descriptor associated with a
* connection.
* httpGetField() - Get a field value from a request/response.
* httpGetLength() - Get the amount of data remaining from the
* content-length or transfer-encoding fields.
* httpGetLength2() - Get the amount of data remaining from the
* content-length or transfer-encoding fields.
* httpGetStatus() - Get the status of the last HTTP request.
* httpGetSubField() - Get a sub-field value.
* httpGetSubField2() - Get a sub-field value.
* httpGets() - Get a line of text from a HTTP connection.
* httpHead() - Send a HEAD request to the server.
* httpInitialize() - Initialize the HTTP interface library and set
* the default HTTP proxy (if any).
* httpOptions() - Send an OPTIONS request to the server.
* _httpPeek() - Peek at data from a HTTP connection.
* httpPost() - Send a POST request to the server.
* httpPrintf() - Print a formatted string to a HTTP connection.
* httpPut() - Send a PUT request to the server.
* httpRead() - Read data from a HTTP connection.
* httpRead2() - Read data from a HTTP connection.
* _httpReadCDSA() - Read function for the CDSA library.
* _httpReadGNUTLS() - Read function for the GNU TLS library.
* httpReconnect() - Reconnect to a HTTP server.
* httpSetAuthString() - Set the current authorization string.
* httpSetCredentials() - Set the credentials associated with an
* encrypted connection.
* httpSetCookie() - Set the cookie value(s).
* httpSetExpect() - Set the Expect: header in a request.
* httpSetField() - Set the value of an HTTP header.
* httpSetLength() - Set the content-length and content-encoding.
* httpSetTimeout() - Set read/write timeouts and an optional
* callback.
* httpTrace() - Send an TRACE request to the server.
* _httpUpdate() - Update the current HTTP status for incoming
* data.
* httpUpdate() - Update the current HTTP state for incoming
* data.
* _httpWait() - Wait for data available on a connection (no
* flush).
* httpWait() - Wait for data available on a connection.
* httpWrite() - Write data to a HTTP connection.
* httpWrite2() - Write data to a HTTP connection.
* _httpWriteCDSA() - Write function for the CDSA library.
* _httpWriteGNUTLS() - Write function for the GNU TLS library.
* http_bio_ctrl() - Control the HTTP connection.
* http_bio_free() - Free OpenSSL data.
* http_bio_new() - Initialize an OpenSSL BIO structure.
* http_bio_puts() - Send a string for OpenSSL.
* http_bio_read() - Read data for OpenSSL.
* http_bio_write() - Write data for OpenSSL.
* http_debug_hex() - Do a hex dump of a buffer.
* http_field() - Return the field index for a field name.
* http_read_ssl() - Read from a SSL/TLS connection.
* http_locking_cb() - Lock/unlock a thread's mutex.
* http_send() - Send a request with all fields and the trailing
* blank line.
* http_set_credentials() - Set the SSL/TLS credentials.
* http_set_timeout() - Set the socket timeout values.
* http_set_wait() - Set the default wait value for reads.
* http_setup_ssl() - Set up SSL/TLS support on a connection.
* http_shutdown_ssl() - Shut down SSL/TLS on a connection.
* http_threadid_cb() - Return the current thread ID.
* http_upgrade() - Force upgrade to TLS encryption.
* http_write() - Write a buffer to a HTTP connection.
* http_write_chunk() - Write a chunked buffer.
* http_write_ssl() - Write to a SSL/TLS connection.
*/
/*
@@ -135,10 +133,20 @@
# include <sys/resource.h>
#endif /* WIN32 */
#ifdef HAVE_POLL
# include <poll.h>
# include <sys/poll.h>
#endif /* HAVE_POLL */
/*
* Some operating systems have done away with the Fxxxx constants for
* the fcntl() call; this works around that "feature"...
*/
#ifndef FNONBLK
# define FNONBLK O_NONBLOCK
#endif /* !FNONBLK */
/*
* Local functions...
*/
@@ -598,7 +606,6 @@ _httpCreate(
if ((http = calloc(sizeof(http_t), 1)) == NULL)
{
_cupsSetError(IPP_INTERNAL_ERROR, strerror(errno), 0);
httpAddrFreeList(addrlist);
return (NULL);
}
@@ -1109,6 +1116,167 @@ httpGetLength2(http_t *http) /* I - Connection to server */
}
/*
* 'httpGetStatus()' - Get the status of the last HTTP request.
*
* @since CUPS 1.2/Mac OS X 10.5@
*/
http_status_t /* O - HTTP status */
httpGetStatus(http_t *http) /* I - Connection to server */
{
return (http ? http->status : HTTP_ERROR);
}
/*
* 'httpGetSubField()' - Get a sub-field value.
*
* @deprecated@
*/
char * /* O - Value or NULL */
httpGetSubField(http_t *http, /* I - Connection to server */
http_field_t field, /* I - Field index */
const char *name, /* I - Name of sub-field */
char *value) /* O - Value string */
{
return (httpGetSubField2(http, field, name, value, HTTP_MAX_VALUE));
}
/*
* 'httpGetSubField2()' - Get a sub-field value.
*
* @since CUPS 1.2/Mac OS X 10.5@
*/
char * /* O - Value or NULL */
httpGetSubField2(http_t *http, /* I - Connection to server */
http_field_t field, /* I - Field index */
const char *name, /* I - Name of sub-field */
char *value, /* O - Value string */
int valuelen) /* I - Size of value buffer */
{
const char *fptr; /* Pointer into field */
char temp[HTTP_MAX_VALUE], /* Temporary buffer for name */
*ptr, /* Pointer into string buffer */
*end; /* End of value buffer */
DEBUG_printf(("2httpGetSubField2(http=%p, field=%d, name=\"%s\", value=%p, "
"valuelen=%d)", http, field, name, value, valuelen));
if (!http || !name || !value || valuelen < 2 ||
field <= HTTP_FIELD_UNKNOWN || field >= HTTP_FIELD_MAX)
return (NULL);
end = value + valuelen - 1;
for (fptr = http->fields[field]; *fptr;)
{
/*
* Skip leading whitespace...
*/
while (_cups_isspace(*fptr))
fptr ++;
if (*fptr == ',')
{
fptr ++;
continue;
}
/*
* Get the sub-field name...
*/
for (ptr = temp;
*fptr && *fptr != '=' && !_cups_isspace(*fptr) &&
ptr < (temp + sizeof(temp) - 1);
*ptr++ = *fptr++);
*ptr = '\0';
DEBUG_printf(("4httpGetSubField2: name=\"%s\"", temp));
/*
* Skip trailing chars up to the '='...
*/
while (_cups_isspace(*fptr))
fptr ++;
if (!*fptr)
break;
if (*fptr != '=')
continue;
/*
* Skip = and leading whitespace...
*/
fptr ++;
while (_cups_isspace(*fptr))
fptr ++;
if (*fptr == '\"')
{
/*
* Read quoted string...
*/
for (ptr = value, fptr ++;
*fptr && *fptr != '\"' && ptr < end;
*ptr++ = *fptr++);
*ptr = '\0';
while (*fptr && *fptr != '\"')
fptr ++;
if (*fptr)
fptr ++;
}
else
{
/*
* Read unquoted string...
*/
for (ptr = value;
*fptr && !_cups_isspace(*fptr) && *fptr != ',' && ptr < end;
*ptr++ = *fptr++);
*ptr = '\0';
while (*fptr && !_cups_isspace(*fptr) && *fptr != ',')
fptr ++;
}
DEBUG_printf(("4httpGetSubField2: value=\"%s\"", value));
/*
* See if this is the one...
*/
if (!strcmp(name, temp))
{
DEBUG_printf(("3httpGetSubField2: Returning \"%s\"", value));
return (value);
}
}
value[0] = '\0';
DEBUG_puts("3httpGetSubField2: Returning NULL");
return (NULL);
}
/*
* 'httpGets()' - Get a line of text from a HTTP connection.
*/
@@ -1289,189 +1457,6 @@ httpGets(char *line, /* I - Line to read into */
}
/*
* 'httpGetState()' - Get the current state of the HTTP request.
*/
http_state_t /* O - HTTP state */
httpGetState(http_t *http) /* I - Connection to server */
{
return (http ? http->state : HTTP_ERROR);
}
/*
* 'httpGetStatus()' - Get the status of the last HTTP request.
*
* @since CUPS 1.2/Mac OS X 10.5@
*/
http_status_t /* O - HTTP status */
httpGetStatus(http_t *http) /* I - Connection to server */
{
return (http ? http->status : HTTP_ERROR);
}
/*
* 'httpGetSubField()' - Get a sub-field value.
*
* @deprecated@
*/
char * /* O - Value or NULL */
httpGetSubField(http_t *http, /* I - Connection to server */
http_field_t field, /* I - Field index */
const char *name, /* I - Name of sub-field */
char *value) /* O - Value string */
{
return (httpGetSubField2(http, field, name, value, HTTP_MAX_VALUE));
}
/*
* 'httpGetSubField2()' - Get a sub-field value.
*
* @since CUPS 1.2/Mac OS X 10.5@
*/
char * /* O - Value or NULL */
httpGetSubField2(http_t *http, /* I - Connection to server */
http_field_t field, /* I - Field index */
const char *name, /* I - Name of sub-field */
char *value, /* O - Value string */
int valuelen) /* I - Size of value buffer */
{
const char *fptr; /* Pointer into field */
char temp[HTTP_MAX_VALUE], /* Temporary buffer for name */
*ptr, /* Pointer into string buffer */
*end; /* End of value buffer */
DEBUG_printf(("2httpGetSubField2(http=%p, field=%d, name=\"%s\", value=%p, "
"valuelen=%d)", http, field, name, value, valuelen));
if (!http || !name || !value || valuelen < 2 ||
field <= HTTP_FIELD_UNKNOWN || field >= HTTP_FIELD_MAX)
return (NULL);
end = value + valuelen - 1;
for (fptr = http->fields[field]; *fptr;)
{
/*
* Skip leading whitespace...
*/
while (_cups_isspace(*fptr))
fptr ++;
if (*fptr == ',')
{
fptr ++;
continue;
}
/*
* Get the sub-field name...
*/
for (ptr = temp;
*fptr && *fptr != '=' && !_cups_isspace(*fptr) &&
ptr < (temp + sizeof(temp) - 1);
*ptr++ = *fptr++);
*ptr = '\0';
DEBUG_printf(("4httpGetSubField2: name=\"%s\"", temp));
/*
* Skip trailing chars up to the '='...
*/
while (_cups_isspace(*fptr))
fptr ++;
if (!*fptr)
break;
if (*fptr != '=')
continue;
/*
* Skip = and leading whitespace...
*/
fptr ++;
while (_cups_isspace(*fptr))
fptr ++;
if (*fptr == '\"')
{
/*
* Read quoted string...
*/
for (ptr = value, fptr ++;
*fptr && *fptr != '\"' && ptr < end;
*ptr++ = *fptr++);
*ptr = '\0';
while (*fptr && *fptr != '\"')
fptr ++;
if (*fptr)
fptr ++;
}
else
{
/*
* Read unquoted string...
*/
for (ptr = value;
*fptr && !_cups_isspace(*fptr) && *fptr != ',' && ptr < end;
*ptr++ = *fptr++);
*ptr = '\0';
while (*fptr && !_cups_isspace(*fptr) && *fptr != ',')
fptr ++;
}
DEBUG_printf(("4httpGetSubField2: value=\"%s\"", value));
/*
* See if this is the one...
*/
if (!strcmp(name, temp))
{
DEBUG_printf(("3httpGetSubField2: Returning \"%s\"", value));
return (value);
}
}
value[0] = '\0';
DEBUG_puts("3httpGetSubField2: Returning NULL");
return (NULL);
}
/*
* 'httpGetVersion()' - Get the HTTP version at the other end.
*/
http_version_t /* O - Version number */
httpGetVersion(http_t *http) /* I - Connection to server */
{
return (http ? http->version : HTTP_1_0);
}
/*
* 'httpHead()' - Send a HEAD request to the server.
*/
@@ -2268,22 +2253,6 @@ _httpReadGNUTLS(
int /* O - 0 on success, non-zero on failure */
httpReconnect(http_t *http) /* I - Connection to server */
{
DEBUG_printf(("httpReconnect(http=%p)", http));
return (httpReconnect2(http, 30000, NULL));
}
/*
* 'httpReconnect2()' - Reconnect to a HTTP server with timeout and optional
* cancel.
*/
int /* O - 0 on success, non-zero on failure */
httpReconnect2(http_t *http, /* I - Connection to server */
int msec, /* I - Timeout in milliseconds */
int *cancel) /* I - Pointer to "cancel" variable */
{
http_addrlist_t *addr; /* Connected address */
#ifdef DEBUG
@@ -2292,19 +2261,15 @@ httpReconnect2(http_t *http, /* I - Connection to server */
#endif /* DEBUG */
DEBUG_printf(("httpReconnect2(http=%p, msec=%d, cancel=%p)", http, msec,
cancel));
DEBUG_printf(("httpReconnect(http=%p)", http));
if (!http)
{
_cupsSetError(IPP_INTERNAL_ERROR, strerror(EINVAL), 0);
return (-1);
}
#ifdef HAVE_SSL
if (http->tls)
{
DEBUG_puts("2httpReconnect2: Shutting down SSL/TLS...");
DEBUG_puts("2httpReconnect: Shutting down SSL/TLS...");
http_shutdown_ssl(http);
}
#endif /* HAVE_SSL */
@@ -2315,7 +2280,7 @@ httpReconnect2(http_t *http, /* I - Connection to server */
if (http->fd >= 0)
{
DEBUG_printf(("2httpReconnect2: Closing socket %d...", http->fd));
DEBUG_printf(("2httpReconnect: Closing socket %d...", http->fd));
#ifdef WIN32
closesocket(http->fd);
@@ -2332,13 +2297,12 @@ httpReconnect2(http_t *http, /* I - Connection to server */
#ifdef DEBUG
for (current = http->addrlist; current; current = current->next)
DEBUG_printf(("2httpReconnect2: Address %s:%d",
DEBUG_printf(("2httpReconnect: Address %s:%d",
httpAddrString(&(current->addr), temp, sizeof(temp)),
_httpAddrPort(&(current->addr))));
#endif /* DEBUG */
if ((addr = httpAddrConnect2(http->addrlist, &(http->fd), msec,
cancel)) == NULL)
if ((addr = httpAddrConnect(http->addrlist, &(http->fd))) == NULL)
{
/*
* Unable to connect...
@@ -2351,13 +2315,13 @@ httpReconnect2(http_t *http, /* I - Connection to server */
#endif /* WIN32 */
http->status = HTTP_ERROR;
DEBUG_printf(("1httpReconnect2: httpAddrConnect failed: %s",
DEBUG_printf(("1httpReconnect: httpAddrConnect failed: %s",
strerror(http->error)));
return (-1);
}
DEBUG_printf(("2httpReconnect2: New socket=%d", http->fd));
DEBUG_printf(("2httpReconnect: New socket=%d", http->fd));
if (http->timeout_value > 0)
http_set_timeout(http->fd, http->timeout_value);
@@ -2389,7 +2353,7 @@ httpReconnect2(http_t *http, /* I - Connection to server */
return (http_upgrade(http));
#endif /* HAVE_SSL */
DEBUG_printf(("1httpReconnect2: Connected to %s:%d...",
DEBUG_printf(("1httpReconnect: Connected to %s:%d...",
httpAddrString(http->hostaddr, temp, sizeof(temp)),
_httpAddrPort(http->hostaddr)));
@@ -3869,8 +3833,7 @@ http_setup_ssl(http_t *http) /* I - Connection to server */
_cups_globals_t *cg = _cupsGlobals();
/* Pointer to library globals */
int any_root; /* Allow any root */
char hostname[256], /* Hostname */
*hostptr; /* Pointer into hostname */
char *hostname; /* Hostname */
# ifdef HAVE_LIBSSL
SSL_CTX *context; /* Context for encryption */
@@ -3906,24 +3869,11 @@ http_setup_ssl(http_t *http) /* I - Connection to server */
*/
if (httpAddrLocalhost(http->hostaddr))
{
any_root = 1;
strlcpy(hostname, "localhost", sizeof(hostname));
}
else
{
/*
* Otherwise use the system-wide setting and make sure the hostname we have
* does not end in a trailing dot.
*/
any_root = cg->any_root;
strlcpy(hostname, http->hostname, sizeof(hostname));
if ((hostptr = hostname + strlen(hostname) - 1) >= hostname &&
*hostptr == '.')
*hostptr = '\0';
}
hostname = httpAddrLocalhost(http->hostaddr) ? "localhost" : http->hostname;
# ifdef HAVE_LIBSSL
(void)any_root;
+6 -13
Ver Arquivo
@@ -3,7 +3,7 @@
*
* Hyper-Text Transport Protocol definitions for CUPS.
*
* Copyright 2007-2012 by Apple Inc.
* Copyright 2007-2011 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
@@ -357,7 +357,10 @@ extern void httpInitialize(void);
extern int httpOptions(http_t *http, const char *uri);
extern int httpPost(http_t *http, const char *uri);
extern int httpPrintf(http_t *http, const char *format, ...)
__attribute__ ((__format__ (__printf__, 2, 3)));
# ifdef __GNUC__
__attribute__ ((__format__ (__printf__, 2, 3)))
# endif /* __GNUC__ */
;
extern int httpPut(http_t *http, const char *uri);
extern int httpRead(http_t *http, char *buffer, int length) _CUPS_DEPRECATED;
extern int httpReconnect(http_t *http);
@@ -459,17 +462,7 @@ extern void httpFreeCredentials(cups_array_t *certs) _CUPS_API_1_5;
extern int httpSetCredentials(http_t *http, cups_array_t *certs)
_CUPS_API_1_5;
extern void httpSetTimeout(http_t *http, double timeout,
http_timeout_cb_t cb, void *user_data)
_CUPS_API_1_5;
/**** New in CUPS 1.6 ****/
extern http_addrlist_t *httpAddrConnect2(http_addrlist_t *addrlist, int *sock,
int msec, int *cancel)
_CUPS_API_1_6;
extern http_state_t httpGetState(http_t *http) _CUPS_API_1_6;
extern http_version_t httpGetVersion(http_t *http) _CUPS_API_1_6;
extern int httpReconnect2(http_t *http, int msec, int *cancel)
_CUPS_API_1_6;
http_timeout_cb_t cb, void *user_data);
/*
+10 -98
Ver Arquivo
@@ -3,7 +3,7 @@
*
* Private IPP definitions for CUPS.
*
* Copyright 2007-2011 by Apple Inc.
* Copyright 2007-2010 by Apple Inc.
* Copyright 1997-2006 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
@@ -46,102 +46,12 @@ extern "C" {
* Structures...
*/
typedef union _ipp_request_u /**** Request Header ****/
typedef struct _ipp_buffer_s /**** Read/write buffer ****/
{
struct /* Any Header */
{
ipp_uchar_t version[2]; /* Protocol version number */
int op_status; /* Operation ID or status code*/
int request_id; /* Request ID */
} any;
struct /* Operation Header */
{
ipp_uchar_t version[2]; /* Protocol version number */
ipp_op_t operation_id; /* Operation ID */
int request_id; /* Request ID */
} op;
struct /* Status Header */
{
ipp_uchar_t version[2]; /* Protocol version number */
ipp_status_t status_code; /* Status code */
int request_id; /* Request ID */
} status;
/**** New in CUPS 1.1.19 ****/
struct /* Event Header @since CUPS 1.1.19/Mac OS X 10.3@ */
{
ipp_uchar_t version[2]; /* Protocol version number */
ipp_status_t status_code; /* Status code */
int request_id; /* Request ID */
} event;
} _ipp_request_t;
/**** New in CUPS 1.1.19 ****/
typedef union _ipp_value_u /**** Attribute Value ****/
{
int integer; /* Integer/enumerated value */
char boolean; /* Boolean value */
ipp_uchar_t date[11]; /* Date/time value */
struct
{
int xres, /* Horizontal resolution */
yres; /* Vertical resolution */
ipp_res_t units; /* Resolution units */
} resolution; /* Resolution value */
struct
{
int lower, /* Lower value */
upper; /* Upper value */
} range; /* Range of integers value */
struct
{
char *language; /* Language code */
char *text; /* String */
} string; /* String with language value */
struct
{
int length; /* Length of attribute */
void *data; /* Data in attribute */
} unknown; /* Unknown attribute type */
/**** New in CUPS 1.1.19 ****/
ipp_t *collection; /* Collection value @since CUPS 1.1.19/Mac OS X 10.3@ */
} _ipp_value_t;
struct _ipp_attribute_s /**** Attribute ****/
{
ipp_attribute_t *next; /* Next attribute in list */
ipp_tag_t group_tag, /* Job/Printer/Operation group tag */
value_tag; /* What type of value is it? */
char *name; /* Name of attribute */
int num_values; /* Number of values */
_ipp_value_t values[1]; /* Values */
};
struct _ipp_s /**** IPP Request/Response/Notification ****/
{
ipp_state_t state; /* State of request */
_ipp_request_t request; /* Request header */
ipp_attribute_t *attrs; /* Attributes */
ipp_attribute_t *last; /* Last attribute in list */
ipp_attribute_t *current; /* Current attribute (for read/write) */
ipp_tag_t curtag; /* Current attribute group tag */
/**** New in CUPS 1.2 ****/
ipp_attribute_t *prev; /* Previous attribute (for read) @since CUPS 1.2/Mac OS X 10.5@ */
/**** New in CUPS 1.4.4 ****/
int use; /* Use count @since CUPS 1.4.4/Mac OS X 10.6.?@ */
};
unsigned char d[IPP_BUF_SIZE];/* Data buffer */
struct _ipp_buffer_s *next; /* Next buffer in list */
int used; /* Is this buffer used? */
} _ipp_buffer_t;
typedef struct /**** Attribute mapping data ****/
{
@@ -149,8 +59,6 @@ typedef struct /**** Attribute mapping data ****/
const char *name; /* Option/attribute name */
ipp_tag_t value_tag; /* Value tag for this attribute */
ipp_tag_t group_tag; /* Group tag for this attribute */
ipp_tag_t alt_group_tag; /* Alternate group tag for this
* attribute */
} _ipp_option_t;
@@ -158,7 +66,11 @@ typedef struct /**** Attribute mapping data ****/
* Prototypes for private functions...
*/
extern ipp_attribute_t *_ippAddAttr(ipp_t *ipp, int num_values);
extern size_t _ippAttrString(ipp_attribute_t *attr, char *buffer,
size_t bufsize);
extern _ipp_option_t *_ippFindOption(const char *name);
extern void _ippFreeAttr(ipp_attribute_t *attr);
/*
+83 -337
Ver Arquivo
@@ -16,19 +16,16 @@
*
* Contents:
*
* ippAttributeString() - Convert the attribute's value to a string.
* ippEnumString() - Return a string corresponding to the enum value.
* ippEnumValue() - Return the value associated with a given enum
* string.
* ippErrorString() - Return a name for the given status code.
* ippErrorValue() - Return a status code for the given name.
* ippOpString() - Return a name for the given operation id.
* ippOpValue() - Return an operation id for the given name.
* ippPort() - Return the default IPP port number.
* ippSetPort() - Set the default port number.
* ippTagString() - Return the tag name corresponding to a tag value.
* ippTagValue() - Return the tag value corresponding to a tag name.
* ipp_col_string() - Convert a collection to a string.
* _ippAttrString() - Convert the attribute's value to a string.
* ippErrorString() - Return a name for the given status code.
* ippErrorValue() - Return a status code for the given name.
* ippOpString() - Return a name for the given operation id.
* ippOpValue() - Return an operation id for the given name.
* ippPort() - Return the default IPP port number.
* ippSetPort() - Set the default port number.
* ippTagString() - Return the tag name corresponding to a tag value.
* ippTagValue() - Return the tag value corresponding to a tag name.
* ipp_col_string() - Convert a collection to a string.
*/
/*
@@ -43,18 +40,18 @@
*/
static const char * const ipp_status_oks[] = /* "OK" status codes */
{ /* (name) = abandoned standard value */
{
"successful-ok",
"successful-ok-ignored-or-substituted-attributes",
"successful-ok-conflicting-attributes",
"successful-ok-ignored-subscriptions",
"(successful-ok-ignored-notifications)",
"successful-ok-ignored-notifications",
"successful-ok-too-many-events",
"(successful-ok-but-cancel-subscription)",
"successful-ok-but-cancel-subscription",
"successful-ok-events-complete"
},
* const ipp_status_400s[] = /* Client errors */
{ /* (name) = abandoned standard value */
{
"client-error-bad-request",
"client-error-forbidden",
"client-error-not-authenticated",
@@ -77,8 +74,8 @@ static const char * const ipp_status_oks[] = /* "OK" status codes */
"client-error-attributes-not-settable",
"client-error-ignored-all-subscriptions",
"client-error-too-many-subscriptions",
"(client-error-ignored-all-notifications)",
"(client-error-client-print-support-file-not-found)"
"client-error-ignored-all-notifications",
"client-error-print-support-file-not-found"
},
* const ipp_status_500s[] = /* Server errors */
{
@@ -102,7 +99,7 @@ static const char * const ipp_status_oks[] = /* "OK" status codes */
"cups-pki-error",
"cups-upgrade-required"
};
static const char * const ipp_std_ops[] =
static char * const ipp_std_ops[] =
{
/* 0x0000 - 0x000f */
"0x00",
@@ -136,13 +133,13 @@ static const char * const ipp_std_ops[] =
"Renew-Subscription",
"Cancel-Subscription",
"Get-Notifications",
"(Send-Notifications)",
"(Get-Resource-Attributes)",
"(Get-Resource-Data)",
"Send-Notifications",
"0x1e",
"0x1f",
/* 0x0020 - 0x002f */
"(Get-Resources)",
"(Get-Printer-Support-Files)",
"0x20",
"Get-Printer-Support-Files",
"Enable-Printer",
"Disable-Printer",
"Pause-Printer-After-Current-Job",
@@ -211,8 +208,7 @@ static const char * const ipp_std_ops[] =
/* 0x06 */
"event-notification-attributes-tag",
/* 0x07 */
"(resource-attributes-tag)",
/* 0x08 */
"0x08", /* 0x08 */
"document-attributes-tag",
/* 0x09 */
"0x0a", /* 0x0a */
@@ -281,115 +277,22 @@ static const char * const ipp_std_ops[] =
"mimeMediaType", /* 0x49 */
"memberAttrName" /* 0x4a */
};
static const char * const ipp_document_states[] =
{ /* document-state-enums */
"pending",
"4",
"processing",
"6",
"canceled",
"aborted",
"completed"
},
* const ipp_finishings[] =
{ /* finishings enums */
"none",
"staple",
"punch",
"cover",
"bind",
"saddle-stitch",
"edge-stitch",
"fold",
"trim",
"bale",
"booklet-maker",
"jog-offset",
"15",
"16",
"17",
"18",
"19",
"staple-top-left",
"staple-bottom-left",
"staple-top-right",
"staple-bottom-right",
"edge-stitch-left",
"edge-stitch-top",
"edge-stitch-right",
"edge-stitch-bottom",
"staple-dual-left",
"staple-dual-top",
"staple-dual-right",
"staple-dual-bottom",
"32",
"33",
"34",
"35",
"36",
"37",
"38",
"39",
"40",
"41",
"42",
"43",
"44",
"45",
"46",
"47",
"48",
"49",
"bind-left",
"bind-top",
"bind-right",
"bind-bottom",
"54",
"55",
"56",
"57",
"58",
"59",
"trim-after-pages",
"trim-after-documents",
"trim-after-copies",
"trim-after-job"
},
* const ipp_job_collation_types[] =
{ /* job-collation-type enums */
"uncollated-sheets",
"collated-documents",
"uncollated-documents"
},
* const ipp_job_states[] =
{ /* job-state enums */
"pending",
"pending-held",
"processing",
"processing-stopped",
"canceled",
"aborted",
"completed"
},
* const ipp_orientation_requesteds[] =
{ /* orientation-requested enums */
"portrait",
"landscape",
"reverse-landscape",
"reverse-portrait"
},
* const ipp_print_qualities[] =
{ /* print-quality enums */
"draft",
"normal",
"high"
},
* const ipp_printer_states[] =
{ /* printer-state enums */
"idle",
"processing",
"stopped",
};
static const char * const job_states[] =
{ /* job-state enums */
"pending",
"pending-held",
"processing",
"processing-stopped",
"canceled",
"aborted",
"completed"
};
static const char * const printer_states[] =
{ /* printer-state enums */
"idle",
"processing",
"stopped",
};
/*
@@ -400,27 +303,24 @@ static size_t ipp_col_string(ipp_t *col, char *buffer, size_t bufsize);
/*
* 'ippAttributeString()' - Convert the attribute's value to a string.
* '_ippAttrString()' - Convert the attribute's value to a string.
*
* Returns the number of bytes that would be written, not including the
* trailing nul. The buffer pointer can be NULL to get the required length,
* just like (v)snprintf.
*
* @since CUPS 1.6@
*/
size_t /* O - Number of bytes less nul */
ippAttributeString(
ipp_attribute_t *attr, /* I - Attribute */
char *buffer, /* I - String buffer or NULL */
size_t bufsize) /* I - Size of string buffer */
_ippAttrString(ipp_attribute_t *attr, /* I - Attribute */
char *buffer, /* I - String buffer or NULL */
size_t bufsize) /* I - Size of string buffer */
{
int i; /* Looping var */
char *bufptr, /* Pointer into buffer */
*bufend, /* End of buffer */
temp[256]; /* Temporary string */
const char *ptr; /* Pointer into string */
_ipp_value_t *val; /* Current value */
ipp_value_t *val; /* Current value */
if (!attr || !attr->name)
@@ -450,13 +350,40 @@ ippAttributeString(
switch (attr->value_tag & ~IPP_TAG_COPY)
{
case IPP_TAG_ENUM :
ptr = ippEnumString(attr->name, val->integer);
if (!strcmp(attr->name, "printer-state") &&
val->integer >= IPP_PRINTER_IDLE &&
val->integer <= IPP_PRINTER_STOPPED)
{
ptr = printer_states[val->integer - IPP_PRINTER_IDLE];
if (buffer && bufptr < bufend)
strlcpy(bufptr, ptr, bufend - bufptr + 1);
if (buffer && bufptr < bufend)
strlcpy(bufptr, ptr, bufend - bufptr + 1);
bufptr += strlen(ptr);
break;
bufptr += strlen(ptr);
break;
}
else if (!strcmp(attr->name, "job-state") &&
val->integer >= IPP_JOB_PENDING &&
val->integer <= IPP_JOB_COMPLETED)
{
ptr = job_states[val->integer - IPP_JOB_PENDING];
if (buffer && bufptr < bufend)
strlcpy(bufptr, ptr, bufend - bufptr + 1);
bufptr += strlen(ptr);
break;
}
else if (!strcmp(attr->name, "operations-supported"))
{
ptr = ippOpString(val->integer);
if (buffer && bufptr < bufend)
strlcpy(bufptr, ptr, bufend - bufptr + 1);
bufptr += strlen(ptr);
break;
}
case IPP_TAG_INTEGER :
if (buffer && bufptr < bufend)
@@ -534,7 +461,7 @@ ippAttributeString(
for (ptr = val->string.text; *ptr; ptr ++)
{
if (*ptr == '\\' || *ptr == '\"' || *ptr == '[')
if (*ptr == '\\' || *ptr == '\"')
{
if (buffer && bufptr < bufend)
*bufptr = '\\';
@@ -545,25 +472,6 @@ ippAttributeString(
*bufptr = *ptr;
bufptr ++;
}
if (val->string.language)
{
/*
* Add "[language]" to end of string...
*/
if (buffer && bufptr < bufend)
*bufptr = '[';
bufptr ++;
if (buffer && bufptr < bufend)
strlcpy(bufptr, val->string.language, bufend - bufptr);
bufptr += strlen(val->string.language);
if (buffer && bufptr < bufend)
*bufptr = ']';
bufptr ++;
}
break;
case IPP_TAG_BEGIN_COLLECTION :
@@ -623,159 +531,6 @@ ippAttributeString(
}
/*
* 'ippEnumString()' - Return a string corresponding to the enum value.
*/
const char * /* O - Enum string */
ippEnumString(const char *attrname, /* I - Attribute name */
int enumvalue) /* I - Enum value */
{
_cups_globals_t *cg = _cupsGlobals(); /* Pointer to library globals */
/*
* Check for standard enum values...
*/
if (!strcmp(attrname, "document-state") &&
enumvalue >= 3 &&
enumvalue <= (3 + (int)(sizeof(ipp_document_states) /
sizeof(ipp_document_states[0]))))
return (ipp_document_states[enumvalue - 3]);
else if ((!strcmp(attrname, "finishings") ||
!strcmp(attrname, "finishings-actual") ||
!strcmp(attrname, "finishings-default") ||
!strcmp(attrname, "finishings-ready") ||
!strcmp(attrname, "finishings-supported")) &&
enumvalue >= 3 &&
enumvalue <= (3 + (int)(sizeof(ipp_finishings) / sizeof(ipp_finishings[0]))))
return (ipp_finishings[enumvalue - 3]);
else if ((!strcmp(attrname, "job-collation-type") ||
!strcmp(attrname, "job-collation-type-actual")) &&
enumvalue >= 3 &&
enumvalue <= (3 + (int)(sizeof(ipp_job_collation_types) /
sizeof(ipp_job_collation_types[0]))))
return (ipp_job_collation_types[enumvalue - 3]);
else if (!strcmp(attrname, "job-state") &&
enumvalue >= IPP_JOB_PENDING && enumvalue <= IPP_JOB_COMPLETED)
return (ipp_job_states[enumvalue - IPP_JOB_PENDING]);
else if (!strcmp(attrname, "operations-supported"))
return (ippOpString((ipp_op_t)enumvalue));
else if ((!strcmp(attrname, "orientation-requested") ||
!strcmp(attrname, "orientation-requested-actual") ||
!strcmp(attrname, "orientation-requested-default") ||
!strcmp(attrname, "orientation-requested-supported")) &&
enumvalue >= 3 &&
enumvalue <= (3 + (int)(sizeof(ipp_orientation_requesteds) /
sizeof(ipp_orientation_requesteds[0]))))
return (ipp_orientation_requesteds[enumvalue - 3]);
else if ((!strcmp(attrname, "print-quality") ||
!strcmp(attrname, "print-quality-actual") ||
!strcmp(attrname, "print-quality-default") ||
!strcmp(attrname, "print-quality-supported")) &&
enumvalue >= 3 &&
enumvalue <= (3 + (int)(sizeof(ipp_print_qualities) /
sizeof(ipp_print_qualities[0]))))
return (ipp_print_qualities[enumvalue - 3]);
else if (!strcmp(attrname, "printer-state") &&
enumvalue >= IPP_PRINTER_IDLE && enumvalue <= IPP_PRINTER_STOPPED)
return (ipp_printer_states[enumvalue - IPP_PRINTER_IDLE]);
/*
* Not a standard enum value, just return the decimal equivalent...
*/
snprintf(cg->ipp_unknown, sizeof(cg->ipp_unknown), "%d", enumvalue);
return (cg->ipp_unknown);
}
/*
* 'ippEnumValue()' - Return the value associated with a given enum string.
*/
int /* O - Enum value or -1 if unknown */
ippEnumValue(const char *attrname, /* I - Attribute name */
const char *enumstring) /* I - Enum string */
{
int i, /* Looping var */
num_strings; /* Number of strings to compare */
const char * const *strings; /* Strings to compare */
/*
* If the string is just a number, return it...
*/
if (isdigit(*enumstring & 255))
return (strtol(enumstring, NULL, 0));
/*
* Otherwise look up the string...
*/
if (!strcmp(attrname, "document-state"))
{
num_strings = (int)(sizeof(ipp_document_states) / sizeof(ipp_document_states[0]));
strings = ipp_document_states;
}
else if (!strcmp(attrname, "finishings") ||
!strcmp(attrname, "finishings-actual") ||
!strcmp(attrname, "finishings-default") ||
!strcmp(attrname, "finishings-ready") ||
!strcmp(attrname, "finishings-supported"))
{
num_strings = (int)(sizeof(ipp_finishings) / sizeof(ipp_finishings[0]));
strings = ipp_finishings;
}
else if (!strcmp(attrname, "job-collation-type") ||
!strcmp(attrname, "job-collation-type-actual"))
{
num_strings = (int)(sizeof(ipp_job_collation_types) /
sizeof(ipp_job_collation_types[0]));
strings = ipp_job_collation_types;
}
else if (!strcmp(attrname, "job-state"))
{
num_strings = (int)(sizeof(ipp_job_states) / sizeof(ipp_job_states[0]));
strings = ipp_job_states;
}
else if (!strcmp(attrname, "operations-supported"))
return (ippOpValue(enumstring));
else if (!strcmp(attrname, "orientation-requested") ||
!strcmp(attrname, "orientation-requested-actual") ||
!strcmp(attrname, "orientation-requested-default") ||
!strcmp(attrname, "orientation-requested-supported"))
{
num_strings = (int)(sizeof(ipp_orientation_requesteds) /
sizeof(ipp_orientation_requesteds[0]));
strings = ipp_orientation_requesteds;
}
else if (!strcmp(attrname, "print-quality") ||
!strcmp(attrname, "print-quality-actual") ||
!strcmp(attrname, "print-quality-default") ||
!strcmp(attrname, "print-quality-supported"))
{
num_strings = (int)(sizeof(ipp_print_qualities) / sizeof(ipp_print_qualities[0]));
strings = ipp_print_qualities;
}
else if (!strcmp(attrname, "printer-state"))
{
num_strings = (int)(sizeof(ipp_printer_states) / sizeof(ipp_printer_states[0]));
strings = ipp_printer_states;
}
else
return (-1);
for (i = 0; i < num_strings; i ++)
if (!strcmp(enumstring, strings[i]))
return (i + 3);
return (-1);
}
/*
* 'ippErrorString()' - Return a name for the given status code.
*/
@@ -1036,7 +791,6 @@ ipp_col_string(ipp_t *col, /* I - Collection attribute */
{
char *bufptr, /* Position in buffer */
*bufend, /* End of buffer */
prefix = '{', /* Prefix character */
temp[256]; /* Temporary string */
ipp_attribute_t *attr; /* Current member attribute */
@@ -1044,32 +798,24 @@ ipp_col_string(ipp_t *col, /* I - Collection attribute */
bufptr = buffer;
bufend = buffer + bufsize - 1;
if (buffer && bufptr < bufend)
*bufptr = '{';
bufptr ++;
for (attr = col->attrs; attr; attr = attr->next)
{
if (!attr->name)
continue;
if (buffer && bufptr < bufend)
*bufptr = prefix;
bufptr ++;
prefix = ' ';
if (buffer && bufptr < bufend)
bufptr += snprintf(bufptr, bufend - bufptr + 1, "%s=", attr->name);
else
bufptr += strlen(attr->name) + 1;
if (buffer && bufptr < bufend)
bufptr += ippAttributeString(attr, bufptr, bufend - bufptr + 1);
bufptr += _ippAttrString(attr, bufptr, bufend - bufptr + 1);
else
bufptr += ippAttributeString(attr, temp, sizeof(temp));
}
if (prefix == '{')
{
if (buffer && bufptr < bufend)
*bufptr = prefix;
bufptr ++;
bufptr += _ippAttrString(attr, temp, sizeof(temp));
}
if (buffer && bufptr < bufend)
+646 -2935
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+195 -219
Ver Arquivo
@@ -63,14 +63,54 @@ extern "C" {
* Types and structures...
*/
typedef enum ipp_dstate_e /**** Document states ****/
typedef enum ipp_tag_e /**** Format tags for attributes ****/
{
IPP_DOCUMENT_PENDING = 3,
IPP_DOCUMENT_PROCESSING = 5,
IPP_DOCUMENT_CANCELED = 7,
IPP_DOCUMENT_ABORTED,
IPP_DOCUMENT_COMPLETED
} ipp_dstate_t;
IPP_TAG_ZERO = 0x00, /* Zero tag - used for separators */
IPP_TAG_OPERATION, /* Operation group */
IPP_TAG_JOB, /* Job group */
IPP_TAG_END, /* End-of-attributes */
IPP_TAG_PRINTER, /* Printer group */
IPP_TAG_UNSUPPORTED_GROUP, /* Unsupported attributes group */
IPP_TAG_SUBSCRIPTION, /* Subscription group */
IPP_TAG_EVENT_NOTIFICATION, /* Event group */
IPP_TAG_DOCUMENT = 0x09, /* Document group */
IPP_TAG_UNSUPPORTED_VALUE = 0x10, /* Unsupported value */
IPP_TAG_DEFAULT, /* Default value */
IPP_TAG_UNKNOWN, /* Unknown value */
IPP_TAG_NOVALUE, /* No-value value */
IPP_TAG_NOTSETTABLE = 0x15, /* Not-settable value */
IPP_TAG_DELETEATTR, /* Delete-attribute value */
IPP_TAG_ADMINDEFINE, /* Admin-defined value */
IPP_TAG_INTEGER = 0x21, /* Integer value */
IPP_TAG_BOOLEAN, /* Boolean value */
IPP_TAG_ENUM, /* Enumeration value */
IPP_TAG_STRING = 0x30, /* Octet string value */
IPP_TAG_DATE, /* Date/time value */
IPP_TAG_RESOLUTION, /* Resolution value */
IPP_TAG_RANGE, /* Range value */
IPP_TAG_BEGIN_COLLECTION, /* Beginning of collection value */
IPP_TAG_TEXTLANG, /* Text-with-language value */
IPP_TAG_NAMELANG, /* Name-with-language value */
IPP_TAG_END_COLLECTION, /* End of collection value */
IPP_TAG_TEXT = 0x41, /* Text value */
IPP_TAG_NAME, /* Name value */
IPP_TAG_RESERVED_STRING, /* Reserved for future string value @private@ */
IPP_TAG_KEYWORD, /* Keyword value */
IPP_TAG_URI, /* URI value */
IPP_TAG_URISCHEME, /* URI scheme value */
IPP_TAG_CHARSET, /* Character set value */
IPP_TAG_LANGUAGE, /* Language value */
IPP_TAG_MIMETYPE, /* MIME media type value */
IPP_TAG_MEMBERNAME, /* Collection member name value */
IPP_TAG_MASK = 0x7fffffff, /* Mask for copied attribute values */
IPP_TAG_COPY = -0x7fffffff-1 /* Bitflag for copied attribute values */
} ipp_tag_t;
typedef enum ipp_res_e /**** Resolution units ****/
{
IPP_RES_PER_INCH = 3, /* Pixels per inch */
IPP_RES_PER_CM /* Pixels per centimeter */
} ipp_res_t;
typedef enum ipp_finish_e /**** Finishings ****/
{
@@ -101,19 +141,23 @@ typedef enum ipp_finish_e /**** Finishings ****/
IPP_FINISHINGS_BIND_LEFT = 50, /* Bind on left */
IPP_FINISHINGS_BIND_TOP, /* Bind on top */
IPP_FINISHINGS_BIND_RIGHT, /* Bind on right */
IPP_FINISHINGS_BIND_BOTTOM, /* Bind on bottom */
IPP_FINISHINGS_TRIM_AFTER_PAGES = 60, /* Trim output after each page */
IPP_FINISHINGS_TRIM_AFTER_DOCUMENTS, /* Trim output after each document */
IPP_FINISHINGS_TRIM_AFTER_COPIES, /* Trim output after each copy */
IPP_FINISHINGS_TRIM_AFTER_JOB /* Trim output after job */
IPP_FINISHINGS_BIND_BOTTOM /* Bind on bottom */
} ipp_finish_t;
typedef enum ipp_jcollate_e /**** Job collation types ****/
typedef enum ipp_orient_e /**** Orientation values ****/
{
IPP_JOB_UNCOLLATED_SHEETS = 3,
IPP_JOB_COLLATED_DOCUMENTS,
IPP_JOB_UNCOLLATED_DOCUMENTS
} ipp_jcollate_t;
IPP_PORTRAIT = 3, /* No rotation */
IPP_LANDSCAPE, /* 90 degrees counter-clockwise */
IPP_REVERSE_LANDSCAPE, /* 90 degrees clockwise */
IPP_REVERSE_PORTRAIT /* 180 degrees */
} ipp_orient_t;
typedef enum ipp_quality_e /**** Qualities ****/
{
IPP_QUALITY_DRAFT = 3, /* Draft quality */
IPP_QUALITY_NORMAL, /* Normal quality */
IPP_QUALITY_HIGH /* High quality */
} ipp_quality_t;
typedef enum ipp_jstate_e /**** Job states ****/
{
@@ -124,13 +168,27 @@ typedef enum ipp_jstate_e /**** Job states ****/
IPP_JOB_CANCELED, /* Job has been canceled */
IPP_JOB_ABORTED, /* Job has aborted due to error */
IPP_JOB_COMPLETED /* Job has completed successfully */
/* Legacy name for canceled state */
#define IPP_JOB_CANCELLED IPP_JOB_CANCELED
} ipp_jstate_t;
#define IPP_JOB_CANCELLED IPP_JOB_CANCELED
typedef enum ipp_pstate_e /**** Printer states ****/
{
IPP_PRINTER_IDLE = 3, /* Printer is idle */
IPP_PRINTER_PROCESSING, /* Printer is working */
IPP_PRINTER_STOPPED /* Printer is stopped */
} ipp_pstate_t;
typedef enum ipp_state_e /**** IPP states ****/
{
IPP_ERROR = -1, /* An error occurred */
IPP_IDLE, /* Nothing is happening/request completed */
IPP_HEADER, /* The request header needs to be sent/received */
IPP_ATTRIBUTE, /* One or more attributes need to be sent/received */
IPP_DATA /* IPP request data needs to be sent/received */
} ipp_state_t;
typedef enum ipp_op_e /**** IPP operations ****/
{
IPP_OP_CUPS_INVALID = -1, /* Invalid operation name for @link ippOpValue@ */
IPP_PRINT_JOB = 0x0002, /* Print a single file */
IPP_PRINT_URI, /* Print a single URL @private@ */
IPP_VALIDATE_JOB, /* Validate job options */
@@ -158,10 +216,7 @@ typedef enum ipp_op_e /**** IPP operations ****/
IPP_CANCEL_SUBSCRIPTION, /* Cancel a subscription @since CUPS 1.2/Mac OS X 10.5@ */
IPP_GET_NOTIFICATIONS, /* Get notification events @since CUPS 1.2/Mac OS X 10.5@ */
IPP_SEND_NOTIFICATIONS, /* Send notification events @private@ */
IPP_GET_RESOURCE_ATTRIBUTES, /* Get resource attributes @private@ */
IPP_GET_RESOURCE_DATA, /* Get resource data @private@ */
IPP_GET_RESOURCES, /* Get list of resources @private@ */
IPP_GET_PRINT_SUPPORT_FILES, /* Get printer support files @private@ */
IPP_GET_PRINT_SUPPORT_FILES = 0x0021, /* Get printer support files @private@ */
IPP_ENABLE_PRINTER, /* Start a printer */
IPP_DISABLE_PRINTER, /* Stop a printer */
IPP_PAUSE_PRINTER_AFTER_CURRENT_JOB, /* Stop printer after the current job @private@ */
@@ -205,59 +260,21 @@ typedef enum ipp_op_e /**** IPP operations ****/
CUPS_AUTHENTICATE_JOB, /* Authenticate a job @since CUPS 1.2/Mac OS X 10.5@ */
CUPS_GET_PPD, /* Get a PPD file @since CUPS 1.3/Mac OS X 10.5@ */
CUPS_GET_DOCUMENT = 0x4027 /* Get a document file @since CUPS 1.4/Mac OS X 10.6@ */
/* Legacy names for the add operations */
#define CUPS_ADD_PRINTER CUPS_ADD_MODIFY_PRINTER
#define CUPS_ADD_CLASS CUPS_ADD_MODIFY_CLASS
} ipp_op_t;
typedef enum ipp_orient_e /**** Orientation values ****/
{
IPP_PORTRAIT = 3, /* No rotation */
IPP_LANDSCAPE, /* 90 degrees counter-clockwise */
IPP_REVERSE_LANDSCAPE, /* 90 degrees clockwise */
IPP_REVERSE_PORTRAIT /* 180 degrees */
} ipp_orient_t;
typedef enum ipp_pstate_e /**** Printer states ****/
{
IPP_PRINTER_IDLE = 3, /* Printer is idle */
IPP_PRINTER_PROCESSING, /* Printer is working */
IPP_PRINTER_STOPPED /* Printer is stopped */
} ipp_pstate_t;
typedef enum ipp_quality_e /**** Qualities ****/
{
IPP_QUALITY_DRAFT = 3, /* Draft quality */
IPP_QUALITY_NORMAL, /* Normal quality */
IPP_QUALITY_HIGH /* High quality */
} ipp_quality_t;
typedef enum ipp_res_e /**** Resolution units ****/
{
IPP_RES_PER_INCH = 3, /* Pixels per inch */
IPP_RES_PER_CM /* Pixels per centimeter */
} ipp_res_t;
typedef enum ipp_state_e /**** IPP states ****/
{
IPP_ERROR = -1, /* An error occurred */
IPP_IDLE, /* Nothing is happening/request completed */
IPP_HEADER, /* The request header needs to be sent/received */
IPP_ATTRIBUTE, /* One or more attributes need to be sent/received */
IPP_DATA /* IPP request data needs to be sent/received */
} ipp_state_t;
/* Old names for the operations */
#define CUPS_ADD_PRINTER CUPS_ADD_MODIFY_PRINTER
#define CUPS_ADD_CLASS CUPS_ADD_MODIFY_CLASS
typedef enum ipp_status_e /**** IPP status codes ****/
{
IPP_STATUS_CUPS_INVALID = -1, /* Invalid status name for @link ippErrorValue@ */
IPP_OK = 0x0000, /* successful-ok */
IPP_OK_SUBST, /* successful-ok-ignored-or-substituted-attributes */
IPP_OK_CONFLICT, /* successful-ok-conflicting-attributes */
IPP_OK_IGNORED_SUBSCRIPTIONS, /* successful-ok-ignored-subscriptions */
IPP_OK_IGNORED_NOTIFICATIONS, /* successful-ok-ignored-notifications @private@ */
IPP_OK_IGNORED_NOTIFICATIONS, /* successful-ok-ignored-notifications */
IPP_OK_TOO_MANY_EVENTS, /* successful-ok-too-many-events */
IPP_OK_BUT_CANCEL_SUBSCRIPTION, /* successful-ok-but-cancel-subscription @private@ */
IPP_OK_BUT_CANCEL_SUBSCRIPTION, /* successful-ok-but-cancel-subscription */
IPP_OK_EVENTS_COMPLETE, /* successful-ok-events-complete */
IPP_REDIRECTION_OTHER_SITE = 0x200, /* redirection-other-site @private@ */
CUPS_SEE_OTHER = 0x280, /* cups-see-other */
@@ -283,12 +300,8 @@ typedef enum ipp_status_e /**** IPP status codes ****/
IPP_ATTRIBUTES_NOT_SETTABLE, /* client-error-attributes-not-settable */
IPP_IGNORED_ALL_SUBSCRIPTIONS, /* client-error-ignored-all-subscriptions */
IPP_TOO_MANY_SUBSCRIPTIONS, /* client-error-too-many-subscriptions */
IPP_IGNORED_ALL_NOTIFICATIONS, /* client-error-ignored-all-notifications @private@ */
IPP_PRINT_SUPPORT_FILE_NOT_FOUND, /* client-error-print-support-file-not-found @private@ */
IPP_DOCUMENT_PASSWORD_ERROR, /* client-error-document-password-error */
IPP_DOCUMENT_PERMISSION_ERROR, /* client-error-document-permission-error */
IPP_DOCUMENT_SECURITY_ERROR, /* client-error-document-security-error */
IPP_DOCUMENT_UNPRINTABLE_ERROR, /* client-error-document-unprintable-error */
IPP_IGNORED_ALL_NOTIFICATIONS, /* client-error-ignored-all-notifications */
IPP_PRINT_SUPPORT_FILE_NOT_FOUND, /* client-error-print-support-file-not-found */
IPP_INTERNAL_ERROR = 0x0500, /* server-error-internal-error */
IPP_OPERATION_NOT_SUPPORTED, /* server-error-operation-not-supported */
@@ -307,70 +320,112 @@ typedef enum ipp_status_e /**** IPP status codes ****/
IPP_AUTHENTICATION_CANCELED = 0x1000, /* Authentication canceled by user @since CUPS 1.5/Mac OS X 10.7@ */
IPP_PKI_ERROR, /* Error negotiating a secure connection @since CUPS 1.5/Mac OS X 10.7@ */
IPP_UPGRADE_REQUIRED /* TLS upgrade required */
/* Legacy name for canceled status */
} ipp_status_t;
#define IPP_ERROR_JOB_CANCELLED IPP_ERROR_JOB_CANCELED
} ipp_status_t;
typedef enum ipp_tag_e /**** Format tags for attributes ****/
{
IPP_TAG_CUPS_INVALID = -1, /* Invalid tag name for @link ippTagValue@ */
IPP_TAG_ZERO = 0x00, /* Zero tag - used for separators */
IPP_TAG_OPERATION, /* Operation group */
IPP_TAG_JOB, /* Job group */
IPP_TAG_END, /* End-of-attributes */
IPP_TAG_PRINTER, /* Printer group */
IPP_TAG_UNSUPPORTED_GROUP, /* Unsupported attributes group */
IPP_TAG_SUBSCRIPTION, /* Subscription group */
IPP_TAG_EVENT_NOTIFICATION, /* Event group */
IPP_TAG_RESOURCE, /* Resource group @private@ */
IPP_TAG_DOCUMENT, /* Document group */
IPP_TAG_UNSUPPORTED_VALUE = 0x10, /* Unsupported value */
IPP_TAG_DEFAULT, /* Default value */
IPP_TAG_UNKNOWN, /* Unknown value */
IPP_TAG_NOVALUE, /* No-value value */
IPP_TAG_NOTSETTABLE = 0x15, /* Not-settable value */
IPP_TAG_DELETEATTR, /* Delete-attribute value */
IPP_TAG_ADMINDEFINE, /* Admin-defined value */
IPP_TAG_INTEGER = 0x21, /* Integer value */
IPP_TAG_BOOLEAN, /* Boolean value */
IPP_TAG_ENUM, /* Enumeration value */
IPP_TAG_STRING = 0x30, /* Octet string value */
IPP_TAG_DATE, /* Date/time value */
IPP_TAG_RESOLUTION, /* Resolution value */
IPP_TAG_RANGE, /* Range value */
IPP_TAG_BEGIN_COLLECTION, /* Beginning of collection value */
IPP_TAG_TEXTLANG, /* Text-with-language value */
IPP_TAG_NAMELANG, /* Name-with-language value */
IPP_TAG_END_COLLECTION, /* End of collection value */
IPP_TAG_TEXT = 0x41, /* Text value */
IPP_TAG_NAME, /* Name value */
IPP_TAG_RESERVED_STRING, /* Reserved for future string value @private@ */
IPP_TAG_KEYWORD, /* Keyword value */
IPP_TAG_URI, /* URI value */
IPP_TAG_URISCHEME, /* URI scheme value */
IPP_TAG_CHARSET, /* Character set value */
IPP_TAG_LANGUAGE, /* Language value */
IPP_TAG_MIMETYPE, /* MIME media type value */
IPP_TAG_MEMBERNAME, /* Collection member name value */
IPP_TAG_EXTENSION = 0x7f, /* Extension point for 32-bit tags */
IPP_TAG_MASK = 0x7fffffff, /* Mask for copied attribute values @private@ */
/* The following expression is used to avoid compiler warnings with +/-0x80000000 */
IPP_TAG_COPY = -0x7fffffff-1 /* Bitflag for copied attribute values @private@ */
} ipp_tag_t;
typedef unsigned char ipp_uchar_t; /**** Unsigned 8-bit integer/character ****/
typedef struct _ipp_s ipp_t; /**** IPP request/response data ****/
typedef struct _ipp_attribute_s ipp_attribute_t;
/**** IPP attribute ****/
/**** New in CUPS 1.2 ****/
typedef ssize_t (*ipp_iocb_t)(void *context, ipp_uchar_t *buffer, size_t bytes);
typedef ssize_t (*ipp_iocb_t)(void *, ipp_uchar_t *, size_t);
/**** IPP IO Callback Function @since CUPS 1.2/Mac OS X 10.5@ ****/
/**** New in CUPS 1.6 ****/
typedef int (*ipp_copycb_t)(void *context, ipp_t *dst, ipp_attribute_t *attr);
typedef union ipp_request_u /**** Request Header ****/
{
struct /* Any Header */
{
ipp_uchar_t version[2]; /* Protocol version number */
int op_status; /* Operation ID or status code*/
int request_id; /* Request ID */
} any;
struct /* Operation Header */
{
ipp_uchar_t version[2]; /* Protocol version number */
ipp_op_t operation_id; /* Operation ID */
int request_id; /* Request ID */
} op;
struct /* Status Header */
{
ipp_uchar_t version[2]; /* Protocol version number */
ipp_status_t status_code; /* Status code */
int request_id; /* Request ID */
} status;
/**** New in CUPS 1.1.19 ****/
struct /* Event Header @since CUPS 1.1.19/Mac OS X 10.3@ */
{
ipp_uchar_t version[2]; /* Protocol version number */
ipp_status_t status_code; /* Status code */
int request_id; /* Request ID */
} event;
} ipp_request_t;
/**** New in CUPS 1.1.19 ****/
typedef struct ipp_s ipp_t;
typedef union ipp_value_u /**** Attribute Value ****/
{
int integer; /* Integer/enumerated value */
char boolean; /* Boolean value */
ipp_uchar_t date[11]; /* Date/time value */
struct
{
int xres, /* Horizontal resolution */
yres; /* Vertical resolution */
ipp_res_t units; /* Resolution units */
} resolution; /* Resolution value */
struct
{
int lower, /* Lower value */
upper; /* Upper value */
} range; /* Range of integers value */
struct
{
char *charset; /* Character set */
char *text; /* String */
} string; /* String with language value */
struct
{
int length; /* Length of attribute */
void *data; /* Data in attribute */
} unknown; /* Unknown attribute type */
/**** New in CUPS 1.1.19 ****/
ipp_t *collection; /* Collection value @since CUPS 1.1.19/Mac OS X 10.3@ */
} ipp_value_t;
typedef struct ipp_attribute_s /**** Attribute ****/
{
struct ipp_attribute_s *next; /* Next attribute in list */
ipp_tag_t group_tag, /* Job/Printer/Operation group tag */
value_tag; /* What type of value is it? */
char *name; /* Name of attribute */
int num_values; /* Number of values */
ipp_value_t values[1]; /* Values */
} ipp_attribute_t;
struct ipp_s /**** IPP Request/Response/Notification ****/
{
ipp_state_t state; /* State of request */
ipp_request_t request; /* Request header */
ipp_attribute_t *attrs; /* Attributes */
ipp_attribute_t *last; /* Last attribute in list */
ipp_attribute_t *current; /* Current attribute (for read/write) */
ipp_tag_t curtag; /* Current attribute group tag */
/**** New in CUPS 1.2 ****/
ipp_attribute_t *prev; /* Previous attribute (for read) @since CUPS 1.2/Mac OS X 10.5@ */
/**** New in CUPS 1.4.4 ****/
int use; /* Use count @since CUPS 1.4.4/Mac OS X 10.6.?@ */
};
/*
@@ -385,10 +440,10 @@ extern ipp_attribute_t *ippAddBooleans(ipp_t *ipp, ipp_tag_t group,
extern ipp_attribute_t *ippAddDate(ipp_t *ipp, ipp_tag_t group,
const char *name, const ipp_uchar_t *value);
extern ipp_attribute_t *ippAddInteger(ipp_t *ipp, ipp_tag_t group,
ipp_tag_t value_tag, const char *name,
ipp_tag_t type, const char *name,
int value);
extern ipp_attribute_t *ippAddIntegers(ipp_t *ipp, ipp_tag_t group,
ipp_tag_t value_tag, const char *name,
ipp_tag_t type, const char *name,
int num_values, const int *values);
extern ipp_attribute_t *ippAddRange(ipp_t *ipp, ipp_tag_t group,
const char *name, int lower, int upper);
@@ -404,19 +459,19 @@ extern ipp_attribute_t *ippAddResolutions(ipp_t *ipp, ipp_tag_t group,
const int *yres);
extern ipp_attribute_t *ippAddSeparator(ipp_t *ipp);
extern ipp_attribute_t *ippAddString(ipp_t *ipp, ipp_tag_t group,
ipp_tag_t value_tag, const char *name,
const char *language, const char *value);
ipp_tag_t type, const char *name,
const char *charset, const char *value);
extern ipp_attribute_t *ippAddStrings(ipp_t *ipp, ipp_tag_t group,
ipp_tag_t value_tag, const char *name,
int num_values, const char *language,
ipp_tag_t type, const char *name,
int num_values, const char *charset,
const char * const *values);
extern time_t ippDateToTime(const ipp_uchar_t *date);
extern void ippDelete(ipp_t *ipp);
extern const char *ippErrorString(ipp_status_t error);
extern ipp_attribute_t *ippFindAttribute(ipp_t *ipp, const char *name,
ipp_tag_t value_tag);
ipp_tag_t type);
extern ipp_attribute_t *ippFindNextAttribute(ipp_t *ipp, const char *name,
ipp_tag_t value_tag);
ipp_tag_t type);
extern size_t ippLength(ipp_t *ipp);
extern ipp_t *ippNew(void);
extern ipp_state_t ippRead(http_t *http, ipp_t *ipp);
@@ -435,7 +490,7 @@ extern void ippDeleteAttribute(ipp_t *ipp, ipp_attribute_t *attr) _CUPS_API_1_1
extern ipp_state_t ippReadFile(int fd, ipp_t *ipp) _CUPS_API_1_1_19;
extern ipp_state_t ippWriteFile(int fd, ipp_t *ipp) _CUPS_API_1_1_19;
/**** New in CUPS 1.2/Mac OS X 10.5 ****/
/**** New in CUPS 1.2 ****/
extern ipp_attribute_t *ippAddOctetString(ipp_t *ipp, ipp_tag_t group,
const char *name,
const void *data, int datalen) _CUPS_API_1_2;
@@ -448,89 +503,10 @@ extern ipp_state_t ippReadIO(void *src, ipp_iocb_t cb, int blocking,
extern ipp_state_t ippWriteIO(void *dst, ipp_iocb_t cb, int blocking,
ipp_t *parent, ipp_t *ipp) _CUPS_API_1_2;
/**** New in CUPS 1.4/Mac OS X 10.6 ****/
/**** New in CUPS 1.4 ****/
extern const char *ippTagString(ipp_tag_t tag) _CUPS_API_1_4;
extern ipp_tag_t ippTagValue(const char *name) _CUPS_API_1_4;
/**** New in CUPS 1.6 ****/
extern ipp_attribute_t *ippAddOutOfBand(ipp_t *ipp, ipp_tag_t group,
ipp_tag_t value_tag, const char *name)
_CUPS_API_1_6;
extern size_t ippAttributeString(ipp_attribute_t *attr, char *buffer,
size_t bufsize) _CUPS_API_1_6;
extern ipp_attribute_t *ippCopyAttribute(ipp_t *dst, ipp_attribute_t *attr,
int quickcopy) _CUPS_API_1_6;
extern int ippCopyAttributes(ipp_t *dst, ipp_t *src,
int quickcopy, ipp_copycb_t cb,
void *context) _CUPS_API_1_6;
extern int ippDeleteValues(ipp_t *ipp, ipp_attribute_t **attr,
int element, int count) _CUPS_API_1_6;
extern const char *ippEnumString(const char *attrname, int enumvalue)
_CUPS_API_1_6;
extern int ippEnumValue(const char *attrname,
const char *enumstring) _CUPS_API_1_6;
extern ipp_attribute_t *ippFirstAttribute(ipp_t *ipp) _CUPS_API_1_6;
extern int ippGetBoolean(ipp_attribute_t *attr, int element)
_CUPS_API_1_6;
extern ipp_t *ippGetCollection(ipp_attribute_t *attr,
int element) _CUPS_API_1_6;
extern int ippGetCount(ipp_attribute_t *attr) _CUPS_API_1_6;
extern const ipp_uchar_t *ippGetDate(ipp_attribute_t *attr, int element)
_CUPS_API_1_6;
extern ipp_tag_t ippGetGroupTag(ipp_attribute_t *attr) _CUPS_API_1_6;
extern int ippGetInteger(ipp_attribute_t *attr, int element)
_CUPS_API_1_6;
extern const char *ippGetName(ipp_attribute_t *attr) _CUPS_API_1_6;
extern ipp_op_t ippGetOperation(ipp_t *ipp) _CUPS_API_1_6;
extern int ippGetRange(ipp_attribute_t *attr, int element,
int *upper) _CUPS_API_1_6;
extern int ippGetRequestId(ipp_t *ipp) _CUPS_API_1_6;
extern int ippGetResolution(ipp_attribute_t *attr, int element,
int *yres, ipp_res_t *units)
_CUPS_API_1_6;
extern ipp_state_t ippGetState(ipp_t *ipp) _CUPS_API_1_6;
extern ipp_status_t ippGetStatusCode(ipp_t *ipp) _CUPS_API_1_6;
extern const char *ippGetString(ipp_attribute_t *attr, int element,
const char **language) _CUPS_API_1_6;
extern ipp_tag_t ippGetValueTag(ipp_attribute_t *attr) _CUPS_API_1_6;
extern int ippGetVersion(ipp_t *ipp, int *minor) _CUPS_API_1_6;
extern ipp_attribute_t *ippNextAttribute(ipp_t *ipp) _CUPS_API_1_6;
extern int ippSetBoolean(ipp_t *ipp, ipp_attribute_t **attr,
int element, int boolvalue) _CUPS_API_1_6;
extern int ippSetCollection(ipp_t *ipp, ipp_attribute_t **attr,
int element, ipp_t *colvalue)
_CUPS_API_1_6;
extern int ippSetDate(ipp_t *ipp, ipp_attribute_t **attr,
int element, const ipp_uchar_t *datevalue)
_CUPS_API_1_6;
extern int ippSetGroupTag(ipp_t *ipp, ipp_attribute_t **attr,
ipp_tag_t group_tag) _CUPS_API_1_6;
extern int ippSetInteger(ipp_t *ipp, ipp_attribute_t **attr,
int element, int intvalue) _CUPS_API_1_6;
extern int ippSetName(ipp_t *ipp, ipp_attribute_t **attr,
const char *name) _CUPS_API_1_6;
extern int ippSetOperation(ipp_t *ipp, ipp_op_t op) _CUPS_API_1_6;
extern int ippSetRange(ipp_t *ipp, ipp_attribute_t **attr,
int element, int lowervalue, int uppervalue)
_CUPS_API_1_6;
extern int ippSetRequestId(ipp_t *ipp, int request_id)
_CUPS_API_1_6;
extern int ippSetResolution(ipp_t *ipp, ipp_attribute_t **attr,
int element, ipp_res_t unitsvalue,
int xresvalue, int yresvalue)
_CUPS_API_1_6;
extern int ippSetState(ipp_t *ipp, ipp_state_t state)
_CUPS_API_1_6;
extern int ippSetStatusCode(ipp_t *ipp, ipp_status_t status)
_CUPS_API_1_6;
extern int ippSetString(ipp_t *ipp, ipp_attribute_t **attr,
int element, const char *strvalue)
_CUPS_API_1_6;
extern int ippSetValueTag(ipp_t *ipp, ipp_attribute_t **attr,
ipp_tag_t value_tag) _CUPS_API_1_6;
extern int ippSetVersion(ipp_t *ipp, int major, int minor)
_CUPS_API_1_6;
/*
* C++ magic...
+8 -2
Ver Arquivo
@@ -62,9 +62,15 @@ extern void _cupsLangPrintError(const char *prefix,
const char *message);
extern int _cupsLangPrintFilter(FILE *fp, const char *prefix,
const char *message, ...)
__attribute__ ((__format__ (__printf__, 3, 4)));
# ifdef __GNUC__
__attribute__ ((__format__ (__printf__, 3, 4)))
# endif /* __GNUC__ */
;
extern int _cupsLangPrintf(FILE *fp, const char *message, ...)
__attribute__ ((__format__ (__printf__, 2, 3)));
# ifdef __GNUC__
__attribute__ ((__format__ (__printf__, 2, 3)))
# endif /* __GNUC__ */
;
extern int _cupsLangPuts(FILE *fp, const char *message);
extern const char *_cupsLangString(cups_lang_t *lang,
const char *message);
+51 -60
Ver Arquivo
@@ -35,7 +35,6 @@
* cups_cache_lookup() - Lookup a language in the cache...
* cups_message_compare() - Compare two messages.
* cups_message_free() - Free a message.
* cups_message_load() - Load the message catalog for a language.
* cups_unquote() - Unquote characters in strings...
*/
@@ -177,7 +176,6 @@ static cups_lang_t *cups_cache_lookup(const char *name,
static int cups_message_compare(_cups_message_t *m1,
_cups_message_t *m2);
static void cups_message_free(_cups_message_t *m);
static void cups_message_load(cups_lang_t *lang);
static void cups_unquote(char *d, const char *s);
@@ -395,6 +393,11 @@ cupsLangGet(const char *language) /* I - Language or locale */
real[48]; /* Real language name */
cups_encoding_t encoding; /* Encoding to use */
cups_lang_t *lang; /* Current language... */
#if !defined(__APPLE__) || !defined(CUPS_BUNDLEDIR)
char filename[1024]; /* Filename for language locale file */
_cups_globals_t *cg = _cupsGlobals();
/* Pointer to library globals */
#endif /* !__APPLE__ || !CUPS_BUNDLEDIR */
static const char * const locale_encodings[] =
{ /* Locale charset names */
"ASCII", "ISO88591", "ISO88592", "ISO88593",
@@ -698,9 +701,21 @@ cupsLangGet(const char *language) /* I - Language or locale */
*/
if (country[0])
{
snprintf(real, sizeof(real), "%s_%s", langname, country);
#if !defined(__APPLE__) || !defined(CUPS_BUNDLEDIR)
snprintf(filename, sizeof(filename), "%s/%s/cups_%s.po", cg->localedir,
real, real);
#endif /* !__APPLE__ || !CUPS_BUNDLEDIR */
}
else
{
strcpy(real, langname);
#if !defined(__APPLE__) || !defined(CUPS_BUNDLEDIR)
filename[0] = '\0'; /* anti-compiler-warning-code */
#endif /* !__APPLE__ || !CUPS_BUNDLEDIR */
}
_cupsMutexLock(&lang_mutex);
@@ -713,6 +728,30 @@ cupsLangGet(const char *language) /* I - Language or locale */
return (lang);
}
#if !defined(__APPLE__) || !defined(CUPS_BUNDLEDIR)
if (!country[0] || access(filename, 0))
{
/*
* Country localization not available, look for generic localization...
*/
snprintf(filename, sizeof(filename), "%s/%s/cups_%s.po", cg->localedir,
langname, langname);
if (access(filename, 0))
{
/*
* No generic localization, so use POSIX...
*/
DEBUG_printf(("4cupsLangGet: access(\"%s\", 0): %s", filename,
strerror(errno)));
snprintf(filename, sizeof(filename), "%s/C/cups_C.po", cg->localedir);
}
}
#endif /* !__APPLE__ || !CUPS_BUNDLEDIR */
/*
* See if there is a free language available; if so, use that
* record...
@@ -745,7 +784,6 @@ cupsLangGet(const char *language) /* I - Language or locale */
*/
_cupsMessageFree(lang->strings);
lang->strings = NULL;
}
/*
@@ -760,6 +798,16 @@ cupsLangGet(const char *language) /* I - Language or locale */
else
lang->encoding = CUPS_UTF8;
/*
* Read the strings from the file...
*/
#if defined(__APPLE__) && defined(CUPS_BUNDLEDIR)
lang->strings = appleMessageLoad(lang->language);
#else
lang->strings = _cupsMessageLoad(filename, 1);
#endif /* __APPLE__ && CUPS_BUNDLEDIR */
/*
* Return...
*/
@@ -792,13 +840,6 @@ _cupsLangString(cups_lang_t *lang, /* I - Language */
_cupsMutexLock(&lang_mutex);
/*
* Load the message catalog if needed...
*/
if (!lang->strings)
cups_message_load(lang);
s = _cupsMessageLookup(lang->strings, message);
_cupsMutexUnlock(&lang_mutex);
@@ -1416,56 +1457,6 @@ cups_message_free(_cups_message_t *m) /* I - Message */
}
/*
* 'cups_message_load()' - Load the message catalog for a language.
*/
static void
cups_message_load(cups_lang_t *lang) /* I - Language */
{
#if defined(__APPLE__) && defined(CUPS_BUNDLEDIR)
lang->strings = appleMessageLoad(lang->language);
#else
char filename[1024]; /* Filename for language locale file */
_cups_globals_t *cg = _cupsGlobals();
/* Pointer to library globals */
snprintf(filename, sizeof(filename), "%s/%s/cups_%s.po", cg->localedir,
lang->language, lang->language);
if (strchr(lang->language, '_') && access(filename, 0))
{
/*
* Country localization not available, look for generic localization...
*/
snprintf(filename, sizeof(filename), "%s/%.2s/cups_%.2s.po", cg->localedir,
lang->language, lang->language);
if (access(filename, 0))
{
/*
* No generic localization, so use POSIX...
*/
DEBUG_printf(("4cups_message_load: access(\"%s\", 0): %s", filename,
strerror(errno)));
snprintf(filename, sizeof(filename), "%s/C/cups_C.po", cg->localedir);
}
}
/*
* Read the strings from the file...
*/
lang->strings = _cupsMessageLoad(filename, 1);
#endif /* __APPLE__ && CUPS_BUNDLEDIR */
}
/*
* 'cups_unquote()' - Unquote characters in strings...
*/
+3 -46
Ver Arquivo
@@ -1,8 +1,6 @@
LIBRARY libcups2
VERSION 2.9
EXPORTS
_cupsBufferGet
_cupsBufferRelease
_cupsGet1284Values
_cupsGetDests
_cupsGetPassword
@@ -17,8 +15,6 @@ _cupsMD5Init
_cupsMessageFree
_cupsMessageLoad
_cupsMessageLookup
_cupsMutexLock
_cupsMutexUnlock
_cupsNextDelay
_cupsSetError
_cupsSetLocale
@@ -42,7 +38,10 @@ _httpEncodeURI
_httpPeek
_httpResolveURI
_httpWait
_ippAddAttr
_ippAttrString
_ippFindOption
_ippFreeAttr
_ppdCacheCreateWithFile
_ppdCacheCreateWithPPD
_ppdCacheDestroy
@@ -61,8 +60,6 @@ _ppdGetLanguages
_ppdHashName
_ppdLocalizedAttr
_ppdNormalizeMakeAndModel
_ppdOpen
_ppdOpenFile
_ppdParseOptions
_pwgGenerateSize
_pwgInitSize
@@ -275,7 +272,6 @@ ippAddDate
ippAddInteger
ippAddIntegers
ippAddOctetString
ippAddOutOfBand
ippAddRange
ippAddRanges
ippAddResolution
@@ -283,40 +279,16 @@ ippAddResolutions
ippAddSeparator
ippAddString
ippAddStrings
ippAttributeString
ippCopyAttribute
ippCopyAttributes
ippDateToTime
ippDelete
ippDeleteAttribute
ippDeleteValues
ippEnumString
ippEnumValue
ippErrorString
ippErrorValue
ippFindAttribute
ippFindNextAttribute
ippFirstAttribute
ippGetBoolean
ippGetCollection
ippGetCount
ippGetDate
ippGetGroupTag
ippGetInteger
ippGetName
ippGetOperation
ippGetRange
ippGetRequestId
ippGetResolution
ippGetState
ippGetStatusCode
ippGetString
ippGetValueTag
ippGetVersion
ippLength
ippNew
ippNewRequest
ippNextAttribute
ippOpString
ippOpValue
ippPort
@@ -324,21 +296,6 @@ ippRead
ippReadFile
ippReadIO
ippSetPort
ippSetBoolean
ippSetCollection
ippSetDate
ippSetGroupTag
ippSetInteger
ippSetName
ippSetOperation
ippSetRange
ippSetRequestId
ippSetResolution
ippSetState
ippSetStatusCode
ippSetString
ippSetValueTag
ippSetVersion
ippTagString
ippTagValue
ippTimeToDate
+2 -4
Ver Arquivo
@@ -1,6 +1,4 @@
_cups_debug_fd
_cupsBufferGet
_cupsBufferRelease
_cupsGet1284Values
_cupsGetDests
_cupsGetPassword
@@ -52,15 +50,15 @@ _httpPeek
_httpResolveURI
_httpSetTimeout
_httpWait
_ippAddAttr
_ippFindOption
_ippFreeAttr
_ppdFreeLanguages
_ppdGetEncoding
_ppdGetLanguages
_ppdHashName
_ppdLocalizedAttr
_ppdNormalizeMakeAndModel
_ppdOpen
_ppdOpenFile
_ppdParseOptions
_pwgCreateWithFile
_pwgDestroy
+2 -2
Ver Arquivo
@@ -332,9 +332,9 @@ ppdLocalizeIPPReason(
else if (!strncmp(reason, "output-area-full", 16))
message = _("The output bin is full.");
else if (!strncmp(reason, "marker-supply-low", 17))
message = _("The printer is low on ink.");
message = _("The printer is almost out of ink.");
else if (!strncmp(reason, "marker-supply-empty", 19))
message = _("The printer may be out of ink.");
message = _("The printer is out of ink.");
else if (!strncmp(reason, "marker-waste-almost-full", 24))
message = _("The printer's waste bin is almost full.");
else if (!strncmp(reason, "marker-waste-full", 17))
+14 -245
Ver Arquivo
@@ -65,9 +65,6 @@
* Local functions...
*/
static int pwg_compare_finishings(_pwg_finishings_t *a,
_pwg_finishings_t *b);
static void pwg_free_finishings(_pwg_finishings_t *f);
static void pwg_ppdize_name(const char *ipp, char *name, size_t namesize);
static void pwg_unppdize_name(const char *ppd, char *name, size_t namesize);
@@ -89,7 +86,6 @@ _ppdCacheCreateWithFile(
_ppd_cache_t *pc; /* PWG mapping data */
_pwg_size_t *size; /* Current size */
_pwg_map_t *map; /* Current map */
_pwg_finishings_t *finishings; /* Current finishings option */
int linenum, /* Current line number */
num_bins, /* Number of bins in file */
num_sizes, /* Number of sizes in file */
@@ -536,23 +532,6 @@ _ppdCacheCreateWithFile(
pc->sides_2sided_long = _cupsStrAlloc(value);
else if (!_cups_strcasecmp(line, "Sides2SidedShort"))
pc->sides_2sided_short = _cupsStrAlloc(value);
else if (!_cups_strcasecmp(line, "Finishings"))
{
if (!pc->finishings)
pc->finishings =
cupsArrayNew3((cups_array_func_t)pwg_compare_finishings,
NULL, NULL, 0, NULL,
(cups_afree_func_t)pwg_free_finishings);
if ((finishings = calloc(1, sizeof(_pwg_finishings_t))) == NULL)
goto create_error;
finishings->value = strtol(value, &valueptr, 10);
finishings->num_options = cupsParseOptions(valueptr, 0,
&(finishings->options));
cupsArrayAdd(pc->finishings, finishings);
}
else
{
DEBUG_printf(("_ppdCacheCreateWithFile: Unknown %s on line %d.", line,
@@ -654,7 +633,6 @@ _ppdCacheCreateWithPPD(ppd_file_t *ppd) /* I - PPD file */
new_known_pwg; /* New PWG name is well-known */
_pwg_size_t *new_size; /* New size to add, if any */
const char *filter; /* Current filter */
_pwg_finishings_t *finishings; /* Current finishings value */
DEBUG_printf(("_ppdCacheCreateWithPPD(ppd=%p)", ppd));
@@ -753,10 +731,8 @@ _ppdCacheCreateWithPPD(ppd_file_t *ppd) /* I - PPD file */
* want to keep it if it has a larger imageable area length.
*/
pwg_media = _pwgMediaForSize(_PWG_FROMPTS(ppd_size->width),
_PWG_FROMPTS(ppd_size->length));
new_width = pwg_media->width;
new_length = pwg_media->length;
new_width = _PWG_FROMPTS(ppd_size->width);
new_length = _PWG_FROMPTS(ppd_size->length);
new_left = _PWG_FROMPTS(ppd_size->left);
new_bottom = _PWG_FROMPTS(ppd_size->bottom);
new_right = _PWG_FROMPTS(ppd_size->width - ppd_size->right);
@@ -886,7 +862,7 @@ _ppdCacheCreateWithPPD(ppd_file_t *ppd) /* I - PPD file */
else if (!_cups_strncasecmp(choice->choice, "Multipurpose", 12) ||
!_cups_strcasecmp(choice->choice, "MP") ||
!_cups_strcasecmp(choice->choice, "MPTray"))
pwg_name = "by-pass-tray";
pwg_name = "alternate";
else if (!_cups_strcasecmp(choice->choice, "LargeCapacity"))
pwg_name = "large-capacity";
else if (!_cups_strncasecmp(choice->choice, "Lower", 5))
@@ -1322,32 +1298,6 @@ _ppdCacheCreateWithPPD(ppd_file_t *ppd) /* I - PPD file */
if (ppd->product)
pc->product = _cupsStrAlloc(ppd->product);
/*
* Copy finishings mapping data...
*/
if ((ppd_attr = ppdFindAttr(ppd, "cupsIPPFinishings", NULL)) != NULL)
{
pc->finishings = cupsArrayNew3((cups_array_func_t)pwg_compare_finishings,
NULL, NULL, 0, NULL,
(cups_afree_func_t)pwg_free_finishings);
do
{
if ((finishings = calloc(1, sizeof(_pwg_finishings_t))) == NULL)
goto create_error;
finishings->value = atoi(ppd_attr->spec);
finishings->num_options = _ppdParseOptions(ppd_attr->value, 0,
&(finishings->options),
_PPD_PARSE_OPTIONS);
cupsArrayAdd(pc->finishings, finishings);
}
while ((ppd_attr = ppdFindNextAttr(ppd, "cupsIPPFinishings",
NULL)) != NULL);
}
/*
* Return the cache data...
*/
@@ -1446,7 +1396,6 @@ _ppdCacheDestroy(_ppd_cache_t *pc) /* I - PPD cache and mapping data */
_cupsStrFree(pc->product);
cupsArrayDelete(pc->filters);
cupsArrayDelete(pc->prefilters);
cupsArrayDelete(pc->finishings);
free(pc);
}
@@ -1485,127 +1434,6 @@ _ppdCacheGetBin(
}
/*
* '_ppdCacheGetFinishingOptions()' - Get PPD finishing options for the given
* IPP finishings value(s).
*/
int /* O - New number of options */
_ppdCacheGetFinishingOptions(
_ppd_cache_t *pc, /* I - PPD cache and mapping data */
ipp_t *job, /* I - Job attributes or NULL */
ipp_finish_t value, /* I - IPP finishings value of IPP_FINISHINGS_NONE */
int num_options, /* I - Number of options */
cups_option_t **options) /* IO - Options */
{
int i; /* Looping var */
_pwg_finishings_t *f, /* PWG finishings options */
key; /* Search key */
ipp_attribute_t *attr; /* Finishings attribute */
cups_option_t *option; /* Current finishings option */
/*
* Range check input...
*/
if (!pc || cupsArrayCount(pc->finishings) == 0 || !options ||
(!job && value == IPP_FINISHINGS_NONE))
return (num_options);
/*
* Apply finishing options...
*/
if (job && (attr = ippFindAttribute(job, "finishings", IPP_TAG_ENUM)) != NULL)
{
int num_values = ippGetCount(attr); /* Number of values */
for (i = 0; i < num_values; i ++)
{
key.value = ippGetInteger(attr, i);
if ((f = cupsArrayFind(pc->finishings, &key)) != NULL)
{
int j; /* Another looping var */
for (j = f->num_options, option = f->options; j > 0; j --, option ++)
num_options = cupsAddOption(option->name, option->value,
num_options, options);
}
}
}
else if (value != IPP_FINISHINGS_NONE)
{
key.value = value;
if ((f = cupsArrayFind(pc->finishings, &key)) != NULL)
{
int j; /* Another looping var */
for (j = f->num_options, option = f->options; j > 0; j --, option ++)
num_options = cupsAddOption(option->name, option->value,
num_options, options);
}
}
return (num_options);
}
/*
* '_ppdCacheGetFinishingValues()' - Get IPP finishings value(s) from the given
* PPD options.
*/
int /* O - Number of finishings values */
_ppdCacheGetFinishingValues(
_ppd_cache_t *pc, /* I - PPD cache and mapping data */
int num_options, /* I - Number of options */
cups_option_t *options, /* I - Options */
int max_values, /* I - Maximum number of finishings values */
int *values) /* O - Finishings values */
{
int i, /* Looping var */
num_values = 0; /* Number of values */
_pwg_finishings_t *f; /* Current finishings option */
cups_option_t *option; /* Current option */
const char *val; /* Value for option */
/*
* Range check input...
*/
if (!pc || !pc->finishings || num_options < 1 || max_values < 1 || !values)
return (0);
/*
* Go through the finishings options and see what is set...
*/
for (f = (_pwg_finishings_t *)cupsArrayFirst(pc->finishings);
f;
f = (_pwg_finishings_t *)cupsArrayNext(pc->finishings))
{
for (i = f->num_options, option = f->options; i > 0; i --, option ++)
if ((val = cupsGetOption(option->name, num_options, options)) == NULL ||
_cups_strcasecmp(option->value, val))
break;
if (i == 0)
{
values[num_values ++] = f->value;
if (num_values >= max_values)
break;
}
}
return (num_values);
}
/*
* '_ppdCacheGetInputSlot()' - Get the PPD InputSlot associated with the job
* attributes or a keyword string.
@@ -1637,7 +1465,7 @@ _ppdCacheGetInputSlot(
media_col = ippFindAttribute(job, "media-col", IPP_TAG_BEGIN_COLLECTION);
if (media_col &&
(media_source = ippFindAttribute(ippGetCollection(media_col, 0),
(media_source = ippFindAttribute(media_col->values[0].collection,
"media-source",
IPP_TAG_KEYWORD)) != NULL)
{
@@ -1645,7 +1473,7 @@ _ppdCacheGetInputSlot(
* Use the media-source value from media-col...
*/
keyword = ippGetString(media_source, 0, NULL);
keyword = media_source->values[0].string.text;
}
else if (_pwgInitSize(&size, job, &margins_set))
{
@@ -2007,8 +1835,7 @@ _ppdCacheGetSize(
_ppd_cache_t *pc, /* I - PPD cache and mapping data */
const char *page_size) /* I - PPD PageSize */
{
int i; /* Looping var */
_pwg_media_t *media; /* Media */
int i;
_pwg_size_t *size; /* Current size */
@@ -2087,26 +1914,9 @@ _ppdCacheGetSize(
*/
for (i = pc->num_sizes, size = pc->sizes; i > 0; i --, size ++)
if (!_cups_strcasecmp(page_size, size->map.ppd) ||
!_cups_strcasecmp(page_size, size->map.pwg))
if (!_cups_strcasecmp(page_size, size->map.ppd))
return (size);
/*
* Look up standard sizes...
*/
if ((media = _pwgMediaForPPD(page_size)) == NULL)
if ((media = _pwgMediaForLegacy(page_size)) == NULL)
media = _pwgMediaForPWG(page_size);
if (media)
{
pc->custom_size.width = media->width;
pc->custom_size.length = media->length;
return (&(pc->custom_size));
}
return (NULL);
}
@@ -2179,14 +1989,13 @@ _ppdCacheWriteFile(
const char *filename, /* I - File to write */
ipp_t *attrs) /* I - Attributes to write, if any */
{
int i, j, k; /* Looping vars */
cups_file_t *fp; /* Output file */
_pwg_size_t *size; /* Current size */
_pwg_map_t *map; /* Current map */
_pwg_finishings_t *f; /* Current finishing option */
cups_option_t *option; /* Current option */
const char *value; /* Filter/pre-filter value */
char newfile[1024]; /* New filename */
int i, j, k; /* Looping vars */
cups_file_t *fp; /* Output file */
_pwg_size_t *size; /* Current size */
_pwg_map_t *map; /* Current map */
cups_option_t *option; /* Current option */
const char *value; /* Filter/pre-filter value */
char newfile[1024]; /* New filename */
/*
@@ -2319,20 +2128,6 @@ _ppdCacheWriteFile(
cupsFilePrintf(fp, "SingleFile %s\n", pc->single_file ? "true" : "false");
/*
* Finishing options...
*/
for (f = (_pwg_finishings_t *)cupsArrayFirst(pc->finishings);
f;
f = (_pwg_finishings_t *)cupsArrayNext(pc->finishings))
{
cupsFilePrintf(fp, "Finishings %d", f->value);
for (i = f->num_options, option = f->options; i > 0; i --, option ++)
cupsFilePrintf(fp, " %s=%s", option->name, option->value);
cupsFilePutChar(fp, '\n');
}
/*
* IPP attributes, if any...
*/
@@ -2515,32 +2310,6 @@ _pwgPageSizeForMedia(
}
/*
* 'pwg_compare_finishings()' - Compare two finishings values.
*/
static int /* O- Result of comparison */
pwg_compare_finishings(
_pwg_finishings_t *a, /* I - First finishings value */
_pwg_finishings_t *b) /* I - Second finishings value */
{
return (b->value - a->value);
}
/*
* 'pwg_free_finishings()' - Free a finishings value.
*/
static void
pwg_free_finishings(
_pwg_finishings_t *f) /* I - Finishings value */
{
cupsFreeOptions(f->num_options, f->options);
free(f);
}
/*
* 'pwg_ppdize_name()' - Convert an IPP keyword to a PPD keyword.
*/
+2 -28
Ver Arquivo
@@ -49,21 +49,13 @@ extern "C" {
* Constants...
*/
# define _PPD_CACHE_VERSION 2 /* Version number in cache file */
# define _PPD_CACHE_VERSION 1 /* Version number in cache file */
/*
* Types and structures...
*/
typedef enum _ppd_localization_e /**** Selector for _ppdOpen ****/
{
_PPD_LOCALIZATION_DEFAULT, /* Load only the default localization */
_PPD_LOCALIZATION_ICC_PROFILES, /* Load only the color profile localization */
_PPD_LOCALIZATION_NONE, /* Load no localizations */
_PPD_LOCALIZATION_ALL /* Load all localizations */
} _ppd_localization_t;
typedef enum _ppd_parse_e /**** Selector for _ppdParseOptions ****/
{
_PPD_PARSE_OPTIONS, /* Parse only the options */
@@ -94,7 +86,7 @@ typedef enum _pwg_print_color_mode_e /**** PWG print-color-mode indices ****/
_PWG_PRINT_COLOR_MODE_MAX
} _pwg_print_color_mode_t;
typedef enum _pwg_print_quality_e /**** PWG print-quality values ****/
typedef enum _pwg_print_quality_e /**** PWG print-quality indices ****/
{
_PWG_PRINT_QUALITY_DRAFT = 0, /* print-quality=3 */
_PWG_PRINT_QUALITY_NORMAL, /* print-quality=4 */
@@ -102,13 +94,6 @@ typedef enum _pwg_print_quality_e /**** PWG print-quality values ****/
_PWG_PRINT_QUALITY_MAX
} _pwg_print_quality_t;
typedef struct _pwg_finishings_s /**** PWG finishings mapping data ****/
{
ipp_finish_t value; /* finishings value */
int num_options; /* Number of options to apply */
cups_option_t *options; /* Options to apply */
} _pwg_finishings_t;
struct _ppd_cache_s /**** PPD cache and PWG conversion data ****/
{
int num_bins; /* Number of output bins */
@@ -140,7 +125,6 @@ struct _ppd_cache_s /**** PPD cache and PWG conversion data ****/
cups_array_t *filters, /* cupsFilter/cupsFilter2 values */
*prefilters; /* cupsPreFilter values */
int single_file; /* cupsSingleFile value */
cups_array_t *finishings; /* cupsIPPFinishings values */
};
@@ -154,12 +138,6 @@ extern _ppd_cache_t *_ppdCacheCreateWithPPD(ppd_file_t *ppd);
extern void _ppdCacheDestroy(_ppd_cache_t *pc);
extern const char *_ppdCacheGetBin(_ppd_cache_t *pc,
const char *output_bin);
extern int _ppdCacheGetFinishingOptions(_ppd_cache_t *pc, ipp_t *job,
ipp_finish_t value, int num_options,
cups_option_t **options);
extern int _ppdCacheGetFinishingValues(_ppd_cache_t *pc, int num_options,
cups_option_t *options,
int max_values, int *values);
extern const char *_ppdCacheGetInputSlot(_ppd_cache_t *pc, ipp_t *job,
const char *keyword);
extern const char *_ppdCacheGetMediaType(_ppd_cache_t *pc, ipp_t *job,
@@ -185,10 +163,6 @@ extern ppd_attr_t *_ppdLocalizedAttr(ppd_file_t *ppd, const char *keyword,
extern char *_ppdNormalizeMakeAndModel(const char *make_and_model,
char *buffer,
size_t bufsize);
extern ppd_file_t *_ppdOpen(cups_file_t *fp,
_ppd_localization_t localization);
extern ppd_file_t *_ppdOpenFile(const char *filename,
_ppd_localization_t localization);
extern int _ppdParseOptions(const char *s, int num_options,
cups_option_t **options,
_ppd_parse_t which);
+61 -163
Ver Arquivo
@@ -31,10 +31,8 @@
* LanguageEncoding.
* ppdLastError() - Return the status from the last ppdOpen*().
* ppdOpen() - Read a PPD file into memory.
* _ppdOpen() - Read a PPD file into memory.
* ppdOpen2() - Read a PPD file into memory.
* ppdOpenFd() - Read a PPD file into memory.
* _ppdOpenFile() - Read a PPD file into memory.
* ppdOpenFile() - Read a PPD file into memory.
* ppdSetConformance() - Set the conformance level for PPD files.
* ppd_add_attr() - Add an attribute to the PPD data.
@@ -415,15 +413,47 @@ ppdLastError(int *line) /* O - Line number */
/*
* '_ppdOpen()' - Read a PPD file into memory.
* 'ppdOpen()' - Read a PPD file into memory.
*/
ppd_file_t * /* O - PPD file record */
ppdOpen(FILE *fp) /* I - File to read from */
{
ppd_file_t *ppd; /* PPD file record */
cups_file_t *cf; /* CUPS file */
/*
* Reopen the stdio file as a CUPS file...
*/
if ((cf = cupsFileOpenFd(fileno(fp), "r")) == NULL)
return (NULL);
/*
* Load the PPD file using the newer API...
*/
ppd = ppdOpen2(cf);
/*
* Close the CUPS file and return the PPD...
*/
cupsFileClose(cf);
return (ppd);
}
/*
* 'ppdOpen2()' - Read a PPD file into memory.
*
* @since CUPS 1.2/Mac OS X 10.5@
*/
ppd_file_t * /* O - PPD file record or @code NULL@ if the PPD file could not be opened. */
_ppdOpen(
cups_file_t *fp, /* I - File to read from */
_ppd_localization_t localization) /* I - Localization to load */
ppdOpen2(cups_file_t *fp) /* I - File to read from */
{
int i, j, k; /* Looping vars */
int count; /* Temporary count */
@@ -453,17 +483,12 @@ _ppdOpen(
char **filter; /* Pointer to filter */
struct lconv *loc; /* Locale data */
int ui_keyword; /* Is this line a UI keyword? */
cups_lang_t *lang; /* Language data */
cups_encoding_t encoding; /* Encoding of PPD file */
_cups_globals_t *cg = _cupsGlobals();
/* Global data */
char custom_name[PPD_MAX_NAME];
/* CustomFoo attribute name */
ppd_attr_t *custom_attr; /* CustomFoo attribute */
char ll[4], /* Language + '.' */
ll_CC[7]; /* Language + country + '.' */
size_t ll_len, /* Language length */
ll_CC_len; /* Language + country length */
static const char * const ui_keywords[] =
{
#ifdef CUPS_USE_FULL_UI_KEYWORDS_LIST
@@ -525,14 +550,9 @@ _ppdOpen(
"PageSize"
#endif /* CUPS_USE_FULL_UI_KEYWORDS_LIST */
};
static const char * const color_keywords[] = /* Keywords associated with color profiles */
{
".cupsICCProfile",
".ColorModel",
};
DEBUG_printf(("_ppdOpen(fp=%p)", fp));
DEBUG_printf(("ppdOpen2(fp=%p)", fp));
/*
* Default to "OK" status...
@@ -551,25 +571,6 @@ _ppdOpen(
return (NULL);
}
/*
* If only loading a single localization set up the strings to match...
*/
if (localization == _PPD_LOCALIZATION_DEFAULT)
{
if ((lang = cupsLangDefault()) == NULL)
return (NULL);
snprintf(ll_CC, sizeof(ll_CC), "%s.", lang->language);
snprintf(ll, sizeof(ll), "%2.2s.", lang->language);
ll_CC_len = strlen(ll_CC);
ll_len = strlen(ll);
DEBUG_printf(("2_ppdOpen: Loading localizations matching \"%s\" and \"%s\"",
ll_CC, ll));
}
/*
* Grab the first line and make sure it reads '*PPD-Adobe: "major.minor"'...
*/
@@ -579,7 +580,7 @@ _ppdOpen(
mask = ppd_read(fp, &line, keyword, name, text, &string, 0, cg);
DEBUG_printf(("2_ppdOpen: mask=%x, keyword=\"%s\"...", mask, keyword));
DEBUG_printf(("2ppdOpen2: mask=%x, keyword=\"%s\"...", mask, keyword));
if (mask == 0 ||
strcmp(keyword, "PPD-Adobe") ||
@@ -598,7 +599,7 @@ _ppdOpen(
return (NULL);
}
DEBUG_printf(("2_ppdOpen: keyword=%s, string=%p", keyword, string));
DEBUG_printf(("2ppdOpen2: keyword=%s, string=%p", keyword, string));
_cupsStrFree(string);
@@ -637,7 +638,7 @@ _ppdOpen(
while ((mask = ppd_read(fp, &line, keyword, name, text, &string, 1, cg)) != 0)
{
DEBUG_printf(("2_ppdOpen: mask=%x, keyword=\"%s\", name=\"%s\", "
DEBUG_printf(("2ppdOpen2: mask=%x, keyword=\"%s\", name=\"%s\", "
"text=\"%s\", string=%d chars...", mask, keyword, name, text,
string ? (int)strlen(string) : 0));
@@ -674,50 +675,6 @@ _ppdOpen(
ui_keyword = 0;
}
/*
* If we are filtering out keyword localizations, see if this line needs to
* be used...
*/
if (localization != _PPD_LOCALIZATION_ALL &&
(temp = strchr(keyword, '.')) != NULL &&
((temp - keyword) == 2 || (temp - keyword) == 5) &&
_cups_isalpha(keyword[0]) &&
_cups_isalpha(keyword[1]) &&
(keyword[2] == '.' ||
(keyword[2] == '_' && _cups_isalpha(keyword[3]) &&
_cups_isalpha(keyword[4]) && keyword[5] == '.')))
{
if (localization == _PPD_LOCALIZATION_NONE ||
(localization == _PPD_LOCALIZATION_DEFAULT &&
strncmp(ll_CC, keyword, ll_CC_len) &&
strncmp(ll, keyword, ll_len)))
{
DEBUG_printf(("2_ppdOpen: Ignoring localization: \"%s\"\n", keyword));
continue;
}
else if (localization == _PPD_LOCALIZATION_ICC_PROFILES)
{
/*
* Only load localizations for the color profile related keywords...
*/
for (i = 0;
i < (int)(sizeof(color_keywords) / sizeof(color_keywords[0]));
i ++)
{
if (!_cups_strcasecmp(temp, color_keywords[i]))
break;
}
if (i >= (int)(sizeof(color_keywords) / sizeof(color_keywords[0])))
{
DEBUG_printf(("2_ppdOpen: Ignoring localization: \"%s\"\n", keyword));
continue;
}
}
}
if (option == NULL &&
(mask & (PPD_KEYWORD | PPD_OPTION | PPD_STRING)) ==
(PPD_KEYWORD | PPD_OPTION | PPD_STRING))
@@ -734,7 +691,7 @@ _ppdOpen(
ui_keyword = 1;
DEBUG_printf(("2_ppdOpen: FOUND ADOBE UI KEYWORD %s WITHOUT OPENUI!",
DEBUG_printf(("2ppdOpen2: FOUND ADOBE UI KEYWORD %s WITHOUT OPENUI!",
keyword));
if (!group)
@@ -743,7 +700,7 @@ _ppdOpen(
encoding)) == NULL)
goto error;
DEBUG_printf(("2_ppdOpen: Adding to group %s...", group->text));
DEBUG_printf(("2ppdOpen2: Adding to group %s...", group->text));
option = ppd_get_option(group, keyword);
group = NULL;
}
@@ -778,7 +735,7 @@ _ppdOpen(
!strcmp(ppd->attrs[j]->name + 7, keyword) &&
ppd->attrs[j]->value)
{
DEBUG_printf(("2_ppdOpen: Setting Default%s to %s via attribute...",
DEBUG_printf(("2ppdOpen2: Setting Default%s to %s via attribute...",
option->keyword, ppd->attrs[j]->value));
strlcpy(option->defchoice, ppd->attrs[j]->value,
sizeof(option->defchoice));
@@ -1076,7 +1033,7 @@ _ppdOpen(
{
ppd_option_t *custom_option; /* Custom option */
DEBUG_puts("2_ppdOpen: Processing Custom option...");
DEBUG_puts("2ppdOpen2: Processing Custom option...");
/*
* Get the option and custom option...
@@ -1103,7 +1060,7 @@ _ppdOpen(
if ((choice = ppdFindChoice(custom_option, "Custom")) == NULL)
if ((choice = ppd_add_choice(custom_option, "Custom")) == NULL)
{
DEBUG_puts("1_ppdOpen: Unable to add Custom choice!");
DEBUG_puts("1ppdOpen2: Unable to add Custom choice!");
cg->ppd_status = PPD_ALLOC_ERROR;
@@ -1143,7 +1100,7 @@ _ppdOpen(
if ((choice = ppdFindChoice(custom_option, "Custom")) == NULL)
if ((choice = ppd_add_choice(custom_option, "Custom")) == NULL)
{
DEBUG_puts("1_ppdOpen: Unable to add Custom choice!");
DEBUG_puts("1ppdOpen2: Unable to add Custom choice!");
cg->ppd_status = PPD_ALLOC_ERROR;
@@ -1284,7 +1241,7 @@ _ppdOpen(
* Add an option record to the current sub-group, group, or file...
*/
DEBUG_printf(("2_ppdOpen: name=\"%s\" (%d)", name, (int)strlen(name)));
DEBUG_printf(("2ppdOpen2: name=\"%s\" (%d)", name, (int)strlen(name)));
if (name[0] == '*')
_cups_strcpy(name, name + 1); /* Eliminate leading asterisk */
@@ -1292,7 +1249,7 @@ _ppdOpen(
for (i = (int)strlen(name) - 1; i > 0 && _cups_isspace(name[i]); i --)
name[i] = '\0'; /* Eliminate trailing spaces */
DEBUG_printf(("2_ppdOpen: OpenUI of %s in group %s...", name,
DEBUG_printf(("2ppdOpen2: OpenUI of %s in group %s...", name,
group ? group->text : "(null)"));
if (subgroup != NULL)
@@ -1303,7 +1260,7 @@ _ppdOpen(
encoding)) == NULL)
goto error;
DEBUG_printf(("2_ppdOpen: Adding to group %s...", group->text));
DEBUG_printf(("2ppdOpen2: Adding to group %s...", group->text));
option = ppd_get_option(group, name);
group = NULL;
}
@@ -1341,7 +1298,7 @@ _ppdOpen(
!strcmp(ppd->attrs[j]->name + 7, name) &&
ppd->attrs[j]->value)
{
DEBUG_printf(("2_ppdOpen: Setting Default%s to %s via attribute...",
DEBUG_printf(("2ppdOpen2: Setting Default%s to %s via attribute...",
option->keyword, ppd->attrs[j]->value));
strlcpy(option->defchoice, ppd->attrs[j]->value,
sizeof(option->defchoice));
@@ -1387,7 +1344,7 @@ _ppdOpen(
if ((choice = ppdFindChoice(option, "Custom")) == NULL)
if ((choice = ppd_add_choice(option, "Custom")) == NULL)
{
DEBUG_puts("1_ppdOpen: Unable to add Custom choice!");
DEBUG_puts("1ppdOpen2: Unable to add Custom choice!");
cg->ppd_status = PPD_ALLOC_ERROR;
@@ -1460,7 +1417,7 @@ _ppdOpen(
!strcmp(ppd->attrs[j]->name + 7, name) &&
ppd->attrs[j]->value)
{
DEBUG_printf(("2_ppdOpen: Setting Default%s to %s via attribute...",
DEBUG_printf(("2ppdOpen2: Setting Default%s to %s via attribute...",
option->keyword, ppd->attrs[j]->value));
strlcpy(option->defchoice, ppd->attrs[j]->value,
sizeof(option->defchoice));
@@ -1490,7 +1447,7 @@ _ppdOpen(
{
if ((choice = ppd_add_choice(option, "Custom")) == NULL)
{
DEBUG_puts("1_ppdOpen: Unable to add Custom choice!");
DEBUG_puts("1ppdOpen2: Unable to add Custom choice!");
cg->ppd_status = PPD_ALLOC_ERROR;
@@ -1663,11 +1620,11 @@ _ppdOpen(
* Set the default as part of the current option...
*/
DEBUG_printf(("2_ppdOpen: Setting %s to %s...", keyword, string));
DEBUG_printf(("2ppdOpen2: Setting %s to %s...", keyword, string));
strlcpy(option->defchoice, string, sizeof(option->defchoice));
DEBUG_printf(("2_ppdOpen: %s is now %s...", keyword, option->defchoice));
DEBUG_printf(("2ppdOpen2: %s is now %s...", keyword, option->defchoice));
}
else
{
@@ -1680,7 +1637,7 @@ _ppdOpen(
if ((toption = ppdFindOption(ppd, keyword + 7)) != NULL)
{
DEBUG_printf(("2_ppdOpen: Setting %s to %s...", keyword, string));
DEBUG_printf(("2ppdOpen2: Setting %s to %s...", keyword, string));
strlcpy(toption->defchoice, string, sizeof(toption->defchoice));
}
}
@@ -1917,7 +1874,7 @@ _ppdOpen(
(PPD_KEYWORD | PPD_OPTION | PPD_STRING) &&
!strcmp(keyword, option->keyword))
{
DEBUG_printf(("2_ppdOpen: group=%p, subgroup=%p", group, subgroup));
DEBUG_printf(("2ppdOpen2: group=%p, subgroup=%p", group, subgroup));
if (!strcmp(keyword, "PageSize"))
{
@@ -1986,7 +1943,7 @@ _ppdOpen(
#ifdef DEBUG
if (!cupsFileEOF(fp))
DEBUG_printf(("1_ppdOpen: Premature EOF at %lu...\n",
DEBUG_printf(("1ppdOpen2: Premature EOF at %lu...\n",
(unsigned long)cupsFileTell(fp)));
#endif /* DEBUG */
@@ -2069,53 +2026,6 @@ _ppdOpen(
}
/*
* 'ppdOpen()' - Read a PPD file into memory.
*/
ppd_file_t * /* O - PPD file record */
ppdOpen(FILE *fp) /* I - File to read from */
{
ppd_file_t *ppd; /* PPD file record */
cups_file_t *cf; /* CUPS file */
/*
* Reopen the stdio file as a CUPS file...
*/
if ((cf = cupsFileOpenFd(fileno(fp), "r")) == NULL)
return (NULL);
/*
* Load the PPD file using the newer API...
*/
ppd = _ppdOpen(cf, _PPD_LOCALIZATION_DEFAULT);
/*
* Close the CUPS file and return the PPD...
*/
cupsFileClose(cf);
return (ppd);
}
/*
* 'ppdOpen2()' - Read a PPD file into memory.
*
* @since CUPS 1.2/Mac OS X 10.5@
*/
ppd_file_t * /* O - PPD file record or @code NULL@ if the PPD file could not be opened. */
ppdOpen2(cups_file_t *fp) /* I - File to read from */
{
return _ppdOpen(fp, _PPD_LOCALIZATION_DEFAULT);
}
/*
* 'ppdOpenFd()' - Read a PPD file into memory.
*/
@@ -2167,12 +2077,11 @@ ppdOpenFd(int fd) /* I - File to read from */
/*
* '_ppdOpenFile()' - Read a PPD file into memory.
* 'ppdOpenFile()' - Read a PPD file into memory.
*/
ppd_file_t * /* O - PPD file record or @code NULL@ if the PPD file could not be opened. */
_ppdOpenFile(const char *filename, /* I - File to read from */
_ppd_localization_t localization) /* I - Localization to load */
ppdOpenFile(const char *filename) /* I - File to read from */
{
cups_file_t *fp; /* File pointer */
ppd_file_t *ppd; /* PPD file record */
@@ -2203,7 +2112,7 @@ _ppdOpenFile(const char *filename, /* I - File to read from */
if ((fp = cupsFileOpen(filename, "r")) != NULL)
{
ppd = _ppdOpen(fp, localization);
ppd = ppdOpen2(fp);
cupsFileClose(fp);
}
@@ -2217,17 +2126,6 @@ _ppdOpenFile(const char *filename, /* I - File to read from */
}
/*
* 'ppdOpenFile()' - Read a PPD file into memory.
*/
ppd_file_t * /* O - PPD file record or @code NULL@ if the PPD file could not be opened. */
ppdOpenFile(const char *filename) /* I - File to read from */
{
return _ppdOpenFile(filename, _PPD_LOCALIZATION_DEFAULT);
}
/*
* 'ppdSetConformance()' - Set the conformance level for PPD files.
*
+26 -44
Ver Arquivo
@@ -3,10 +3,6 @@
*
* PostScript Printer Description definitions for CUPS.
*
* THESE APIS ARE DEPRECATED. TO COMPILE WITHOUT WARNINGS ADD
* -D_PPD_DEPRECATED="" TO YOUR COMPILE OPTIONS. THIS HEADER AND THESE
* FUNCTIONS WILL BE REMOVED IN A FUTURE RELEASE OF CUPS.
*
* Copyright 2007-2011 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
@@ -50,16 +46,6 @@ extern "C" {
# endif /* __cplusplus */
/*
* Define _PPD_DEPRECATED to silence the warnings about PPD functions being
* deprecated...
*/
# ifndef _PPD_DEPRECATED
# define _PPD_DEPRECATED _CUPS_DEPRECATED
# endif /* !_PPD_DEPRECATED */
/*
* PPD version...
*/
@@ -375,8 +361,7 @@ extern int ppdEmitFd(ppd_file_t *ppd, int fd,
extern int ppdEmitJCL(ppd_file_t *ppd, FILE *fp, int job_id,
const char *user, const char *title);
extern ppd_choice_t *ppdFindChoice(ppd_option_t *o, const char *option);
extern ppd_choice_t *ppdFindMarkedChoice(ppd_file_t *ppd,
const char *keyword);
extern ppd_choice_t *ppdFindMarkedChoice(ppd_file_t *ppd, const char *keyword);
extern ppd_option_t *ppdFindOption(ppd_file_t *ppd, const char *keyword);
extern int ppdIsMarked(ppd_file_t *ppd, const char *keyword,
const char *option);
@@ -391,67 +376,64 @@ extern ppd_size_t *ppdPageSize(ppd_file_t *ppd, const char *name);
extern float ppdPageWidth(ppd_file_t *ppd, const char *name);
/**** New in CUPS 1.1.19 ****/
extern const char *ppdErrorString(ppd_status_t status) _PPD_DEPRECATED;
extern const char *ppdErrorString(ppd_status_t status) _CUPS_API_1_1_19;
extern ppd_attr_t *ppdFindAttr(ppd_file_t *ppd, const char *name,
const char *spec) _PPD_DEPRECATED;
const char *spec) _CUPS_API_1_1_19;
extern ppd_attr_t *ppdFindNextAttr(ppd_file_t *ppd, const char *name,
const char *spec) _PPD_DEPRECATED;
extern ppd_status_t ppdLastError(int *line) _PPD_DEPRECATED;
const char *spec) _CUPS_API_1_1_19;
extern ppd_status_t ppdLastError(int *line) _CUPS_API_1_1_19;
/**** New in CUPS 1.1.20 ****/
extern void ppdSetConformance(ppd_conform_t c) _PPD_DEPRECATED;
extern void ppdSetConformance(ppd_conform_t c) _CUPS_API_1_1_20;
/**** New in CUPS 1.2 ****/
extern int ppdCollect2(ppd_file_t *ppd, ppd_section_t section,
float min_order, ppd_choice_t ***choices)
_PPD_DEPRECATED;
float min_order, ppd_choice_t ***choices) _CUPS_API_1_2;
extern int ppdEmitAfterOrder(ppd_file_t *ppd, FILE *fp,
ppd_section_t section, int limit,
float min_order) _PPD_DEPRECATED;
extern int ppdEmitJCLEnd(ppd_file_t *ppd, FILE *fp) _PPD_DEPRECATED;
float min_order) _CUPS_API_1_2;
extern int ppdEmitJCLEnd(ppd_file_t *ppd, FILE *fp) _CUPS_API_1_2;
extern char *ppdEmitString(ppd_file_t *ppd, ppd_section_t section,
float min_order) _PPD_DEPRECATED;
float min_order) _CUPS_API_1_2;
extern ppd_coption_t *ppdFindCustomOption(ppd_file_t *ppd,
const char *keyword) _PPD_DEPRECATED;
const char *keyword) _CUPS_API_1_2;
extern ppd_cparam_t *ppdFindCustomParam(ppd_coption_t *opt,
const char *name) _PPD_DEPRECATED;
extern ppd_cparam_t *ppdFirstCustomParam(ppd_coption_t *opt) _PPD_DEPRECATED;
extern ppd_option_t *ppdFirstOption(ppd_file_t *ppd) _PPD_DEPRECATED;
extern ppd_cparam_t *ppdNextCustomParam(ppd_coption_t *opt) _PPD_DEPRECATED;
extern ppd_option_t *ppdNextOption(ppd_file_t *ppd) _PPD_DEPRECATED;
extern int ppdLocalize(ppd_file_t *ppd) _PPD_DEPRECATED;
extern ppd_file_t *ppdOpen2(cups_file_t *fp) _PPD_DEPRECATED;
const char *name) _CUPS_API_1_2;
extern ppd_cparam_t *ppdFirstCustomParam(ppd_coption_t *opt) _CUPS_API_1_2;
extern ppd_option_t *ppdFirstOption(ppd_file_t *ppd) _CUPS_API_1_2;
extern ppd_cparam_t *ppdNextCustomParam(ppd_coption_t *opt) _CUPS_API_1_2;
extern ppd_option_t *ppdNextOption(ppd_file_t *ppd) _CUPS_API_1_2;
extern int ppdLocalize(ppd_file_t *ppd) _CUPS_API_1_2;
extern ppd_file_t *ppdOpen2(cups_file_t *fp) _CUPS_API_1_2;
/**** New in CUPS 1.3/Mac OS X 10.5 ****/
extern const char *ppdLocalizeIPPReason(ppd_file_t *ppd,
const char *reason,
const char *scheme,
char *buffer,
size_t bufsize) _PPD_DEPRECATED;
size_t bufsize) _CUPS_API_1_3;
/**** New in CUPS 1.4/Mac OS X 10.6 ****/
extern int cupsGetConflicts(ppd_file_t *ppd, const char *option,
const char *choice,
cups_option_t **options)
_PPD_DEPRECATED;
extern int cupsResolveConflicts(ppd_file_t *ppd,
const char *option,
_CUPS_API_1_4;
extern int cupsResolveConflicts(ppd_file_t *ppd, const char *option,
const char *choice,
int *num_options,
cups_option_t **options)
_PPD_DEPRECATED;
_CUPS_API_1_4;
extern int ppdInstallableConflict(ppd_file_t *ppd,
const char *option,
const char *choice)
_PPD_DEPRECATED;
_CUPS_API_1_4;
extern ppd_attr_t *ppdLocalizeAttr(ppd_file_t *ppd, const char *keyword,
const char *spec) _PPD_DEPRECATED;
const char *spec) _CUPS_API_1_4;
extern const char *ppdLocalizeMarkerName(ppd_file_t *ppd,
const char *name)
_PPD_DEPRECATED;
const char *name) _CUPS_API_1_4;
extern int ppdPageSizeLimits(ppd_file_t *ppd,
ppd_size_t *minimum,
ppd_size_t *maximum) _PPD_DEPRECATED;
ppd_size_t *maximum) _CUPS_API_1_4;
/*
+2 -2
Ver Arquivo
@@ -66,7 +66,7 @@ static _pwg_media_t const cups_pwg_media[] =
_PWG_MEDIA_IN("na_number-9_3.875x8.875in", "na-number-9-envelope", "Env9", 3.875, 8.875),
_PWG_MEDIA_IN("na_index-4x6_4x6in", NULL, "4x6", 4, 6),
_PWG_MEDIA_IN("na_number-10_4.125x9.5in", "na-number-10-envelope", "Env10", 4.125, 9.5),
_PWG_MEDIA_IN("na_a2_4.375x5.75in", NULL, "EnvA2", 4.375, 5.75),
_PWG_MEDIA_IN("na_a2_4.375x5.75in", NULL, NULL, 4.375, 5.75),
_PWG_MEDIA_IN("na_number-11_4.5x10.375in", NULL, "Env11", 4.5, 10.375),
_PWG_MEDIA_IN("na_number-12_4.75x11in", NULL, "Env12", 4.75, 11),
_PWG_MEDIA_IN("na_5x7_5x7in", NULL, "5x7", 5, 7),
@@ -230,7 +230,7 @@ static _pwg_media_t const cups_pwg_media[] =
_PWG_MEDIA_IN("oe_photo-l_3.5x5in", NULL, "3.5x5", 3.5, 5),
/* Other Metric Standard Sheet Media Sizes */
_PWG_MEDIA_MM("om_small-photo_100x150mm", NULL, "om_small-photo", 100, 150),
_PWG_MEDIA_MM("om_small-photo_100x150mm", NULL, NULL, 100, 150),
_PWG_MEDIA_MM("om_italian_110x230mm", NULL, "EnvItalian", 110, 230),
_PWG_MEDIA_MM("om_postfix_114x229mm", NULL, NULL, 114, 229),
_PWG_MEDIA_MM("om_large-photo_200x300", NULL, NULL, 200, 300),
+2 -2
Ver Arquivo
@@ -3,7 +3,7 @@
*
* Private PWG media API definitions for CUPS.
*
* Copyright 2009-2012 by Apple Inc.
* Copyright 2009-2010 by Apple Inc.
*
* These coded instructions, statements, and computer programs are the
* property of Apple Inc. and are protected by Federal copyright
@@ -39,7 +39,7 @@ extern "C" {
*/
/* Convert from points to 2540ths */
# define _PWG_FROMPTS(n) (int)(((n) * 2540 + 36) / 72)
# define _PWG_FROMPTS(n) (int)((n) * 2540 / 72)
/* Convert from 2540ths to points */
# define _PWG_TOPTS(n) ((n) * 72.0 / 2540.0)
-69
Ver Arquivo
@@ -1,69 +0,0 @@
/*
* "$Id$"
*
* Private image library definitions for CUPS.
*
* Copyright 2007-2011 by Apple Inc.
* Copyright 1993-2006 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Apple Inc. 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
* file is missing or damaged, see the license at "http://www.cups.org/".
*
* This file is subject to the Apple OS-Developed Software exception.
*/
#ifndef _CUPS_RASTER_PRIVATE_H_
# define _CUPS_RASTER_PRIVATE_H_
/*
* Include necessary headers...
*/
# include "raster.h"
# include <cups/cups.h>
# include <cups/debug-private.h>
# include <cups/string-private.h>
# ifdef WIN32
# include <io.h>
# include <winsock2.h> /* for htonl() definition */
# else
# include <unistd.h>
# include <fcntl.h>
# endif /* WIN32 */
/*
* min/max/abs macros...
*/
# ifndef max
# define max(a,b) ((a) > (b) ? (a) : (b))
# endif /* !max */
# ifndef min
# define min(a,b) ((a) < (b) ? (a) : (b))
# endif /* !min */
# ifndef abs
# define abs(a) ((a) < 0 ? -(a) : (a))
# endif /* !abs */
/*
* Prototypes...
*/
extern int _cupsRasterExecPS(cups_page_header2_t *h,
int *preferred_bits,
const char *code)
__attribute__((nonnull(3)));
extern void _cupsRasterAddError(const char *f, ...)
__attribute__((__format__(__printf__, 1, 2)));
extern void _cupsRasterClearError(void);
#endif /* !_CUPS_RASTER_PRIVATE_H_ */
/*
* End of "$Id$".
*/
+13 -80
Ver Arquivo
@@ -29,7 +29,8 @@
*/
#include "sidechannel.h"
#include "cups-private.h"
#include "string-private.h"
#include "debug-private.h"
#ifdef WIN32
# include <io.h>
#else
@@ -44,18 +45,10 @@
# include <sys/time.h>
#endif /* !WIN32 */
#ifdef HAVE_POLL
# include <poll.h>
# include <sys/poll.h>
#endif /* HAVE_POLL */
/*
* Buffer size for side-channel requests...
*/
#define _CUPS_SC_MAX_DATA 65535
#define _CUPS_SC_MAX_BUFFER 65540
/*
* 'cupsSideChannelDoRequest()' - Send a side-channel command to a backend and wait for a response.
*
@@ -119,7 +112,7 @@ cupsSideChannelRead(
int *datalen, /* IO - Size of data buffer on entry, number of bytes in buffer on return */
double timeout) /* I - Timeout in seconds */
{
char *buffer; /* Message buffer */
char buffer[16388]; /* Message buffer */
int bytes; /* Bytes read */
int templen; /* Data length from message */
int nfds; /* Number of file descriptors */
@@ -171,8 +164,7 @@ cupsSideChannelRead(
if (nfds < 1)
{
*command = CUPS_SC_CMD_NONE;
*status = nfds==0 ? CUPS_SC_STATUS_TIMEOUT : CUPS_SC_STATUS_IO_ERROR;
*status = nfds==0 ? CUPS_SC_STATUS_TIMEOUT : CUPS_SC_STATUS_IO_ERROR;
return (-1);
}
@@ -183,28 +175,16 @@ cupsSideChannelRead(
* ------- -------------------------------------------
* 0 Command code
* 1 Status code
* 2-3 Data length (network byte order)
* 2-3 Data length (network byte order) <= 16384
* 4-N Data
*/
if ((buffer = _cupsBufferGet(_CUPS_SC_MAX_BUFFER)) == NULL)
{
*command = CUPS_SC_CMD_NONE;
*status = CUPS_SC_STATUS_TOO_BIG;
return (-1);
}
while ((bytes = read(CUPS_SC_FD, buffer, _CUPS_SC_MAX_BUFFER)) < 0)
while ((bytes = read(CUPS_SC_FD, buffer, sizeof(buffer))) < 0)
if (errno != EINTR && errno != EAGAIN)
{
DEBUG_printf(("1cupsSideChannelRead: Read error: %s", strerror(errno)));
_cupsBufferRelease(buffer);
*command = CUPS_SC_CMD_NONE;
*status = CUPS_SC_STATUS_IO_ERROR;
return (-1);
}
@@ -215,12 +195,8 @@ cupsSideChannelRead(
if (bytes < 4)
{
DEBUG_printf(("1cupsSideChannelRead: Short read of %d bytes", bytes));
_cupsBufferRelease(buffer);
*command = CUPS_SC_CMD_NONE;
*status = CUPS_SC_STATUS_BAD_MESSAGE;
return (-1);
}
@@ -232,12 +208,8 @@ cupsSideChannelRead(
buffer[0] >= CUPS_SC_CMD_MAX)
{
DEBUG_printf(("1cupsSideChannelRead: Bad command %d!", buffer[0]));
_cupsBufferRelease(buffer);
*command = CUPS_SC_CMD_NONE;
*status = CUPS_SC_STATUS_BAD_MESSAGE;
return (-1);
}
@@ -280,8 +252,6 @@ cupsSideChannelRead(
memcpy(data, buffer + 4, templen);
}
_cupsBufferRelease(buffer);
DEBUG_printf(("1cupsSideChannelRead: Returning status=%d", *status));
return (0);
@@ -320,7 +290,7 @@ cupsSideChannelSNMPGet(
{
cups_sc_status_t status; /* Status of command */
cups_sc_command_t rcommand; /* Response command */
char *real_data; /* Real data buffer for response */
char real_data[2048];/* Real data buffer for response */
int real_datalen, /* Real length of data buffer */
real_oidlen; /* Length of returned OID string */
@@ -346,21 +316,12 @@ cupsSideChannelSNMPGet(
(int)strlen(oid) + 1, timeout))
return (CUPS_SC_STATUS_TIMEOUT);
if ((real_data = _cupsBufferGet(_CUPS_SC_MAX_BUFFER)) == NULL)
return (CUPS_SC_STATUS_TOO_BIG);
real_datalen = _CUPS_SC_MAX_BUFFER;
real_datalen = sizeof(real_data);
if (cupsSideChannelRead(&rcommand, &status, real_data, &real_datalen, timeout))
{
_cupsBufferRelease(real_data);
return (CUPS_SC_STATUS_TIMEOUT);
}
if (rcommand != CUPS_SC_CMD_SNMP_GET)
{
_cupsBufferRelease(real_data);
return (CUPS_SC_STATUS_BAD_MESSAGE);
}
if (status == CUPS_SC_STATUS_OK)
{
@@ -372,10 +333,7 @@ cupsSideChannelSNMPGet(
real_datalen -= real_oidlen;
if ((real_datalen + 1) > *datalen)
{
_cupsBufferRelease(real_data);
return (CUPS_SC_STATUS_TOO_BIG);
}
memcpy(data, real_data + real_oidlen, real_datalen);
data[real_datalen] = '\0';
@@ -383,8 +341,6 @@ cupsSideChannelSNMPGet(
*datalen = real_datalen;
}
_cupsBufferRelease(real_data);
return (status);
}
@@ -426,7 +382,7 @@ cupsSideChannelSNMPWalk(
{
cups_sc_status_t status; /* Status of command */
cups_sc_command_t rcommand; /* Response command */
char *real_data; /* Real data buffer for response */
char real_data[2048];/* Real data buffer for response */
int real_datalen, /* Real length of data buffer */
real_oidlen, /* Length of returned OID string */
oidlen; /* Length of first OID */
@@ -444,9 +400,6 @@ cupsSideChannelSNMPWalk(
if (!oid || !*oid || !cb)
return (CUPS_SC_STATUS_BAD_MESSAGE);
if ((real_data = _cupsBufferGet(_CUPS_SC_MAX_BUFFER)) == NULL)
return (CUPS_SC_STATUS_TOO_BIG);
/*
* Loop until the OIDs don't match...
*/
@@ -463,24 +416,15 @@ cupsSideChannelSNMPWalk(
if (cupsSideChannelWrite(CUPS_SC_CMD_SNMP_GET_NEXT, CUPS_SC_STATUS_NONE,
current_oid, (int)strlen(current_oid) + 1, timeout))
{
_cupsBufferRelease(real_data);
return (CUPS_SC_STATUS_TIMEOUT);
}
real_datalen = _CUPS_SC_MAX_BUFFER;
real_datalen = sizeof(real_data);
if (cupsSideChannelRead(&rcommand, &status, real_data, &real_datalen,
timeout))
{
_cupsBufferRelease(real_data);
return (CUPS_SC_STATUS_TIMEOUT);
}
if (rcommand != CUPS_SC_CMD_SNMP_GET_NEXT)
{
_cupsBufferRelease(real_data);
return (CUPS_SC_STATUS_BAD_MESSAGE);
}
if (status == CUPS_SC_STATUS_OK)
{
@@ -495,7 +439,6 @@ cupsSideChannelSNMPWalk(
* Done with this set of OIDs...
*/
_cupsBufferRelease(real_data);
return (CUPS_SC_STATUS_OK);
}
@@ -521,8 +464,6 @@ cupsSideChannelSNMPWalk(
}
while (status == CUPS_SC_STATUS_OK);
_cupsBufferRelease(real_data);
return (status);
}
@@ -544,7 +485,7 @@ cupsSideChannelWrite(
int datalen, /* I - Number of bytes of data */
double timeout) /* I - Timeout in seconds */
{
char *buffer; /* Message buffer */
char buffer[16388]; /* Message buffer */
int bytes; /* Bytes written */
#ifdef HAVE_POLL
struct pollfd pfd; /* Poll structure for poll() */
@@ -559,7 +500,7 @@ cupsSideChannelWrite(
*/
if (command < CUPS_SC_CMD_SOFT_RESET || command >= CUPS_SC_CMD_MAX ||
datalen < 0 || datalen > _CUPS_SC_MAX_DATA || (datalen > 0 && !data))
datalen < 0 || datalen > 16384 || (datalen > 0 && !data))
return (-1);
/*
@@ -608,9 +549,6 @@ cupsSideChannelWrite(
* 4-N Data
*/
if ((buffer = _cupsBufferGet(datalen + 4)) == NULL)
return (-1);
buffer[0] = command;
buffer[1] = status;
buffer[2] = datalen >> 8;
@@ -626,12 +564,7 @@ cupsSideChannelWrite(
while (write(CUPS_SC_FD, buffer, bytes) < 0)
if (errno != EINTR && errno != EAGAIN)
{
_cupsBufferRelease(buffer);
return (-1);
}
_cupsBufferRelease(buffer);
return (0);
}
+1 -1
Ver Arquivo
@@ -61,7 +61,7 @@
#include "cups-private.h"
#include "snmp-private.h"
#ifdef HAVE_POLL
# include <poll.h>
# include <sys/poll.h>
#endif /* HAVE_POLL */
+4 -1
Ver Arquivo
@@ -155,7 +155,10 @@ extern size_t _cups_strlcpy(char *, const char *, size_t);
# ifndef HAVE_SNPRINTF
extern int _cups_snprintf(char *, size_t, const char *, ...)
__attribute__ ((__format__ (__printf__, 3, 4)));
# ifdef __GNUC__
__attribute__ ((__format__ (__printf__, 3, 4)))
# endif /* __GNUC__ */
;
# define snprintf _cups_snprintf
# endif /* !HAVE_SNPRINTF */
+55 -111
Ver Arquivo
@@ -3,7 +3,7 @@
*
* CUPS API test program for CUPS.
*
* Copyright 2007-2012 by Apple Inc.
* Copyright 2007-2011 by Apple Inc.
* Copyright 2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
@@ -35,7 +35,6 @@
*/
static int dests_equal(cups_dest_t *a, cups_dest_t *b);
static int enum_cb(void *user_data, unsigned flags, cups_dest_t *dest);
static void show_diffs(cups_dest_t *a, cups_dest_t *b);
@@ -58,106 +57,69 @@ main(int argc, /* I - Number of command-line arguments */
int num_jobs; /* Number of jobs for queue */
cups_job_t *jobs; /* Jobs for queue */
if (argc > 1)
{
if (!strcmp(argv[1], "enum"))
/*
* ./testcups printer file interval
*/
int interval, /* Interval between writes */
job_id; /* Job ID */
cups_file_t *fp; /* Print file */
char buffer[16384]; /* Read/write buffer */
ssize_t bytes; /* Bytes read/written */
if (argc != 4)
{
int msec; /* Timeout in milliseconds */
if (argc >= 3)
msec = atoi(argv[2]) * 1000;
else
msec = 0;
cupsEnumDests(CUPS_DEST_FLAGS_NONE, msec, NULL, 0, 0, enum_cb, NULL);
puts("Usage: ./testcups");
puts(" ./testcups printer file interval");
return (1);
}
else if (!strcmp(argv[1], "password"))
{
const char *pass = cupsGetPassword("Password:");
/* Password string */
if (pass)
printf("Password entered: %s\n", pass);
else
puts("No password entered.");
if ((fp = cupsFileOpen(argv[2], "r")) == NULL)
{
printf("Unable to open \"%s\": %s\n", argv[2], strerror(errno));
return (1);
}
else if (!strcmp(argv[1], "print") && argc == 5)
if ((job_id = cupsCreateJob(CUPS_HTTP_DEFAULT, argv[1], "testcups", 0,
NULL)) <= 0)
{
/*
* ./testcups printer file interval
*/
int interval, /* Interval between writes */
job_id; /* Job ID */
cups_file_t *fp; /* Print file */
char buffer[16384]; /* Read/write buffer */
ssize_t bytes; /* Bytes read/written */
if ((fp = cupsFileOpen(argv[3], "r")) == NULL)
{
printf("Unable to open \"%s\": %s\n", argv[2], strerror(errno));
return (1);
}
if ((job_id = cupsCreateJob(CUPS_HTTP_DEFAULT, argv[2], "testcups", 0,
NULL)) <= 0)
{
printf("Unable to create print job on %s: %s\n", argv[1],
cupsLastErrorString());
return (1);
}
interval = atoi(argv[4]);
if (cupsStartDocument(CUPS_HTTP_DEFAULT, argv[1], job_id, argv[2],
CUPS_FORMAT_AUTO, 1) != HTTP_CONTINUE)
{
puts("Unable to start document!");
return (1);
}
while ((bytes = cupsFileRead(fp, buffer, sizeof(buffer))) > 0)
{
printf("Writing %d bytes...\n", (int)bytes);
if (cupsWriteRequestData(CUPS_HTTP_DEFAULT, buffer,
bytes) != HTTP_CONTINUE)
{
puts("Unable to write bytes!");
return (1);
}
if (interval > 0)
sleep(interval);
}
cupsFileClose(fp);
if (cupsFinishDocument(CUPS_HTTP_DEFAULT, argv[1]) > IPP_OK_SUBST)
{
puts("Unable to finish document!");
return (1);
}
printf("Unable to create print job on %s: %s\n", argv[1],
cupsLastErrorString());
return (1);
}
else
interval = atoi(argv[3]);
if (cupsStartDocument(CUPS_HTTP_DEFAULT, argv[1], job_id, argv[2],
CUPS_FORMAT_AUTO, 1) != HTTP_CONTINUE)
{
puts("Usage:");
puts("");
puts("Run basic unit tests:");
puts("");
puts(" ./testcups");
puts("");
puts("Enumerate printers (for N seconds, -1 for indefinitely):");
puts("");
puts(" ./testcups enum [seconds]");
puts("");
puts("Ask for a password:");
puts("");
puts(" ./testcups password");
puts("");
puts("Print a file (interval controls delay between buffers in seconds):");
puts("");
puts(" ./testcups print printer file interval");
puts("Unable to start document!");
return (1);
}
while ((bytes = cupsFileRead(fp, buffer, sizeof(buffer))) > 0)
{
printf("Writing %d bytes...\n", (int)bytes);
if (cupsWriteRequestData(CUPS_HTTP_DEFAULT, buffer,
bytes) != HTTP_CONTINUE)
{
puts("Unable to write bytes!");
return (1);
}
sleep(interval);
}
cupsFileClose(fp);
if (cupsFinishDocument(CUPS_HTTP_DEFAULT, argv[1]) > IPP_OK_SUBST)
{
puts("Unable to finish document!");
return (1);
}
@@ -407,24 +369,6 @@ dests_equal(cups_dest_t *a, /* I - First destination */
}
/*
* 'enum_cb()' - Report additions and removals.
*/
static int /* O - 1 to continue, 0 to stop */
enum_cb(void *user_data, /* I - User data (unused) */
unsigned flags, /* I - Destination flags */
cups_dest_t *dest) /* I - Destination */
{
if (flags & CUPS_DEST_FLAGS_REMOVED)
printf("Removed '%s'.\n", dest->name);
else
printf("Added '%s'.\n", dest->name);
return (1);
}
/*
* 'show_diffs()' - Show differences between two destinations.
*/
+6 -6
Ver Arquivo
@@ -133,9 +133,9 @@ main(int argc, /* I - Number of command-line arguments */
* Count lines in psglyphs, rewind, then count again.
*/
fputs("\ncupsFileOpen(\"../data/media.defs\", \"r\"): ", stdout);
fputs("\ncupsFileOpen(\"../data/psglyphs\", \"r\"): ", stdout);
if ((fp = cupsFileOpen("../data/media.defs", "r")) == NULL)
if ((fp = cupsFileOpen("../data/psglyphs", "r")) == NULL)
{
puts("FAIL");
status ++;
@@ -145,9 +145,9 @@ main(int argc, /* I - Number of command-line arguments */
puts("PASS");
fputs("cupsFileGets: ", stdout);
if ((count = count_lines(fp)) != 208)
if ((count = count_lines(fp)) != 1051)
{
printf("FAIL (got %d lines, expected 208)\n", count);
printf("FAIL (got %d lines, expected 1051)\n", count);
status ++;
}
else
@@ -165,9 +165,9 @@ main(int argc, /* I - Number of command-line arguments */
puts("PASS");
fputs("cupsFileGets: ", stdout);
if ((count = count_lines(fp)) != 208)
if ((count = count_lines(fp)) != 1051)
{
printf("FAIL (got %d lines, expected 208)\n", count);
printf("FAIL (got %d lines, expected 1051)\n", count);
status ++;
}
else
+1 -1
Ver Arquivo
@@ -758,7 +758,7 @@ print_attributes(ipp_t *ipp, /* I - IPP request */
int i; /* Looping var */
ipp_tag_t group; /* Current group */
ipp_attribute_t *attr; /* Current attribute */
_ipp_value_t *val; /* Current value */
ipp_value_t *val; /* Current value */
static const char * const tags[] = /* Value/group tag strings */
{
"reserved-00",
+1 -21
Ver Arquivo
@@ -178,7 +178,7 @@ main(int argc, /* I - Number of command-line arguments */
fputs("ppdOpenFile(test.ppd): ", stdout);
if ((ppd = _ppdOpenFile("test.ppd", _PPD_LOCALIZATION_ALL)) != NULL)
if ((ppd = ppdOpenFile("test.ppd")) != NULL)
puts("PASS");
else
{
@@ -470,26 +470,6 @@ main(int argc, /* I - Number of command-line arguments */
else
puts("PASS");
/*
* Custom sizes...
*/
fputs("cupsMarkOptions(media=Custom.8x10in): ", stdout);
num_options = cupsAddOption("media", "Custom.8x10in", 0, &options);
cupsMarkOptions(ppd, num_options, options);
cupsFreeOptions(num_options, options);
size = ppdPageSize(ppd, NULL);
if (!size || strcmp(size->name, "Custom") ||
size->width != 576 || size->length != 720)
{
printf("FAIL (%s - %gx%g)\n", size ? size->name : "unknown",
size ? size->width : 0.0, size ? size->length : 0.0);
status ++;
}
else
puts("PASS");
/*
* Test localization...
*/
+2 -2
Ver Arquivo
@@ -36,7 +36,7 @@
static void print_packet(cups_snmp_t *packet, void *data);
static int show_oid(int fd, const char *community,
http_addr_t *addr, const char *s, int walk);
static void usage(void) __attribute__((noreturn));
static void usage(void);
/*
@@ -119,7 +119,7 @@ main(int argc, /* I - Number of command-line args */
".1.3.6.1.2.1.43.10.2.1.4.1.1", walk))
return (1);
}
return (0);
}
+10 -259
Ver Arquivo
@@ -47,17 +47,9 @@
# include <windows.h>
#else
# include <pwd.h>
# include <termios.h>
#endif /* WIN32 */
/*
* Local constants...
*/
#define _CUPS_PASSCHAR '*' /* Character that is echoed for password */
/*
* Local functions...
*/
@@ -493,270 +485,29 @@ cupsUser(void)
* '_cupsGetPassword()' - Get a password from the user.
*/
const char * /* O - Password or @code NULL@ if none */
const char * /* O - Password */
_cupsGetPassword(const char *prompt) /* I - Prompt string */
{
#ifdef WIN32
HANDLE tty; /* Console handle */
DWORD mode; /* Console mode */
char passch, /* Current key press */
*passptr, /* Pointer into password string */
*passend; /* End of password string */
DWORD passbytes; /* Bytes read */
_cups_globals_t *cg = _cupsGlobals();
/* Thread globals */
/*
* Disable input echo and set raw input...
* Currently no console password support is provided on Windows.
*/
if ((tty = GetStdHandle(STD_INPUT_HANDLE)) == INVALID_HANDLE_VALUE)
return (NULL);
if (!GetConsoleMode(tty, &mode))
return (NULL);
if (!SetConsoleMode(tty, 0))
return (NULL);
/*
* Display the prompt...
*/
printf("%s ", prompt);
fflush(stdout);
/*
* Read the password string from /dev/tty until we get interrupted or get a
* carriage return or newline...
*/
passptr = cg->password;
passend = cg->password + sizeof(cg->password) - 1;
while (ReadFile(tty, &passch, 1, &passbytes, NULL))
{
if (passch == 0x0A || passch == 0x0D)
{
/*
* Enter/return...
*/
break;
}
else if (passch == 0x08 || passch == 0x7F)
{
/*
* Backspace/delete (erase character)...
*/
if (passptr > cg->password)
{
passptr --;
fputs("\010 \010", stdout);
}
else
putchar(0x07);
}
else if (passch == 0x15)
{
/*
* CTRL+U (erase line)
*/
if (passptr > cg->password)
{
while (passptr > cg->password)
{
passptr --;
fputs("\010 \010", stdout);
}
}
else
putchar(0x07);
}
else if (passch == 0x03)
{
/*
* CTRL+C...
*/
passptr = cg->password;
break;
}
else if ((passch & 255) < 0x20 || passptr >= passend)
putchar(0x07);
else
{
*passptr++ = passch;
putchar(_CUPS_PASSCHAR);
}
fflush(stdout);
}
putchar('\n');
fflush(stdout);
/*
* Cleanup...
*/
SetConsoleMode(tty, mode);
/*
* Return the proper value...
*/
if (passbytes == 1 && passptr > cg->password)
{
*passptr = '\0';
return (cg->password);
}
else
{
memset(cg->password, 0, sizeof(cg->password));
return (NULL);
}
return (NULL);
#else
int tty; /* /dev/tty - never read from stdin */
struct termios original, /* Original input mode */
noecho; /* No echo input mode */
char passch, /* Current key press */
*passptr, /* Pointer into password string */
*passend; /* End of password string */
ssize_t passbytes; /* Bytes read */
_cups_globals_t *cg = _cupsGlobals();
/* Thread globals */
/*
* Disable input echo and set raw input...
* Use the standard getpass function to get a password from the console. An
* empty password is treated as canceling the authentication request.
*/
if ((tty = open("/dev/tty", O_RDONLY)) < 0)
const char *password = getpass(prompt);
/* Password string */
if (!password || !password[0])
return (NULL);
if (tcgetattr(tty, &original))
{
close(tty);
return (NULL);
}
noecho = original;
noecho.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);
if (tcsetattr(tty, TCSAFLUSH, &noecho))
{
close(tty);
return (NULL);
}
/*
* Display the prompt...
*/
printf("%s ", prompt);
fflush(stdout);
/*
* Read the password string from /dev/tty until we get interrupted or get a
* carriage return or newline...
*/
passptr = cg->password;
passend = cg->password + sizeof(cg->password) - 1;
while ((passbytes = read(tty, &passch, 1)) == 1)
{
if (passch == noecho.c_cc[VEOL] || passch == noecho.c_cc[VEOL2] ||
passch == 0x0A || passch == 0x0D)
{
/*
* Enter/return...
*/
break;
}
else if (passch == noecho.c_cc[VERASE] ||
passch == 0x08 || passch == 0x7F)
{
/*
* Backspace/delete (erase character)...
*/
if (passptr > cg->password)
{
passptr --;
fputs("\010 \010", stdout);
}
else
putchar(0x07);
}
else if (passch == noecho.c_cc[VKILL])
{
/*
* CTRL+U (erase line)
*/
if (passptr > cg->password)
{
while (passptr > cg->password)
{
passptr --;
fputs("\010 \010", stdout);
}
}
else
putchar(0x07);
}
else if (passch == noecho.c_cc[VINTR] || passch == noecho.c_cc[VQUIT] ||
passch == noecho.c_cc[VEOF])
{
/*
* CTRL+C, CTRL+D, or CTRL+Z...
*/
passptr = cg->password;
break;
}
else if ((passch & 255) < 0x20 || passptr >= passend)
putchar(0x07);
else
{
*passptr++ = passch;
putchar(_CUPS_PASSCHAR);
}
fflush(stdout);
}
putchar('\n');
fflush(stdout);
/*
* Cleanup...
*/
tcsetattr(tty, TCSAFLUSH, &original);
close(tty);
/*
* Return the proper value...
*/
if (passbytes == 1 && passptr > cg->password)
{
*passptr = '\0';
return (cg->password);
}
else
{
memset(cg->password, 0, sizeof(cg->password));
return (NULL);
}
return (password);
#endif /* WIN32 */
}
+6 -13
Ver Arquivo
@@ -3,7 +3,7 @@
*
* API versioning definitions for CUPS.
*
* Copyright 2007-2011 by Apple Inc.
* Copyright 2007-2010 by Apple Inc.
*
* These coded instructions, statements, and computer programs are the
* property of Apple Inc. and are protected by Federal copyright
@@ -20,15 +20,13 @@
/*
* This header defines several constants - _CUPS_DEPRECATED,
* _CUPS_API_1_1, _CUPS_API_1_1_19, _CUPS_API_1_1_20, _CUPS_API_1_1_21,
* _CUPS_API_1_2, _CUPS_API_1_3, _CUPS_API_1_4, _CUPS_API_1_5, _CUPS_API_1_6 -
* which add compiler-specific attributes that flag functions that are
* deprecated or added in particular releases.
* _CUPS_API_1_2, _CUPS_API_1_3, _CUPS_API_1_4, _CUPS_API_1_5 - which add
* compiler-specific attributes that flag functions that are deprecated or added
* in particular releases.
*
* On Mac OS X, the _CUPS_API_* constants are defined based on the values of
* the MAC_OS_X_VERSION_MIN_ALLOWED and MAC_OS_X_VERSION_MAX_ALLOWED constants
* provided by the compiler.
*
*
*/
# if defined(__APPLE__) && !defined(_CUPS_SOURCE)
@@ -48,9 +46,6 @@
# ifndef AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
# define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER __attribute__((unavailable))
# endif /* !AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER */
# ifndef AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
# define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER __attribute__((unavailable))
# endif /* !AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER */
# define _CUPS_API_1_1_19 AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
# define _CUPS_API_1_1_20 AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
# define _CUPS_API_1_1_21 AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
@@ -58,7 +53,6 @@
# define _CUPS_API_1_3 AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
# define _CUPS_API_1_4 AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER
# define _CUPS_API_1_5 AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
# define _CUPS_API_1_6
# else
# define _CUPS_API_1_1_19
# define _CUPS_API_1_1_20
@@ -67,7 +61,6 @@
# define _CUPS_API_1_3
# define _CUPS_API_1_4
# define _CUPS_API_1_5
# define _CUPS_API_1_6
# endif /* __APPLE__ && !_CUPS_SOURCE */
/*
@@ -75,11 +68,11 @@
* a warning at compile-time.
*/
# if defined(__GNUC__) && __GNUC__ > 2 && !defined(_CUPS_SOURCE)
# if defined(__GNUC__) && __GNUC__ > 2
# define _CUPS_DEPRECATED __attribute__ ((__deprecated__))
# else
# define _CUPS_DEPRECATED
# endif /* __GNUC__ && __GNUC__ > 2 && !_CUPS_SOURCE */
# endif /* __GNUC__ && __GNUC__ > 2 */
# ifndef __GNUC__
# define __attribute__(x)
+16
Ver Arquivo
@@ -27,15 +27,21 @@ BANNERS = \
topsecret \
unclassified
CHARSETS = \
utf-8
DATAFILES = \
psglyphs \
testprint
PPDCFILES = \
epson.h \
escp.h \
font.defs \
hp.h \
label.h \
media.defs \
pcl.h \
raster.defs
@@ -90,6 +96,12 @@ install-data:
for file in $(BANNERS); do \
$(INSTALL_DATA) $$file $(DATADIR)/banners; \
done
$(INSTALL_DIR) -m 755 $(DATADIR)/charsets
if test "x$(BANNERTOPS)" != x -o "x$(TEXTTOPS)" != x; then \
for file in $(CHARSETS); do \
$(INSTALL_DATA) $$file $(DATADIR)/charsets; \
done; \
fi
$(INSTALL_DIR) -m 755 $(DATADIR)/data
for file in $(DATAFILES); do \
$(INSTALL_DATA) $$file $(DATADIR)/data; \
@@ -131,6 +143,9 @@ uninstall:
for file in $(BANNERS); do \
$(RM) $(DATADIR)/banners/$$file; \
done
for file in $(CHARSETS); do \
$(RM) $(DATADIR)/charsets/$$file; \
done
for file in $(DATAFILES); do \
$(RM) $(DATADIR)/data/$$file; \
done
@@ -141,6 +156,7 @@ uninstall:
-$(RMDIR) $(DATADIR)/ppdc
-$(RMDIR) $(DATADIR)/model
-$(RMDIR) $(DATADIR)/data
-$(RMDIR) $(DATADIR)/charsets
-$(RMDIR) $(DATADIR)/banners
-$(RMDIR) $(DATADIR)
+34
Ver Arquivo
@@ -0,0 +1,34 @@
/*
* "$Id$"
*
* This file contains model number definitions for the CUPS unified
* ESC/P driver.
*
* Copyright 2007 by Apple Inc.
* Copyright 1997-2005 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Apple Inc. 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
* file is missing or damaged, see the license at "http://www.cups.org/".
*/
/* General ESC/P Support */
#define ESCP_DOTMATRIX 0x1 /* Dot matrix printer? */
#define ESCP_MICROWEAVE 0x2 /* Use microweave command? */
#define ESCP_STAGGER 0x4 /* Are color jets staggered? */
#define ESCP_ESCK 0x8 /* Use print mode command?*/
#define ESCP_EXT_UNITS 0x10 /* Use extended unit commands? */
#define ESCP_EXT_MARGINS 0x20 /* Use extended margin command */
#define ESCP_USB 0x40 /* Send USB packet mode escape? */
#define ESCP_PAGE_SIZE 0x80 /* Use page size command */
#define ESCP_RASTER_ESCI 0x100 /* Use ESC i graphics command */
/* Remote mode support */
#define ESCP_REMOTE 0x1000 /* Use remote mode commands? */
/*
* End of "$Id$".
*/
+38
Ver Arquivo
@@ -0,0 +1,38 @@
/*
* "$Id$"
*
* This file contains model number definitions for the CUPS unified
* PCL driver.
*
* Copyright 2007 by Apple Inc.
* Copyright 1997-2005 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* property of Apple Inc. 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
* file is missing or damaged, see the license at "http://www.cups.org/".
*/
/* General PCL Support */
#define PCL_PAPER_SIZE 0x1 /* Use ESC&l#A */
#define PCL_INKJET 0x2 /* Use inkjet commands */
/* Raster Support */
#define PCL_RASTER_END_COLOR 0x100 /* Use ESC*rC */
#define PCL_RASTER_CID 0x200 /* Use ESC*v#W */
#define PCL_RASTER_CRD 0x400 /* Use ESC*g#W */
#define PCL_RASTER_SIMPLE 0x800 /* Use ESC*r#U */
#define PCL_RASTER_RGB24 0x1000 /* Use 24-bit RGB mode */
/* PJL Support */
#define PCL_PJL 0x10000 /* Use PJL Commands */
#define PCL_PJL_PAPERWIDTH 0x20000 /* Use PJL PAPERWIDTH/LENGTH */
#define PCL_PJL_HPGL2 0x40000 /* Enter HPGL2 */
#define PCL_PJL_PCL3GUI 0x80000 /* Enter PCL3GUI */
#define PCL_PJL_RESOLUTION 0x100000 /* Use PJL SET RESOLUTION */
/*
* End of "$Id$".
*/
+1051
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+40
Ver Arquivo
@@ -0,0 +1,40 @@
charset utf8
#
# This file defines the font mappings used for Unicode/UTF-8 text printing.
#
# Each line consists of:
#
# first last direction width normal bold italic bold-italic
#
# First and last are the first and last glyphs in the font mapping
# that correspond to that font; a maximum of 256 characters can be
# mapped within each group, with a maximum of 256 mappings (this is a
# PostScript limitation.) The glyph values are hexadecimal.
#
# Direction is the string "ltor" or "rtol", indicating left-to-right or
# right-to-left text.
#
# Width is the string "single" or "double"; double means that the glyphs
# are twice as wide as ASCII characters in the Monospace typeface.
#
# "Normal", "bold", "italic", and "bold-italic" are the typefaces to use
# for each presentation. If characters are only available in a single
# style then only one typeface should be listed, e.g.
#
# 1000 10ff ltor single Monospace
#
# Each font that is listed will be downloaded to the printer when used.
#
0000 00FF ltor single Monospace Monospace-Bold Monospace-Oblique Monospace-BoldOblique
0100 01FF ltor single Monospace Monospace-Bold Monospace-Oblique Monospace-BoldOblique
0200 02FF ltor single Monospace Monospace-Bold Monospace-Oblique Monospace-BoldOblique
0300 03FF ltor single Monospace Monospace-Bold Monospace-Oblique Monospace-BoldOblique
0400 04FF ltor single Monospace Monospace-Bold Monospace-Oblique Monospace-BoldOblique
1E00 1EFF ltor single Monospace Monospace-Bold Monospace-Oblique Monospace-BoldOblique
2000 20FF ltor single Monospace Monospace-Bold Monospace-Oblique Monospace-BoldOblique
2300 23FF ltor single Monospace Monospace-Bold Monospace-Oblique Monospace-BoldOblique
2400 24FF ltor single Monospace Monospace-Bold Monospace-Oblique Monospace-BoldOblique
2500 25FF ltor single Monospace Monospace-Bold Monospace-Oblique Monospace-BoldOblique
2600 26FF ltor single Monospace Monospace-Bold Monospace-Oblique Monospace-BoldOblique
+2
Ver Arquivo
@@ -21,6 +21,8 @@ Name[fr]=Gestionnaire d'impression
Comment[fr]=Interface Web de CUPS
Name[he]=נהל הדפסות
Comment[he]=ממשק דפדפן של CUPS
Name[hu]=Nyomtatás kezelése
Comment[hu]=A CUPS webes felülete
Name[id]=Manajemen Pencetakan
Comment[id]=Antarmuka Web CUPS
Name[it]=Gestione stampa
+107
Ver Arquivo
@@ -0,0 +1,107 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
<TITLE>Home - CUPS @CUPS_VERSION@@CUPS_REVISION@</TITLE>
<LINK REL="STYLESHEET" TYPE="text/css" HREF="/cups.css">
<LINK REL="SHORTCUT ICON" HREF="/images/cups-icon.png" TYPE="image/png">
</HEAD>
<BODY>
<TABLE CLASS="page" SUMMARY="{title}">
<TR><TD CLASS="body">
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
<TR HEIGHT="36">
<TD><A HREF="http://www.cups.org/" TARGET="_blank"><IMG
SRC="/images/left.gif" WIDTH="64" HEIGHT="36" BORDER="0" ALT=""></A></TD>
<TD CLASS="sel"><A HREF="/">&nbsp;&nbsp;Startseite&nbsp;&nbsp;</A></TD>
<TD CLASS="unsel"><A HREF="/admin">&nbsp;&nbsp;Verwaltung&nbsp;&nbsp;</A></TD>
<TD CLASS="unsel"><A HREF="/classes/">&nbsp;&nbsp;Klassen&nbsp;&nbsp;</A></TD>
<TD CLASS="unsel"><A HREF="/help/">&nbsp;&nbsp;Online-&nbsp;Hilfe&nbsp;&nbsp;</A></TD>
<TD CLASS="unsel"><A HREF="/jobs/">&nbsp;&nbsp;Auftr&auml;ge&nbsp;&nbsp;</A></TD>
<TD CLASS="unsel"><A HREF="/printers/">&nbsp;&nbsp;Drucker&nbsp;&nbsp;</A></TD>
<TD CLASS="unsel" WIDTH="100%"><FORM ACTION="/help/" METHOD="GET"><INPUT
TYPE="SEARCH" NAME="QUERY" SIZE="20" PLACEHOLDER="Search Help"
AUTOSAVE="org.cups.help" RESULTS="20"></FORM></TD>
<TD><IMG SRC="/images/right.gif" WIDTH="4" HEIGHT="36" ALT=""></TD>
</TR>
</TABLE>
<TABLE CLASS="indent" SUMMARY="">
<TR><TD STYLE="padding-right: 20px;">
<H1>Common UNIX Printing System @CUPS_VERSION@</H1>
<P>CUPS ist das auf Standards basierte, Opensource-Drucksystem, welches von
<A HREF="http://www.apple.com/">Apple Inc.</A> f&uuml;r Mac OS<SUP>&reg;</SUP> X und
andere UNIX<SUP>&reg;</SUP>-&auml;hnliche Betriebssysteme entwickelt wird.</P>
</TD>
<TD><A HREF="http://www.cups.org/"><IMG SRC="images/cups-icon.png" WIDTH="128"
HEIGHT="128" ALT="CUPS"></A></TD>
</TR>
</TABLE>
<TABLE CLASS="indent" SUMMARY="">
<TR><TD VALIGN="top" STYLE="border-right: dotted thin #cccccc; padding-right: 20px;">
<H2>CUPS f&uuml;r Benutzer</H2>
<P><A HREF="help/overview.html">CUPS.&Uuml;bersicht</A></P>
<P><A HREF="help/options.html">Kommandozeilendruck und Einstellungen</A></P>
<P><A HREF="help/whatsnew.html">Neues in CUPS 1.5</A></P>
<P><A HREF="http://www.cups.org/newsgroups.php?gcups.general">Benutzerforum</A></P>
</TD><TD VALIGN="top" STYLE="border-right: dotted thin #cccccc; padding-left: 20px; padding-right: 20px;">
<H2>CUPS f&uuml;r Administratoren</H2>
<P><A HREF="admin">Drucker und Klassen hinzuf&uuml;gen</A></P>
<P><A HREF="help/policies.html">Betriebsrichtlinien verwalten</A></P>
<P><A HREF="help/accounting.html">Basiswissen Druckabrechnung</A></P>
<P><A HREF="help/security.html">Sicherheit des Servers</A></P>
<P><A HREF="help/kerberos.html">Verwenden der Kerberos Authentifizierung</A></P>
<P><A HREF="help/network.html">Benutzen von Netzwerkdruckern</A></P>
<P><A HREF="help/ref-cupsd-conf.html">cupsd.conf Referenz</A></P>
<P><A HREF="http://www.cups.org/ppd.php">Druckertreiber finden</A></P>
</TD><TD VALIGN="top" STYLE="padding-left: 20px;">
<H2>CUPS f&uuml;r Entwickler</H2>
<P><A HREF="help/api-overview.html">Einf&uuml;hrung in die CUPS-Programmierung</A></P>
<P><A HREF="help/api-cups.html">CUPS-API</A></P>
<P><A HREF="help/api-filter.html">Filter- und Backend-Programmierung</A></P>
<P><A HREF="help/api-httpipp.html">HTTP- und IPP-APIs</A></P>
<P><A HREF="help/api-ppd.html">PPD-API</A></P>
<P><A HREF="help/api-raster.html">Raster-API</A></P>
<P><A HREF="help/ref-ppdcfile.html">PPD Compiler Driver Information File Reference</A></P>
<P><A HREF="http://www.cups.org/newsgroups.php?gcups.development">Entwicklerforum</A></P>
</TD></TR>
</TABLE>
</TD></TR>
<TR><TD>&nbsp;</TD></TR>
<TR><TD CLASS="trailer">CUPS und das CUPS Logo sind
eingetragene Warenzeichen der <A HREF="http://www.apple.com">Apple Inc.</A>
CUPS ist urheberrechtlich gesch&uuml;tzt 2007-2012 von Apple Inc, alle Rechte vorbehalten.</TD></TR>
</TABLE>
</BODY>
</HTML>
+107
Ver Arquivo
@@ -0,0 +1,107 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
<TITLE>Inicio - CUPS @CUPS_VERSION@@CUPS_REVISION@</TITLE>
<LINK REL="STYLESHEET" TYPE="text/css" HREF="/cups.css">
<LINK REL="SHORTCUT ICON" HREF="/images/cups-icon.png" TYPE="image/png">
</HEAD>
<BODY>
<TABLE CLASS="page" SUMMARY="{title}">
<TR><TD CLASS="body">
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
<TR HEIGHT="36">
<TD><A HREF="http://www.cups.org/" TARGET="_blank"><IMG
SRC="/images/left.gif" WIDTH="64" HEIGHT="36" BORDER="0" ALT=""></A></TD>
<TD CLASS="sel"><A HREF="/">&nbsp;&nbsp;Inicio&nbsp;&nbsp;</A></TD>
<TD CLASS="unsel"><A HREF="/admin">&nbsp;&nbsp;Administraci&oacute;n&nbsp;&nbsp;</A></TD>
<TD CLASS="unsel"><A HREF="/classes/">&nbsp;&nbsp;Clases&nbsp;&nbsp;</A></TD>
<TD CLASS="unsel"><A HREF="/help/">&nbsp;&nbsp;Ayuda&nbsp;en&nbsp;l&iacute;nea&nbsp;&nbsp;</A></TD>
<TD CLASS="unsel"><A HREF="/jobs/">&nbsp;&nbsp;Trabajos&nbsp;&nbsp;</A></TD>
<TD CLASS="unsel"><A HREF="/printers/">&nbsp;&nbsp;Impresoras&nbsp;&nbsp;</A></TD>
<TD CLASS="unsel" WIDTH="100%"><FORM ACTION="/help/" METHOD="GET"><INPUT
TYPE="SEARCH" NAME="QUERY" SIZE="20" PLACEHOLDER="Search Help"
AUTOSAVE="org.cups.help" RESULTS="20"></FORM></TD>
<TD><IMG SRC="/images/right.gif" WIDTH="4" HEIGHT="36" ALT=""></TD>
</TR>
</TABLE>
<TABLE CLASS="indent" SUMMARY="">
<TR><TD STYLE="padding-right: 20px;">
<H1>CUPS @CUPS_VERSION@</H1>
<P>CUPS es el sistema de impresi&oacute;n de c&oacute;digo abierto basado en
est&aacute;ndares desarrollado por <A HREF="http://www.apple.com/">Apple Inc.</A> para Mac
OS<SUP>&reg;</SUP> X y otros sistemas operativos tipo UNIX<SUP>&reg;</SUP>.</P>
</TD>
<TD><A HREF="http://www.cups.org/"><IMG SRC="images/cups-icon.png" WIDTH="128"
HEIGHT="128" ALT="CUPS"></A></TD>
</TR>
</TABLE>
<TABLE CLASS="indent" SUMMARY="">
<TR><TD VALIGN="top" STYLE="border-right: dotted thin #cccccc; padding-right: 20px;">
<H2>CUPS para usuarios</H2>
<P><A HREF="help/overview.html">Descripci&oacute;n de CUPS</A></P>
<P><A HREF="help/options.html">Impresi&oacute;n desde la l&iacute;nea de comandos y opciones</A></P>
<P><A HREF="help/whatsnew.html">Qu&eacute; hay de nuevo en CUPS 1.5</A></P>
<P><A HREF="http://www.cups.org/newsgroups.php?gcups.general">Foro de usuarios</A></P>
</TD><TD VALIGN="top" STYLE="border-right: dotted thin #cccccc; padding-left: 20px; padding-right: 20px;">
<H2>CUPS para administradores</H2>
<P><A HREF="admin">A&ntilde;adiendo impresoras y clases</A></P>
<P><A HREF="help/policies.html">Gestionando pol&iacute;ticas de funcionamiento</A></P>
<P><A HREF="help/accounting.html">Contabilidad b&aacute;sica de impresora</A></P>
<P><A HREF="help/security.html">Seguridad del servidor</A></P>
<P><A HREF="help/kerberos.html">Usando autentificaci&oacute;n Kerberos</A></P>
<P><A HREF="help/network.html">Usando impresoras de red</A></P>
<P><A HREF="help/ref-cupsd-conf.html">Referencia de cupsd.conf</A></P>
<P><A HREF="http://www.cups.org/ppd.php">Encontrar controladores de impresora</A></P>
</TD><TD VALIGN="top" STYLE="padding-left: 20px;">
<H2>CUPS para desarrolladores</H2>
<P><A HREF="help/api-overview.html">Introducci&oacute;n a la programación de CUPS</A></P>
<P><A HREF="help/api-cups.html">La API de CUPS</A></P>
<P><A HREF="help/api-filter.html">Programaci&oacute;n de filtros y programas de conexi&oacute;n</A></P>
<P><A HREF="help/api-httpipp.html">Las APIs HTTP e IPP</A></P>
<P><A HREF="help/api-ppd.html">La API PPD</A></P>
<P><A HREF="help/api-raster.html">La API Raster</A></P>
<P><A HREF="help/ref-ppdcfile.html">Referencia del archivo de informaci&oacute;n del compilador de controladores PPD</A></P>
<P><A HREF="http://www.cups.org/newsgroups.php?gcups.development">Foro de desarrollo</A></P>
</TD></TR>
</TABLE>
</TD></TR>
<TR><TD>&nbsp;</TD></TR>
<TR><TD CLASS="trailer">CUPS y el logo de CUPS son
marcas registradas de <A HREF="http://www.apple.com">Apple Inc.</A> Los derechos
de copia de CUPS 2007-2012 son de Apple Inc. Todos los derechos reservados.</TD></TR>
</TABLE>
</BODY>
</HTML>
+106
Ver Arquivo
@@ -0,0 +1,106 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
<TITLE>Hasiera - CUPS @CUPS_VERSION@@CUPS_REVISION@</TITLE>
<LINK REL="STYLESHEET" TYPE="text/css" HREF="/cups.css">
<LINK REL="SHORTCUT ICON" HREF="/images/cups-icon.png" TYPE="image/png">
</HEAD>
<BODY>
<TABLE CLASS="page" SUMMARY="{title}">
<TR><TD CLASS="body">
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
<TR HEIGHT="36">
<TD><A HREF="http://www.cups.org/" TARGET="_blank"><IMG
SRC="/images/left.gif" WIDTH="64" HEIGHT="36" BORDER="0" ALT=""></A></TD>
<TD CLASS="sel"><A HREF="/">&nbsp;&nbsp;Hasiera&nbsp;&nbsp;</A></TD>
<TD CLASS="unsel"><A HREF="/admin">&nbsp;&nbsp;Administrazioa&nbsp;&nbsp;</A></TD>
<TD CLASS="unsel"><A HREF="/classes/">&nbsp;&nbsp;Klaseak&nbsp;&nbsp;</A></TD>
<TD CLASS="unsel"><A HREF="/help/">&nbsp;&nbsp;Lineako&nbsp;laguntza&nbsp;&nbsp;</A></TD>
<TD CLASS="unsel"><A HREF="/jobs/">&nbsp;&nbsp;Lanak&nbsp;&nbsp;</A></TD>
<TD CLASS="unsel"><A HREF="/printers/">&nbsp;&nbsp;Inprimagailuak&nbsp;&nbsp;</A></TD>
<TD CLASS="unsel" WIDTH="100%"><FORM ACTION="/help/" METHOD="GET"><INPUT
TYPE="SEARCH" NAME="QUERY" SIZE="20" PLACEHOLDER="Bilatu laguntzan"
AUTOSAVE="org.cups.help" RESULTS="20"></FORM></TD>
<TD><IMG SRC="/images/right.gif" WIDTH="4" HEIGHT="36" ALT=""></TD>
</TR>
</TABLE>
<TABLE CLASS="indent" SUMMARY="">
<TR><TD STYLE="padding-right: 20px;">
<H1>CUPS @CUPS_VERSION@</H1>
<P><A HREF="http://www.apple.com/">Apple Inc.</A>-ek Mac OS<SUP>&reg;</SUP> X eta
beste UNIX<SUP>&reg;</SUP> bezalako sistema eragileentzako iturburu irekiko
inprimatzeko sisteman oinarrituta dago.</P>
</TD>
<TD><A HREF="http://www.cups.org/"><IMG SRC="images/cups-icon.png" WIDTH="128"
HEIGHT="128" ALT="CUPS"></A></TD>
</TR>
</TABLE>
<TABLE CLASS="indent" SUMMARY="">
<TR><TD VALIGN="top" STYLE="border-right: dotted thin #cccccc; padding-right: 20px;">
<H2>CUPS erabiltzaileentzako</H2>
<P><A HREF="help/overview.html">CUPSen gainbegiraketa</A></P>
<P><A HREF="help/options.html">Komando-lerroaren bidez inprimatzea eta aukerak</A></P>
<P><A HREF="help/whatsnew.html">CUPS 1.5 bertsioak dakartzan berrikuntza.</A></P>
<P><A HREF="http://www.cups.org/newsgroups.php?gcups.general">Erabiltzaileen foroa</A></P>
</TD><TD VALIGN="top" STYLE="border-right: dotted thin #cccccc; padding-left: 20px; padding-right: 20px;">
<H2>CUPS administratzaileentzako</H2>
<P><A HREF="admin">Inprimagailuak eta klaseak gehitzea</A></P>
<P><A HREF="help/policies.html">Kudeaketako eragiketen politikak</A></P>
<P><A HREF="help/accounting.html">Inprimagailuaren oinarrizko kontabilitatea</A></P>
<P><A HREF="help/security.html">Zerbitzariaren segurtasuna</A></P>
<P><A HREF="help/kerberos.html">Kerberos autentifikazioa erabiltzea</A></P>
<P><A HREF="help/network.html">Sareko inprimagailuak erabiltzea</A></P>
<P><A HREF="help/ref-cupsd-conf.html">cupsd.conf erreferentzia</A></P>
<P><A HREF="http://www.cups.org/ppd.php">Bilatu inprimagailuaren kontrolatzaileak</A></P>
</TD><TD VALIGN="top" STYLE="padding-left: 20px;">
<H2>CUPS garatzaileentzako</H2>
<P><A HREF="help/api-overview.html">Sarrera CUPSen programaziora</A></P>
<P><A HREF="help/api-cups.html">CUPSen APIa</A></P>
<P><A HREF="help/api-filter.html">Iragazkien eta atzeko planoan programatzeea</A></P>
<P><A HREF="help/api-httpipp.html">HTTP eta IPP APIak</A></P>
<P><A HREF="help/api-ppd.html">PPD APIa</A></P>
<P><A HREF="help/api-raster.html">Bilbearen APIa</A></P>
<P><A HREF="help/ref-ppdcfile.html">PPD kontrolatzaileen konpilatzailearen informazioaren fitxategiaren erreferentzia</A></P>
<P><A HREF="http://www.cups.org/newsgroups.php?gcups.development">Garatzaileen forua</A></P>
</TD></TR>
</TABLE>
</TD></TR>
<TR><TD>&nbsp;</TD></TR>
<TR><TD CLASS="trailer">CUPS eta CUPSen logotipoa <A HREF="http://www.apple.com">Apple Inc.</A> en marka erregistratuak dira.
CUPSen copyright-a 2007-2012 Apple Inc. Eskubide guztiak gordeta.</TD></TR>
</TABLE>
</BODY>
</HTML>
+107
Ver Arquivo
@@ -0,0 +1,107 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
<TITLE>Accueil - CUPS @CUPS_VERSION@@CUPS_REVISION@</TITLE>
<LINK REL="STYLESHEET" TYPE="text/css" HREF="/cups.css">
<LINK REL="SHORTCUT ICON" HREF="/images/cups-icon.png" TYPE="image/png">
</HEAD>
<BODY>
<TABLE CLASS="page" SUMMARY="{title}">
<TR><TD CLASS="body">
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
<TR HEIGHT="36">
<TD><A HREF="http://www.cups.org/" TARGET="_blank"><IMG
SRC="/images/left.gif" WIDTH="64" HEIGHT="36" BORDER="0" ALT=""></A></TD>
<TD CLASS="sel"><A HREF="/">&nbsp;&nbsp;Accueil&nbsp;&nbsp;</A></TD>
<TD CLASS="unsel"><A HREF="/admin">&nbsp;&nbsp;Administration&nbsp;&nbsp;</A></TD>
<TD CLASS="unsel"><A HREF="/classes/">&nbsp;&nbsp;Classes&nbsp;&nbsp;</A></TD>
<TD CLASS="unsel"><A HREF="/help/">&nbsp;&nbsp;Aide&nbsp;En&nbsp;Ligne&nbsp;&nbsp;</A></TD>
<TD CLASS="unsel"><A HREF="/jobs/">&nbsp;&nbsp;T&acirc;ches&nbsp;&nbsp;</A></TD>
<TD CLASS="unsel"><A HREF="/printers/">&nbsp;&nbsp;Imprimantes&nbsp;&nbsp;</A></TD>
<TD CLASS="unsel" WIDTH="100%"><FORM ACTION="/help/" METHOD="GET"><INPUT
TYPE="SEARCH" NAME="QUERY" SIZE="20" PLACEHOLDER="Search Help"
AUTOSAVE="org.cups.help" RESULTS="20"></FORM></TD>
<TD><IMG SRC="/images/right.gif" WIDTH="4" HEIGHT="36" ALT=""></TD>
</TR>
</TABLE>
<TABLE CLASS="indent" SUMMARY="">
<TR><TD STYLE="padding-right: 20px;">
<H1>CUPS @CUPS_VERSION@</H1>
<P>CUPS est le syst&egrave;me d'impression Open Source, bas&eacute; sur des standards, d&eacute;velopp&eacute; par
<A HREF="http://www.apple.com/">Apple Inc.</A> pour Mac OS<SUP>&reg;</SUP> X et
les autres OS UNIX<SUP>&reg;</SUP>-like.</P>
</TD>
<TD><A HREF="http://www.cups.org/"><IMG SRC="images/cups-icon.png" WIDTH="128"
HEIGHT="128" ALT="CUPS"></A></TD>
</TR>
</TABLE>
<TABLE CLASS="indent" SUMMARY="">
<TR><TD VALIGN="top" STYLE="border-right: dotted thin #cccccc; padding-right: 20px;">
<H2>CUPS pour les utilisateurs</H2>
<P><A HREF="help/overview.html">Pr&eacute;sentation de CUPS</A></P>
<P><A HREF="help/options.html">Impression en ligne de commande et options</A></P>
<P><A HREF="help/whatsnew.html">Quoi de neuf dans CUPS 1.5</A></P>
<P><A HREF="http://www.cups.org/newsgroups.php?gcups.general">Forum utilisateur</A></P>
</TD><TD VALIGN="top" STYLE="border-right: dotted thin #cccccc; padding-left: 20px; padding-right: 20px;">
<H2>CUPS pour les administrateurs</H2>
<P><A HREF="admin">Ajout d'imprimantes et de classes</A></P>
<P><A HREF="help/policies.html">G&eacute;rer les politiques</A></P>
<P><A HREF="help/accounting.html">Printer Accounting Basics</A></P>
<P><A HREF="help/security.html">S&eacute;curit&eacute; du serveur</A></P>
<P><A HREF="help/kerberos.html">Utiliser l'authentification Kerberos</A></P>
<P><A HREF="help/network.html">Utiliser des imprimantes r&eacute;seaux</A></P>
<P><A HREF="help/ref-cupsd-conf.html">R&eacute;f&eacute;rences sur cupsd.conf</A></P>
<P><A HREF="http://www.cups.org/ppd.php">Trouver des pilotes d'imprimantes</A></P>
</TD><TD VALIGN="top" STYLE="padding-left: 20px;">
<H2>CUPS pour les d&eacute;veloppeurs</H2>
<P><A HREF="help/api-overview.html">Introduction &agrave; la programmation CUPS</A></P>
<P><A HREF="help/api-cups.html">L'API CUPS</A></P>
<P><A HREF="help/api-filter.html">Programmation de filtres et de backends</A></P>
<P><A HREF="help/api-httpipp.html">Les API HTTP et IPP</A></P>
<P><A HREF="help/api-ppd.html">L'API PPD</A></P>
<P><A HREF="help/api-raster.html">L'API Raster</A></P>
<P><A HREF="help/ref-ppdcfile.html">PPD Compiler Driver Information File Reference</A></P>
<P><A HREF="http://www.cups.org/newsgroups.php?gcups.development">Forum d&eacute;veloppeurs</A></P>
</TD></TR>
</TABLE>
</TD></TR>
<TR><TD>&nbsp;</TD></TR>
<TR><TD CLASS="trailer">CUPS et le logo CUPS sont des marques d&eacute;pos&eacute;es de
<A HREF="http://www.apple.com">Apple Inc.</A> CUPS est sous copyright 2007-2012 Apple
Inc. Tous droits r&eacute;serv&eacute;s.</TD></TR>
</TABLE>
</BODY>
</HTML>
+175 -1156
Ver Arquivo
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+4 -8
Ver Arquivo
@@ -2,7 +2,7 @@
<html>
<!-- SECTION: Programming -->
<head>
<title>PPD API (DEPRECATED) </title>
<title>PPD API </title>
<meta name="keywords" content="Programming">
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<meta name="creator" content="Mini-XML v2.7">
@@ -341,7 +341,7 @@ div.contents ul.subcontents li {
<body>
<div class='body'>
<!--
"$Id: api-ppd.html 10103 2011-11-03 20:44:57Z mike $"
"$Id: api-ppd.html 9772 2011-05-12 05:46:30Z mike $"
PPD API header for CUPS.
@@ -354,9 +354,7 @@ div.contents ul.subcontents li {
file is missing or damaged, see the license at "http://www.cups.org/".
-->
<h1 class='title'>PPD API (DEPRECATED)</h1>
<blockquote>The PPD API is deprecated starting in CUPS 1.6. Please use the new Job Ticket APIs in the <a href="api-cups.html">CUPS API</a> documentation. These functions will be removed in a future release of CUPS.</blockquote>
<h1 class='title'>PPD API</h1>
<div class='summary'><table summary='General Information'>
<thead>
@@ -486,7 +484,7 @@ conflicts.">ppdMarkOption</a></li>
</ul></li>
</ul>
<!--
"$Id: api-ppd.html 10103 2011-11-03 20:44:57Z mike $"
"$Id: api-ppd.html 9772 2011-05-12 05:46:30Z mike $"
PPD API introduction for CUPS.
@@ -502,8 +500,6 @@ conflicts.">ppdMarkOption</a></li>
<h2 class='title'><a name='OVERVIEW'>Overview</a></h2>
<blockquote>The PPD API is deprecated starting in CUPS 1.6. Please use the new Job Ticket APIs in the <a href="api-cups.html">CUPS API</a> documentation. These functions will be removed in a future release of CUPS.</blockquote>
<p>The CUPS PPD API provides read-only access the data in PostScript Printer
Description ("PPD") files which are used for all printers with a driver. With
it you can obtain the data necessary to display printer options to users, mark
-144
Ver Arquivo
@@ -1,144 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- SECTION: Man Pages -->
<head>
<link rel="stylesheet" type="text/css" href="../cups-printable.css">
<title>ipptool(1)</title>
</head>
<body>
<h1 class="title">ipptool(1)</h1>
<h2 class="title"><a name="NAME">Name</a></h2>
ipptool - perform internet printing protocol requests
<h2 class="title"><a name="SYNOPSIS">Synopsis</a></h2>
<b>ipptool
</b>[ -4 ] [ -6 ] [ -C ] [ -E ] [ -I ] [ -L ] [ -S ] [ -T
<i>seconds
</i>] [ -V
<i>version
</i>] [ -X ] [ -c ] [ -d
<i>name=value
</i>] [ -f
<i>filename
</i>] [ -i
<i>seconds
</i>] [ -n
<i>repeat-count
</i>] [ -q ] [ -t ] [ -v ]
<i>URI
</i><i>filename
</i>[
<i>... filenameN
</i>]
<h2 class="title"><a name="DESCRIPTION">Description</a></h2>
<i>ipptool</i> sends IPP requests to the specified URI and tests and/or displays the results. Each named file defines one or more requests, including the expected response status, attributes, and values. Output is either a plain text, formatted text, CSV, or XML report on the standard output, with a non-zero exit status indicating that one or more tests have failed. The file format is described in <a href='man-ipptoolfile.html?TOPIC=Man+Pages'>ipptoolfile(5)</a>.
<h2 class="title"><a name="OPTIONS">Options</a></h2>
The following options are recognized by <i>ipptool</i>:
<dl>
<dt>-4
</dt>
<dd>Specifies that <i>ipptool</i> must connect to the printer or server using IPv4.
</dd>
<dt>-6
</dt>
<dd>Specifies that <i>ipptool</i> must connect to the printer or server using IPv6.
</dd>
<dt>-C
</dt>
<dd>Specifies that requests should be sent using the HTTP/1.1 "Transfer-Encoding: chunked" header, which is required for conformance by all versions of IPP. The default is to use "Transfer-Encoding: chunked" for requests with attached files and "Content-Length:" for requests without attached files.
</dd>
<dt>-E
</dt>
<dd>Forces TLS encryption when connecting to the server using the HTTP "Upgrade" header.
</dd>
<dt>-I
</dt>
<dd>Specifies that <i>ipptool</i> will continue past errors.
</dd>
<dt>-L
</dt>
<dd>Specifies that requests should be sent using the HTTP/1.0 "Content-Length:" header, which is required for conformance by all versions of IPP. The default is to use "Transfer-Encoding: chunked" for requests with attached files and "Content-Length:" for requests without attached files.
</dd>
<dt>-S
</dt>
<dd>Forces (dedicated) SSL encryption when connecting to the server.
</dd>
<dt>-T seconds
</dt>
<dd>Specifies a timeout for IPP requests in seconds.
</dd>
<dt>-V version
</dt>
<dd>Specifies the default IPP version to use: 1.0, 1.1, 2.0, 2.1, or 2.2. If not specified, version 1.1 is used.
</dd>
<dt>-X
</dt>
<dd>Specifies that XML (Apple plist) output is desired instead of the plain text report. This option is incompatible with the <i>-i</i> (interval) and <i>-n</i> (repeat-count) options.
</dd>
<dt>-c
</dt>
<dd>Specifies that CSV (comma-separated values) output is desired instead of the plain text output.
</dd>
<dt>-d name=value
</dt>
<dd>Defines the named variable.
</dd>
<dt>-f filename
</dt>
<dd>Defines the default request filename for tests.
</dd>
<dt>-i seconds
</dt>
<dd>Specifies that the (last) file should be repeated at the specified interval. This option is incompatible with the <i>-X</i> (XML plist output) option.
</dd>
<dt>-l
</dt>
<dd>Specifies that plain text output is desired.
</dd>
<dt>-n repeat-count
</dt>
<dd>Specifies that the (last) file should be repeated the specified number of times. This option is incompatible with the <i>-X</i> (XML plist output) option.
</dd>
<dt>-t
</dt>
<dd>Specifies that CUPS test report output is desired instead of the plain text output.
</dd>
<dt>-v
</dt>
<dd>Specifies that all request and response attributes should be output in CUPS test mode (<i>-t</i>). This is the default for XML output.
</dd>
</dl>
<h2 class="title"><a name="COMPATIBILITY">Compatibility</a></h2>
The <i>ipptool</i> program is unique to CUPS.
<h2 class="title"><a name="EXAMPLES">Examples</a></h2>
Get a list of completed jobs for "myprinter":
<pre>
ipptool ipp://localhost/printers/myprinter get-completed-jobs.test
</pre>
<p>Send email notifications to "user@example.com" when "myprinter" changes:
<pre>
ipptool -d recipient=mailto:user@example.com
ipp://localhost/printers/myprinter create-printer-subscription.test
</pre>
<h2 class="title"><a name="STANDARD_FILES">Standard Files</a></h2>
The following standard files are available:
<pre>
create-printer-subscription.test
get-completed-jobs.test
get-jobs.test
ipp-1.1.test
ipp-2.0.test
ipp-2.1.test
testfile.jpg
testfile.pdf
testfile.ps
testfile.txt
</pre>
<h2 class="title"><a name="SEE_ALSO">See Also</a></h2>
<a href='man-ipptoolfile.html?TOPIC=Man+Pages'>ipptoolfile(5)</a>,
<br>
<a href='http://localhost:631/help'>http://localhost:631/help</a>
<h2 class="title"><a name="COPYRIGHT">Copyright</a></h2>
Copyright 2007-2010 by Apple Inc.
</body>
</html>
-607
Ver Arquivo
@@ -1,607 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- SECTION: Man Pages -->
<head>
<link rel="stylesheet" type="text/css" href="../cups-printable.css">
<title>ipptoolfile(5)</title>
</head>
<body>
<h1 class="title">ipptoolfile(5)</h1>
<h2 class="title"><a name="NAME">Name</a></h2>
ipptoolfile - ipptool file format
<h2 class="title"><a name="DESCRIPTION">Description</a></h2>
The <a href='man-ipptool.html?TOPIC=Man+Pages'>ipptool(1)</a> program accepts free-form plain text files that describe one or more IPP requests. Comments start with the "#" character and continue to the end of the line. Each request is enclosed by curley braces, for example:
<pre>
# This is a comment
{
# The name of the test
NAME "Print PostScript Job"
# The request to send
OPERATION Print-Job
GROUP operation-attributes-tag
ATTR charset attributes-charset utf-8
ATTR language attributes-natural-language en
ATTR uri printer-uri $uri
ATTR name requesting-user-name $user
FILE testfile.ps
# The response to expect
STATUS successful-ok
EXPECT attributes-charset OF-TYPE charset
EXPECT attributes-natural-language OF-TYPE naturalLanguage
EXPECT job-id OF-TYPE integer
EXPECT job-uri OF-TYPE uri
}
{
# The name of the test
NAME "Get Attributes of PostScript Job"
# The request to send
OPERATION Get-Job-Attributes
GROUP operation-attributes-tag
ATTR charset attributes-charset utf-8
ATTR language attributes-natural-language en
ATTR uri printer-uri $uri
ATTR integer job-id $job-id
ATTR name requesting-user-name $user
# The response to expect
STATUS successful-ok
EXPECT attributes-charset OF-TYPE charset
EXPECT attributes-natural-language OF-TYPE naturalLanguage
EXPECT job-id OF-TYPE integer
EXPECT job-uri OF-TYPE uri
EXPECT job-state OF-TYPE enum
EXPECT job-originating-user-name OF-TYPE name WITH-VALUE "$user"
}
</pre>
<h2 class="title"><a name="TOP-LEVEL_DIRECTIVES">Top-level Directives</a></h2>
The following directives can be used outside of a test:
<dl>
<dt>{ test }
</dt>
<dd>Defines a test.
</dd>
<dt>DEFINE variable-name value
</dt>
<dd>Defines the named variable to the given value. This is equivalent to specifying
"-d variable-name=value" on the <i>ipptool</i> command-line.
</dd>
<dt>DEFINE-DEFAULT variable-name value
</dt>
<dd>Defines the named variable to the given value if it does not already have a
value.
</dd>
<dt>IGNORE-ERRORS yes
</dt>
<dd></dd>
<dt>IGNORE-ERRORS no
</dt>
<dd>Specifies whether, by default, <i>ipptool</i> will ignore errors and continue with
subsequent tests.
</dd>
<dt>INCLUDE "filename"
</dt>
<dd></dd>
<dt>INCLUDE &lt;filename>
</dt>
<dd>Includes another test file. The first form includes a file relative to the
current test file, while the second form includes a file from the <i>ipptool</i>
include directory.
</dd>
<dt>INCLUDE-IF-DEFINED name "filename"
</dt>
<dd></dd>
<dt>INCLUDE-IF-DEFINED name &lt;filename>
</dt>
<dd>Includes another test file if the named variable is defined. The first form
includes a file relative to the current test file, while the second form
includes a file from the <i>ipptool</i> include directory.
</dd>
<dt>INCLUDE-IF-NOT-DEFINED name "filename"
</dt>
<dd></dd>
<dt>INCLUDE-IF-NOT-DEFINED name &lt;filename>
</dt>
<dd>Includes another test file if the named variable is not defined. The first form
includes a file relative to the current test file, while the second form
includes a file from the <i>ipptool</i> include directory.
</dd>
<dt>SKIP-IF-DEFINED variable-name
</dt>
<dd></dd>
<dt>SKIP-IF-NOT-DEFINED variable-name
</dt>
<dd>Specifies that the remainder of the test file should be skipped when the
variable is or is not defined.
</dd>
<dt>TRANSFER auto
</dt>
<dd>Specifies that tests will, by default, use "Transfer-Encoding: chunked" for
requests with attached files and "Content-Length:" for requests without attached
files.
</dd>
<dt>TRANSFER chunked
</dt>
<dd>Specifies that tests will, by default, use the HTTP/1.1 "Transfer-Encoding:
chunked" header. This is the default and is equivalent to specifying "-c" on the
<i>ipptool</i> command-line. Support for chunked requests is required for
conformance with all versions of IPP.
</dd>
<dt>TRANSFER length
</dt>
<dd>Specifies that tests will, by default, use the HTTP/1.0 "Content-Length:"
header. This is equivalent to specifying "-l" on the <i>ipptool</i> command-line.
Support for content length requests is required for conformance with all
versions of IPP.
</dd>
<dt>VERSION 1.0
</dt>
<dd></dd>
<dt>VERSION 1.1
</dt>
<dd></dd>
<dt>VERSION 2.0
</dt>
<dd></dd>
<dt>VERSION 2.1
</dt>
<dd></dd>
<dt>VERSION 2.2
</dt>
<dd>Specifies the default IPP version number to use for the tests that follow.
</dd>
</dl>
<h2 class="title"><a name="TEST_DIRECTIVES">Test Directives</a></h2>
The following directives are understood in a test:
<dl>
<dt>ATTR tag attribute-name value(s)
</dt>
<dd>Adds an attribute to the test request. Values are separated by the comma (",")
character - escape commas using the "" character.
</dd>
<dt>ATTR collection attribute-name { MEMBER tag member-name value(s) ... } [ ... { ... } ]
</dt>
<dd>Adds a collection attribute to the test request. Member attributes follow the
same syntax as regular attributes and can themselves be nested collections.
Multiple collection values can be supplied as needed.
</dd>
<dt>DELAY seconds
</dt>
<dd>Specifies a delay before this test will be run.
</dd>
<dt>DISPLAY attribute-name
</dt>
<dd>Specifies that value of the named attribute should be output as part of the
test report.
</dd>
<dt>EXPECT attribute-name [ predicate(s) ]
</dt>
<dd></dd>
<dt>EXPECT ?attribute-name predicate(s)
</dt>
<dd></dd>
<dt>EXPECT !attribute-name
</dt>
<dd>Specifies that the response must/may/must not include the named attribute.
Additional requirements can be added as predicates - see the "EXPECT PREDICATES"
section for more information on predicates.
</dd>
<dt>FILE filename
</dt>
<dd>Specifies a file to include at the end of the request. This is typically used
when sending a test print file.
</dd>
<dt>GROUP tag
</dt>
<dd>Specifies the group tag for subsequent attributes in the request.
</dd>
<dt>IGNORE-ERRORS yes
</dt>
<dd></dd>
<dt>IGNORE-ERRORS no
</dt>
<dd>Specifies whether <i>ipptool</i> will ignore errors and continue with subsequent
tests.
</dd>
<dt>NAME "literal string"
</dt>
<dd>Specifies the human-readable name of the test.
</dd>
<dt>OPERATION operation-code
</dt>
<dd>Specifies the operation to be performed.
</dd>
<dt>REQUEST-ID number
</dt>
<dd></dd>
<dt>REQUEST-ID random
</dt>
<dd>Specifies the request-id value to use in the request, either an integer or the
word "random" to use a randomly generated value (the default).
</dd>
<dt>RESOURCE path
</dt>
<dd>Specifies an alternate resource path that is used for the HTTP POST request.
The default is the resource from the URI provided to the <i>ipptool</i> program.
</dd>
<dt>SKIP-IF-DEFINED variable-name
</dt>
<dd></dd>
<dt>SKIP-IF-NOT-DEFINED variable-name
</dt>
<dd>Specifies that the current test should be skipped when the variable is or is not
defined.
</dd>
<dt>SKIP-PREVIOUS-ERROR yes
</dt>
<dd></dd>
<dt>SKIP-PREVIOUS-ERROR no
</dt>
<dd>Specifies whether <i>ipptool</i> will skip the current test if the previous test
resulted in an error/failure.
</dd>
<dt>STATUS status-code [ predicate ]
</dt>
<dd>Specifies an expected response status-code value. Additional requirements can be
added as predicates - see the "STATUS PREDICATES" section for more information
on predicates.
</dd>
<dt>TRANSFER auto
</dt>
<dd>Specifies that this test will use "Transfer-Encoding: chunked" if it has an
attached file or "Content-Length:" otherwise.
</dd>
<dt>TRANSFER chunked
</dt>
<dd>Specifies that this test will use the HTTP/1.1 "Transfer-Encoding: chunked"
header.
</dd>
<dt>TRANSFER length
</dt>
<dd>Specifies that this test will use the HTTP/1.0 "Content-Length:" header.
</dd>
<dt>VERSION 1.0
</dt>
<dd></dd>
<dt>VERSION 1.1
</dt>
<dd></dd>
<dt>VERSION 2.0
</dt>
<dd></dd>
<dt>VERSION 2.1
</dt>
<dd></dd>
<dt>VERSION 2.2
</dt>
<dd>Specifies the IPP version number to use for this test.
</dd>
</dl>
<h2 class="title"><a name="EXPECT_PREDICATES">Expect Predicates</a></h2>
The following predicates are understood following the EXPECT test directive:
<dl>
<dt>COUNT number
</dt>
<dd>Requires the EXPECT attribute to have the specified number of values.
</dd>
<dt>DEFINE-MATCH variable-name
</dt>
<dd>Defines the variable to "1" when the EXPECT condition matches. A side-effect of
this predicate is that this EXPECT will never fail a test.
</dd>
<dt>DEFINE-NO-MATCH variable-name
</dt>
<dd>Defines the variable to "1" when the EXPECT condition does not match. A side-
effect of this predicate is that this EXPECT will never fail a test.
</dd>
<dt>DEFINE-VALUE variable-name
</dt>
<dd>Defines the variable to the value of the attribute when the EXPECT condition
matches. A side-effect of this predicate is that this EXPECT will never fail a test.
</dd>
<dt>IF-DEFINED variable-name
</dt>
<dd>Makes the EXPECT conditions apply only if the specified variable is defined.
</dd>
<dt>IF-NOT-DEFINED variable-name
</dt>
<dd>Makes the EXPECT conditions apply only if the specified variable is not
defined.
</dd>
<dt>IN-GROUP tag
</dt>
<dd>Requires the EXPECT attribute to be in the specified group tag.
</dd>
<dt>OF-TYPE tag[,tag,...]
</dt>
<dd>Requires the EXPECT attribute to use the specified value tag(s).
</dd>
<dt>REPEAT-MATCH
</dt>
<dd></dd>
<dt>REPEAT-NO-MATCH
</dt>
<dd>Specifies that the current test should be repeated when the EXPECT condition
matches or does not match.
</dd>
<dt>SAME-COUNT-AS attribute-name
</dt>
<dd>Requires the EXPECT attribute to have the same number of values as the specified
parallel attribute.
</dd>
<dt>WITH-VALUE "literal string"
</dt>
<dd>Requires at least one value of the EXPECT attribute to match the literal string.
Comparisons are case-sensitive.
</dd>
<dt>WITH-VALUE "/regular expression/"
</dt>
<dd>Requires that all values of the EXPECT attribute match the regular expression,
which must conform to the POSIX regular expression syntax.
Comparisons are case-sensitive.
</dd>
</dl>
<h2 class="title"><a name="STATUS_PREDICATES">Status Predicates</a></h2>
The following predicates are understood following the STATUS test directive:
<dl>
<dt>IF-DEFINED variable-name
</dt>
<dd>Makes the STATUS apply only if the specified variable is defined.
</dd>
<dt>IF-NOT-DEFINED variable-name
</dt>
<dd>Makes the STATUS apply only if the specified variable is not defined.
</dd>
<dt>REPEAT-MATCH
</dt>
<dd></dd>
<dt>REPEAT-NO-MATCH
</dt>
<dd>Specifies that the current test should be repeated when the response status-code
matches or does not match the value specified by the STATUS directive.
</dd>
</dl>
<h2 class="title"><a name="OPERATION_CODES">Operation Codes</a></h2>
Operation codes correspond to the hexadecimal numbers (0xHHHH) and names from
RFC 2911 and other IPP extension specifications. Here is a complete list:
<pre>
Activate-Printer
CUPS-Accept-Jobs
CUPS-Add-Modify-Class
CUPS-Add-Modify-Printer
CUPS-Authenticate-Job
CUPS-Delete-Class
CUPS-Delete-Printer
CUPS-Get-Classes
CUPS-Get-Default
CUPS-Get-Devices
CUPS-Get-Document
CUPS-Get-PPD
CUPS-Get-PPDs
CUPS-Get-Printers
CUPS-Move-Job
CUPS-Reject-Jobs
CUPS-Set-Default
Cancel-Current-Job
Cancel-Job
Cancel-Jobs
Cancel-My-Jobs
Cancel-Subscription
Close-Job
Create-Job
Create-Job-Subscription
Create-Printer-Subscription
Deactivate-Printer
Disable-Printer
Enable-Printer
Get-Job-Attributes
Get-Jobs
Get-Notifications
Get-Printer-Attributes
Get-Printer-Support-Files
Get-Printer-Supported-Values
Get-Subscription-Attributes
Get-Subscriptions
Hold-Job
Hold-New-Jobs
Pause-Printer
Pause-Printer-After-Current-Job
Print-Job
Print-URI
Promote-Job
Purge-Jobs
Release-Held-New-Jobs
Release-Job
Renew-Subscription
Reprocess-Job
Restart-Job
Restart-Printer
Resubmit-Job
Resume-Job
Resume-Printer
Schedule-Job-After
Send-Document
Send-Notifications
Send-URI
Set-Job-Attributes
Set-Printer-Attributes
Shutdown-Printer
Startup-Printer
Suspend-Current-Job
Validate-Job
</pre>
<h2 class="title"><a name="STATUS_CODES">Status Codes</a></h2>
Status codes correspond to the hexadecimal numbers (0xHHHH) and names from RFC
2911 and other IPP extension specifications. Here is a complete list:
<pre>
client-error-attributes-not-settable
client-error-attributes-or-values-not-supported
client-error-bad-request
client-error-charset-not-supported
client-error-compression-error
client-error-compression-not-supported
client-error-conflicting-attributes
client-error-document-access-error
client-error-document-format-error
client-error-document-format-not-supported
client-error-forbidden
client-error-gone
client-error-ignored-all-notifications
client-error-ignored-all-subscriptions
client-error-not-authenticated
client-error-not-authorized
client-error-not-found
client-error-not-possible
client-error-print-support-file-not-found
client-error-request-entity-too-large
client-error-request-value-too-long
client-error-timeout
client-error-too-many-subscriptions
client-error-uri-scheme-not-supported
cups-see-other
redirection-other-site
server-error-busy
server-error-device-error
server-error-internal-error
server-error-job-canceled
server-error-multiple-document-jobs-not-supported
server-error-not-accepting-jobs
server-error-operation-not-supported
server-error-printer-is-deactivated
server-error-service-unavailable
server-error-temporary-error
server-error-version-not-supported
successful-ok
successful-ok-but-cancel-subscription
successful-ok-conflicting-attributes
successful-ok-events-complete
successful-ok-ignored-notifications
successful-ok-ignored-or-substituted-attributes
successful-ok-ignored-subscriptions
successful-ok-too-many-events
</pre>
<h2 class="title"><a name="TAGS">Tags</a></h2>
Value and group tags correspond to the names from RFC 2911 and other IPP
extension specifications. Here are the group tags:
<pre>
event-notification-attributes-tag
job-attributes-tag
operation-attributes-tag
printer-attributes-tag
subscription-attributes-tag
unsupported-attributes-tag
</pre>
<p>Here are the value tags:
<pre>
admin-define
boolean
charset
collection
dateTime
default
delete-attribute
enum
integer
keyword
mimeMediaType
nameWithLanguage
nameWithoutLanguage
naturalLanguage
no-value
not-settable
octetString
rangeOfInteger
resolution
textWithLanguage
textWithoutLanguage
unknown
unsupported
uri
uriScheme
</pre>
<h2 class="title"><a name="VARIABLES">Variables</a></h2>
The <i>ipptool</i> program maintains a list of variables that can be used in any
literal string or attribute value by specifying "$variable-name". Aside from
variables defined using the "-d" option or "DEFINE" directive, the following
pre-defined variables are available:
<dl>
<dt>$$
</dt>
<dd>Inserts a single "$" character.
</dd>
<dt>$ENV[name]
</dt>
<dd>Inserts the value of the named environment variable, or an empty string if the
environment variable is not defined.
</dd>
<dt>$filename
</dt>
<dd>Inserts the filename provided to <i>ipptool</i> with the "-f" option.
</dd>
<dt>$hostname
</dt>
<dd>Inserts the hostname from the URI provided to <i>ipptool</i>.
</dd>
<dt>$job-id
</dt>
<dd>Inserts the last job-id value returned in a test response or 0 if no job-id has
been seen.
</dd>
<dt>$job-uri
</dt>
<dd>Inserts the last job-uri value returned in a test response or an empty string if
no job-uri has been seen.
</dd>
<dt>$scheme
</dt>
<dd>Inserts the scheme from the URI provided to <i>ipptool</i>.
</dd>
<dt>$notify-subscription-id
</dt>
<dd>Inserts the last notify-subscription-id value returnd in a test response or 0 if
no notify-subscription-id has been seen.
</dd>
<dt>$port
</dt>
<dd>Inserts the port number from the URI provided to <i>ipptool</i>.
</dd>
<dt>$resource
</dt>
<dd>Inserts the resource path from the URI provided to <i>ipptool</i>.
</dd>
<dt>$uri
</dt>
<dd>Inserts the URI provided to <i>ipptool</i>.
</dd>
<dt>$user
</dt>
<dd>Inserts the current user's login name.
</dd>
<dt>$username
</dt>
<dd>Inserts the username from the URI provided to <i>ipptool</i>, if any.
</dd>
</dl>
<h2 class="title"><a name="SEE_ALSO">See Also</a></h2>
<a href='man-ipptool.html?TOPIC=Man+Pages'>ipptool(1)</a>,
<br>
<a href='http://localhost:631/help'>http://localhost:631/help</a>
<h2 class="title"><a name="COPYRIGHT">Copyright</a></h2>
Copyright 2007-2011 by Apple Inc.
</body>
</html>

Alguns arquivos não foram exibidos porque demasiados arquivos foram alterados neste diff Mostrar Mais