CHANGES IN CUPS V1.5.3
+ - Compiling without threading support failed (STR #4060)
- Fixed compile problem with old versions of OpenSSL (STR #4036)
- The network backends did not check SNMP supply levels regularly
(STR #4040)
for printers (STR #3985)
- The IPP backend no longer re-queues print jobs that are too large for
the printer/server (STR #3977)
- - The RPM spec file did not work (STR #4021)
+ - The RPM spec file did not work (STR #4021, STR #4057)
- Encryption did not work when the server name ended with "."
(STR #4011)
- The multi-purpose tray is now mapped to the IPP "by-pass-tray"
-CHANGES.txt - 1.6b1 - 2012-03-16
+CHANGES.txt - 1.6b1 - 2012-04-17
--------------------------------
CHANGES IN CUPS V1.6b1
- Documentation updates (STR #3927, STR #3980, STR #4010)
+ - CUPS now supports Bonjour using Avahi (STR #3066)
- The PreserveJobFiles and PreserveJobHistory directives now support
specification of a time interval (STR #3143)
- PPD files can now be archived in (gzip'd) tar files to further reduce
-INSTALL - CUPS v1.5.0 - 2011-07-25
+INSTALL - CUPS v1.6.0 - 2012-04-23
----------------------------------
This file describes how to compile and install CUPS from source code. For more
be found in "CHANGES.txt".
**** IF YOU HAVE A NON-POSTSCRIPT PRINTER AND ARE NOT ****
-**** RUNNING MAC OS X, YOU WILL ALSO NEED TO INSTALL GPL ****
+**** RUNNING OS X, YOU WILL ALSO NEED TO INSTALL GPL ****
**** GHOSTSCRIPT WITH THE "cups" DRIVER AFTER YOU INSTALL ****
**** CUPS. ****
PostScript filter needed by non-PostScript printers. You *must* download
GPL Ghostscript separately from the CUPS web site if you want to print
PostScript files to non-PostScript printers on operating systems other than
- Mac OS X.
+ OS X.
COMPILING THE SUBVERSION REPOSITORY CODE
CUPS License Agreement
- Copyright 2007-2011 by Apple Inc.
+ Copyright 2007-2012 by Apple Inc.
1 Infinite Loop
Cupertino, CA 95014 USA
source code of the Apple OS-Developed Software.
b. An Apple Operating System means any operating system
- software developed and/or marketed by Apple Computer,
- Inc., including but not limited to all existing
- releases and versions of Apple's Darwin, Mac OS X,
- and Mac OS X Server products and all follow-on
- releases and future versions thereof.
+ software developed and/or marketed by Apple Inc.,
+ including but not limited to all existing releases and
+ versions of Apple's Darwin, OS X, and OS X Server
+ products and all follow-on releases and future
+ versions thereof.
c. This exception is only available for Apple
OS-Developed Software and does not apply to software
-README - CUPS v1.5.0 - 2011-07-25
+README - CUPS v1.6.0 - 2012-04-23
----------------------------------
Looking for compile instructions? Read the file "INSTALL.txt"
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.
-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
+ipp.o: ipp.c backend-private.h ../cups/cups-private.h \
+ ../cups/string-private.h ../config.h ../cups/debug-private.h \
+ ../cups/versioning.h ../cups/ipp-private.h ../cups/ipp.h \
+ ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.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
+ ../cups/cups-private.h ../cups/string-private.h \
+ ../cups/debug-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.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/string-private.h ../config.h ../cups/debug-private.h \
+ ../cups/versioning.h ../cups/ipp-private.h ../cups/ipp.h \
+ ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.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/string-private.h ../config.h ../cups/debug-private.h \
+ ../cups/versioning.h ../cups/ipp-private.h ../cups/ipp.h \
+ ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.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
+ ../cups/cups-private.h ../cups/string-private.h \
+ ../cups/debug-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.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
+ backend-private.h ../cups/cups-private.h ../cups/debug-private.h \
+ ../cups/versioning.h ../cups/ipp-private.h ../cups/ipp.h \
+ ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.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
+ ../cups/versioning.h ../cups/ipp-private.h ../cups/ipp.h \
+ ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.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/string-private.h ../config.h ../cups/debug-private.h \
+ ../cups/versioning.h ../cups/ipp-private.h ../cups/ipp.h \
+ ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
+ ../cups/snmp-private.h ../cups/backend.h ../cups/sidechannel.h \
+ usb-darwin.c ../cups/file-private.h
# Object files...
#
+# RBACKENDS are installed mode 0700 so cupsd will run them as root...
+#
+# UBACKENDS are installed mode 0755 so cupsd will run them as an unprivileged
+# user...
+#
+# See http://www.cups.org/documentation.php/api-filter.html for more info...
RBACKENDS = \
ipp \
lpd \
*
* Contents:
*
- * main() - Browse for printers.
- * browse_callback() - Browse devices.
+ * main() - Browse for printers.
+ * browse_callback() - Browse devices.
* browse_local_callback() - Browse local devices.
- * compare_devices() - Compare two devices.
- * exec_backend() - Execute the backend that corresponds to the
- * resolved service name.
- * get_device() - Create or update a device.
- * query_callback() - Process query data.
- * sigterm_handler() - Handle termination signals...
- * unquote() - Unquote a name string.
+ * client_callback() - Avahi client callback function.
+ * compare_devices() - Compare two devices.
+ * exec_backend() - Execute the backend that corresponds to the
+ * resolved service name.
+ * device_type() - Get DNS-SD type enumeration from string.
+ * get_device() - Create or update a device.
+ * query_callback() - Process query data.
+ * find_device() - Find a device from its name and domain.
+ * sigterm_handler() - Handle termination signals.
+ * unquote() - Unquote a name string.
*/
/*
#include "backend-private.h"
#include <cups/array.h>
-#include <dns_sd.h>
+#ifdef HAVE_DNSSD
+# include <dns_sd.h>
+#endif /* HAVE_DNSSD */
+#ifdef HAVE_AVAHI
+# include <avahi-client/client.h>
+# include <avahi-client/lookup.h>
+# include <avahi-common/simple-watch.h>
+# include <avahi-common/domain.h>
+# include <avahi-common/error.h>
+# include <avahi-common/malloc.h>
+#define kDNSServiceMaxDomainName AVAHI_DOMAIN_NAME_MAX
+#endif /* HAVE_AVAHI */
/*
typedef struct
{
- DNSServiceRef ref; /* Service reference for resolve */
+#ifdef HAVE_DNSSD
+ DNSServiceRef ref; /* Service reference for query */
+#endif /* HAVE_DNSSD */
+#ifdef HAVE_AVAHI
+ AvahiRecordBrowser *ref; /* Browser for query */
+#endif /* HAVE_AVAHI */
char *name, /* Service name */
*domain, /* Domain name */
*fullName, /* Full name */
static int job_canceled = 0;
/* Set to 1 on SIGTERM */
+#ifdef HAVE_AVAHI
+static AvahiSimplePoll *simple_poll = NULL;
+ /* Poll information */
+static int got_data = 0; /* Got data from poll? */
+#endif /* HAVE_AVAHI */
/*
* Local functions...
*/
+#ifdef HAVE_DNSSD
static void browse_callback(DNSServiceRef sdRef,
DNSServiceFlags flags,
uint32_t interfaceIndex,
const char *replyDomain,
void *context)
__attribute__((nonnull(1,5,6,7,8)));
+#endif /* HAVE_DNSSD */
+#ifdef HAVE_AVAHI
+static void browse_callback(AvahiServiceBrowser *browser,
+ AvahiIfIndex interface,
+ AvahiProtocol protocol,
+ AvahiBrowserEvent event,
+ const char *serviceName,
+ const char *regtype,
+ const char *replyDomain,
+ AvahiLookupResultFlags flags,
+ void *context);
+static void client_callback(AvahiClient *client,
+ AvahiClientState state,
+ void *context);
+#endif /* HAVE_AVAHI */
+
static int compare_devices(cups_device_t *a, cups_device_t *b);
static void exec_backend(char **argv);
static cups_device_t *get_device(cups_array_t *devices,
const char *regtype,
const char *replyDomain)
__attribute__((nonnull(1,2,3,4)));
+#ifdef HAVE_DNSSD
static void query_callback(DNSServiceRef sdRef,
DNSServiceFlags flags,
uint32_t interfaceIndex,
const void *rdata, uint32_t ttl,
void *context)
__attribute__((nonnull(1,5,9,11)));
+#elif defined(HAVE_AVAHI)
+static int poll_callback(struct pollfd *pollfds,
+ unsigned int num_pollfds, int timeout,
+ void *context);
+static void query_callback(AvahiRecordBrowser *browser,
+ AvahiIfIndex interface,
+ AvahiProtocol protocol,
+ AvahiBrowserEvent event,
+ const char *name, uint16_t rrclass,
+ uint16_t rrtype, const void *rdata,
+ size_t rdlen,
+ AvahiLookupResultFlags flags,
+ void *context);
+#endif /* HAVE_DNSSD */
static void sigterm_handler(int sig);
static void unquote(char *dst, const char *src, size_t dstsize)
__attribute__((nonnull(1,2)));
char *argv[]) /* I - Command-line arguments */
{
const char *name; /* Backend name */
+ cups_array_t *devices; /* Device array */
+ cups_device_t *device; /* Current device */
+ char uriName[1024]; /* Unquoted fullName for URI */
+#ifdef HAVE_DNSSD
+ int fd; /* Main file descriptor */
+ fd_set input; /* Input set for select() */
+ struct timeval timeout; /* Timeout for select() */
DNSServiceRef main_ref, /* Main service reference */
fax_ipp_ref, /* IPP fax service reference */
ipp_ref, /* IPP service reference */
pdl_datastream_ref, /* AppSocket service reference */
printer_ref, /* LPD service reference */
riousbprint_ref; /* Remote IO service reference */
- int fd; /* Main file descriptor */
- fd_set input; /* Input set for select() */
- struct timeval timeout; /* Timeout for select() */
- cups_array_t *devices; /* Device array */
- cups_device_t *device; /* Current device */
- char uriName[1024]; /* Unquoted fullName for URI */
+#endif /* HAVE_DNSSD */
+#ifdef HAVE_AVAHI
+ AvahiClient *client; /* Client information */
+ int error; /* Error code, if any */
+#endif /* HAVE_AVAHI */
#if defined(HAVE_SIGACTION) && !defined(HAVE_SIGSET)
struct sigaction action; /* Actions for POSIX signals */
#endif /* HAVE_SIGACTION && !HAVE_SIGSET */
* Browse for different kinds of printers...
*/
+#ifdef HAVE_DNSSD
if (DNSServiceCreateConnection(&main_ref) != kDNSServiceErr_NoError)
{
perror("ERROR: Unable to create service connection");
riousbprint_ref = main_ref;
DNSServiceBrowse(&riousbprint_ref, kDNSServiceFlagsShareConnection, 0,
"_riousbprint._tcp", NULL, browse_callback, devices);
+#endif /* HAVE_DNSSD */
+
+#ifdef HAVE_AVAHI
+ if ((simple_poll = avahi_simple_poll_new()) == NULL)
+ {
+ fputs("DEBUG: Unable to create avahi simple poll object.\n", stderr);
+ return (1);
+ }
+
+ avahi_simple_poll_set_func(simple_poll, poll_callback, NULL);
+
+ client = avahi_client_new(avahi_simple_poll_get(simple_poll),
+ 0, client_callback, simple_poll, &error);
+ if (!client)
+ {
+ fputs("DEBUG: Unable to create avahi client.\n", stderr);
+ return (1);
+ }
+
+ avahi_service_browser_new(client, AVAHI_IF_UNSPEC,
+ AVAHI_PROTO_UNSPEC,
+ "_fax-ipp._tcp", NULL, 0,
+ browse_callback, devices);
+ avahi_service_browser_new(client, AVAHI_IF_UNSPEC,
+ AVAHI_PROTO_UNSPEC,
+ "_ipp._tcp", NULL, 0,
+ browse_callback, devices);
+ avahi_service_browser_new(client, AVAHI_IF_UNSPEC,
+ AVAHI_PROTO_UNSPEC,
+ "_ipp-tls._tcp", NULL, 0,
+ browse_callback, devices);
+ avahi_service_browser_new(client, AVAHI_IF_UNSPEC,
+ AVAHI_PROTO_UNSPEC,
+ "_ipps._tcp", NULL, 0,
+ browse_callback, devices);
+ avahi_service_browser_new(client, AVAHI_IF_UNSPEC,
+ AVAHI_PROTO_UNSPEC,
+ "_pdl-datastream._tcp",
+ NULL, 0,
+ browse_callback,
+ devices);
+ avahi_service_browser_new(client, AVAHI_IF_UNSPEC,
+ AVAHI_PROTO_UNSPEC,
+ "_printer._tcp", NULL, 0,
+ browse_callback, devices);
+#endif /* HAVE_AVAHI */
/*
* Loop until we are killed...
while (!job_canceled)
{
+ int announce = 0; /* Announce printers? */
+
+#ifdef HAVE_DNSSD
FD_ZERO(&input);
FD_SET(fd, &input);
timeout.tv_sec = 0;
- timeout.tv_usec = 250000;
+ timeout.tv_usec = 500000;
if (select(fd + 1, &input, NULL, NULL, &timeout) < 0)
continue;
DNSServiceProcessResult(main_ref);
}
else
+ announce = 1;
+
+#elif defined(HAVE_AVAHI)
+ got_data = 0;
+
+ if ((error = avahi_simple_poll_iterate(simple_poll, 500)) > 0)
+ {
+ /*
+ * We've been told to exit the loop. Perhaps the connection to
+ * Avahi failed.
+ */
+
+ break;
+ }
+
+ if (!got_data)
+ announce = 1;
+#endif /* HAVE_DNSSD */
+
+/* fprintf(stderr, "DEBUG: announce=%d\n", announce);*/
+
+ if (announce)
{
/*
* Announce any devices we've found...
*/
+#ifdef HAVE_DNSSD
DNSServiceErrorType status; /* DNS query status */
+#endif /* HAVE_DNSSD */
cups_device_t *best; /* Best matching device */
char device_uri[1024]; /* Device URI */
int count; /* Number of queries */
* Found the device, now get the TXT record(s) for it...
*/
- if (count < 20)
+ if (count < 50)
{
- device->ref = main_ref;
-
fprintf(stderr, "DEBUG: Querying \"%s\"...\n", device->fullName);
+#ifdef HAVE_DNSSD
+ device->ref = main_ref;
+
status = DNSServiceQueryRecord(&(device->ref),
kDNSServiceFlagsShareConnection,
0, device->fullName,
kDNSServiceType_TXT,
kDNSServiceClass_IN, query_callback,
- devices);
+ device);
if (status != kDNSServiceErr_NoError)
- {
- fputs("ERROR: Unable to query for TXT records!\n", stderr);
- fprintf(stderr, "DEBUG: DNSServiceQueryRecord returned %d\n",
- status);
- }
+ fprintf(stderr,
+ "ERROR: Unable to query \"%s\" for TXT records: %d\n",
+ device->fullName, status);
+ /* Users never see this */
else
count ++;
+
+#else
+ if ((device->ref = avahi_record_browser_new(client, AVAHI_IF_UNSPEC,
+ AVAHI_PROTO_UNSPEC,
+ device->fullName,
+ AVAHI_DNS_CLASS_IN,
+ AVAHI_DNS_TYPE_TXT,
+ 0,
+ query_callback,
+ device)) == NULL)
+ fprintf(stderr,
+ "ERROR: Unable to query \"%s\" for TXT records: %s\n",
+ device->fullName,
+ avahi_strerror(avahi_client_errno(client)));
+ /* Users never see this */
+ else
+ count ++;
+#endif /* HAVE_AVAHI */
}
}
else if (!device->sent)
{
+#ifdef HAVE_DNSSD
/*
* Got the TXT records, now report the device...
*/
DNSServiceRefDeallocate(device->ref);
- device->ref = 0;
+#else
+ avahi_record_browser_free(device->ref);
+#endif /* HAVE_DNSSD */
+
+ device->ref = NULL;
if (!best)
best = device;
sent ++;
}
+ fprintf(stderr, "DEBUG: sent=%d, count=%d\n", sent, count);
+
if (sent == cupsArrayCount(devices))
break;
}
}
+#ifdef HAVE_DNSSD
/*
* 'browse_callback()' - Browse devices.
*/
device->fullName);
device->sent = 1;
}
+#endif /* HAVE_DNSSD */
+
+
+#ifdef HAVE_AVAHI
+/*
+ * 'browse_callback()' - Browse devices.
+ */
+
+static void
+browse_callback(
+ AvahiServiceBrowser *browser, /* I - Browser */
+ AvahiIfIndex interface, /* I - Interface index (unused) */
+ AvahiProtocol protocol, /* I - Network protocol (unused) */
+ AvahiBrowserEvent event, /* I - What happened */
+ const char *name, /* I - Service name */
+ const char *type, /* I - Registration type */
+ const char *domain, /* I - Domain */
+ AvahiLookupResultFlags flags, /* I - Flags */
+ void *context) /* I - Devices array */
+{
+ AvahiClient *client = avahi_service_browser_get_client(browser);
+ /* Client information */
+
+
+ (void)interface;
+ (void)protocol;
+ (void)context;
+
+ switch (event)
+ {
+ case AVAHI_BROWSER_FAILURE:
+ fprintf(stderr, "DEBUG: browse_callback: %s\n",
+ avahi_strerror(avahi_client_errno(client)));
+ avahi_simple_poll_quit(simple_poll);
+ break;
+
+ case AVAHI_BROWSER_NEW:
+ /*
+ * This object is new on the network.
+ */
+
+ if (flags & AVAHI_LOOKUP_RESULT_LOCAL)
+ {
+ /*
+ * This comes from the local machine so ignore it.
+ */
+
+ fprintf(stderr, "DEBUG: Ignoring local service %s.\n", name);
+ }
+ else
+ {
+ /*
+ * Create a device entry for it if it doesn't yet exist.
+ */
+
+ get_device((cups_array_t *)context, name, type, domain);
+ }
+ break;
+
+ case AVAHI_BROWSER_REMOVE:
+ case AVAHI_BROWSER_ALL_FOR_NOW:
+ case AVAHI_BROWSER_CACHE_EXHAUSTED:
+ break;
+ }
+}
+
+
+/*
+ * 'client_callback()' - Avahi client callback function.
+ */
+
+static void
+client_callback(
+ AvahiClient *client, /* I - Client information (unused) */
+ AvahiClientState state, /* I - Current state */
+ void *context) /* I - User data (unused) */
+{
+ (void)client;
+ (void)context;
+
+ /*
+ * If the connection drops, quit.
+ */
+
+ if (state == AVAHI_CLIENT_FAILURE)
+ {
+ fputs("DEBUG: Avahi connection failed.\n", stderr);
+ avahi_simple_poll_quit(simple_poll);
+ }
+}
+#endif /* HAVE_AVAHI */
/*
}
+/*
+ * 'device_type()' - Get DNS-SD type enumeration from string.
+ */
+
+static int
+device_type(const char *regtype)
+{
+#ifdef HAVE_AVAHI
+ if (!strcmp(regtype, "_ipp._tcp"))
+ return (CUPS_DEVICE_IPP);
+ else if (!strcmp(regtype, "_ipps._tcp") ||
+ !strcmp(regtype, "_ipp-tls._tcp"))
+ return (CUPS_DEVICE_IPPS);
+ else if (!strcmp(regtype, "_fax-ipp._tcp"))
+ return (CUPS_DEVICE_FAX_IPP);
+ else if (!strcmp(regtype, "_printer._tcp"))
+ return (CUPS_DEVICE_PDL_DATASTREAM);
+#else
+ if (!strcmp(regtype, "_ipp._tcp."))
+ return (CUPS_DEVICE_IPP);
+ else if (!strcmp(regtype, "_ipps._tcp.") ||
+ !strcmp(regtype, "_ipp-tls._tcp."))
+ return (CUPS_DEVICE_IPPS);
+ else if (!strcmp(regtype, "_fax-ipp._tcp."))
+ return (CUPS_DEVICE_FAX_IPP);
+ else if (!strcmp(regtype, "_printer._tcp."))
+ return (CUPS_DEVICE_PRINTER);
+ else if (!strcmp(regtype, "_pdl-datastream._tcp."))
+ return (CUPS_DEVICE_PDL_DATASTREAM);
+#endif /* HAVE_AVAHI */
+
+ return (CUPS_DEVICE_RIOUSBPRINT);
+}
+
+
/*
* 'get_device()' - Create or update a device.
*/
*/
key.name = (char *)serviceName;
-
- if (!strcmp(regtype, "_ipp._tcp."))
- key.type = CUPS_DEVICE_IPP;
- else if (!strcmp(regtype, "_ipps._tcp.") ||
- !strcmp(regtype, "_ipp-tls._tcp."))
- key.type = CUPS_DEVICE_IPPS;
- else if (!strcmp(regtype, "_fax-ipp._tcp."))
- key.type = CUPS_DEVICE_FAX_IPP;
- else if (!strcmp(regtype, "_printer._tcp."))
- key.type = CUPS_DEVICE_PRINTER;
- else if (!strcmp(regtype, "_pdl-datastream._tcp."))
- key.type = CUPS_DEVICE_PDL_DATASTREAM;
- else
- key.type = CUPS_DEVICE_RIOUSBPRINT;
+ key.type = device_type(regtype);
for (device = cupsArrayFind(devices, &key);
device;
free(device->domain);
device->domain = strdup(replyDomain);
+#ifdef HAVE_DNSSD
DNSServiceConstructFullName(fullName, device->name, regtype,
replyDomain);
+#else /* HAVE_AVAHI */
+ avahi_service_name_join(fullName, kDNSServiceMaxDomainName,
+ serviceName, regtype, replyDomain);
+#endif /* HAVE_DNSSD */
+
free(device->fullName);
device->fullName = strdup(fullName);
}
* Set the "full name" of this service, which is used for queries...
*/
+#ifdef HAVE_DNSSD
DNSServiceConstructFullName(fullName, serviceName, regtype, replyDomain);
+#else /* HAVE_AVAHI */
+ avahi_service_name_join(fullName, kDNSServiceMaxDomainName,
+ serviceName, regtype, replyDomain);
+#endif /* HAVE_DNSSD */
+
device->fullName = strdup(fullName);
return (device);
}
+#ifdef HAVE_AVAHI
+/*
+ * 'poll_callback()' - Wait for input on the specified file descriptors.
+ *
+ * Note: This function is needed because avahi_simple_poll_iterate is broken
+ * and always uses a timeout of 0 (!) milliseconds.
+ * (Avahi Ticket #364)
+ */
+
+static int /* O - Number of file descriptors matching */
+poll_callback(
+ struct pollfd *pollfds, /* I - File descriptors */
+ unsigned int num_pollfds, /* I - Number of file descriptors */
+ int timeout, /* I - Timeout in milliseconds (unused) */
+ void *context) /* I - User data (unused) */
+{
+ int val; /* Return value */
+
+
+ (void)timeout;
+ (void)context;
+
+ val = poll(pollfds, num_pollfds, 500);
+
+ if (val < 0)
+ fprintf(stderr, "DEBUG: poll_callback: %s\n", strerror(errno));
+ else if (val > 0)
+ got_data = 1;
+
+ return (val);
+}
+#endif /* HAVE_AVAHI */
+
+
+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+# ifdef HAVE_DNSSD
/*
* 'query_callback()' - Process query data.
*/
uint16_t rdlen, /* I - Length of record data */
const void *rdata, /* I - Record data */
uint32_t ttl, /* I - Time-to-live */
- void *context) /* I - Devices array */
+ void *context) /* I - Device */
{
- cups_array_t *devices; /* Device array */
- char name[1024], /* Service name */
- *ptr; /* Pointer into string */
- cups_device_t dkey, /* Search key */
- *device; /* Device */
-
+# else
+/*
+ * 'query_callback()' - Process query data.
+ */
+static void
+query_callback(
+ AvahiRecordBrowser *browser, /* I - Record browser */
+ AvahiIfIndex interfaceIndex,
+ /* I - Interface index (unused) */
+ AvahiProtocol protocol, /* I - Network protocol (unused) */
+ AvahiBrowserEvent event, /* I - What happened? */
+ const char *fullName, /* I - Service name */
+ uint16_t rrclass, /* I - Record class */
+ uint16_t rrtype, /* I - Record type */
+ const void *rdata, /* I - TXT record */
+ size_t rdlen, /* I - Length of TXT record */
+ AvahiLookupResultFlags flags, /* I - Flags */
+ void *context) /* I - Device */
+{
+ AvahiClient *client = avahi_record_browser_get_client(browser);
+ /* Client information */
+# endif /* HAVE_DNSSD */
+ char *ptr; /* Pointer into string */
+ cups_device_t *device = (cups_device_t *)context;
+ /* Device */
+ const uint8_t *data, /* Pointer into data */
+ *datanext, /* Next key/value pair */
+ *dataend; /* End of entire TXT record */
+ uint8_t datalen; /* Length of current key/value pair */
+ char key[256], /* Key string */
+ value[256], /* Value string */
+ make_and_model[512], /* Manufacturer and model */
+ model[256], /* Model */
+ device_id[2048]; /* 1284 device ID */
+
+
+# ifdef HAVE_DNSSD
fprintf(stderr, "DEBUG2: query_callback(sdRef=%p, flags=%x, "
"interfaceIndex=%d, errorCode=%d, fullName=\"%s\", "
"rrtype=%u, rrclass=%u, rdlen=%u, rdata=%p, ttl=%u, "
if (errorCode != kDNSServiceErr_NoError || !(flags & kDNSServiceFlagsAdd))
return;
+# else
+ fprintf(stderr, "DEBUG2: query_callback(browser=%p, interfaceIndex=%d, "
+ "protocol=%d, event=%d, fullName=\"%s\", rrclass=%u, "
+ "rrtype=%u, rdata=%p, rdlen=%u, flags=%x, context=%p)\n",
+ browser, interfaceIndex, protocol, event,
+ fullName ? fullName : "(null)", rrclass, rrtype, rdata,
+ (unsigned)rdlen, flags, context);
+
/*
- * Lookup the service in the devices array.
+ * Only process "add" data...
*/
- devices = (cups_array_t *)context;
- dkey.name = name;
+ if (event != AVAHI_BROWSER_NEW)
+ {
+ if (event == AVAHI_BROWSER_FAILURE)
+ fprintf(stderr, "ERROR: %s\n",
+ avahi_strerror(avahi_client_errno(client)));
- unquote(name, fullName, sizeof(name));
+ return;
+ }
+# endif /* HAVE_DNSSD */
- if ((dkey.domain = strstr(name, "._tcp.")) != NULL)
- dkey.domain += 6;
- else
- dkey.domain = (char *)"local.";
+ /*
+ * Pull out the priority and make and model from the TXT
+ * record and save it...
+ */
- if ((ptr = strstr(name, "._")) != NULL)
- *ptr = '\0';
+ device_id[0] = '\0';
+ make_and_model[0] = '\0';
- if (strstr(fullName, "_ipp._tcp."))
- dkey.type = CUPS_DEVICE_IPP;
- else if (strstr(fullName, "_ipps._tcp.") ||
- strstr(fullName, "_ipp-tls._tcp."))
- dkey.type = CUPS_DEVICE_IPPS;
- else if (strstr(fullName, "_fax-ipp._tcp."))
- dkey.type = CUPS_DEVICE_FAX_IPP;
- else if (strstr(fullName, "_printer._tcp."))
- dkey.type = CUPS_DEVICE_PRINTER;
- else if (strstr(fullName, "_pdl-datastream._tcp."))
- dkey.type = CUPS_DEVICE_PDL_DATASTREAM;
- else
- dkey.type = CUPS_DEVICE_RIOUSBPRINT;
+ strcpy(model, "Unknown");
- for (device = cupsArrayFind(devices, &dkey);
- device;
- device = cupsArrayNext(devices))
+ for (data = rdata, dataend = data + rdlen;
+ data < dataend;
+ data = datanext)
{
- if (_cups_strcasecmp(device->name, dkey.name) ||
- _cups_strcasecmp(device->domain, dkey.domain))
- {
- device = NULL;
+ /*
+ * Read a key/value pair starting with an 8-bit length. Since the
+ * length is 8 bits and the size of the key/value buffers is 256, we
+ * don't need to check for overflow...
+ */
+
+ datalen = *data++;
+
+ if (!datalen || (data + datalen) > dataend)
break;
- }
- else if (device->type == dkey.type)
+
+ datanext = data + datalen;
+
+ for (ptr = key; data < datanext && *data != '='; data ++)
+ *ptr++ = *data;
+ *ptr = '\0';
+
+ if (data < datanext && *data == '=')
{
- /*
- * Found it, pull out the priority and make and model from the TXT
- * record and save it...
- */
+ data ++;
- const uint8_t *data, /* Pointer into data */
- *datanext, /* Next key/value pair */
- *dataend; /* End of entire TXT record */
- uint8_t datalen; /* Length of current key/value pair */
- char key[256], /* Key string */
- value[256], /* Value string */
- make_and_model[512],
- /* Manufacturer and model */
- model[256], /* Model */
- device_id[2048];/* 1284 device ID */
+ if (data < datanext)
+ memcpy(value, data, datanext - data);
+ value[datanext - data] = '\0';
+ fprintf(stderr, "DEBUG2: query_callback: \"%s=%s\".\n",
+ key, value);
+ }
+ else
+ {
+ fprintf(stderr, "DEBUG2: query_callback: \"%s\" with no value.\n",
+ key);
+ continue;
+ }
- device_id[0] = '\0';
- make_and_model[0] = '\0';
+ if (!_cups_strncasecmp(key, "usb_", 4))
+ {
+ /*
+ * Add USB device ID information...
+ */
- strcpy(model, "Unknown");
+ ptr = device_id + strlen(device_id);
+ snprintf(ptr, sizeof(device_id) - (ptr - device_id), "%s:%s;",
+ key + 4, value);
+ }
- for (data = rdata, dataend = data + rdlen;
- data < dataend;
- data = datanext)
+ if (!_cups_strcasecmp(key, "usb_MFG") || !_cups_strcasecmp(key, "usb_MANU") ||
+ !_cups_strcasecmp(key, "usb_MANUFACTURER"))
+ strcpy(make_and_model, value);
+ else if (!_cups_strcasecmp(key, "usb_MDL") || !_cups_strcasecmp(key, "usb_MODEL"))
+ strcpy(model, value);
+ else if (!_cups_strcasecmp(key, "product") && !strstr(value, "Ghostscript"))
+ {
+ if (value[0] == '(')
{
/*
- * Read a key/value pair starting with an 8-bit length. Since the
- * length is 8 bits and the size of the key/value buffers is 256, we
- * don't need to check for overflow...
+ * Strip parenthesis...
*/
- datalen = *data++;
+ if ((ptr = value + strlen(value) - 1) > value && *ptr == ')')
+ *ptr = '\0';
- if (!datalen || (data + datalen) > dataend)
- break;
-
- datanext = data + datalen;
+ strcpy(model, value + 1);
+ }
+ else
+ strcpy(model, value);
+ }
+ else if (!_cups_strcasecmp(key, "ty"))
+ {
+ strcpy(model, value);
- for (ptr = key; data < datanext && *data != '='; data ++)
- *ptr++ = *data;
+ if ((ptr = strchr(model, ',')) != NULL)
*ptr = '\0';
+ }
+ else if (!_cups_strcasecmp(key, "priority"))
+ device->priority = atoi(value);
+ else if ((device->type == CUPS_DEVICE_IPP ||
+ device->type == CUPS_DEVICE_IPPS ||
+ device->type == CUPS_DEVICE_PRINTER) &&
+ !_cups_strcasecmp(key, "printer-type"))
+ {
+ /*
+ * This is a CUPS printer!
+ */
- if (data < datanext && *data == '=')
- {
- data ++;
-
- if (data < datanext)
- memcpy(value, data, datanext - data);
- value[datanext - data] = '\0';
-
- fprintf(stderr, "DEBUG2: query_callback: \"%s=%s\".\n",
- key, value);
- }
- else
- {
- fprintf(stderr, "DEBUG2: query_callback: \"%s\" with no value.\n",
- key);
- continue;
- }
-
- if (!_cups_strncasecmp(key, "usb_", 4))
- {
- /*
- * Add USB device ID information...
- */
-
- ptr = device_id + strlen(device_id);
- snprintf(ptr, sizeof(device_id) - (ptr - device_id), "%s:%s;",
- key + 4, value);
- }
-
- if (!_cups_strcasecmp(key, "usb_MFG") || !_cups_strcasecmp(key, "usb_MANU") ||
- !_cups_strcasecmp(key, "usb_MANUFACTURER"))
- strcpy(make_and_model, value);
- else if (!_cups_strcasecmp(key, "usb_MDL") || !_cups_strcasecmp(key, "usb_MODEL"))
- strcpy(model, value);
- else if (!_cups_strcasecmp(key, "product") && !strstr(value, "Ghostscript"))
- {
- if (value[0] == '(')
- {
- /*
- * Strip parenthesis...
- */
-
- if ((ptr = value + strlen(value) - 1) > value && *ptr == ')')
- *ptr = '\0';
-
- strcpy(model, value + 1);
- }
- else
- strcpy(model, value);
- }
- else if (!_cups_strcasecmp(key, "ty"))
- {
- strcpy(model, value);
-
- if ((ptr = strchr(model, ',')) != NULL)
- *ptr = '\0';
- }
- else if (!_cups_strcasecmp(key, "priority"))
- device->priority = atoi(value);
- else if ((device->type == CUPS_DEVICE_IPP ||
- device->type == CUPS_DEVICE_IPPS ||
- device->type == CUPS_DEVICE_PRINTER) &&
- !_cups_strcasecmp(key, "printer-type"))
- {
- /*
- * This is a CUPS printer!
- */
-
- device->cups_shared = 1;
+ device->cups_shared = 1;
- if (device->type == CUPS_DEVICE_PRINTER)
- device->sent = 1;
- }
- }
+ if (device->type == CUPS_DEVICE_PRINTER)
+ device->sent = 1;
+ }
+ }
- if (device->device_id)
- free(device->device_id);
+ if (device->device_id)
+ free(device->device_id);
- if (!device_id[0] && strcmp(model, "Unknown"))
- {
- if (make_and_model[0])
- snprintf(device_id, sizeof(device_id), "MFG:%s;MDL:%s;",
- make_and_model, model);
- else if (!_cups_strncasecmp(model, "designjet ", 10))
- snprintf(device_id, sizeof(device_id), "MFG:HP;MDL:%s", model + 10);
- else if (!_cups_strncasecmp(model, "stylus ", 7))
- snprintf(device_id, sizeof(device_id), "MFG:EPSON;MDL:%s", model + 7);
- else if ((ptr = strchr(model, ' ')) != NULL)
- {
- /*
- * Assume the first word is the make...
- */
+ if (!device_id[0] && strcmp(model, "Unknown"))
+ {
+ if (make_and_model[0])
+ snprintf(device_id, sizeof(device_id), "MFG:%s;MDL:%s;",
+ make_and_model, model);
+ else if (!_cups_strncasecmp(model, "designjet ", 10))
+ snprintf(device_id, sizeof(device_id), "MFG:HP;MDL:%s", model + 10);
+ else if (!_cups_strncasecmp(model, "stylus ", 7))
+ snprintf(device_id, sizeof(device_id), "MFG:EPSON;MDL:%s", model + 7);
+ else if ((ptr = strchr(model, ' ')) != NULL)
+ {
+ /*
+ * Assume the first word is the make...
+ */
- memcpy(make_and_model, model, ptr - model);
- make_and_model[ptr - model] = '\0';
+ memcpy(make_and_model, model, ptr - model);
+ make_and_model[ptr - model] = '\0';
- snprintf(device_id, sizeof(device_id), "MFG:%s;MDL:%s",
- make_and_model, ptr + 1);
- }
- }
+ snprintf(device_id, sizeof(device_id), "MFG:%s;MDL:%s",
+ make_and_model, ptr + 1);
+ }
+ }
- if (device_id[0])
- device->device_id = strdup(device_id);
- else
- device->device_id = NULL;
+ if (device_id[0])
+ device->device_id = strdup(device_id);
+ else
+ device->device_id = NULL;
- if (device->make_and_model)
- free(device->make_and_model);
+ if (device->make_and_model)
+ free(device->make_and_model);
- if (make_and_model[0])
- {
- strlcat(make_and_model, " ", sizeof(make_and_model));
- strlcat(make_and_model, model, sizeof(make_and_model));
+ if (make_and_model[0])
+ {
+ strlcat(make_and_model, " ", sizeof(make_and_model));
+ strlcat(make_and_model, model, sizeof(make_and_model));
- device->make_and_model = strdup(make_and_model);
- }
- else
- device->make_and_model = strdup(model);
- break;
- }
+ device->make_and_model = strdup(make_and_model);
}
-
- if (!device)
- fprintf(stderr, "DEBUG: Ignoring TXT record for \"%s\"...\n", fullName);
+ else
+ device->make_and_model = strdup(model);
}
+#endif /* HAVE_DNSSD || HAVE_AVAHI */
/*
- * 'sigterm_handler()' - Handle termination signals...
+ * 'sigterm_handler()' - Handle termination signals.
*/
static void
update_reasons(NULL, "-connecting-to-device");
return (CUPS_BACKEND_STOP);
}
+
+ if (job_canceled)
+ return (CUPS_BACKEND_OK);
}
http = _httpCreate(hostname, port, addrlist, cupsEncryption(), AF_UNSPEC);
case ECONNREFUSED :
default :
_cupsLangPrintFilter(stderr, "WARNING",
- _("The printer is busy."));
+ _("The printer is in use."));
break;
}
}
while (http->fd < 0);
- if (job_canceled || !http)
+ if (job_canceled)
+ return (CUPS_BACKEND_OK);
+ else if (!http)
return (CUPS_BACKEND_FAILED);
update_reasons(NULL, "-connecting-to-device");
return (CUPS_BACKEND_FAILED);
}
- _cupsLangPrintFilter(stderr, "INFO", _("The printer is busy."));
+ _cupsLangPrintFilter(stderr, "INFO", _("The printer is in use."));
report_printer_state(supported);
if (version >= 20)
{
_cupsLangPrintFilter(stderr, "INFO",
- _("Printer does not support IPP/%d.%d, trying "
+ _("The printer does not support IPP/%d.%d, trying "
"IPP/%s."), version / 10, version % 10, "1.1");
version = 11;
}
else
{
_cupsLangPrintFilter(stderr, "INFO",
- _("Printer does not support IPP/%d.%d, trying "
+ _("The printer does not support IPP/%d.%d, trying "
"IPP/%s."), version / 10, version % 10, "1.0");
version = 10;
}
if (busy)
{
- _cupsLangPrintFilter(stderr, "INFO", _("The printer is busy."));
+ _cupsLangPrintFilter(stderr, "INFO", _("The printer is in use."));
report_printer_state(supported);
report_printer_state(supported);
}
- while (ipp_status > IPP_OK_CONFLICT);
+ while (!job_canceled && ipp_status > IPP_OK_CONFLICT);
+
+ if (job_canceled)
+ return (CUPS_BACKEND_OK);
/*
* See if the printer is accepting jobs and is not stopped; if either
if (ipp_status == IPP_SERVICE_UNAVAILABLE || ipp_status == IPP_PRINTER_BUSY)
{
- _cupsLangPrintFilter(stderr, "INFO", _("The printer is busy."));
+ _cupsLangPrintFilter(stderr, "INFO", _("The printer is in use."));
sleep(10);
}
else if (ipp_status == IPP_FORBIDDEN ||
ipp_status == IPP_NOT_POSSIBLE ||
ipp_status == IPP_PRINTER_BUSY)
{
- _cupsLangPrintFilter(stderr, "INFO", _("The printer is busy."));
+ _cupsLangPrintFilter(stderr, "INFO", _("The printer is in use."));
sleep(10);
if (num_files == 0)
* Cancel the job as needed...
*/
- if (job_canceled && job_id)
+ if (job_canceled > 0 && job_id > 0)
cancel_job(http, uri, job_id, resource, argv[2], version);
/*
else if (ipp_status == IPP_DOCUMENT_FORMAT ||
ipp_status == IPP_CONFLICT)
return (CUPS_BACKEND_FAILED);
- else if (ipp_status == IPP_REQUEST_VALUE)
+ else if (ipp_status == IPP_REQUEST_VALUE || job_canceled < 0)
{
- _cupsLangPrintFilter(stderr, "ERROR", _("Print job too large."));
+ if (ipp_status == IPP_REQUEST_VALUE)
+ _cupsLangPrintFilter(stderr, "ERROR", _("Print job too large."));
+ else
+ _cupsLangPrintFilter(stderr, "ERROR", _("Print job canceled at printer."));
+
return (CUPS_BACKEND_CANCEL);
}
else if (ipp_status > IPP_OK_CONFLICT && ipp_status != IPP_ERROR_JOB_CANCELED)
return (CUPS_BACKEND_RETRY_CURRENT);
else
- {
- _cupsLangPrintFilter(stderr, "INFO", _("Ready to print."));
return (CUPS_BACKEND_OK);
- }
}
response = cupsDoRequest(http, request, monitor->resource);
- fprintf(stderr, "DEBUG: %s: %s (%s)\n", ippOpString(job_op),
+ fprintf(stderr, "DEBUG: (monitor) %s: %s (%s)\n", ippOpString(job_op),
ippErrorString(cupsLastError()), cupsLastErrorString());
if (cupsLastError() <= IPP_OK_CONFLICT)
ippDelete(response);
+ fprintf(stderr, "DEBUG: (monitor) job-state=%s\n",
+ ippEnumString("job-state", monitor->job_state));
+
+ if (!job_canceled &&
+ (monitor->job_state == IPP_JOB_CANCELED ||
+ monitor->job_state == IPP_JOB_ABORTED))
+ job_canceled = -1;
+
/*
* Disconnect from the printer - we'll reconnect on the next poll...
*/
* Cancel the job if necessary...
*/
- if (job_canceled && monitor->job_id > 0)
+ if (job_canceled > 0 && monitor->job_id > 0)
if (!httpReconnect(http))
cancel_job(http, monitor->uri, monitor->job_id, monitor->resource,
monitor->user, monitor->version);
{
(void)sig; /* remove compiler warnings... */
+ write(2, "DEBUG: Got SIGTERM.\n", 20);
+
#if defined(HAVE_GSSAPI) && defined(HAVE_XPC)
if (child_pid)
{
* Flag that the job should be canceled...
*/
+ write(2, "DEBUG: job_canceled = 1.\n", 25);
+
job_canceled = 1;
return;
}
if (recv(fd, &status, 1, 0) < 1)
{
- _cupsLangPrintFilter(stderr, "WARNING", _("Printer did not respond."));
+ _cupsLangPrintFilter(stderr, "WARNING", _("The printer did not respond."));
status = errno;
}
case ECONNREFUSED :
default :
_cupsLangPrintFilter(stderr, "WARNING",
- _("The printer is busy."));
+ _("The printer is in use."));
break;
}
if (read(fd, &status, 1) < 1)
{
_cupsLangPrintFilter(stderr, "WARNING",
- _("Printer did not respond."));
+ _("The printer did not respond."));
status = errno;
}
}
if (recv(fd, &status, 1, 0) < 1)
{
_cupsLangPrintFilter(stderr, "WARNING",
- _("Printer did not respond."));
+ _("The printer did not respond."));
status = 0;
}
}
if (read(fd, &status, 1) < 1)
{
_cupsLangPrintFilter(stderr, "WARNING",
- _("Printer did not respond."));
+ _("The printer did not respond."));
status = errno;
}
}
if (errno != EAGAIN || errno != EINTR)
{
- _cupsLangPrintError("ERROR", _("Unable to read print data"));
+ fprintf(stderr, "DEBUG: Read failed: %s\n", strerror(errno));
+ _cupsLangPrintFilter(stderr, "ERROR", _("Unable to read print data."));
return (-1);
}
{
fputs("STATE: +offline-report\n", stderr);
_cupsLangPrintFilter(stderr, "INFO",
- _("Printer is not currently connected."));
+ _("The printer is not connected."));
offline = 1;
}
else if (errno == EINTR && total_bytes == 0)
if (errno != EAGAIN || errno != EINTR)
{
- _cupsLangPrintError("ERROR", _("Unable to read print data"));
+ fprintf(stderr, "DEBUG: Read failed: %s\n", strerror(errno));
+ _cupsLangPrintFilter(stderr, "ERROR",
+ _("Unable to read print data."));
return (-1);
}
{
fputs("STATE: +offline-report\n", stderr);
_cupsLangPrintFilter(stderr, "INFO",
- _("Printer is not currently connected."));
+ _("The printer is not connected."));
offline = 1;
}
}
if (offline && update_state)
{
fputs("STATE: -offline-report\n", stderr);
- _cupsLangPrintFilter(stderr, "INFO", _("Printer is now connected."));
+ _cupsLangPrintFilter(stderr, "INFO",
+ _("The printer is now connected."));
offline = 0;
}
*
* AppSocket backend for CUPS.
*
- * Copyright 2007-2011 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
case ECONNREFUSED :
default :
_cupsLangPrintFilter(stderr, "WARNING",
- _("The printer is busy."));
+ _("The printer is in use."));
break;
}
if (print_fd != 0)
close(print_fd);
- _cupsLangPrintFilter(stderr, "INFO", _("Ready to print."));
-
return (CUPS_BACKEND_OK);
}
/*
* "$Id: usb-darwin.c 7953 2008-09-17 01:43:19Z mike $"
*
-* Copyright 2005-2011 Apple Inc. All rights reserved.
+* Copyright 2005-2012 Apple Inc. All rights reserved.
*
* IMPORTANT: This Apple software is supplied to you by Apple Computer,
* Inc. ("Apple") in consideration of your agreement to the following
/*
* If it didn't exit abort the pending read and wait an additional second...
*/
-
+
if (!g.read_thread_done)
{
- fputs("DEBUG: Read thread still active, aborting the pending read...\n",
+ fputs("DEBUG: Read thread still active, aborting the pending read...\n",
stderr);
g.wait_eof = 0;
gettimeofday(&tv, NULL);
cond_timeout.tv_sec = tv.tv_sec + 1;
cond_timeout.tv_nsec = tv.tv_usec * 1000;
-
+
while (!g.read_thread_done)
{
if (pthread_cond_timedwait(&g.read_thread_cond, &g.read_thread_mutex,
if (!keepLooking && g.status_timer != NULL)
{
fputs("STATE: -offline-report\n", stderr);
- _cupsLangPrintFilter(stderr, "INFO", _("Printer is now online."));
+ _cupsLangPrintFilter(stderr, "INFO", _("The printer is now online."));
CFRunLoopRemoveTimer(CFRunLoopGetCurrent(), g.status_timer, kCFRunLoopDefaultMode);
CFRelease(g.status_timer);
g.status_timer = NULL;
(void)info;
fputs("STATE: +offline-report\n", stderr);
- _cupsLangPrintFilter(stderr, "INFO", _("Printer is offline."));
+ _cupsLangPrintFilter(stderr, "INFO", _("The printer is offline."));
if (getenv("CLASS") != NULL)
{
*
* This file is included from "usb.c" when compiled on UNIX/Linux.
*
- * Copyright 2007-2011 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
if (errno == EBUSY)
{
- _cupsLangPrintFilter(stderr, "INFO",
- _("Printer busy, will retry in 10 seconds."));
+ _cupsLangPrintFilter(stderr, "INFO", _("The printer is in use."));
sleep(10);
}
else if (errno == ENXIO || errno == EIO || errno == ENOENT ||
errno == ENODEV)
{
- _cupsLangPrintFilter(stderr, "INFO",
- _("Printer not connected, will retry in 30 "
- "seconds."));
sleep(30);
}
else
*/
if (busy)
- _cupsLangPrintFilter(stderr, "INFO",
- _("Printer is busy, will retry in 5 seconds."));
+ _cupsLangPrintFilter(stderr, "INFO", _("The printer is in use."));
sleep(5);
}
if (busy)
{
- _cupsLangPrintFilter(stderr, "INFO",
- _("Printer is busy, will retry in 5 seconds."));
+ _cupsLangPrintFilter(stderr, "INFO", _("The printer is in use."));
sleep(5);
}
}
-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
+lpc.o: lpc.c ../cups/cups-private.h ../cups/string-private.h ../config.h \
+ ../cups/debug-private.h ../cups/versioning.h ../cups/ipp-private.h \
+ ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
+lpq.o: lpq.c ../cups/cups-private.h ../cups/string-private.h ../config.h \
+ ../cups/debug-private.h ../cups/versioning.h ../cups/ipp-private.h \
+ ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
+lpr.o: lpr.c ../cups/cups-private.h ../cups/string-private.h ../config.h \
+ ../cups/debug-private.h ../cups/versioning.h ../cups/ipp-private.h \
+ ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
+lprm.o: lprm.c ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/versioning.h \
+ ../cups/ipp-private.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
+ ../cups/http-private.h ../cups/md5-private.h \
+ ../cups/language-private.h ../cups/transcode.h ../cups/language.h \
+ ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
*
* Administration CGI for CUPS.
*
- * Copyright 2007-2011 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
else if (cupsLastError() > IPP_OK_CONFLICT)
{
cgiStartHTML(_("Add RSS Subscription"));
- cgiShowIPPError(_("Unable to add RSS subscription:"));
+ cgiShowIPPError(_("Unable to add RSS subscription"));
}
else
{
else if (cupsLastError() > IPP_OK_CONFLICT)
{
cgiStartHTML(title);
- cgiShowIPPError(modify ? _("Unable to modify class:") :
- _("Unable to add class:"));
+ cgiShowIPPError(modify ? _("Unable to modify class") :
+ _("Unable to add class"));
}
else
{
else
{
cgiStartHTML(title);
- cgiShowIPPError(modify ? _("Unable to modify printer:") :
- _("Unable to add printer:"));
+ cgiShowIPPError(modify ? _("Unable to modify printer") :
+ _("Unable to add printer"));
cgiEndHTML();
return;
}
else
{
cgiStartHTML(title);
- cgiShowIPPError(_("Unable to get list of printer drivers:"));
+ cgiShowIPPError(_("Unable to get list of printer drivers"));
cgiCopyTemplateLang("error.tmpl");
cgiEndHTML();
}
else if (cupsLastError() > IPP_OK_CONFLICT)
{
cgiStartHTML(title);
- cgiShowIPPError(modify ? _("Unable to modify printer:") :
- _("Unable to add printer:"));
+ cgiShowIPPError(modify ? _("Unable to modify printer") :
+ _("Unable to add printer"));
}
else if (modify)
{
else if (cupsLastError() > IPP_OK_CONFLICT)
{
cgiStartHTML(_("Cancel RSS Subscription"));
- cgiShowIPPError(_("Unable to cancel RSS subscription:"));
+ cgiShowIPPError(_("Unable to cancel RSS subscription"));
}
else
{
{
cgiStartHTML(cgiText(_("Change Settings")));
cgiSetVariable("MESSAGE",
- cgiText(_("Unable to change server settings:")));
+ cgiText(_("Unable to change server settings")));
cgiSetVariable("ERROR", cupsLastErrorString());
cgiCopyTemplateLang("error.tmpl");
cgiEndHTML();
cgiStartHTML(cgiText(_("Change Settings")));
cgiSetVariable("MESSAGE",
- cgiText(_("Unable to change server settings:")));
+ cgiText(_("Unable to change server settings")));
cgiSetVariable("ERROR", cupsLastErrorString());
cgiCopyTemplateLang("error.tmpl");
}
if ((tempfd = cupsTempFd(tempfile, sizeof(tempfile))) < 0)
{
cgiStartHTML(cgiText(_("Edit Configuration File")));
- cgiSetVariable("MESSAGE", cgiText(_("Unable to create temporary file:")));
+ cgiSetVariable("MESSAGE", cgiText(_("Unable to create temporary file")));
cgiSetVariable("ERROR", strerror(errno));
cgiCopyTemplateLang("error.tmpl");
cgiEndHTML();
if ((temp = cupsFileOpenFd(tempfd, "w")) == NULL)
{
cgiStartHTML(cgiText(_("Edit Configuration File")));
- cgiSetVariable("MESSAGE", cgiText(_("Unable to create temporary file:")));
+ cgiSetVariable("MESSAGE", cgiText(_("Unable to create temporary file")));
cgiSetVariable("ERROR", strerror(errno));
cgiCopyTemplateLang("error.tmpl");
cgiEndHTML();
else if (status != HTTP_CREATED)
{
cgiSetVariable("MESSAGE",
- cgiText(_("Unable to upload cupsd.conf file:")));
+ cgiText(_("Unable to upload cupsd.conf file")));
cgiSetVariable("ERROR", httpStatus(status));
cgiStartHTML(cgiText(_("Edit Configuration File")));
{
cgiStartHTML(cgiText(_("Edit Configuration File")));
cgiSetVariable("MESSAGE",
- cgiText(_("Unable to access cupsd.conf file:")));
+ cgiText(_("Unable to access cupsd.conf file")));
cgiSetVariable("ERROR", strerror(errno));
cgiCopyTemplateLang("error.tmpl");
cgiEndHTML();
{
cgiStartHTML(cgiText(_("Edit Configuration File")));
cgiSetVariable("MESSAGE",
- cgiText(_("Unable to access cupsd.conf file:")));
+ cgiText(_("Unable to access cupsd.conf file")));
cgiSetVariable("ERROR",
cgiText(_("Unable to edit cupsd.conf files larger than "
"1MB")));
cgiStartHTML(cgiText(_("Edit Configuration File")));
cgiSetVariable("MESSAGE",
- cgiText(_("Unable to access cupsd.conf file:")));
+ cgiText(_("Unable to access cupsd.conf file")));
cgiSetVariable("ERROR", strerror(errno));
cgiCopyTemplateLang("error.tmpl");
cgiEndHTML();
cgiStartHTML(cgiText(_("Delete Class")));
if (cupsLastError() > IPP_OK_CONFLICT)
- cgiShowIPPError(_("Unable to delete class:"));
+ cgiShowIPPError(_("Unable to delete class"));
else
cgiCopyTemplateLang("class-deleted.tmpl");
cgiStartHTML(cgiText(_("Delete Printer")));
if (cupsLastError() > IPP_OK_CONFLICT)
- cgiShowIPPError(_("Unable to delete printer:"));
+ cgiShowIPPError(_("Unable to delete printer"));
else
cgiCopyTemplateLang("printer-deleted.tmpl");
#endif /* HAVE_GSSAPI */
cgiSetVariable("KERBEROS", "");
-#ifdef HAVE_DNSSD
- cgiSetVariable("HAVE_DNSSD", "1");
-#endif /* HAVE_DNSSD */
-
if ((val = cupsGetOption("BrowseWebIF", num_settings,
settings)) == NULL)
val = "No";
exit(0);
}
else if (cupsLastError() > IPP_OK_CONFLICT)
- cgiShowIPPError(_("Unable to get printer attributes:"));
+ cgiShowIPPError(_("Unable to get printer attributes"));
else
cgiCopyTemplateLang("users.tmpl");
else if (cupsLastError() > IPP_OK_CONFLICT)
{
cgiStartHTML(cgiText(_("Set Allowed Users")));
- cgiShowIPPError(_("Unable to change printer:"));
+ cgiShowIPPError(_("Unable to change printer"));
}
else
{
else if (cupsLastError() > IPP_OK_CONFLICT)
{
cgiStartHTML(title);
- cgiShowIPPError(_("Unable to set server default:"));
+ cgiShowIPPError(_("Unable to set server default"));
}
else
{
if ((ppd = ppdOpenFile(filename)) == NULL)
{
cgiSetVariable("ERROR", ppdErrorString(ppdLastError(&i)));
- cgiSetVariable("MESSAGE", cgiText(_("Unable to open PPD file:")));
+ cgiSetVariable("MESSAGE", cgiText(_("Unable to open PPD file")));
cgiStartHTML(title);
cgiCopyTemplateLang("error.tmpl");
cgiEndHTML();
else if (cupsLastError() > IPP_OK_CONFLICT)
{
cgiStartHTML(title);
- cgiShowIPPError(_("Unable to set options:"));
+ cgiShowIPPError(_("Unable to set options"));
}
else
{
else if (cupsLastError() > IPP_OK_CONFLICT)
{
cgiStartHTML(cgiText(_("Set Publishing")));
- cgiShowIPPError(_("Unable to change printer-is-shared attribute:"));
+ cgiShowIPPError(_("Unable to change printer-is-shared attribute"));
}
else
{
*
* Class status CGI for CUPS.
*
- * Copyright 2007-2011 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 1997-2006 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
else if (cupsLastError() > IPP_OK_CONFLICT)
{
cgiStartHTML(title);
- cgiShowIPPError(_("Unable to do maintenance command:"));
+ cgiShowIPPError(_("Unable to do maintenance command"));
}
else
{
* Show the error...
*/
- cgiShowIPPError(_("Unable to get class list:"));
+ cgiShowIPPError(_("Unable to get class list"));
}
cgiEndHTML();
*/
cgiStartHTML(pclass);
- cgiShowIPPError(_("Unable to get class status:"));
+ cgiShowIPPError(_("Unable to get class status"));
}
cgiEndHTML();
cgiStartHTML(cgiText(_("Print Test Page")));
if (cupsLastError() > IPP_OK_CONFLICT)
- cgiShowIPPError(_("Unable to print test page:"));
+ cgiShowIPPError(_("Unable to print test page"));
else
{
cgiSetVariable("PRINTER_NAME", dest);
*
* Job status CGI for CUPS.
*
- * Copyright 2007-2011 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 1997-2006 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
cgiStartHTML(cgiText(_("Jobs")));
if (cupsLastError() > IPP_OK_CONFLICT)
- cgiShowIPPError(_("Job operation failed:"));
+ cgiShowIPPError(_("Job operation failed"));
else if (op == IPP_CANCEL_JOB)
cgiCopyTemplateLang("job-cancel.tmpl");
else if (op == IPP_HOLD_JOB)
*
* Printer status CGI for CUPS.
*
- * Copyright 2007-2011 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 1997-2006 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
else if (cupsLastError() > IPP_OK_CONFLICT)
{
cgiStartHTML(title);
- cgiShowIPPError(_("Unable to do maintenance command:"));
+ cgiShowIPPError(_("Unable to do maintenance command"));
}
else
{
* Show the error...
*/
- cgiShowIPPError(_("Unable to get printer list:"));
+ cgiShowIPPError(_("Unable to get printer list"));
}
cgiEndHTML();
*/
cgiStartHTML(printer);
- cgiShowIPPError(_("Unable to get printer status:"));
+ cgiShowIPPError(_("Unable to get printer status"));
}
cgiEndHTML();
AC_PATH_PROG(PKGCONFIG, pkg-config)
dnl Check for libraries...
-AC_SEARCH_LIBS(fmod, m)
+AC_SEARCH_LIBS(abs, m, AC_DEFINE(HAVE_ABS))
AC_SEARCH_LIBS(crypt, crypt)
+AC_SEARCH_LIBS(fmod, m)
AC_SEARCH_LIBS(getspent, sec gen)
LIBMALLOC=""
esac])
AC_SUBST(LANGUAGES)
-dnl Mac OS X bundle-based localization support
-AC_ARG_WITH(bundledir, [ --with-bundledir set Mac OS X localization bundle directory ],
+dnl OS X bundle-based localization support
+AC_ARG_WITH(bundledir, [ --with-bundledir set OS X localization bundle directory ],
CUPS_BUNDLEDIR="$withval",
if test "x$uname" = xDarwin -a $uversion -ge 100; then
CUPS_BUNDLEDIR="/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A"
if test x$with_local_protocols != xno; then
if test "x$default_local_protocols" = "xdefault"; then
- if test "x$DNSSDLIBS" != "x"; then
+ if test "x$DNSSD_BACKEND" != "x"; then
CUPS_BROWSE_LOCAL_PROTOCOLS="dnssd"
else
CUPS_BROWSE_LOCAL_PROTOCOLS=""
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_IPP_PORT,$DEFAULT_IPP_PORT)
dnl Web interface...
-AC_ARG_ENABLE(webif, [ --enable-webif enable the web interface by default, default=no for Mac OS X])
+AC_ARG_ENABLE(webif, [ --enable-webif enable the web interface by default, default=no for OS X])
case "x$enable_webif" in
xno)
CUPS_WEBIF=No
dnl
dnl Directory stuff for CUPS.
dnl
-dnl Copyright 2007-2011 by Apple Inc.
+dnl Copyright 2007-2012 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
# Transient run-time state
case "$uname" in
Darwin*)
- # Darwin (Mac OS X)
+ # Darwin (OS X)
CUPS_STATEDIR="$CUPS_SERVERROOT"
;;
*)
dnl
dnl GSSAPI/Kerberos library detection for CUPS.
dnl
-dnl Copyright 2007-2011 by Apple Inc.
+dnl Copyright 2007-2012 by Apple Inc.
dnl Copyright 2006-2007 by Easy Software Products.
dnl
dnl This file contains Kerberos support code, copyright 2006 by
if test "x$KRB5CONFIG" != x; then
case "$uname" in
Darwin)
- # Mac OS X weak-links to the Kerberos framework...
+ # OS X weak-links to the Kerberos framework...
LIBGSSAPI="-weak_framework Kerberos"
AC_MSG_CHECKING(for GSS framework)
if test -d /System/Library/Frameworks/GSS.framework; then
dnl
dnl Manpage stuff for CUPS.
dnl
-dnl Copyright 2007-2011 by Apple Inc.
+dnl Copyright 2007-2012 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
MAN8DIR=1m
;;
Linux* | GNU* | Darwin*)
- # Linux, GNU Hurd, and Mac OS X
+ # Linux, GNU Hurd, and OS X
MAN1EXT=1.gz
MAN5EXT=5.gz
MAN7EXT=7.gz
dnl
dnl PAM stuff for CUPS.
dnl
-dnl Copyright 2007-2011 by Apple Inc.
+dnl Copyright 2007-2012 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
case "$uname" in
Darwin*)
- # Darwin/Mac OS X
+ # Darwin/OS X
if test "x$with_pam_module" != x; then
PAMFILE="pam.$with_pam_module"
elif test -f /usr/lib/pam/pam_opendirectory.so.2; then
/*
- * Do we have Mac OS X 10.4's mbr_XXX functions?
+ * Do we have OS X 10.4's mbr_XXX functions?
*/
#undef HAVE_MEMBERSHIP_H
/*
- * Location of Mac OS X localization bundle, if any.
+ * Location of OS X localization bundle, if any.
*/
#undef CUPS_BUNDLEDIR
#undef HAVE_MXML_H
+/*
+ * Do we have the C99 abs() function?
+ */
+
+#undef HAVE_ABS
+#if !defined(HAVE_ABS) && !defined(abs)
+# if defined(__GNUC__) || __STDC_VERSION__ >= 199901L
+# define abs(x) _cups_abs(x)
+static inline int _cups_abs(int i) { return (i < 0 ? -i : i); }
+# elif defined(_MSC_VER)
+# define abs(x) _cups_abs(x)
+static __inline int _cups_abs(int i) { return (i < 0 ? -i : i); }
+# else
+# define abs(x) ((x) < 0 ? -(x) : (x))
+# endif /* __GNUC__ || __STDC_VERSION__ */
+#endif /* !HAVE_ABS && !abs */
+
#endif /* !_CUPS_CONFIG_H_ */
/*
man/cups-deviced.man
man/cups-driverd.man
man/cups-lpd.man
+ man/cups-snmp.man
man/cupsaddsmb.man
man/cupsd.conf.man
man/cupsd.man
-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
+adminutil.o: adminutil.c cups-private.h string-private.h ../config.h \
+ debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
+ http.h array.h http-private.h md5-private.h language-private.h \
+ ../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
+ ppd-private.h ../cups/ppd.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
+attr.o: attr.c cups-private.h string-private.h ../config.h \
+ debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
+ http.h array.h http-private.h md5-private.h language-private.h \
+ ../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
+ ppd-private.h ../cups/ppd.h thread-private.h
+auth.o: auth.c cups-private.h string-private.h ../config.h \
+ debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
+ http.h array.h http-private.h md5-private.h language-private.h \
+ ../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
+ ppd-private.h ../cups/ppd.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
+backend.o: backend.c cups-private.h string-private.h ../config.h \
+ debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
+ http.h array.h http-private.h md5-private.h language-private.h \
+ ../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
+ ppd-private.h ../cups/ppd.h thread-private.h backend.h
+conflicts.o: conflicts.c cups-private.h string-private.h ../config.h \
+ debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
+ http.h array.h http-private.h md5-private.h language-private.h \
+ ../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
+ ppd-private.h ../cups/ppd.h thread-private.h
+custom.o: custom.c cups-private.h string-private.h ../config.h \
+ debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
+ http.h array.h http-private.h md5-private.h language-private.h \
+ ../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
+ ppd-private.h ../cups/ppd.h thread-private.h
+debug.o: debug.c cups-private.h string-private.h ../config.h \
+ debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
+ http.h array.h http-private.h md5-private.h language-private.h \
+ ../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
+ ppd-private.h ../cups/ppd.h thread-private.h
+dest.o: dest.c cups-private.h string-private.h ../config.h \
+ debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
+ http.h array.h http-private.h md5-private.h language-private.h \
+ ../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
+ ppd-private.h ../cups/ppd.h thread-private.h
+dest-job.o: dest-job.c cups-private.h string-private.h ../config.h \
+ debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
+ http.h array.h http-private.h md5-private.h language-private.h \
+ ../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
+ ppd-private.h ../cups/ppd.h thread-private.h
+dest-localization.o: dest-localization.c cups-private.h string-private.h \
+ ../config.h debug-private.h ../cups/versioning.h ipp-private.h \
+ ../cups/ipp.h http.h array.h http-private.h md5-private.h \
+ language-private.h ../cups/transcode.h language.h pwg-private.h \
+ ../cups/cups.h file.h ppd-private.h ../cups/ppd.h thread-private.h
+dest-options.o: dest-options.c cups-private.h string-private.h \
+ ../config.h debug-private.h ../cups/versioning.h ipp-private.h \
+ ../cups/ipp.h http.h array.h http-private.h md5-private.h \
+ language-private.h ../cups/transcode.h language.h pwg-private.h \
+ ../cups/cups.h file.h ppd-private.h ../cups/ppd.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
+emit.o: emit.c cups-private.h string-private.h ../config.h \
+ debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
+ http.h array.h http-private.h md5-private.h language-private.h \
+ ../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
+ ppd-private.h ../cups/ppd.h thread-private.h
+encode.o: encode.c cups-private.h string-private.h ../config.h \
+ debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
+ http.h array.h http-private.h md5-private.h language-private.h \
+ ../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
+ ppd-private.h ../cups/ppd.h thread-private.h
+file.o: file.c file-private.h cups-private.h string-private.h ../config.h \
+ debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
+ http.h array.h http-private.h md5-private.h language-private.h \
+ ../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
+ ppd-private.h ../cups/ppd.h thread-private.h
+getdevices.o: getdevices.c cups-private.h string-private.h ../config.h \
+ debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
+ http.h array.h http-private.h md5-private.h language-private.h \
+ ../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
+ ppd-private.h ../cups/ppd.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
+getputfile.o: getputfile.c cups-private.h string-private.h ../config.h \
+ debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
+ http.h array.h http-private.h md5-private.h language-private.h \
+ ../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
+ ppd-private.h ../cups/ppd.h thread-private.h
+globals.o: globals.c cups-private.h string-private.h ../config.h \
+ debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
+ http.h array.h http-private.h md5-private.h language-private.h \
+ ../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
+ ppd-private.h ../cups/ppd.h thread-private.h
+http.o: http.c cups-private.h string-private.h ../config.h \
+ debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
+ http.h array.h http-private.h md5-private.h language-private.h \
+ ../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
+ ppd-private.h ../cups/ppd.h thread-private.h
+http-addr.o: http-addr.c cups-private.h string-private.h ../config.h \
+ debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
+ http.h array.h http-private.h md5-private.h language-private.h \
+ ../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
+ ppd-private.h ../cups/ppd.h thread-private.h
+http-addrlist.o: http-addrlist.c cups-private.h string-private.h \
+ ../config.h debug-private.h ../cups/versioning.h ipp-private.h \
+ ../cups/ipp.h http.h array.h http-private.h md5-private.h \
+ language-private.h ../cups/transcode.h language.h pwg-private.h \
+ ../cups/cups.h file.h ppd-private.h ../cups/ppd.h thread-private.h
+http-support.o: http-support.c cups-private.h string-private.h \
+ ../config.h debug-private.h ../cups/versioning.h ipp-private.h \
+ ../cups/ipp.h http.h array.h http-private.h md5-private.h \
+ language-private.h ../cups/transcode.h language.h pwg-private.h \
+ ../cups/cups.h file.h ppd-private.h ../cups/ppd.h thread-private.h
+ipp.o: ipp.c cups-private.h string-private.h ../config.h debug-private.h \
+ ../cups/versioning.h ipp-private.h ../cups/ipp.h http.h array.h \
+ http-private.h md5-private.h language-private.h ../cups/transcode.h \
+ language.h pwg-private.h ../cups/cups.h file.h ppd-private.h \
+ ../cups/ppd.h thread-private.h
+ipp-support.o: ipp-support.c cups-private.h string-private.h ../config.h \
+ debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
+ http.h array.h http-private.h md5-private.h language-private.h \
+ ../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
+ ppd-private.h ../cups/ppd.h thread-private.h
+langprintf.o: langprintf.c cups-private.h string-private.h ../config.h \
+ debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
+ http.h array.h http-private.h md5-private.h language-private.h \
+ ../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
+ ppd-private.h ../cups/ppd.h thread-private.h
+language.o: language.c cups-private.h string-private.h ../config.h \
+ debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
+ http.h array.h http-private.h md5-private.h language-private.h \
+ ../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
+ ppd-private.h ../cups/ppd.h thread-private.h
+localize.o: localize.c cups-private.h string-private.h ../config.h \
+ debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
+ http.h array.h http-private.h md5-private.h language-private.h \
+ ../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
+ ppd-private.h ../cups/ppd.h thread-private.h
+mark.o: mark.c cups-private.h string-private.h ../config.h \
+ debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
+ http.h array.h http-private.h md5-private.h language-private.h \
+ ../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
+ ppd-private.h ../cups/ppd.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
+notify.o: notify.c cups-private.h string-private.h ../config.h \
+ debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
+ http.h array.h http-private.h md5-private.h language-private.h \
+ ../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
+ ppd-private.h ../cups/ppd.h thread-private.h
+options.o: options.c cups-private.h string-private.h ../config.h \
+ debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
+ http.h array.h http-private.h md5-private.h language-private.h \
+ ../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
+ ppd-private.h ../cups/ppd.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
+ppd.o: ppd.c cups-private.h string-private.h ../config.h debug-private.h \
+ ../cups/versioning.h ipp-private.h ../cups/ipp.h http.h array.h \
+ http-private.h md5-private.h language-private.h ../cups/transcode.h \
+ language.h pwg-private.h ../cups/cups.h file.h ppd-private.h \
+ ../cups/ppd.h thread-private.h
+ppd-cache.o: ppd-cache.c cups-private.h string-private.h ../config.h \
+ debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
+ http.h array.h http-private.h md5-private.h language-private.h \
+ ../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
+ ppd-private.h ../cups/ppd.h thread-private.h
+pwg-media.o: pwg-media.c cups-private.h string-private.h ../config.h \
+ debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
+ http.h array.h http-private.h md5-private.h language-private.h \
+ ../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
+ ppd-private.h ../cups/ppd.h thread-private.h
+request.o: request.c cups-private.h string-private.h ../config.h \
+ debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
+ http.h array.h http-private.h md5-private.h language-private.h \
+ ../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
+ ppd-private.h ../cups/ppd.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
+ string-private.h ../config.h debug-private.h ipp-private.h \
+ ../cups/ipp.h http.h array.h http-private.h md5-private.h \
+ language-private.h ../cups/transcode.h language.h pwg-private.h \
+ ../cups/cups.h file.h ppd-private.h ../cups/ppd.h thread-private.h
+snmp.o: snmp.c cups-private.h string-private.h ../config.h \
+ debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
+ http.h array.h http-private.h md5-private.h language-private.h \
+ ../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
+ ppd-private.h ../cups/ppd.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
+tempfile.o: tempfile.c cups-private.h string-private.h ../config.h \
+ debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
+ http.h array.h http-private.h md5-private.h language-private.h \
+ ../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
+ ppd-private.h ../cups/ppd.h thread-private.h
+thread.o: thread.c cups-private.h string-private.h ../config.h \
+ debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
+ http.h array.h http-private.h md5-private.h language-private.h \
+ ../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
+ ppd-private.h ../cups/ppd.h thread-private.h
+transcode.o: transcode.c cups-private.h string-private.h ../config.h \
+ debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
+ http.h array.h http-private.h md5-private.h language-private.h \
+ ../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
+ ppd-private.h ../cups/ppd.h thread-private.h
+usersys.o: usersys.c cups-private.h string-private.h ../config.h \
+ debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
+ http.h array.h http-private.h md5-private.h language-private.h \
+ ../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
+ ppd-private.h ../cups/ppd.h thread-private.h
+util.o: util.c cups-private.h string-private.h ../config.h \
+ debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
+ http.h array.h http-private.h md5-private.h language-private.h \
+ ../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
+ ppd-private.h ../cups/ppd.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/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
+testoptions.o: testoptions.c cups-private.h string-private.h ../config.h \
+ debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
+ http.h array.h http-private.h md5-private.h language-private.h \
+ ../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
+ ppd-private.h ../cups/ppd.h thread-private.h
+testlang.o: testlang.c cups-private.h string-private.h ../config.h \
+ debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
+ http.h array.h http-private.h md5-private.h language-private.h \
+ ../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
+ ppd-private.h ../cups/ppd.h thread-private.h
+testppd.o: testppd.c cups-private.h string-private.h ../config.h \
+ debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
+ http.h array.h http-private.h md5-private.h language-private.h \
+ ../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
+ ppd-private.h ../cups/ppd.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 \
+ debug-private.h ipp-private.h http-private.h md5-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
+testsnmp.o: testsnmp.c cups-private.h string-private.h ../config.h \
+ debug-private.h ../cups/versioning.h ipp-private.h ../cups/ipp.h \
+ http.h array.h http-private.h md5-private.h language-private.h \
+ ../cups/transcode.h language.h pwg-private.h ../cups/cups.h file.h \
+ ppd-private.h ../cups/ppd.h thread-private.h snmp-private.h
*
* Administration utility API definitions for CUPS.
*
- * Copyright 2007-2011 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 2001-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
/*
* 'cupsAdminCreateWindowsPPD()' - Create the Windows PPD file for a printer.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
char * /* O - PPD file or NULL */
/*
* 'cupsAdminExportSamba()' - Export a printer to Samba.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
int /* O - 1 on success, 0 on failure */
* The returned settings should be freed with cupsFreeOptions() when
* you are done with them.
*
- * @since CUPS 1.3/Mac OS X 10.5@
+ * @since CUPS 1.3/OS X 10.5@
*/
int /* O - 1 on success, 0 on failure */
/*
* 'cupsAdminSetServerSettings()' - Set settings on the server.
*
- * @since CUPS 1.3/Mac OS X 10.5@
+ * @since CUPS 1.3/OS X 10.5@
*/
int /* O - 1 on success, 0 on failure */
Filter and backend programming introduction for CUPS.
- Copyright 2007-2011 by Apple Inc.
+ Copyright 2007-2012 by Apple Inc.
Copyright 1997-2006 by Easy Software Products, all rights reserved.
These coded instructions, statements, and computer programs are the
<p>In addition, some operating systems provide additional security mechanisms
that further limit file system access, even for backends running as root. On
-Mac OS X, for example, no backend may write to a user's home directory.</p>
+OS X, for example, no backend may write to a user's home directory.</p>
</blockquote>
<h3><a name="SIGNALS">Canceled Jobs and Signal Handling</a></h3>
<dt>APPLE_LANGUAGE</dt>
<dd>The Apple language identifier associated with the job
- (Mac OS X only).</dd>
+ (OS X only).</dd>
<dt>CHARSET</dt>
<dd>The job character set, typically "utf-8".</dd>
<blockquote><b>Note:</b>
<p>"STATE:" messages often provide visible alerts to the user. For example,
-on Mac OS X setting a printer-state-reason value with an "-error" or
+on OS X setting a printer-state-reason value with an "-error" or
"-warning" suffix will cause the printer's dock item to bounce if the
corresponding reason is localized with a cupsIPPReason keyword in the
printer's PPD file.</p>
PPD API header for CUPS.
- Copyright 2008-2011 by Apple Inc.
+ Copyright 2008-2012 by Apple Inc.
These coded instructions, statements, and computer programs are the
property of Apple Inc. and are protected by Federal copyright
<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>
+<blockquote>The PPD API is deprecated starting in CUPS 1.6/OS X 10.8. 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>
<div class='summary'><table summary='General Information'>
<thead>
PPD API introduction for CUPS.
- Copyright 2007-2011 by Apple Inc.
+ Copyright 2007-2012 by Apple Inc.
Copyright 1997-2006 by Easy Software Products, all rights reserved.
These coded instructions, statements, and computer programs are the
<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>
+<blockquote>The PPD API is deprecated starting in CUPS 1.6/OS X 10.8. 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
*
* Sorted array routines for CUPS.
*
- * Copyright 2007-2011 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* appended at the end of the run of identical elements. For unsorted arrays,
* the element is appended to the end of the array.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
int /* O - 1 on success, 0 on failure */
* The caller is responsible for freeing the memory used by the
* elements themselves.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
void
/*
* 'cupsArrayCount()' - Get the number of elements in the array.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
int /* O - Number of elements */
* The current element is undefined until you call @link cupsArrayFind@,
* @link cupsArrayFirst@, or @link cupsArrayIndex@, or @link cupsArrayLast@.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
void * /* O - Element */
* The caller is responsible for freeing the memory used by the
* elements themselves.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
void
/*
* 'cupsArrayDup()' - Duplicate the array.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
cups_array_t * /* O - Duplicate array */
/*
* 'cupsArrayFind()' - Find an element in the array.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
void * /* O - Element found or @code NULL@ */
/*
* 'cupsArrayFirst()' - Get the first element in the array.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
void * /* O - First element or @code NULL@ if the array is empty */
* The current element is undefined until you call @link cupsArrayFind@,
* @link cupsArrayFirst@, or @link cupsArrayIndex@, or @link cupsArrayLast@.
*
- * @since CUPS 1.3/Mac OS X 10.5@
+ * @since CUPS 1.3/OS X 10.5@
*/
int /* O - Index of the current element, starting at 0 */
/*
* 'cupsArrayGetInsert()' - Get the index of the last inserted element.
*
- * @since CUPS 1.3/Mac OS X 10.5@
+ * @since CUPS 1.3/OS X 10.5@
*/
int /* O - Index of the last inserted element, starting at 0 */
/*
* 'cupsArrayIndex()' - Get the N-th element in the array.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
void * /* O - N-th element or @code NULL@ */
* inserted at the beginning of the run of identical elements. For unsorted
* arrays, the element is inserted at the beginning of the array.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
int /* O - 0 on failure, 1 on success */
/*
* 'cupsArrayLast()' - Get the last element in the array.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
void * /* O - Last element or @code NULL@ if the array is empty */
* data pointer argument can safely be omitted when not required so functions
* like @code strcmp@ can be used for sorted string arrays.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
cups_array_t * /* O - Array */
* The hash function ("h") is used to implement cached lookups with the
* specified hash size ("hsize").
*
- * @since CUPS 1.3/Mac OS X 10.5@
+ * @since CUPS 1.3/OS X 10.5@
*/
cups_array_t * /* O - Array */
* The free function ("cf") is used to automatically free/release elements when
* removed or the array is deleted.
*
- * @since CUPS 1.5/Mac OS X 10.7@
+ * @since CUPS 1.5/OS X 10.7@
*/
cups_array_t * /* O - Array */
* @link cupsArrayFirst@, or @link cupsArrayIndex@, or @link cupsArrayLast@
* to set the current element.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
void * /* O - Next element or @code NULL@ */
* @link cupsArrayFirst@, or @link cupsArrayIndex@, or @link cupsArrayLast@
* to set the current element.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
void * /* O - Previous element or @code NULL@ */
* The caller is responsible for freeing the memory used by the
* removed element.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
int /* O - 1 on success, 0 on failure */
/*
* 'cupsArrayRestore()' - Reset the current element to the last @link cupsArraySave@.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
void * /* O - New current element */
*
* The save/restore stack is guaranteed to be at least 32 elements deep.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
int /* O - 1 on success, 0 on failure */
/*
* 'cupsArrayUserData()' - Return the user data for an array.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
void * /* O - User data */
/*
* 'cups_array_add()' - Insert or append an element to the array.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
static int /* O - 1 on success, 0 on failure */
*
* PPD model-specific attribute routines for CUPS.
*
- * Copyright 2007-2011 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 1997-2006 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
/*
* 'ppdFindAttr()' - Find the first matching attribute.
*
- * @since CUPS 1.1.19/Mac OS X 10.3@
+ * @since CUPS 1.1.19/OS X 10.3@
*/
ppd_attr_t * /* O - Attribute or @code NULL@ if not found */
/*
* 'ppdFindNextAttr()' - Find the next matching attribute.
*
- * @since CUPS 1.1.19/Mac OS X 10.3@
+ * @since CUPS 1.1.19/OS X 10.3@
*/
ppd_attr_t * /* O - Attribute or @code NULL@ if not found */
*
* Authentication functions for CUPS.
*
- * Copyright 2007-2011 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products.
*
* This file contains Kerberos support code, copyright 2006 by
* This function should be called in response to a @code HTTP_UNAUTHORIZED@
* status, prior to resubmitting your request.
*
- * @since CUPS 1.1.20/Mac OS X 10.4@
+ * @since CUPS 1.1.20/OS X 10.4@
*/
int /* O - 0 on success, -1 on error */
*
* Backchannel functions for CUPS.
*
- * Copyright 2007-2010 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
*
* cupsBackChannelRead() - Read data from the backchannel.
* cupsBackChannelWrite() - Write data to the backchannel.
- * cups_setup() - Setup select()
+ * cups_setup() - Setup select()
*/
/*
* parameter controls how many seconds to wait for the data - use 0.0 to
* return immediately if there is no data, -1.0 to wait for data indefinitely.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
ssize_t /* O - Bytes read or -1 on error */
* 0.0 to return immediately if the data cannot be written, -1.0 to wait
* indefinitely.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
ssize_t /* O - Bytes written or -1 on error */
/*
- * 'cups_setup()' - Setup select()
+ * 'cups_setup()' - Setup select()
*/
static void
* variable or the device URI passed in argv[0], whichever is found
* first.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
const char * /* O - Device URI or @code NULL@ */
*auth_info_required; /* AUTH_INFO_REQUIRED env var */
_cups_globals_t *cg = _cupsGlobals(); /* Global info */
int options; /* Resolve options */
+ ppd_file_t *ppd; /* PPD file */
+ ppd_attr_t *ppdattr; /* PPD attribute */
if ((device_uri = getenv("DEVICE_URI")) == NULL)
!strcmp(auth_info_required, "negotiate"))
options |= _HTTP_RESOLVE_FQDN;
+ if ((ppd = ppdOpenFile(getenv("PPD"))) != NULL)
+ {
+ if ((ppdattr = ppdFindAttr(ppd, "cupsIPPFaxOut", NULL)) != NULL &&
+ !_cups_strcasecmp(ppdattr->value, "true"))
+ options |= _HTTP_RESOLVE_FAXOUT;
+
+ ppdClose(ppd);
+ }
+
return (_httpResolveURI(device_uri, cg->resolved_uri,
sizeof(cg->resolved_uri), options, NULL, NULL));
}
* It handles quoting of special characters in the device-make-and-model,
* device-info, device-id, and device-location strings.
*
- * @since CUPS 1.4/Mac OS X 10.6@
+ * @since CUPS 1.4/OS X 10.6@
*/
void
*
* Option marking routines for CUPS.
*
- * Copyright 2007-2011 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
* the conflicting options. The returned option array must be freed using
* @link cupsFreeOptions@.
*
- * @since CUPS 1.4/Mac OS X 10.6@
+ * @since CUPS 1.4/OS X 10.6@
*/
int /* O - Number of conflicting options */
* choice for the conflicting option, then iterating over all possible choices
* until a non-conflicting option choice is found.
*
- * @since CUPS 1.4/Mac OS X 10.6@
+ * @since CUPS 1.4/OS X 10.6@
*/
int /* O - 1 on success, 0 on failure */
* This function tests whether a particular option choice is available based
* on constraints against options in the "InstallableOptions" group.
*
- * @since CUPS 1.4/Mac OS X 10.6@
+ * @since CUPS 1.4/OS X 10.6@
*/
int /* O - 1 if conflicting, 0 if not conflicting */
* Constants...
*/
-# define CUPS_VERSION 1.0599
+# define CUPS_VERSION 1.0600
# define CUPS_VERSION_MAJOR 1
# define CUPS_VERSION_MINOR 6
-# define CUPS_VERSION_PATCH -1
+# define CUPS_VERSION_PATCH 0
# define CUPS_BC_FD 3
/* Back-channel file descriptor for
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@ */
+ * @since CUPS 1.2/OS X 10.5@ */
CUPS_PRINTER_NOT_SHARED = 0x200000, /* Printer is not shared
- * @since CUPS 1.2/Mac OS X 10.5@ */
+ * @since CUPS 1.2/OS X 10.5@ */
CUPS_PRINTER_AUTHENTICATED = 0x400000,/* Printer requires authentication
- * @since CUPS 1.2/Mac OS X 10.5@ */
+ * @since CUPS 1.2/OS X 10.5@ */
CUPS_PRINTER_COMMANDS = 0x800000, /* Printer supports maintenance commands
- * @since CUPS 1.2/Mac OS X 10.5@ */
+ * @since CUPS 1.2/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@ */
+ * @since CUPS 1.4/OS X 10.6@ */
CUPS_PRINTER_MFP = 0x4000000, /* Printer with scanning capabilities
- * @since CUPS 1.4/Mac OS X 10.6@ */
+ * @since CUPS 1.4/OS X 10.6@ */
CUPS_PRINTER_OPTIONS = 0x6fffc /* ~(CLASS | REMOTE | IMPLICIT |
* DEFAULT | FAX | REJECTING | DELETE |
* NOT_SHARED | AUTHENTICATED |
typedef struct _cups_dinfo_s cups_dinfo_t;
/* Destination capability and status
- * information @since CUPS 1.6@ */
+ * information @since CUPS 1.6/OS X 10.8@ */
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@ ****/
+typedef struct cups_size_s /**** Media Size @since CUPS 1.6/OS X 10.8@ ****/
{
char media[128]; /* Media name to use */
int width, /* Width in hundredths of millimeters */
cups_array_t *distinguished_names,
void *user_data);
/* Client credentials callback
- * @since CUPS 1.5/Mac OS X 10.7@ */
+ * @since CUPS 1.5/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@ */
+ * @since CUPS 1.6/OS X 10.8@ */
# ifdef __BLOCKS__
typedef int (^cups_dest_block_t)(unsigned flags, cups_dest_t *dest);
/* Destination enumeration block
- * @since CUPS 1.6@ */
+ * @since CUPS 1.6/OS X 10.8@ */
# endif /* __BLOCKS__ */
typedef void (*cups_device_cb_t)(const char *device_class,
const char *device_uri,
const char *device_location, void *user_data);
/* Device callback
- * @since CUPS 1.4/Mac OS X 10.6@ */
+ * @since CUPS 1.4/OS X 10.6@ */
typedef const char *(*cups_password_cb_t)(const char *prompt);
/* Password callback */
const char *resource,
void *user_data);
/* New password callback
- * @since CUPS 1.4/Mac OS X 10.6@ */
+ * @since CUPS 1.4/OS X 10.6@ */
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@ */
+ * @since CUPS 1.5/OS X 10.7@ */
/*
extern int cupsSetDests2(http_t *http, int num_dests,
cups_dest_t *dests) _CUPS_API_1_1_21;
-/**** New in CUPS 1.2/Mac OS X 10.5 ****/
+/**** New in CUPS 1.2/OS X 10.5 ****/
extern ssize_t cupsBackChannelRead(char *buffer, size_t bytes,
double timeout) _CUPS_API_1_2;
extern ssize_t cupsBackChannelWrite(const char *buffer, size_t bytes,
cups_option_t **options) _CUPS_API_1_2;
extern cups_file_t *cupsTempFile2(char *filename, int len) _CUPS_API_1_2;
-/**** New in CUPS 1.3/Mac OS X 10.5 ****/
+/**** New in CUPS 1.3/OS X 10.5 ****/
extern ipp_t *cupsDoIORequest(http_t *http, ipp_t *request,
const char *resource, int infile,
int outfile) _CUPS_API_1_3;
int num_dests,
cups_dest_t *dests) _CUPS_API_1_3;
-/**** New in CUPS 1.4/Mac OS X 10.6 ****/
+/**** New in CUPS 1.4/OS X 10.6 ****/
extern ipp_status_t cupsCancelJob2(http_t *http, const char *name,
int job_id, int purge) _CUPS_API_1_4;
extern int cupsCreateJob(http_t *http, const char *name,
extern http_status_t cupsWriteRequestData(http_t *http, const char *buffer,
size_t length) _CUPS_API_1_4;
-/**** New in CUPS 1.5 ****/
+/**** New in CUPS 1.5/OS X 10.7 ****/
extern void cupsSetClientCertCB(cups_client_cert_cb_t cb,
void *user_data) _CUPS_API_1_5;
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 ****/
+/**** New in CUPS 1.6/OS X 10.8 ****/
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,
*
* PPD custom option routines for CUPS.
*
- * Copyright 2007-2011 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 1997-2006 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
/*
* 'ppdFindCustomOption()' - Find a custom option.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
ppd_coption_t * /* O - Custom option or NULL */
/*
* 'ppdFindCustomParam()' - Find a parameter for a custom option.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
ppd_cparam_t * /* O - Custom parameter or NULL */
/*
* 'ppdFirstCustomParam()' - Return the first parameter for a custom option.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
ppd_cparam_t * /* O - Custom parameter or NULL */
/*
* 'ppdNextCustomParam()' - Return the next parameter for a custom option.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
ppd_cparam_t * /* O - Custom parameter or NULL */
* Returns IPP_OK on success and IPP_NOT_AUTHORIZED or IPP_FORBIDDEN on
* failure.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
ipp_status_t
* "job_id" is the job ID returned by cupsCreateDestJob. Returns @code IPP_OK@
* on success.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
ipp_status_t /* O - IPP status code */
* Returns @code IPP_OK@ or @code IPP_OK_SUBST@ on success, saving the job ID
* in the variable pointed to by "job_id".
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
ipp_status_t /* O - IPP status code */
*
* Returns @code IPP_OK@ or @code IPP_OK_SUBST@ on success.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
ipp_status_t /* O - Status of document submission */
* if this is the last document to be submitted in the job. Returns
* @code HTTP_CONTINUE@ on success.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
http_status_t /* O - Status of document creation */
* The returned string is stored in the localization array and will become
* invalid if the localization array is deleted.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
const char * /* O - Localized string */
* The returned string is stored in the localization array and will become
* invalid if the localization array is deleted.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
const char * /* O - Localized string */
*
* Returns 1 if supported, 0 otherwise.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
int /* O - 1 if supported, 0 otherwise */
* If cupsCopyDestConflicts returns 1 but "num_resolved" and "resolved" are set
* to 0 and NULL, respectively, then the conflict cannot be resolved.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
int /* O - 1 if there is a conflict */
* The caller is responsible for calling @link cupsFreeDestInfo@ on the return
* value. @code NULL@ is returned on error.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
cups_dinfo_t * /* O - Destination information */
*
* Returns 1 when there is a match and 0 if there is not a match.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
int /* O - 1 on match, 0 on failure */
*
* Returns 1 when there is a match and 0 if there is not a match.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
int /* O - 1 on match, 0 on failure */
* to by "cancel" is non-zero, or the callback function (or block) returns 0,
* The caller is responsible for calling httpClose() on the returned object.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
http_t * /* O - Connection to server or @code NULL@ */
* to by "cancel" is non-zero, or the callback function (or block) returns 0,
* The caller is responsible for calling httpClose() on the returned object.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
http_t * /* O - Connection to server or @code NULL@ */
* copy) - for use with the cupsEnumDests* functions. The caller is responsible
* for calling cupsFreeDests() on the returned object(s).
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
int
* Enumeration happens on the current thread and does not return until all
* destinations have been enumerated or the callback function returns 0.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
int /* O - 1 on success, 0 on failure */
* Range check input...
*/
+ (void)flags;
+
if (!cb)
return (0);
* Enumeration happens on the current thread and does not return until all
* destinations have been enumerated or the block returns 0.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
int /* O - 1 on success, 0 on failure */
* Free the memory used by the destination array using the @link cupsFreeDests@
* function.
*
- * Note: On Mac OS X this function also gets the default paper from the system
+ * Note: On OS X this function also gets the default paper from the system
* preferences (~/L/P/org.cups.PrintingPrefs.plist) and includes it in the
* options array for each destination that supports it.
*/
* Use the @link cupsFreeDests@ function to free the destination list and
* the @link cupsGetDest@ function to find a particular destination.
*
- * @since CUPS 1.1.21/Mac OS X 10.4@
+ * @since CUPS 1.1.21/OS X 10.4@
*/
int /* O - Number of destinations */
* The returned destination must be freed using @link cupsFreeDests@ with a
* "num_dests" value of 1.
*
- * @since CUPS 1.4/Mac OS X 10.6@
+ * @since CUPS 1.4/OS X 10.6@
*/
cups_dest_t * /* O - Destination or @code NULL@ */
* @link cupsSetDests@ or @link cupsSetDests2@ functions to save the new
* options for the user.
*
- * @since CUPS 1.3/Mac OS X 10.5@
+ * @since CUPS 1.3/OS X 10.5@
*/
int /* O - New number of destinations */
/*
* 'cupsSetDefaultDest()' - Set the default destination.
*
- * @since CUPS 1.3/Mac OS X 10.5@
+ * @since CUPS 1.3/OS X 10.5@
*/
void
* This function saves the destinations to /etc/cups/lpoptions when run
* as root and ~/.cups/lpoptions when run as a normal user.
*
- * @since CUPS 1.1.21/Mac OS X 10.4@
+ * @since CUPS 1.1.21/OS X 10.4@
*/
int /* O - 0 on success, -1 on error */
*
* This set of APIs abstracts enumeration of directory entries.
*
- * Copyright 2007-2010 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 1997-2005 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
/*
* 'cupsDirClose()' - Close a directory.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
void
/*
* 'cupsDirOpen()' - Open a directory.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
cups_dir_t * /* O - Directory pointer or @code NULL@ if the directory could not be opened. */
/*
* 'cupsDirRead()' - Read the next directory entry.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
cups_dentry_t * /* O - Directory entry or @code NULL@ if there are no more */
/*
* 'cupsDirRewind()' - Rewind to the start of the directory.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
void
/*
* 'cupsDirClose()' - Close a directory.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
void
/*
* 'cupsDirOpen()' - Open a directory.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
cups_dir_t * /* O - Directory pointer or @code NULL@ if the directory could not be opened. */
/*
* 'cupsDirRead()' - Read the next directory entry.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
cups_dentry_t * /* O - Directory entry or @code NULL@ when there are no more */
/*
* 'cupsDirRewind()' - Rewind to the start of the directory.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
void
* The choices array should be freed using @code free@ when you are
* finished with it.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
int /* O - Number of options marked */
*
* When "limit" is zero, this function is identical to ppdEmit().
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
int /* O - 0 on success, -1 on failure */
/*
* 'ppdEmitJCLEnd()' - Emit JCLEnd code to a file.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
int /* O - 0 on success, -1 on failure */
* The return string is allocated on the heap and should be freed using
* @code free@ when you are done with it.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
char * /* O - String containing option code or @code NULL@ if there is no option code */
* function multiple times for each group, or use cupsEncodeOptions()
* to add the standard groups.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
void
* our own file functions allows us to provide transparent support of
* gzip'd print files, PPD files, etc.
*
- * Copyright 2007-2011 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
/*
* 'cupsFileClose()' - Close a CUPS file.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
int /* O - 0 on success, -1 on error */
/*
* 'cupsFileCompression()' - Return whether a file is compressed.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
int /* O - @code CUPS_FILE_NONE@ or @code CUPS_FILE_GZIP@ */
/*
* 'cupsFileEOF()' - Return the end-of-file status.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
int /* O - 1 on end of file, 0 otherwise */
* the supplied paths, @code NULL@ is returned. A @code NULL@ path only
* matches the current directory.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
const char * /* O - Full path to file or @code NULL@ if not found */
/*
* 'cupsFileFlush()' - Flush pending output.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
int /* O - 0 on success, -1 on error */
/*
* 'cupsFileGetChar()' - Get a single character from a file.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
int /* O - Character or -1 on end of file */
/*
* 'cupsFileGetConf()' - Get a line from a configuration file.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
char * /* O - Line read or @code NULL@ on end of file or error */
* nul-terminated, however you should use the returned length to determine
* the number of bytes on the line.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
size_t /* O - Number of bytes on line or 0 on end of file */
/*
* 'cupsFileGets()' - Get a CR and/or LF-terminated line.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
char * /* O - Line read or @code NULL@ on end of file or error */
/*
* 'cupsFileLock()' - Temporarily lock access to a file.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
int /* O - 0 on success, -1 on error */
/*
* 'cupsFileNumber()' - Return the file descriptor associated with a CUPS file.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
int /* O - File descriptor */
* connection as needed, generally preferring IPv6 connections when there is
* a choice.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
cups_file_t * /* O - CUPS file or @code NULL@ if the file or socket cannot be opened */
* supplied which enables Flate compression of the file. Compression is
* not supported for the "a" (append) mode.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
cups_file_t * /* O - CUPS file or @code NULL@ if the file could not be opened */
/*
* 'cupsFilePeekChar()' - Peek at the next character from a file.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
int /* O - Character or -1 on end of file */
/*
* 'cupsFilePrintf()' - Write a formatted string.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
int /* O - Number of bytes written or -1 on error */
/*
* 'cupsFilePutChar()' - Write a character.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
int /* O - 0 on success, -1 on error */
*
* This function handles any comment escaping of the value.
*
- * @since CUPS 1.4/Mac OS X 10.6@
+ * @since CUPS 1.4/OS X 10.6@
*/
ssize_t /* O - Number of bytes written or -1 on error */
*
* Like the @code fputs@ function, no newline is appended to the string.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
int /* O - Number of bytes written or -1 on error */
/*
* 'cupsFileRead()' - Read from a file.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
ssize_t /* O - Number of bytes read or -1 on error */
* 'cupsFileRewind()' - Set the current file position to the beginning of the
* file.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
off_t /* O - New file position or -1 on error */
/*
* 'cupsFileSeek()' - Seek in a file.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
off_t /* O - New file position or -1 on error */
/*
* 'cupsFileStderr()' - Return a CUPS file associated with stderr.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
cups_file_t * /* O - CUPS file */
/*
* 'cupsFileStdin()' - Return a CUPS file associated with stdin.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
cups_file_t * /* O - CUPS file */
/*
* 'cupsFileStdout()' - Return a CUPS file associated with stdout.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
cups_file_t * /* O - CUPS file */
/*
* 'cupsFileTell()' - Return the current file position.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
off_t /* O - File position */
/*
* 'cupsFileUnlock()' - Unlock access to a file.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
int /* O - 0 on success, -1 on error */
/*
* 'cupsFileWrite()' - Write to a file.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
ssize_t /* O - Number of bytes written or -1 on error */
*
* cupsGetDevices implementation for CUPS.
*
- * Copyright 2008-2011 by Apple Inc.
+ * Copyright 2008-2012 by Apple Inc.
*
* These coded instructions, statements, and computer programs are the
* property of Apple Inc. and are protected by Federal copyright
* parameters provide comma-delimited lists of backends to include or omit from
* the request respectively.
*
- * @since CUPS 1.4/Mac OS X 10.6@
+ * @since CUPS 1.4/OS X 10.6@
*/
ipp_status_t /* O - Request status - @code IPP_OK@ on success. */
*
* Get/put file functions for CUPS.
*
- * Copyright 2007-2010 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 1997-2006 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
*
* This function returns @code HTTP_OK@ when the file is successfully retrieved.
*
- * @since CUPS 1.1.20/Mac OS X 10.4@
+ * @since CUPS 1.1.20/OS X 10.4@
*/
http_status_t /* O - HTTP status */
*
* This function returns @code HTTP_OK@ when the file is successfully retrieved.
*
- * @since CUPS 1.1.20/Mac OS X 10.4@
+ * @since CUPS 1.1.20/OS X 10.4@
*/
http_status_t /* O - HTTP status */
* This function returns @code HTTP_CREATED@ when the file is stored
* successfully.
*
- * @since CUPS 1.1.20/Mac OS X 10.4@
+ * @since CUPS 1.1.20/OS X 10.4@
*/
http_status_t /* O - HTTP status */
* This function returns @code HTTP_CREATED@ when the file is stored
* successfully.
*
- * @since CUPS 1.1.20/Mac OS X 10.4@
+ * @since CUPS 1.1.20/OS X 10.4@
*/
http_status_t /* O - HTTP status */
static pthread_once_t cups_globals_key_once = PTHREAD_ONCE_INIT;
/* One-time initialization object */
#endif /* HAVE_PTHREAD_H */
+#if defined(HAVE_PTHREAD_H) || defined(WIN32)
static _cups_mutex_t cups_global_mutex = _CUPS_MUTEX_INITIALIZER;
/* Global critical section */
+#endif /* HAVE_PTHREAD_H || WIN32 */
/*
static void cups_fix_path(char *path);
#endif /* WIN32 */
static _cups_globals_t *cups_globals_alloc(void);
+#if defined(HAVE_PTHREAD_H) || defined(WIN32)
static void cups_globals_free(_cups_globals_t *g);
+#endif /* HAVE_PTHREAD_H || WIN32 */
#ifdef HAVE_PTHREAD_H
static void cups_globals_init(void);
#endif /* HAVE_PTHREAD_H */
* 'cups_globals_free()' - Free global data.
*/
+#if defined(HAVE_PTHREAD_H) || defined(WIN32)
static void
cups_globals_free(_cups_globals_t *cg) /* I - Pointer to global data */
{
free(cg);
}
+#endif /* HAVE_PTHREAD_H || WIN32 */
#ifdef HAVE_PTHREAD_H
*
* HTTP address routines for CUPS.
*
- * Copyright 2007-2011 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 1997-2006 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
/*
* 'httpAddrAny()' - Check for the "any" address.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
int /* O - 1 if "any", 0 otherwise */
/*
* 'httpAddrEqual()' - Compare two addresses.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
int /* O - 1 if equal, 0 if not */
/*
* 'httpAddrLength()' - Return the length of the address in bytes.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
int /* O - Length in bytes */
/*
* 'httpAddrLocalhost()' - Check for the local loopback address.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
int /* O - 1 if local host, 0 otherwise */
/*
* 'httpAddrLookup()' - Lookup the hostname associated with the address.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
char * /* O - Host name */
/*
* 'httpAddrString()' - Convert an address to a numeric string.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
char * /* O - Numeric address string */
* Otherwise, return the FQDN for the local system using both gethostname()
* and gethostbyname() to get the local hostname with domain.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
const char * /* O - FQDN for connection or system */
/*
* 'httpAddrConnect()' - Connect to any of the addresses in the list.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
http_addrlist_t * /* O - Connected address or NULL on failure */
* 'httpAddrConnect2()' - Connect to any of the addresses in the list with a
* timeout and optional cancel.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
http_addrlist_t * /* O - Connected address or NULL on failure */
/*
* 'httpAddrFreeList()' - Free an address list.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
void
/*
* 'httpAddrGetList()' - Get a list of addresses for a hostname.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
http_addrlist_t * /* O - List of addresses or NULL */
*
* Private HTTP definitions for CUPS.
*
- * Copyright 2007-2011 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
#define _HTTP_RESOLVE_DEFAULT 0 /* Just resolve with default options */
#define _HTTP_RESOLVE_STDERR 1 /* Log resolve progress to stderr */
#define _HTTP_RESOLVE_FQDN 2 /* Resolve to a FQDN */
+#define _HTTP_RESOLVE_FAXOUT 4 /* Resolve FaxOut service? */
/*
*
* HTTP support routines for CUPS.
*
- * Copyright 2007-2011 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
*
* Contents:
*
- * httpAssembleURI() - Assemble a uniform resource identifier from its
- * components.
+ * httpAssembleURI() - Assemble a uniform resource identifier from its
+ * components.
* httpAssembleURIf() - Assemble a uniform resource identifier from its
- * components with a formatted resource.
+ * components with a formatted resource.
* _httpAssembleUUID() - Make a UUID URI conforming to RFC 4122.
- * httpDecode64() - Base64-decode a string.
- * httpDecode64_2() - Base64-decode a string.
- * httpEncode64() - Base64-encode a string.
- * httpEncode64_2() - Base64-encode a string.
+ * httpDecode64() - Base64-decode a string.
+ * httpDecode64_2() - Base64-decode a string.
+ * httpEncode64() - Base64-encode a string.
+ * httpEncode64_2() - Base64-encode a string.
* httpGetDateString() - Get a formatted date/time string from a time value.
* httpGetDateString2() - Get a formatted date/time string from a time value.
- * httpGetDateTime() - Get a time value from a formatted date/time string.
- * httpSeparate() - Separate a Universal Resource Identifier into its
- * components.
- * httpSeparate2() - Separate a Universal Resource Identifier into its
- * components.
- * httpSeparateURI() - Separate a Universal Resource Identifier into its
- * components.
- * httpStatus() - Return a short string describing a HTTP status code.
- * _cups_hstrerror() - hstrerror() emulation function for Solaris and
- * others.
- * _httpDecodeURI() - Percent-decode a HTTP request URI.
- * _httpEncodeURI() - Percent-encode a HTTP request URI.
- * _httpResolveURI() - Resolve a DNS-SD URI.
+ * httpGetDateTime() - Get a time value from a formatted date/time string.
+ * httpSeparate() - Separate a Universal Resource Identifier into its
+ * components.
+ * httpSeparate2() - Separate a Universal Resource Identifier into its
+ * components.
+ * httpSeparateURI() - Separate a Universal Resource Identifier into its
+ * components.
+ * httpStatus() - Return a short string describing a HTTP status
+ * code.
+ * _cups_hstrerror() - hstrerror() emulation function for Solaris and
+ * others.
+ * _httpDecodeURI() - Percent-decode a HTTP request URI.
+ * _httpEncodeURI() - Percent-encode a HTTP request URI.
+ * _httpResolveURI() - Resolve a DNS-SD URI.
+ * http_client_cb() - Client callback for resolving URI.
* http_copy_decode() - Copy and decode a URI.
* http_copy_encode() - Copy and encode a URI.
- * http_resolve_cb() - Build a device URI for the given service name.
+ * http_poll_cb() - Wait for input on the specified file descriptors.
+ * http_resolve_cb() - Build a device URI for the given service name.
+ * http_resolve_cb() - Build a device URI for the given service name.
*/
/*
# else
# include <sys/select.h>
# endif /* WIN32 */
+#elif defined(HAVE_AVAHI)
+# include <avahi-client/client.h>
+# include <avahi-client/lookup.h>
+# include <avahi-common/simple-watch.h>
#endif /* HAVE_DNSSD */
typedef struct _http_uribuf_s /* URI buffer */
{
- char *buffer; /* Pointer to buffer */
- size_t bufsize; /* Size of buffer */
- int options; /* Options passed to _httpResolveURI */
+#ifdef HAVE_AVAHI
+ AvahiSimplePoll *poll; /* Poll state */
+#endif /* HAVE_AVAHI */
+ char *buffer; /* Pointer to buffer */
+ size_t bufsize; /* Size of buffer */
+ int options; /* Options passed to _httpResolveURI */
} _http_uribuf_t;
void *context);
#endif /* HAVE_DNSSD */
+#ifdef HAVE_AVAHI
+static void http_client_cb(AvahiClient *client,
+ AvahiClientState state, void *simple_poll);
+static int http_poll_cb(struct pollfd *pollfds, unsigned int num_pollfds,
+ int timeout, void *context);
+static void http_resolve_cb(AvahiServiceResolver *resolver,
+ AvahiIfIndex interface,
+ AvahiProtocol protocol,
+ AvahiResolverEvent event,
+ const char *name, const char *type,
+ const char *domain, const char *host_name,
+ const AvahiAddress *address, uint16_t port,
+ AvahiStringList *txt,
+ AvahiLookupResultFlags flags, void *context);
+#endif /* HAVE_AVAHI */
+
/*
* 'httpAssembleURI()' - Assemble a uniform resource identifier from its
* place of traditional string functions whenever you need to create a
* URI string.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
http_uri_status_t /* O - URI status */
* this function in place of traditional string functions whenever
* you need to create a URI string.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
http_uri_status_t /* O - URI status */
/*
* 'httpDecode64_2()' - Base64-decode a string.
*
- * @since CUPS 1.1.21/Mac OS X 10.4@
+ * @since CUPS 1.1.21/OS X 10.4@
*/
char * /* O - Decoded string */
/*
* 'httpEncode64_2()' - Base64-encode a string.
*
- * @since CUPS 1.1.21/Mac OS X 10.4@
+ * @since CUPS 1.1.21/OS X 10.4@
*/
char * /* O - Encoded string */
/*
* 'httpGetDateString2()' - Get a formatted date/time string from a time value.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
const char * /* O - Date/time string */
*
* This function is deprecated; use the httpSeparateURI() function instead.
*
- * @since CUPS 1.1.21/Mac OS X 10.4@
+ * @since CUPS 1.1.21/OS X 10.4@
* @deprecated@
*/
* 'httpSeparateURI()' - Separate a Universal Resource Identifier into its
* components.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
http_uri_status_t /* O - Result of separation */
if (strstr(hostname, "._tcp"))
{
-#ifdef HAVE_DNSSD
-# ifdef WIN32
-# pragma comment(lib, "dnssd.lib")
-# endif /* WIN32 */
- DNSServiceRef ref, /* DNS-SD master service reference */
- domainref, /* DNS-SD service reference for domain */
- localref; /* DNS-SD service reference for .local */
- int domainsent = 0, /* Send the domain resolve? */
- offline = 0; /* offline-report state set? */
+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
char *regtype, /* Pointer to type in hostname */
*domain; /* Pointer to domain in hostname */
_http_uribuf_t uribuf; /* URI buffer */
-#ifdef HAVE_POLL
+ int offline = 0; /* offline-report state set? */
+# ifdef HAVE_DNSSD
+# ifdef WIN32
+# pragma comment(lib, "dnssd.lib")
+# endif /* WIN32 */
+ DNSServiceRef ref, /* DNS-SD master service reference */
+ domainref, /* DNS-SD service reference for domain */
+ localref; /* DNS-SD service reference for .local */
+ int domainsent = 0; /* Send the domain resolve? */
+# ifdef HAVE_POLL
struct pollfd polldata; /* Polling data */
-#else /* select() */
+# else /* select() */
fd_set input_set; /* Input set for select() */
struct timeval stimeout; /* Timeout value for select() */
-#endif /* HAVE_POLL */
+# endif /* HAVE_POLL */
+# elif defined(HAVE_AVAHI)
+ AvahiClient *client; /* Client information */
+ int error; /* Status */
+# endif /* HAVE_DNSSD */
if (options & _HTTP_RESOLVE_STDERR)
fprintf(stderr, "DEBUG: Resolving \"%s\"...\n", hostname);
uribuf.buffer = resolved_uri;
uribuf.bufsize = resolved_size;
uribuf.options = options;
+
resolved_uri[0] = '\0';
DEBUG_printf(("6_httpResolveURI: Resolving hostname=\"%s\", regtype=\"%s\", "
uri = NULL;
+# ifdef HAVE_DNSSD
if (DNSServiceCreateConnection(&ref) == kDNSServiceErr_NoError)
{
localref = ref;
if ((timeout = end_time - time(NULL)) > 2)
timeout = 2;
-#ifdef HAVE_POLL
+# ifdef HAVE_POLL
polldata.fd = DNSServiceRefSockFD(ref);
polldata.events = POLLIN;
fds = poll(&polldata, 1, 1000 * timeout);
-#else /* select() */
+# else /* select() */
FD_ZERO(&input_set);
FD_SET(DNSServiceRefSockFD(ref), &input_set);
-#ifdef WIN32
+# ifdef WIN32
stimeout.tv_sec = (long)timeout;
-#else
+# else
stimeout.tv_sec = timeout;
-#endif /* WIN32 */
+# endif /* WIN32 */
stimeout.tv_usec = 0;
fds = select(DNSServiceRefSockFD(ref)+1, &input_set, NULL, NULL,
&stimeout);
-#endif /* HAVE_POLL */
+# endif /* HAVE_POLL */
if (fds < 0)
{
DNSServiceRefDeallocate(ref);
}
+# else /* HAVE_AVAHI */
+ if ((uribuf.poll = avahi_simple_poll_new()) != NULL)
+ {
+ avahi_simple_poll_set_func(uribuf.poll, http_poll_cb, NULL);
+
+ if ((client = avahi_client_new(avahi_simple_poll_get(uribuf.poll),
+ 0, http_client_cb,
+ &uribuf, &error)) != NULL)
+ {
+ if (avahi_service_resolver_new(client, AVAHI_IF_UNSPEC,
+ AVAHI_PROTO_UNSPEC, hostname,
+ regtype, "local.", AVAHI_PROTO_UNSPEC, 0,
+ http_resolve_cb, &uribuf) != NULL)
+ {
+ time_t start_time = time(NULL),
+ /* Start time */
+ end_time = start_time + 90;
+ /* End time */
+ int pstatus; /* Poll status */
+
+ pstatus = avahi_simple_poll_iterate(uribuf.poll, 2000);
+
+ if (pstatus == 0 && !resolved_uri[0] && domain &&
+ _cups_strcasecmp(domain, "local."))
+ {
+ /*
+ * Resolve for .local hasn't returned anything, try the listed
+ * domain...
+ */
+
+ avahi_service_resolver_new(client, AVAHI_IF_UNSPEC,
+ AVAHI_PROTO_UNSPEC, hostname,
+ regtype, domain, AVAHI_PROTO_UNSPEC, 0,
+ http_resolve_cb, &uribuf);
+ }
+
+ while (!pstatus && !resolved_uri[0] && time(NULL) < end_time)
+ {
+ if ((pstatus = avahi_simple_poll_iterate(uribuf.poll, 2000)) != 0)
+ break;
+
+ /*
+ * If it hasn't resolved within 5 seconds set the offline-report
+ * printer-state-reason...
+ */
+
+ if ((options & _HTTP_RESOLVE_STDERR) && offline == 0 &&
+ time(NULL) > (start_time + 5))
+ {
+ fputs("STATE: +offline-report\n", stderr);
+ offline = 1;
+ }
+ }
+
+ /*
+ * Collect the result (if we got one).
+ */
+
+ if (resolved_uri[0])
+ uri = resolved_uri;
+ }
+
+ avahi_client_free(client);
+ }
+
+ avahi_simple_poll_free(uribuf.poll);
+ }
+# endif /* HAVE_DNSSD */
if (options & _HTTP_RESOLVE_STDERR)
{
}
}
-#else
+#else /* HAVE_DNSSD || HAVE_AVAHI */
/*
* No DNS-SD support...
*/
uri = NULL;
-#endif /* HAVE_DNSSD */
+#endif /* HAVE_DNSSD || HAVE_AVAHI */
if ((options & _HTTP_RESOLVE_STDERR) && !uri)
_cupsLangPrintFilter(stderr, "ERROR", _("Unable to find printer."));
}
+#ifdef HAVE_AVAHI
+/*
+ * 'http_client_cb()' - Client callback for resolving URI.
+ */
+
+static void
+http_client_cb(
+ AvahiClient *client, /* I - Client information */
+ AvahiClientState state, /* I - Current state */
+ void *context) /* I - Pointer to URI buffer */
+{
+ DEBUG_printf(("7http_client_cb(client=%p, state=%d, context=%p)", client,
+ state, context));
+
+ /*
+ * If the connection drops, quit.
+ */
+
+ if (state == AVAHI_CLIENT_FAILURE)
+ {
+ _http_uribuf_t *uribuf = (_http_uribuf_t *)context;
+ /* URI buffer */
+
+ avahi_simple_poll_quit(uribuf->poll);
+ }
+}
+#endif /* HAVE_AVAHI */
+
+
/*
* 'http_copy_decode()' - Copy and decode a URI.
*/
const unsigned char *txtRecord, /* I - TXT record data */
void *context) /* I - Pointer to URI buffer */
{
+ _http_uribuf_t *uribuf = (_http_uribuf_t *)context;
+ /* URI buffer */
const char *scheme, /* URI scheme */
- *hostptr; /* Pointer into hostTarget */
- char rp[257], /* Remote printer */
+ *hostptr, /* Pointer into hostTarget */
+ *reskey, /* "rp" or "rfo" */
+ *resdefault; /* Default path */
+ char resource[257], /* Remote path */
fqdn[256]; /* FQDN of the .local name */
const void *value; /* Value from TXT record */
uint8_t valueLen; /* Length of value */
- _http_uribuf_t *uribuf; /* URI buffer */
DEBUG_printf(("7http_resolve_cb(sdRef=%p, flags=%x, interfaceIndex=%u, "
interfaceIndex, errorCode, fullName, hostTarget, port, txtLen,
txtRecord, context));
- uribuf = (_http_uribuf_t *)context;
-
/*
* Figure out the scheme from the full name...
*/
* Extract the "remote printer" key from the TXT record...
*/
- if ((value = TXTRecordGetValuePtr(txtLen, txtRecord, "rp",
+ if ((uribuf->options & _HTTP_RESOLVE_FAXOUT) &&
+ (!strcmp(scheme, "ipp") || !strcmp(scheme, "ipps")))
+ {
+ reskey = "rfo";
+ resdefault = "/ipp/faxout";
+ }
+ else
+ {
+ reskey = "rp";
+ resdefault = "/";
+ }
+
+ if ((value = TXTRecordGetValuePtr(txtLen, txtRecord, reskey,
&valueLen)) != NULL)
{
if (((char *)value)[0] == '/')
{
/*
- * "rp" value (incorrectly) has a leading slash already...
+ * Value (incorrectly) has a leading slash already...
*/
- memcpy(rp, value, valueLen);
- rp[valueLen] = '\0';
+ memcpy(resource, value, valueLen);
+ resource[valueLen] = '\0';
}
else
{
* Convert to resource by concatenating with a leading "/"...
*/
- rp[0] = '/';
- memcpy(rp + 1, value, valueLen);
- rp[valueLen + 1] = '\0';
+ resource[0] = '/';
+ memcpy(resource + 1, value, valueLen);
+ resource[valueLen + 1] = '\0';
}
}
else
{
/*
- * Default "rp" value is blank, mapping to a path of "/"...
+ * Use the default value...
*/
- rp[0] = '/';
- rp[1] = '\0';
+ strlcpy(resource, resdefault, sizeof(resource));
}
/*
*/
httpAssembleURI(HTTP_URI_CODING_ALL, uribuf->buffer, uribuf->bufsize, scheme,
- NULL, hostTarget, ntohs(port), rp);
+ NULL, hostTarget, ntohs(port), resource);
DEBUG_printf(("8http_resolve_cb: Resolved URI is \"%s\"...", uribuf->buffer));
}
+
+#elif defined(HAVE_AVAHI)
+/*
+ * 'http_poll_cb()' - Wait for input on the specified file descriptors.
+ *
+ * Note: This function is needed because avahi_simple_poll_iterate is broken
+ * and always uses a timeout of 0 (!) milliseconds.
+ * (Avahi Ticket #364)
+ */
+
+static int /* O - Number of file descriptors matching */
+http_poll_cb(
+ struct pollfd *pollfds, /* I - File descriptors */
+ unsigned int num_pollfds, /* I - Number of file descriptors */
+ int timeout, /* I - Timeout in milliseconds (used) */
+ void *context) /* I - User data (unused) */
+{
+ (void)timeout;
+ (void)context;
+
+ return (poll(pollfds, num_pollfds, 2000));
+}
+
+
+/*
+ * 'http_resolve_cb()' - Build a device URI for the given service name.
+ */
+
+static void
+http_resolve_cb(
+ AvahiServiceResolver *resolver, /* I - Resolver (unused) */
+ AvahiIfIndex interface, /* I - Interface index (unused) */
+ AvahiProtocol protocol, /* I - Network protocol (unused) */
+ AvahiResolverEvent event, /* I - Event (found, etc.) */
+ const char *name, /* I - Service name */
+ const char *type, /* I - Registration type */
+ const char *domain, /* I - Domain (unused) */
+ const char *hostTarget, /* I - Hostname */
+ const AvahiAddress *address, /* I - Address (unused) */
+ uint16_t port, /* I - Port number */
+ AvahiStringList *txt, /* I - TXT record */
+ AvahiLookupResultFlags flags, /* I - Lookup flags (unused) */
+ void *context) /* I - Pointer to URI buffer */
+{
+ _http_uribuf_t *uribuf = (_http_uribuf_t *)context;
+ /* URI buffer */
+ const char *scheme, /* URI scheme */
+ *hostptr, /* Pointer into hostTarget */
+ *reskey, /* "rp" or "rfo" */
+ *resdefault; /* Default path */
+ char resource[257], /* Remote path */
+ fqdn[256]; /* FQDN of the .local name */
+ AvahiStringList *pair; /* Current TXT record key/value pair */
+ char *value; /* Value for "rp" key */
+ size_t valueLen = 0; /* Length of "rp" key */
+
+
+ DEBUG_printf(("7http_resolve_cb(resolver=%p, "
+ "interface=%d, protocol=%d, event=%d, name=\"%s\", "
+ "type=\"%s\", domain=\"%s\", hostTarget=\"%s\", address=%p, "
+ "port=%d, txt=%p, flags=%d, context=%p)",
+ resolver, interface, protocol, event, name, type, domain,
+ hostTarget, address, port, txt, flags, context));
+
+ if (event != AVAHI_RESOLVER_FOUND)
+ {
+ avahi_service_resolver_free(resolver);
+ avahi_simple_poll_quit(uribuf->poll);
+ return;
+ }
+
+ /*
+ * Figure out the scheme from the full name...
+ */
+
+ if (strstr(type, "_ipp."))
+ scheme = "ipp";
+ else if (strstr(type, "_printer."))
+ scheme = "lpd";
+ else if (strstr(type, "_pdl-datastream."))
+ scheme = "socket";
+ else
+ scheme = "riousbprint";
+
+ if (!strncmp(type, "_ipps.", 6) || !strncmp(type, "_ipp-tls.", 9))
+ scheme = "ipps";
+ else if (!strncmp(type, "_ipp.", 5) || !strncmp(type, "_fax-ipp.", 9))
+ scheme = "ipp";
+ else if (!strncmp(type, "_http.", 6))
+ scheme = "http";
+ else if (!strncmp(type, "_https.", 7))
+ scheme = "https";
+ else if (!strncmp(type, "_printer.", 9))
+ scheme = "lpd";
+ else if (!strncmp(type, "_pdl-datastream.", 16))
+ scheme = "socket";
+ else
+ {
+ avahi_service_resolver_free(resolver);
+ avahi_simple_poll_quit(uribuf->poll);
+ return;
+ }
+
+ /*
+ * Extract the remote resource key from the TXT record...
+ */
+
+ if ((uribuf->options & _HTTP_RESOLVE_FAXOUT) &&
+ (!strcmp(scheme, "ipp") || !strcmp(scheme, "ipps")))
+ {
+ reskey = "rfo";
+ resdefault = "/ipp/faxout";
+ }
+ else
+ {
+ reskey = "rp";
+ resdefault = "/";
+ }
+
+ if ((pair = avahi_string_list_find(txt, reskey)) != NULL)
+ {
+ avahi_string_list_get_pair(pair, NULL, &value, &valueLen);
+
+ if (value[0] == '/')
+ {
+ /*
+ * Value (incorrectly) has a leading slash already...
+ */
+
+ memcpy(resource, value, valueLen);
+ resource[valueLen] = '\0';
+ }
+ else
+ {
+ /*
+ * Convert to resource by concatenating with a leading "/"...
+ */
+
+ resource[0] = '/';
+ memcpy(resource + 1, value, valueLen);
+ resource[valueLen + 1] = '\0';
+ }
+ }
+ else
+ {
+ /*
+ * Use the default value...
+ */
+
+ strlcpy(resource, resdefault, sizeof(resource));
+ }
+
+ /*
+ * Lookup the FQDN if needed...
+ */
+
+ if ((uribuf->options & _HTTP_RESOLVE_FQDN) &&
+ (hostptr = hostTarget + strlen(hostTarget) - 6) > hostTarget &&
+ !_cups_strcasecmp(hostptr, ".local"))
+ {
+ /*
+ * OK, we got a .local name but the caller needs a real domain. Start by
+ * getting the IP address of the .local name and then do reverse-lookups...
+ */
+
+ http_addrlist_t *addrlist, /* List of addresses */
+ *addr; /* Current address */
+
+ DEBUG_printf(("8http_resolve_cb: Looking up \"%s\".", hostTarget));
+
+ snprintf(fqdn, sizeof(fqdn), "%d", ntohs(port));
+ if ((addrlist = httpAddrGetList(hostTarget, AF_UNSPEC, fqdn)) != NULL)
+ {
+ for (addr = addrlist; addr; addr = addr->next)
+ {
+ int error = getnameinfo(&(addr->addr.addr),
+ httpAddrLength(&(addr->addr)),
+ fqdn, sizeof(fqdn), NULL, 0, NI_NAMEREQD);
+
+ if (!error)
+ {
+ DEBUG_printf(("8http_resolve_cb: Found \"%s\".", fqdn));
+
+ if ((hostptr = fqdn + strlen(fqdn) - 6) <= fqdn ||
+ _cups_strcasecmp(hostptr, ".local"))
+ {
+ hostTarget = fqdn;
+ break;
+ }
+ }
+#ifdef DEBUG
+ else
+ DEBUG_printf(("8http_resolve_cb: \"%s\" did not resolve: %d",
+ httpAddrString(&(addr->addr), fqdn, sizeof(fqdn)),
+ error));
+#endif /* DEBUG */
+ }
+ }
+ }
+
+ /*
+ * Assemble the final device URI using the resolved hostname...
+ */
+
+ httpAssembleURI(HTTP_URI_CODING_ALL, uribuf->buffer, uribuf->bufsize, scheme,
+ NULL, hostTarget, port, resource);
+ DEBUG_printf(("8http_resolve_cb: Resolved URI is \"%s\".", uribuf->buffer));
+
+ avahi_simple_poll_quit(uribuf->poll);
+}
#endif /* HAVE_DNSSD */
*
* Use @code cupsArrayNew(NULL, NULL)@ to create a credentials array.
*
- * @since CUPS 1.5/Mac OS X 10.7@
+ * @since CUPS 1.5/OS X 10.7@
*/
int /* O - 0 on success, -1 on error */
/*
* 'httpClearCookie()' - Clear the cookie value(s).
*
- * @since CUPS 1.1.19/Mac OS X 10.3@
+ * @since CUPS 1.1.19/OS X 10.3@
*/
void
* 'httpCopyCredentials()' - Copy the credentials associated with an encrypted
* connection.
*
- * @since CUPS 1.5/Mac OS X 10.7@
+ * @since CUPS 1.5/OS X 10.7@
*/
int /* O - Status of call (0 = success) */
/*
* 'httpFlushWrite()' - Flush data in write buffer.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
int /* O - Bytes written or -1 on error */
* string to use with httpSetField() for the HTTP_FIELD_AUTHORIZATION
* value.
*
- * @since CUPS 1.3/Mac OS X 10.5@
+ * @since CUPS 1.3/OS X 10.5@
*/
char * /* O - Authorization string */
/*
* 'httpGetBlocking()' - Get the blocking/non-block state of a connection.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
int /* O - 1 if blocking, 0 if non-blocking */
/*
* 'httpGetCookie()' - Get any cookie data from the response.
*
- * @since CUPS 1.1.19/Mac OS X 10.3@
+ * @since CUPS 1.1.19/OS X 10.3@
*/
const char * /* O - Cookie data or NULL */
/*
* 'httpGetFd()' - Get the file descriptor associated with a connection.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
int /* O - File descriptor or -1 if none */
* This function returns the complete content length, even for
* content larger than 2^31 - 1.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
off_t /* O - Content length */
/*
* 'httpGetStatus()' - Get the status of the last HTTP request.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
http_status_t /* O - HTTP status */
/*
* 'httpGetSubField2()' - Get a sub-field value.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
char * /* O - Value or NULL */
/*
* 'httpRead2()' - Read data from a HTTP connection.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
ssize_t /* O - Number of bytes read */
* HTTP_FIELD_AUTHORIZATION prior to issuing a HTTP request using httpGet(),
* httpHead(), httpOptions(), httpPost, or httpPut().
*
- * @since CUPS 1.3/Mac OS X 10.5@
+ * @since CUPS 1.3/OS X 10.5@
*/
void
* 'httpSetCredentials()' - Set the credentials associated with an encrypted
* connection.
*
- * @since CUPS 1.5/Mac OS X 10.7@
+ * @since CUPS 1.5/OS X 10.7@
*/
int /* O - Status of call (0 = success) */
/*
* 'httpSetCookie()' - Set the cookie value(s).
*
- * @since CUPS 1.1.19/Mac OS X 10.3@
+ * @since CUPS 1.1.19/OS X 10.3@
*/
void
*
* Currently only HTTP_CONTINUE is supported for the "expect" argument.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
void
/*
* 'httpSetLength()' - Set the content-length and content-encoding.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
void
* The optional timeout callback receives both the HTTP connection and a user
* data pointer and must return 1 to continue or 0 to error (time) out.
*
- * @since CUPS 1.5/Mac OS X 10.7@
+ * @since CUPS 1.5/OS X 10.7@
*/
void
/*
* 'httpWait()' - Wait for data available on a connection.
*
- * @since CUPS 1.1.19/Mac OS X 10.3@
+ * @since CUPS 1.1.19/OS X 10.3@
*/
int /* O - 1 if data is available, 0 otherwise */
/*
* 'httpWrite2()' - Write data to a HTTP connection.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
ssize_t /* O - Number of bytes written */
HTTP_AUTH_MD5_SESS, /* MD5-session authentication in use */
HTTP_AUTH_MD5_INT, /* Digest authentication in use for body */
HTTP_AUTH_MD5_SESS_INT, /* MD5-session authentication in use for body */
- HTTP_AUTH_NEGOTIATE /* GSSAPI authentication in use @since CUPS 1.3/Mac OS X 10.5@ */
+ HTTP_AUTH_NEGOTIATE /* GSSAPI authentication in use @since CUPS 1.3/OS X 10.5@ */
} http_auth_t;
typedef enum http_encoding_e /**** HTTP transfer encoding values ****/
HTTP_NOT_SUPPORTED, /* HTTP version not supported */
HTTP_AUTHORIZATION_CANCELED = 1000, /* User canceled authorization @since CUPS 1.4@ */
- HTTP_PKI_ERROR, /* Error negotiating a secure connection @since CUPS 1.5/Mac OS X 10.7@ */
+ HTTP_PKI_ERROR, /* Error negotiating a secure connection @since CUPS 1.5/OS X 10.7@ */
HTTP_WEBIF_DISABLED /* Web interface is disabled @private@ */
} http_status_t;
typedef union _http_addr_u /**** Socket address union, which
**** makes using IPv6 and other
**** address types easier and
- **** more portable. @since CUPS 1.2/Mac OS X 10.5@
+ **** more portable. @since CUPS 1.2/OS X 10.5@
****/
{
struct sockaddr addr; /* Base structure for family value */
typedef struct http_addrlist_s /**** Socket address list, which is
**** used to enumerate all of the
**** addresses that are associated
- **** with a hostname. @since CUPS 1.2/Mac OS X 10.5@
+ **** with a hostname. @since CUPS 1.2/OS X 10.5@
****/
{
struct http_addrlist_s *next; /* Pointer to next address in list */
typedef struct _http_s http_t; /**** HTTP connection type ****/
-typedef struct http_credential_s /**** HTTP credential data @since CUPS 1.5/Mac OS X 10.7@ ****/
+typedef struct http_credential_s /**** HTTP credential data @since CUPS 1.5/OS X 10.7@ ****/
{
void *data; /* Pointer to credential data */
size_t datalen; /* Credential length */
} http_credential_t;
typedef int (*http_timeout_cb_t)(http_t *http, void *user_data);
- /**** HTTP timeout callback @since CUPS 1.5/Mac OS X 10.7@ ****/
+ /**** HTTP timeout callback @since CUPS 1.5/OS X 10.7@ ****/
char *host, int hostlen, int *port,
char *resource, int resourcelen) _CUPS_DEPRECATED;
-/**** New in CUPS 1.2/Mac OS X 10.5 ****/
+/**** New in CUPS 1.2/OS X 10.5 ****/
extern int httpAddrAny(const http_addr_t *addr) _CUPS_API_1_2;
extern http_addrlist_t *httpAddrConnect(http_addrlist_t *addrlist, int *sock) _CUPS_API_1_2;
extern int httpAddrEqual(const http_addr_t *addr1,
extern ssize_t httpWrite2(http_t *http, const char *buffer,
size_t length) _CUPS_API_1_2;
-/**** New in CUPS 1.3/Mac OS X 10.5 ****/
+/**** New in CUPS 1.3/OS X 10.5 ****/
extern char *httpGetAuthString(http_t *http) _CUPS_API_1_3;
extern void httpSetAuthString(http_t *http, const char *scheme,
const char *data) _CUPS_API_1_3;
-/**** New in CUPS 1.5/Mac OS X 10.7 ****/
+/**** New in CUPS 1.5/OS X 10.7 ****/
extern int httpAddCredential(cups_array_t *credentials,
const void *data, size_t datalen)
_CUPS_API_1_5;
http_timeout_cb_t cb, void *user_data)
_CUPS_API_1_5;
-/**** New in CUPS 1.6 ****/
+/**** New in CUPS 1.6/OS X 10.8 ****/
extern http_addrlist_t *httpAddrConnect2(http_addrlist_t *addrlist, int *sock,
int msec, int *cancel)
_CUPS_API_1_6;
* trailing nul. The buffer pointer can be NULL to get the required length,
* just like (v)snprintf.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
size_t /* O - Number of bytes less nul */
/*
* 'ippErrorValue()' - Return a status code for the given name.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
ipp_status_t /* O - IPP status code */
/*
* 'ippOpString()' - Return a name for the given operation id.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
const char * /* O - Name */
/*
* 'ippOpValue()' - Return an operation id for the given name.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
ipp_op_t /* O - Operation ID */
*
* The returned names are defined in RFC 2911 and 3382.
*
- * @since CUPS 1.4/Mac OS X 10.6@
+ * @since CUPS 1.4/OS X 10.6@
*/
const char * /* O - Tag name */
*
* The tag names are defined in RFC 2911 and 3382.
*
- * @since CUPS 1.4/Mac OS X 10.6@
+ * @since CUPS 1.4/OS X 10.6@
*/
ipp_tag_t /* O - Tag value */
* (@code IPP_TAG_OPERATION@), printer (@code IPP_TAG_PRINTER@), subscription
* (@code IPP_TAG_SUBSCRIPTION@), or unsupported (@code IPP_TAG_UNSUPPORTED_GROUP@).
*
- * @since CUPS 1.1.19/Mac OS X 10.3@
+ * @since CUPS 1.1.19/OS X 10.3@
*/
ipp_attribute_t * /* O - New attribute */
* (@code IPP_TAG_OPERATION@), printer (@code IPP_TAG_PRINTER@), subscription
* (@code IPP_TAG_SUBSCRIPTION@), or unsupported (@code IPP_TAG_UNSUPPORTED_GROUP@).
*
- * @since CUPS 1.1.19/Mac OS X 10.3@
+ * @since CUPS 1.1.19/OS X 10.3@
*/
ipp_attribute_t * /* O - New attribute */
* (@code IPP_TAG_OPERATION@), printer (@code IPP_TAG_PRINTER@), subscription
* (@code IPP_TAG_SUBSCRIPTION@), or unsupported (@code IPP_TAG_UNSUPPORTED_GROUP@).
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
ipp_attribute_t * /* O - New attribute */
* (@code IPP_TAG_NOTSETTABLE@), delete-attribute (@code IPP_TAG_DELETEATTR@), and
* admin-define (@code IPP_TAG_ADMINDEFINE@).
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
ipp_attribute_t * /* O - New attribute */
* created - this should only be done as long as the original source IPP message will
* not be freed for the life of the destination.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
* 0 to skip it. The function may also choose to do a partial copy of the source attribute
* itself.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
int /* O - 1 on success, 0 on error */
/*
* 'ippDeleteAttribute()' - Delete a single attribute in an IPP message.
*
- * @since CUPS 1.1.19/Mac OS X 10.3@
+ * @since CUPS 1.1.19/OS X 10.3@
*/
void
*
* Deleting all values in an attribute deletes the attribute.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
int /* O - 1 on success, 0 on failure */
/*
* 'ippFirstAttribute()' - Return the first attribute in the message.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
ipp_attribute_t * /* O - First attribute or @code NULL@ if none */
* The @code element@ parameter specifies which value to get from 0 to
* @link ippGetCount(attr)@ - 1.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
int /* O - Boolean value or -1 on error */
* The @code element@ parameter specifies which value to get from 0 to
* @link ippGetCount(attr)@ - 1.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
ipp_t * /* O - Collection value or @code NULL@ on error */
/*
* 'ippGetCount()' - Get the number of values in an attribute.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
int /* O - Number of values or -1 on error */
* The @code element@ parameter specifies which value to get from 0 to
* @link ippGetCount(attr)@ - 1.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
const ipp_uchar_t * /* O - Date value or @code NULL@ */
/*
* 'ippGetGroupTag()' - Get the group associated with an attribute.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
ipp_tag_t /* O - Group tag or @code IPP_TAG_ZERO@ on error */
* The @code element@ parameter specifies which value to get from 0 to
* @link ippGetCount(attr)@ - 1.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
int /* O - Value or -1 on error */
/*
* 'ippGetName()' - Get the attribute name.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
const char * /* O - Attribute name or @code NULL@ for separators */
/*
* 'ippGetOperation()' - Get the operation ID in an IPP message.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
ipp_op_t /* O - Operation ID or -1 on error */
* The @code element@ parameter specifies which value to get from 0 to
* @link ippGetCount(attr)@ - 1.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
int /* O - Lower value of range or -1 */
/*
* 'ippGetRequestId()' - Get the request ID from an IPP message.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
int /* O - Request ID or -1 on error */
* The @code element@ parameter specifies which value to get from 0 to
* @link ippGetCount(attr)@ - 1.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
int /* O - Horizontal/cross feed resolution or -1 */
/*
* 'ippGetState()' - Get the IPP message state.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
ipp_state_t /* O - IPP message state value */
/*
* 'ippGetStatusCode()' - Get the status code from an IPP response or event message.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
ipp_status_t /* O - Status code in IPP message */
* The @code element@ parameter specifies which value to get from 0 to
* @link ippGetCount(attr)@ - 1.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
const char *
/*
* 'ippGetValueTag()' - Get the value tag for an attribute.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
ipp_tag_t /* O - Value tag or @code IPP_TAG_ZERO@ on error */
/*
* 'ippGetVersion()' - Get the major and minor version number from an IPP message.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
int /* O - Major version number or -1 on error */
/*
* 'ippNextAttribute()' - Return the next attribute in the message.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
ipp_attribute_t * /* O - Next attribute or @code NULL@ if none */
* attributes-natural-language attributes added. The
* attributes-natural-language value is derived from the current locale.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
ipp_t * /* O - IPP request message */
/*
* 'ippReadFile()' - Read data for an IPP message from a file.
*
- * @since CUPS 1.1.19/Mac OS X 10.3@
+ * @since CUPS 1.1.19/OS X 10.3@
*/
ipp_state_t /* O - Current state */
/*
* 'ippReadIO()' - Read data for an IPP message.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
ipp_state_t /* O - Current state */
* The @code element@ parameter specifies which value to set from 0 to
* @link ippGetCount(attr)@.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
int /* O - 1 on success, 0 on failure */
* The @code element@ parameter specifies which value to set from 0 to
* @link ippGetCount(attr)@.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
int /* O - 1 on success, 0 on failure */
* The @code element@ parameter specifies which value to set from 0 to
* @link ippGetCount(attr)@.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
int /* O - 1 on success, 0 on failure */
* (@code IPP_TAG_OPERATION@), printer (@code IPP_TAG_PRINTER@), subscription
* (@code IPP_TAG_SUBSCRIPTION@), or unsupported (@code IPP_TAG_UNSUPPORTED_GROUP@).
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
int /* O - 1 on success, 0 on failure */
* The @code element@ parameter specifies which value to set from 0 to
* @link ippGetCount(attr)@.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
int /* O - 1 on success, 0 on failure */
*
* The @code attr@ parameter may be modified as a result of setting the value.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
int /* O - 1 on success, 0 on failure */
* The @code ipp@ parameter refers to an IPP message previously created using the
* @link ippNew@ or @link ippNewRequest@ functions.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
int /* O - 1 on success, 0 on failure */
* The @code element@ parameter specifies which value to set from 0 to
* @link ippGetCount(attr)@.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
int /* O - 1 on success, 0 on failure */
*
* The @code request_id@ parameter must be greater than 0.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
int /* O - 1 on success, 0 on failure */
* The @code element@ parameter specifies which value to set from 0 to
* @link ippGetCount(attr)@.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
int /* O - 1 on success, 0 on failure */
/*
* 'ippSetState()' - Set the current state of the IPP message.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
int /* O - 1 on success, 0 on failure */
* The @code ipp@ parameter refers to an IPP message previously created using the
* @link ippNew@ or @link ippNewRequest@ functions.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
int /* O - 1 on success, 0 on failure */
* The @code element@ parameter specifies which value to set from 0 to
* @link ippGetCount(attr)@.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
int /* O - 1 on success, 0 on failure */
* code in the "attributes-natural-language" attribute or, if not present, the language
* code for the current locale.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
int /* O - 1 on success, 0 on failure */
*
* The valid version numbers are currently 1.0, 1.1, 2.0, 2.1, and 2.2.
*
- * @since CUPS 1.6@
+ * @since CUPS 1.6/OS X 10.8@
*/
int /* O - 1 on success, 0 on failure */
/*
* 'ippWriteFile()' - Write data for an IPP message to a file.
*
- * @since CUPS 1.1.19/Mac OS X 10.3@
+ * @since CUPS 1.1.19/OS X 10.3@
*/
ipp_state_t /* O - Current state */
/*
* 'ippWriteIO()' - Write data for an IPP message.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
ipp_state_t /* O - Current state */
IPP_SET_PRINTER_ATTRIBUTES, /* Set printer attributes @private@ */
IPP_SET_JOB_ATTRIBUTES, /* Set job attributes */
IPP_GET_PRINTER_SUPPORTED_VALUES, /* Get supported attribute values */
- IPP_CREATE_PRINTER_SUBSCRIPTION, /* Create a printer subscription @since CUPS 1.2/Mac OS X 10.5@ */
- IPP_CREATE_JOB_SUBSCRIPTION, /* Create a job subscription @since CUPS 1.2/Mac OS X 10.5@ */
- IPP_GET_SUBSCRIPTION_ATTRIBUTES, /* Get subscription attributes @since CUPS 1.2/Mac OS X 10.5@ */
- IPP_GET_SUBSCRIPTIONS, /* Get list of subscriptions @since CUPS 1.2/Mac OS X 10.5@ */
- IPP_RENEW_SUBSCRIPTION, /* Renew a printer subscription @since CUPS 1.2/Mac OS X 10.5@ */
- 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_CREATE_PRINTER_SUBSCRIPTION, /* Create a printer subscription @since CUPS 1.2/OS X 10.5@ */
+ IPP_CREATE_JOB_SUBSCRIPTION, /* Create a job subscription @since CUPS 1.2/OS X 10.5@ */
+ IPP_GET_SUBSCRIPTION_ATTRIBUTES, /* Get subscription attributes @since CUPS 1.2/OS X 10.5@ */
+ IPP_GET_SUBSCRIPTIONS, /* Get list of subscriptions @since CUPS 1.2/OS X 10.5@ */
+ IPP_RENEW_SUBSCRIPTION, /* Renew a printer subscription @since CUPS 1.2/OS X 10.5@ */
+ IPP_CANCEL_SUBSCRIPTION, /* Cancel a subscription @since CUPS 1.2/OS X 10.5@ */
+ IPP_GET_NOTIFICATIONS, /* Get notification events @since CUPS 1.2/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@ */
CUPS_GET_DEVICES, /* Get a list of supported devices */
CUPS_GET_PPDS, /* Get a list of supported drivers */
CUPS_MOVE_JOB, /* Move a job to a different printer */
- 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@ */
+ CUPS_AUTHENTICATE_JOB, /* Authenticate a job @since CUPS 1.2/OS X 10.5@ */
+ CUPS_GET_PPD, /* Get a PPD file @since CUPS 1.3/OS X 10.5@ */
+ CUPS_GET_DOCUMENT = 0x4027 /* Get a document file @since CUPS 1.4/OS X 10.6@ */
/* Legacy names for the add operations */
#define CUPS_ADD_PRINTER CUPS_ADD_MODIFY_PRINTER
IPP_TOO_MANY_JOBS, /* server-error-too-many-jobs */
IPP_TOO_MANY_DOCUMENTS, /* server-error-too-many-documents */
- 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_AUTHENTICATION_CANCELED = 0x1000, /* Authentication canceled by user @since CUPS 1.5/OS X 10.7@ */
+ IPP_PKI_ERROR, /* Error negotiating a secure connection @since CUPS 1.5/OS X 10.7@ */
IPP_UPGRADE_REQUIRED /* TLS upgrade required */
/* Legacy name for canceled status */
typedef struct _ipp_attribute_s ipp_attribute_t;
/**** IPP attribute ****/
-/**** New in CUPS 1.2 ****/
+/**** New in CUPS 1.2/OS X 10.5 ****/
typedef ssize_t (*ipp_iocb_t)(void *context, ipp_uchar_t *buffer, size_t bytes);
- /**** IPP IO Callback Function @since CUPS 1.2/Mac OS X 10.5@ ****/
+ /**** IPP IO Callback Function @since CUPS 1.2/OS X 10.5@ ****/
-/**** New in CUPS 1.6 ****/
+/**** New in CUPS 1.6/OS X 10.8 ****/
typedef int (*ipp_copycb_t)(void *context, ipp_t *dst, ipp_attribute_t *attr);
/*
- * The following structures are PRIVATE starting with CUPS 1.6. Please use the
- * new accessor functions available in CUPS 1.6 and later, as these definitions
- * will be moved to a private header file in a future release.
+ * The following structures are PRIVATE starting with CUPS 1.6/OS X 10.8.
+ * Please use the new accessor functions available in CUPS 1.6 and later, as
+ * these definitions will be moved to a private header file in a future release.
*
* Define _IPP_PRIVATE_STRUCTURES to cause the private IPP structures to be
- * exposed in CUPS 1.6.
+ * exposed in CUPS 1.6. This happens automatically on OS X when compiling for
+ * a deployment target of 10.7 or earlier.
*/
# if defined(_CUPS_SOURCE) || defined(_CUPS_IPP_PRIVATE_H_)
} status;
/**** New in CUPS 1.1.19 ****/
- struct /* Event Header @since CUPS 1.1.19/Mac OS X 10.3@ */
+ struct /* Event Header @since CUPS 1.1.19/OS X 10.3@ */
{
ipp_uchar_t version[2]; /* Protocol version number */
ipp_status_t status_code; /* Status code */
} 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_t *collection; /* Collection value @since CUPS 1.1.19/OS X 10.3@ */
} _ipp_value_t;
typedef _ipp_value_t ipp_value_t; /**** Convenience typedef that will be removed @private@ ****/
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@ */
+ ipp_attribute_t *prev; /* Previous attribute (for read) @since CUPS 1.2/OS X 10.5@ */
/**** New in CUPS 1.4.4 ****/
- int use; /* Use count @since CUPS 1.4.4/Mac OS X 10.6.?@ */
+ int use; /* Use count @since CUPS 1.4.4/OS X 10.6.?@ */
};
# endif /* _IPP_PRIVATE_STRUCTURES */
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/OS X 10.5 ****/
extern ipp_attribute_t *ippAddOctetString(ipp_t *ipp, ipp_tag_t group,
const char *name,
const void *data, int datalen) _CUPS_API_1_2;
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/OS X 10.6 ****/
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 ****/
+/**** New in CUPS 1.6/OS X 10.8 ****/
extern ipp_attribute_t *ippAddOutOfBand(ipp_t *ipp, ipp_tag_t group,
ipp_tag_t value_tag, const char *name)
_CUPS_API_1_6;
* descriptions, printer presets, and custom option parameters. Each
* localized string uses the UTF-8 character encoding.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
int /* O - 0 on success, -1 on error */
*
* If no value of the requested scheme can be found, NULL is returned.
*
- * @since CUPS 1.3/Mac OS X 10.5@
+ * @since CUPS 1.3/OS X 10.5@
*/
const char * /* O - Value or NULL if not found */
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 running low on ink.");
+ message = _("The printer is running low on ink.");
else if (!strncmp(reason, "marker-supply-empty", 19))
message = _("The printer may be out of ink.");
else if (!strncmp(reason, "marker-waste-almost-full", 24))
message = _("The developer unit will need to be replaced soon.");
else if (!strncmp(reason, "developer-empty", 15))
message = _("The developer unit needs to be replaced.");
-
+
if (message)
{
strlcpy(buffer, _cupsLangString(lang, message), bufsize);
* text from the attribute value. If no localized text for the requested
* name can be found, @code NULL@ is returned.
*
- * @since CUPS 1.4/Mac OS X 10.6@
+ * @since CUPS 1.4/OS X 10.6@
*/
const char * /* O - Value or @code NULL@ if not found */
/*
* '_ppdHashName()' - Generate a hash value for a device or profile name.
*
- * This function is primarily used on Mac OS X, but is generally accessible
+ * This function is primarily used on OS X, but is generally accessible
* since cupstestppd needs to check for profile name collisions in PPD files...
*/
*
* Option marking routines for CUPS.
*
- * Copyright 2007-2011 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
*
* Options are returned from all groups in ascending alphanumeric order.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
ppd_option_t * /* O - First option or @code NULL@ */
*
* Options are returned from all groups in ascending alphanumeric order.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
ppd_option_t * /* O - Next option or @code NULL@ */
*
* Notification routines for CUPS.
*
- * Copyright 2007-2010 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 2005-2006 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
*
* The returned string must be freed by the caller using @code free@.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
char * /* O - Subject string or @code NULL@ */
*
* The returned string must be freed by the caller using @code free@.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
char * /* O - Message text or @code NULL@ */
*
* Option routines for CUPS.
*
- * Copyright 2007-2011 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
/*
* 'cupsRemoveOption()' - Remove an option from an option array.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
int /* O - New number of options */
*
* Page size functions for CUPS.
*
- * Copyright 2007-2011 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
* If the specified PPD file does not support custom page sizes, both
* "minimum" and "maximum" are filled with zeroes.
*
- * @since CUPS 1.4/Mac OS X 10.6@
+ * @since CUPS 1.4/OS X 10.6@
*/
int /* O - 1 if custom sizes are supported, 0 otherwise */
*
* PPD file routines for CUPS.
*
- * Copyright 2007-2011 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
/*
* 'ppdErrorString()' - Returns the text assocated with a status.
*
- * @since CUPS 1.1.19/Mac OS X 10.3@
+ * @since CUPS 1.1.19/OS X 10.3@
*/
const char * /* O - Status string */
/*
* 'ppdLastError()' - Return the status from the last ppdOpen*().
*
- * @since CUPS 1.1.19/Mac OS X 10.3@
+ * @since CUPS 1.1.19/OS X 10.3@
*/
ppd_status_t /* O - Status code */
/*
* '_ppdOpen()' - Read a PPD file into memory.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
ppd_file_t * /* O - PPD file record or @code NULL@ if the PPD file could not be opened. */
/*
* 'ppdOpen2()' - Read a PPD file into memory.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
ppd_file_t * /* O - PPD file record or @code NULL@ if the PPD file could not be opened. */
/*
* 'ppdSetConformance()' - Set the conformance level for PPD files.
*
- * @since CUPS 1.1.20/Mac OS X 10.4@
+ * @since CUPS 1.1.20/OS X 10.4@
*/
void
DEBUG_printf(("9ppd_read: LINE=\"%s\"", line->buffer));
/*
- * The dynamically created PPDs for older style Mac OS X
+ * The dynamically created PPDs for older style OS X
* drivers include a large blob of data inserted as comments
* at the end of the file. As an optimization we can stop
* reading the PPD when we get to the start of this data.
# ifndef _PPD_DEPRECATED
# if defined(__APPLE__)
# if defined(MAC_OS_X_VERSION_10_8) && MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_8
- /* Building for 10.7 and earlier */
+ /* Building for OS X 10.7 and earlier */
# define _PPD_DEPRECATED
# elif !defined(MAC_OS_X_VERSION_10_8)
- /* Building for 10.7 and earlier */
+ /* Building for OS X 10.7 and earlier */
# define _PPD_DEPRECATED
# else
# define _PPD_DEPRECATED _CUPS_DEPRECATED
PPD_CS_N /* DeviceN colorspace */
} ppd_cs_t;
-typedef enum ppd_status_e /**** Status Codes @since CUPS 1.1.19/Mac OS X 10.3@ ****/
+typedef enum ppd_status_e /**** Status Codes @since CUPS 1.1.19/OS X 10.3@ ****/
{
PPD_OK = 0, /* OK */
PPD_FILE_OPEN_ERROR, /* Unable to open PPD file */
PPD_MAX_STATUS /* @private@ */
} ppd_status_t;
-enum ppd_conform_e /**** Conformance Levels @since CUPS 1.1.19/Mac OS X 10.3@ ****/
+enum ppd_conform_e /**** Conformance Levels @since CUPS 1.1.19/OS X 10.3@ ****/
{
PPD_CONFORM_RELAXED, /* Relax whitespace and control char */
PPD_CONFORM_STRICT /* Require strict conformance */
};
typedef enum ppd_conform_e ppd_conform_t;
- /**** Conformance Levels @since CUPS 1.1.19/Mac OS X 10.3@ ****/
+ /**** Conformance Levels @since CUPS 1.1.19/OS X 10.3@ ****/
-typedef struct ppd_attr_s /**** PPD Attribute Structure @since CUPS 1.1.19/Mac OS X 10.3@ ****/
+typedef struct ppd_attr_s /**** PPD Attribute Structure @since CUPS 1.1.19/OS X 10.3@ ****/
{
char name[PPD_MAX_NAME]; /* Name of attribute (cupsXYZ) */
char spec[PPD_MAX_NAME]; /* Specifier string, if any */
****/
char text[PPD_MAX_TEXT - PPD_MAX_NAME];
/* Human-readable group name */
- char name[PPD_MAX_NAME]; /* Group name @since CUPS 1.1.18/Mac OS X 10.3@ */
+ char name[PPD_MAX_NAME]; /* Group name @since CUPS 1.1.18/OS X 10.3@ */
int num_options; /* Number of options */
ppd_option_t *options; /* Options */
int num_subgroups; /* Number of sub-groups */
float matrix[3][3]; /* Transform matrix */
} ppd_profile_t;
-/**** New in CUPS 1.2/Mac OS X 10.5 ****/
-typedef enum ppd_cptype_e /**** Custom Parameter Type @since CUPS 1.2/Mac OS X 10.5@ ****/
+/**** New in CUPS 1.2/OS X 10.5 ****/
+typedef enum ppd_cptype_e /**** Custom Parameter Type @since CUPS 1.2/OS X 10.5@ ****/
{
PPD_CUSTOM_CURVE, /* Curve value for f(x) = x^value */
PPD_CUSTOM_INT, /* Integer number value */
PPD_CUSTOM_STRING /* String of characters */
} ppd_cptype_t;
-typedef union ppd_cplimit_u /**** Custom Parameter Limit @since CUPS 1.2/Mac OS X 10.5@ ****/
+typedef union ppd_cplimit_u /**** Custom Parameter Limit @since CUPS 1.2/OS X 10.5@ ****/
{
float custom_curve; /* Gamma value */
int custom_int; /* Integer value */
int custom_string; /* String length */
} ppd_cplimit_t;
-typedef union ppd_cpvalue_u /**** Custom Parameter Value @since CUPS 1.2/Mac OS X 10.5@ ****/
+typedef union ppd_cpvalue_u /**** Custom Parameter Value @since CUPS 1.2/OS X 10.5@ ****/
{
float custom_curve; /* Gamma value */
int custom_int; /* Integer value */
char *custom_string; /* String value */
} ppd_cpvalue_t;
-typedef struct ppd_cparam_s /**** Custom Parameter @since CUPS 1.2/Mac OS X 10.5@ ****/
+typedef struct ppd_cparam_s /**** Custom Parameter @since CUPS 1.2/OS X 10.5@ ****/
{
char name[PPD_MAX_NAME]; /* Parameter name */
char text[PPD_MAX_TEXT]; /* Human-readable text */
ppd_cpvalue_t current; /* Current value */
} ppd_cparam_t;
-typedef struct ppd_coption_s /**** Custom Option @since CUPS 1.2/Mac OS X 10.5@ ****/
+typedef struct ppd_coption_s /**** Custom Option @since CUPS 1.2/OS X 10.5@ ****/
{
char keyword[PPD_MAX_NAME]; /* Name of option that is being extended... */
ppd_option_t *option; /* Option that is being extended... */
} ppd_coption_t;
typedef struct _ppd_cache_s _ppd_cache_t;
- /**** PPD cache and mapping data @since CUPS 1.5/Mac OS X 10.7@ @private@ ****/
+ /**** PPD cache and mapping data @since CUPS 1.5/OS X 10.7@ @private@ ****/
typedef struct ppd_file_s /**** PPD File ****/
{
int flip_duplex; /* 1 = Flip page for back sides @deprecated@ */
/**** New in CUPS 1.1.19 ****/
- char *protocols; /* Protocols (BCP, TBCP) string @since CUPS 1.1.19/Mac OS X 10.3@ */
- char *pcfilename; /* PCFileName string @since CUPS 1.1.19/Mac OS X 10.3@ */
- int num_attrs; /* Number of attributes @since CUPS 1.1.19/Mac OS X 10.3@ @private@ */
- int cur_attr; /* Current attribute @since CUPS 1.1.19/Mac OS X 10.3@ @private@ */
- ppd_attr_t **attrs; /* Attributes @since CUPS 1.1.19/Mac OS X 10.3@ @private@ */
+ char *protocols; /* Protocols (BCP, TBCP) string @since CUPS 1.1.19/OS X 10.3@ */
+ char *pcfilename; /* PCFileName string @since CUPS 1.1.19/OS X 10.3@ */
+ int num_attrs; /* Number of attributes @since CUPS 1.1.19/OS X 10.3@ @private@ */
+ int cur_attr; /* Current attribute @since CUPS 1.1.19/OS X 10.3@ @private@ */
+ ppd_attr_t **attrs; /* Attributes @since CUPS 1.1.19/OS X 10.3@ @private@ */
- /**** New in CUPS 1.2/Mac OS X 10.5 ****/
- cups_array_t *sorted_attrs; /* Attribute lookup array @since CUPS 1.2/Mac OS X 10.5@ @private@ */
- cups_array_t *options; /* Option lookup array @since CUPS 1.2/Mac OS X 10.5@ @private@ */
- cups_array_t *coptions; /* Custom options array @since CUPS 1.2/Mac OS X 10.5@ @private@ */
+ /**** New in CUPS 1.2/OS X 10.5 ****/
+ cups_array_t *sorted_attrs; /* Attribute lookup array @since CUPS 1.2/OS X 10.5@ @private@ */
+ cups_array_t *options; /* Option lookup array @since CUPS 1.2/OS X 10.5@ @private@ */
+ cups_array_t *coptions; /* Custom options array @since CUPS 1.2/OS X 10.5@ @private@ */
- /**** New in CUPS 1.3/Mac OS X 10.5 ****/
- cups_array_t *marked; /* Marked choices @since CUPS 1.3/Mac OS X 10.5@ @private@ */
+ /**** New in CUPS 1.3/OS X 10.5 ****/
+ cups_array_t *marked; /* Marked choices @since CUPS 1.3/OS X 10.5@ @private@ */
- /**** New in CUPS 1.4/Mac OS X 10.6 ****/
- cups_array_t *cups_uiconstraints; /* cupsUIConstraints @since CUPS 1.4/Mac OS X 10.6@ @private@ */
+ /**** New in CUPS 1.4/OS X 10.6 ****/
+ cups_array_t *cups_uiconstraints; /* cupsUIConstraints @since CUPS 1.4/OS X 10.6@ @private@ */
/**** New in CUPS 1.5 ****/
- _ppd_cache_t *cache; /* PPD cache and mapping data @since CUPS 1.5/Mac OS X 10.7@ @private@ */
+ _ppd_cache_t *cache; /* PPD cache and mapping data @since CUPS 1.5/OS X 10.7@ @private@ */
} ppd_file_t;
extern int ppdLocalize(ppd_file_t *ppd) _PPD_DEPRECATED;
extern ppd_file_t *ppdOpen2(cups_file_t *fp) _PPD_DEPRECATED;
-/**** New in CUPS 1.3/Mac OS X 10.5 ****/
+/**** New in CUPS 1.3/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;
-/**** New in CUPS 1.4/Mac OS X 10.6 ****/
+/**** New in CUPS 1.4/OS X 10.6 ****/
extern int cupsGetConflicts(ppd_file_t *ppd, const char *option,
const char *choice,
cups_option_t **options)
_PWG_MEDIA_MM("jpn_chou4_90x205mm", NULL, "EnvChou4", 90, 205),
_PWG_MEDIA_MM("jpn_hagaki_100x148mm", NULL, "Postcard", 100, 148),
_PWG_MEDIA_MM("jpn_you4_105x235mm", NULL, "EnvYou4", 105, 235),
+ _PWG_MEDIA_MM("jpn_you6_98x190mm", NULL, "EnvYou6", 98, 190),
_PWG_MEDIA_MM("jpn_chou2_111.1x146mm", NULL, NULL, 111.1, 146),
_PWG_MEDIA_MM("jpn_chou3_120x235mm", NULL, "EnvChou3", 120, 235),
_PWG_MEDIA_MM("jpn_oufuku_148x200mm", NULL, "DoublePostcardRotated", 148, 200),
int length) /* I - Length in 2540ths */
{
int i; /* Looping var */
- _pwg_media_t *media; /* Current media */
- int dw, dl; /* Difference in width and length */
+ _pwg_media_t *media, /* Current media */
+ *best_media = NULL; /* Best match */
+ int dw, dl, /* Difference in width and length */
+ best_dw = 999, /* Best difference in width and length */
+ best_dl = 999;
_cups_globals_t *cg = _cupsGlobals(); /* Global data */
* is just about 176/2540ths...
*/
- dw = media->width - width;
- dl = media->length - length;
+ dw = abs(media->width - width);
+ dl = abs(media->length - length);
- if (dw > -176 && dw < 176 && dl > -176 && dl < 176)
+ if (!dw && !dl)
return (media);
+ else if (dw < 176 && dl < 176)
+ {
+ if (dw <= best_dw && dl <= best_dl)
+ {
+ best_media = media;
+ best_dw = dw;
+ best_dl = dl;
+ }
+ }
}
+ if (best_media)
+ return (best_media);
+
/*
* Not a standard size; convert it to a PWG custom name of the form:
*
/*
- * min/max/abs macros...
+ * min/max macros...
*/
# ifndef max
# ifndef min
# define min(a,b) ((a) < (b) ? (a) : (b))
# endif /* !min */
-# ifndef abs
-# define abs(a) ((a) < 0 ? -(a) : (a))
-# endif /* !abs */
/*
*
* Raster file definitions for CUPS.
*
- * Copyright 2007-2011 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 1997-2006 by Easy Software Products.
*
* This file is part of the CUPS Imaging library.
CUPS_CSPACE_GOLD = 13, /* Gold foil @deprecated@ */
CUPS_CSPACE_SILVER = 14, /* Silver foil @deprecated@ */
- CUPS_CSPACE_CIEXYZ = 15, /* CIE XYZ @since CUPS 1.1.19/Mac OS X 10.3@ */
- CUPS_CSPACE_CIELab = 16, /* CIE Lab @since CUPS 1.1.19/Mac OS X 10.3@ */
- CUPS_CSPACE_RGBW = 17, /* Red, green, blue, white (DeviceRGB, sRGB by default) @since CUPS 1.2/Mac OS X 10.5@ */
+ CUPS_CSPACE_CIEXYZ = 15, /* CIE XYZ @since CUPS 1.1.19/OS X 10.3@ */
+ CUPS_CSPACE_CIELab = 16, /* CIE Lab @since CUPS 1.1.19/OS X 10.3@ */
+ CUPS_CSPACE_RGBW = 17, /* Red, green, blue, white (DeviceRGB, sRGB by default) @since CUPS 1.2/OS X 10.5@ */
CUPS_CSPACE_SW = 18, /* Luminance (gamma 2.2) @since CUPS 1.4.5@ */
CUPS_CSPACE_SRGB = 19, /* Red, green, blue (sRGB) @since CUPS 1.4.5@ */
CUPS_CSPACE_ADOBERGB = 20, /* Red, green, blue (Adobe RGB) @since CUPS 1.4.5@ */
- CUPS_CSPACE_ICC1 = 32, /* ICC-based, 1 color @since CUPS 1.1.19/Mac OS X 10.3@ */
- CUPS_CSPACE_ICC2 = 33, /* ICC-based, 2 colors @since CUPS 1.1.19/Mac OS X 10.3@ */
- CUPS_CSPACE_ICC3 = 34, /* ICC-based, 3 colors @since CUPS 1.1.19/Mac OS X 10.3@ */
- CUPS_CSPACE_ICC4 = 35, /* ICC-based, 4 colors @since CUPS 1.1.19/Mac OS X 10.3@ */
- CUPS_CSPACE_ICC5 = 36, /* ICC-based, 5 colors @since CUPS 1.1.19/Mac OS X 10.3@ */
- CUPS_CSPACE_ICC6 = 37, /* ICC-based, 6 colors @since CUPS 1.1.19/Mac OS X 10.3@ */
- CUPS_CSPACE_ICC7 = 38, /* ICC-based, 7 colors @since CUPS 1.1.19/Mac OS X 10.3@ */
- CUPS_CSPACE_ICC8 = 39, /* ICC-based, 8 colors @since CUPS 1.1.19/Mac OS X 10.3@ */
- CUPS_CSPACE_ICC9 = 40, /* ICC-based, 9 colors @since CUPS 1.1.19/Mac OS X 10.3@ */
- CUPS_CSPACE_ICCA = 41, /* ICC-based, 10 colors @since CUPS 1.1.19/Mac OS X 10.3@ */
- CUPS_CSPACE_ICCB = 42, /* ICC-based, 11 colors @since CUPS 1.1.19/Mac OS X 10.3@ */
- CUPS_CSPACE_ICCC = 43, /* ICC-based, 12 colors @since CUPS 1.1.19/Mac OS X 10.3@ */
- CUPS_CSPACE_ICCD = 44, /* ICC-based, 13 colors @since CUPS 1.1.19/Mac OS X 10.3@ */
- CUPS_CSPACE_ICCE = 45, /* ICC-based, 14 colors @since CUPS 1.1.19/Mac OS X 10.3@ */
- CUPS_CSPACE_ICCF = 46, /* ICC-based, 15 colors @since CUPS 1.1.19/Mac OS X 10.3@ */
+ CUPS_CSPACE_ICC1 = 32, /* ICC-based, 1 color @since CUPS 1.1.19/OS X 10.3@ */
+ CUPS_CSPACE_ICC2 = 33, /* ICC-based, 2 colors @since CUPS 1.1.19/OS X 10.3@ */
+ CUPS_CSPACE_ICC3 = 34, /* ICC-based, 3 colors @since CUPS 1.1.19/OS X 10.3@ */
+ CUPS_CSPACE_ICC4 = 35, /* ICC-based, 4 colors @since CUPS 1.1.19/OS X 10.3@ */
+ CUPS_CSPACE_ICC5 = 36, /* ICC-based, 5 colors @since CUPS 1.1.19/OS X 10.3@ */
+ CUPS_CSPACE_ICC6 = 37, /* ICC-based, 6 colors @since CUPS 1.1.19/OS X 10.3@ */
+ CUPS_CSPACE_ICC7 = 38, /* ICC-based, 7 colors @since CUPS 1.1.19/OS X 10.3@ */
+ CUPS_CSPACE_ICC8 = 39, /* ICC-based, 8 colors @since CUPS 1.1.19/OS X 10.3@ */
+ CUPS_CSPACE_ICC9 = 40, /* ICC-based, 9 colors @since CUPS 1.1.19/OS X 10.3@ */
+ CUPS_CSPACE_ICCA = 41, /* ICC-based, 10 colors @since CUPS 1.1.19/OS X 10.3@ */
+ CUPS_CSPACE_ICCB = 42, /* ICC-based, 11 colors @since CUPS 1.1.19/OS X 10.3@ */
+ CUPS_CSPACE_ICCC = 43, /* ICC-based, 12 colors @since CUPS 1.1.19/OS X 10.3@ */
+ CUPS_CSPACE_ICCD = 44, /* ICC-based, 13 colors @since CUPS 1.1.19/OS X 10.3@ */
+ CUPS_CSPACE_ICCE = 45, /* ICC-based, 14 colors @since CUPS 1.1.19/OS X 10.3@ */
+ CUPS_CSPACE_ICCF = 46, /* ICC-based, 15 colors @since CUPS 1.1.19/OS X 10.3@ */
CUPS_CSPACE_DEVICE1 = 48, /* DeviceN, 1 color @since CUPS 1.4.5@ */
CUPS_CSPACE_DEVICE2 = 49, /* DeviceN, 2 colors @since CUPS 1.4.5@ */
{
CUPS_RASTER_READ = 0, /* Open stream for reading */
CUPS_RASTER_WRITE = 1, /* Open stream for writing */
- CUPS_RASTER_WRITE_COMPRESSED = 2, /* Open stream for compressed writing @since CUPS 1.3/Mac OS X 10.5@ */
- CUPS_RASTER_WRITE_PWG = 3 /* Open stream for compressed writing in PWG mode @since CUPS 1.5/Mac OS X 10.7@ */
+ CUPS_RASTER_WRITE_COMPRESSED = 2, /* Open stream for compressed writing @since CUPS 1.3/OS X 10.5@ */
+ CUPS_RASTER_WRITE_PWG = 3 /* Open stream for compressed writing in PWG mode @since CUPS 1.5/OS X 10.7@ */
};
typedef enum cups_mode_e cups_mode_t; /**** cupsRasterOpen modes ****/
} cups_page_header_t;
/**** New in CUPS 1.2 ****/
-typedef struct cups_page_header2_s /**** Version 2 page header @since CUPS 1.2/Mac OS X 10.5@ ****/
+typedef struct cups_page_header2_s /**** Version 2 page header @since CUPS 1.2/OS X 10.5@ ****/
{
/**** Standard Page Device Dictionary String Values ****/
char MediaClass[64]; /* MediaClass string */
unsigned cupsRowStep; /* Spacing between lines */
/**** Version 2 Dictionary Values ****/
- unsigned cupsNumColors; /* Number of color compoents @since CUPS 1.2/Mac OS X 10.5@ */
+ unsigned cupsNumColors; /* Number of color compoents @since CUPS 1.2/OS X 10.5@ */
float cupsBorderlessScalingFactor;
- /* Scaling that was applied to page data @since CUPS 1.2/Mac OS X 10.5@ */
+ /* Scaling that was applied to page data @since CUPS 1.2/OS X 10.5@ */
float cupsPageSize[2]; /* Floating point PageSize (scaling *
- * factor not applied) @since CUPS 1.2/Mac OS X 10.5@ */
+ * factor not applied) @since CUPS 1.2/OS X 10.5@ */
float cupsImagingBBox[4]; /* Floating point ImagingBoundingBox
* (scaling factor not applied, left,
- * bottom, right, top) @since CUPS 1.2/Mac OS X 10.5@ */
- unsigned cupsInteger[16]; /* User-defined integer values @since CUPS 1.2/Mac OS X 10.5@ */
- float cupsReal[16]; /* User-defined floating-point values @since CUPS 1.2/Mac OS X 10.5@ */
- char cupsString[16][64]; /* User-defined string values @since CUPS 1.2/Mac OS X 10.5@ */
- char cupsMarkerType[64]; /* Ink/toner type @since CUPS 1.2/Mac OS X 10.5@ */
- char cupsRenderingIntent[64];/* Color rendering intent @since CUPS 1.2/Mac OS X 10.5@ */
- char cupsPageSizeName[64]; /* PageSize name @since CUPS 1.2/Mac OS X 10.5@ */
+ * bottom, right, top) @since CUPS 1.2/OS X 10.5@ */
+ unsigned cupsInteger[16]; /* User-defined integer values @since CUPS 1.2/OS X 10.5@ */
+ float cupsReal[16]; /* User-defined floating-point values @since CUPS 1.2/OS X 10.5@ */
+ char cupsString[16][64]; /* User-defined string values @since CUPS 1.2/OS X 10.5@ */
+ char cupsMarkerType[64]; /* Ink/toner type @since CUPS 1.2/OS X 10.5@ */
+ char cupsRenderingIntent[64];/* Color rendering intent @since CUPS 1.2/OS X 10.5@ */
+ char cupsPageSizeName[64]; /* PageSize name @since CUPS 1.2/OS X 10.5@ */
} cups_page_header2_t;
typedef struct _cups_raster_s cups_raster_t;
*
* IPP utilities for CUPS.
*
- * Copyright 2007-2011 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* If "outfile" is a valid file descriptor, cupsDoIORequest() copies
* all of the data after the IPP response message to the file.
*
- * @since CUPS 1.3/Mac OS X 10.5@
+ * @since CUPS 1.3/OS X 10.5@
*/
ipp_t * /* O - Response data */
* additional data, use httpRead() after getting a successful response,
* otherwise call httpFlush() to complete the response processing.
*
- * @since CUPS 1.4/Mac OS X 10.6@
+ * @since CUPS 1.4/OS X 10.6@
*/
ipp_t * /* O - Response or @code NULL@ on HTTP error */
/*
* 'cupsLastErrorString()' - Return the last IPP status-message.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
const char * /* O - status-message text from last request */
* This function is used after cupsGetResponse() to read the PPD or document
* files for CUPS_GET_PPD and CUPS_GET_DOCUMENT requests, respectively.
*
- * @since CUPS 1.4/Mac OS X 10.6@
+ * @since CUPS 1.4/OS X 10.6@
*/
ssize_t /* O - Bytes read, 0 on EOF, -1 on error */
* Unlike cupsDoFileRequest(), cupsDoIORequest(), and cupsDoRequest(), the
* request is not freed.
*
- * @since CUPS 1.4/Mac OS X 10.6@
+ * @since CUPS 1.4/OS X 10.6@
*/
http_status_t /* O - Initial HTTP status */
* This function is used after @link cupsSendRequest@ to provide a PPD and
* after @link cupsStartDocument@ to provide a document file.
*
- * @since CUPS 1.4/Mac OS X 10.6@
+ * @since CUPS 1.4/OS X 10.6@
*/
http_status_t /* O - @code HTTP_CONTINUE@ if OK or HTTP status on error */
* pointed to by the "data" parameter. cupsSideChannelDoRequest() will
* update the value to contain the number of data bytes in the buffer.
*
- * @since CUPS 1.3/Mac OS X 10.5@
+ * @since CUPS 1.3/OS X 10.5@
*/
cups_sc_status_t /* O - Status of command */
* pointed to by the "data" parameter. cupsSideChannelDoRequest() will
* update the value to contain the number of data bytes in the buffer.
*
- * @since CUPS 1.3/Mac OS X 10.5@
+ * @since CUPS 1.3/OS X 10.5@
*/
int /* O - 0 on success, -1 on error */
* support SNMP queries. @code CUPS_SC_STATUS_NO_RESPONSE@ is returned when
* the printer does not respond to the SNMP query.
*
- * @since CUPS 1.4/Mac OS X 10.6@
+ * @since CUPS 1.4/OS X 10.6@
*/
cups_sc_status_t /* O - Query status */
* support SNMP queries. @code CUPS_SC_STATUS_NO_RESPONSE@ is returned when
* the printer does not respond to the first SNMP query.
*
- * @since CUPS 1.4/Mac OS X 10.6@
+ * @since CUPS 1.4/OS X 10.6@
*/
cups_sc_status_t /* O - Status of first query of @code CUPS_SC_STATUS_OK@ on success */
* This function is normally only called by backend programs to send
* responses to a filter, driver, or port monitor program.
*
- * @since CUPS 1.3/Mac OS X 10.5@
+ * @since CUPS 1.3/OS X 10.5@
*/
int /* O - 0 on success, -1 on error */
*
* Side-channel API definitions for CUPS.
*
- * Copyright 2007-2011 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 2006 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
CUPS_SC_CMD_GET_BIDI = 3, /* Return bidirectional capabilities */
CUPS_SC_CMD_GET_DEVICE_ID = 4, /* Return the IEEE-1284 device ID */
CUPS_SC_CMD_GET_STATE = 5, /* Return the device state */
- CUPS_SC_CMD_SNMP_GET = 6, /* Query an SNMP OID @since CUPS 1.4/Mac OS X 10.6@ */
- CUPS_SC_CMD_SNMP_GET_NEXT = 7, /* Query the next SNMP OID @since CUPS 1.4/Mac OS X 10.6@ */
- CUPS_SC_CMD_GET_CONNECTED = 8, /* Return whether the backend is "connected" to the printer @since CUPS 1.5/Mac OS X 10.7@ */
+ CUPS_SC_CMD_SNMP_GET = 6, /* Query an SNMP OID @since CUPS 1.4/OS X 10.6@ */
+ CUPS_SC_CMD_SNMP_GET_NEXT = 7, /* Query the next SNMP OID @since CUPS 1.4/OS X 10.6@ */
+ CUPS_SC_CMD_GET_CONNECTED = 8, /* Return whether the backend is "connected" to the printer @since CUPS 1.5/OS X 10.7@ */
CUPS_SC_CMD_MAX /* End of valid values @private@ */
};
typedef enum cups_sc_command_e cups_sc_command_t;
*
* Private SNMP definitions for CUPS.
*
- * Copyright 2007-2010 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 2006-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
#define CUPS_SNMP_MAX_COMMUNITY 512 /* Maximum size of community name */
#define CUPS_SNMP_MAX_OID 128 /* Maximum number of OID numbers */
#define CUPS_SNMP_MAX_PACKET 1472 /* Maximum size of SNMP packet */
-#define CUPS_SNMP_MAX_STRING 65536 /* Maximum size of string */
+#define CUPS_SNMP_MAX_STRING 1024 /* Maximum size of string */
#define CUPS_SNMP_VERSION_1 0 /* SNMPv1 */
packet->object_value.string.num_bytes = length;
asn1_get_string(&bufptr, bufend, length,
(char *)packet->object_value.string.bytes,
- CUPS_SNMP_MAX_STRING);
+ sizeof(packet->object_value.string.bytes));
break;
case CUPS_ASN1_OID :
*
* Temp file utilities for CUPS.
*
- * Copyright 2007-2010 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 1997-2006 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* The temporary filename is returned in the filename buffer.
* The temporary file is opened for writing.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
cups_file_t * /* O - CUPS file or @code NULL@ on error */
*
* PWG test program for CUPS.
*
- * Copyright 2009-2011 by Apple Inc.
+ * Copyright 2009-2012 by Apple Inc.
*
* These coded instructions, statements, and computer programs are the
* property of Apple Inc. and are protected by Federal copyright
else
puts("PASS");
+ fputs("_pwgMediaForSize(9842, 19050): ", stdout);
+ if ((pwgmedia = _pwgMediaForSize(9842, 19050)) == NULL)
+ {
+ puts("FAIL (not found)");
+ status ++;
+ }
+ else if (strcmp(pwgmedia->pwg, "na_monarch_3.875x7.5in"))
+ {
+ printf("FAIL (%s)\n", pwgmedia->pwg);
+ status ++;
+ }
+ else
+ printf("PASS (%s)\n", pwgmedia->pwg);
+
+ fputs("_pwgMediaForSize(9800, 19000): ", stdout);
+ if ((pwgmedia = _pwgMediaForSize(9800, 19000)) == NULL)
+ {
+ puts("FAIL (not found)");
+ status ++;
+ }
+ else if (strcmp(pwgmedia->pwg, "jpn_you6_98x190mm"))
+ {
+ printf("FAIL (%s)\n", pwgmedia->pwg);
+ status ++;
+ }
+ else
+ printf("PASS (%s)\n", pwgmedia->pwg);
+
return (status);
}
*
* Private threading definitions for CUPS.
*
- * Copyright 2009-2010 by Apple Inc.
+ * Copyright 2009-2012 by Apple Inc.
*
* These coded instructions, statements, and computer programs are the
* property of Apple Inc. and are protected by Federal copyright
typedef void *(__stdcall *_cups_thread_func_t)(void *arg);
typedef struct _cups_mutex_s
{
- int m_init; /* Flag for on-demand initialization */
+ int m_init; /* Flag for on-demand initialization */
CRITICAL_SECTION m_criticalSection;
/* Win32 Critical Section */
} _cups_mutex_t;
# define _cupsThreadSetData(k,p) TlsSetValue(k,p)
# else
+typedef void *(*_cups_thread_func_t)(void *arg);
typedef char _cups_mutex_t;
typedef char _cups_rwlock_t;
typedef void *_cups_threadkey_t;
*
* Threading primitives for CUPS.
*
- * Copyright 2009-2010 by Apple Inc.
+ * Copyright 2009-2012 by Apple Inc.
*
* These coded instructions, statements, and computer programs are the
* property of Apple Inc. and are protected by Federal copyright
* '_cupsThreadCreate()' - Create a thread.
*/
-int /* O - 0 on failure, 1 on success */
+int /* O - 0 on failure, 1 on success */
_cupsThreadCreate(
_cups_thread_func_t func, /* I - Entry point */
void *arg) /* I - Entry point context */
* '_cupsThreadCreate()' - Create a thread.
*/
-int /* O - 0 on failure, 1 on success */
+int /* O - 0 on failure, 1 on success */
_cupsThreadCreate(
_cups_thread_func_t func, /* I - Entry point */
void *arg) /* I - Entry point context */
{
(void)rwlock;
}
+
+
+/*
+ * '_cupsThreadCreate()' - Create a thread.
+ */
+
+int /* O - 0 on failure, 1 on success */
+_cupsThreadCreate(
+ _cups_thread_func_t func, /* I - Entry point */
+ void *arg) /* I - Entry point context */
+{
+ fputs("DEBUG: CUPS was compiled without threading support, no thread "
+ "created.\n", stderr);
+
+ (void)func;
+ (void)arg;
+
+ return (0);
+}
#endif /* HAVE_PTHREAD_H */
* the @link cupsSetPasswordCB@ or @link cupsSetPasswordCB2@ functions need to
* do so in each thread for the same function to be used.
*
- * @since CUPS 1.4/Mac OS X 10.6@
+ * @since CUPS 1.4/OS X 10.6@
*/
const char * /* O - Password */
* in a program. Multi-threaded programs that override the callback need to do
* so in each thread for the same callback to be used.
*
- * @since CUPS 1.5/Mac OS X 10.7@
+ * @since CUPS 1.5/OS X 10.7@
*/
void
* program. Multi-threaded programs that override the setting need to do so in
* each thread for the same setting to be used.
*
- * @since CUPS 1.5/Mac OS X 10.7@
+ * @since CUPS 1.5/OS X 10.7@
*/
int /* O - Status of call (0 = success) */
* in a program. Multi-threaded programs that override the callback need to do
* so in each thread for the same callback to be used.
*
- * @since CUPS 1.4/Mac OS X 10.6@
+ * @since CUPS 1.4/OS X 10.6@
*/
void
* in a program. Multi-threaded programs that override the callback need to do
* so in each thread for the same callback to be used.
*
- * @since CUPS 1.5/Mac OS X 10.7@
+ * @since CUPS 1.5/OS X 10.7@
*/
void
}
#ifndef __APPLE__
/*
- * The Server directive is not supported on Mac OS X due to app sandboxing
+ * The Server directive is not supported on OS X due to app sandboxing
* restrictions, i.e. not all apps request network access.
*/
else if (!cups_server && (!cg->server[0] || !cg->ipp_port) &&
*
* Printing utilities for CUPS.
*
- * Copyright 2007-2011 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 1997-2006 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* Use the @link cupsLastError@ and @link cupsLastErrorString@ functions to get
* the cause of any failure.
*
- * @since CUPS 1.4/Mac OS X 10.6@
+ * @since CUPS 1.4/OS X 10.6@
*/
ipp_status_t /* O - IPP status */
* print, use the @link cupsPrintFile2@ or @link cupsPrintFiles2@ function
* instead.
*
- * @since CUPS 1.4/Mac OS X 10.6@
+ * @since CUPS 1.4/OS X 10.6@
*/
int /* O - Job ID or 0 on error */
*
* The document must have been started using @link cupsStartDocument@.
*
- * @since CUPS 1.4/Mac OS X 10.6@
+ * @since CUPS 1.4/OS X 10.6@
*/
ipp_status_t /* O - Status of document submission */
* functions to get the user-defined default printer, as this function does
* not support the lpoptions-defined default printer.
*
- * @since CUPS 1.1.21/Mac OS X 10.4@
+ * @since CUPS 1.1.21/OS X 10.4@
*/
const char * /* O - Default printer or @code NULL@ */
* pending, processing, or held and @code CUPS_WHICHJOBS_COMPLETED@ returns
* jobs that are stopped, canceled, aborted, or completed.
*
- * @since CUPS 1.1.21/Mac OS X 10.4@
+ * @since CUPS 1.1.21/OS X 10.4@
*/
int /* O - Number of jobs */
* each call to @link cupsGetPPD@ or @code cupsGetPPD2@. The caller "owns" the
* file that is created and must @code unlink@ the returned filename.
*
- * @since CUPS 1.1.21/Mac OS X 10.4@
+ * @since CUPS 1.1.21/OS X 10.4@
*/
const char * /* O - Filename for PPD file */
* For classes, @code cupsGetPPD3@ returns the PPD file for the first printer
* in the class.
*
- * @since CUPS 1.4/Mac OS X 10.6@
+ * @since CUPS 1.4/OS X 10.6@
*/
http_status_t /* O - HTTP status */
* overwritten on the next call to @link cupsGetPPD@, @link cupsGetPPD2@,
* or @link cupsGetServerPPD@.
*
- * @since CUPS 1.3/Mac OS X 10.5@
+ * @since CUPS 1.3/OS X 10.5@
*/
char * /* O - Name of PPD file or @code NULL@ on error */
* 'cupsPrintFile2()' - Print a file to a printer or class on the specified
* server.
*
- * @since CUPS 1.1.21/Mac OS X 10.4@
+ * @since CUPS 1.1.21/OS X 10.4@
*/
int /* O - Job ID or 0 on error */
* 'cupsPrintFiles2()' - Print one or more files to a printer or class on the
* specified server.
*
- * @since CUPS 1.1.21/Mac OS X 10.4@
+ * @since CUPS 1.1.21/OS X 10.4@
*/
int /* O - Job ID or 0 on error */
* @code CUPS_FORMAT_TEXT@ are provided for the "format" argument, although
* any supported MIME type string can be supplied.
*
- * @since CUPS 1.4/Mac OS X 10.6@
+ * @since CUPS 1.4/OS X 10.6@
*/
http_status_t /* O - HTTP status of request */
*
* API versioning definitions for CUPS.
*
- * Copyright 2007-2011 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
*
* These coded instructions, statements, and computer programs are the
* property of Apple Inc. and are protected by Federal copyright
* 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
+ * On 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)
#media "w167h288/Shipping Address" 167 288
#media "w162h540/Internet Postage 2-Part" 162 540
#media "w162h504/Internet Postage 3-Part" 162 504
-#media "w41h248/File Folder" 41 248
+#media "w41h248/File Folder " 41 248
#media "w41h144/Hanging Folder" 41 144
#media "w153h198/3.5\" Disk" 153 198
help/man-cancel.html \
help/man-cups-config.html \
help/man-cups-lpd.html \
- help/man-cups-polld.html \
+ help/man-cups-snmp.html \
help/man-cupsaddsmb.html \
help/man-cupsd.html \
help/man-cupsenable.html \
puts(s);
</pre>
<h2 class="title"><a name="FUNCTIONS">Functions</a></h2>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsArrayAdd">cupsArrayAdd</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsArrayAdd">cupsArrayAdd</a></h3>
<p class="description">Add an element to the array.</p>
<p class="code">
int cupsArrayAdd (<br>
the element is appended to the end of the array.
</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsArrayClear">cupsArrayClear</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsArrayClear">cupsArrayClear</a></h3>
<p class="description">Clear the array.</p>
<p class="code">
void cupsArrayClear (<br>
elements themselves.
</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsArrayCount">cupsArrayCount</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsArrayCount">cupsArrayCount</a></h3>
<p class="description">Get the number of elements in the array.</p>
<p class="code">
int cupsArrayCount (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Number of elements</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsArrayCurrent">cupsArrayCurrent</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsArrayCurrent">cupsArrayCurrent</a></h3>
<p class="description">Return the current element in the array.</p>
<p class="code">
void *cupsArrayCurrent (<br>
<a href="#cupsArrayFirst"><code>cupsArrayFirst</code></a>, or <a href="#cupsArrayIndex"><code>cupsArrayIndex</code></a>, or <a href="#cupsArrayLast"><code>cupsArrayLast</code></a>.
</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsArrayDelete">cupsArrayDelete</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsArrayDelete">cupsArrayDelete</a></h3>
<p class="description">Free all memory used by the array.</p>
<p class="code">
void cupsArrayDelete (<br>
elements themselves.
</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsArrayDup">cupsArrayDup</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsArrayDup">cupsArrayDup</a></h3>
<p class="description">Duplicate the array.</p>
<p class="code">
<a href="#cups_array_t">cups_array_t</a> *cupsArrayDup (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Duplicate array</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsArrayFind">cupsArrayFind</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsArrayFind">cupsArrayFind</a></h3>
<p class="description">Find an element in the array.</p>
<p class="code">
void *cupsArrayFind (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Element found or <code>NULL</code></p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsArrayFirst">cupsArrayFirst</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsArrayFirst">cupsArrayFirst</a></h3>
<p class="description">Get the first element in the array.</p>
<p class="code">
void *cupsArrayFirst (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">First element or <code>NULL</code> if the array is empty</p>
-<h3 class="function"><span class="info"> CUPS 1.3/Mac OS X 10.5 </span><a name="cupsArrayGetIndex">cupsArrayGetIndex</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.3/OS X 10.5 </span><a name="cupsArrayGetIndex">cupsArrayGetIndex</a></h3>
<p class="description">Get the index of the current element.</p>
<p class="code">
int cupsArrayGetIndex (<br>
<a href="#cupsArrayFirst"><code>cupsArrayFirst</code></a>, or <a href="#cupsArrayIndex"><code>cupsArrayIndex</code></a>, or <a href="#cupsArrayLast"><code>cupsArrayLast</code></a>.
</p>
-<h3 class="function"><span class="info"> CUPS 1.3/Mac OS X 10.5 </span><a name="cupsArrayGetInsert">cupsArrayGetInsert</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.3/OS X 10.5 </span><a name="cupsArrayGetInsert">cupsArrayGetInsert</a></h3>
<p class="description">Get the index of the last inserted element.</p>
<p class="code">
int cupsArrayGetInsert (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Index of the last inserted element, starting at 0</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsArrayIndex">cupsArrayIndex</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsArrayIndex">cupsArrayIndex</a></h3>
<p class="description">Get the N-th element in the array.</p>
<p class="code">
void *cupsArrayIndex (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">N-th element or <code>NULL</code></p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsArrayInsert">cupsArrayInsert</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsArrayInsert">cupsArrayInsert</a></h3>
<p class="description">Insert an element in the array.</p>
<p class="code">
int cupsArrayInsert (<br>
arrays, the element is inserted at the beginning of the array.
</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsArrayLast">cupsArrayLast</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsArrayLast">cupsArrayLast</a></h3>
<p class="description">Get the last element in the array.</p>
<p class="code">
void *cupsArrayLast (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Last element or <code>NULL</code> if the array is empty</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsArrayNew">cupsArrayNew</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsArrayNew">cupsArrayNew</a></h3>
<p class="description">Create a new array.</p>
<p class="code">
<a href="#cups_array_t">cups_array_t</a> *cupsArrayNew (<br>
like <code>strcmp</code> can be used for sorted string arrays.
</p>
-<h3 class="function"><span class="info"> CUPS 1.3/Mac OS X 10.5 </span><a name="cupsArrayNew2">cupsArrayNew2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.3/OS X 10.5 </span><a name="cupsArrayNew2">cupsArrayNew2</a></h3>
<p class="description">Create a new array with hash.</p>
<p class="code">
<a href="#cups_array_t">cups_array_t</a> *cupsArrayNew2 (<br>
specified hash size ("hsize").
</p>
-<h3 class="function"><span class="info"> CUPS 1.5/Mac OS X 10.7 </span><a name="cupsArrayNew3">cupsArrayNew3</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.5/OS X 10.7 </span><a name="cupsArrayNew3">cupsArrayNew3</a></h3>
<p class="description">Create a new array with hash and/or free function.</p>
<p class="code">
<a href="#cups_array_t">cups_array_t</a> *cupsArrayNew3 (<br>
removed or the array is deleted.
</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsArrayNext">cupsArrayNext</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsArrayNext">cupsArrayNext</a></h3>
<p class="description">Get the next element in the array.</p>
<p class="code">
void *cupsArrayNext (<br>
to set the current element.
</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsArrayPrev">cupsArrayPrev</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsArrayPrev">cupsArrayPrev</a></h3>
<p class="description">Get the previous element in the array.</p>
<p class="code">
void *cupsArrayPrev (<br>
to set the current element.
</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsArrayRemove">cupsArrayRemove</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsArrayRemove">cupsArrayRemove</a></h3>
<p class="description">Remove an element from the array.</p>
<p class="code">
int cupsArrayRemove (<br>
removed element.
</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsArrayRestore">cupsArrayRestore</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsArrayRestore">cupsArrayRestore</a></h3>
<p class="description">Reset the current element to the last <a href="#cupsArraySave"><code>cupsArraySave</code></a>.</p>
<p class="code">
void *cupsArrayRestore (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">New current element</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsArraySave">cupsArraySave</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsArraySave">cupsArraySave</a></h3>
<p class="description">Mark the current element for a later <a href="#cupsArrayRestore"><code>cupsArrayRestore</code></a>.</p>
<p class="code">
int cupsArraySave (<br>
The save/restore stack is guaranteed to be at least 32 elements deep.
</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsArrayUserData">cupsArrayUserData</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsArrayUserData">cupsArrayUserData</a></h3>
<p class="description">Return the user data for an array.</p>
<p class="code">
void *cupsArrayUserData (<br>
<h4 class="discussion">Discussion</h4>
<p class="discussion">New option arrays can be initialized simply by passing 0 for the
"num_options" parameter.</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsAdminCreateWindowsPPD">cupsAdminCreateWindowsPPD</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsAdminCreateWindowsPPD">cupsAdminCreateWindowsPPD</a></h3>
<p class="description">Create the Windows PPD file for a printer.</p>
<p class="code">
char *cupsAdminCreateWindowsPPD (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">PPD file or NULL</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsAdminExportSamba">cupsAdminExportSamba</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsAdminExportSamba">cupsAdminExportSamba</a></h3>
<p class="description">Export a printer to Samba.</p>
<p class="code">
int cupsAdminExportSamba (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">1 on success, 0 on failure</p>
-<h3 class="function"><span class="info"> CUPS 1.3/Mac OS X 10.5 </span><a name="cupsAdminGetServerSettings">cupsAdminGetServerSettings</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.3/OS X 10.5 </span><a name="cupsAdminGetServerSettings">cupsAdminGetServerSettings</a></h3>
<p class="description">Get settings from the server.</p>
<p class="code">
int cupsAdminGetServerSettings (<br>
you are done with them.
</p>
-<h3 class="function"><span class="info"> CUPS 1.3/Mac OS X 10.5 </span><a name="cupsAdminSetServerSettings">cupsAdminSetServerSettings</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.3/OS X 10.5 </span><a name="cupsAdminSetServerSettings">cupsAdminSetServerSettings</a></h3>
<p class="description">Set settings on the server.</p>
<p class="code">
int cupsAdminSetServerSettings (<br>
<br>
Use the <a href="#cupsLastError"><code>cupsLastError</code></a> and <a href="#cupsLastErrorString"><code>cupsLastErrorString</code></a> functions to get
the cause of any failure.</p>
-<h3 class="function"><span class="info"> CUPS 1.4/Mac OS X 10.6 </span><a name="cupsCancelJob2">cupsCancelJob2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/OS X 10.6 </span><a name="cupsCancelJob2">cupsCancelJob2</a></h3>
<p class="description">Cancel or purge a print job.</p>
<p class="code">
ipp_status_t cupsCancelJob2 (<br>
the cause of any failure.
</p>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="cupsConnectDest">cupsConnectDest</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="cupsConnectDest">cupsConnectDest</a></h3>
<p class="description">Connect to the server for a destination.</p>
<p class="code">
http_t *cupsConnectDest (<br>
The caller is responsible for calling httpClose() on the returned object.
</p>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="cupsConnectDestBlock">cupsConnectDestBlock</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="cupsConnectDestBlock">cupsConnectDestBlock</a></h3>
<p class="description">Connect to the server for a destination.</p>
<p class="code">
http_t *cupsConnectDestBlock (<br>
for calling cupsFreeDests() on the returned object(s).
</p>
-<h3 class="function"><span class="info"> CUPS 1.4/Mac OS X 10.6 </span><a name="cupsCreateJob">cupsCreateJob</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/OS X 10.6 </span><a name="cupsCreateJob">cupsCreateJob</a></h3>
<p class="description">Create an empty job for streaming.</p>
<p class="code">
int cupsCreateJob (<br>
in a program. Multi-threaded programs that override the setting via the
<a href="#cupsSetEncryption"><code>cupsSetEncryption</code></a> function need to do so in each thread for the same
setting to be used.</p>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="cupsEnumDests">cupsEnumDests</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="cupsEnumDests">cupsEnumDests</a></h3>
<p class="description">Enumerate available destinations with a callback function.</p>
<p class="code">
int cupsEnumDests (<br>
destinations have been enumerated or the callback function returns 0.
</p>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="cupsEnumDestsBlock">cupsEnumDestsBlock</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="cupsEnumDestsBlock">cupsEnumDestsBlock</a></h3>
<p class="description">Enumerate available destinations with a block.</p>
<p class="code">
int cupsEnumDestsBlock (<br>
destinations have been enumerated or the block returns 0.
</p>
-<h3 class="function"><span class="info"> CUPS 1.4/Mac OS X 10.6 </span><a name="cupsFinishDocument">cupsFinishDocument</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/OS X 10.6 </span><a name="cupsFinishDocument">cupsFinishDocument</a></h3>
<p class="description">Finish sending a document.</p>
<p class="code">
ipp_status_t cupsFinishDocument (<br>
Applications should use the <a href="#cupsGetDests"><code>cupsGetDests</code></a> and <a href="#cupsGetDest"><code>cupsGetDest</code></a>
functions to get the user-defined default printer, as this function does
not support the lpoptions-defined default printer.</p>
-<h3 class="function"><span class="info"> CUPS 1.1.21/Mac OS X 10.4 </span><a name="cupsGetDefault2">cupsGetDefault2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.21/OS X 10.4 </span><a name="cupsGetDefault2">cupsGetDefault2</a></h3>
<p class="description">Get the default printer or class for the specified server.</p>
<p class="code">
const char *cupsGetDefault2 (<br>
<br>
Use the <a href="#cupsFreeDests"><code>cupsFreeDests</code></a> function to free the destination list and
the <a href="#cupsGetDest"><code>cupsGetDest</code></a> function to find a particular destination.</p>
-<h3 class="function"><span class="info"> CUPS 1.1.21/Mac OS X 10.4 </span><a name="cupsGetDests2">cupsGetDests2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.21/OS X 10.4 </span><a name="cupsGetDests2">cupsGetDests2</a></h3>
<p class="description">Get the list of destinations from the specified server.</p>
<p class="code">
int cupsGetDests2 (<br>
of state, while <code>CUPS_WHICHJOBS_ACTIVE</code> returns jobs that are
pending, processing, or held and <code>CUPS_WHICHJOBS_COMPLETED</code> returns
jobs that are stopped, canceled, aborted, or completed.</p>
-<h3 class="function"><span class="info"> CUPS 1.1.21/Mac OS X 10.4 </span><a name="cupsGetJobs2">cupsGetJobs2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.21/OS X 10.4 </span><a name="cupsGetJobs2">cupsGetJobs2</a></h3>
<p class="description">Get the jobs from the specified server.</p>
<p class="code">
int cupsGetJobs2 (<br>
jobs that are stopped, canceled, aborted, or completed.
</p>
-<h3 class="function"><span class="info"> CUPS 1.4/Mac OS X 10.6 </span><a name="cupsGetNamedDest">cupsGetNamedDest</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/OS X 10.6 </span><a name="cupsGetNamedDest">cupsGetNamedDest</a></h3>
<p class="description">Get options for the named destination.</p>
<p class="code">
<a href="#cups_dest_t">cups_dest_t</a> *cupsGetNamedDest (<br>
The returned filename is stored in a static buffer and is overwritten with
each call to <code>cupsGetPPD</code> or <a href="#cupsGetPPD2"><code>cupsGetPPD2</code></a>. The caller "owns" the
file that is created and must <code>unlink</code> the returned filename.</p>
-<h3 class="function"><span class="info"> CUPS 1.1.21/Mac OS X 10.4 </span><a name="cupsGetPPD2">cupsGetPPD2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.21/OS X 10.4 </span><a name="cupsGetPPD2">cupsGetPPD2</a></h3>
<p class="description">Get the PPD file for a printer from the specified server.</p>
<p class="code">
const char *cupsGetPPD2 (<br>
file that is created and must <code>unlink</code> the returned filename.
</p>
-<h3 class="function"><span class="info"> CUPS 1.4/Mac OS X 10.6 </span><a name="cupsGetPPD3">cupsGetPPD3</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/OS X 10.6 </span><a name="cupsGetPPD3">cupsGetPPD3</a></h3>
<p class="description">Get the PPD file for a printer on the specified
server if it has changed.</p>
<p class="code">
thread in a program. Multi-threaded programs that override the setting via
the <a href="#cupsSetPasswordCB"><code>cupsSetPasswordCB</code></a> or <a href="#cupsSetPasswordCB2"><code>cupsSetPasswordCB2</code></a> functions need to
do so in each thread for the same function to be used.</p>
-<h3 class="function"><span class="info"> CUPS 1.4/Mac OS X 10.6 </span><a name="cupsGetPassword2">cupsGetPassword2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/OS X 10.6 </span><a name="cupsGetPassword2">cupsGetPassword2</a></h3>
<p class="description">Get a password from the user using the advanced
password callback.</p>
<p class="code">
<p class="discussion">This function is deprecated - use <a href="#cupsGetDests"><code>cupsGetDests</code></a> instead.
</p>
-<h3 class="function"><span class="info"> CUPS 1.3/Mac OS X 10.5 </span><a name="cupsGetServerPPD">cupsGetServerPPD</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.3/OS X 10.5 </span><a name="cupsGetServerPPD">cupsGetServerPPD</a></h3>
<p class="description">Get an available PPD file from the server.</p>
<p class="code">
char *cupsGetServerPPD (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Language data</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsNotifySubject">cupsNotifySubject</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsNotifySubject">cupsNotifySubject</a></h3>
<p class="description">Return the subject for the given notification message.</p>
<p class="code">
char *cupsNotifySubject (<br>
<p class="discussion">The returned string must be freed by the caller using <code>free</code>.
</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsNotifyText">cupsNotifyText</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsNotifyText">cupsNotifyText</a></h3>
<p class="description">Return the text for the given notification message.</p>
<p class="code">
char *cupsNotifyText (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Job ID or 0 on error</p>
-<h3 class="function"><span class="info"> CUPS 1.1.21/Mac OS X 10.4 </span><a name="cupsPrintFile2">cupsPrintFile2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.21/OS X 10.4 </span><a name="cupsPrintFile2">cupsPrintFile2</a></h3>
<p class="description">Print a file to a printer or class on the specified
server.</p>
<p class="code">
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Job ID or 0 on error</p>
-<h3 class="function"><span class="info"> CUPS 1.1.21/Mac OS X 10.4 </span><a name="cupsPrintFiles2">cupsPrintFiles2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.21/OS X 10.4 </span><a name="cupsPrintFiles2">cupsPrintFiles2</a></h3>
<p class="description">Print one or more files to a printer or class on the
specified server.</p>
<p class="code">
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Job ID or 0 on error</p>
-<h3 class="function"><span class="info"> CUPS 1.3/Mac OS X 10.5 </span><a name="cupsRemoveDest">cupsRemoveDest</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.3/OS X 10.5 </span><a name="cupsRemoveDest">cupsRemoveDest</a></h3>
<p class="description">Remove a destination from the destination list.</p>
<p class="code">
int cupsRemoveDest (<br>
options for the user.
</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsRemoveOption">cupsRemoveOption</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsRemoveOption">cupsRemoveOption</a></h3>
<p class="description">Remove an option from an option array.</p>
<p class="code">
int cupsRemoveOption (<br>
Multi-threaded programs that override the server via the
<a href="#cupsSetServer"><code>cupsSetServer</code></a> function need to do so in each thread for the same
server to be used.</p>
-<h3 class="function"><span class="info"> CUPS 1.5/Mac OS X 10.7 </span><a name="cupsSetClientCertCB">cupsSetClientCertCB</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.5/OS X 10.7 </span><a name="cupsSetClientCertCB">cupsSetClientCertCB</a></h3>
<p class="description">Set the client certificate callback.</p>
<p class="code">
void cupsSetClientCertCB (<br>
so in each thread for the same callback to be used.
</p>
-<h3 class="function"><span class="info"> CUPS 1.5/Mac OS X 10.7 </span><a name="cupsSetCredentials">cupsSetCredentials</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.5/OS X 10.7 </span><a name="cupsSetCredentials">cupsSetCredentials</a></h3>
<p class="description">Set the default credentials to be used for SSL/TLS
connections.</p>
<p class="code">
each thread for the same setting to be used.
</p>
-<h3 class="function"><span class="info"> CUPS 1.3/Mac OS X 10.5 </span><a name="cupsSetDefaultDest">cupsSetDefaultDest</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.3/OS X 10.5 </span><a name="cupsSetDefaultDest">cupsSetDefaultDest</a></h3>
<p class="description">Set the default destination.</p>
<p class="code">
void cupsSetDefaultDest (<br>
<h4 class="discussion">Discussion</h4>
<p class="discussion">This function saves the destinations to /etc/cups/lpoptions when run
as root and ~/.cups/lpoptions when run as a normal user.</p>
-<h3 class="function"><span class="info"> CUPS 1.1.21/Mac OS X 10.4 </span><a name="cupsSetDests2">cupsSetDests2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.21/OS X 10.4 </span><a name="cupsSetDests2">cupsSetDests2</a></h3>
<p class="description">Save the list of destinations for the specified server.</p>
<p class="code">
int cupsSetDests2 (<br>
Note: The current password callback is tracked separately for each thread
in a program. Multi-threaded programs that override the callback need to do
so in each thread for the same callback to be used.</p>
-<h3 class="function"><span class="info"> CUPS 1.4/Mac OS X 10.6 </span><a name="cupsSetPasswordCB2">cupsSetPasswordCB2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/OS X 10.6 </span><a name="cupsSetPasswordCB2">cupsSetPasswordCB2</a></h3>
<p class="description">Set the advanced password callback for CUPS.</p>
<p class="code">
void cupsSetPasswordCB2 (<br>
Note: The current server is tracked separately for each thread in a program.
Multi-threaded programs that override the server need to do so in each
thread for the same server to be used.</p>
-<h3 class="function"><span class="info"> CUPS 1.5/Mac OS X 10.7 </span><a name="cupsSetServerCertCB">cupsSetServerCertCB</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.5/OS X 10.7 </span><a name="cupsSetServerCertCB">cupsSetServerCertCB</a></h3>
<p class="description">Set the server certificate callback.</p>
<p class="code">
void cupsSetServerCertCB (<br>
Note: The current user name is tracked separately for each thread in a
program. Multi-threaded programs that override the user name need to do so
in each thread for the same user name to be used.</p>
-<h3 class="function"><span class="info"> CUPS 1.4/Mac OS X 10.6 </span><a name="cupsStartDocument">cupsStartDocument</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/OS X 10.6 </span><a name="cupsStartDocument">cupsStartDocument</a></h3>
<p class="description">Add a document to a job created with cupsCreateJob().</p>
<p class="code">
http_status_t cupsStartDocument (<br>
<a href="#cupsTempFile2"><code>cupsTempFile2</code></a> instead.
</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsTempFile2">cupsTempFile2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsTempFile2">cupsTempFile2</a></h3>
<p class="description">Creates a temporary CUPS file.</p>
<p class="code">
cups_file_t *cupsTempFile2 (<br>
<a href="#cupsSetUser"><code>cupsSetUser</code></a> function need to do so in each thread for the same user
name to be used.</p>
<h2 class="title"><a name="TYPES">Data Types</a></h2>
-<h3 class="typedef"><span class="info"> CUPS 1.5/Mac OS X 10.7 </span><a name="cups_client_cert_cb_t">cups_client_cert_cb_t</a></h3>
+<h3 class="typedef"><span class="info"> CUPS 1.5/OS X 10.7 </span><a name="cups_client_cert_cb_t">cups_client_cert_cb_t</a></h3>
<p class="description">Client credentials callback
</p>
<p class="code">
typedef int (*cups_client_cert_cb_t)(http_t *http, void *tls, cups_array_t *distinguished_names, void *user_data);
</p>
-<h3 class="typedef"><span class="info"> CUPS 1.6 </span><a name="cups_dest_block_t">cups_dest_block_t</a></h3>
+<h3 class="typedef"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="cups_dest_block_t">cups_dest_block_t</a></h3>
<p class="description">Destination enumeration block
</p>
<p class="code">
typedef int (*cups_dest_block_t(unsigned flags, <a href="#cups_dest_t">cups_dest_t</a> *dest);
</p>
-<h3 class="typedef"><span class="info"> CUPS 1.6 </span><a name="cups_dest_cb_t">cups_dest_cb_t</a></h3>
+<h3 class="typedef"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="cups_dest_cb_t">cups_dest_cb_t</a></h3>
<p class="description">Destination enumeration callback
</p>
<p class="code">
<p class="code">
typedef struct <a href="#cups_dest_s">cups_dest_s</a> cups_dest_t;
</p>
-<h3 class="typedef"><span class="info"> CUPS 1.4/Mac OS X 10.6 </span><a name="cups_device_cb_t">cups_device_cb_t</a></h3>
+<h3 class="typedef"><span class="info"> CUPS 1.4/OS X 10.6 </span><a name="cups_device_cb_t">cups_device_cb_t</a></h3>
<p class="description">Device callback
</p>
<p class="code">
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);
</p>
-<h3 class="typedef"><span class="info"> CUPS 1.6 </span><a name="cups_dinfo_t">cups_dinfo_t</a></h3>
+<h3 class="typedef"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="cups_dinfo_t">cups_dinfo_t</a></h3>
<p class="description">Destination capability and status
information </p>
<p class="code">
<p class="code">
typedef struct <a href="#cups_option_s">cups_option_s</a> cups_option_t;
</p>
-<h3 class="typedef"><span class="info"> CUPS 1.4/Mac OS X 10.6 </span><a name="cups_password_cb2_t">cups_password_cb2_t</a></h3>
+<h3 class="typedef"><span class="info"> CUPS 1.4/OS X 10.6 </span><a name="cups_password_cb2_t">cups_password_cb2_t</a></h3>
<p class="description">New password callback
</p>
<p class="code">
<p class="code">
typedef unsigned cups_ptype_t;
</p>
-<h3 class="typedef"><span class="info"> CUPS 1.5/Mac OS X 10.7 </span><a name="cups_server_cert_cb_t">cups_server_cert_cb_t</a></h3>
+<h3 class="typedef"><span class="info"> CUPS 1.5/OS X 10.7 </span><a name="cups_server_cert_cb_t">cups_server_cert_cb_t</a></h3>
<p class="description">Server credentials callback
</p>
<p class="code">
typedef int (*cups_server_cert_cb_t)(http_t *http, void *tls, cups_array_t *certs, void *user_data);
</p>
-<h3 class="typedef"><span class="info"> CUPS 1.6 </span><a name="cups_size_t">cups_size_t</a></h3>
+<h3 class="typedef"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="cups_size_t">cups_size_t</a></h3>
<p class="description">Media Size </p>
<p class="code">
typedef struct <a href="#cups_size_s">cups_size_s</a> cups_size_t;
<dt>value </dt>
<dd class="description">Value of option</dd>
</dl>
-<h3 class="struct"><span class="info"> CUPS 1.6 </span><a name="cups_size_s">cups_size_s</a></h3>
+<h3 class="struct"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="cups_size_s">cups_size_s</a></h3>
<p class="description">Media Size </p>
<p class="code">struct cups_size_s {<br>
char media[128];<br>
constants</p>
<h4 class="constants">Constants</h4>
<dl>
-<dt>CUPS_PRINTER_AUTHENTICATED <span class="info"> CUPS 1.2/Mac OS X 10.5 </span></dt>
+<dt>CUPS_PRINTER_AUTHENTICATED <span class="info"> CUPS 1.2/OS X 10.5 </span></dt>
<dd class="description">Printer requires authentication
</dd>
<dt>CUPS_PRINTER_BIND </dt>
<dd class="description">Can collage copies</dd>
<dt>CUPS_PRINTER_COLOR </dt>
<dd class="description">Can do color printing</dd>
-<dt>CUPS_PRINTER_COMMANDS <span class="info"> CUPS 1.2/Mac OS X 10.5 </span></dt>
+<dt>CUPS_PRINTER_COMMANDS <span class="info"> CUPS 1.2/OS X 10.5 </span></dt>
<dd class="description">Printer supports maintenance commands
</dd>
<dt>CUPS_PRINTER_COPIES </dt>
<dd class="description">Can cover output</dd>
<dt>CUPS_PRINTER_DEFAULT </dt>
<dd class="description">Default printer on network</dd>
-<dt>CUPS_PRINTER_DELETE <span class="info"> CUPS 1.2/Mac OS X 10.5 </span></dt>
+<dt>CUPS_PRINTER_DELETE <span class="info"> CUPS 1.2/OS X 10.5 </span></dt>
<dd class="description">Delete printer
</dd>
<dt>CUPS_PRINTER_DUPLEX </dt>
<dd class="description">Local printer or class</dd>
<dt>CUPS_PRINTER_MEDIUM </dt>
<dd class="description">Can do Tabloid/B/C/A3/A2</dd>
-<dt>CUPS_PRINTER_MFP <span class="info"> CUPS 1.4/Mac OS X 10.6 </span></dt>
+<dt>CUPS_PRINTER_MFP <span class="info"> CUPS 1.4/OS X 10.6 </span></dt>
<dd class="description">Printer with scanning capabilities
</dd>
-<dt>CUPS_PRINTER_NOT_SHARED <span class="info"> CUPS 1.2/Mac OS X 10.5 </span></dt>
+<dt>CUPS_PRINTER_NOT_SHARED <span class="info"> CUPS 1.2/OS X 10.5 </span></dt>
<dd class="description">Printer is not shared
</dd>
<dt>CUPS_PRINTER_PUNCH </dt>
<dd class="description">Printer is rejecting jobs</dd>
<dt>CUPS_PRINTER_REMOTE </dt>
<dd class="description">Remote printer or class</dd>
-<dt>CUPS_PRINTER_SCANNER <span class="info"> CUPS 1.4/Mac OS X 10.6 </span></dt>
+<dt>CUPS_PRINTER_SCANNER <span class="info"> CUPS 1.4/OS X 10.6 </span></dt>
<dd class="description">Scanner-only device
</dd>
<dt>CUPS_PRINTER_SMALL </dt>
to get both a list of files and the information (permissions,
size, timestamp, etc.) for each of those files.</p>
<h2 class="title"><a name="FUNCTIONS">Functions</a></h2>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsDirClose">cupsDirClose</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsDirClose">cupsDirClose</a></h3>
<p class="description">Close a directory.</p>
<p class="code">
void cupsDirClose (<br>
<dt>dp</dt>
<dd class="description">Directory pointer</dd>
</dl>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsDirOpen">cupsDirOpen</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsDirOpen">cupsDirOpen</a></h3>
<p class="description">Open a directory.</p>
<p class="code">
<a href="#cups_dir_t">cups_dir_t</a> *cupsDirOpen (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Directory pointer or <code>NULL</code> if the directory could not be opened.</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsDirRead">cupsDirRead</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsDirRead">cupsDirRead</a></h3>
<p class="description">Read the next directory entry.</p>
<p class="code">
<a href="#cups_dentry_t">cups_dentry_t</a> *cupsDirRead (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Directory entry or <code>NULL</code> when there are no more</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsDirRewind">cupsDirRewind</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsDirRewind">cupsDirRewind</a></h3>
<p class="description">Rewind to the start of the directory.</p>
<p class="code">
void cupsDirRewind (<br>
<dt>dp</dt>
<dd class="description">Directory pointer</dd>
</dl>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsFileClose">cupsFileClose</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsFileClose">cupsFileClose</a></h3>
<p class="description">Close a CUPS file.</p>
<p class="code">
int cupsFileClose (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">0 on success, -1 on error</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsFileCompression">cupsFileCompression</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsFileCompression">cupsFileCompression</a></h3>
<p class="description">Return whether a file is compressed.</p>
<p class="code">
int cupsFileCompression (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description"><code>CUPS_FILE_NONE</code> or <code>CUPS_FILE_GZIP</code></p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsFileEOF">cupsFileEOF</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsFileEOF">cupsFileEOF</a></h3>
<p class="description">Return the end-of-file status.</p>
<p class="code">
int cupsFileEOF (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">1 on end of file, 0 otherwise</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsFileFind">cupsFileFind</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsFileFind">cupsFileFind</a></h3>
<p class="description">Find a file using the specified path.</p>
<p class="code">
const char *cupsFileFind (<br>
matches the current directory.
</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsFileFlush">cupsFileFlush</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsFileFlush">cupsFileFlush</a></h3>
<p class="description">Flush pending output.</p>
<p class="code">
int cupsFileFlush (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">0 on success, -1 on error</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsFileGetChar">cupsFileGetChar</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsFileGetChar">cupsFileGetChar</a></h3>
<p class="description">Get a single character from a file.</p>
<p class="code">
int cupsFileGetChar (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Character or -1 on end of file</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsFileGetConf">cupsFileGetConf</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsFileGetConf">cupsFileGetConf</a></h3>
<p class="description">Get a line from a configuration file.</p>
<p class="code">
char *cupsFileGetConf (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Line read or <code>NULL</code> on end of file or error</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsFileGetLine">cupsFileGetLine</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsFileGetLine">cupsFileGetLine</a></h3>
<p class="description">Get a CR and/or LF-terminated line that may
contain binary data.</p>
<p class="code">
the number of bytes on the line.
</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsFileGets">cupsFileGets</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsFileGets">cupsFileGets</a></h3>
<p class="description">Get a CR and/or LF-terminated line.</p>
<p class="code">
char *cupsFileGets (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Line read or <code>NULL</code> on end of file or error</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsFileLock">cupsFileLock</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsFileLock">cupsFileLock</a></h3>
<p class="description">Temporarily lock access to a file.</p>
<p class="code">
int cupsFileLock (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">0 on success, -1 on error</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsFileNumber">cupsFileNumber</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsFileNumber">cupsFileNumber</a></h3>
<p class="description">Return the file descriptor associated with a CUPS file.</p>
<p class="code">
int cupsFileNumber (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">File descriptor</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsFileOpen">cupsFileOpen</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsFileOpen">cupsFileOpen</a></h3>
<p class="description">Open a CUPS file.</p>
<p class="code">
<a href="#cups_file_t">cups_file_t</a> *cupsFileOpen (<br>
a choice.
</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsFileOpenFd">cupsFileOpenFd</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsFileOpenFd">cupsFileOpenFd</a></h3>
<p class="description">Open a CUPS file using a file descriptor.</p>
<p class="code">
<a href="#cups_file_t">cups_file_t</a> *cupsFileOpenFd (<br>
not supported for the "a" (append) mode.
</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsFilePeekChar">cupsFilePeekChar</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsFilePeekChar">cupsFilePeekChar</a></h3>
<p class="description">Peek at the next character from a file.</p>
<p class="code">
int cupsFilePeekChar (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Character or -1 on end of file</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsFilePrintf">cupsFilePrintf</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsFilePrintf">cupsFilePrintf</a></h3>
<p class="description">Write a formatted string.</p>
<p class="code">
int cupsFilePrintf (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Number of bytes written or -1 on error</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsFilePutChar">cupsFilePutChar</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsFilePutChar">cupsFilePutChar</a></h3>
<p class="description">Write a character.</p>
<p class="code">
int cupsFilePutChar (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">0 on success, -1 on error</p>
-<h3 class="function"><span class="info"> CUPS 1.4/Mac OS X 10.6 </span><a name="cupsFilePutConf">cupsFilePutConf</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/OS X 10.6 </span><a name="cupsFilePutConf">cupsFilePutConf</a></h3>
<p class="description">Write a configuration line.</p>
<p class="code">
ssize_t cupsFilePutConf (<br>
<p class="discussion">This function handles any comment escaping of the value.
</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsFilePuts">cupsFilePuts</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsFilePuts">cupsFilePuts</a></h3>
<p class="description">Write a string.</p>
<p class="code">
int cupsFilePuts (<br>
<p class="discussion">Like the <code>fputs</code> function, no newline is appended to the string.
</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsFileRead">cupsFileRead</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsFileRead">cupsFileRead</a></h3>
<p class="description">Read from a file.</p>
<p class="code">
ssize_t cupsFileRead (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Number of bytes read or -1 on error</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsFileRewind">cupsFileRewind</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsFileRewind">cupsFileRewind</a></h3>
<p class="description">Set the current file position to the beginning of the
file.</p>
<p class="code">
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">New file position or -1 on error</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsFileSeek">cupsFileSeek</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsFileSeek">cupsFileSeek</a></h3>
<p class="description">Seek in a file.</p>
<p class="code">
off_t cupsFileSeek (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">New file position or -1 on error</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsFileStderr">cupsFileStderr</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsFileStderr">cupsFileStderr</a></h3>
<p class="description">Return a CUPS file associated with stderr.</p>
<p class="code">
<a href="#cups_file_t">cups_file_t</a> *cupsFileStderr (void);</p>
<h4 class="returnvalue">Return Value</h4>
<p class="description">CUPS file</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsFileStdin">cupsFileStdin</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsFileStdin">cupsFileStdin</a></h3>
<p class="description">Return a CUPS file associated with stdin.</p>
<p class="code">
<a href="#cups_file_t">cups_file_t</a> *cupsFileStdin (void);</p>
<h4 class="returnvalue">Return Value</h4>
<p class="description">CUPS file</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsFileStdout">cupsFileStdout</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsFileStdout">cupsFileStdout</a></h3>
<p class="description">Return a CUPS file associated with stdout.</p>
<p class="code">
<a href="#cups_file_t">cups_file_t</a> *cupsFileStdout (void);</p>
<h4 class="returnvalue">Return Value</h4>
<p class="description">CUPS file</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsFileTell">cupsFileTell</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsFileTell">cupsFileTell</a></h3>
<p class="description">Return the current file position.</p>
<p class="code">
off_t cupsFileTell (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">File position</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsFileUnlock">cupsFileUnlock</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsFileUnlock">cupsFileUnlock</a></h3>
<p class="description">Unlock access to a file.</p>
<p class="code">
int cupsFileUnlock (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">0 on success, -1 on error</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsFileWrite">cupsFileWrite</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsFileWrite">cupsFileWrite</a></h3>
<p class="description">Write to a file.</p>
<p class="code">
ssize_t cupsFileWrite (<br>
Filter and backend programming introduction for CUPS.
- Copyright 2007-2011 by Apple Inc.
+ Copyright 2007-2012 by Apple Inc.
Copyright 1997-2006 by Easy Software Products, all rights reserved.
These coded instructions, statements, and computer programs are the
<p>In addition, some operating systems provide additional security mechanisms
that further limit file system access, even for backends running as root. On
-Mac OS X, for example, no backend may write to a user's home directory.</p>
+OS X, for example, no backend may write to a user's home directory.</p>
</blockquote>
<h3><a name="SIGNALS">Canceled Jobs and Signal Handling</a></h3>
<dt>APPLE_LANGUAGE</dt>
<dd>The Apple language identifier associated with the job
- (Mac OS X only).</dd>
+ (OS X only).</dd>
<dt>CHARSET</dt>
<dd>The job character set, typically "utf-8".</dd>
<blockquote><b>Note:</b>
<p>"STATE:" messages often provide visible alerts to the user. For example,
-on Mac OS X setting a printer-state-reason value with an "-error" or
+on OS X setting a printer-state-reason value with an "-error" or
"-warning" suffix will cause the printer's dock item to bounce if the
corresponding reason is localized with a cupsIPPReason keyword in the
printer's PPD file.</p>
<a href="#cupsSideChannelSNMPWalk">cupsSNMPSideChannelWalk</a>(".1.3.6.1.2.1.43", 5.0, my_callback, my_data);
</pre>
<h2 class="title"><a name="FUNCTIONS">Functions</a></h2>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsBackChannelRead">cupsBackChannelRead</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsBackChannelRead">cupsBackChannelRead</a></h3>
<p class="description">Read data from the backchannel.</p>
<p class="code">
ssize_t cupsBackChannelRead (<br>
return immediately if there is no data, -1.0 to wait for data indefinitely.
</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsBackChannelWrite">cupsBackChannelWrite</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsBackChannelWrite">cupsBackChannelWrite</a></h3>
<p class="description">Write data to the backchannel.</p>
<p class="code">
ssize_t cupsBackChannelWrite (<br>
indefinitely.
</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsBackendDeviceURI">cupsBackendDeviceURI</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsBackendDeviceURI">cupsBackendDeviceURI</a></h3>
<p class="description">Get the device URI for a backend.</p>
<p class="code">
const char *cupsBackendDeviceURI (<br>
first.
</p>
-<h3 class="function"><span class="info"> CUPS 1.4/Mac OS X 10.6 </span><a name="cupsBackendReport">cupsBackendReport</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/OS X 10.6 </span><a name="cupsBackendReport">cupsBackendReport</a></h3>
<p class="description">Write a device line from a backend.</p>
<p class="code">
void cupsBackendReport (<br>
device-info, device-id, and device-location strings.
</p>
-<h3 class="function"><span class="info"> CUPS 1.3/Mac OS X 10.5 </span><a name="cupsSideChannelDoRequest">cupsSideChannelDoRequest</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.3/OS X 10.5 </span><a name="cupsSideChannelDoRequest">cupsSideChannelDoRequest</a></h3>
<p class="description">Send a side-channel command to a backend and wait for a response.</p>
<p class="code">
<a href="#cups_sc_status_t">cups_sc_status_t</a> cupsSideChannelDoRequest (<br>
update the value to contain the number of data bytes in the buffer.
</p>
-<h3 class="function"><span class="info"> CUPS 1.3/Mac OS X 10.5 </span><a name="cupsSideChannelRead">cupsSideChannelRead</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.3/OS X 10.5 </span><a name="cupsSideChannelRead">cupsSideChannelRead</a></h3>
<p class="description">Read a side-channel message.</p>
<p class="code">
int cupsSideChannelRead (<br>
update the value to contain the number of data bytes in the buffer.
</p>
-<h3 class="function"><span class="info"> CUPS 1.4/Mac OS X 10.6 </span><a name="cupsSideChannelSNMPGet">cupsSideChannelSNMPGet</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/OS X 10.6 </span><a name="cupsSideChannelSNMPGet">cupsSideChannelSNMPGet</a></h3>
<p class="description">Query a SNMP OID's value.</p>
<p class="code">
<a href="#cups_sc_status_t">cups_sc_status_t</a> cupsSideChannelSNMPGet (<br>
the printer does not respond to the SNMP query.
</p>
-<h3 class="function"><span class="info"> CUPS 1.4/Mac OS X 10.6 </span><a name="cupsSideChannelSNMPWalk">cupsSideChannelSNMPWalk</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/OS X 10.6 </span><a name="cupsSideChannelSNMPWalk">cupsSideChannelSNMPWalk</a></h3>
<p class="description">Query multiple SNMP OID values.</p>
<p class="code">
<a href="#cups_sc_status_t">cups_sc_status_t</a> cupsSideChannelSNMPWalk (<br>
the printer does not respond to the first SNMP query.
</p>
-<h3 class="function"><span class="info"> CUPS 1.3/Mac OS X 10.5 </span><a name="cupsSideChannelWrite">cupsSideChannelWrite</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.3/OS X 10.5 </span><a name="cupsSideChannelWrite">cupsSideChannelWrite</a></h3>
<p class="description">Write a side-channel message.</p>
<p class="code">
int cupsSideChannelWrite (<br>
<dd class="description">Drain all pending output</dd>
<dt>CUPS_SC_CMD_GET_BIDI </dt>
<dd class="description">Return bidirectional capabilities</dd>
-<dt>CUPS_SC_CMD_GET_CONNECTED <span class="info"> CUPS 1.5/Mac OS X 10.7 </span></dt>
+<dt>CUPS_SC_CMD_GET_CONNECTED <span class="info"> CUPS 1.5/OS X 10.7 </span></dt>
<dd class="description">Return whether the backend is "connected" to the printer </dd>
<dt>CUPS_SC_CMD_GET_DEVICE_ID </dt>
<dd class="description">Return the IEEE-1284 device ID</dd>
<dt>CUPS_SC_CMD_GET_STATE </dt>
<dd class="description">Return the device state</dd>
-<dt>CUPS_SC_CMD_SNMP_GET <span class="info"> CUPS 1.4/Mac OS X 10.6 </span></dt>
+<dt>CUPS_SC_CMD_SNMP_GET <span class="info"> CUPS 1.4/OS X 10.6 </span></dt>
<dd class="description">Query an SNMP OID </dd>
-<dt>CUPS_SC_CMD_SNMP_GET_NEXT <span class="info"> CUPS 1.4/Mac OS X 10.6 </span></dt>
+<dt>CUPS_SC_CMD_SNMP_GET_NEXT <span class="info"> CUPS 1.4/OS X 10.6 </span></dt>
<dd class="description">Query the next SNMP OID </dd>
<dt>CUPS_SC_CMD_SOFT_RESET </dt>
<dd class="description">Do a soft reset</dd>
<li><a href="#http_uri_status_t" title="URI separation status ">http_uri_status_t</a></li>
<li><a href="#http_version_t" title="HTTP version numbers">http_version_t</a></li>
<li><a href="#ipp_attribute_t" title="IPP attribute">ipp_attribute_t</a></li>
- <li><a href="#ipp_copycb_t" title="The following structures are PRIVATE starting with CUPS 1.6. Please use the
-new accessor functions available in CUPS 1.6 and later, as these definitions
-will be moved to a private header file in a future release.">ipp_copycb_t</a></li>
+ <li><a href="#ipp_copycb_t" title="The following structures are PRIVATE starting with CUPS 1.6/OS X 10.8.
+Please use the new accessor functions available in CUPS 1.6 and later, as
+these definitions will be moved to a private header file in a future release.">ipp_copycb_t</a></li>
<li><a href="#ipp_dstate_t" title="Document states">ipp_dstate_t</a></li>
<li><a href="#ipp_finish_t" title="Finishings">ipp_finish_t</a></li>
<li><a href="#ipp_iocb_t" title="IPP IO Callback Function ">ipp_iocb_t</a></li>
addresses that are associated
with a hostname. ">http_addrlist_s</a></li>
<li><a href="#http_credential_s" title="HTTP credential data ">http_credential_s</a></li>
+ <li><a href="#pollfd" title="User data (unused)">pollfd</a></li>
</ul></li>
<li><a href="#ENUMERATIONS">Constants</a><ul class="code">
<li><a href="#http_auth_e" title="HTTP authentication types">http_auth_e</a></li>
<a href='#ippDelete'>ippDelete</a>(request);
</pre>
<h2 class="title"><a name="FUNCTIONS">Functions</a></h2>
-<h3 class="function"><span class="info"> CUPS 1.1.20/Mac OS X 10.4 </span><a name="cupsDoAuthentication">cupsDoAuthentication</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.20/OS X 10.4 </span><a name="cupsDoAuthentication">cupsDoAuthentication</a></h3>
<p class="description">Authenticate a request.</p>
<p class="code">
int cupsDoAuthentication (<br>
<p class="discussion">This function sends the IPP request to the specified server, retrying
and authenticating as necessary. The request is freed with <a href="#ippDelete"><code>ippDelete</code></a>
after receiving a valid IPP response.</p>
-<h3 class="function"><span class="info"> CUPS 1.3/Mac OS X 10.5 </span><a name="cupsDoIORequest">cupsDoIORequest</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.3/OS X 10.5 </span><a name="cupsDoIORequest">cupsDoIORequest</a></h3>
<p class="description">Do an IPP request with file descriptors.</p>
<p class="code">
<a href="#ipp_t">ipp_t</a> *cupsDoIORequest (<br>
<p class="discussion">This function adds operation, job, and then subscription attributes,
in that order. Use the cupsEncodeOptions2() function to add attributes
for a single group.</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsEncodeOptions2">cupsEncodeOptions2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsEncodeOptions2">cupsEncodeOptions2</a></h3>
<p class="description">Encode printer options into IPP attributes for a group.</p>
<p class="code">
void cupsEncodeOptions2 (<br>
to add the standard groups.
</p>
-<h3 class="function"><span class="info"> CUPS 1.4/Mac OS X 10.6 </span><a name="cupsGetDevices">cupsGetDevices</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/OS X 10.6 </span><a name="cupsGetDevices">cupsGetDevices</a></h3>
<p class="description">Get available printer devices.</p>
<p class="code">
ipp_status_t cupsGetDevices (<br>
the request respectively.
</p>
-<h3 class="function"><span class="info"> CUPS 1.1.20/Mac OS X 10.4 </span><a name="cupsGetFd">cupsGetFd</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.20/OS X 10.4 </span><a name="cupsGetFd">cupsGetFd</a></h3>
<p class="description">Get a file from the server.</p>
<p class="code">
<a href="#http_status_t">http_status_t</a> cupsGetFd (<br>
<p class="discussion">This function returns <code>HTTP_OK</code> when the file is successfully retrieved.
</p>
-<h3 class="function"><span class="info"> CUPS 1.1.20/Mac OS X 10.4 </span><a name="cupsGetFile">cupsGetFile</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.20/OS X 10.4 </span><a name="cupsGetFile">cupsGetFile</a></h3>
<p class="description">Get a file from the server.</p>
<p class="code">
<a href="#http_status_t">http_status_t</a> cupsGetFile (<br>
<p class="discussion">This function returns <code>HTTP_OK</code> when the file is successfully retrieved.
</p>
-<h3 class="function"><span class="info"> CUPS 1.4/Mac OS X 10.6 </span><a name="cupsGetResponse">cupsGetResponse</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/OS X 10.6 </span><a name="cupsGetResponse">cupsGetResponse</a></h3>
<p class="description">Get a response to an IPP request.</p>
<p class="code">
<a href="#ipp_t">ipp_t</a> *cupsGetResponse (<br>
ipp_status_t cupsLastError (void);</p>
<h4 class="returnvalue">Return Value</h4>
<p class="description">IPP status code from last request</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsLastErrorString">cupsLastErrorString</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsLastErrorString">cupsLastErrorString</a></h3>
<p class="description">Return the last IPP status-message.</p>
<p class="code">
const char *cupsLastErrorString (void);</p>
<h4 class="returnvalue">Return Value</h4>
<p class="description">status-message text from last request</p>
-<h3 class="function"><span class="info"> CUPS 1.1.20/Mac OS X 10.4 </span><a name="cupsPutFd">cupsPutFd</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.20/OS X 10.4 </span><a name="cupsPutFd">cupsPutFd</a></h3>
<p class="description">Put a file on the server.</p>
<p class="code">
<a href="#http_status_t">http_status_t</a> cupsPutFd (<br>
successfully.
</p>
-<h3 class="function"><span class="info"> CUPS 1.1.20/Mac OS X 10.4 </span><a name="cupsPutFile">cupsPutFile</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.20/OS X 10.4 </span><a name="cupsPutFile">cupsPutFile</a></h3>
<p class="description">Put a file on the server.</p>
<p class="code">
<a href="#http_status_t">http_status_t</a> cupsPutFile (<br>
successfully.
</p>
-<h3 class="function"><span class="info"> CUPS 1.4/Mac OS X 10.6 </span><a name="cupsReadResponseData">cupsReadResponseData</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/OS X 10.6 </span><a name="cupsReadResponseData">cupsReadResponseData</a></h3>
<p class="description">Read additional data after the IPP response.</p>
<p class="code">
ssize_t cupsReadResponseData (<br>
files for CUPS_GET_PPD and CUPS_GET_DOCUMENT requests, respectively.
</p>
-<h3 class="function"><span class="info"> CUPS 1.4/Mac OS X 10.6 </span><a name="cupsSendRequest">cupsSendRequest</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/OS X 10.6 </span><a name="cupsSendRequest">cupsSendRequest</a></h3>
<p class="description">Send an IPP request.</p>
<p class="code">
<a href="#http_status_t">http_status_t</a> cupsSendRequest (<br>
request is not freed.
</p>
-<h3 class="function"><span class="info"> CUPS 1.4/Mac OS X 10.6 </span><a name="cupsWriteRequestData">cupsWriteRequestData</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/OS X 10.6 </span><a name="cupsWriteRequestData">cupsWriteRequestData</a></h3>
<p class="description">Write additional data after an IPP request.</p>
<p class="code">
<a href="#http_status_t">http_status_t</a> cupsWriteRequestData (<br>
after <a href="#cupsStartDocument"><code>cupsStartDocument</code></a> to provide a document file.
</p>
-<h3 class="function"><span class="info"> CUPS 1.5/Mac OS X 10.7 </span><a name="httpAddCredential">httpAddCredential</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.5/OS X 10.7 </span><a name="httpAddCredential">httpAddCredential</a></h3>
<p class="description">Allocates and adds a single credential to an array.</p>
<p class="code">
int httpAddCredential (<br>
<p class="discussion">Use <code>cupsArrayNew(NULL, NULL)</code> to create a credentials array.
</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="httpAddrAny">httpAddrAny</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="httpAddrAny">httpAddrAny</a></h3>
<p class="description">Check for the "any" address.</p>
<p class="code">
int httpAddrAny (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">1 if "any", 0 otherwise</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="httpAddrEqual">httpAddrEqual</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="httpAddrEqual">httpAddrEqual</a></h3>
<p class="description">Compare two addresses.</p>
<p class="code">
int httpAddrEqual (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">1 if equal, 0 if not</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="httpAddrLength">httpAddrLength</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="httpAddrLength">httpAddrLength</a></h3>
<p class="description">Return the length of the address in bytes.</p>
<p class="code">
int httpAddrLength (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Length in bytes</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="httpAddrLocalhost">httpAddrLocalhost</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="httpAddrLocalhost">httpAddrLocalhost</a></h3>
<p class="description">Check for the local loopback address.</p>
<p class="code">
int httpAddrLocalhost (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">1 if local host, 0 otherwise</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="httpAddrLookup">httpAddrLookup</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="httpAddrLookup">httpAddrLookup</a></h3>
<p class="description">Lookup the hostname associated with the address.</p>
<p class="code">
char *httpAddrLookup (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Host name</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="httpAddrString">httpAddrString</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="httpAddrString">httpAddrString</a></h3>
<p class="description">Convert an address to a numeric string.</p>
<p class="code">
char *httpAddrString (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Numeric address string</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="httpAssembleURI">httpAssembleURI</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="httpAssembleURI">httpAssembleURI</a></h3>
<p class="description">Assemble a uniform resource identifier from its
components.</p>
<p class="code">
URI string.
</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="httpAssembleURIf">httpAssembleURIf</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="httpAssembleURIf">httpAssembleURIf</a></h3>
<p class="description">Assemble a uniform resource identifier from its
components with a formatted resource.</p>
<p class="code">
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">0 = no data, 1 = data available</p>
-<h3 class="function"><span class="info"> CUPS 1.1.19/Mac OS X 10.3 </span><a name="httpClearCookie">httpClearCookie</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.19/OS X 10.3 </span><a name="httpClearCookie">httpClearCookie</a></h3>
<p class="description">Clear the cookie value(s).</p>
<p class="code">
void httpClearCookie (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">New HTTP connection</p>
-<h3 class="function"><span class="info"> CUPS 1.5/Mac OS X 10.7 </span><a name="httpCopyCredentials">httpCopyCredentials</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.5/OS X 10.7 </span><a name="httpCopyCredentials">httpCopyCredentials</a></h3>
<p class="description">Copy the credentials associated with an encrypted
connection.</p>
<p class="code">
which provides buffer length arguments.
</p>
-<h3 class="function"><span class="info"> CUPS 1.1.21/Mac OS X 10.4 </span><a name="httpDecode64_2">httpDecode64_2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.21/OS X 10.4 </span><a name="httpDecode64_2">httpDecode64_2</a></h3>
<p class="description">Base64-decode a string.</p>
<p class="code">
char *httpDecode64_2 (<br>
which provides buffer length arguments.
</p>
-<h3 class="function"><span class="info"> CUPS 1.1.21/Mac OS X 10.4 </span><a name="httpEncode64_2">httpEncode64_2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.21/OS X 10.4 </span><a name="httpEncode64_2">httpEncode64_2</a></h3>
<p class="description">Base64-encode a string.</p>
<p class="code">
char *httpEncode64_2 (<br>
<dt>http</dt>
<dd class="description">Connection to server</dd>
</dl>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="httpFlushWrite">httpFlushWrite</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="httpFlushWrite">httpFlushWrite</a></h3>
<p class="description">Flush data in write buffer.</p>
<p class="code">
int httpFlushWrite (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Status of call (0 = success)</p>
-<h3 class="function"><span class="info"> CUPS 1.3/Mac OS X 10.5 </span><a name="httpGetAuthString">httpGetAuthString</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.3/OS X 10.5 </span><a name="httpGetAuthString">httpGetAuthString</a></h3>
<p class="description">Get the current authorization string.</p>
<p class="code">
char *httpGetAuthString (<br>
value.
</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="httpGetBlocking">httpGetBlocking</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="httpGetBlocking">httpGetBlocking</a></h3>
<p class="description">Get the blocking/non-block state of a connection.</p>
<p class="code">
int httpGetBlocking (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">1 if blocking, 0 if non-blocking</p>
-<h3 class="function"><span class="info"> CUPS 1.1.19/Mac OS X 10.3 </span><a name="httpGetCookie">httpGetCookie</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.19/OS X 10.3 </span><a name="httpGetCookie">httpGetCookie</a></h3>
<p class="description">Get any cookie data from the response.</p>
<p class="code">
const char *httpGetCookie (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Date/time string</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="httpGetDateString2">httpGetDateString2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="httpGetDateString2">httpGetDateString2</a></h3>
<p class="description">Get a formatted date/time string from a time value.</p>
<p class="code">
const char *httpGetDateString2 (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">UNIX time</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="httpGetFd">httpGetFd</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="httpGetFd">httpGetFd</a></h3>
<p class="description">Get the file descriptor associated with a connection.</p>
<p class="code">
int httpGetFd (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Host entry</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="httpGetHostname">httpGetHostname</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="httpGetHostname">httpGetHostname</a></h3>
<p class="description">Get the FQDN for the connection or local system.</p>
<p class="code">
const char *httpGetHostname (<br>
2^31 - 1; use httpGetLength2() instead.
</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="httpGetLength2">httpGetLength2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="httpGetLength2">httpGetLength2</a></h3>
<p class="description">Get the amount of data remaining from the
content-length or transfer-encoding fields.</p>
<p class="code">
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">HTTP state</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="httpGetStatus">httpGetStatus</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="httpGetStatus">httpGetStatus</a></h3>
<p class="description">Get the status of the last HTTP request.</p>
<p class="code">
<a href="#http_status_t">http_status_t</a> httpGetStatus (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Value or NULL</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="httpGetSubField2">httpGetSubField2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="httpGetSubField2">httpGetSubField2</a></h3>
<p class="description">Get a sub-field value.</p>
<p class="code">
char *httpGetSubField2 (<br>
read more than 2GB of data.
</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="httpRead2">httpRead2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="httpRead2">httpRead2</a></h3>
<p class="description">Read data from a HTTP connection.</p>
<p class="code">
ssize_t httpRead2 (<br>
<p class="discussion">This function is deprecated; use the httpSeparateURI() function instead.
</p>
-<h3 class="function"><span class="info"> CUPS 1.1.21/Mac OS X 10.4 </span><a name="httpSeparate2">httpSeparate2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.21/OS X 10.4 </span><a name="httpSeparate2">httpSeparate2</a></h3>
<p class="description">Separate a Universal Resource Identifier into its
components.</p>
<p class="code">
</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="httpSeparateURI">httpSeparateURI</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="httpSeparateURI">httpSeparateURI</a></h3>
<p class="description">Separate a Universal Resource Identifier into its
components.</p>
<p class="code">
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Result of separation</p>
-<h3 class="function"><span class="info"> CUPS 1.3/Mac OS X 10.5 </span><a name="httpSetAuthString">httpSetAuthString</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.3/OS X 10.5 </span><a name="httpSetAuthString">httpSetAuthString</a></h3>
<p class="description">Set the current authorization string.</p>
<p class="code">
void httpSetAuthString (<br>
httpHead(), httpOptions(), httpPost, or httpPut().
</p>
-<h3 class="function"><span class="info"> CUPS 1.1.19/Mac OS X 10.3 </span><a name="httpSetCookie">httpSetCookie</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.19/OS X 10.3 </span><a name="httpSetCookie">httpSetCookie</a></h3>
<p class="description">Set the cookie value(s).</p>
<p class="code">
void httpSetCookie (<br>
<dt>cookie</dt>
<dd class="description">Cookie string</dd>
</dl>
-<h3 class="function"><span class="info"> CUPS 1.5/Mac OS X 10.7 </span><a name="httpSetCredentials">httpSetCredentials</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.5/OS X 10.7 </span><a name="httpSetCredentials">httpSetCredentials</a></h3>
<p class="description">Set the credentials associated with an encrypted
connection.</p>
<p class="code">
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Status of call (0 = success)</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="httpSetExpect">httpSetExpect</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="httpSetExpect">httpSetExpect</a></h3>
<p class="description">Set the Expect: header in a request.</p>
<p class="code">
void httpSetExpect (<br>
<dt>value</dt>
<dd class="description">Value</dd>
</dl>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="httpSetLength">httpSetLength</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="httpSetLength">httpSetLength</a></h3>
<p class="description">Set the content-length and content-encoding.</p>
<p class="code">
void httpSetLength (<br>
<dt>length</dt>
<dd class="description">Length (0 for chunked)</dd>
</dl>
-<h3 class="function"><span class="info"> CUPS 1.5/Mac OS X 10.7 </span><a name="httpSetTimeout">httpSetTimeout</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.5/OS X 10.7 </span><a name="httpSetTimeout">httpSetTimeout</a></h3>
<p class="description">Set read/write timeouts and an optional callback.</p>
<p class="code">
void httpSetTimeout (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">HTTP status</p>
-<h3 class="function"><span class="info"> CUPS 1.1.19/Mac OS X 10.3 </span><a name="httpWait">httpWait</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.19/OS X 10.3 </span><a name="httpWait">httpWait</a></h3>
<p class="description">Wait for data available on a connection.</p>
<p class="code">
int httpWait (<br>
write more than 2GB of data.
</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="httpWrite2">httpWrite2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="httpWrite2">httpWrite2</a></h3>
<p class="description">Write data to a HTTP connection.</p>
<p class="code">
ssize_t httpWrite2 (<br>
event notification (<code>IPP_TAG_EVENT_NOTIFICATION</code>), operation
(<code>IPP_TAG_OPERATION</code>), printer (<code>IPP_TAG_PRINTER</code>), subscription
(<code>IPP_TAG_SUBSCRIPTION</code>), or unsupported (<code>IPP_TAG_UNSUPPORTED_GROUP</code>).</p>
-<h3 class="function"><span class="info"> CUPS 1.1.19/Mac OS X 10.3 </span><a name="ippAddCollection">ippAddCollection</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.19/OS X 10.3 </span><a name="ippAddCollection">ippAddCollection</a></h3>
<p class="description">Add a collection value.</p>
<p class="code">
<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddCollection (<br>
(<code>IPP_TAG_SUBSCRIPTION</code>), or unsupported (<code>IPP_TAG_UNSUPPORTED_GROUP</code>).
</p>
-<h3 class="function"><span class="info"> CUPS 1.1.19/Mac OS X 10.3 </span><a name="ippAddCollections">ippAddCollections</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.19/OS X 10.3 </span><a name="ippAddCollections">ippAddCollections</a></h3>
<p class="description">Add an array of collection values.</p>
<p class="code">
<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddCollections (<br>
<br>
Supported values include enum (<code>IPP_TAG_ENUM</code>) and integer
(<code>IPP_TAG_INTEGER</code>).</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="ippAddOctetString">ippAddOctetString</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="ippAddOctetString">ippAddOctetString</a></h3>
<p class="description">Add an octetString value to an IPP message.</p>
<p class="code">
<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddOctetString (<br>
(<code>IPP_TAG_SUBSCRIPTION</code>), or unsupported (<code>IPP_TAG_UNSUPPORTED_GROUP</code>).
</p>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="ippAddOutOfBand">ippAddOutOfBand</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippAddOutOfBand">ippAddOutOfBand</a></h3>
<p class="description">Add an out-of-band value to an IPP message.</p>
<p class="code">
<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddOutOfBand (<br>
<br>
The <code>language</code> parameter must be non-<code>NULL</code> for nameWithLanguage and
textWithLanguage string values and must be <code>NULL</code> for all other string values.</p>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="ippAttributeString">ippAttributeString</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippAttributeString">ippAttributeString</a></h3>
<p class="description">Convert the attribute's value to a string.</p>
<p class="code">
size_t ippAttributeString (<br>
just like (v)snprintf.
</p>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="ippCopyAttribute">ippCopyAttribute</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippCopyAttribute">ippCopyAttribute</a></h3>
<p class="description">Copy an attribute.</p>
<p class="code">
<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippCopyAttribute (<br>
not be freed for the life of the destination.
</p>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="ippCopyAttributes">ippCopyAttributes</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippCopyAttributes">ippCopyAttributes</a></h3>
<p class="description">Copy attributes from one IPP message to another.</p>
<p class="code">
int ippCopyAttributes (<br>
<dt>ipp</dt>
<dd class="description">IPP message</dd>
</dl>
-<h3 class="function"><span class="info"> CUPS 1.1.19/Mac OS X 10.3 </span><a name="ippDeleteAttribute">ippDeleteAttribute</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.19/OS X 10.3 </span><a name="ippDeleteAttribute">ippDeleteAttribute</a></h3>
<p class="description">Delete a single attribute in an IPP message.</p>
<p class="code">
void ippDeleteAttribute (<br>
<dt>attr</dt>
<dd class="description">Attribute to delete</dd>
</dl>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="ippDeleteValues">ippDeleteValues</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippDeleteValues">ippDeleteValues</a></h3>
<p class="description">Delete values in an attribute.</p>
<p class="code">
int ippDeleteValues (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Text string</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="ippErrorValue">ippErrorValue</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="ippErrorValue">ippErrorValue</a></h3>
<p class="description">Return a status code for the given name.</p>
<p class="code">
ipp_status_t ippErrorValue (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Matching attribute</p>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="ippFirstAttribute">ippFirstAttribute</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippFirstAttribute">ippFirstAttribute</a></h3>
<p class="description">Return the first attribute in the message.</p>
<p class="code">
<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippFirstAttribute (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">First attribute or <code>NULL</code> if none</p>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="ippGetBoolean">ippGetBoolean</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippGetBoolean">ippGetBoolean</a></h3>
<p class="description">Get a boolean value for an attribute.</p>
<p class="code">
int ippGetBoolean (<br>
<a href="#ippGetCount(attr)"><code>ippGetCount(attr)</code></a> - 1.
</p>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="ippGetCollection">ippGetCollection</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippGetCollection">ippGetCollection</a></h3>
<p class="description">Get a collection value for an attribute.</p>
<p class="code">
<a href="#ipp_t">ipp_t</a> *ippGetCollection (<br>
<a href="#ippGetCount(attr)"><code>ippGetCount(attr)</code></a> - 1.
</p>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="ippGetCount">ippGetCount</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippGetCount">ippGetCount</a></h3>
<p class="description">Get the number of values in an attribute.</p>
<p class="code">
int ippGetCount (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Number of values or -1 on error</p>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="ippGetDate">ippGetDate</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippGetDate">ippGetDate</a></h3>
<p class="description">Get a date value for an attribute.</p>
<p class="code">
const <a href="#ipp_uchar_t">ipp_uchar_t</a> *ippGetDate (<br>
<a href="#ippGetCount(attr)"><code>ippGetCount(attr)</code></a> - 1.
</p>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="ippGetGroupTag">ippGetGroupTag</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippGetGroupTag">ippGetGroupTag</a></h3>
<p class="description">Get the group associated with an attribute.</p>
<p class="code">
ipp_tag_t ippGetGroupTag (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Group tag or <code>IPP_TAG_ZERO</code> on error</p>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="ippGetInteger">ippGetInteger</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippGetInteger">ippGetInteger</a></h3>
<p class="description">Get the integer/enum value for an attribute.</p>
<p class="code">
int ippGetInteger (<br>
<a href="#ippGetCount(attr)"><code>ippGetCount(attr)</code></a> - 1.
</p>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="ippGetName">ippGetName</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippGetName">ippGetName</a></h3>
<p class="description">Get the attribute name.</p>
<p class="code">
const char *ippGetName (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Attribute name or <code>NULL</code> for separators</p>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="ippGetOperation">ippGetOperation</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippGetOperation">ippGetOperation</a></h3>
<p class="description">Get the operation ID in an IPP message.</p>
<p class="code">
ipp_op_t ippGetOperation (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Operation ID or -1 on error</p>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="ippGetRange">ippGetRange</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippGetRange">ippGetRange</a></h3>
<p class="description">Get a rangeOfInteger value from an attribute.</p>
<p class="code">
int ippGetRange (<br>
<a href="#ippGetCount(attr)"><code>ippGetCount(attr)</code></a> - 1.
</p>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="ippGetRequestId">ippGetRequestId</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippGetRequestId">ippGetRequestId</a></h3>
<p class="description">Get the request ID from an IPP message.</p>
<p class="code">
int ippGetRequestId (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Request ID or -1 on error</p>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="ippGetResolution">ippGetResolution</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippGetResolution">ippGetResolution</a></h3>
<p class="description">Get a resolution value for an attribute.</p>
<p class="code">
int ippGetResolution (<br>
<a href="#ippGetCount(attr)"><code>ippGetCount(attr)</code></a> - 1.
</p>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="ippGetState">ippGetState</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippGetState">ippGetState</a></h3>
<p class="description">Get the IPP message state.</p>
<p class="code">
<a href="#ipp_state_t">ipp_state_t</a> ippGetState (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">IPP message state value</p>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="ippGetStatusCode">ippGetStatusCode</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippGetStatusCode">ippGetStatusCode</a></h3>
<p class="description">Get the status code from an IPP response or event message.</p>
<p class="code">
ipp_status_t ippGetStatusCode (<br>
<a href="#ippGetCount(attr)"><code>ippGetCount(attr)</code></a> - 1.
</p>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="ippGetValueTag">ippGetValueTag</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippGetValueTag">ippGetValueTag</a></h3>
<p class="description">Get the value tag for an attribute.</p>
<p class="code">
ipp_tag_t ippGetValueTag (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Value tag or <code>IPP_TAG_ZERO</code> on error</p>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="ippGetVersion">ippGetVersion</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippGetVersion">ippGetVersion</a></h3>
<p class="description">Get the major and minor version number from an IPP message.</p>
<p class="code">
int ippGetVersion (<br>
<a href="#ipp_t">ipp_t</a> *ippNew (void);</p>
<h4 class="returnvalue">Return Value</h4>
<p class="description">New IPP message</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="ippNewRequest">ippNewRequest</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="ippNewRequest">ippNewRequest</a></h3>
<p class="description">Allocate a new IPP request message.</p>
<p class="code">
<a href="#ipp_t">ipp_t</a> *ippNewRequest (<br>
attributes-natural-language value is derived from the current locale.
</p>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="ippNextAttribute">ippNextAttribute</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippNextAttribute">ippNextAttribute</a></h3>
<p class="description">Return the next attribute in the message.</p>
<p class="code">
<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippNextAttribute (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Next attribute or <code>NULL</code> if none</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="ippOpString">ippOpString</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="ippOpString">ippOpString</a></h3>
<p class="description">Return a name for the given operation id.</p>
<p class="code">
const char *ippOpString (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Name</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="ippOpValue">ippOpValue</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="ippOpValue">ippOpValue</a></h3>
<p class="description">Return an operation id for the given name.</p>
<p class="code">
ipp_op_t ippOpValue (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Current state</p>
-<h3 class="function"><span class="info"> CUPS 1.1.19/Mac OS X 10.3 </span><a name="ippReadFile">ippReadFile</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.19/OS X 10.3 </span><a name="ippReadFile">ippReadFile</a></h3>
<p class="description">Read data for an IPP message from a file.</p>
<p class="code">
<a href="#ipp_state_t">ipp_state_t</a> ippReadFile (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Current state</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="ippReadIO">ippReadIO</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="ippReadIO">ippReadIO</a></h3>
<p class="description">Read data for an IPP message.</p>
<p class="code">
<a href="#ipp_state_t">ipp_state_t</a> ippReadIO (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Current state</p>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="ippSetBoolean">ippSetBoolean</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippSetBoolean">ippSetBoolean</a></h3>
<p class="description">Set a boolean value in an attribute.</p>
<p class="code">
int ippSetBoolean (<br>
<a href="#ippGetCount(attr)"><code>ippGetCount(attr)</code></a>.
</p>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="ippSetCollection">ippSetCollection</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippSetCollection">ippSetCollection</a></h3>
<p class="description">Set a collection value in an attribute.</p>
<p class="code">
int ippSetCollection (<br>
<a href="#ippGetCount(attr)"><code>ippGetCount(attr)</code></a>.
</p>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="ippSetDate">ippSetDate</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippSetDate">ippSetDate</a></h3>
<p class="description">Set a date value in an attribute.</p>
<p class="code">
int ippSetDate (<br>
<a href="#ippGetCount(attr)"><code>ippGetCount(attr)</code></a>.
</p>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="ippSetGroupTag">ippSetGroupTag</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippSetGroupTag">ippSetGroupTag</a></h3>
<p class="description">Set the group tag of an attribute.</p>
<p class="code">
int ippSetGroupTag (<br>
(<code>IPP_TAG_SUBSCRIPTION</code>), or unsupported (<code>IPP_TAG_UNSUPPORTED_GROUP</code>).
</p>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="ippSetInteger">ippSetInteger</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippSetInteger">ippSetInteger</a></h3>
<p class="description">Set an integer or enum value in an attribute.</p>
<p class="code">
int ippSetInteger (<br>
<a href="#ippGetCount(attr)"><code>ippGetCount(attr)</code></a>.
</p>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="ippSetName">ippSetName</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippSetName">ippSetName</a></h3>
<p class="description">Set the name of an attribute.</p>
<p class="code">
int ippSetName (<br>
The <code>attr</code> parameter may be modified as a result of setting the value.
</p>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="ippSetOperation">ippSetOperation</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippSetOperation">ippSetOperation</a></h3>
<p class="description">Set the operation ID in an IPP request message.</p>
<p class="code">
int ippSetOperation (<br>
<dt>p</dt>
<dd class="description">Port number to use</dd>
</dl>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="ippSetRange">ippSetRange</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippSetRange">ippSetRange</a></h3>
<p class="description">Set a rangeOfInteger value in an attribute.</p>
<p class="code">
int ippSetRange (<br>
<a href="#ippGetCount(attr)"><code>ippGetCount(attr)</code></a>.
</p>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="ippSetRequestId">ippSetRequestId</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippSetRequestId">ippSetRequestId</a></h3>
<p class="description">Set the request ID in an IPP message.</p>
<p class="code">
int ippSetRequestId (<br>
The <code>request_id</code> parameter must be greater than 0.
</p>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="ippSetResolution">ippSetResolution</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippSetResolution">ippSetResolution</a></h3>
<p class="description">Set a resolution value in an attribute.</p>
<p class="code">
int ippSetResolution (<br>
<a href="#ippGetCount(attr)"><code>ippGetCount(attr)</code></a>.
</p>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="ippSetState">ippSetState</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippSetState">ippSetState</a></h3>
<p class="description">Set the current state of the IPP message.</p>
<p class="code">
int ippSetState (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">1 on success, 0 on failure</p>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="ippSetStatusCode">ippSetStatusCode</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippSetStatusCode">ippSetStatusCode</a></h3>
<p class="description">Set the status code in an IPP response or event message.</p>
<p class="code">
int ippSetStatusCode (<br>
<a href="#ippNew"><code>ippNew</code></a> or <a href="#ippNewRequest"><code>ippNewRequest</code></a> functions.
</p>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="ippSetString">ippSetString</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippSetString">ippSetString</a></h3>
<p class="description">Set a string value in an attribute.</p>
<p class="code">
int ippSetString (<br>
<a href="#ippGetCount(attr)"><code>ippGetCount(attr)</code></a>.
</p>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="ippSetValueTag">ippSetValueTag</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippSetValueTag">ippSetValueTag</a></h3>
<p class="description">Set the value tag of an attribute.</p>
<p class="code">
int ippSetValueTag (<br>
code for the current locale.
</p>
-<h3 class="function"><span class="info"> CUPS 1.6 </span><a name="ippSetVersion">ippSetVersion</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippSetVersion">ippSetVersion</a></h3>
<p class="description">Set the version number in an IPP message.</p>
<p class="code">
int ippSetVersion (<br>
The valid version numbers are currently 1.0, 1.1, 2.0, 2.1, and 2.2.
</p>
-<h3 class="function"><span class="info"> CUPS 1.4/Mac OS X 10.6 </span><a name="ippTagString">ippTagString</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/OS X 10.6 </span><a name="ippTagString">ippTagString</a></h3>
<p class="description">Return the tag name corresponding to a tag value.</p>
<p class="code">
const char *ippTagString (<br>
<p class="discussion">The returned names are defined in RFC 2911 and 3382.
</p>
-<h3 class="function"><span class="info"> CUPS 1.4/Mac OS X 10.6 </span><a name="ippTagValue">ippTagValue</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/OS X 10.6 </span><a name="ippTagValue">ippTagValue</a></h3>
<p class="description">Return the tag value corresponding to a tag name.</p>
<p class="code">
ipp_tag_t ippTagValue (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Current state</p>
-<h3 class="function"><span class="info"> CUPS 1.1.19/Mac OS X 10.3 </span><a name="ippWriteFile">ippWriteFile</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.19/OS X 10.3 </span><a name="ippWriteFile">ippWriteFile</a></h3>
<p class="description">Write data for an IPP message to a file.</p>
<p class="code">
<a href="#ipp_state_t">ipp_state_t</a> ippWriteFile (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Current state</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="ippWriteIO">ippWriteIO</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="ippWriteIO">ippWriteIO</a></h3>
<p class="description">Write data for an IPP message.</p>
<p class="code">
<a href="#ipp_state_t">ipp_state_t</a> ippWriteIO (<br>
<p class="code">
typedef struct <a href="#gss_auth_identity">gss_auth_identity</a> gss_auth_identity_desc;
</p>
-<h3 class="typedef"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="http_addr_t">http_addr_t</a></h3>
+<h3 class="typedef"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="http_addr_t">http_addr_t</a></h3>
<p class="description">Socket address union, which
makes using IPv6 and other
address types easier and
<p class="code">
typedef union _http_addr_u / http_addr_t;
</p>
-<h3 class="typedef"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="http_addrlist_t">http_addrlist_t</a></h3>
+<h3 class="typedef"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="http_addrlist_t">http_addrlist_t</a></h3>
<p class="description">Socket address list, which is
used to enumerate all of the
addresses that are associated
<p class="code">
typedef enum <a href="#http_auth_e">http_auth_e</a> http_auth_t;
</p>
-<h3 class="typedef"><span class="info"> CUPS 1.5/Mac OS X 10.7 </span><a name="http_credential_t">http_credential_t</a></h3>
+<h3 class="typedef"><span class="info"> CUPS 1.5/OS X 10.7 </span><a name="http_credential_t">http_credential_t</a></h3>
<p class="description">HTTP credential data </p>
<p class="code">
typedef struct <a href="#http_credential_s">http_credential_s</a> http_credential_t;
<p class="code">
typedef struct _http_s http_t;
</p>
-<h3 class="typedef"><span class="info"> CUPS 1.5/Mac OS X 10.7 </span><a name="http_timeout_cb_t">http_timeout_cb_t</a></h3>
+<h3 class="typedef"><span class="info"> CUPS 1.5/OS X 10.7 </span><a name="http_timeout_cb_t">http_timeout_cb_t</a></h3>
<p class="description">HTTP timeout callback </p>
<p class="code">
typedef int (*http_timeout_cb_t)(<a href="#http_t">http_t</a> *http, void *user_data);
typedef struct _ipp_attribute_s ipp_attribute_t;
</p>
<h3 class="typedef"><a name="ipp_copycb_t">ipp_copycb_t</a></h3>
-<p class="description">The following structures are PRIVATE starting with CUPS 1.6. Please use the
-new accessor functions available in CUPS 1.6 and later, as these definitions
-will be moved to a private header file in a future release.</p>
+<p class="description">The following structures are PRIVATE starting with CUPS 1.6/OS X 10.8.
+Please use the new accessor functions available in CUPS 1.6 and later, as
+these definitions will be moved to a private header file in a future release.</p>
<p class="code">
typedef int (*ipp_copycb_t)(void *context, <a href="#ipp_t">ipp_t</a> *dst, <a href="#ipp_attribute_t">ipp_attribute_t</a> *attr);
</p>
<p class="code">
typedef enum <a href="#ipp_finish_e">ipp_finish_e</a> ipp_finish_t;
</p>
-<h3 class="typedef"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="ipp_iocb_t">ipp_iocb_t</a></h3>
+<h3 class="typedef"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="ipp_iocb_t">ipp_iocb_t</a></h3>
<p class="description">IPP IO Callback Function </p>
<p class="code">
typedef ssize_t (*ipp_iocb_t)(void *context, <a href="#ipp_uchar_t">ipp_uchar_t</a> *buffer, size_t bytes);
<dt>type </dt>
<dt>username </dt>
</dl>
-<h3 class="struct"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="http_addrlist_s">http_addrlist_s</a></h3>
+<h3 class="struct"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="http_addrlist_s">http_addrlist_s</a></h3>
<p class="description">Socket address list, which is
used to enumerate all of the
addresses that are associated
<dt>next </dt>
<dd class="description">Pointer to next address in list</dd>
</dl>
-<h3 class="struct"><span class="info"> CUPS 1.5/Mac OS X 10.7 </span><a name="http_credential_s">http_credential_s</a></h3>
+<h3 class="struct"><span class="info"> CUPS 1.5/OS X 10.7 </span><a name="http_credential_s">http_credential_s</a></h3>
<p class="description">HTTP credential data </p>
<p class="code">struct http_credential_s {<br>
void *data;<br>
<dt>datalen </dt>
<dd class="description">Credential length</dd>
</dl>
+<h3 class="struct"><a name="pollfd">pollfd</a></h3>
+<p class="description">User data (unused)</p>
+<p class="code">struct pollfd *pollfds, unsigned int num_pollfds, int timeout, void *context) {<br>
+ void) context;<br>
+ void) timeout;<br>
+};</p>
+<h4 class="members">Members</h4>
+<dl>
+<dt>context </dt>
+<dt>timeout </dt>
+</dl>
<h2 class="title"><a name="ENUMERATIONS">Constants</a></h2>
<h3 class="enumeration"><a name="http_auth_e">http_auth_e</a></h3>
<p class="description">HTTP authentication types</p>
<dd class="description">MD5-session authentication in use</dd>
<dt>HTTP_AUTH_MD5_SESS_INT </dt>
<dd class="description">MD5-session authentication in use for body</dd>
-<dt>HTTP_AUTH_NEGOTIATE <span class="info"> CUPS 1.3/Mac OS X 10.5 </span></dt>
+<dt>HTTP_AUTH_NEGOTIATE <span class="info"> CUPS 1.3/OS X 10.5 </span></dt>
<dd class="description">GSSAPI authentication in use </dd>
<dt>HTTP_AUTH_NONE </dt>
<dd class="description">No authentication in use</dd>
<dd class="description">Only a partial file was recieved/sent</dd>
<dt>HTTP_PAYMENT_REQUIRED </dt>
<dd class="description">Payment required</dd>
-<dt>HTTP_PKI_ERROR <span class="info"> CUPS 1.5/Mac OS X 10.7 </span></dt>
+<dt>HTTP_PKI_ERROR <span class="info"> CUPS 1.5/OS X 10.7 </span></dt>
<dd class="description">Error negotiating a secure connection </dd>
<dt>HTTP_PRECONDITION </dt>
<dd class="description">Precondition failed</dd>
<dd class="description">Add or modify a class</dd>
<dt>CUPS_ADD_MODIFY_PRINTER </dt>
<dd class="description">Add or modify a printer</dd>
-<dt>CUPS_AUTHENTICATE_JOB <span class="info"> CUPS 1.2/Mac OS X 10.5 </span></dt>
+<dt>CUPS_AUTHENTICATE_JOB <span class="info"> CUPS 1.2/OS X 10.5 </span></dt>
<dd class="description">Authenticate a job </dd>
<dt>CUPS_DELETE_CLASS </dt>
<dd class="description">Delete a class</dd>
<dd class="description">Get the default printer</dd>
<dt>CUPS_GET_DEVICES </dt>
<dd class="description">Get a list of supported devices</dd>
-<dt>CUPS_GET_DOCUMENT <span class="info"> CUPS 1.4/Mac OS X 10.6 </span></dt>
+<dt>CUPS_GET_DOCUMENT <span class="info"> CUPS 1.4/OS X 10.6 </span></dt>
<dd class="description">Get a document file </dd>
-<dt>CUPS_GET_PPD <span class="info"> CUPS 1.3/Mac OS X 10.5 </span></dt>
+<dt>CUPS_GET_PPD <span class="info"> CUPS 1.3/OS X 10.5 </span></dt>
<dd class="description">Get a PPD file </dd>
<dt>CUPS_GET_PPDS </dt>
<dd class="description">Get a list of supported drivers</dd>
<dd class="description">Cancel-Jobs</dd>
<dt>IPP_CANCEL_MY_JOBS </dt>
<dd class="description">Cancel-My-Jobs</dd>
-<dt>IPP_CANCEL_SUBSCRIPTION <span class="info"> CUPS 1.2/Mac OS X 10.5 </span></dt>
+<dt>IPP_CANCEL_SUBSCRIPTION <span class="info"> CUPS 1.2/OS X 10.5 </span></dt>
<dd class="description">Cancel a subscription </dd>
<dt>IPP_CLOSE_JOB </dt>
<dd class="description">Close-Job</dd>
<dt>IPP_CREATE_JOB </dt>
<dd class="description">Create an empty print job</dd>
-<dt>IPP_CREATE_JOB_SUBSCRIPTION <span class="info"> CUPS 1.2/Mac OS X 10.5 </span></dt>
+<dt>IPP_CREATE_JOB_SUBSCRIPTION <span class="info"> CUPS 1.2/OS X 10.5 </span></dt>
<dd class="description">Create a job subscription </dd>
-<dt>IPP_CREATE_PRINTER_SUBSCRIPTION <span class="info"> CUPS 1.2/Mac OS X 10.5 </span></dt>
+<dt>IPP_CREATE_PRINTER_SUBSCRIPTION <span class="info"> CUPS 1.2/OS X 10.5 </span></dt>
<dd class="description">Create a printer subscription </dd>
<dt>IPP_DISABLE_PRINTER </dt>
<dd class="description">Stop a printer</dd>
<dd class="description">Get a list of jobs</dd>
<dt>IPP_GET_JOB_ATTRIBUTES </dt>
<dd class="description">Get job attributes</dd>
-<dt>IPP_GET_NOTIFICATIONS <span class="info"> CUPS 1.2/Mac OS X 10.5 </span></dt>
+<dt>IPP_GET_NOTIFICATIONS <span class="info"> CUPS 1.2/OS X 10.5 </span></dt>
<dd class="description">Get notification events </dd>
<dt>IPP_GET_PRINTER_ATTRIBUTES </dt>
<dd class="description">Get printer attributes</dd>
<dt>IPP_GET_PRINTER_SUPPORTED_VALUES </dt>
<dd class="description">Get supported attribute values</dd>
-<dt>IPP_GET_SUBSCRIPTIONS <span class="info"> CUPS 1.2/Mac OS X 10.5 </span></dt>
+<dt>IPP_GET_SUBSCRIPTIONS <span class="info"> CUPS 1.2/OS X 10.5 </span></dt>
<dd class="description">Get list of subscriptions </dd>
-<dt>IPP_GET_SUBSCRIPTION_ATTRIBUTES <span class="info"> CUPS 1.2/Mac OS X 10.5 </span></dt>
+<dt>IPP_GET_SUBSCRIPTION_ATTRIBUTES <span class="info"> CUPS 1.2/OS X 10.5 </span></dt>
<dd class="description">Get subscription attributes </dd>
<dt>IPP_HOLD_JOB </dt>
<dd class="description">Hold a job for printing</dd>
<dd class="description">Cancel all jobs</dd>
<dt>IPP_RELEASE_JOB </dt>
<dd class="description">Release a job for printing</dd>
-<dt>IPP_RENEW_SUBSCRIPTION <span class="info"> CUPS 1.2/Mac OS X 10.5 </span></dt>
+<dt>IPP_RENEW_SUBSCRIPTION <span class="info"> CUPS 1.2/OS X 10.5 </span></dt>
<dd class="description">Renew a printer subscription </dd>
<dt>IPP_RESTART_JOB </dt>
<dd class="description">Reprint a job</dd>
<dd class="description">client-error-attributes-or-values-not-supported</dd>
<dt>IPP_ATTRIBUTES_NOT_SETTABLE </dt>
<dd class="description">client-error-attributes-not-settable</dd>
-<dt>IPP_AUTHENTICATION_CANCELED <span class="info"> CUPS 1.5/Mac OS X 10.7 </span></dt>
+<dt>IPP_AUTHENTICATION_CANCELED <span class="info"> CUPS 1.5/OS X 10.7 </span></dt>
<dd class="description">Authentication canceled by user </dd>
<dt>IPP_BAD_REQUEST </dt>
<dd class="description">client-error-bad-request</dd>
<dd class="description">successful-ok-too-many-events</dd>
<dt>IPP_OPERATION_NOT_SUPPORTED </dt>
<dd class="description">server-error-operation-not-supported</dd>
-<dt>IPP_PKI_ERROR <span class="info"> CUPS 1.5/Mac OS X 10.7 </span></dt>
+<dt>IPP_PKI_ERROR <span class="info"> CUPS 1.5/OS X 10.7 </span></dt>
<dd class="description">Error negotiating a secure connection </dd>
<dt>IPP_PRINTER_BUSY </dt>
<dd class="description">server-error-busy</dd>
PPD API header for CUPS.
- Copyright 2008-2011 by Apple Inc.
+ Copyright 2008-2012 by Apple Inc.
These coded instructions, statements, and computer programs are the
property of Apple Inc. and are protected by Federal copyright
<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>
+<blockquote>The PPD API is deprecated starting in CUPS 1.6/OS X 10.8. 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>
<div class='summary'><table summary='General Information'>
<thead>
PPD API introduction for CUPS.
- Copyright 2007-2011 by Apple Inc.
+ Copyright 2007-2012 by Apple Inc.
Copyright 1997-2006 by Easy Software Products, all rights reserved.
These coded instructions, statements, and computer programs are the
<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>
+<blockquote>The PPD API is deprecated starting in CUPS 1.6/OS X 10.8. 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
puts(attr->value);
</pre>
<h2 class="title"><a name="FUNCTIONS">Functions</a></h2>
-<h3 class="function"><span class="info"> CUPS 1.4/Mac OS X 10.6 </span><a name="cupsGetConflicts">cupsGetConflicts</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/OS X 10.6 </span><a name="cupsGetConflicts">cupsGetConflicts</a></h3>
<p class="description">Get a list of conflicting options in a marked PPD.</p>
<p class="code">
int cupsGetConflicts (<br>
"multiple-document-handling", "output-bin", "print-color-mode",
"print-quality", "printer-resolution", and "sides" attributes to their
corresponding PPD options and choices.</p>
-<h3 class="function"><span class="info"> CUPS 1.4/Mac OS X 10.6 </span><a name="cupsResolveConflicts">cupsResolveConflicts</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/OS X 10.6 </span><a name="cupsResolveConflicts">cupsResolveConflicts</a></h3>
<p class="description">Resolve conflicts in a marked PPD.</p>
<p class="code">
int cupsResolveConflicts (<br>
<h4 class="discussion">Discussion</h4>
<p class="discussion">The choices array should be freed using <code>free</code> when you are
finished with it.</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="ppdCollect2">ppdCollect2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="ppdCollect2">ppdCollect2</a></h3>
<p class="description">Collect all marked options that reside in the
specified section and minimum order.</p>
<p class="code">
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">0 on success, -1 on failure</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="ppdEmitAfterOrder">ppdEmitAfterOrder</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="ppdEmitAfterOrder">ppdEmitAfterOrder</a></h3>
<p class="description">Emit a subset of the code for marked options to a file.</p>
<p class="code">
int ppdEmitAfterOrder (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">0 on success, -1 on failure</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="ppdEmitJCLEnd">ppdEmitJCLEnd</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="ppdEmitJCLEnd">ppdEmitJCLEnd</a></h3>
<p class="description">Emit JCLEnd code to a file.</p>
<p class="code">
int ppdEmitJCLEnd (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">0 on success, -1 on failure</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="ppdEmitString">ppdEmitString</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="ppdEmitString">ppdEmitString</a></h3>
<p class="description">Get a string containing the code for marked options.</p>
<p class="code">
char *ppdEmitString (<br>
<code>free</code> when you are done with it.
</p>
-<h3 class="function"><span class="info"> CUPS 1.1.19/Mac OS X 10.3 </span><a name="ppdErrorString">ppdErrorString</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.19/OS X 10.3 </span><a name="ppdErrorString">ppdErrorString</a></h3>
<p class="description">Returns the text assocated with a status.</p>
<p class="code">
const char *ppdErrorString (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Status string</p>
-<h3 class="function"><span class="info"> CUPS 1.1.19/Mac OS X 10.3 </span><a name="ppdFindAttr">ppdFindAttr</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.19/OS X 10.3 </span><a name="ppdFindAttr">ppdFindAttr</a></h3>
<p class="description">Find the first matching attribute.</p>
<p class="code">
<a href="#ppd_attr_t">ppd_attr_t</a> *ppdFindAttr (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Choice pointer or <code>NULL</code></p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="ppdFindCustomOption">ppdFindCustomOption</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="ppdFindCustomOption">ppdFindCustomOption</a></h3>
<p class="description">Find a custom option.</p>
<p class="code">
<a href="#ppd_coption_t">ppd_coption_t</a> *ppdFindCustomOption (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Custom option or NULL</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="ppdFindCustomParam">ppdFindCustomParam</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="ppdFindCustomParam">ppdFindCustomParam</a></h3>
<p class="description">Find a parameter for a custom option.</p>
<p class="code">
<a href="#ppd_cparam_t">ppd_cparam_t</a> *ppdFindCustomParam (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Pointer to choice or <code>NULL</code></p>
-<h3 class="function"><span class="info"> CUPS 1.1.19/Mac OS X 10.3 </span><a name="ppdFindNextAttr">ppdFindNextAttr</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.19/OS X 10.3 </span><a name="ppdFindNextAttr">ppdFindNextAttr</a></h3>
<p class="description">Find the next matching attribute.</p>
<p class="code">
<a href="#ppd_attr_t">ppd_attr_t</a> *ppdFindNextAttr (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Pointer to option or <code>NULL</code></p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="ppdFirstCustomParam">ppdFirstCustomParam</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="ppdFirstCustomParam">ppdFirstCustomParam</a></h3>
<p class="description">Return the first parameter for a custom option.</p>
<p class="code">
<a href="#ppd_cparam_t">ppd_cparam_t</a> *ppdFirstCustomParam (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Custom parameter or NULL</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="ppdFirstOption">ppdFirstOption</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="ppdFirstOption">ppdFirstOption</a></h3>
<p class="description">Return the first option in the PPD file.</p>
<p class="code">
<a href="#ppd_option_t">ppd_option_t</a> *ppdFirstOption (<br>
<p class="discussion">Options are returned from all groups in ascending alphanumeric order.
</p>
-<h3 class="function"><span class="info"> CUPS 1.4/Mac OS X 10.6 </span><a name="ppdInstallableConflict">ppdInstallableConflict</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/OS X 10.6 </span><a name="ppdInstallableConflict">ppdInstallableConflict</a></h3>
<p class="description">Test whether an option choice conflicts with
an installable option.</p>
<p class="code">
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Non-zero if option is marked</p>
-<h3 class="function"><span class="info"> CUPS 1.1.19/Mac OS X 10.3 </span><a name="ppdLastError">ppdLastError</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.19/OS X 10.3 </span><a name="ppdLastError">ppdLastError</a></h3>
<p class="description">Return the status from the last ppdOpen*().</p>
<p class="code">
<a href="#ppd_status_t">ppd_status_t</a> ppdLastError (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Status code</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="ppdLocalize">ppdLocalize</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="ppdLocalize">ppdLocalize</a></h3>
<p class="description">Localize the PPD file to the current locale.</p>
<p class="code">
int ppdLocalize (<br>
<p class="discussion">This function uses the current locale to find the localized attribute for
the given main and option keywords. If no localized version of the
attribute exists for the current locale, the unlocalized version is returned.</p>
-<h3 class="function"><span class="info"> CUPS 1.3/Mac OS X 10.5 </span><a name="ppdLocalizeIPPReason">ppdLocalizeIPPReason</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.3/OS X 10.5 </span><a name="ppdLocalizeIPPReason">ppdLocalizeIPPReason</a></h3>
<p class="description">Get the localized version of a cupsIPPReason
attribute.</p>
<p class="code">
If no value of the requested scheme can be found, NULL is returned.
</p>
-<h3 class="function"><span class="info"> CUPS 1.4/Mac OS X 10.6 </span><a name="ppdLocalizeMarkerName">ppdLocalizeMarkerName</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/OS X 10.6 </span><a name="ppdLocalizeMarkerName">ppdLocalizeMarkerName</a></h3>
<p class="description">Get the localized version of a marker-names
attribute value.</p>
<p class="code">
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Number of conflicts</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="ppdNextCustomParam">ppdNextCustomParam</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="ppdNextCustomParam">ppdNextCustomParam</a></h3>
<p class="description">Return the next parameter for a custom option.</p>
<p class="code">
<a href="#ppd_cparam_t">ppd_cparam_t</a> *ppdNextCustomParam (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Custom parameter or NULL</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="ppdNextOption">ppdNextOption</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="ppdNextOption">ppdNextOption</a></h3>
<p class="description">Return the next option in the PPD file.</p>
<p class="code">
<a href="#ppd_option_t">ppd_option_t</a> *ppdNextOption (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">PPD file record</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="ppdOpen2">ppdOpen2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="ppdOpen2">ppdOpen2</a></h3>
<p class="description">Read a PPD file into memory.</p>
<p class="code">
<a href="#ppd_file_t">ppd_file_t</a> *ppdOpen2 (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Size record for page or NULL</p>
-<h3 class="function"><span class="info"> CUPS 1.4/Mac OS X 10.6 </span><a name="ppdPageSizeLimits">ppdPageSizeLimits</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/OS X 10.6 </span><a name="ppdPageSizeLimits">ppdPageSizeLimits</a></h3>
<p class="description">Return the custom page size limits.</p>
<p class="code">
int ppdPageSizeLimits (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Width of page in points or 0.0</p>
-<h3 class="function"><span class="info"> CUPS 1.1.20/Mac OS X 10.4 </span><a name="ppdSetConformance">ppdSetConformance</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.20/OS X 10.4 </span><a name="ppdSetConformance">ppdSetConformance</a></h3>
<p class="description">Set the conformance level for PPD files.</p>
<p class="code">
void ppdSetConformance (<br>
<dd class="description">Conformance level</dd>
</dl>
<h2 class="title"><a name="TYPES">Data Types</a></h2>
-<h3 class="typedef"><span class="info"> CUPS 1.1.19/Mac OS X 10.3 </span><a name="ppd_attr_t">ppd_attr_t</a></h3>
+<h3 class="typedef"><span class="info"> CUPS 1.1.19/OS X 10.3 </span><a name="ppd_attr_t">ppd_attr_t</a></h3>
<p class="description">PPD Attribute Structure </p>
<p class="code">
typedef struct <a href="#ppd_attr_s">ppd_attr_s</a> ppd_attr_t;
<p class="code">
typedef struct <a href="#ppd_choice_s">ppd_choice_s</a> ppd_choice_t;
</p>
-<h3 class="typedef"><span class="info"> CUPS 1.1.19/Mac OS X 10.3 </span><a name="ppd_conform_t">ppd_conform_t</a></h3>
+<h3 class="typedef"><span class="info"> CUPS 1.1.19/OS X 10.3 </span><a name="ppd_conform_t">ppd_conform_t</a></h3>
<p class="description">Conformance Levels </p>
<p class="code">
typedef enum <a href="#ppd_conform_e">ppd_conform_e</a> ppd_conform_t;
<p class="code">
typedef struct <a href="#ppd_const_s">ppd_const_s</a> ppd_const_t;
</p>
-<h3 class="typedef"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="ppd_coption_t">ppd_coption_t</a></h3>
+<h3 class="typedef"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="ppd_coption_t">ppd_coption_t</a></h3>
<p class="description">Custom Option </p>
<p class="code">
typedef struct <a href="#ppd_coption_s">ppd_coption_s</a> ppd_coption_t;
</p>
-<h3 class="typedef"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="ppd_cparam_t">ppd_cparam_t</a></h3>
+<h3 class="typedef"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="ppd_cparam_t">ppd_cparam_t</a></h3>
<p class="description">Custom Parameter </p>
<p class="code">
typedef struct <a href="#ppd_cparam_s">ppd_cparam_s</a> ppd_cparam_t;
</p>
-<h3 class="typedef"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="ppd_cplimit_t">ppd_cplimit_t</a></h3>
+<h3 class="typedef"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="ppd_cplimit_t">ppd_cplimit_t</a></h3>
<p class="description">Custom Parameter Limit </p>
<p class="code">
typedef union <a href="#ppd_cplimit_u">ppd_cplimit_u</a> ppd_cplimit_t;
</p>
-<h3 class="typedef"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="ppd_cptype_t">ppd_cptype_t</a></h3>
+<h3 class="typedef"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="ppd_cptype_t">ppd_cptype_t</a></h3>
<p class="description">Custom Parameter Type </p>
<p class="code">
typedef enum ppd_cptype_e ppd_cptype_t;
</p>
-<h3 class="typedef"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="ppd_cpvalue_t">ppd_cpvalue_t</a></h3>
+<h3 class="typedef"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="ppd_cpvalue_t">ppd_cpvalue_t</a></h3>
<p class="description">Custom Parameter Value </p>
<p class="code">
typedef union <a href="#ppd_cpvalue_u">ppd_cpvalue_u</a> ppd_cpvalue_t;
<p class="code">
typedef struct <a href="#ppd_size_s">ppd_size_s</a> ppd_size_t;
</p>
-<h3 class="typedef"><span class="info"> CUPS 1.1.19/Mac OS X 10.3 </span><a name="ppd_status_t">ppd_status_t</a></h3>
+<h3 class="typedef"><span class="info"> CUPS 1.1.19/OS X 10.3 </span><a name="ppd_status_t">ppd_status_t</a></h3>
<p class="description">Status Codes </p>
<p class="code">
typedef enum <a href="#ppd_status_e">ppd_status_e</a> ppd_status_t;
typedef enum <a href="#ppd_ui_e">ppd_ui_e</a> ppd_ui_t;
</p>
<h2 class="title"><a name="STRUCTURES">Structures</a></h2>
-<h3 class="struct"><span class="info"> CUPS 1.1.19/Mac OS X 10.3 </span><a name="ppd_attr_s">ppd_attr_s</a></h3>
+<h3 class="struct"><span class="info"> CUPS 1.1.19/OS X 10.3 </span><a name="ppd_attr_s">ppd_attr_s</a></h3>
<p class="description">PPD Attribute Structure </p>
<p class="code">struct ppd_attr_s {<br>
char name[PPD_MAX_NAME];<br>
<dt>option2[PPD_MAX_NAME] </dt>
<dd class="description">Second keyword</dd>
</dl>
-<h3 class="struct"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="ppd_coption_s">ppd_coption_s</a></h3>
+<h3 class="struct"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="ppd_coption_s">ppd_coption_s</a></h3>
<p class="description">Custom Option </p>
<p class="code">struct ppd_coption_s {<br>
char keyword[PPD_MAX_NAME];<br>
<dt>params </dt>
<dd class="description">Parameters</dd>
</dl>
-<h3 class="struct"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="ppd_cparam_s">ppd_cparam_s</a></h3>
+<h3 class="struct"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="ppd_cparam_s">ppd_cparam_s</a></h3>
<p class="description">Custom Parameter </p>
<p class="code">struct ppd_cparam_s {<br>
<a href="#ppd_cpvalue_t">ppd_cpvalue_t</a> current;<br>
<dd class="description">Number of page sizes</dd>
<dt>patches </dt>
<dd class="description">Patch commands to be sent to printer</dd>
-<dt>pcfilename <span class="info"> CUPS 1.1.19/Mac OS X 10.3 </span></dt>
+<dt>pcfilename <span class="info"> CUPS 1.1.19/OS X 10.3 </span></dt>
<dd class="description">PCFileName string </dd>
<dt>product </dt>
<dd class="description">Product name (from PS RIP/interpreter)</dd>
<dt>profiles <span class="info"> DEPRECATED </span></dt>
<dd class="description">sRGB color profiles </dd>
-<dt>protocols <span class="info"> CUPS 1.1.19/Mac OS X 10.3 </span></dt>
+<dt>protocols <span class="info"> CUPS 1.1.19/OS X 10.3 </span></dt>
<dd class="description">Protocols (BCP, TBCP) string </dd>
<dt>shortnickname </dt>
<dd class="description">Short version of nickname</dd>
<dl>
<dt>PPD_MAX_NAME] </dt>
<dd class="description">Human-readable group name</dd>
-<dt>name[PPD_MAX_NAME] <span class="info"> CUPS 1.1.18/Mac OS X 10.3 </span></dt>
+<dt>name[PPD_MAX_NAME] <span class="info"> CUPS 1.1.18/OS X 10.3 </span></dt>
<dd class="description">Group name </dd>
<dt>num_options </dt>
<dd class="description">Number of options</dd>
<dd class="description">Width of media in points</dd>
</dl>
<h2 class="title"><a name="UNIONS">Unions</a></h2>
-<h3 class="union"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="ppd_cplimit_u">ppd_cplimit_u</a></h3>
+<h3 class="union"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="ppd_cplimit_u">ppd_cplimit_u</a></h3>
<p class="description">Custom Parameter Limit </p>
<p class="code">union ppd_cplimit_u {<br>
float custom_curve;<br>
<dt>custom_string </dt>
<dd class="description">String length</dd>
</dl>
-<h3 class="union"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="ppd_cpvalue_u">ppd_cpvalue_u</a></h3>
+<h3 class="union"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="ppd_cpvalue_u">ppd_cpvalue_u</a></h3>
<p class="description">Custom Parameter Value </p>
<p class="code">union ppd_cpvalue_u {<br>
float custom_curve;<br>
<dd class="description">String value</dd>
</dl>
<h2 class="title"><a name="ENUMERATIONS">Constants</a></h2>
-<h3 class="enumeration"><span class="info"> CUPS 1.1.19/Mac OS X 10.3 </span><a name="ppd_conform_e">ppd_conform_e</a></h3>
+<h3 class="enumeration"><span class="info"> CUPS 1.1.19/OS X 10.3 </span><a name="ppd_conform_e">ppd_conform_e</a></h3>
<p class="description">Conformance Levels </p>
<h4 class="constants">Constants</h4>
<dl>
<dt>PPD_ORDER_PROLOG </dt>
<dd class="description">... must be in the Prolog section</dd>
</dl>
-<h3 class="enumeration"><span class="info"> CUPS 1.1.19/Mac OS X 10.3 </span><a name="ppd_status_e">ppd_status_e</a></h3>
+<h3 class="enumeration"><span class="info"> CUPS 1.1.19/OS X 10.3 </span><a name="ppd_status_e">ppd_status_e</a></h3>
<p class="description">Status Codes </p>
<h4 class="constants">Constants</h4>
<dl>
Raster API introduction for CUPS.
- Copyright 2007-2011 by Apple Inc.
+ Copyright 2007-2012 by Apple Inc.
Copyright 1997-2006 by Easy Software Products, all rights reserved.
These coded instructions, statements, and computer programs are the
<p>Two kinds of CUPS filters use the CUPS raster API - raster image processor
(RIP) filters such as <code>pstoraster</code> and <code>cgpdftoraster</code>
-(Mac OS X) that produce CUPS raster files and printer driver filters that
+(OS X) that produce CUPS raster files and printer driver filters that
convert CUPS raster files into a format usable by the printer. Printer
driver filters are by far the most common.</p>
<ul class="code">
- <li><a href="#cupsRasterReadHeader" title="Read a raster page header and store it in a version 1 page header structure.">cupsRasterReadHeader</a> <span class="info">Deprecated in CUPS 1.2/Mac OS X 10.5</span></li>
+ <li><a href="#cupsRasterReadHeader" title="Read a raster page header and store it in a version 1 page header structure.">cupsRasterReadHeader</a> <span class="info">Deprecated in CUPS 1.2/OS X 10.5</span></li>
<li><a href="#cupsRasterReadHeader2" title="Read a raster page header and store it in a version 2 page header structure.">cupsRasterReadHeader2</a></li>
<li><a href="#cupsRasterReadPixels" title="Read raster pixels.">cupsRasterReadPixels</a></li>
<ul class="code">
<li><a href="#cupsRasterInterpretPPD" title="Interpret PPD commands to create a page header.">cupsRasterInterpretPPD</a></li>
- <li><a href="#cupsRasterWriteHeader" title="Write a raster page header from a version 1 page header structure.">cupsRasterWriteHeader</a> <span class="info">Deprecated in CUPS 1.2/Mac OS X 10.5</span></li>
+ <li><a href="#cupsRasterWriteHeader" title="Write a raster page header from a version 1 page header structure.">cupsRasterWriteHeader</a> <span class="info">Deprecated in CUPS 1.2/OS X 10.5</span></li>
<li><a href="#cupsRasterWriteHeader2" title="Write a raster page header from a version 2 page header structure.">cupsRasterWriteHeader2</a></li>
<li><a href="#cupsRasterWritePixels" title="Write raster pixels.">cupsRasterWritePixels</a></li>
-
+
</ul>
<h2 class="title"><a name="FUNCTIONS">Functions</a></h2>
<h3 class="function"><a name="cupsRasterClose">cupsRasterClose</a></h3>
<h4 class="discussion">Discussion</h4>
<p class="discussion">The file descriptor associated with the raster stream must be closed
separately as needed.</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsRasterInterpretPPD">cupsRasterInterpretPPD</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsRasterInterpretPPD">cupsRasterInterpretPPD</a></h3>
<p class="description">Interpret PPD commands to create a page header.</p>
<p class="code">
int cupsRasterInterpretPPD (<br>
page headers and copying only the version 1 data into the provided buffer.
</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsRasterReadHeader2">cupsRasterReadHeader2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsRasterReadHeader2">cupsRasterReadHeader2</a></h3>
<p class="description">Read a raster page header and store it in a
version 2 page header structure.</p>
<p class="code">
<p class="discussion">This function is deprecated. Use <a href="#cupsRasterWriteHeader2"><code>cupsRasterWriteHeader2</code></a> instead.
</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsRasterWriteHeader2">cupsRasterWriteHeader2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsRasterWriteHeader2">cupsRasterWriteHeader2</a></h3>
<p class="description">Write a raster page header from a version 2
page header structure.</p>
<p class="code">
<p class="code">
typedef enum <a href="#cups_orient_e">cups_orient_e</a> cups_orient_t;
</p>
-<h3 class="typedef"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cups_page_header2_t">cups_page_header2_t</a></h3>
+<h3 class="typedef"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cups_page_header2_t">cups_page_header2_t</a></h3>
<p class="description">Version 2 page header </p>
<p class="code">
typedef struct <a href="#cups_page_header2_s">cups_page_header2_s</a> cups_page_header2_t;
typedef struct _cups_raster_s cups_raster_t;
</p>
<h2 class="title"><a name="STRUCTURES">Structures</a></h2>
-<h3 class="struct"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cups_page_header2_s">cups_page_header2_s</a></h3>
+<h3 class="struct"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cups_page_header2_s">cups_page_header2_s</a></h3>
<p class="description">Version 2 page header </p>
<p class="code">struct cups_page_header2_s {<br>
unsigned AdvanceDistance;<br>
<dd class="description">Number of bits for each color</dd>
<dt>cupsBitsPerPixel </dt>
<dd class="description">Number of bits for each pixel</dd>
-<dt>cupsBorderlessScalingFactor <span class="info"> CUPS 1.2/Mac OS X 10.5 </span></dt>
+<dt>cupsBorderlessScalingFactor <span class="info"> CUPS 1.2/OS X 10.5 </span></dt>
<dd class="description">Scaling that was applied to page data </dd>
<dt>cupsBytesPerLine </dt>
<dd class="description">Number of bytes per line</dd>
<dd class="description">Device compression to use</dd>
<dt>cupsHeight </dt>
<dd class="description">Height of page image in pixels</dd>
-<dt>cupsImagingBBox[4] <span class="info"> CUPS 1.2/Mac OS X 10.5 </span></dt>
+<dt>cupsImagingBBox[4] <span class="info"> CUPS 1.2/OS X 10.5 </span></dt>
<dd class="description">Floating point ImagingBoundingBox
(scaling factor not applied, left,
bottom, right, top) </dd>
-<dt>cupsInteger[16] <span class="info"> CUPS 1.2/Mac OS X 10.5 </span></dt>
+<dt>cupsInteger[16] <span class="info"> CUPS 1.2/OS X 10.5 </span></dt>
<dd class="description">User-defined integer values </dd>
-<dt>cupsMarkerType[64] <span class="info"> CUPS 1.2/Mac OS X 10.5 </span></dt>
+<dt>cupsMarkerType[64] <span class="info"> CUPS 1.2/OS X 10.5 </span></dt>
<dd class="description">Ink/toner type </dd>
<dt>cupsMediaType </dt>
<dd class="description">Media type code</dd>
-<dt>cupsNumColors <span class="info"> CUPS 1.2/Mac OS X 10.5 </span></dt>
+<dt>cupsNumColors <span class="info"> CUPS 1.2/OS X 10.5 </span></dt>
<dd class="description">Number of color compoents </dd>
-<dt>cupsPageSizeName[64] <span class="info"> CUPS 1.2/Mac OS X 10.5 </span></dt>
+<dt>cupsPageSizeName[64] <span class="info"> CUPS 1.2/OS X 10.5 </span></dt>
<dd class="description">PageSize name </dd>
-<dt>cupsPageSize[2] <span class="info"> CUPS 1.2/Mac OS X 10.5 </span></dt>
+<dt>cupsPageSize[2] <span class="info"> CUPS 1.2/OS X 10.5 </span></dt>
<dd class="description">Floating point PageSize (scaling *
factor not applied) </dd>
-<dt>cupsReal[16] <span class="info"> CUPS 1.2/Mac OS X 10.5 </span></dt>
+<dt>cupsReal[16] <span class="info"> CUPS 1.2/OS X 10.5 </span></dt>
<dd class="description">User-defined floating-point values </dd>
-<dt>cupsRenderingIntent[64] <span class="info"> CUPS 1.2/Mac OS X 10.5 </span></dt>
+<dt>cupsRenderingIntent[64] <span class="info"> CUPS 1.2/OS X 10.5 </span></dt>
<dd class="description">Color rendering intent </dd>
<dt>cupsRowCount </dt>
<dd class="description">Rows per band</dd>
<dd class="description">Feed between bands</dd>
<dt>cupsRowStep </dt>
<dd class="description">Spacing between lines</dd>
-<dt>cupsString[16][64] <span class="info"> CUPS 1.2/Mac OS X 10.5 </span></dt>
+<dt>cupsString[16][64] <span class="info"> CUPS 1.2/OS X 10.5 </span></dt>
<dd class="description">User-defined string values </dd>
<dt>cupsWidth </dt>
<dd class="description">Width of page image in pixels</dd>
<dl>
<dt>CUPS_CSPACE_ADOBERGB <span class="info"> CUPS 1.4.5 </span></dt>
<dd class="description">Red, green, blue (Adobe RGB) </dd>
-<dt>CUPS_CSPACE_CIELab <span class="info"> CUPS 1.1.19/Mac OS X 10.3 </span></dt>
+<dt>CUPS_CSPACE_CIELab <span class="info"> CUPS 1.1.19/OS X 10.3 </span></dt>
<dd class="description">CIE Lab </dd>
-<dt>CUPS_CSPACE_CIEXYZ <span class="info"> CUPS 1.1.19/Mac OS X 10.3 </span></dt>
+<dt>CUPS_CSPACE_CIEXYZ <span class="info"> CUPS 1.1.19/OS X 10.3 </span></dt>
<dd class="description">CIE XYZ </dd>
<dt>CUPS_CSPACE_CMY </dt>
<dd class="description">Cyan, magenta, yellow (DeviceCMY)</dd>
<dd class="description">Gold, magenta, yellow, silver </dd>
<dt>CUPS_CSPACE_GOLD <span class="info"> DEPRECATED </span></dt>
<dd class="description">Gold foil </dd>
-<dt>CUPS_CSPACE_ICC1 <span class="info"> CUPS 1.1.19/Mac OS X 10.3 </span></dt>
+<dt>CUPS_CSPACE_ICC1 <span class="info"> CUPS 1.1.19/OS X 10.3 </span></dt>
<dd class="description">ICC-based, 1 color </dd>
-<dt>CUPS_CSPACE_ICC2 <span class="info"> CUPS 1.1.19/Mac OS X 10.3 </span></dt>
+<dt>CUPS_CSPACE_ICC2 <span class="info"> CUPS 1.1.19/OS X 10.3 </span></dt>
<dd class="description">ICC-based, 2 colors </dd>
-<dt>CUPS_CSPACE_ICC3 <span class="info"> CUPS 1.1.19/Mac OS X 10.3 </span></dt>
+<dt>CUPS_CSPACE_ICC3 <span class="info"> CUPS 1.1.19/OS X 10.3 </span></dt>
<dd class="description">ICC-based, 3 colors </dd>
-<dt>CUPS_CSPACE_ICC4 <span class="info"> CUPS 1.1.19/Mac OS X 10.3 </span></dt>
+<dt>CUPS_CSPACE_ICC4 <span class="info"> CUPS 1.1.19/OS X 10.3 </span></dt>
<dd class="description">ICC-based, 4 colors </dd>
-<dt>CUPS_CSPACE_ICC5 <span class="info"> CUPS 1.1.19/Mac OS X 10.3 </span></dt>
+<dt>CUPS_CSPACE_ICC5 <span class="info"> CUPS 1.1.19/OS X 10.3 </span></dt>
<dd class="description">ICC-based, 5 colors </dd>
-<dt>CUPS_CSPACE_ICC6 <span class="info"> CUPS 1.1.19/Mac OS X 10.3 </span></dt>
+<dt>CUPS_CSPACE_ICC6 <span class="info"> CUPS 1.1.19/OS X 10.3 </span></dt>
<dd class="description">ICC-based, 6 colors </dd>
-<dt>CUPS_CSPACE_ICC7 <span class="info"> CUPS 1.1.19/Mac OS X 10.3 </span></dt>
+<dt>CUPS_CSPACE_ICC7 <span class="info"> CUPS 1.1.19/OS X 10.3 </span></dt>
<dd class="description">ICC-based, 7 colors </dd>
-<dt>CUPS_CSPACE_ICC8 <span class="info"> CUPS 1.1.19/Mac OS X 10.3 </span></dt>
+<dt>CUPS_CSPACE_ICC8 <span class="info"> CUPS 1.1.19/OS X 10.3 </span></dt>
<dd class="description">ICC-based, 8 colors </dd>
-<dt>CUPS_CSPACE_ICC9 <span class="info"> CUPS 1.1.19/Mac OS X 10.3 </span></dt>
+<dt>CUPS_CSPACE_ICC9 <span class="info"> CUPS 1.1.19/OS X 10.3 </span></dt>
<dd class="description">ICC-based, 9 colors </dd>
-<dt>CUPS_CSPACE_ICCA <span class="info"> CUPS 1.1.19/Mac OS X 10.3 </span></dt>
+<dt>CUPS_CSPACE_ICCA <span class="info"> CUPS 1.1.19/OS X 10.3 </span></dt>
<dd class="description">ICC-based, 10 colors </dd>
-<dt>CUPS_CSPACE_ICCB <span class="info"> CUPS 1.1.19/Mac OS X 10.3 </span></dt>
+<dt>CUPS_CSPACE_ICCB <span class="info"> CUPS 1.1.19/OS X 10.3 </span></dt>
<dd class="description">ICC-based, 11 colors </dd>
-<dt>CUPS_CSPACE_ICCC <span class="info"> CUPS 1.1.19/Mac OS X 10.3 </span></dt>
+<dt>CUPS_CSPACE_ICCC <span class="info"> CUPS 1.1.19/OS X 10.3 </span></dt>
<dd class="description">ICC-based, 12 colors </dd>
-<dt>CUPS_CSPACE_ICCD <span class="info"> CUPS 1.1.19/Mac OS X 10.3 </span></dt>
+<dt>CUPS_CSPACE_ICCD <span class="info"> CUPS 1.1.19/OS X 10.3 </span></dt>
<dd class="description">ICC-based, 13 colors </dd>
-<dt>CUPS_CSPACE_ICCE <span class="info"> CUPS 1.1.19/Mac OS X 10.3 </span></dt>
+<dt>CUPS_CSPACE_ICCE <span class="info"> CUPS 1.1.19/OS X 10.3 </span></dt>
<dd class="description">ICC-based, 14 colors </dd>
-<dt>CUPS_CSPACE_ICCF <span class="info"> CUPS 1.1.19/Mac OS X 10.3 </span></dt>
+<dt>CUPS_CSPACE_ICCF <span class="info"> CUPS 1.1.19/OS X 10.3 </span></dt>
<dd class="description">ICC-based, 15 colors </dd>
<dt>CUPS_CSPACE_K </dt>
<dd class="description">Black (DeviceK)</dd>
<dd class="description">Red, green, blue (DeviceRGB, sRGB by default)</dd>
<dt>CUPS_CSPACE_RGBA </dt>
<dd class="description">Red, green, blue, alpha (DeviceRGB, sRGB by default)</dd>
-<dt>CUPS_CSPACE_RGBW <span class="info"> CUPS 1.2/Mac OS X 10.5 </span></dt>
+<dt>CUPS_CSPACE_RGBW <span class="info"> CUPS 1.2/OS X 10.5 </span></dt>
<dd class="description">Red, green, blue, white (DeviceRGB, sRGB by default) </dd>
<dt>CUPS_CSPACE_SILVER <span class="info"> DEPRECATED </span></dt>
<dd class="description">Silver foil </dd>
<dd class="description">Open stream for reading</dd>
<dt>CUPS_RASTER_WRITE </dt>
<dd class="description">Open stream for writing</dd>
-<dt>CUPS_RASTER_WRITE_COMPRESSED <span class="info"> CUPS 1.3/Mac OS X 10.5 </span></dt>
+<dt>CUPS_RASTER_WRITE_COMPRESSED <span class="info"> CUPS 1.3/OS X 10.5 </span></dt>
<dd class="description">Open stream for compressed writing </dd>
-<dt>CUPS_RASTER_WRITE_PWG <span class="info"> CUPS 1.5/Mac OS X 10.7 </span></dt>
+<dt>CUPS_RASTER_WRITE_PWG <span class="info"> CUPS 1.5/OS X 10.7 </span></dt>
<dd class="description">Open stream for compressed writing in PWG mode </dd>
</dl>
<h3 class="enumeration"><a name="cups_order_e">cups_order_e</a></h3>
<LI><A HREF="http://web.mit.edu/kerberos/">Kerberos: The Network Authentication Protocol</A></LI>
<LI><A HREF="http://web.mit.edu/macdev/KfM/Common/Documentation/faq-osx.html">Kerberos
- on Mac OS X Frequently Asked Questions</A></LI>
+ on OS X Frequently Asked Questions</A></LI>
</UL>
<H1 CLASS="title">Software License Agreement</H1>
-<P ALIGN="CENTER">Copyright 2007-2011 by Apple Inc.<BR>
+<P ALIGN="CENTER">Copyright 2007-2012 by Apple Inc.<BR>
1 Infinite Loop<BR>
Cupertino, CA 95014 USA<BR>
<BR>
<LI>An Apple Operating System means any
operating system software developed and/or
- marketed by Apple Computer, Inc., including but
- not limited to all existing releases and
- versions of Apple's Darwin, Mac OS X, and Mac OS
- X Server products and all follow-on releases and
- future versions thereof.</LI>
+ marketed by Apple Inc., including but not limited
+ to all existing releases and versions of Apple's
+ Darwin, OS X, and OS X Server products and all
+ follow-on releases and future versions thereof.</LI>
<LI>This exception is only available for Apple
OS-Developed Software and does not apply to
<h2 class="title"><a name="STANDARD_FILES">Standard Files</a></h2>
The following standard files are available:
<pre>
+ color.jpg
create-printer-subscription.test
+ document-a4.pdf
+ document-a4.ps
+ document-letter.pdf
+ document-letter.ps
get-completed-jobs.test
get-jobs.test
+ get-printer-attributes.test
+ gray.jpg
ipp-1.1.test
ipp-2.0.test
ipp-2.1.test
+ ipp-2.2.test
+ onepage-a4.pdf
+ onepage-a4.ps
+ onepage-letter.pdf
+ onepage-letter.ps
+ print-job.test
testfile.jpg
testfile.pdf
testfile.ps
<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.
+Copyright 2007-2012 by Apple Inc.
</body>
</html>
<H2 CLASS="title"><A NAME="SNMP">Troubleshooting SNMP Discovery Problems</A></H2>
-<P>Whenever you view the administration web page or a list of supported device URIs, the <tt>snmp</tt> backend will probe the local network(s) using Simple Network Management Protocol (SNMP) broadcasts. Printers that respond to these broadcasts are then interrogated for the make and model and supported protocols, yielding a device URI that can be used to add the printer.</P>
+<P>Whenever you view the administration web page or a list of supported device URIs, the <tt>snmp</tt> backend can probe the local network(s) using Simple Network Management Protocol (SNMP) v1 broadcasts. Printers that respond to these broadcasts are then interrogated for the make, model, and supported protocols, yielding a device URI that can be used to add the printer.</P>
-<P>That said, the SNMP requests sometimes expose problems in vendor SNMP or IPP implementations. If you are experiencing long delays in loading the CUPS web interface administration page, or if you don't see your printer listed, the following instructions will help you to diagnose those problems and/or provide important feedback to the CUPS developers so that we can correct problems and improve the SNMP backend in future releases.</P>
+<P>That said, the SNMP requests sometimes expose problems in vendor implementations. If you are experiencing long delays in loading the CUPS web interface administration page, or if you don't see your printer listed, the following instructions will help you to diagnose those problems and/or provide important feedback to the CUPS developers so that we can correct problems and improve the SNMP backend in future releases.</P>
<H3>Quick Fixes</H3>
-<P>If you don't use "public" as your community name, create a text file called <VAR>/etc/cups/snmp.conf</VAR> and put the following line in it:</P>
+<P>If you don't use "public" as your community name, edit or create (as needed) a text file called <VAR>/etc/cups/snmp.conf</VAR> and put the following line in it:</P>
<PRE CLASS="command">
Community <I>your community name</I>
</PRE>
-<P>If you have more than one community name, list them all on separate lines.</P>
-
-<P>If you don't support SNMP v1 on your network, you are currently "out of luck". That said, we will be adding v2, v2c, and v3 support in future CUPS releases once we have a handle on the actual requirements people have for such things. Please file or update an <A HREF="http://www.cups.org/str.php">SNMP enhancement request</A> with <em>specific</em> requirements you have - what you need supported, why you need it supported, and how you would like to see the functionality provided/exposed - so that we can do it "right" the first time.</P>
+<P>The SNMP backend will not be able to find any printers on your network if SNMP v1 or broadcasting are not supported on your network.</P>
<H3>Basic Debugging</H3>
PostScript printer driver documentation for CUPS.
- Copyright 2007-2010 by Apple Inc.
+ Copyright 2007-2012 by Apple Inc.
Copyright 1997-2007 by Easy Software Products.
These coded instructions, statements, and computer programs are the
<h1 class='title'>Developing PostScript Printer Drivers</h1>
-<p>This document describes how to develop printer drivers for PostScript printers. Topics include: <a href='#BASICS'>printer driver basics</a>, <a href='#CREATE'>creating new PPD files</a>, <a href='#IMPORT'>importing existing PPD files</a>, <a href='#FILTERS'>using custom filters</a>, <a href='#COLOR'>implementing color management</a>, and <a href='#MACOSX'>adding Mac OS X features</a>.</p>
+<p>This document describes how to develop printer drivers for PostScript printers. Topics include: <a href='#BASICS'>printer driver basics</a>, <a href='#CREATE'>creating new PPD files</a>, <a href='#IMPORT'>importing existing PPD files</a>, <a href='#FILTERS'>using custom filters</a>, <a href='#COLOR'>implementing color management</a>, and <a href='#MACOSX'>adding OS X features</a>.</p>
<div class='summary'><table summary='General Information'>
<tbody>
</ul></li>
<li><a href="#FILTERS">Using Custom Filters</a></li>
<li><a href="#COLOR">Implementing Color Management</a></li>
-<li><a href="#MACOSX">Adding Mac OS X Features</a></li>
+<li><a href="#MACOSX">Adding OS X Features</a></li>
</ul>
<h2 class='title'><a name='BASICS'>Printer Driver Basics</a></h2>
dup [612 792] (Letter) put
dup [612 1008] (Legal) put
dup [595 842] (A4) put
- {exch aload pop 4 index sub abs 5 le exch
+ {exch aload pop 4 index sub abs 5 le exch
5 index sub abs 5 le and
{exch pop exit} {pop} ifelse
} bind forall = flush pop pop
dup [612 792] (Letter) put
dup [612 1008] (Legal) put
dup [595 842] (A4) put
- {exch aload pop 4 index sub abs 5 le exch
+ {exch aload pop 4 index sub abs 5 le exch
5 index sub abs 5 le and
{exch pop exit} {pop} ifelse
} bind forall = flush pop pop
<p>The options used for profile selection can be customized using the <tt>cupsICCQualifier2</tt> and <tt>cupsICCQualifier3</tt> attributes.</p>
-<h2 class='title'><a name='MACOSX'>Adding Mac OS X Features</a></h2>
+<h2 class='title'><a name='MACOSX'>Adding OS X Features</a></h2>
-<p>Mac OS X printer drivers can provide <a href='spec-ppd.html#MACOSX'>additional attributes</a> to specify additional option panes in the print dialog, an image of the printer, a help book, and option presets for the driver software:</p>
+<p>OS X printer drivers can provide <a href='spec-ppd.html#MACOSX'>additional attributes</a> to specify additional option panes in the print dialog, an image of the printer, a help book, and option presets for the driver software:</p>
<pre class='example'>
<a href='ref-ppdcfile.html#Attribute'>Attribute</a> APDialogExtension "" /Library/Printers/Vendor/filename.plugin
<LI>Bits per color. In the example file, we define 8 bits per color, for
a continuous-tone grayscale output. All versions of CUPS support 1 and
- 8 bits per color. CUPS 1.2 and higher (Mac OS X 10.5 and higher) also
+ 8 bits per color. CUPS 1.2 and higher (OS X 10.5 and higher) also
supports 16 bits per color.</LI>
<LI>Rows per band. In the example file, we define 0 rows per band to
Raster printer driver documentation for CUPS.
- Copyright 2007-2010 by Apple Inc.
+ Copyright 2007-2012 by Apple Inc.
Copyright 1997-2007 by Easy Software Products.
These coded instructions, statements, and computer programs are the
<h1 class='title'>Developing Raster Printer Drivers</h1>
-<p>This document describes how to develop printer drivers for raster printers. Topics include: <a href='#BASICS'>printer driver basics</a>, <a href='#CREATE'>creating new PPD files</a>, <a href='#FILTERS'>using filters</a>, <a href='#COLOR'>implementing color management</a>, and <a href='#MACOSX'>adding Mac OS X features</a>.</p>
+<p>This document describes how to develop printer drivers for raster printers. Topics include: <a href='#BASICS'>printer driver basics</a>, <a href='#CREATE'>creating new PPD files</a>, <a href='#FILTERS'>using filters</a>, <a href='#COLOR'>implementing color management</a>, and <a href='#MACOSX'>adding OS X features</a>.</p>
<div class='summary'><table summary='General Information'>
<tbody>
<li><a href="#CREATING">Creating New PPD Files</a></li>
<li><a href="#FILTERS">Using Filters</a></li>
<li><a href="#COLOR">Implementing Color Management</a></li>
-<li><a href="#MACOSX">Adding Mac OS X Features</a></li>
+<li><a href="#MACOSX">Adding OS X Features</a></li>
</ul>
<h2 class='title'><a name='BASICS'>Printer Driver Basics</a></h2>
<p>The options used for profile selection can be customized using the <tt>cupsICCQualifier2</tt> and <tt>cupsICCQualifier3</tt> attributes.</p>
-<h3><span class='info'>Since Mac OS X 10.5</span>Custom Color Matching Support</h3>
+<h3><span class='info'>Since OS X 10.5</span>Custom Color Matching Support</h3>
-<p>Mac OS X printer drivers that are based on an existing standard RGB colorspace can tell the system to use the corresponding colorspace instead of an arbitrary ICC color profile when doing color management. The <a href='#APCustom'><tt>APSupportsCustomColorMatching</tt></a> and <tt>APDefaultCustomColorMatchingProfile</tt> attributes can be used to enable this mode:</p>
+<p>OS X printer drivers that are based on an existing standard RGB colorspace can tell the system to use the corresponding colorspace instead of an arbitrary ICC color profile when doing color management. The <a href='#APCustom'><tt>APSupportsCustomColorMatching</tt></a> and <tt>APDefaultCustomColorMatchingProfile</tt> attributes can be used to enable this mode:</p>
<pre class='example'>
<a href='ref-ppdcfile.html#Attribute'>Attribute</a> APSupportsCustomColorMatching "" true
</pre>
-<h2 class='title'><a name='MACOSX'>Adding Mac OS X Features</a></h2>
+<h2 class='title'><a name='MACOSX'>Adding OS X Features</a></h2>
-<p>Mac OS X printer drivers can provide <a href='spec-ppd.html#MACOSX'>additional attributes</a> to specify additional option panes in the print dialog, an image of the printer, a help book, and option presets for the driver software:</p>
+<p>OS X printer drivers can provide <a href='spec-ppd.html#MACOSX'>additional attributes</a> to specify additional option panes in the print dialog, an image of the printer, a help book, and option presets for the driver software:</p>
<pre class='example'>
<a href='ref-ppdcfile.html#Attribute'>Attribute</a> APDialogExtension "" /Library/Printers/Vendor/filename.plugin
<H3>Description</H3>
-<P>The <CODE>Info</CODE> directive defines the string for the
+<P>The <CODE>Info</CODE> directive defines the string for the
<VAR>printer-info</VAR> attribute. It is normally set using the
<CODE>lpadmin(8)</CODE> command:</P>
<H3>Description</H3>
-<P>The <CODE>KLimit</CODE> directive defines the value of the
+<P>The <CODE>KLimit</CODE> directive defines the value of the
<VAR>job-k-limit</VAR> attribute. It is normally set using the
<CODE>lpadmin(8)</CODE> command:</P>
<H3>Description</H3>
-<P>The <CODE>Location</CODE> directive defines the string for the
+<P>The <CODE>Location</CODE> directive defines the string for the
<VAR>printer-location</VAR> attribute. It is normally set using the
<CODE>lpadmin(8)</CODE> command:</P>
<H3>Description</H3>
-<P>The <CODE>PageLimit</CODE> directive defines the value of the
+<P>The <CODE>PageLimit</CODE> directive defines the value of the
<VAR>job-page-limit</VAR> attribute. It can be set using the
<CODE>lpadmin(8)</CODE> command:</P>
<PRE CLASS="command">
<Class name>
...
- StateMessage Ready to print.
+ StateMessage Class is lonely.
</Class>
</PRE>
StateMessage Class busy; will retry in 10 seconds...
StateMessage Class is busy; retrying print job...
StateMessage Print file accepted - job ID id_number.
-StateMessage Ready to print.
StateMessage Waiting for job to complete
</PRE>
<P>The default setting is <VAR>IfRequested</VAR>.</P>
-<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.6</SPAN><A NAME="GSSServiceName">GSSServiceName</A></H2>
+<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.6/OS X 10.8</SPAN><A NAME="GSSServiceName">GSSServiceName</A></H2>
<H3>Examples</H3>
<BLOCKQUOTE><B>Note:</B>
<P>Only one <CODE>ServerName</CODE> directive may appear. If multiple names are
-present, only the last one is used. This directive is not supported on Mac OS X 10.7 or later.</P>
+present, only the last one is used. This directive is not supported on OS X 10.7 or later.</P>
</BLOCKQUOTE>
-<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.6</SPAN><A NAME="User">User</A></H2>
+<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.6/OS X 10.8</SPAN><A NAME="User">User</A></H2>
<H3>Examples</H3>
<BLOCKQUOTE><B>Note:</B>
-<P>The specification of time units ("w" for weeks, "h" for hours, etc.) in the various time interval directives is new in CUPS 1.6. Prior releases of CUPS only supported time intervals in seconds.</P>
+<P>The specification of time units ("w" for weeks, "h" for hours, etc.) in the various time interval directives is new in CUPS 1.6/OS X 10.8. Prior releases of CUPS only supported time intervals in seconds.</P>
</BLOCKQUOTE>
default setting is <CODE>No</CODE>.</P>
-<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/Mac OS X 10.5</SPAN><A NAME="BrowseLocalProtocols">BrowseLocalProtocols</A></H2>
+<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/OS X 10.5</SPAN><A NAME="BrowseLocalProtocols">BrowseLocalProtocols</A></H2>
<H3>Examples</H3>
for data files.</P>
-<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/Mac OS X 10.5</SPAN><A NAME="DefaultAuthType">DefaultAuthType</A></H2>
+<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/OS X 10.5</SPAN><A NAME="DefaultAuthType">DefaultAuthType</A></H2>
<H3>Examples</H3>
username. The default is <CODE>Basic</CODE>.</P>
-<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/Mac OS X 10.5</SPAN><A NAME="DefaultEncryption">DefaultEncryption</A></H2>
+<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/OS X 10.5</SPAN><A NAME="DefaultEncryption">DefaultEncryption</A></H2>
<H3>Examples</H3>
is "en" for English.</P>
-<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.4/Mac OS X 10.6</SPAN><A NAME="DefaultPaperSize">DefaultPaperSize</A></H2>
+<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.4/OS X 10.6</SPAN><A NAME="DefaultPaperSize">DefaultPaperSize</A></H2>
<H3>Examples</H3>
size.</P>
-<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/Mac OS X 10.5</SPAN><A NAME="DefaultPolicy">DefaultPolicy</A></H2>
+<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/OS X 10.5</SPAN><A NAME="DefaultPolicy">DefaultPolicy</A></H2>
<H3>Examples</H3>
and other job operations.</P>
-<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/Mac OS X 10.5</SPAN><A NAME="DefaultShared">DefaultShared</A></H2>
+<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/OS X 10.5</SPAN><A NAME="DefaultShared">DefaultShared</A></H2>
<H3>Examples</H3>
HREF="#Limit"><CODE>Limit</CODE></A> section.</P>
-<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.4/Mac OS X 10.6</SPAN><A NAME="DirtyCleanInterval">DirtyCleanInterval</A></H2>
+<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.4/OS X 10.6</SPAN><A NAME="DirtyCleanInterval">DirtyCleanInterval</A></H2>
<H3>Examples</H3>
information to the system log instead of a plain file.</P>
-<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.3/Mac OS X 10.5</SPAN><A NAME="ErrorPolicy">ErrorPolicy</A></H2>
+<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.3/OS X 10.5</SPAN><A NAME="ErrorPolicy">ErrorPolicy</A></H2>
<H3>Examples</H3>
-<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.4/Mac OS X 10.6</SPAN><A NAME="FatalErrors">FatalErrors</A></H2>
+<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.4/OS X 10.6</SPAN><A NAME="FatalErrors">FatalErrors</A></H2>
<H3>Examples</H3>
<CODE>nobody</CODE>.</P>
-<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.6</SPAN><A NAME="GSSServiceName">GSSServiceName</A></H2>
+<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.6/OS X 10.8</SPAN><A NAME="GSSServiceName">GSSServiceName</A></H2>
<H3>Examples</H3>
HREF="#Policy"><CODE>Policy</CODE></A> section.</P>
-<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/Mac OS X 10.5</SPAN><A NAME="JobRetryInterval">JobRetryInterval</A></H2>
+<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/OS X 10.5</SPAN><A NAME="JobRetryInterval">JobRetryInterval</A></H2>
<H3>Examples</H3>
<P>The default is <CODE>30</CODE> (30 seconds).</P>
-<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.4/Mac OS X 10.6</SPAN><A NAME="JobKillDelay">JobKillDelay</A></H2>
+<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.4/OS X 10.6</SPAN><A NAME="JobKillDelay">JobKillDelay</A></H2>
<H3>Examples</H3>
<P>The default is <CODE>30</CODE> (30 seconds).</P>
-<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/Mac OS X 10.5</SPAN><A NAME="JobRetryLimit">JobRetryLimit</A></H2>
+<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/OS X 10.5</SPAN><A NAME="JobRetryLimit">JobRetryLimit</A></H2>
<H3>Examples</H3>
Apache.</P>
-<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/Mac OS X 10.5</SPAN><A NAME="LimitIPP">Limit (Policy)</A></H2>
+<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/OS X 10.5</SPAN><A NAME="LimitIPP">Limit (Policy)</A></H2>
<H3>Examples</H3>
</BLOCKQUOTE>
-<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.6</SPAN><A NAME="MaxHoldTime">MaxHoldTime</A></H2>
+<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.6/OS X 10.8</SPAN><A NAME="MaxHoldTime">MaxHoldTime</A></H2>
<H3>Examples</H3>
default setting is 0.</P>
-<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.6</SPAN><A NAME="MaxJobTime">MaxJobTime</A></H2>
+<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.6/OS X 10.8</SPAN><A NAME="MaxJobTime">MaxJobTime</A></H2>
<H3>Examples</H3>
directive instead.</P>
-<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.4/Mac OS X 10.6</SPAN><A NAME="MultipleOperationTimeout">MultipleOperationTimeout</A></H2>
+<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.4/OS X 10.6</SPAN><A NAME="MultipleOperationTimeout">MultipleOperationTimeout</A></H2>
<H3>Examples</H3>
<P>The default is "%p %u %j %T %P %C %{job-billing} %{job-originating-host-name} %{job-name} %{media} %{sides}".</P>
-<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/Mac OS X 10.5</SPAN><A NAME="PassEnv">PassEnv</A></H2>
+<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/OS X 10.5</SPAN><A NAME="PassEnv">PassEnv</A></H2>
<H3>Examples</H3>
environment variables to child processes.</P>
-<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/Mac OS X 10.5</SPAN><A NAME="Policy">Policy</A></H2>
+<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/OS X 10.5</SPAN><A NAME="Policy">Policy</A></H2>
<H3>Examples</H3>
<H3>Description</H3>
<P>The <CODE>PrintcapFormat</CODE> directive controls the output format of the
-printcap file. The default is to generate the plist format on Mac OS X, the
+printcap file. The default is to generate the plist format on OS X, the
Solaris format on Solaris, and the BSD format on other operating systems.</P>
</TABLE></DIV>
-<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/Mac OS X 10.5</SPAN><A NAME="SetEnv">SetEnv</A></H2>
+<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/OS X 10.5</SPAN><A NAME="SetEnv">SetEnv</A></H2>
<H3>Examples</H3>
<P>The default timeout is <CODE>5m</CODE> (five minutes).</P>
-<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/Mac OS X 10.5</SPAN><A NAME="UseNetworkDefault">UseNetworkDefault</A></H2>
+<H2 CLASS="title"><SPAN CLASS="info">CUPS 1.2/OS X 10.5</SPAN><A NAME="UseNetworkDefault">UseNetworkDefault</A></H2>
<H3>Examples</H3>
...
#else
...
-#endif
+#endif
</pre>
<h3>Description</h3>
...
#else
...
-#endif
+#endif
</pre>
<h3>Description</h3>
...
#else
...
-#endif
+#endif
</pre>
<h3>Description</h3>
...
#else
...
-#endif
+#endif
</pre>
<h3>Description</h3>
</ul>
-<p>Points are assumed if no units are specified.
+<p>Points are assumed if no units are specified.
<h3>See Also</h3>
<p>The <code>#po</code> directive defines a message catalog to use for the
given POSIX language abbreviation. Multiple <code>#po</code> directives can be
specified to list multiple catalogs. The filename can be an absolute path or
-relative to the driver information file. GNU gettext and Mac OS X .strings
+relative to the driver information file. GNU gettext and OS X .strings
files are supported.</p>
either the word <code>ROM</code> or <code>Disk</code>.</p>
<p>Device fonts differ from fonts defined using the <a
-href='#_font'><code>#font</code></a> directive in that they are
+href='#_font'><code>#font</code></a> directive in that they are
automatically associated with the current driver. Fonts defined
using <code>#font</code> may be imported into the current driver
using the <code>Font *</code> form of this directive.</p>
<pre>
Option Punch Boolean AnySetup 10
-Option "fooFinish/Finishing Option" PickOne DocumentSetup 10
+Option "fooFinish/Finishing Option" PickOne DocumentSetup 10
</pre>
<h3>Description</h3>
<h3>Description</h3>
<p>The <code>SimpleColorProfile</code> directive creates a
-matrix-based <a href="#ColorProfile"><code>ColorProfile</code></a>.
+matrix-based <a href="#ColorProfile"><code>ColorProfile</code></a>.
The resolution and mediatype arguments specify the
<code>Resolution</code> and <code>MediaType</code> choices which use the
profile; the hyphen (<code>-</code>) is used to specify that any
<BR>
- <BR><A NAME="REF_COLOR_APPLE">*</A> = This colorspace is not supported on Mac OS X prior to 10.4.
- <BR><A NAME="REF_COLOR_APPLE2">**</A> = This colorspace is not supported on Mac OS X.</LI>
+ <BR><A NAME="REF_COLOR_APPLE">*</A> = This colorspace is not supported on OS X prior to 10.4.
+ <BR><A NAME="REF_COLOR_APPLE2">**</A> = This colorspace is not supported on OS X.</LI>
</UL>
<BR><A NAME="REF_COLOR_APPLE2">*</A> = This color order
is not supported by the current Apple RIP filters and
should not be used when developing printer drivers for
- Mac OS X.</LI>
+ OS X.</LI>
</UL>
<H3>Description</H3>
-<P>The <CODE>DeviceURI</CODE> directive defines the value of the
+<P>The <CODE>DeviceURI</CODE> directive defines the value of the
<VAR>device-uri-attribute</VAR> attribute. It is normally set
using the <CODE>lpadmin(8)</CODE> command:</P>
<H3>Description</H3>
-<P>The <CODE>Info</CODE> directive defines the string for the
+<P>The <CODE>Info</CODE> directive defines the string for the
<VAR>printer-info</VAR> attribute. It is normally set using the
<CODE>lpadmin(8)</CODE> command:</P>
<H3>Description</H3>
-<P>The <CODE>KLimit</CODE> directive defines the value of the
+<P>The <CODE>KLimit</CODE> directive defines the value of the
<VAR>job-k-limit</VAR> attribute. It is normally set using the
<CODE>lpadmin(8)</CODE> command:</P>
<H3>Description</H3>
-<P>The <CODE>Location</CODE> directive defines the string for the
+<P>The <CODE>Location</CODE> directive defines the string for the
<VAR>printer-location</VAR> attribute. It is normally set using the
<CODE>lpadmin(8)</CODE> command:</P>
<H3>Description</H3>
-<P>The <CODE>PageLimit</CODE> directive defines the value of the
+<P>The <CODE>PageLimit</CODE> directive defines the value of the
<VAR>job-page-limit</VAR> attribute. It can be set using the
<CODE>lpadmin(8)</CODE> command:</P>
<PRE CLASS="command">
<Printer name>
...
- StateMessage Ready to print.
+ StateMessage Printer is lonely.
</Printer>
</PRE>
StateMessage Printer busy; will retry in 10 seconds...
StateMessage Printer is busy; retrying print job...
StateMessage Print file accepted - job ID id_number.
-StateMessage Ready to print.
StateMessage Waiting for job to complete
</PRE>
<H3>Description</H3>
<P>The <CODE>Community</CODE> directive specifies a community
-name to use when discovering printers. Multiple
-<CODE>Community</CODE> lines can be provided to scan different
-SNMP communities.</P>
+name to use when discovering printers and reporting status and supply
+levels for network printers.</P>
<P>The default community is "public".</P>
<h2><a name="BASICS">The Basics</h2>
-<p>A "server" is any machine that communicates directly to a printer. A "client"
-is any machine that sends print jobs to a server for final printing. Clients can
-also be servers if they communicate directly with any printers of their own.</p>
+<p>A "server" is any machine that communicates directly to a printer. A "client" is any machine that sends print jobs to a server for final printing. Clients can also be servers if they communicate directly with any printers of their own.</p>
-<p>By default, CUPS uses the Internet Printing Protocol (IPP) to send jobs from
-a client to a server. When printing to legacy print servers you may also use the
-Line Printer Daemon (LPD) when printing to older UNIX-based servers or Server
-Message Block (SMB) when printing to Windows<sup>®</sup> servers.</p>
+<p>By default, CUPS uses the Internet Printing Protocol (IPP) to send jobs from a client to a server. When printing to legacy print servers you may also use the Line Printer Daemon (LPD) protocol when printing to older UNIX-based servers or Server Message Block (SMB) when printing to Windows<sup>®</sup> servers.</p>
-<p>Clients can automatically discover and access shared printers via CUPS
-browsing, IPP, Service Location Protocol (SLP), and Lightweight Directory Access
-Protocol (LDAP). DNS Service Discovery (DNS-SD a.k.a. Bonjour<sup>®</sup>)
-and SMB browsing can also be used to manually discover and access shared
-printers.</p>
+<p>Clients can automatically discover and access shared printers via DNS Service Discovery (DNS-SD a.k.a. Bonjour<sup>®</sup>). SMB browsing can also be used to manually discover and access shared printers when <a href="http://www.samba.org/">Samba</a> is installed.</p>
<h2><a name="SERVER_CONFIG">Configuring the Server</a></h2>
-<p>You must enable printer sharing on the server before clients can print
-through it. The simplest way to do this is to use the
-<a href="man-cupsctl.html">cupsctl(8)</a> command on the server:</p>
+<p>You must enable printer sharing on the server before clients can print through it. The simplest way to do this is to use the <a href="man-cupsctl.html">cupsctl(8)</a> command on the server:</p>
<pre class="command">
cupsctl --share-printers
</pre>
-<p>By default, the above command will allow printing from other clients on the
-same subnet as your server. To allow printing from any subnet, use the following
-command instead:</p>
+<p>By default, the above command will allow printing from other clients on the same subnet as your server. To allow printing from any subnet, use the following command instead:</p>
<pre class="command">
cupsctl --share-printers --remote-any
</pre>
-<p>Next, you need to choose which protocols to use for printer sharing. The
-default is CUPS browsing and DNS-SD on Mac OS X and CUPS browsing alone on
-other platforms. To set the sharing protocols, run the <b>cupsctl</b> command
-to set the
-<a href="ref-cupsd-conf.html#BrowseLocalProtocols">BrowseLocalProtocols</a>
-value. For example, run the following command to allow shared printing via
-CUPS, DNS-SD, LPD, and SMB:</p>
+<p>Next, tag each printer that you want to share using the <a href="man-lpadmin.html">lpadmin(8)</a> command on the server, for example:</p>
<pre class="command">
-cupsctl 'BrowseLocalProtocols="cups dnssd lpd smb"'
+lpadmin -p printer -o printer-is-shared=true
</pre>
-
-<h2><a name="AUTO_CUPS">Automatic Configuration using CUPS Browsing</a></h2>
-
-<p>CUPS browsing works by periodically broadcasting information about printers
-that are being shared to client systems on the same subnet. Each client
-maintains its own list of shared printers, and when more than one server shares
-the same printer (or the same kind of printer) the client uses all of the
-servers and printers to provide high-availability and failsafe printing.</p>
-
-<p>To configure printers on the same subnet, <em>do nothing</em>. Each client
-should see the available printers within 30 seconds automatically. The printer
-and class lists are updated automatically as printers and servers are added or
-removed.</p>
-
-<blockquote><b>Note:</b>
-
-<p>Due to user interface changes in Mac OS X 10.5, CUPS shared printers will not
-automatically appear in the print dialog. Instead, you must first run the
-following command to enable CUPS browsing on your system:</p>
-
-<pre class="command">
-cupsctl BrowseRemoteProtocols=cups
-</pre>
-
-<p>Then choose each of the CUPS shared printers you want to see in the print
-dialog by adding them, either from the <var>Add Printer...</var> item in the
-print dialog or from the <var>Print & Fax</var> preference pane in the
-<var>System Preferences</var> window.</p>
-
-</blockquote>
-
-<h3><a name="BROWSE_POLL">Seeing Printers on Other Subnets</a></h3>
-
-<p>You can automatically access printers on other subnets by adding
-<a href="ref-cupsd-conf.html#BrowsePoll"><code>BrowsePoll</code></a> lines
-to the <var>cupsd.conf</var> file on your local system. For a single
-server you can use the <b>cupsctl</b> command:</p>
+<p>You can require authentication for shared printing by setting the policy on each printer, for example:</p>
<pre class="command">
-cupsctl BrowsePoll=server:port
-</pre>
-
-<p>For multiple servers, use the CUPS web interface (http://localhost:631/admin)
-to edit the configuration file instead. Enter one <code>BrowsePoll</code> line
-per server at the bottom of the file, as follows:</p>
-
-<pre class="example">
-BrowsePoll server1:port
-BrowsePoll server2:port
-BrowsePoll server3:port
-</pre>
-
-<p>If you have more than one client on your subnet that wants to see the
-printers on those servers, add a
-<a href="ref-cupsd-conf.html#BrowseRelay"><code>BrowseRely</code></a> line
-to the <var>cupsd.conf</var> file on your local system using the <b>cupsctl</b>
-command:</p>
-
-<pre class="command">
-cupsctl 'BrowseRelay="127.0.0.1 @LOCAL"'
-</pre>
-
-<p>or CUPS web interface (again, at the bottom of the file):</p>
-
-<pre class="example">
-BrowseRelay 127.0.0.1 @LOCAL
+lpadmin -p printer -o printer-op-policy=authenticated
</pre>
<h2><a name="AUTO_IPP">Automatic Configuration using IPP</a></h2>
+<blockquote><b>Note:</b>
+<p>This method of configuration does not work on OS X 10.7 or later because sandboxed applications do not always have direct network access.</p>
+</blockquote>
+
<p>CUPS can be configured to run without a local spooler and send all jobs to a
single server. However, if that server goes down then all printing will be
disabled. Use this configuration only as absolutely necessary.</p>
<h2><a name="MANUAL">Manual Configuration of Print Queues</a></h2>
+<blockquote><b>Note:</b>
+<p>This method of configuration does not work on OS X 10.7 or later because sandboxed applications do not always have direct network access.</p>
+</blockquote>
+
<p>The most tedious method of configuring client machines is to configure
each remote queue by hand using the <a href="man-lpadmin.html">lpadmin(8)</a>
command:</p>
<P>File and directory names may not exceed 16 characters in
length to ensure compatibility with older UNIX filesystems. In
-addition, to avoid problems with case-insensitive filesystems,
+addition, to avoid problems with case-insensitive filesystems,
you may not use names which differ only by case, for example
"ReadMe" and "README" are not allowed in the same directory.</P>
<P>Binary packages are not generally distributed by the CUPS
team, however the <VAR>packaging/cups.spec</VAR> and
<VAR>packaging/cups.list</VAR> files may be used to create binary
-packages on Linux, Mac OS X, and UNIX. The
+packages on Linux, OS X, and UNIX. The
<VAR>packaging/cups.spec</VAR> file produces a binary package
using the <CODE>rpmbuild(8)</CODE> software:</P>
</TR>
<TR>
<TD>osx</TD>
- <TD>Mac OS X Install</TD>
+ <TD>OS X Install</TD>
</TR>
<TR>
<TD>pkg</TD>
<P>Finally, the <VAR>tools/testrpm</VAR> and
<VAR>tools/testosx</VAR> scripts can be used to create binary
packages from the current working copy for testing on Linux and
-Mac OS X, respectively:</P>
+OS X, respectively:</P>
<PRE CLASS="command">
tools/testrpm
<LI><CODE>$(name)</CODE>; substitutes the value of "name",</LI>
<LI><CODE>($name:.old=.new)</CODE>; substitutes the value of "name"
with the filename extensions ".old" changed to ".new",</LI>
- <LI><CODE>$(MAKEFLAGS)</CODE>; substitutes the
+ <LI><CODE>$(MAKEFLAGS)</CODE>; substitutes the
command-line options passed to the program
without the leading hyphen (-),</LI>
<LI><CODE>$$</CODE>; substitutes a single <CODE>$</CODE> character,</LI>
<dl>
- <dt>"auth-info" (1setOf text(MAX)):<span class='info'>CUPS 1.3/Mac OS X 10.5</span>
+ <dt>"auth-info" (1setOf text(MAX)):<span class='info'>CUPS 1.3/OS X 10.5</span>
<dd>The client OPTIONALLY supplies one or more authentication values as specified by the "auth-info-required" attribute.
<dl>
- <dt>"auth-info" (1setOf text(MAX)):<span class='info'>CUPS 1.3/Mac OS X 10.5</span>
+ <dt>"auth-info" (1setOf text(MAX)):<span class='info'>CUPS 1.3/OS X 10.5</span>
<dd>The client OPTIONALLY supplies one or more authentication values as specified by the "auth-info-required" attribute.
<dd>The client MUST supply a URI for the specified printer and
a job ID number, or the job URI.
- <dt><span class="info">CUPS 1.4/Mac OS X 10.6</span>"purge-job" (boolean):
+ <dt><span class="info">CUPS 1.4/OS X 10.6</span>"purge-job" (boolean):
<dd>The client OPTIONALLY supplies this attribute. When true,
all job files (history and document) are purged. The default
<dd>The client MUST supply a URI for the specified printer or
"ipp://.../printers" for all printers and classes.
- <dt><span class="info">CUPS 1.2/Mac OS X 10.5</span>"requesting-user-name" (name(MAX)):
+ <dt><span class="info">CUPS 1.2/OS X 10.5</span>"requesting-user-name" (name(MAX)):
<dd>The client OPTIONALLY supplies this attribute to specify whose jobs
jobs are purged or canceled.
- <dt><span class="info">CUPS 1.2/Mac OS X 10.5</span>"my-jobs" (boolean):
+ <dt><span class="info">CUPS 1.2/OS X 10.5</span>"my-jobs" (boolean):
<dd>The client OPTIONALLY supplies this attribute to specify that only
the jobs owned by the requesting user are purged or canceled. The
default is false.
- <dt><span class="info">CUPS 1.2/Mac OS X 10.5</span>"purge-jobs" (boolean):
+ <dt><span class="info">CUPS 1.2/OS X 10.5</span>"purge-jobs" (boolean):
<dd>The client OPTIONALLY supplies this attribute to specify
whether the jobs are purged (true) or just canceled (false).
</dl>
-<h3 class='title'><span class='info'>CUPS 1.2/Mac OS X 10.5</span><a
+<h3 class='title'><span class='info'>CUPS 1.2/OS X 10.5</span><a
name='CREATE_PRINTER_SUBSCRIPTION'>Create-Printer-Subscription</a></h3>
<p>The Create-Printer-Subscription operation (0x0016) creates a
attributes as described in section 3.1.4.1 of the IPP Model and
Semantics document.
- <dt>"first-printer-name" (name(127)):<span class='info'>CUPS 1.2/Mac OS X 10.5</span>
+ <dt>"first-printer-name" (name(127)):<span class='info'>CUPS 1.2/OS X 10.5</span>
<dd>The client OPTIONALLY supplies this attribute to
select the first printer that is returned.
responds as if this attribute had been supplied with a value of
'all'.
- <dt>"requested-user-name" (name(127)) : <span class='info'>CUPS 1.2/Mac OS X 10.5</span>
+ <dt>"requested-user-name" (name(127)) : <span class='info'>CUPS 1.2/OS X 10.5</span>
<dd>The client OPTIONALLY supplies a user name that is used to filter
the returned printers.
<dl>
- <dt>"auth-info-required" (1setOf type2 keyword):<span class='info'>CUPS 1.3/Mac OS X 10.5</span>
+ <dt>"auth-info-required" (1setOf type2 keyword):<span class='info'>CUPS 1.3/OS X 10.5</span>
<dd>The client OPTIONALLY supplies one or more authentication keywords that are required to communicate with the printer/remote queue.
attributes as described in section 3.1.4.1 of the IPP Model and
Semantics document.
- <dt>"first-printer-name" (name(127)):<span class='info'>CUPS 1.2/Mac OS X 10.5</span>
+ <dt>"first-printer-name" (name(127)):<span class='info'>CUPS 1.2/OS X 10.5</span>
<dd>The client OPTIONALLY supplies this attribute to
select the first printer that is returned.
interested. If the client omits this attribute, the server responds as
if this attribute had been supplied with a value of 'all'.
- <dt>"requested-user-name" (name(127)) : <span class='info'>CUPS 1.2/Mac OS X 10.5</span>
+ <dt>"requested-user-name" (name(127)) : <span class='info'>CUPS 1.2/OS X 10.5</span>
<dd>The client OPTIONALLY supplies a user name that is used to filter
the returned printers.
<dl>
- <dt>"auth-info-required" (1setOf type2 keyword):<span class='info'>CUPS 1.3/Mac OS X 10.5</span>
+ <dt>"auth-info-required" (1setOf type2 keyword):<span class='info'>CUPS 1.3/OS X 10.5</span>
<dd>The client OPTIONALLY supplies one or more authentication keywords that are required to communicate with the printer/remote queue.
<dd>The client OPTIONALLY supplies a device class keyword to select
which devices are returned.
- <dt>"exclude-schemes" (1setOf name) :<span class='info'>CUPS 1.4/Mac OS X 10.6</span>
+ <dt>"exclude-schemes" (1setOf name) :<span class='info'>CUPS 1.4/OS X 10.6</span>
<dd>The client OPTIONALLY supplies a set of scheme names that the
requestor does not want to discover. If the client omits this attribute,
the server responds with devices of all schemes specified by
the "include-schemes" attribute.
- <dt>"include-schemes" (1setOf name) :<span class='info'>CUPS 1.4/Mac OS X 10.6</span>
+ <dt>"include-schemes" (1setOf name) :<span class='info'>CUPS 1.4/OS X 10.6</span>
<dd>The client OPTIONALLY supplies a set of scheme names that the
requestor wants to discover. If the client omits this attribute,
the client omits this attribute, the server responds as if this
attribute had been supplied with a value of 'all'.
- <dt>"timeout" (integer (1:MAX)) :<span class='info'>CUPS 1.4/Mac OS X 10.6</span>
+ <dt>"timeout" (integer (1:MAX)) :<span class='info'>CUPS 1.4/OS X 10.6</span>
<dd>The client OPTIONALLY supplies this attribute to limit the duration
of the lookup. The default timeout is 15 seconds.
attributes as described in section 3.1.4.1 of the IPP Model and
Semantics document.
- <dt>"exclude-schemes" (1setOf name) :<span class='info'>CUPS 1.4/Mac OS X 10.6</span>
+ <dt>"exclude-schemes" (1setOf name) :<span class='info'>CUPS 1.4/OS X 10.6</span>
<dd>The client OPTIONALLY supplies a set of scheme names that the
requestor does not want to list. If the client omits this attribute,
the server responds with PPDs of all schemes specified by the
"include-schemes" attribute.
- <dt>"include-schemes" (1setOf name) :<span class='info'>CUPS 1.4/Mac OS X 10.6</span>
+ <dt>"include-schemes" (1setOf name) :<span class='info'>CUPS 1.4/OS X 10.6</span>
<dd>The client OPTIONALLY supplies a set of scheme names that the
requestor wants to list. If the client omits this attribute, the server
<dd>The client OPTIONALLY supplies a printer manufacturer to select which PPDs are returned.
- <dt>"ppd-make-and-model" (text(127)):<span class='info'>CUPS 1.3/Mac OS X 10.5</span>
+ <dt>"ppd-make-and-model" (text(127)):<span class='info'>CUPS 1.3/OS X 10.5</span>
<dd>The client OPTIONALLY supplies a make and model to select which PPDs are returned.
- <dt>"ppd-model-number" (integer):<span class='info'>CUPS 1.3/Mac OS X 10.5</span>
+ <dt>"ppd-model-number" (integer):<span class='info'>CUPS 1.3/OS X 10.5</span>
<dd>The client OPTIONALLY supplies a model number to select which PPDs are returned.
- <dt>"ppd-natural-language" (naturalLanguage):<span class='info'>CUPS 1.3/Mac OS X 10.5</span>
+ <dt>"ppd-natural-language" (naturalLanguage):<span class='info'>CUPS 1.3/OS X 10.5</span>
<dd>The client OPTIONALLY supplies a language to select which PPDs are returned.
- <dt>"ppd-product" (text(127)):<span class='info'>CUPS 1.3/Mac OS X 10.5</span>
+ <dt>"ppd-product" (text(127)):<span class='info'>CUPS 1.3/OS X 10.5</span>
<dd>The client OPTIONALLY supplies a PostScript product string to select which PPDs are returned.
- <dt>"ppd-psversion" (text(127)):<span class='info'>CUPS 1.3/Mac OS X 10.5</span>
+ <dt>"ppd-psversion" (text(127)):<span class='info'>CUPS 1.3/OS X 10.5</span>
<dd>The client OPTIONALLY supplies a PostScript version string to select which PPDs are returned.
- <dt>"ppd-type" (type1 keyword):<span class='info'>CUPS 1.3/Mac OS X 10.5</span>
+ <dt>"ppd-type" (type1 keyword):<span class='info'>CUPS 1.3/OS X 10.5</span>
<dd>The client OPTIONALLY supplies a driver type to select which PPDs are returned.
</dl>
-<h3 class='title'><span class='info'>CUPS 1.2/Mac OS X 10.5</span><a name='CUPS_AUTHENTICATE_JOB'>CUPS-Authenticate-Job Operation</a></h3>
+<h3 class='title'><span class='info'>CUPS 1.2/OS X 10.5</span><a name='CUPS_AUTHENTICATE_JOB'>CUPS-Authenticate-Job Operation</a></h3>
<p>The CUPS-Authenticate-Job operation (0x400E) authenticates a print job for
printing, releasing the job if it is held. Typically this is used when printing
<dl>
- <dt>"auth-info" (1setOf text(MAX)):<span class='info'>CUPS 1.3/Mac OS X 10.5</span>
+ <dt>"auth-info" (1setOf text(MAX)):<span class='info'>CUPS 1.3/OS X 10.5</span>
<dd>The client OPTIONALLY supplies one or more authentication values as specified by the "auth-info-required" attribute.
- <dt>"job-hold-until" (keyword | name(MAX)):<span class='info'>CUPS 1.3/Mac OS X 10.5</span>
+ <dt>"job-hold-until" (keyword | name(MAX)):<span class='info'>CUPS 1.3/OS X 10.5</span>
<dd>The client OPTIONALLY supplies a new job-hold-until value for the
job. If specified and not the "no-hold" value, the job is held instead
</dl>
-<h3 class='title'><span class='info'>CUPS 1.3/Mac OS X 10.5</span><a name='CUPS_GET_PPD'>CUPS-Get-PPD Operation</a></h3>
+<h3 class='title'><span class='info'>CUPS 1.3/OS X 10.5</span><a name='CUPS_GET_PPD'>CUPS-Get-PPD Operation</a></h3>
<p>The CUPS-Get-PPD operation (0x400F) gets a PPD file from the
server. The PPD file can be specified using a <tt>ppd-name</tt>
<p>If the status code is <tt>successful-ok</tt>, the PPD file follows
the end of the IPP response.</p>
-<h3 class='title'><span class='info'>CUPS 1.4/Mac OS X 10.6</span><a name='CUPS_GET_DOCUMENT'>CUPS-Get-Document Operation</a></h3>
+<h3 class='title'><span class='info'>CUPS 1.4/OS X 10.6</span><a name='CUPS_GET_DOCUMENT'>CUPS-Get-Document Operation</a></h3>
<p>The CUPS-Get-Document operation (0x4027) gets a document file from a
job on the server. The document file is specified using the
</ul>
-<h4><a name="device-id">device-id (text(127))</a><span class="info">CUPS 1.2/Mac OS X 10.5</span></h4>
+<h4><a name="device-id">device-id (text(127))</a><span class="info">CUPS 1.2/OS X 10.5</span></h4>
<p>The device-id attribute specifies the IEEE-1284 device ID
string for the device.</p>
<p>The device-info attribute specifies a human-readable string describing
the device, e.g. "Parallel Port #1".
-<h4><a name="device-location">device-location (text(127))</a><span class="info">CUPS 1.4/Mac OS X 10.6</span></h4>
+<h4><a name="device-location">device-location (text(127))</a><span class="info">CUPS 1.4/OS X 10.6</span></h4>
<p>The device-location attribute specifies the physical location of the
printer.
<h3 class='title'><a name='JOB_TEMPLATE_ATTRIBUTES'>Job Template Attributes</a></h3>
-<h4><a name="auth-info">auth-info (1setOf text(MAX))</a><span class="info">CUPS 1.3/Mac OS X 10.5</span></h4>
+<h4><a name="auth-info">auth-info (1setOf text(MAX))</a><span class="info">CUPS 1.3/OS X 10.5</span></h4>
<p>The auth-info attribute specifies the authentication information to use when printing to a remote device. The order and content of each text value is specifed by the <a href="#auth-info-required">auth-info-required</a> printer attribute.
printing text files. Only the values 10, 12, and 17 are currently
supported. The default value is 10.
-<h4><a name="fit-to-page">fit-to-page (boolean)</a><span class="info">CUPS 1.4/Mac OS X 10.6</span></h4>
+<h4><a name="fit-to-page">fit-to-page (boolean)</a><span class="info">CUPS 1.4/OS X 10.6</span></h4>
<p>The fit-to-page attribute specifies whether to scale documents to fit on the
selected media (fit-to-page=true) or use the physical size specified in the
specified time is less than the current time, the job is held until the
next day.
-<h4><a name="job-media-progress">job-media-progress (integer(0:100))</a><span class='info'>CUPS 1.4/Mac OS X 10.6</span></h4>
+<h4><a name="job-media-progress">job-media-progress (integer(0:100))</a><span class='info'>CUPS 1.4/OS X 10.6</span></h4>
<p>The job-media-progress attribute specifies the percentage of completion of
the current page. It is only valid when the job-state attribute has the
"processing" value (5).</p>
-<h4><a name="job-printer-state-message">job-printer-state-message (text(MAX))</a><span class='info'>CUPS 1.3/Mac OS X 10.5</span></h4>
+<h4><a name="job-printer-state-message">job-printer-state-message (text(MAX))</a><span class='info'>CUPS 1.3/OS X 10.5</span></h4>
<p>The job-printer-state-message attribute provides the last known value of the printer-state-message attribute for the printer that processed (or is processing) the job.</p>
-<h4><a name="job-printer-state-reasons">job-printer-state-reasons (1setOf type2 keyword)</a><span class='info'>CUPS 1.3/Mac OS X 10.5</span></h4>
+<h4><a name="job-printer-state-reasons">job-printer-state-reasons (1setOf type2 keyword)</a><span class='info'>CUPS 1.3/OS X 10.5</span></h4>
<p>The job-printer-state-reasons attribute provides the last known value of the printer-state-reasons attribute for the printer that processed (or is processing) the job.</p>
make and model is not specified in the PPD file then the ModelName or
ShortNickName attributes are used instead.
-<h4><a name="ppd-model-number">ppd-model-number (integer)</a><span class="info">CUPS 1.3/Mac OS X 10.5</span></h4>
+<h4><a name="ppd-model-number">ppd-model-number (integer)</a><span class="info">CUPS 1.3/OS X 10.5</span></h4>
<p>The ppd-model-number attribute provides the <tt>cupsModelNumber</tt> value from the PPD file.
<p>The ppd-product attribute specifies the Product attribute values in the PPD file.
-<h4><a name="ppd-psversion">ppd-psversion (1setOf text(127))</a><span class="info">CUPS 1.3/Mac OS X 10.5</span></h4>
+<h4><a name="ppd-psversion">ppd-psversion (1setOf text(127))</a><span class="info">CUPS 1.3/OS X 10.5</span></h4>
<p>The ppd-product attribute specifies the PSVersion attribute values in the PPD file.
-<h4><a name="ppd-type">ppd-type (type1 keyword)</a><span class="info">CUPS 1.3/Mac OS X 10.5</span></h4>
+<h4><a name="ppd-type">ppd-type (type1 keyword)</a><span class="info">CUPS 1.3/OS X 10.5</span></h4>
<p>The ppd-type attribute specifies the type of driver described by the PPD file:</p>
<h3 class='title'><a name='PRINTER_ATTRIBUTES'>Printer Attributes</a></h3>
-<h4><a name="auth-info-required">auth-info-required (1setOf type2 keyword)</a><span class="info">CUPS 1.3/Mac OS X 10.5</span></h4>
+<h4><a name="auth-info-required">auth-info-required (1setOf type2 keyword)</a><span class="info">CUPS 1.3/OS X 10.5</span></h4>
<p>The auth-info-required attribute specifies the authentication information that is required for printing a job. The following keywords are recognized:</p>
<p>The job-sheets-supported attribute specifies the available banner files.
There will always be at least one banner file available called "none".
-<h4><a name="marker-change-time">marker-change-time (integer)</a><span class='info'>CUPS 1.3/Mac OS X 10.5</span></h4>
+<h4><a name="marker-change-time">marker-change-time (integer)</a><span class='info'>CUPS 1.3/OS X 10.5</span></h4>
<p>The marker-change-time attribute specifies the printer-up-time value when
the last change to the marker-colors, marker-levels, marker-message,
marker-names, or marker-types attributes was made.</p>
-<h4><a name="marker-colors">marker-colors (1setof name(MAX))</a><span class='info'>CUPS 1.3/Mac OS X 10.5</span></h4>
+<h4><a name="marker-colors">marker-colors (1setof name(MAX))</a><span class='info'>CUPS 1.3/OS X 10.5</span></h4>
<p>The marker-colors attribute specifies the color(s) for each supply in the
printer. It is only available when the driver provides supply levels. The
color is either "none" or one or more hex-encoded sRGB colors of the form
"#RRGGBB".</p>
-<h4><a name="marker-high-levels">marker-high-levels (1setof integer(0:100))</a><span class='info'>CUPS 1.4/Mac OS X 10.6</span></h4>
+<h4><a name="marker-high-levels">marker-high-levels (1setof integer(0:100))</a><span class='info'>CUPS 1.4/OS X 10.6</span></h4>
<p>The marker-high-levels attribute specifies the supply levels that indicate
a near-full condition. A value of 100 should be used for supplies that are
consumed/emptied, e.g. ink cartridges.</p>
-<h4><a name="marker-levels">marker-levels (1setof integer(-3:100))</a><span class='info'>CUPS 1.3/Mac OS X 10.5</span></h4>
+<h4><a name="marker-levels">marker-levels (1setof integer(-3:100))</a><span class='info'>CUPS 1.3/OS X 10.5</span></h4>
<p>The marker-levels attribute specifies the current supply levels for the
printer. It is only available when the driver provides supply levels. A
indicates the level is unknown but has not yet reached capacity. Values from 0
to 100 indicate the corresponding percentage.</p>
-<h4><a name="marker-low-levels">marker-low-levels (1setof integer(0:100))</a><span class='info'>CUPS 1.4/Mac OS X 10.6</span></h4>
+<h4><a name="marker-low-levels">marker-low-levels (1setof integer(0:100))</a><span class='info'>CUPS 1.4/OS X 10.6</span></h4>
<p>The marker-low-levels attribute specifies the supply levels that indicate
a near-empty condition. A value of 0 should be used for supplies that are
filled, e.g. waste ink tanks.</p>
-<h4><a name="marker-message">marker-message (text(MAX))</a><span class='info'>CUPS 1.4/Mac OS X 10.6</span></h4>
+<h4><a name="marker-message">marker-message (text(MAX))</a><span class='info'>CUPS 1.4/OS X 10.6</span></h4>
<p>The marker-message attribute provides a human-readable status message
for the current supply levels, e.g. "12 pages of ink remaining." It is only
available when the driver provides supply levels.</p>
-<h4><a name="marker-names">marker-names (1setof name(MAX))</a><span class='info'>CUPS 1.3/Mac OS X 10.5</span></h4>
+<h4><a name="marker-names">marker-names (1setof name(MAX))</a><span class='info'>CUPS 1.3/OS X 10.5</span></h4>
<p>The marker-names attribute specifies the name(s) for each supply in the
printer. It is only available when the driver provides supply levels.</p>
-<h4><a name="marker-types">marker-types (1setof type3 keyword)</a><span class='info'>CUPS 1.3/Mac OS X 10.5</span></h4>
+<h4><a name="marker-types">marker-types (1setof type3 keyword)</a><span class='info'>CUPS 1.3/OS X 10.5</span></h4>
<p>The marker-types attribute specifies the type(s) of each supply in the
printer. It is only available when the driver provides supply levels. The
<p>The port-monitor-supported attribute specifies the available port monitors.
-<h4><a name="printer-commands">printer-commands (1setOf Type3 keyword)</a><span class='info'>CUPS 1.4/Mac OS X 10.6</span></h4>
+<h4><a name="printer-commands">printer-commands (1setOf Type3 keyword)</a><span class='info'>CUPS 1.4/OS X 10.6</span></h4>
<p>The printer-commands attribute specifies the commands that are supported
by the CUPS command file filter. The keyword "none" indicates that no commands
are supported.</p>
-<h4><a name="printer-dns-sd-name">printer-dns-sd-name (name(MAX) | noValue)</a><span class='info'>CUPS 1.4/Mac OS X 10.6</span></h4>
+<h4><a name="printer-dns-sd-name">printer-dns-sd-name (name(MAX) | noValue)</a><span class='info'>CUPS 1.4/OS X 10.6</span></h4>
<p>The printer-dns-sd-name attribute specifies the registered DNS-SD service
name for the printer. If the printer is not being shared using this protocol,
permissions. CUPS will not execute programs with world write permissions
or setuid programs. When run as root (the default), CUPS also does not
execute programs that are not owned by root.
- <span class='info'>CUPS 1.4/Mac OS X 10.6</span></li>
+ <span class='info'>CUPS 1.4/OS X 10.6</span></li>
<li><tt>cups-missing-filter-warning</tt> - a filter or backend is not
- installed. <span class='info'>CUPS 1.4/Mac OS X 10.6</span></li>
+ installed. <span class='info'>CUPS 1.4/OS X 10.6</span></li>
</ul>
CUPS PostScript file specification for CUPS.
- Copyright 2007-2011 by Apple Inc.
+ Copyright 2007-2012 by Apple Inc.
Copyright 2006 by Easy Software Products.
These coded instructions, statements, and computer programs are the
de-facto standard print job file format/language for UNIX-based
applications, it is slowly being phased out in favor of Adobe's
Portable Document Format ("PDF") which offers many advantages
-over PostScript. Mac OS X uses PDF as the primary print job file
+over PostScript. OS X uses PDF as the primary print job file
format and Linux is making the transition. Both PostScript and
PDF are complex formats, and we highly recommend using high-level
toolkits whenever possible to create your print jobs.</blockquote>
<li><a href="#cupsUIResolver">cupsUIResolver</a></li>
</ul></li>
<li><a href="#I18N">Globalized PPD Support</a></li>
-<li><a href="#OPTIONS">CUPS 1.3/Mac OS X 10.6Custom Options</a></li>
+<li><a href="#OPTIONS">CUPS 1.3/OS X 10.6Custom Options</a></li>
<li><a href="#RASTERPS">Writing PostScript Option Commands for Raster Drivers</a></li>
<li><a href="#MEDIA">Media Keywords</a><ul class="subcontents">
<li><a href="#cupsMediaQualifier2">cupsMediaQualifier2</a></li>
<li><a href="#cupsVersion">cupsVersion</a></li>
<li><a href="#JCLToPDFInterpreter">JCLToPDFInterpreter</a></li>
</ul></li>
-<li><a href="#MACOSX">Mac OS X Attributes</a><ul class="subcontents">
+<li><a href="#MACOSX">OS X Attributes</a><ul class="subcontents">
<li><a href="#APDialogExtension">APDialogExtension</a></li>
<li><a href="#APDuplexRequiresFlippedMargin">APDuplexRequiresFlippedMargin</a></li>
<li><a href="#APHelpBook">APHelpBook</a></li>
<p>CUPS supports several methods of auto-configuration via PPD keywords.</p>
-<h3><span class='info'>Mac OS X 10.5</span><a name='APAutoSetupTool'>APAutoSetupTool</a></h3>
+<h3><span class='info'>OS X 10.5</span><a name='APAutoSetupTool'>APAutoSetupTool</a></h3>
<p class='summary'>*APAutoSetupTool: "/LibraryPrinters/vendor/filename"</p>
-<p>This Mac OS X keyword defines a program that sets the default option choices. It is run when a printer is added from the <var>Add Printer</var> window or the <var>Nearby Printers</var> list in the <var>Print</var> dialog.</p>
+<p>This OS X keyword defines a program that sets the default option choices. It is run when a printer is added from the <var>Add Printer</var> window or the <var>Nearby Printers</var> list in the <var>Print</var> dialog.</p>
<p>The program is provided with two arguments: the printer's device URI and the PPD file to be used for the printer. The program must write an updated PPD file to stdout.</p>
*APAutoSetupTool: "/Library/Printers/vendor/Tools/autosetuptool"
</pre>
-<h3><span class='info'>Mac OS X 10.2/CUPS 1.4</span><a name='QUERYKEYWORD'>?MainKeyword</a></h3>
+<h3><span class='info'>OS X 10.2/CUPS 1.4</span><a name='QUERYKEYWORD'>?MainKeyword</a></h3>
<p class='summary'>*?<i>MainKeyword</i>: "<br>
PostScript query code that writes a message using the = operator...<br>
*CloseUI: OptionDuplex
</pre>
-<h3><span class='info'>Mac OS X 10.4/CUPS 1.5</span><a name='OID'>OIDMainKeyword</a></h3>
+<h3><span class='info'>OS X 10.4/CUPS 1.5</span><a name='OID'>OIDMainKeyword</a></h3>
<p class='summary'>*?OID<i>MainKeyword</i>: ".n.n.n..."<br>
*OID<i>MainKeyword</i> <i>OptionKeyword1</i>: "value"<br>
<p class='summary'>*cupsColorProfile Resolution/MediaType: "density gamma m00 m01 m02 m10 m11 m12 m20 m21 m22"</p>
-<p>This string keyword specifies an sRGB-based color profile consisting of gamma and density controls and a 3x3 CMY color transform matrix. <em>This keyword is not supported on Mac OS X.</em></p>
+<p>This string keyword specifies an sRGB-based color profile consisting of gamma and density controls and a 3x3 CMY color transform matrix. <em>This keyword is not supported on OS X.</em></p>
<p>The <i>Resolution</i> and <i>MediaType</i> values may be "-" to act as a wildcard. Otherwise they must match one of the <tt>Resolution</tt> or <tt>MediaType</tt> option keywords defined in the PPD file.</p>
</pre>
-<h3><span class='info'>Mac OS X 10.3/CUPS 1.2</span><a name='cupsICCProfile'>cupsICCProfile</a></h3>
+<h3><span class='info'>OS X 10.3/CUPS 1.2</span><a name='cupsICCProfile'>cupsICCProfile</a></h3>
<p class='summary'>*cupsICCProfile ColorModel.MediaType.Resolution/Description: "filename"</p>
*cupsICCQualifier3: Resolution
</pre>
-<h3><span class='info'>Mac OS X 10.4</span><a name='APCustom'>Custom Color Matching Support</a></h3>
+<h3><span class='info'>OS X 10.4</span><a name='APCustom'>Custom Color Matching Support</a></h3>
<p class='summary'>*<a href='#APSupportsCustomColorMatching'>APSupportsCustomColorMatching</a>: true<br>
*<a href='#APCustomColorMatchingName'>APCustomColorMatchingName</a> name/text: ""<br>
*<a href='#APCustomColorMatchingProfile'>APCustomColorMatchingProfile</a>: profile<br>
*<a href='#APDefaultCustomColorMatchingProfile'>APDefaultCustomColorMatchingProfile</a>: profile</p>
-<p>These keywords tell the Mac OS X raster filters that the printer driver provides its own custom color matching and that generic color profiles should be used when generating 1-, 3-, and 4-component raster data as requested by the driver. The <tt>APCustomColorMatchingProfile</tt> and <tt>APDefaultColorMatchingProfile</tt> keywords specify alternate color profiles (sRGB or AdobeRGB) to use for 3-color (RGB) raster data.</p>
+<p>These keywords tell the OS X raster filters that the printer driver provides its own custom color matching and that generic color profiles should be used when generating 1-, 3-, and 4-component raster data as requested by the driver. The <tt>APCustomColorMatchingProfile</tt> and <tt>APDefaultColorMatchingProfile</tt> keywords specify alternate color profiles (sRGB or AdobeRGB) to use for 3-color (RGB) raster data.</p>
<blockquote><b>Note:</b>
-<p>Prior to Mac OS X 10.6, the default RGB color space was Apple's "GenericRGB". The new default in Mac OS X 10.6 and later is "sRGB". For more information, see <a href="http://support.apple.com/kb/HT3712">"Mac OS X v10.6: About gamma 2.2"</a> on Apple's support site.</p>
+<p>Prior to OS X 10.6, the default RGB color space was Apple's "GenericRGB". The new default in OS X 10.6 and later is "sRGB". For more information, see <a href="http://support.apple.com/kb/HT3712">"OS X v10.6: About gamma 2.2"</a> on Apple's support site.</p>
</blockquote>
-<h4><span class='info'>Mac OS X 10.5</span><a name='APCustomColorMatchingName'>APCustomColorMatchingName</a></h4>
+<h4><span class='info'>OS X 10.5</span><a name='APCustomColorMatchingName'>APCustomColorMatchingName</a></h4>
<p class='summary'>*APCustomColorMatchingName name/text: ""</p>
*fr.APCustomColorMatchingName name/La AcmeColor(tm): ""
</pre>
-<h4><span class='info'>Mac OS X 10.5</span><a name='APCustomColorMatchingProfile'>APCustomColorMatchingProfile</a></h4>
+<h4><span class='info'>OS X 10.5</span><a name='APCustomColorMatchingProfile'>APCustomColorMatchingProfile</a></h4>
<p class='summary'>*APCustomColorMatchingProfile: name</p>
*APCustomColorMatchingProfile: AdobeRGB
</pre>
-<h4><span class='info'>Mac OS X 10.5</span><a name='APDefaultCustomColorMatchingProfile'>APDefaultCustomColorMatchingProfile</a></h4>
+<h4><span class='info'>OS X 10.5</span><a name='APDefaultCustomColorMatchingProfile'>APDefaultCustomColorMatchingProfile</a></h4>
<p class='summary'>*APDefaultCustomColorMatchingProfile: name</p>
*APDefaultCustomColorMatchingProfile: sRGB
</pre>
-<h4><span class='info'>Mac OS X 10.4</span><a name='APSupportsCustomColorMatching'>APSupportsCustomColorMatching</a></h4>
+<h4><span class='info'>OS X 10.4</span><a name='APSupportsCustomColorMatching'>APSupportsCustomColorMatching</a></h4>
<p class='summary'>*APSupportsCustomColorMatching: boolean</p>
</blockquote>
-<h3><span class='info'>CUPS 1.4/Mac OS X 10.6</span><a name='cupsUIConstraints'>cupsUIConstraints</a></h3>
+<h3><span class='info'>CUPS 1.4/OS X 10.6</span><a name='cupsUIConstraints'>cupsUIConstraints</a></h3>
<p class='summary'>*cupsUIConstraints resolver: "*Keyword1 *Keyword2 ..."<br>
*cupsUIConstraints resolver: "*Keyword1 OptionKeyword1 *Keyword2 ..."<br>
*cupsUIConstraints photo: "*OutputMode Photo *MediaType Transparency *Resolution 1200dpi"
</pre>
-<h3><span class='info'>CUPS 1.4/Mac OS X 10.6</span><a name='cupsUIResolver'>cupsUIResolver</a></h3>
+<h3><span class='info'>CUPS 1.4/OS X 10.6</span><a name='cupsUIResolver'>cupsUIResolver</a></h3>
<p class='summary'>*cupsUIResolver resolver: "*Keyword1 OptionKeyword1 *Keyword2 OptionKeyword2 ..."</p>
</pre>
-<h2 class='title'><a name='OPTIONS'><span class="info">CUPS 1.3/Mac OS X 10.6</span>Custom Options</a></h2>
+<h2 class='title'><a name='OPTIONS'><span class="info">CUPS 1.3/OS X 10.6</span>Custom Options</a></h2>
<p>CUPS supports custom options using an extension of the <tt>CustomPageSize</tt> and <tt>ParamCustomPageSize</tt> syntax:</p>
<p>The CUPS media keywords allow drivers to specify alternate custom page
size limits based on up to two options.</p>
-<h3><span class='info'>CUPS 1.4/Mac OS X 10.6</span><a name='cupsMediaQualifier2'>cupsMediaQualifier2</a></h3>
+<h3><span class='info'>CUPS 1.4/OS X 10.6</span><a name='cupsMediaQualifier2'>cupsMediaQualifier2</a></h3>
<p class='summary'>*cupsMediaQualifier2: MainKeyword</p>
*cupsMinSize ..Photo: "300 300"
</pre>
-<h3><span class='info'>CUPS 1.4/Mac OS X 10.6</span><a name='cupsMediaQualifier3'>cupsMediaQualifier3</a></h3>
+<h3><span class='info'>CUPS 1.4/OS X 10.6</span><a name='cupsMediaQualifier3'>cupsMediaQualifier3</a></h3>
<p class='summary'>*cupsMediaQualifier3: MainKeyword</p>
*cupsMinSize ..Photo: "300 300"
</pre>
-<h3><span class='info'>CUPS 1.4/Mac OS X 10.6</span><a name='cupsMinSize'>cupsMinSize</a></h3>
+<h3><span class='info'>CUPS 1.4/OS X 10.6</span><a name='cupsMinSize'>cupsMinSize</a></h3>
<p class='summary'>*cupsMinSize .Qualifier2.Qualifier3: "width length"<br>
*cupsMinSize .Qualifier2.: "width length"<br>
*cupsMinSize ..Photo: "300 300"
</pre>
-<h3><span class='info'>CUPS 1.4/Mac OS X 10.6</span><a name='cupsMaxSize'>cupsMaxSize</a></h3>
+<h3><span class='info'>CUPS 1.4/OS X 10.6</span><a name='cupsMaxSize'>cupsMaxSize</a></h3>
<p class='summary'>*cupsMaxSize .Qualifier2.Qualifier3: "width length"<br>
*cupsMaxSize .Qualifier2.: "width length"<br>
<h2 class='title'><a name='ATTRIBUTES'>General Attributes</a></h2>
-<h3><span class='info'>CUPS 1.3/Mac OS X 10.5</span><a name='cupsBackSide'>cupsBackSide</a></h3>
+<h3><span class='info'>CUPS 1.3/OS X 10.5</span><a name='cupsBackSide'>cupsBackSide</a></h3>
<p class='summary'>*cupsBackSide: keyword</p>
</table>
</div>
-<p><em>* - Not supported in Mac OS X 10.5.x and earlier</em></p>
+<p><em>* - Not supported in OS X 10.5.x and earlier</em></p>
<div class='figure'><table summary='Back side images'>
<caption>Figure 1: Back side images</caption>
<p>Also see the related <a href='#APDuplexRequiresFlippedMargin'><tt>APDuplexRequiresFlippedMargin</tt></a>
keyword.</p>
-<h3><span class='info'>CUPS 1.4/Mac OS X 10.6</span><a name='cupsCommands'>cupsCommands</a></h3>
+<h3><span class='info'>CUPS 1.4/OS X 10.6</span><a name='cupsCommands'>cupsCommands</a></h3>
<p class='summary'>*cupsCommands: "name name2 ... nameN"</p>
</pre>
-<h3><span class='info'>CUPS 1.3/Mac OS X 10.5</span><a name='cupsEvenDuplex'>cupsEvenDuplex</a></h3>
+<h3><span class='info'>CUPS 1.3/OS X 10.5</span><a name='cupsEvenDuplex'>cupsEvenDuplex</a></h3>
<p class='summary'>*cupsEvenDuplex: boolean</p>
<p class='summary'>*cupsFlipDuplex: boolean</p>
-<p>Due to implementation differences between Mac OS X and Ghostscript,
+<p>Due to implementation differences between OS X and Ghostscript,
the <tt>cupsFlipDuplex</tt> keyword is deprecated. Instead, use
the <a href='#cupsBackSide'><tt>cupsBackSide</tt></a> keyword to specify
the coordinate system (pixel layout) of the page data on the back side of
duplex pages.</p>
<p>The value <code>true</code> maps to a <tt>cupsBackSide</tt> value
-of <code>Rotated</code> on Mac OS X and <code>Flipped</code> with
+of <code>Rotated</code> on OS X and <code>Flipped</code> with
Ghostscript.</p>
<p>The default value is <code>false</code>.</p>
<blockquote><b>Note:</b>
-<p>Mac OS X drivers that previously used
+<p>OS X drivers that previously used
<tt>cupsFlipDuplex</tt> may wish to provide both the old and
new keywords for maximum compatibility, for example:</p>
*cupsFlipDuplex: true
</pre></blockquote>
-<h3><span class='info'>CUPS 1.3/Mac OS X 10.5</span><a name='cupsIPPFinishings'>cupsIPPFinishings</a></h3>
+<h3><span class='info'>CUPS 1.3/OS X 10.5</span><a name='cupsIPPFinishings'>cupsIPPFinishings</a></h3>
<p class='summary'>*cupsIPPFinishings number/text: "*Option Choice ..."</p>
*cupsIPPFinishings 21/staple-bottom-left: "*StapleLocation SingleLandscape"
</pre>
-<h3><span class='info'>CUPS 1.3/Mac OS X 10.5</span><a name='cupsIPPReason'>cupsIPPReason</a></h3>
+<h3><span class='info'>CUPS 1.3/OS X 10.5</span><a name='cupsIPPReason'>cupsIPPReason</a></h3>
<p class='summary'>*cupsIPPReason reason/Reason Text: "optional URIs"</p>
*cupsIPPSupplies: False
</pre>
-<h3><span class='info'>CUPS 1.2/Mac OS X 10.5</span><a name='cupsLanguages'>cupsLanguages</a></h3>
+<h3><span class='info'>CUPS 1.2/OS X 10.5</span><a name='cupsLanguages'>cupsLanguages</a></h3>
<p class='summary'>*cupsLanguages: "locale list"</p>
*cupsManualCopies: true
</pre>
-<h3><span class='info'>CUPS 1.4/Mac OS X 10.6</span><a name='cupsMarkerName'>cupsMarkerName</a></h3>
+<h3><span class='info'>CUPS 1.4/OS X 10.6</span><a name='cupsMarkerName'>cupsMarkerName</a></h3>
<p class='summary'>*cupsMarkerName/Name Text: ""</p>
*cupsMarkerName cyanToner/Cyan Toner: ""
</pre>
-<h3><span class='info'>CUPS 1.4/Mac OS X 10.6</span><a name='cupsMarkerNotice'>cupsMarkerNotice</a></h3>
+<h3><span class='info'>CUPS 1.4/OS X 10.6</span><a name='cupsMarkerNotice'>cupsMarkerNotice</a></h3>
<p class='summary'>*cupsMarkerNotice: "disclaimer text"</p>
*cupsMarkerNotice: "Supply levels are approximate."
</pre>
-<h3><span class='info'>CUPS 1.6</span><a name='cupsMaxCopies'>cupsMaxCopies</a></h3>
+<h3><span class='info'>CUPS 1.6/OS X 10.8</span><a name='cupsMaxCopies'>cupsMaxCopies</a></h3>
<p class='summary'>*cupsMaxCopies: integer</p>
*cupsModelNumber: 1234
</pre>
-<h3><span class='info'>CUPS 1.3/Mac OS X 10.5</span><a name='cupsPJLCharset'>cupsPJLCharset</a></h3>
+<h3><span class='info'>CUPS 1.3/OS X 10.5</span><a name='cupsPJLCharset'>cupsPJLCharset</a></h3>
<p class='summary'>*cupsPJLCharset: "ISO character set name"</p>
*cupsPJLCharset: "UTF-8"
</pre>
-<h3><span class='info'>CUPS 1.4/Mac OS X 10.6</span><a name='cupsPJLDisplay'>cupsPJLDisplay</a></h3>
+<h3><span class='info'>CUPS 1.4/OS X 10.6</span><a name='cupsPJLDisplay'>cupsPJLDisplay</a></h3>
<p class='summary'>*cupsPJLDisplay: "what"</p>
*cupsPJLDisplay: "none"
</pre>
-<h3><span class='info'>CUPS 1.2/Mac OS X 10.5</span><a name='cupsPortMonitor'>cupsPortMonitor</a></h3>
+<h3><span class='info'>CUPS 1.2/OS X 10.5</span><a name='cupsPortMonitor'>cupsPortMonitor</a></h3>
<p class='summary'>*cupsPortMonitor urischeme/Descriptive Text: "port monitor"</p>
*cupsPortMonitor usb/USB Status Monitor: "epson-usb"
</pre>
-<h3><span class='info'>CUPS 1.3/Mac OS X 10.5</span><a name='cupsPreFilter'>cupsPreFilter</a></h3>
+<h3><span class='info'>CUPS 1.3/OS X 10.5</span><a name='cupsPreFilter'>cupsPreFilter</a></h3>
<p class='summary'>*cupsPreFilter: "source/type cost program"</p>
*cupsSingleFile: True
</pre>
-<h3><span class='info'>CUPS 1.4/Mac OS X 10.6</span><a name='cupsSNMPSupplies'>cupsSNMPSupplies</a></h3>
+<h3><span class='info'>CUPS 1.4/OS X 10.6</span><a name='cupsSNMPSupplies'>cupsSNMPSupplies</a></h3>
<p class='summary'>*cupsSNMPSupplies: boolean</p>
</pre>
-<h3><span class="info">CUPS 1.6</span><a name="JCLToPDFInterpreter">JCLToPDFInterpreter</a></h3>
+<h3><span class="info">CUPS 1.6/OS X 10.8</span><a name="JCLToPDFInterpreter">JCLToPDFInterpreter</a></h3>
<p class="summary">*JCLToPDFInterpreter: "JCL"</p>
</pre>
-<h2 class='title'><a name='MACOSX'>Mac OS X Attributes</a></h2>
+<h2 class='title'><a name='MACOSX'>OS X Attributes</a></h2>
-<h3><span class='info'>Mac OS X 10.3</span><a name='APDialogExtension'>APDialogExtension</a></h3>
+<h3><span class='info'>OS X 10.3</span><a name='APDialogExtension'>APDialogExtension</a></h3>
<p class='summary'>*APDialogExtension: "/Library/Printers/vendor/filename.plugin"</p>
<blockquote><b>Note:</b>
-<p>Starting with Mac OS X 10.5, each plug-in must be compiled "4-way fat"
+<p>Starting with OS X 10.5, each plug-in must be compiled "4-way fat"
(32-bit and 64-bit for both PowerPC and Intel) with garbage collection enabled
in order to be usable with all applications.</p>
*APDialogExtension: "/Library/Printers/vendor/options.plugin"
</pre>
-<h3><span class='info'>Mac OS X 10.4</span><a name='APDuplexRequiresFlippedMargin'>APDuplexRequiresFlippedMargin</a></h3>
+<h3><span class='info'>OS X 10.4</span><a name='APDuplexRequiresFlippedMargin'>APDuplexRequiresFlippedMargin</a></h3>
<p class='summary'>*APDuplexRequiresFlippedMargin: boolean</p>
*APHelpBook: "file:///Library/Printers/vendor/Help.bundle"
</pre>
-<h3><span class='info'>Mac OS X 10.6</span><a name='APICADriver'>APICADriver</a></h3>
+<h3><span class='info'>OS X 10.6</span><a name='APICADriver'>APICADriver</a></h3>
<p class='summary'>*APICADriver: boolean</p>
*APScanAppBundleID: "com.apple.ImageCaptureApp"
</pre>
-<h3><span class='info'>Mac OS X 10.3</span><a name='APPrinterIconPath'>APPrinterIconPath</a></h3>
+<h3><span class='info'>OS X 10.3</span><a name='APPrinterIconPath'>APPrinterIconPath</a></h3>
<p class='summary'>*APPrinterIconPath: "/Library/Printers/vendor/filename.icns"</p>
*APPrinterIconPath: "/Library/Printers/vendor/Icons/filename.icns"
</pre>
-<h3><span class='info'>Mac OS X 10.4</span><a name='APPrinterLowInkTool'>APPrinterLowInkTool</a></h3>
+<h3><span class='info'>OS X 10.4</span><a name='APPrinterLowInkTool'>APPrinterLowInkTool</a></h3>
<p class='summary'>*APPrinterLowInkTool: "/Library/Printers/vendor/program"</p>
*APPrinterLowInkTool: "/Library/Printers/vendor/Tools/lowinktool"
</pre>
-<h3><span class='info'>Mac OS X 10.5</span><a name='APPrinterPreset'>APPrinterPreset</a></h3>
+<h3><span class='info'>OS X 10.5</span><a name='APPrinterPreset'>APPrinterPreset</a></h3>
<p class='summary'>*APPrinterPreset name/text: "*Option Choice ..."</p>
*fr.APPrinterPreset Photo_on_Photo_Paper/Photo sur papier photographique: ""
</pre>
-<h3><span class='info'>Mac OS X 10.3</span><a name='APPrinterUtilityPath'>APPrinterUtilityPath</a></h3>
+<h3><span class='info'>OS X 10.3</span><a name='APPrinterUtilityPath'>APPrinterUtilityPath</a></h3>
<p class='summary'>*APPrinterPrinterUtilityPath: "/Library/Printers/vendor/filename.app"</p>
*APPrinterPrinterUtilityPath: "/Library/Printers/vendor/Tools/utility.app"
</pre>
-<h3><span class='info'>Mac OS X 10.6</span><a name='APScannerOnly'>APScannerOnly</a></h3>
+<h3><span class='info'>OS X 10.6</span><a name='APScannerOnly'>APScannerOnly</a></h3>
<p class='summary'>*APScannerOnly: boolean</p>
*APScannerOnly: True
</pre>
-<h3><span class='info'>Mac OS X 10.3</span><a name='APScanAppBundleID'>APScanAppBundleID</a></h3>
+<h3><span class='info'>OS X 10.3</span><a name='APScanAppBundleID'>APScanAppBundleID</a></h3>
<p class='summary'>*APScanAppBundleID: "bundle ID"</p>
<ul>
- <li>Added missing Mac OS X <tt>AP</tt> keywords.</li>
+ <li>Added missing OS X <tt>AP</tt> keywords.</li>
<li>Added section on auto-configuration including the
<tt>OID<i>MainKeyword</i></tt> and <tt>?<i>MainKeyword</i></tt>
../cups/cups.h ../cups/file.h ../cups/versioning.h ../cups/ipp.h \
../cups/http.h ../cups/array.h ../cups/language.h ../cups/ppd.h \
../cups/debug-private.h ../cups/string-private.h ../config.h
-commandtops.o: commandtops.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 ../cups/sidechannel.h
-gziptoany.o: gziptoany.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
+commandtops.o: commandtops.c ../cups/cups-private.h \
+ ../cups/string-private.h ../config.h ../cups/debug-private.h \
+ ../cups/versioning.h ../cups/ipp-private.h ../cups/ipp.h \
+ ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
+ ../cups/sidechannel.h
+gziptoany.o: gziptoany.c ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/versioning.h \
+ ../cups/ipp-private.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
+ ../cups/http-private.h ../cups/md5-private.h \
+ ../cups/language-private.h ../cups/transcode.h ../cups/language.h \
+ ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
common.o: common.c common.h ../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/ppd.h
../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/language.h ../cups/ppd.h ../cups/string-private.h ../config.h \
../cups/language-private.h ../cups/transcode.h ../cups/raster.h
-rastertopwg.o: rastertopwg.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 ../cups/raster.h
+rastertopwg.o: rastertopwg.c ../cups/cups-private.h \
+ ../cups/string-private.h ../config.h ../cups/debug-private.h \
+ ../cups/versioning.h ../cups/ipp-private.h ../cups/ipp.h \
+ ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
+ ../cups/raster.h
testraster.o: testraster.c ../cups/raster-private.h ../cups/raster.h \
../cups/cups.h ../cups/file.h ../cups/versioning.h ../cups/ipp.h \
../cups/http.h ../cups/array.h ../cups/language.h ../cups/ppd.h \
Raster API introduction for CUPS.
- Copyright 2007-2011 by Apple Inc.
+ Copyright 2007-2012 by Apple Inc.
Copyright 1997-2006 by Easy Software Products, all rights reserved.
These coded instructions, statements, and computer programs are the
<p>Two kinds of CUPS filters use the CUPS raster API - raster image processor
(RIP) filters such as <code>pstoraster</code> and <code>cgpdftoraster</code>
-(Mac OS X) that produce CUPS raster files and printer driver filters that
+(OS X) that produce CUPS raster files and printer driver filters that
convert CUPS raster files into a format usable by the printer. Printer
driver filters are by far the most common.</p>
<ul class="code">
- <li><a href="#cupsRasterReadHeader" title="Read a raster page header and store it in a version 1 page header structure.">cupsRasterReadHeader</a> <span class="info">Deprecated in CUPS 1.2/Mac OS X 10.5</span></li>
+ <li><a href="#cupsRasterReadHeader" title="Read a raster page header and store it in a version 1 page header structure.">cupsRasterReadHeader</a> <span class="info">Deprecated in CUPS 1.2/OS X 10.5</span></li>
<li><a href="#cupsRasterReadHeader2" title="Read a raster page header and store it in a version 2 page header structure.">cupsRasterReadHeader2</a></li>
<li><a href="#cupsRasterReadPixels" title="Read raster pixels.">cupsRasterReadPixels</a></li>
<ul class="code">
<li><a href="#cupsRasterInterpretPPD" title="Interpret PPD commands to create a page header.">cupsRasterInterpretPPD</a></li>
- <li><a href="#cupsRasterWriteHeader" title="Write a raster page header from a version 1 page header structure.">cupsRasterWriteHeader</a> <span class="info">Deprecated in CUPS 1.2/Mac OS X 10.5</span></li>
+ <li><a href="#cupsRasterWriteHeader" title="Write a raster page header from a version 1 page header structure.">cupsRasterWriteHeader</a> <span class="info">Deprecated in CUPS 1.2/OS X 10.5</span></li>
<li><a href="#cupsRasterWriteHeader2" title="Write a raster page header from a version 2 page header structure.">cupsRasterWriteHeader2</a></li>
<li><a href="#cupsRasterWritePixels" title="Write raster pixels.">cupsRasterWritePixels</a></li>
-
+
</ul>
*/
_cupsLangPrintf(stderr,
- _("Usage: %s job-id user title copies options file"),
+ _("Usage: %s job-id user title copies options [file]"),
argv[0]);
return (1);
}
*
* Raster error handling for CUPS.
*
- * Copyright 2007-2011 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
*
* If there are no recent errors, NULL is returned.
*
- * @since CUPS 1.3/Mac OS X 10.5@
+ * @since CUPS 1.3/OS X 10.5@
*/
const char * /* O - Last error */
*
* GZIP/raw pre-filter for CUPS.
*
- * Copyright 2007-2011 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 1993-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
if (argc != 7)
{
_cupsLangPrintf(stderr,
- _("Usage: %s job-id user title copies options file"),
+ _("Usage: %s job-id user title copies options [file]"),
argv[0]);
return (1);
}
*
* PPD command interpreter for CUPS.
*
- * Copyright 2007-2011 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 1993-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* @code pop@, @code roll@, @code setpagedevice@, and @code stopped@ operators
* are supported.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
int /* O - 0 on success, -1 on failure */
#ifdef __APPLE__
/*
- * cupsInteger0 is also used for the total page count on Mac OS X; set an
+ * cupsInteger0 is also used for the total page count on OS X; set an
* uncommon default value so we can tell if the driver is using cupsInteger0.
*/
PostScript printer driver documentation for CUPS.
- Copyright 2007-2010 by Apple Inc.
+ Copyright 2007-2012 by Apple Inc.
Copyright 1997-2007 by Easy Software Products.
These coded instructions, statements, and computer programs are the
<h1 class='title'>Developing PostScript Printer Drivers</h1>
-<p>This document describes how to develop printer drivers for PostScript printers. Topics include: <a href='#BASICS'>printer driver basics</a>, <a href='#CREATE'>creating new PPD files</a>, <a href='#IMPORT'>importing existing PPD files</a>, <a href='#FILTERS'>using custom filters</a>, <a href='#COLOR'>implementing color management</a>, and <a href='#MACOSX'>adding Mac OS X features</a>.</p>
+<p>This document describes how to develop printer drivers for PostScript printers. Topics include: <a href='#BASICS'>printer driver basics</a>, <a href='#CREATE'>creating new PPD files</a>, <a href='#IMPORT'>importing existing PPD files</a>, <a href='#FILTERS'>using custom filters</a>, <a href='#COLOR'>implementing color management</a>, and <a href='#MACOSX'>adding OS X features</a>.</p>
<div class='summary'><table summary='General Information'>
<tbody>
dup [612 792] (Letter) put
dup [612 1008] (Legal) put
dup [595 842] (A4) put
- {exch aload pop 4 index sub abs 5 le exch
+ {exch aload pop 4 index sub abs 5 le exch
5 index sub abs 5 le and
{exch pop exit} {pop} ifelse
} bind forall = flush pop pop
dup [612 792] (Letter) put
dup [612 1008] (Legal) put
dup [595 842] (A4) put
- {exch aload pop 4 index sub abs 5 le exch
+ {exch aload pop 4 index sub abs 5 le exch
5 index sub abs 5 le and
{exch pop exit} {pop} ifelse
} bind forall = flush pop pop
<p>The options used for profile selection can be customized using the <tt>cupsICCQualifier2</tt> and <tt>cupsICCQualifier3</tt> attributes.</p>
-<h2 class='title'><a name='MACOSX'>Adding Mac OS X Features</a></h2>
+<h2 class='title'><a name='MACOSX'>Adding OS X Features</a></h2>
-<p>Mac OS X printer drivers can provide <a href='spec-ppd.html#MACOSX'>additional attributes</a> to specify additional option panes in the print dialog, an image of the printer, a help book, and option presets for the driver software:</p>
+<p>OS X printer drivers can provide <a href='spec-ppd.html#MACOSX'>additional attributes</a> to specify additional option panes in the print dialog, an image of the printer, a help book, and option presets for the driver software:</p>
<pre class='example'>
<a href='ref-ppdcfile.html#Attribute'>Attribute</a> APDialogExtension "" /Library/Printers/Vendor/filename.plugin
<LI>Bits per color. In the example file, we define 8 bits per color, for
a continuous-tone grayscale output. All versions of CUPS support 1 and
- 8 bits per color. CUPS 1.2 and higher (Mac OS X 10.5 and higher) also
+ 8 bits per color. CUPS 1.2 and higher (OS X 10.5 and higher) also
supports 16 bits per color.</LI>
<LI>Rows per band. In the example file, we define 0 rows per band to
if (argc < 6 || argc > 7)
{
_cupsLangPrintf(stderr,
- _("Usage: %s job-id user title copies options file"),
+ _("Usage: %s job-id user title copies options [file]"),
argv[0]);
return (1);
}
Raster printer driver documentation for CUPS.
- Copyright 2007-2010 by Apple Inc.
+ Copyright 2007-2012 by Apple Inc.
Copyright 1997-2007 by Easy Software Products.
These coded instructions, statements, and computer programs are the
<h1 class='title'>Developing Raster Printer Drivers</h1>
-<p>This document describes how to develop printer drivers for raster printers. Topics include: <a href='#BASICS'>printer driver basics</a>, <a href='#CREATE'>creating new PPD files</a>, <a href='#FILTERS'>using filters</a>, <a href='#COLOR'>implementing color management</a>, and <a href='#MACOSX'>adding Mac OS X features</a>.</p>
+<p>This document describes how to develop printer drivers for raster printers. Topics include: <a href='#BASICS'>printer driver basics</a>, <a href='#CREATE'>creating new PPD files</a>, <a href='#FILTERS'>using filters</a>, <a href='#COLOR'>implementing color management</a>, and <a href='#MACOSX'>adding OS X features</a>.</p>
<div class='summary'><table summary='General Information'>
<tbody>
<p>The options used for profile selection can be customized using the <tt>cupsICCQualifier2</tt> and <tt>cupsICCQualifier3</tt> attributes.</p>
-<h3><span class='info'>Since Mac OS X 10.5</span>Custom Color Matching Support</h3>
+<h3><span class='info'>Since OS X 10.5</span>Custom Color Matching Support</h3>
-<p>Mac OS X printer drivers that are based on an existing standard RGB colorspace can tell the system to use the corresponding colorspace instead of an arbitrary ICC color profile when doing color management. The <a href='#APCustom'><tt>APSupportsCustomColorMatching</tt></a> and <tt>APDefaultCustomColorMatchingProfile</tt> attributes can be used to enable this mode:</p>
+<p>OS X printer drivers that are based on an existing standard RGB colorspace can tell the system to use the corresponding colorspace instead of an arbitrary ICC color profile when doing color management. The <a href='#APCustom'><tt>APSupportsCustomColorMatching</tt></a> and <tt>APDefaultCustomColorMatchingProfile</tt> attributes can be used to enable this mode:</p>
<pre class='example'>
<a href='ref-ppdcfile.html#Attribute'>Attribute</a> APSupportsCustomColorMatching "" true
</pre>
-<h2 class='title'><a name='MACOSX'>Adding Mac OS X Features</a></h2>
+<h2 class='title'><a name='MACOSX'>Adding OS X Features</a></h2>
-<p>Mac OS X printer drivers can provide <a href='spec-ppd.html#MACOSX'>additional attributes</a> to specify additional option panes in the print dialog, an image of the printer, a help book, and option presets for the driver software:</p>
+<p>OS X printer drivers can provide <a href='spec-ppd.html#MACOSX'>additional attributes</a> to specify additional option panes in the print dialog, an image of the printer, a help book, and option presets for the driver software:</p>
<pre class='example'>
<a href='ref-ppdcfile.html#Attribute'>Attribute</a> APDialogExtension "" /Library/Printers/Vendor/filename.plugin
*
* Raster file routines for CUPS.
*
- * Copyright 2007-2011 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 1997-2006 by Easy Software Products.
*
* This file is part of the CUPS Imaging library.
* 'cupsRasterReadHeader2()' - Read a raster page header and store it in a
* version 2 page header structure.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
unsigned /* O - 1 on success, 0 on failure/end-of-file */
*
* The page header can be initialized using @link cupsRasterInterpretPPD@.
*
- * @since CUPS 1.2/Mac OS X 10.5@
+ * @since CUPS 1.2/OS X 10.5@
*/
unsigned /* O - 1 on success, 0 on failure */
*
* EPSON ESC/P and ESC/P2 filter for CUPS.
*
- * Copyright 2007-2010 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 1993-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
return (1);
}
else
- {
- _cupsLangPrintFilter(stderr, "INFO", _("Ready to print."));
return (0);
- }
}
*
* Hewlett-Packard Page Control Language filter for CUPS.
*
- * Copyright 2007-2010 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 1993-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
return (1);
}
else
- {
- _cupsLangPrintFilter(stderr, "INFO", _("Ready to print."));
return (0);
- }
}
*
* Label printer filter for CUPS.
*
- * Copyright 2007-2010 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 2001-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
return (1);
}
else
- {
- _cupsLangPrintFilter(stderr, "INFO", _("Ready to print."));
return (0);
- }
}
<p>CUPS supports several methods of auto-configuration via PPD keywords.</p>
-<h3><span class='info'>Mac OS X 10.5</span><a name='APAutoSetupTool'>APAutoSetupTool</a></h3>
+<h3><span class='info'>OS X 10.5</span><a name='APAutoSetupTool'>APAutoSetupTool</a></h3>
<p class='summary'>*APAutoSetupTool: "/LibraryPrinters/vendor/filename"</p>
-<p>This Mac OS X keyword defines a program that sets the default option choices. It is run when a printer is added from the <var>Add Printer</var> window or the <var>Nearby Printers</var> list in the <var>Print</var> dialog.</p>
+<p>This OS X keyword defines a program that sets the default option choices. It is run when a printer is added from the <var>Add Printer</var> window or the <var>Nearby Printers</var> list in the <var>Print</var> dialog.</p>
<p>The program is provided with two arguments: the printer's device URI and the PPD file to be used for the printer. The program must write an updated PPD file to stdout.</p>
*APAutoSetupTool: "/Library/Printers/vendor/Tools/autosetuptool"
</pre>
-<h3><span class='info'>Mac OS X 10.2/CUPS 1.4</span><a name='QUERYKEYWORD'>?MainKeyword</a></h3>
+<h3><span class='info'>OS X 10.2/CUPS 1.4</span><a name='QUERYKEYWORD'>?MainKeyword</a></h3>
<p class='summary'>*?<i>MainKeyword</i>: "<br>
PostScript query code that writes a message using the = operator...<br>
*CloseUI: OptionDuplex
</pre>
-<h3><span class='info'>Mac OS X 10.4/CUPS 1.5</span><a name='OID'>OIDMainKeyword</a></h3>
+<h3><span class='info'>OS X 10.4/CUPS 1.5</span><a name='OID'>OIDMainKeyword</a></h3>
<p class='summary'>*?OID<i>MainKeyword</i>: ".n.n.n..."<br>
*OID<i>MainKeyword</i> <i>OptionKeyword1</i>: "value"<br>
<p class='summary'>*cupsColorProfile Resolution/MediaType: "density gamma m00 m01 m02 m10 m11 m12 m20 m21 m22"</p>
-<p>This string keyword specifies an sRGB-based color profile consisting of gamma and density controls and a 3x3 CMY color transform matrix. <em>This keyword is not supported on Mac OS X.</em></p>
+<p>This string keyword specifies an sRGB-based color profile consisting of gamma and density controls and a 3x3 CMY color transform matrix. <em>This keyword is not supported on OS X.</em></p>
<p>The <i>Resolution</i> and <i>MediaType</i> values may be "-" to act as a wildcard. Otherwise they must match one of the <tt>Resolution</tt> or <tt>MediaType</tt> option keywords defined in the PPD file.</p>
</pre>
-<h3><span class='info'>Mac OS X 10.3/CUPS 1.2</span><a name='cupsICCProfile'>cupsICCProfile</a></h3>
+<h3><span class='info'>OS X 10.3/CUPS 1.2</span><a name='cupsICCProfile'>cupsICCProfile</a></h3>
<p class='summary'>*cupsICCProfile ColorModel.MediaType.Resolution/Description: "filename"</p>
*cupsICCQualifier3: Resolution
</pre>
-<h3><span class='info'>Mac OS X 10.4</span><a name='APCustom'>Custom Color Matching Support</a></h3>
+<h3><span class='info'>OS X 10.4</span><a name='APCustom'>Custom Color Matching Support</a></h3>
<p class='summary'>*<a href='#APSupportsCustomColorMatching'>APSupportsCustomColorMatching</a>: true<br>
*<a href='#APCustomColorMatchingName'>APCustomColorMatchingName</a> name/text: ""<br>
*<a href='#APCustomColorMatchingProfile'>APCustomColorMatchingProfile</a>: profile<br>
*<a href='#APDefaultCustomColorMatchingProfile'>APDefaultCustomColorMatchingProfile</a>: profile</p>
-<p>These keywords tell the Mac OS X raster filters that the printer driver provides its own custom color matching and that generic color profiles should be used when generating 1-, 3-, and 4-component raster data as requested by the driver. The <tt>APCustomColorMatchingProfile</tt> and <tt>APDefaultColorMatchingProfile</tt> keywords specify alternate color profiles (sRGB or AdobeRGB) to use for 3-color (RGB) raster data.</p>
+<p>These keywords tell the OS X raster filters that the printer driver provides its own custom color matching and that generic color profiles should be used when generating 1-, 3-, and 4-component raster data as requested by the driver. The <tt>APCustomColorMatchingProfile</tt> and <tt>APDefaultColorMatchingProfile</tt> keywords specify alternate color profiles (sRGB or AdobeRGB) to use for 3-color (RGB) raster data.</p>
<blockquote><b>Note:</b>
-<p>Prior to Mac OS X 10.6, the default RGB color space was Apple's "GenericRGB". The new default in Mac OS X 10.6 and later is "sRGB". For more information, see <a href="http://support.apple.com/kb/HT3712">"Mac OS X v10.6: About gamma 2.2"</a> on Apple's support site.</p>
+<p>Prior to OS X 10.6, the default RGB color space was Apple's "GenericRGB". The new default in OS X 10.6 and later is "sRGB". For more information, see <a href="http://support.apple.com/kb/HT3712">"OS X v10.6: About gamma 2.2"</a> on Apple's support site.</p>
</blockquote>
-<h4><span class='info'>Mac OS X 10.5</span><a name='APCustomColorMatchingName'>APCustomColorMatchingName</a></h4>
+<h4><span class='info'>OS X 10.5</span><a name='APCustomColorMatchingName'>APCustomColorMatchingName</a></h4>
<p class='summary'>*APCustomColorMatchingName name/text: ""</p>
*fr.APCustomColorMatchingName name/La AcmeColor(tm): ""
</pre>
-<h4><span class='info'>Mac OS X 10.5</span><a name='APCustomColorMatchingProfile'>APCustomColorMatchingProfile</a></h4>
+<h4><span class='info'>OS X 10.5</span><a name='APCustomColorMatchingProfile'>APCustomColorMatchingProfile</a></h4>
<p class='summary'>*APCustomColorMatchingProfile: name</p>
*APCustomColorMatchingProfile: AdobeRGB
</pre>
-<h4><span class='info'>Mac OS X 10.5</span><a name='APDefaultCustomColorMatchingProfile'>APDefaultCustomColorMatchingProfile</a></h4>
+<h4><span class='info'>OS X 10.5</span><a name='APDefaultCustomColorMatchingProfile'>APDefaultCustomColorMatchingProfile</a></h4>
<p class='summary'>*APDefaultCustomColorMatchingProfile: name</p>
*APDefaultCustomColorMatchingProfile: sRGB
</pre>
-<h4><span class='info'>Mac OS X 10.4</span><a name='APSupportsCustomColorMatching'>APSupportsCustomColorMatching</a></h4>
+<h4><span class='info'>OS X 10.4</span><a name='APSupportsCustomColorMatching'>APSupportsCustomColorMatching</a></h4>
<p class='summary'>*APSupportsCustomColorMatching: boolean</p>
</blockquote>
-<h3><span class='info'>CUPS 1.4/Mac OS X 10.6</span><a name='cupsUIConstraints'>cupsUIConstraints</a></h3>
+<h3><span class='info'>CUPS 1.4/OS X 10.6</span><a name='cupsUIConstraints'>cupsUIConstraints</a></h3>
<p class='summary'>*cupsUIConstraints resolver: "*Keyword1 *Keyword2 ..."<br>
*cupsUIConstraints resolver: "*Keyword1 OptionKeyword1 *Keyword2 ..."<br>
*cupsUIConstraints photo: "*OutputMode Photo *MediaType Transparency *Resolution 1200dpi"
</pre>
-<h3><span class='info'>CUPS 1.4/Mac OS X 10.6</span><a name='cupsUIResolver'>cupsUIResolver</a></h3>
+<h3><span class='info'>CUPS 1.4/OS X 10.6</span><a name='cupsUIResolver'>cupsUIResolver</a></h3>
<p class='summary'>*cupsUIResolver resolver: "*Keyword1 OptionKeyword1 *Keyword2 OptionKeyword2 ..."</p>
</pre>
-<h2 class='title'><a name='OPTIONS'><span class="info">CUPS 1.3/Mac OS X 10.6</span>Custom Options</a></h2>
+<h2 class='title'><a name='OPTIONS'><span class="info">CUPS 1.3/OS X 10.6</span>Custom Options</a></h2>
<p>CUPS supports custom options using an extension of the <tt>CustomPageSize</tt> and <tt>ParamCustomPageSize</tt> syntax:</p>
<p>The CUPS media keywords allow drivers to specify alternate custom page
size limits based on up to two options.</p>
-<h3><span class='info'>CUPS 1.4/Mac OS X 10.6</span><a name='cupsMediaQualifier2'>cupsMediaQualifier2</a></h3>
+<h3><span class='info'>CUPS 1.4/OS X 10.6</span><a name='cupsMediaQualifier2'>cupsMediaQualifier2</a></h3>
<p class='summary'>*cupsMediaQualifier2: MainKeyword</p>
*cupsMinSize ..Photo: "300 300"
</pre>
-<h3><span class='info'>CUPS 1.4/Mac OS X 10.6</span><a name='cupsMediaQualifier3'>cupsMediaQualifier3</a></h3>
+<h3><span class='info'>CUPS 1.4/OS X 10.6</span><a name='cupsMediaQualifier3'>cupsMediaQualifier3</a></h3>
<p class='summary'>*cupsMediaQualifier3: MainKeyword</p>
*cupsMinSize ..Photo: "300 300"
</pre>
-<h3><span class='info'>CUPS 1.4/Mac OS X 10.6</span><a name='cupsMinSize'>cupsMinSize</a></h3>
+<h3><span class='info'>CUPS 1.4/OS X 10.6</span><a name='cupsMinSize'>cupsMinSize</a></h3>
<p class='summary'>*cupsMinSize .Qualifier2.Qualifier3: "width length"<br>
*cupsMinSize .Qualifier2.: "width length"<br>
*cupsMinSize ..Photo: "300 300"
</pre>
-<h3><span class='info'>CUPS 1.4/Mac OS X 10.6</span><a name='cupsMaxSize'>cupsMaxSize</a></h3>
+<h3><span class='info'>CUPS 1.4/OS X 10.6</span><a name='cupsMaxSize'>cupsMaxSize</a></h3>
<p class='summary'>*cupsMaxSize .Qualifier2.Qualifier3: "width length"<br>
*cupsMaxSize .Qualifier2.: "width length"<br>
<h2 class='title'><a name='ATTRIBUTES'>General Attributes</a></h2>
-<h3><span class='info'>CUPS 1.3/Mac OS X 10.5</span><a name='cupsBackSide'>cupsBackSide</a></h3>
+<h3><span class='info'>CUPS 1.3/OS X 10.5</span><a name='cupsBackSide'>cupsBackSide</a></h3>
<p class='summary'>*cupsBackSide: keyword</p>
</table>
</div>
-<p><em>* - Not supported in Mac OS X 10.5.x and earlier</em></p>
+<p><em>* - Not supported in OS X 10.5.x and earlier</em></p>
<div class='figure'><table summary='Back side images'>
<caption>Figure 1: Back side images</caption>
<p>Also see the related <a href='#APDuplexRequiresFlippedMargin'><tt>APDuplexRequiresFlippedMargin</tt></a>
keyword.</p>
-<h3><span class='info'>CUPS 1.4/Mac OS X 10.6</span><a name='cupsCommands'>cupsCommands</a></h3>
+<h3><span class='info'>CUPS 1.4/OS X 10.6</span><a name='cupsCommands'>cupsCommands</a></h3>
<p class='summary'>*cupsCommands: "name name2 ... nameN"</p>
</pre>
-<h3><span class='info'>CUPS 1.3/Mac OS X 10.5</span><a name='cupsEvenDuplex'>cupsEvenDuplex</a></h3>
+<h3><span class='info'>CUPS 1.3/OS X 10.5</span><a name='cupsEvenDuplex'>cupsEvenDuplex</a></h3>
<p class='summary'>*cupsEvenDuplex: boolean</p>
<p class='summary'>*cupsFlipDuplex: boolean</p>
-<p>Due to implementation differences between Mac OS X and Ghostscript,
+<p>Due to implementation differences between OS X and Ghostscript,
the <tt>cupsFlipDuplex</tt> keyword is deprecated. Instead, use
the <a href='#cupsBackSide'><tt>cupsBackSide</tt></a> keyword to specify
the coordinate system (pixel layout) of the page data on the back side of
duplex pages.</p>
<p>The value <code>true</code> maps to a <tt>cupsBackSide</tt> value
-of <code>Rotated</code> on Mac OS X and <code>Flipped</code> with
+of <code>Rotated</code> on OS X and <code>Flipped</code> with
Ghostscript.</p>
<p>The default value is <code>false</code>.</p>
<blockquote><b>Note:</b>
-<p>Mac OS X drivers that previously used
+<p>OS X drivers that previously used
<tt>cupsFlipDuplex</tt> may wish to provide both the old and
new keywords for maximum compatibility, for example:</p>
*cupsFlipDuplex: true
</pre></blockquote>
-<h3><span class='info'>CUPS 1.3/Mac OS X 10.5</span><a name='cupsIPPFinishings'>cupsIPPFinishings</a></h3>
+<h3><span class='info'>CUPS 1.3/OS X 10.5</span><a name='cupsIPPFinishings'>cupsIPPFinishings</a></h3>
<p class='summary'>*cupsIPPFinishings number/text: "*Option Choice ..."</p>
*cupsIPPFinishings 21/staple-bottom-left: "*StapleLocation SingleLandscape"
</pre>
-<h3><span class='info'>CUPS 1.3/Mac OS X 10.5</span><a name='cupsIPPReason'>cupsIPPReason</a></h3>
+<h3><span class='info'>CUPS 1.3/OS X 10.5</span><a name='cupsIPPReason'>cupsIPPReason</a></h3>
<p class='summary'>*cupsIPPReason reason/Reason Text: "optional URIs"</p>
*cupsIPPSupplies: False
</pre>
-<h3><span class='info'>CUPS 1.2/Mac OS X 10.5</span><a name='cupsLanguages'>cupsLanguages</a></h3>
+<h3><span class='info'>CUPS 1.2/OS X 10.5</span><a name='cupsLanguages'>cupsLanguages</a></h3>
<p class='summary'>*cupsLanguages: "locale list"</p>
*cupsManualCopies: true
</pre>
-<h3><span class='info'>CUPS 1.4/Mac OS X 10.6</span><a name='cupsMarkerName'>cupsMarkerName</a></h3>
+<h3><span class='info'>CUPS 1.4/OS X 10.6</span><a name='cupsMarkerName'>cupsMarkerName</a></h3>
<p class='summary'>*cupsMarkerName/Name Text: ""</p>
*cupsMarkerName cyanToner/Cyan Toner: ""
</pre>
-<h3><span class='info'>CUPS 1.4/Mac OS X 10.6</span><a name='cupsMarkerNotice'>cupsMarkerNotice</a></h3>
+<h3><span class='info'>CUPS 1.4/OS X 10.6</span><a name='cupsMarkerNotice'>cupsMarkerNotice</a></h3>
<p class='summary'>*cupsMarkerNotice: "disclaimer text"</p>
*cupsMarkerNotice: "Supply levels are approximate."
</pre>
-<h3><span class='info'>CUPS 1.6</span><a name='cupsMaxCopies'>cupsMaxCopies</a></h3>
+<h3><span class='info'>CUPS 1.6/OS X 10.8</span><a name='cupsMaxCopies'>cupsMaxCopies</a></h3>
<p class='summary'>*cupsMaxCopies: integer</p>
*cupsModelNumber: 1234
</pre>
-<h3><span class='info'>CUPS 1.3/Mac OS X 10.5</span><a name='cupsPJLCharset'>cupsPJLCharset</a></h3>
+<h3><span class='info'>CUPS 1.3/OS X 10.5</span><a name='cupsPJLCharset'>cupsPJLCharset</a></h3>
<p class='summary'>*cupsPJLCharset: "ISO character set name"</p>
*cupsPJLCharset: "UTF-8"
</pre>
-<h3><span class='info'>CUPS 1.4/Mac OS X 10.6</span><a name='cupsPJLDisplay'>cupsPJLDisplay</a></h3>
+<h3><span class='info'>CUPS 1.4/OS X 10.6</span><a name='cupsPJLDisplay'>cupsPJLDisplay</a></h3>
<p class='summary'>*cupsPJLDisplay: "what"</p>
*cupsPJLDisplay: "none"
</pre>
-<h3><span class='info'>CUPS 1.2/Mac OS X 10.5</span><a name='cupsPortMonitor'>cupsPortMonitor</a></h3>
+<h3><span class='info'>CUPS 1.2/OS X 10.5</span><a name='cupsPortMonitor'>cupsPortMonitor</a></h3>
<p class='summary'>*cupsPortMonitor urischeme/Descriptive Text: "port monitor"</p>
*cupsPortMonitor usb/USB Status Monitor: "epson-usb"
</pre>
-<h3><span class='info'>CUPS 1.3/Mac OS X 10.5</span><a name='cupsPreFilter'>cupsPreFilter</a></h3>
+<h3><span class='info'>CUPS 1.3/OS X 10.5</span><a name='cupsPreFilter'>cupsPreFilter</a></h3>
<p class='summary'>*cupsPreFilter: "source/type cost program"</p>
*cupsSingleFile: True
</pre>
-<h3><span class='info'>CUPS 1.4/Mac OS X 10.6</span><a name='cupsSNMPSupplies'>cupsSNMPSupplies</a></h3>
+<h3><span class='info'>CUPS 1.4/OS X 10.6</span><a name='cupsSNMPSupplies'>cupsSNMPSupplies</a></h3>
<p class='summary'>*cupsSNMPSupplies: boolean</p>
</pre>
-<h3><span class="info">CUPS 1.6</span><a name="JCLToPDFInterpreter">JCLToPDFInterpreter</a></h3>
+<h3><span class="info">CUPS 1.6/OS X 10.8</span><a name="JCLToPDFInterpreter">JCLToPDFInterpreter</a></h3>
<p class="summary">*JCLToPDFInterpreter: "JCL"</p>
</pre>
-<h2 class='title'><a name='MACOSX'>Mac OS X Attributes</a></h2>
+<h2 class='title'><a name='MACOSX'>OS X Attributes</a></h2>
-<h3><span class='info'>Mac OS X 10.3</span><a name='APDialogExtension'>APDialogExtension</a></h3>
+<h3><span class='info'>OS X 10.3</span><a name='APDialogExtension'>APDialogExtension</a></h3>
<p class='summary'>*APDialogExtension: "/Library/Printers/vendor/filename.plugin"</p>
<blockquote><b>Note:</b>
-<p>Starting with Mac OS X 10.5, each plug-in must be compiled "4-way fat"
+<p>Starting with OS X 10.5, each plug-in must be compiled "4-way fat"
(32-bit and 64-bit for both PowerPC and Intel) with garbage collection enabled
in order to be usable with all applications.</p>
*APDialogExtension: "/Library/Printers/vendor/options.plugin"
</pre>
-<h3><span class='info'>Mac OS X 10.4</span><a name='APDuplexRequiresFlippedMargin'>APDuplexRequiresFlippedMargin</a></h3>
+<h3><span class='info'>OS X 10.4</span><a name='APDuplexRequiresFlippedMargin'>APDuplexRequiresFlippedMargin</a></h3>
<p class='summary'>*APDuplexRequiresFlippedMargin: boolean</p>
*APHelpBook: "file:///Library/Printers/vendor/Help.bundle"
</pre>
-<h3><span class='info'>Mac OS X 10.6</span><a name='APICADriver'>APICADriver</a></h3>
+<h3><span class='info'>OS X 10.6</span><a name='APICADriver'>APICADriver</a></h3>
<p class='summary'>*APICADriver: boolean</p>
*APScanAppBundleID: "com.apple.ImageCaptureApp"
</pre>
-<h3><span class='info'>Mac OS X 10.3</span><a name='APPrinterIconPath'>APPrinterIconPath</a></h3>
+<h3><span class='info'>OS X 10.3</span><a name='APPrinterIconPath'>APPrinterIconPath</a></h3>
<p class='summary'>*APPrinterIconPath: "/Library/Printers/vendor/filename.icns"</p>
*APPrinterIconPath: "/Library/Printers/vendor/Icons/filename.icns"
</pre>
-<h3><span class='info'>Mac OS X 10.4</span><a name='APPrinterLowInkTool'>APPrinterLowInkTool</a></h3>
+<h3><span class='info'>OS X 10.4</span><a name='APPrinterLowInkTool'>APPrinterLowInkTool</a></h3>
<p class='summary'>*APPrinterLowInkTool: "/Library/Printers/vendor/program"</p>
*APPrinterLowInkTool: "/Library/Printers/vendor/Tools/lowinktool"
</pre>
-<h3><span class='info'>Mac OS X 10.5</span><a name='APPrinterPreset'>APPrinterPreset</a></h3>
+<h3><span class='info'>OS X 10.5</span><a name='APPrinterPreset'>APPrinterPreset</a></h3>
<p class='summary'>*APPrinterPreset name/text: "*Option Choice ..."</p>
*fr.APPrinterPreset Photo_on_Photo_Paper/Photo sur papier photographique: ""
</pre>
-<h3><span class='info'>Mac OS X 10.3</span><a name='APPrinterUtilityPath'>APPrinterUtilityPath</a></h3>
+<h3><span class='info'>OS X 10.3</span><a name='APPrinterUtilityPath'>APPrinterUtilityPath</a></h3>
<p class='summary'>*APPrinterPrinterUtilityPath: "/Library/Printers/vendor/filename.app"</p>
*APPrinterPrinterUtilityPath: "/Library/Printers/vendor/Tools/utility.app"
</pre>
-<h3><span class='info'>Mac OS X 10.6</span><a name='APScannerOnly'>APScannerOnly</a></h3>
+<h3><span class='info'>OS X 10.6</span><a name='APScannerOnly'>APScannerOnly</a></h3>
<p class='summary'>*APScannerOnly: boolean</p>
*APScannerOnly: True
</pre>
-<h3><span class='info'>Mac OS X 10.3</span><a name='APScanAppBundleID'>APScanAppBundleID</a></h3>
+<h3><span class='info'>OS X 10.3</span><a name='APScanAppBundleID'>APScanAppBundleID</a></h3>
<p class='summary'>*APScanAppBundleID: "bundle ID"</p>
<ul>
- <li>Added missing Mac OS X <tt>AP</tt> keywords.</li>
+ <li>Added missing OS X <tt>AP</tt> keywords.</li>
<li>Added section on auto-configuration including the
<tt>OID<i>MainKeyword</i></tt> and <tt>?<i>MainKeyword</i></tt>
-checkpo.o: checkpo.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
-po2strings.o: po2strings.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
+checkpo.o: checkpo.c ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/versioning.h \
+ ../cups/ipp-private.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
+ ../cups/http-private.h ../cups/md5-private.h \
+ ../cups/language-private.h ../cups/transcode.h ../cups/language.h \
+ ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
+po2strings.o: po2strings.c ../cups/cups-private.h \
+ ../cups/string-private.h ../config.h ../cups/debug-private.h \
+ ../cups/versioning.h ../cups/ipp-private.h ../cups/ipp.h \
+ ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
strings2po.o: strings2po.c
-translate.o: translate.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
+translate.o: translate.c ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/versioning.h \
+ ../cups/ipp-private.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
+ ../cups/http-private.h ../cups/md5-private.h \
+ ../cups/language-private.h ../cups/transcode.h ../cups/language.h \
+ ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
#
# po2strings - A simple utility which uses iconv to convert GNU gettext
-# message catalogs to Mac OS X .strings files.
+# message catalogs to OS X .strings files.
#
# po2strings filename.po filename.strings
#
#
-# strings2po - A simple utility which uses iconv to convert Mac OS X
-# .strings files to GNU gettext message catalogs.
+# strings2po - A simple utility which uses iconv to convert OS X .strings files
+# to GNU gettext message catalogs.
#
# strings2po filename.strings filename.po
#
msgstr ""
"Project-Id-Version: CUPS 1.6\n"
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
-"POT-Creation-Date: 2012-03-07 13:37-0800\n"
+"POT-Creation-Date: 2012-04-23 12:19-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "\t\t(none)"
msgstr ""
-#: berkeley/lpc.c:433
+#: berkeley/lpc.c:434
#, c-format
msgid "\t%d entries"
msgstr ""
msgid "\tUsers denied:"
msgstr ""
-#: berkeley/lpc.c:435
+#: berkeley/lpc.c:436
msgid "\tdaemon present"
msgstr ""
-#: berkeley/lpc.c:431
+#: berkeley/lpc.c:432
msgid "\tno entries"
msgstr ""
-#: berkeley/lpc.c:403 berkeley/lpc.c:415
+#: berkeley/lpc.c:404 berkeley/lpc.c:416
#, c-format
msgid "\tprinter is on device '%s' speed -1"
msgstr ""
-#: berkeley/lpc.c:428
+#: berkeley/lpc.c:429
msgid "\tprinting is disabled"
msgstr ""
-#: berkeley/lpc.c:426
+#: berkeley/lpc.c:427
msgid "\tprinting is enabled"
msgstr ""
msgid "\tqueued for %s"
msgstr ""
-#: berkeley/lpc.c:423
+#: berkeley/lpc.c:424
msgid "\tqueuing is disabled"
msgstr ""
-#: berkeley/lpc.c:421
+#: berkeley/lpc.c:422
msgid "\tqueuing is enabled"
msgstr ""
" DETAILED CONFORMANCE TEST RESULTS"
msgstr ""
-#: systemv/cupstestppd.c:3799
+#: systemv/cupstestppd.c:3800
msgid " Ignore specific warnings."
msgstr ""
-#: systemv/cupstestppd.c:3803
+#: systemv/cupstestppd.c:3804
msgid " Issue warnings instead of errors."
msgstr ""
msgid " PASS LanguageVersion"
msgstr ""
-#: systemv/cupstestppd.c:767
+#: systemv/cupstestppd.c:769
msgid " PASS Manufacturer"
msgstr ""
-#: systemv/cupstestppd.c:807
+#: systemv/cupstestppd.c:809
msgid " PASS ModelName"
msgstr ""
-#: systemv/cupstestppd.c:827
+#: systemv/cupstestppd.c:829
msgid " PASS NickName"
msgstr ""
-#: systemv/cupstestppd.c:887
+#: systemv/cupstestppd.c:889
msgid " PASS PCFileName"
msgstr ""
-#: systemv/cupstestppd.c:962
+#: systemv/cupstestppd.c:964
msgid " PASS PSVersion"
msgstr ""
-#: systemv/cupstestppd.c:867
+#: systemv/cupstestppd.c:869
msgid " PASS PageRegion"
msgstr ""
-#: systemv/cupstestppd.c:847
+#: systemv/cupstestppd.c:849
msgid " PASS PageSize"
msgstr ""
-#: systemv/cupstestppd.c:922
+#: systemv/cupstestppd.c:924
msgid " PASS Product"
msgstr ""
-#: systemv/cupstestppd.c:997
+#: systemv/cupstestppd.c:999
msgid " PASS ShortNickName"
msgstr ""
-#: systemv/cupstestppd.c:1372
+#: systemv/cupstestppd.c:1374
#, c-format
msgid " WARN %s has no corresponding options."
msgstr ""
-#: systemv/cupstestppd.c:1484
+#: systemv/cupstestppd.c:1486
#, c-format
msgid ""
" WARN %s shares a common prefix with %s\n"
" REF: Page 15, section 3.2."
msgstr ""
-#: systemv/cupstestppd.c:1343
+#: systemv/cupstestppd.c:1345
#, c-format
msgid ""
" WARN Duplex option keyword %s may not work as expected and should be named Duplex.\n"
" REF: Page 122, section 5.17"
msgstr ""
-#: systemv/cupstestppd.c:1742
+#: systemv/cupstestppd.c:1744
msgid " WARN File contains a mix of CR, LF, and CR LF line endings."
msgstr ""
-#: systemv/cupstestppd.c:1388
+#: systemv/cupstestppd.c:1390
msgid ""
" WARN LanguageEncoding required by PPD 4.3 spec.\n"
" REF: Pages 56-57, section 5.3."
msgstr ""
-#: systemv/cupstestppd.c:1724
+#: systemv/cupstestppd.c:1726
#, c-format
msgid " WARN Line %d only contains whitespace."
msgstr ""
-#: systemv/cupstestppd.c:1396
+#: systemv/cupstestppd.c:1398
msgid ""
" WARN Manufacturer required by PPD 4.3 spec.\n"
" REF: Pages 58-59, section 5.3."
msgstr ""
-#: systemv/cupstestppd.c:1747
+#: systemv/cupstestppd.c:1749
msgid " WARN Non-Windows PPD files should use lines ending with only LF, not CR LF."
msgstr ""
-#: systemv/cupstestppd.c:1380
+#: systemv/cupstestppd.c:1382
#, c-format
msgid ""
" WARN Obsolete PPD version %.1f.\n"
" REF: Page 42, section 5.2."
msgstr ""
-#: systemv/cupstestppd.c:1411
+#: systemv/cupstestppd.c:1413
msgid ""
" WARN PCFileName longer than 8.3 in violation of PPD spec.\n"
" REF: Pages 61-62, section 5.3."
msgstr ""
-#: systemv/cupstestppd.c:1419
+#: systemv/cupstestppd.c:1421
msgid ""
" WARN PCFileName should contain a unique filename.\n"
" REF: Pages 61-62, section 5.3."
msgstr ""
-#: systemv/cupstestppd.c:1454
+#: systemv/cupstestppd.c:1456
msgid ""
" WARN Protocols contains PJL but JCL attributes are not set.\n"
" REF: Pages 78-79, section 5.7."
msgstr ""
-#: systemv/cupstestppd.c:1445
+#: systemv/cupstestppd.c:1447
msgid ""
" WARN Protocols contains both PJL and BCP; expected TBCP.\n"
" REF: Pages 78-79, section 5.7."
msgstr ""
-#: systemv/cupstestppd.c:1428
+#: systemv/cupstestppd.c:1430
msgid ""
" WARN ShortNickName required by PPD 4.3 spec.\n"
" REF: Pages 64-65, section 5.3."
msgid " cupstestdsc [options] -"
msgstr ""
-#: systemv/cupstestppd.c:3794
+#: systemv/cupstestppd.c:3795
msgid " program | cupstestppd [options] -"
msgstr ""
-#: systemv/cupstestppd.c:3726
+#: systemv/cupstestppd.c:3727
#, c-format
msgid ""
" %s \"%s %s\" conflicts with \"%s %s\"\n"
" (constraint=\"%s %s %s %s\")."
msgstr ""
-#: systemv/cupstestppd.c:2246
+#: systemv/cupstestppd.c:2248
#, c-format
msgid " %s %s %s does not exist."
msgstr ""
-#: systemv/cupstestppd.c:3883
+#: systemv/cupstestppd.c:3884
#, c-format
msgid " %s %s file \"%s\" has the wrong capitalization."
msgstr ""
-#: systemv/cupstestppd.c:2316
+#: systemv/cupstestppd.c:2318
#, c-format
msgid ""
" %s Bad %s choice %s.\n"
" REF: Page 122, section 5.17"
msgstr ""
-#: systemv/cupstestppd.c:3486 systemv/cupstestppd.c:3535
-#: systemv/cupstestppd.c:3574
+#: systemv/cupstestppd.c:3487 systemv/cupstestppd.c:3536
+#: systemv/cupstestppd.c:3575
#, c-format
msgid " %s Bad UTF-8 \"%s\" translation string for option %s, choice %s."
msgstr ""
-#: systemv/cupstestppd.c:3440
+#: systemv/cupstestppd.c:3441
#, c-format
msgid " %s Bad UTF-8 \"%s\" translation string for option %s."
msgstr ""
-#: systemv/cupstestppd.c:2387
+#: systemv/cupstestppd.c:2389
#, c-format
msgid " %s Bad cupsFilter value \"%s\"."
msgstr ""
-#: systemv/cupstestppd.c:2473
+#: systemv/cupstestppd.c:2475
#, c-format
msgid " %s Bad cupsFilter2 value \"%s\"."
msgstr ""
-#: systemv/cupstestppd.c:2962
+#: systemv/cupstestppd.c:2964
#, c-format
msgid " %s Bad cupsICCProfile %s."
msgstr ""
-#: systemv/cupstestppd.c:2569
+#: systemv/cupstestppd.c:2571
#, c-format
msgid " %s Bad cupsPreFilter value \"%s\"."
msgstr ""
-#: systemv/cupstestppd.c:1820
+#: systemv/cupstestppd.c:1822
#, c-format
msgid " %s Bad cupsUIConstraints %s: \"%s\""
msgstr ""
-#: systemv/cupstestppd.c:3390
+#: systemv/cupstestppd.c:3391
#, c-format
msgid " %s Bad language \"%s\"."
msgstr ""
-#: systemv/cupstestppd.c:2431 systemv/cupstestppd.c:2527
-#: systemv/cupstestppd.c:2613 systemv/cupstestppd.c:2671
-#: systemv/cupstestppd.c:2726 systemv/cupstestppd.c:2781
-#: systemv/cupstestppd.c:2836 systemv/cupstestppd.c:2889
-#: systemv/cupstestppd.c:3011
+#: systemv/cupstestppd.c:2433 systemv/cupstestppd.c:2529
+#: systemv/cupstestppd.c:2615 systemv/cupstestppd.c:2673
+#: systemv/cupstestppd.c:2728 systemv/cupstestppd.c:2783
+#: systemv/cupstestppd.c:2838 systemv/cupstestppd.c:2891
+#: systemv/cupstestppd.c:3013
#, c-format
msgid " %s Bad permissions on %s file \"%s\"."
msgstr ""
-#: systemv/cupstestppd.c:2371 systemv/cupstestppd.c:2457
-#: systemv/cupstestppd.c:2553 systemv/cupstestppd.c:2640
-#: systemv/cupstestppd.c:2695 systemv/cupstestppd.c:2750
-#: systemv/cupstestppd.c:2805 systemv/cupstestppd.c:2860
+#: systemv/cupstestppd.c:2373 systemv/cupstestppd.c:2459
+#: systemv/cupstestppd.c:2555 systemv/cupstestppd.c:2642
+#: systemv/cupstestppd.c:2697 systemv/cupstestppd.c:2752
+#: systemv/cupstestppd.c:2807 systemv/cupstestppd.c:2862
#, c-format
msgid " %s Bad spelling of %s - should be %s."
msgstr ""
-#: systemv/cupstestppd.c:2905
+#: systemv/cupstestppd.c:2907
#, c-format
msgid " %s Cannot provide both APScanAppPath and APScanAppBundleID."
msgstr ""
-#: systemv/cupstestppd.c:2203
+#: systemv/cupstestppd.c:2205
#, c-format
msgid " %s Default choices conflicting."
msgstr ""
-#: systemv/cupstestppd.c:1801
+#: systemv/cupstestppd.c:1803
#, c-format
msgid " %s Empty cupsUIConstraints %s"
msgstr ""
-#: systemv/cupstestppd.c:3518 systemv/cupstestppd.c:3558
+#: systemv/cupstestppd.c:3519 systemv/cupstestppd.c:3559
#, c-format
msgid " %s Missing \"%s\" translation string for option %s, choice %s."
msgstr ""
-#: systemv/cupstestppd.c:3426
+#: systemv/cupstestppd.c:3427
#, c-format
msgid " %s Missing \"%s\" translation string for option %s."
msgstr ""
-#: systemv/cupstestppd.c:2416 systemv/cupstestppd.c:2512
-#: systemv/cupstestppd.c:2598 systemv/cupstestppd.c:2656
-#: systemv/cupstestppd.c:2711 systemv/cupstestppd.c:2766
-#: systemv/cupstestppd.c:2821 systemv/cupstestppd.c:2873
-#: systemv/cupstestppd.c:2996
+#: systemv/cupstestppd.c:2418 systemv/cupstestppd.c:2514
+#: systemv/cupstestppd.c:2600 systemv/cupstestppd.c:2658
+#: systemv/cupstestppd.c:2713 systemv/cupstestppd.c:2768
+#: systemv/cupstestppd.c:2823 systemv/cupstestppd.c:2875
+#: systemv/cupstestppd.c:2998
#, c-format
msgid " %s Missing %s file \"%s\"."
msgstr ""
-#: systemv/cupstestppd.c:3119
+#: systemv/cupstestppd.c:3121
#, c-format
msgid ""
" %s Missing REQUIRED PageRegion option.\n"
" REF: Page 100, section 5.14."
msgstr ""
-#: systemv/cupstestppd.c:3104
+#: systemv/cupstestppd.c:3106
#, c-format
msgid ""
" %s Missing REQUIRED PageSize option.\n"
" REF: Page 99, section 5.14."
msgstr ""
-#: systemv/cupstestppd.c:2011 systemv/cupstestppd.c:2052
+#: systemv/cupstestppd.c:2013 systemv/cupstestppd.c:2054
#, c-format
msgid " %s Missing choice *%s %s in UIConstraints \"*%s %s *%s %s\"."
msgstr ""
-#: systemv/cupstestppd.c:1906
+#: systemv/cupstestppd.c:1908
#, c-format
msgid " %s Missing choice *%s %s in cupsUIConstraints %s: \"%s\""
msgstr ""
-#: systemv/cupstestppd.c:1838
+#: systemv/cupstestppd.c:1840
#, c-format
msgid " %s Missing cupsUIResolver %s"
msgstr ""
-#: systemv/cupstestppd.c:1997 systemv/cupstestppd.c:2038
+#: systemv/cupstestppd.c:1999 systemv/cupstestppd.c:2040
#, c-format
msgid " %s Missing option %s in UIConstraints \"*%s %s *%s %s\"."
msgstr ""
-#: systemv/cupstestppd.c:1890
+#: systemv/cupstestppd.c:1892
#, c-format
msgid " %s Missing option %s in cupsUIConstraints %s: \"%s\""
msgstr ""
-#: systemv/cupstestppd.c:3612
+#: systemv/cupstestppd.c:3613
#, c-format
msgid " %s No base translation \"%s\" is included in file."
msgstr ""
-#: systemv/cupstestppd.c:2292
+#: systemv/cupstestppd.c:2294
#, c-format
msgid ""
" %s REQUIRED %s does not define choice None.\n"
" REF: Page 122, section 5.17"
msgstr ""
-#: systemv/cupstestppd.c:3177 systemv/cupstestppd.c:3191
+#: systemv/cupstestppd.c:3180 systemv/cupstestppd.c:3194
#, c-format
msgid " %s Size \"%s\" defined for %s but not for %s."
msgstr ""
-#: systemv/cupstestppd.c:3157
+#: systemv/cupstestppd.c:3160
#, c-format
msgid " %s Size \"%s\" has unexpected dimensions (%gx%g)."
msgstr ""
-#: systemv/cupstestppd.c:3331
+#: systemv/cupstestppd.c:3332
#, c-format
msgid " %s Size \"%s\" should be \"%s\"."
msgstr ""
msgid " %s Size \"%s\" should be the Adobe standard name \"%s\"."
msgstr ""
-#: systemv/cupstestppd.c:3039
+#: systemv/cupstestppd.c:3041
#, c-format
msgid " %s cupsICCProfile %s hash value collides with %s."
msgstr ""
-#: systemv/cupstestppd.c:1961
+#: systemv/cupstestppd.c:1963
#, c-format
msgid " %s cupsUIResolver %s causes a loop."
msgstr ""
-#: systemv/cupstestppd.c:1943
+#: systemv/cupstestppd.c:1945
#, c-format
msgid " %s cupsUIResolver %s does not list at least two different options."
msgstr ""
-#: systemv/cupstestppd.c:2161
-#, c-format
-msgid " **FAIL** %s choice names %s and %s differ only by case."
-msgstr ""
-
-#: systemv/cupstestppd.c:1166
+#: systemv/cupstestppd.c:1168
#, c-format
msgid ""
" **FAIL** %s must be 1284DeviceID\n"
#: systemv/cupstestppd.c:580
#, c-format
msgid ""
-" **FAIL** BAD Default%s %s\n"
+" **FAIL** Bad Default%s %s\n"
" REF: Page 40, section 4.5."
msgstr ""
#: systemv/cupstestppd.c:514
#, c-format
msgid ""
-" **FAIL** BAD DefaultImageableArea %s\n"
+" **FAIL** Bad DefaultImageableArea %s\n"
" REF: Page 102, section 5.15."
msgstr ""
#: systemv/cupstestppd.c:550
#, c-format
msgid ""
-" **FAIL** BAD DefaultPaperDimension %s\n"
+" **FAIL** Bad DefaultPaperDimension %s\n"
" REF: Page 103, section 5.15."
msgstr ""
-#: systemv/cupstestppd.c:1023
+#: systemv/cupstestppd.c:623
+#, c-format
msgid ""
-" **FAIL** BAD JobPatchFile attribute in file\n"
-" REF: Page 24, section 3.4."
+" **FAIL** Bad FileVersion \"%s\"\n"
+" REF: Page 56, section 5.3."
msgstr ""
-#: systemv/cupstestppd.c:743
+#: systemv/cupstestppd.c:667
+#, c-format
msgid ""
-" **FAIL** BAD Manufacturer (should be \"HP\")\n"
-" REF: Page 211, table D.1."
+" **FAIL** Bad FormatVersion \"%s\"\n"
+" REF: Page 56, section 5.3."
msgstr ""
-#: systemv/cupstestppd.c:759
+#: systemv/cupstestppd.c:1025
msgid ""
-" **FAIL** BAD Manufacturer (should be \"Oki\")\n"
-" REF: Page 211, table D.1."
+" **FAIL** Bad JobPatchFile attribute in file\n"
+" REF: Page 24, section 3.4."
msgstr ""
-#: systemv/cupstestppd.c:798
+#: systemv/cupstestppd.c:1213
#, c-format
-msgid ""
-" **FAIL** BAD ModelName - \"%c\" not allowed in string.\n"
-" REF: Pages 59-60, section 5.3."
-msgstr ""
-
-#: systemv/cupstestppd.c:954
-msgid ""
-" **FAIL** BAD PSVersion - not \"(string) int\".\n"
-" REF: Pages 62-64, section 5.3."
+msgid " **FAIL** Bad LanguageEncoding %s - must be ISOLatin1."
msgstr ""
-#: systemv/cupstestppd.c:915
-msgid ""
-" **FAIL** BAD Product - not \"(string)\".\n"
-" REF: Page 62, section 5.3."
+#: systemv/cupstestppd.c:1227
+#, c-format
+msgid " **FAIL** Bad LanguageVersion %s - must be English."
msgstr ""
-#: systemv/cupstestppd.c:989
+#: systemv/cupstestppd.c:743 systemv/cupstestppd.c:760
+#, c-format
msgid ""
-" **FAIL** BAD ShortNickName - longer than 31 chars.\n"
-" REF: Pages 64-65, section 5.3."
+" **FAIL** Bad Manufacturer (should be \"%s\")\n"
+" REF: Page 211, table D.1."
msgstr ""
-#: systemv/cupstestppd.c:1147
+#: systemv/cupstestppd.c:800
#, c-format
msgid ""
-" **FAIL** Bad %s choice %s\n"
-" REF: Page 84, section 5.9"
+" **FAIL** Bad ModelName - \"%c\" not allowed in string.\n"
+" REF: Pages 59-60, section 5.3."
msgstr ""
-#: systemv/cupstestppd.c:623
-#, c-format
+#: systemv/cupstestppd.c:956
msgid ""
-" **FAIL** Bad FileVersion \"%s\"\n"
-" REF: Page 56, section 5.3."
+" **FAIL** Bad PSVersion - not \"(string) int\".\n"
+" REF: Pages 62-64, section 5.3."
msgstr ""
-#: systemv/cupstestppd.c:667
-#, c-format
+#: systemv/cupstestppd.c:917
msgid ""
-" **FAIL** Bad FormatVersion \"%s\"\n"
-" REF: Page 56, section 5.3."
+" **FAIL** Bad Product - not \"(string)\".\n"
+" REF: Page 62, section 5.3."
msgstr ""
-#: systemv/cupstestppd.c:1211
-#, c-format
-msgid " **FAIL** Bad LanguageEncoding %s - must be ISOLatin1."
+#: systemv/cupstestppd.c:991
+msgid ""
+" **FAIL** Bad ShortNickName - longer than 31 chars.\n"
+" REF: Pages 64-65, section 5.3."
msgstr ""
-#: systemv/cupstestppd.c:1225
+#: systemv/cupstestppd.c:1149
#, c-format
-msgid " **FAIL** Bad LanguageVersion %s - must be English."
+msgid ""
+" **FAIL** Bad option %s choice %s\n"
+" REF: Page 84, section 5.9"
msgstr ""
-#: systemv/cupstestppd.c:3753 systemv/cupstestppd.c:3775
+#: systemv/cupstestppd.c:3754 systemv/cupstestppd.c:3776
#, c-format
msgid " **FAIL** Default option code cannot be interpreted: %s"
msgstr ""
-#: systemv/cupstestppd.c:1284
+#: systemv/cupstestppd.c:1286
#, c-format
msgid " **FAIL** Default translation string for option %s choice %s contains 8-bit characters."
msgstr ""
-#: systemv/cupstestppd.c:1257
+#: systemv/cupstestppd.c:1259
#, c-format
msgid " **FAIL** Default translation string for option %s contains 8-bit characters."
msgstr ""
-#: systemv/cupstestppd.c:2099
+#: systemv/cupstestppd.c:2101
#, c-format
msgid " **FAIL** Group names %s and %s differ only by case."
msgstr ""
-#: systemv/cupstestppd.c:2144
+#: systemv/cupstestppd.c:2146
+#, c-format
+msgid " **FAIL** Multiple occurrences of option %s choice name %s."
+msgstr ""
+
+#: systemv/cupstestppd.c:2163
#, c-format
-msgid " **FAIL** Multiple occurrences of %s choice name %s."
+msgid " **FAIL** Option %s choice names %s and %s differ only by case."
msgstr ""
-#: systemv/cupstestppd.c:2121
+#: systemv/cupstestppd.c:2123
#, c-format
msgid " **FAIL** Option names %s and %s differ only by case."
msgstr ""
" REF: Page 56, section 5.3."
msgstr ""
-#: systemv/cupstestppd.c:1074
+#: systemv/cupstestppd.c:1076
#, c-format
msgid ""
" **FAIL** REQUIRED ImageableArea for PageSize %s\n"
" REF: Pages 57-58, section 5.3."
msgstr ""
-#: systemv/cupstestppd.c:777
+#: systemv/cupstestppd.c:779
msgid ""
" **FAIL** REQUIRED Manufacturer\n"
" REF: Pages 58-59, section 5.3."
msgstr ""
-#: systemv/cupstestppd.c:817
+#: systemv/cupstestppd.c:819
msgid ""
" **FAIL** REQUIRED ModelName\n"
" REF: Pages 59-60, section 5.3."
msgstr ""
-#: systemv/cupstestppd.c:837
+#: systemv/cupstestppd.c:839
msgid ""
" **FAIL** REQUIRED NickName\n"
" REF: Page 60, section 5.3."
msgstr ""
-#: systemv/cupstestppd.c:897
+#: systemv/cupstestppd.c:899
msgid ""
" **FAIL** REQUIRED PCFileName\n"
" REF: Pages 61-62, section 5.3."
msgstr ""
-#: systemv/cupstestppd.c:972
+#: systemv/cupstestppd.c:974
msgid ""
" **FAIL** REQUIRED PSVersion\n"
" REF: Pages 62-64, section 5.3."
msgstr ""
-#: systemv/cupstestppd.c:877
+#: systemv/cupstestppd.c:879
msgid ""
" **FAIL** REQUIRED PageRegion\n"
" REF: Page 100, section 5.14."
msgstr ""
-#: systemv/cupstestppd.c:1043
+#: systemv/cupstestppd.c:1045
msgid ""
" **FAIL** REQUIRED PageSize\n"
" REF: Page 41, section 5.\n"
" REF: Page 99, section 5.14."
msgstr ""
-#: systemv/cupstestppd.c:857
+#: systemv/cupstestppd.c:859
msgid ""
" **FAIL** REQUIRED PageSize\n"
" REF: Pages 99-100, section 5.14."
msgstr ""
-#: systemv/cupstestppd.c:1096
+#: systemv/cupstestppd.c:1098
#, c-format
msgid ""
" **FAIL** REQUIRED PaperDimension for PageSize %s\n"
" REF: Page 103, section 5.15."
msgstr ""
-#: systemv/cupstestppd.c:932
+#: systemv/cupstestppd.c:934
msgid ""
" **FAIL** REQUIRED Product\n"
" REF: Page 62, section 5.3."
msgstr ""
-#: systemv/cupstestppd.c:1007
+#: systemv/cupstestppd.c:1009
msgid ""
" **FAIL** REQUIRED ShortNickName\n"
" REF: Page 64-65, section 5.3."
msgstr ""
#: systemv/cupstestppd.c:334 systemv/cupstestppd.c:353
-#, c-format
-msgid " **FAIL** Unable to open PPD file - %s"
-msgstr ""
-
#: systemv/cupstestppd.c:365
#, c-format
msgid " **FAIL** Unable to open PPD file - %s on line %d."
msgstr ""
-#: systemv/cupstestppd.c:1496
+#: systemv/cupstestppd.c:1498
#, c-format
msgid " %d ERRORS FOUND"
msgstr ""
" REF: Page 43, %%Pages:"
msgstr ""
-#: systemv/cupstestppd.c:1498
+#: systemv/cupstestppd.c:1500
msgid " NO ERRORS FOUND"
msgstr ""
msgid " --[no-]user-cancel-any Allow/prevent users to cancel any job."
msgstr ""
-#: ppdc/ppdc.cxx:456
+#: ppdc/ppdc.cxx:455
msgid " --cr End lines with CR (Mac OS 9)."
msgstr ""
-#: ppdc/ppdc.cxx:458
+#: ppdc/ppdc.cxx:457
msgid " --crlf End lines with CR + LF (Windows)."
msgstr ""
-#: ppdc/ppdc.cxx:460
-msgid " --lf End lines with LF (UNIX/Linux/Mac OS X)."
+#: ppdc/ppdc.cxx:459
+msgid " --lf End lines with LF (UNIX/Linux/OS X)."
msgstr ""
#: test/ipptool.c:4337
msgid " -C Send requests using chunking (default)."
msgstr ""
-#: scheduler/cupsfilter.c:1439 scheduler/cupsfilter.c:1466
+#: scheduler/cupsfilter.c:1431
msgid " -D Remove the input file when finished."
msgstr ""
msgid " -D name=value Set named variable to value."
msgstr ""
-#: systemv/cupsctl.c:205
-msgid " -E Enable encryption."
-msgstr ""
-
-#: systemv/cupsaddsmb.c:285
-msgid " -E Encrypt the connection to the server."
+#: systemv/cupsaddsmb.c:285 systemv/cupsctl.c:205
+msgid " -E Encrypt the connection."
msgstr ""
#: test/ipptool.c:4341
-msgid " -E Test with TLS encryption."
+msgid " -E Test with HTTP Upgrade to TLS."
msgstr ""
-#: scheduler/main.c:2023
+#: scheduler/main.c:2021
msgid " -F Run in the foreground but detach from console."
msgstr ""
-#: systemv/cupsaddsmb.c:287
+#: systemv/cupsaddsmb.c:286
msgid " -H samba-server Use the named SAMBA server."
msgstr ""
msgid " -I include-dir Add include directory to search path."
msgstr ""
-#: systemv/cupstestppd.c:3798
+#: systemv/cupstestppd.c:3799
msgid " -I {filename,filters,none,profiles}"
msgstr ""
-#: scheduler/cupsfilter.c:1468
-msgid " -J title Set title."
-msgstr ""
-
#: test/ipptool.c:4344
msgid " -L Send requests using content-length."
msgstr ""
-#: scheduler/cupsfilter.c:1441 scheduler/cupsfilter.c:1469
+#: scheduler/cupsfilter.c:1433
msgid " -P filename.ppd Set PPD file."
msgstr ""
-#: systemv/cupstestppd.c:3800
+#: systemv/cupstestppd.c:3801
msgid " -R root-directory Set alternate root."
msgstr ""
msgid " -T seconds Set the receive/send timeout in seconds."
msgstr ""
-#: systemv/cupsaddsmb.c:289
-msgid " -U samba-user Authenticate using the named SAMBA user."
-msgstr ""
-
-#: scheduler/cupsfilter.c:1442 scheduler/cupsfilter.c:1470
-msgid " -U username Set username for job."
-msgstr ""
-
-#: systemv/cupsctl.c:206
+#: scheduler/cupsfilter.c:1434 systemv/cupsaddsmb.c:288 systemv/cupsctl.c:206
msgid " -U username Specify username."
msgstr ""
msgid " -V version Set default IPP version."
msgstr ""
-#: systemv/cupstestppd.c:3801
+#: systemv/cupstestppd.c:3802
msgid " -W {all,none,constraints,defaults,duplex,filters,profiles,sizes,translations}"
msgstr ""
msgid " -X Produce XML plist instead of plain text."
msgstr ""
-#: systemv/cupsaddsmb.c:291
+#: systemv/cupsaddsmb.c:289
msgid " -a Export all printers."
msgstr ""
-#: scheduler/cupsfilter.c:1471
-msgid " -a 'name=value ...' Set option(s)."
-msgstr ""
-
#: ppdc/ppdc.cxx:442
msgid " -c catalog.po Load the specified message catalog."
msgstr ""
-#: scheduler/main.c:2020
-msgid " -c config-file Load alternate configuration file."
-msgstr ""
-
-#: scheduler/cupsfilter.c:1472
-msgid " -c copies Set number of copies."
-msgstr ""
-
-#: scheduler/cupsfilter.c:1443
+#: scheduler/cupsfilter.c:1435 scheduler/main.c:2019
msgid " -c cupsd.conf Set cupsd.conf file to use."
msgstr ""
msgid " -d output-dir Specify the output directory."
msgstr ""
-#: scheduler/cupsfilter.c:1445 scheduler/cupsfilter.c:1473
+#: scheduler/cupsfilter.c:1437
msgid " -d printer Use the named printer."
msgstr ""
-#: scheduler/cupsfilter.c:1447 scheduler/cupsfilter.c:1475
+#: scheduler/cupsfilter.c:1439
msgid " -e Use every filter from the PPD file."
msgstr ""
-#: scheduler/main.c:2022
+#: scheduler/main.c:2020
msgid " -f Run in the foreground."
msgstr ""
msgid " -f filename Set default request filename."
msgstr ""
-#: scheduler/cupsfilter.c:1477
-msgid " -f filename Set file to be converted (otherwise stdin)."
-msgstr ""
-
-#: scheduler/main.c:2025
+#: scheduler/main.c:2023
msgid " -h Show this usage message."
msgstr ""
-#: systemv/cupsaddsmb.c:292
-msgid " -h cups-server Use the named CUPS server."
-msgstr ""
-
-#: systemv/cupsctl.c:207
+#: systemv/cupsaddsmb.c:290 systemv/cupsctl.c:207
msgid " -h server[:port] Specify server address."
msgstr ""
-#: scheduler/cupsfilter.c:1449 scheduler/cupsfilter.c:1479
+#: scheduler/cupsfilter.c:1441
msgid " -i mime/type Set input MIME type (otherwise auto-typed)."
msgstr ""
msgid " -i seconds Repeat the last file with the given time interval."
msgstr ""
-#: scheduler/cupsfilter.c:1451
+#: scheduler/cupsfilter.c:1443
msgid " -j job-id[,N] Filter file N from the specified job (default is file 1)."
msgstr ""
-#: scheduler/cupsfilter.c:1481
-msgid " -j mime/type Set output MIME type (otherwise application/pdf)."
-msgstr ""
-
-#: scheduler/main.c:2026
+#: scheduler/main.c:2024
msgid " -l Run cupsd from launchd(8)."
msgstr ""
msgid " -m Use the ModelName value as the filename."
msgstr ""
-#: scheduler/cupsfilter.c:1453
+#: scheduler/cupsfilter.c:1445
msgid " -m mime/type Set output MIME type (otherwise application/pdf)."
msgstr ""
-#: scheduler/cupsfilter.c:1455
+#: scheduler/cupsfilter.c:1447
msgid " -n copies Set number of copies."
msgstr ""
msgid " -n count Repeat the last file the given number of times."
msgstr ""
-#: scheduler/cupsfilter.c:1483
-msgid " -o filename Set file to be generated (otherwise stdout)."
-msgstr ""
-
#: ppdc/ppdi.cxx:133
msgid " -o filename.drv Set driver information file (otherwise ppdi.drv)."
msgstr ""
msgid " -o filename.ppd[.gz] Set output file (otherwise stdout)."
msgstr ""
-#: scheduler/cupsfilter.c:1456
+#: scheduler/cupsfilter.c:1448
msgid " -o name=value Set option(s)."
msgstr ""
-#: scheduler/cupsfilter.c:1457
+#: scheduler/cupsfilter.c:1449
msgid " -p filename.ppd Set PPD file."
msgstr ""
-#: test/ipptool.c:4362
-msgid " -q Be quiet - no output except errors."
-msgstr ""
-
-#: systemv/cupstestppd.c:3805
+#: systemv/cupstestppd.c:3806 test/ipptool.c:4362
msgid " -q Run silently."
msgstr ""
-#: systemv/cupstestppd.c:3806
+#: systemv/cupstestppd.c:3807
msgid " -r Use 'relaxed' open mode."
msgstr ""
-#: test/ipptool.c:4364
+#: test/ipptool.c:4363
msgid " -t Produce a test report."
msgstr ""
msgid " -t Test PPDs instead of generating them."
msgstr ""
-#: scheduler/main.c:2027
+#: scheduler/main.c:2025
msgid " -t Test the configuration file."
msgstr ""
-#: scheduler/cupsfilter.c:1458
+#: scheduler/cupsfilter.c:1450
msgid " -t title Set title."
msgstr ""
-#: scheduler/cupsfilter.c:1459 scheduler/cupsfilter.c:1485
+#: scheduler/cupsfilter.c:1451
msgid " -u Remove the PPD file when finished."
msgstr ""
-#: systemv/cupstestppd.c:3807
-msgid " -v Be slightly verbose."
-msgstr ""
-
+#: systemv/cupsaddsmb.c:291 systemv/cupstestppd.c:3808 test/ipptool.c:4364
#: ppdc/ppdc.cxx:452 ppdc/ppdpo.cxx:259
-msgid " -v Be verbose (more v's for more verbosity)."
-msgstr ""
-
-#: systemv/cupsaddsmb.c:294
-msgid " -v Be verbose (show commands)."
+msgid " -v Be verbose."
msgstr ""
-#: test/ipptool.c:4365
-msgid " -v Show all attributes sent and received."
-msgstr ""
-
-#: systemv/cupstestppd.c:3808
+#: systemv/cupstestppd.c:3809
msgid " -vv Be very verbose."
msgstr ""
-#: ppdc/ppdc.cxx:454
+#: ppdc/ppdc.cxx:453
msgid " -z Compress PPD files using GNU zip."
msgstr ""
#: systemv/cupstestppd.c:638 systemv/cupstestppd.c:664
#: systemv/cupstestppd.c:682 systemv/cupstestppd.c:702
#: systemv/cupstestppd.c:722 systemv/cupstestppd.c:740
-#: systemv/cupstestppd.c:756 systemv/cupstestppd.c:774
-#: systemv/cupstestppd.c:795 systemv/cupstestppd.c:814
-#: systemv/cupstestppd.c:834 systemv/cupstestppd.c:854
-#: systemv/cupstestppd.c:874 systemv/cupstestppd.c:894
-#: systemv/cupstestppd.c:912 systemv/cupstestppd.c:929
-#: systemv/cupstestppd.c:951 systemv/cupstestppd.c:969
-#: systemv/cupstestppd.c:986 systemv/cupstestppd.c:1004
-#: systemv/cupstestppd.c:1020 systemv/cupstestppd.c:1040
-#: systemv/cupstestppd.c:1071 systemv/cupstestppd.c:1093
-#: systemv/cupstestppd.c:1144 systemv/cupstestppd.c:1163
-#: systemv/cupstestppd.c:1207 systemv/cupstestppd.c:1221
-#: systemv/cupstestppd.c:1253 systemv/cupstestppd.c:1280
-#: systemv/cupstestppd.c:1798 systemv/cupstestppd.c:1817
-#: systemv/cupstestppd.c:1835 systemv/cupstestppd.c:1887
-#: systemv/cupstestppd.c:1903 systemv/cupstestppd.c:1940
-#: systemv/cupstestppd.c:1958 systemv/cupstestppd.c:1994
-#: systemv/cupstestppd.c:2008 systemv/cupstestppd.c:2035
-#: systemv/cupstestppd.c:2049 systemv/cupstestppd.c:2095
-#: systemv/cupstestppd.c:2117 systemv/cupstestppd.c:2140
-#: systemv/cupstestppd.c:2157 systemv/cupstestppd.c:2199
-#: systemv/cupstestppd.c:2242 systemv/cupstestppd.c:2289
-#: systemv/cupstestppd.c:2313 systemv/cupstestppd.c:2367
-#: systemv/cupstestppd.c:2383 systemv/cupstestppd.c:2413
-#: systemv/cupstestppd.c:2427 systemv/cupstestppd.c:2453
-#: systemv/cupstestppd.c:2469 systemv/cupstestppd.c:2509
-#: systemv/cupstestppd.c:2523 systemv/cupstestppd.c:2549
-#: systemv/cupstestppd.c:2565 systemv/cupstestppd.c:2595
-#: systemv/cupstestppd.c:2609 systemv/cupstestppd.c:2636
-#: systemv/cupstestppd.c:2653 systemv/cupstestppd.c:2667
-#: systemv/cupstestppd.c:2691 systemv/cupstestppd.c:2708
-#: systemv/cupstestppd.c:2722 systemv/cupstestppd.c:2746
-#: systemv/cupstestppd.c:2763 systemv/cupstestppd.c:2777
-#: systemv/cupstestppd.c:2801 systemv/cupstestppd.c:2818
-#: systemv/cupstestppd.c:2832 systemv/cupstestppd.c:2856
-#: systemv/cupstestppd.c:2870 systemv/cupstestppd.c:2885
-#: systemv/cupstestppd.c:2902 systemv/cupstestppd.c:2958
-#: systemv/cupstestppd.c:2993 systemv/cupstestppd.c:3007
-#: systemv/cupstestppd.c:3035 systemv/cupstestppd.c:3100
-#: systemv/cupstestppd.c:3115 systemv/cupstestppd.c:3153
-#: systemv/cupstestppd.c:3173 systemv/cupstestppd.c:3187
-#: systemv/cupstestppd.c:3386 systemv/cupstestppd.c:3422
-#: systemv/cupstestppd.c:3436 systemv/cupstestppd.c:3482
-#: systemv/cupstestppd.c:3514 systemv/cupstestppd.c:3531
-#: systemv/cupstestppd.c:3554 systemv/cupstestppd.c:3570
-#: systemv/cupstestppd.c:3608 systemv/cupstestppd.c:3749
-#: systemv/cupstestppd.c:3771 systemv/cupstestppd.c:3879
+#: systemv/cupstestppd.c:757 systemv/cupstestppd.c:776
+#: systemv/cupstestppd.c:797 systemv/cupstestppd.c:816
+#: systemv/cupstestppd.c:836 systemv/cupstestppd.c:856
+#: systemv/cupstestppd.c:876 systemv/cupstestppd.c:896
+#: systemv/cupstestppd.c:914 systemv/cupstestppd.c:931
+#: systemv/cupstestppd.c:953 systemv/cupstestppd.c:971
+#: systemv/cupstestppd.c:988 systemv/cupstestppd.c:1006
+#: systemv/cupstestppd.c:1022 systemv/cupstestppd.c:1042
+#: systemv/cupstestppd.c:1073 systemv/cupstestppd.c:1095
+#: systemv/cupstestppd.c:1146 systemv/cupstestppd.c:1165
+#: systemv/cupstestppd.c:1209 systemv/cupstestppd.c:1223
+#: systemv/cupstestppd.c:1255 systemv/cupstestppd.c:1282
+#: systemv/cupstestppd.c:1800 systemv/cupstestppd.c:1819
+#: systemv/cupstestppd.c:1837 systemv/cupstestppd.c:1889
+#: systemv/cupstestppd.c:1905 systemv/cupstestppd.c:1942
+#: systemv/cupstestppd.c:1960 systemv/cupstestppd.c:1996
+#: systemv/cupstestppd.c:2010 systemv/cupstestppd.c:2037
+#: systemv/cupstestppd.c:2051 systemv/cupstestppd.c:2097
+#: systemv/cupstestppd.c:2119 systemv/cupstestppd.c:2142
+#: systemv/cupstestppd.c:2159 systemv/cupstestppd.c:2201
+#: systemv/cupstestppd.c:2244 systemv/cupstestppd.c:2291
+#: systemv/cupstestppd.c:2315 systemv/cupstestppd.c:2369
+#: systemv/cupstestppd.c:2385 systemv/cupstestppd.c:2415
+#: systemv/cupstestppd.c:2429 systemv/cupstestppd.c:2455
+#: systemv/cupstestppd.c:2471 systemv/cupstestppd.c:2511
+#: systemv/cupstestppd.c:2525 systemv/cupstestppd.c:2551
+#: systemv/cupstestppd.c:2567 systemv/cupstestppd.c:2597
+#: systemv/cupstestppd.c:2611 systemv/cupstestppd.c:2638
+#: systemv/cupstestppd.c:2655 systemv/cupstestppd.c:2669
+#: systemv/cupstestppd.c:2693 systemv/cupstestppd.c:2710
+#: systemv/cupstestppd.c:2724 systemv/cupstestppd.c:2748
+#: systemv/cupstestppd.c:2765 systemv/cupstestppd.c:2779
+#: systemv/cupstestppd.c:2803 systemv/cupstestppd.c:2820
+#: systemv/cupstestppd.c:2834 systemv/cupstestppd.c:2858
+#: systemv/cupstestppd.c:2872 systemv/cupstestppd.c:2887
+#: systemv/cupstestppd.c:2904 systemv/cupstestppd.c:2960
+#: systemv/cupstestppd.c:2995 systemv/cupstestppd.c:3009
+#: systemv/cupstestppd.c:3037 systemv/cupstestppd.c:3102
+#: systemv/cupstestppd.c:3117 systemv/cupstestppd.c:3156
+#: systemv/cupstestppd.c:3176 systemv/cupstestppd.c:3190
+#: systemv/cupstestppd.c:3387 systemv/cupstestppd.c:3423
+#: systemv/cupstestppd.c:3437 systemv/cupstestppd.c:3483
+#: systemv/cupstestppd.c:3515 systemv/cupstestppd.c:3532
+#: systemv/cupstestppd.c:3555 systemv/cupstestppd.c:3571
+#: systemv/cupstestppd.c:3609 systemv/cupstestppd.c:3750
+#: systemv/cupstestppd.c:3772 systemv/cupstestppd.c:3880
msgid " FAIL"
msgstr ""
-#: systemv/cupstestppd.c:1304
+#: systemv/cupstestppd.c:1306
msgid " PASS"
msgstr ""
msgstr ""
#. TRANSLATORS: Message is "subject: error"
-#: cups/langprintf.c:86 scheduler/cupsfilter.c:720 systemv/lpadmin.c:805
+#: cups/langprintf.c:86 scheduler/cupsfilter.c:714 systemv/lpadmin.c:805
#: systemv/lpadmin.c:856 systemv/lpadmin.c:906 systemv/lpadmin.c:962
#: systemv/lpadmin.c:1060 systemv/lpadmin.c:1112 systemv/lpadmin.c:1168
#: systemv/lpadmin.c:1478
msgid "%s: Invalid destination name in list \"%s\"."
msgstr ""
-#: scheduler/cupsfilter.c:573
+#: scheduler/cupsfilter.c:567
#, c-format
msgid "%s: Invalid filter string \"%s\"."
msgstr ""
msgid "%s: Need job ID (\"-i jobid\") before \"-H restart\"."
msgstr ""
-#: scheduler/cupsfilter.c:464
+#: scheduler/cupsfilter.c:458
#, c-format
msgid "%s: No filter to convert from %s/%s to %s/%s."
msgstr ""
msgid "%s: Sorry, no encryption support."
msgstr ""
-#: berkeley/lpq.c:295 scheduler/cupsfilter.c:1227 systemv/cancel.c:237
+#: berkeley/lpq.c:295 scheduler/cupsfilter.c:1221 systemv/cancel.c:237
#: systemv/cupsaddsmb.c:144 systemv/cupsaddsmb.c:171
#, c-format
msgid "%s: Unable to connect to server."
msgid "%s: Unable to contact server."
msgstr ""
-#: scheduler/cupsfilter.c:430
+#: scheduler/cupsfilter.c:424
#, c-format
msgid "%s: Unable to determine MIME type of \"%s\"."
msgstr ""
msgid "%s: Unable to open %s: %s"
msgstr ""
-#: scheduler/cupsfilter.c:668 ppdc/ppdmerge.cxx:112
+#: scheduler/cupsfilter.c:662 ppdc/ppdmerge.cxx:112
#, c-format
msgid "%s: Unable to open PPD file: %s on line %d."
msgstr ""
-#: scheduler/cupsfilter.c:398
+#: scheduler/cupsfilter.c:392
#, c-format
msgid "%s: Unable to read MIME database from \"%s\" or \"%s\"."
msgstr ""
msgid "%s: Unknown destination \"%s\"."
msgstr ""
-#: scheduler/cupsfilter.c:441
+#: scheduler/cupsfilter.c:435
#, c-format
msgid "%s: Unknown destination MIME type %s/%s."
msgstr ""
-#: scheduler/cupsfilter.c:1433
+#: scheduler/cupsfilter.c:1427
#, c-format
msgid "%s: Unknown option \"%c\"."
msgstr ""
-#: scheduler/cupsfilter.c:422
+#: scheduler/cupsfilter.c:416
#, c-format
msgid "%s: Unknown source MIME type %s/%s."
msgstr ""
msgid "%s: Warning - mode option ignored."
msgstr ""
-#: ppdc/sample.c:319
+#: ppdc/sample.c:310
msgid "-1"
msgstr ""
-#: ppdc/sample.c:310
+#: ppdc/sample.c:301
msgid "-10"
msgstr ""
-#: ppdc/sample.c:402
+#: ppdc/sample.c:393
msgid "-100"
msgstr ""
-#: ppdc/sample.c:401
+#: ppdc/sample.c:392
msgid "-105"
msgstr ""
-#: ppdc/sample.c:309
+#: ppdc/sample.c:300
msgid "-11"
msgstr ""
-#: ppdc/sample.c:400
+#: ppdc/sample.c:391
msgid "-110"
msgstr ""
-#: ppdc/sample.c:399
+#: ppdc/sample.c:390
msgid "-115"
msgstr ""
-#: ppdc/sample.c:308
+#: ppdc/sample.c:299
msgid "-12"
msgstr ""
-#: ppdc/sample.c:398
+#: ppdc/sample.c:389
msgid "-120"
msgstr ""
-#: ppdc/sample.c:307
+#: ppdc/sample.c:298
msgid "-13"
msgstr ""
-#: ppdc/sample.c:306
+#: ppdc/sample.c:297
msgid "-14"
msgstr ""
-#: ppdc/sample.c:305
+#: ppdc/sample.c:296
msgid "-15"
msgstr ""
-#: ppdc/sample.c:318
+#: ppdc/sample.c:309
msgid "-2"
msgstr ""
-#: ppdc/sample.c:418
+#: ppdc/sample.c:409
msgid "-20"
msgstr ""
-#: ppdc/sample.c:417
+#: ppdc/sample.c:408
msgid "-25"
msgstr ""
-#: ppdc/sample.c:317
+#: ppdc/sample.c:308
msgid "-3"
msgstr ""
-#: ppdc/sample.c:416
+#: ppdc/sample.c:407
msgid "-30"
msgstr ""
-#: ppdc/sample.c:415
+#: ppdc/sample.c:406
msgid "-35"
msgstr ""
-#: ppdc/sample.c:316
+#: ppdc/sample.c:307
msgid "-4"
msgstr ""
-#: ppdc/sample.c:414
+#: ppdc/sample.c:405
msgid "-40"
msgstr ""
-#: ppdc/sample.c:413
+#: ppdc/sample.c:404
msgid "-45"
msgstr ""
-#: ppdc/sample.c:315
+#: ppdc/sample.c:306
msgid "-5"
msgstr ""
-#: ppdc/sample.c:412
+#: ppdc/sample.c:403
msgid "-50"
msgstr ""
-#: ppdc/sample.c:411
+#: ppdc/sample.c:402
msgid "-55"
msgstr ""
-#: ppdc/sample.c:314
+#: ppdc/sample.c:305
msgid "-6"
msgstr ""
-#: ppdc/sample.c:410
+#: ppdc/sample.c:401
msgid "-60"
msgstr ""
-#: ppdc/sample.c:409
+#: ppdc/sample.c:400
msgid "-65"
msgstr ""
-#: ppdc/sample.c:313
+#: ppdc/sample.c:304
msgid "-7"
msgstr ""
-#: ppdc/sample.c:408
+#: ppdc/sample.c:399
msgid "-70"
msgstr ""
-#: ppdc/sample.c:407
+#: ppdc/sample.c:398
msgid "-75"
msgstr ""
-#: ppdc/sample.c:312
+#: ppdc/sample.c:303
msgid "-8"
msgstr ""
-#: ppdc/sample.c:406
+#: ppdc/sample.c:397
msgid "-80"
msgstr ""
-#: ppdc/sample.c:405
+#: ppdc/sample.c:396
msgid "-85"
msgstr ""
-#: ppdc/sample.c:311
+#: ppdc/sample.c:302
msgid "-9"
msgstr ""
-#: ppdc/sample.c:404
+#: ppdc/sample.c:395
msgid "-90"
msgstr ""
-#: ppdc/sample.c:403
+#: ppdc/sample.c:394
msgid "-95"
msgstr ""
-#: ppdc/sample.c:320
+#: ppdc/sample.c:311
msgid "0"
msgstr ""
-#: ppdc/sample.c:321
+#: ppdc/sample.c:312
msgid "1"
msgstr ""
-#: ppdc/sample.c:393
+#: ppdc/sample.c:384
msgid "1 inch/sec."
msgstr ""
-#: ppdc/sample.c:181
+#: ppdc/sample.c:172
msgid "1.25x0.25\""
msgstr ""
-#: ppdc/sample.c:182
+#: ppdc/sample.c:173
msgid "1.25x2.25\""
msgstr ""
-#: ppdc/sample.c:441
+#: ppdc/sample.c:432
msgid "1.5 inch/sec."
msgstr ""
-#: ppdc/sample.c:183
+#: ppdc/sample.c:174
msgid "1.50x0.25\""
msgstr ""
-#: ppdc/sample.c:184
+#: ppdc/sample.c:175
msgid "1.50x0.50\""
msgstr ""
-#: ppdc/sample.c:185
+#: ppdc/sample.c:176
msgid "1.50x1.00\""
msgstr ""
-#: ppdc/sample.c:186
+#: ppdc/sample.c:177
msgid "1.50x2.00\""
msgstr ""
-#: ppdc/sample.c:330
+#: ppdc/sample.c:321
msgid "10"
msgstr ""
-#: ppdc/sample.c:452
+#: ppdc/sample.c:443
msgid "10 inches/sec."
msgstr ""
msgid "10 x 14"
msgstr ""
-#: ppdc/sample.c:432
+#: ppdc/sample.c:423
msgid "100"
msgstr ""
-#: ppdc/sample.c:343
+#: ppdc/sample.c:334
msgid "100 mm/sec."
msgstr ""
-#: ppdc/sample.c:433
+#: ppdc/sample.c:424
msgid "105"
msgstr ""
-#: ppdc/sample.c:331
+#: ppdc/sample.c:322
msgid "11"
msgstr ""
-#: ppdc/sample.c:453
+#: ppdc/sample.c:444
msgid "11 inches/sec."
msgstr ""
-#: ppdc/sample.c:434
+#: ppdc/sample.c:425
msgid "110"
msgstr ""
-#: ppdc/sample.c:435
+#: ppdc/sample.c:426
msgid "115"
msgstr ""
-#: ppdc/sample.c:332
+#: ppdc/sample.c:323
msgid "12"
msgstr ""
-#: ppdc/sample.c:454
+#: ppdc/sample.c:445
msgid "12 inches/sec."
msgstr ""
msgid "12 x 11"
msgstr ""
-#: ppdc/sample.c:436
+#: ppdc/sample.c:427
msgid "120"
msgstr ""
-#: ppdc/sample.c:344
+#: ppdc/sample.c:335
msgid "120 mm/sec."
msgstr ""
-#: ppdc/sample.c:252
+#: ppdc/sample.c:243
msgid "120x60dpi"
msgstr ""
-#: ppdc/sample.c:258
+#: ppdc/sample.c:249
msgid "120x72dpi"
msgstr ""
-#: ppdc/sample.c:333
+#: ppdc/sample.c:324
msgid "13"
msgstr ""
-#: ppdc/sample.c:241
+#: ppdc/sample.c:232
msgid "136dpi"
msgstr ""
-#: ppdc/sample.c:334
+#: ppdc/sample.c:325
msgid "14"
msgstr ""
-#: ppdc/sample.c:335
+#: ppdc/sample.c:326
msgid "15"
msgstr ""
-#: ppdc/sample.c:337
+#: ppdc/sample.c:328
msgid "15 mm/sec."
msgstr ""
msgid "15 x 11"
msgstr ""
-#: ppdc/sample.c:345
+#: ppdc/sample.c:336
msgid "150 mm/sec."
msgstr ""
-#: ppdc/sample.c:292
+#: ppdc/sample.c:283
msgid "150dpi"
msgstr ""
-#: ppdc/sample.c:377
+#: ppdc/sample.c:368
msgid "16"
msgstr ""
-#: ppdc/sample.c:378
+#: ppdc/sample.c:369
msgid "17"
msgstr ""
-#: ppdc/sample.c:379
+#: ppdc/sample.c:370
msgid "18"
msgstr ""
-#: ppdc/sample.c:253
+#: ppdc/sample.c:244
msgid "180dpi"
msgstr ""
-#: ppdc/sample.c:380
+#: ppdc/sample.c:371
msgid "19"
msgstr ""
-#: ppdc/sample.c:322
+#: ppdc/sample.c:313
msgid "2"
msgstr ""
-#: ppdc/sample.c:394
+#: ppdc/sample.c:385
msgid "2 inches/sec."
msgstr ""
-#: ppdc/sample.c:279
+#: ppdc/sample.c:270
msgid "2-Sided Printing"
msgstr ""
-#: ppdc/sample.c:187
+#: ppdc/sample.c:178
msgid "2.00x0.37\""
msgstr ""
-#: ppdc/sample.c:188
+#: ppdc/sample.c:179
msgid "2.00x0.50\""
msgstr ""
-#: ppdc/sample.c:189
+#: ppdc/sample.c:180
msgid "2.00x1.00\""
msgstr ""
-#: ppdc/sample.c:190
+#: ppdc/sample.c:181
msgid "2.00x1.25\""
msgstr ""
-#: ppdc/sample.c:191
+#: ppdc/sample.c:182
msgid "2.00x2.00\""
msgstr ""
-#: ppdc/sample.c:192
+#: ppdc/sample.c:183
msgid "2.00x3.00\""
msgstr ""
-#: ppdc/sample.c:193
+#: ppdc/sample.c:184
msgid "2.00x4.00\""
msgstr ""
-#: ppdc/sample.c:194
+#: ppdc/sample.c:185
msgid "2.00x5.50\""
msgstr ""
-#: ppdc/sample.c:195
+#: ppdc/sample.c:186
msgid "2.25x0.50\""
msgstr ""
-#: ppdc/sample.c:196
+#: ppdc/sample.c:187
msgid "2.25x1.25\""
msgstr ""
-#: ppdc/sample.c:197
+#: ppdc/sample.c:188
msgid "2.25x4.00\""
msgstr ""
-#: ppdc/sample.c:198
+#: ppdc/sample.c:189
msgid "2.25x5.50\""
msgstr ""
-#: ppdc/sample.c:199
+#: ppdc/sample.c:190
msgid "2.38x5.50\""
msgstr ""
-#: ppdc/sample.c:442
+#: ppdc/sample.c:433
msgid "2.5 inches/sec."
msgstr ""
-#: ppdc/sample.c:200
+#: ppdc/sample.c:191
msgid "2.50x1.00\""
msgstr ""
-#: ppdc/sample.c:201
+#: ppdc/sample.c:192
msgid "2.50x2.00\""
msgstr ""
-#: ppdc/sample.c:202
+#: ppdc/sample.c:193
msgid "2.75x1.25\""
msgstr ""
-#: ppdc/sample.c:203
+#: ppdc/sample.c:194
msgid "2.9 x 1\""
msgstr ""
-#: ppdc/sample.c:381
+#: ppdc/sample.c:372
msgid "20"
msgstr ""
-#: ppdc/sample.c:338
+#: ppdc/sample.c:329
msgid "20 mm/sec."
msgstr ""
-#: ppdc/sample.c:346
+#: ppdc/sample.c:337
msgid "200 mm/sec."
msgstr ""
-#: ppdc/sample.c:242
+#: ppdc/sample.c:233
msgid "203dpi"
msgstr ""
-#: ppdc/sample.c:382
+#: ppdc/sample.c:373
msgid "21"
msgstr ""
-#: ppdc/sample.c:383
+#: ppdc/sample.c:374
msgid "22"
msgstr ""
-#: ppdc/sample.c:384
+#: ppdc/sample.c:375
msgid "23"
msgstr ""
-#: ppdc/sample.c:385
+#: ppdc/sample.c:376
msgid "24"
msgstr ""
-#: ppdc/sample.c:250
+#: ppdc/sample.c:241
msgid "24-Pin Series"
msgstr ""
-#: ppdc/sample.c:259
+#: ppdc/sample.c:250
msgid "240x72dpi"
msgstr ""
-#: ppdc/sample.c:386
+#: ppdc/sample.c:377
msgid "25"
msgstr ""
-#: ppdc/sample.c:347
+#: ppdc/sample.c:338
msgid "250 mm/sec."
msgstr ""
-#: ppdc/sample.c:387
+#: ppdc/sample.c:378
msgid "26"
msgstr ""
-#: ppdc/sample.c:388
+#: ppdc/sample.c:379
msgid "27"
msgstr ""
-#: ppdc/sample.c:389
+#: ppdc/sample.c:380
msgid "28"
msgstr ""
-#: ppdc/sample.c:390
+#: ppdc/sample.c:381
msgid "29"
msgstr ""
-#: ppdc/sample.c:323
+#: ppdc/sample.c:314
msgid "3"
msgstr ""
-#: ppdc/sample.c:395
+#: ppdc/sample.c:386
msgid "3 inches/sec."
msgstr ""
msgid "3 x 5"
msgstr ""
-#: ppdc/sample.c:204
+#: ppdc/sample.c:195
msgid "3.00x1.00\""
msgstr ""
-#: ppdc/sample.c:205
+#: ppdc/sample.c:196
msgid "3.00x1.25\""
msgstr ""
-#: ppdc/sample.c:206
+#: ppdc/sample.c:197
msgid "3.00x2.00\""
msgstr ""
-#: ppdc/sample.c:207
+#: ppdc/sample.c:198
msgid "3.00x3.00\""
msgstr ""
-#: ppdc/sample.c:208
+#: ppdc/sample.c:199
msgid "3.00x5.00\""
msgstr ""
-#: ppdc/sample.c:209
+#: ppdc/sample.c:200
msgid "3.25x2.00\""
msgstr ""
-#: ppdc/sample.c:210
+#: ppdc/sample.c:201
msgid "3.25x5.00\""
msgstr ""
-#: ppdc/sample.c:211
+#: ppdc/sample.c:202
msgid "3.25x5.50\""
msgstr ""
-#: ppdc/sample.c:212
+#: ppdc/sample.c:203
msgid "3.25x5.83\""
msgstr ""
-#: ppdc/sample.c:213
+#: ppdc/sample.c:204
msgid "3.25x7.83\""
msgstr ""
msgid "3.5\" Disk"
msgstr ""
-#: ppdc/sample.c:180
-msgid "3.5\" Disk - 2 1/8 x 2 3/4\""
-msgstr ""
-
-#: ppdc/sample.c:214
+#: ppdc/sample.c:205
msgid "3.50x1.00\""
msgstr ""
-#: ppdc/sample.c:391
+#: ppdc/sample.c:382
msgid "30"
msgstr ""
-#: ppdc/sample.c:339
+#: ppdc/sample.c:330
msgid "30 mm/sec."
msgstr ""
-#: ppdc/sample.c:348
+#: ppdc/sample.c:339
msgid "300 mm/sec."
msgstr ""
-#: ppdc/sample.c:243
+#: ppdc/sample.c:234
msgid "300dpi"
msgstr ""
-#: ppdc/sample.c:419
+#: ppdc/sample.c:410
msgid "35"
msgstr ""
-#: ppdc/sample.c:255
+#: ppdc/sample.c:246
msgid "360dpi"
msgstr ""
-#: ppdc/sample.c:254
+#: ppdc/sample.c:245
msgid "360x180dpi"
msgstr ""
-#: ppdc/sample.c:324
+#: ppdc/sample.c:315
msgid "4"
msgstr ""
-#: ppdc/sample.c:396
+#: ppdc/sample.c:387
msgid "4 inches/sec."
msgstr ""
-#: ppdc/sample.c:215
+#: ppdc/sample.c:206
msgid "4.00x1.00\""
msgstr ""
-#: ppdc/sample.c:223
+#: ppdc/sample.c:214
msgid "4.00x13.00\""
msgstr ""
-#: ppdc/sample.c:216
+#: ppdc/sample.c:207
msgid "4.00x2.00\""
msgstr ""
-#: ppdc/sample.c:217
+#: ppdc/sample.c:208
msgid "4.00x2.50\""
msgstr ""
-#: ppdc/sample.c:218
+#: ppdc/sample.c:209
msgid "4.00x3.00\""
msgstr ""
-#: ppdc/sample.c:219
+#: ppdc/sample.c:210
msgid "4.00x4.00\""
msgstr ""
-#: ppdc/sample.c:220
+#: ppdc/sample.c:211
msgid "4.00x5.00\""
msgstr ""
-#: ppdc/sample.c:221
+#: ppdc/sample.c:212
msgid "4.00x6.00\""
msgstr ""
-#: ppdc/sample.c:222
+#: ppdc/sample.c:213
msgid "4.00x6.50\""
msgstr ""
-#: ppdc/sample.c:420
+#: ppdc/sample.c:411
msgid "40"
msgstr ""
-#: ppdc/sample.c:340
+#: ppdc/sample.c:331
msgid "40 mm/sec."
msgstr ""
-#: ppdc/sample.c:421
+#: ppdc/sample.c:412
msgid "45"
msgstr ""
-#: ppdc/sample.c:325
+#: ppdc/sample.c:316
msgid "5"
msgstr ""
-#: ppdc/sample.c:446
+#: ppdc/sample.c:437
msgid "5 inches/sec."
msgstr ""
msgid "5 x 7"
msgstr ""
-#: ppdc/sample.c:422
+#: ppdc/sample.c:413
msgid "50"
msgstr ""
-#: ppdc/sample.c:423
+#: ppdc/sample.c:414
msgid "55"
msgstr ""
-#: ppdc/sample.c:326
+#: ppdc/sample.c:317
msgid "6"
msgstr ""
-#: ppdc/sample.c:447
+#: ppdc/sample.c:438
msgid "6 inches/sec."
msgstr ""
-#: ppdc/sample.c:224
+#: ppdc/sample.c:215
msgid "6.00x1.00\""
msgstr ""
-#: ppdc/sample.c:225
+#: ppdc/sample.c:216
msgid "6.00x2.00\""
msgstr ""
-#: ppdc/sample.c:226
+#: ppdc/sample.c:217
msgid "6.00x3.00\""
msgstr ""
-#: ppdc/sample.c:227
+#: ppdc/sample.c:218
msgid "6.00x4.00\""
msgstr ""
-#: ppdc/sample.c:228
+#: ppdc/sample.c:219
msgid "6.00x5.00\""
msgstr ""
-#: ppdc/sample.c:229
+#: ppdc/sample.c:220
msgid "6.00x6.00\""
msgstr ""
-#: ppdc/sample.c:230
+#: ppdc/sample.c:221
msgid "6.00x6.50\""
msgstr ""
-#: ppdc/sample.c:424
+#: ppdc/sample.c:415
msgid "60"
msgstr ""
-#: ppdc/sample.c:341
+#: ppdc/sample.c:332
msgid "60 mm/sec."
msgstr ""
-#: ppdc/sample.c:270
+#: ppdc/sample.c:261
msgid "600dpi"
msgstr ""
-#: ppdc/sample.c:251
+#: ppdc/sample.c:242
msgid "60dpi"
msgstr ""
-#: ppdc/sample.c:257
+#: ppdc/sample.c:248
msgid "60x72dpi"
msgstr ""
-#: ppdc/sample.c:425
+#: ppdc/sample.c:416
msgid "65"
msgstr ""
-#: ppdc/sample.c:327
+#: ppdc/sample.c:318
msgid "7"
msgstr ""
-#: ppdc/sample.c:449
+#: ppdc/sample.c:440
msgid "7 inches/sec."
msgstr ""
msgid "7 x 9"
msgstr ""
-#: ppdc/sample.c:426
+#: ppdc/sample.c:417
msgid "70"
msgstr ""
-#: ppdc/sample.c:261
+#: ppdc/sample.c:252
msgid "720dpi"
msgstr ""
-#: ppdc/sample.c:427
+#: ppdc/sample.c:418
msgid "75"
msgstr ""
-#: ppdc/sample.c:328
+#: ppdc/sample.c:319
msgid "8"
msgstr ""
-#: ppdc/sample.c:450
+#: ppdc/sample.c:441
msgid "8 inches/sec."
msgstr ""
msgid "8 x 10"
msgstr ""
-#: ppdc/sample.c:231
+#: ppdc/sample.c:222
msgid "8.00x1.00\""
msgstr ""
-#: ppdc/sample.c:232
+#: ppdc/sample.c:223
msgid "8.00x2.00\""
msgstr ""
-#: ppdc/sample.c:233
+#: ppdc/sample.c:224
msgid "8.00x3.00\""
msgstr ""
-#: ppdc/sample.c:234
+#: ppdc/sample.c:225
msgid "8.00x4.00\""
msgstr ""
-#: ppdc/sample.c:235
+#: ppdc/sample.c:226
msgid "8.00x5.00\""
msgstr ""
-#: ppdc/sample.c:236
+#: ppdc/sample.c:227
msgid "8.00x6.00\""
msgstr ""
-#: ppdc/sample.c:237
+#: ppdc/sample.c:228
msgid "8.00x6.50\""
msgstr ""
-#: ppdc/sample.c:428
+#: ppdc/sample.c:419
msgid "80"
msgstr ""
-#: ppdc/sample.c:342
+#: ppdc/sample.c:333
msgid "80 mm/sec."
msgstr ""
-#: ppdc/sample.c:429
+#: ppdc/sample.c:420
msgid "85"
msgstr ""
-#: ppdc/sample.c:329
+#: ppdc/sample.c:320
msgid "9"
msgstr ""
-#: ppdc/sample.c:451
+#: ppdc/sample.c:442
msgid "9 inches/sec."
msgstr ""
msgid "9 x 12"
msgstr ""
-#: ppdc/sample.c:256
+#: ppdc/sample.c:247
msgid "9-Pin Series"
msgstr ""
-#: ppdc/sample.c:430
+#: ppdc/sample.c:421
msgid "90"
msgstr ""
-#: ppdc/sample.c:431
+#: ppdc/sample.c:422
msgid "95"
msgstr ""
msgid "?Invalid help command unknown."
msgstr ""
-#: cgi-bin/admin.c:2349
+#: cgi-bin/admin.c:2368
msgid "A Samba password is required to export printer drivers"
msgstr ""
-#: cgi-bin/admin.c:2345
+#: cgi-bin/admin.c:2364
msgid "A Samba username is required to export printer drivers"
msgstr ""
msgid "Accept Jobs"
msgstr ""
-#: cups/http-support.c:1257
+#: cups/http-support.c:1284
msgid "Accepted"
msgstr ""
msgid "Address"
msgstr ""
-#: ppdc/sample.c:172
-msgid "Address - 1 1/8 x 3 1/2\""
-msgstr ""
-
-#: cgi-bin/admin.c:210 cgi-bin/admin.c:284 cgi-bin/admin.c:2723
+#: cgi-bin/admin.c:210 cgi-bin/admin.c:284 cgi-bin/admin.c:2745
msgid "Administration"
msgstr ""
-#: ppdc/sample.c:438
+#: ppdc/sample.c:429
msgid "Always"
msgstr ""
msgid "AppSocket/HP JetDirect"
msgstr ""
-#: ppdc/sample.c:459
+#: ppdc/sample.c:450
msgid "Applicator"
msgstr ""
msgid "B9"
msgstr ""
-#: cups/dest.c:1536
+#: cups/dest.c:1533
msgid "Bad NULL dests pointer"
msgstr ""
msgid "Bad PPD cache file."
msgstr ""
-#: cups/http-support.c:1272
+#: cups/http-support.c:1299
msgid "Bad Request"
msgstr ""
msgid "Bad custom parameter"
msgstr ""
-#: cups/http-support.c:1424 scheduler/ipp.c:2362
+#: cups/http-support.c:1451 scheduler/ipp.c:2362
#, c-format
msgid "Bad device-uri \"%s\"."
msgstr ""
msgid "Bad port-monitor \"%s\"."
msgstr ""
-#: cups/dest.c:626 cups/dest.c:1189
+#: cups/dest.c:621 cups/dest.c:1186
msgid "Bad printer URI."
msgstr ""
msgid "Bad value string"
msgstr ""
-#: cgi-bin/admin.c:3268 cgi-bin/admin.c:3514
+#: cgi-bin/admin.c:3290 cgi-bin/admin.c:3536
msgid "Banners"
msgstr ""
-#: ppdc/sample.c:296
+#: ppdc/sample.c:287
msgid "Bond Paper"
msgstr ""
msgid "Buffer overflow detected, aborting."
msgstr ""
-#: ppdc/sample.c:263
+#: ppdc/sample.c:254
msgid "CMYK"
msgstr ""
-#: ppdc/sample.c:372
+#: ppdc/sample.c:363
msgid "CPCL Label Printer"
msgstr ""
msgid "Cancel RSS Subscription"
msgstr ""
-#: backend/ipp.c:1903
+#: backend/ipp.c:1908
msgid "Canceling print job."
msgstr ""
msgid "Cannot share a remote Kerberized printer."
msgstr ""
-#: ppdc/sample.c:288
+#: ppdc/sample.c:279
msgid "Cassette"
msgstr ""
-#: cgi-bin/admin.c:1636 cgi-bin/admin.c:1778 cgi-bin/admin.c:1791
-#: cgi-bin/admin.c:1802
+#: cgi-bin/admin.c:1655 cgi-bin/admin.c:1797 cgi-bin/admin.c:1810
+#: cgi-bin/admin.c:1821
msgid "Change Settings"
msgstr ""
msgid "Close-Job doesn't support the job-uri attribute."
msgstr ""
-#: ppdc/sample.c:291
+#: ppdc/sample.c:282
msgid "Color"
msgstr ""
-#: ppdc/sample.c:262
+#: ppdc/sample.c:253
msgid "Color Mode"
msgstr ""
msgid "Community name uses indefinite length"
msgstr ""
-#: backend/ipp.c:779 backend/lpd.c:871 backend/socket.c:395
+#: backend/ipp.c:784 backend/lpd.c:871 backend/socket.c:395
msgid "Connected to printer."
msgstr ""
-#: backend/ipp.c:686 backend/lpd.c:694 backend/socket.c:314
+#: backend/ipp.c:689 backend/lpd.c:694 backend/socket.c:314
msgid "Connecting to printer."
msgstr ""
-#: cups/http-support.c:1245
+#: cups/http-support.c:1272
msgid "Continue"
msgstr ""
-#: ppdc/sample.c:374
+#: ppdc/sample.c:365
msgid "Continuous"
msgstr ""
msgid "Control file sent successfully."
msgstr ""
-#: backend/ipp.c:1223 backend/lpd.c:464
+#: backend/ipp.c:1226 backend/lpd.c:464
msgid "Copying print data."
msgstr ""
-#: cups/http-support.c:1254
+#: cups/http-support.c:1281
msgid "Created"
msgstr ""
msgid "Custom"
msgstr ""
-#: ppdc/sample.c:368
+#: ppdc/sample.c:359
msgid "CustominCutInterval"
msgstr ""
-#: ppdc/sample.c:366
+#: ppdc/sample.c:357
msgid "CustominTearInterval"
msgstr ""
-#: ppdc/sample.c:352
+#: ppdc/sample.c:343
msgid "Cut"
msgstr ""
-#: ppdc/sample.c:460
+#: ppdc/sample.c:451
msgid "Cutter"
msgstr ""
-#: ppdc/sample.c:248
+#: ppdc/sample.c:239
msgid "Dark"
msgstr ""
-#: ppdc/sample.c:244
+#: ppdc/sample.c:235
msgid "Darkness"
msgstr ""
msgid "Data file sent successfully."
msgstr ""
-#: cgi-bin/admin.c:2075 cgi-bin/admin.c:2086 cgi-bin/admin.c:2131
+#: cgi-bin/admin.c:2094 cgi-bin/admin.c:2105 cgi-bin/admin.c:2150
msgid "Delete Class"
msgstr ""
-#: cgi-bin/admin.c:2160 cgi-bin/admin.c:2171 cgi-bin/admin.c:2216
+#: cgi-bin/admin.c:2179 cgi-bin/admin.c:2190 cgi-bin/admin.c:2235
msgid "Delete Printer"
msgstr ""
-#: ppdc/sample.c:290
+#: ppdc/sample.c:281
msgid "DeskJet Series"
msgstr ""
" location = %s"
msgstr ""
-#: ppdc/sample.c:445
+#: ppdc/sample.c:436
msgid "Direct Thermal Media"
msgstr ""
msgid "Directory \"%s\" permissions OK (0%o/uid=%d/gid=%d)."
msgstr ""
-#: ppdc/sample.c:354
+#: ppdc/sample.c:345
msgid "Disabled"
msgstr ""
msgid "Document #%d does not exist in job #%d."
msgstr ""
-#: ppdc/sample.c:284
+#: ppdc/sample.c:275
msgid "Duplexer"
msgstr ""
-#: ppdc/sample.c:238
+#: ppdc/sample.c:229
msgid "Dymo"
msgstr ""
-#: ppdc/sample.c:440
+#: ppdc/sample.c:431
msgid "EPL1 Label Printer"
msgstr ""
-#: ppdc/sample.c:443
+#: ppdc/sample.c:434
msgid "EPL2 Label Printer"
msgstr ""
-#: cgi-bin/admin.c:1830 cgi-bin/admin.c:1842 cgi-bin/admin.c:1896
-#: cgi-bin/admin.c:1903 cgi-bin/admin.c:1938 cgi-bin/admin.c:1951
-#: cgi-bin/admin.c:1975 cgi-bin/admin.c:2048
+#: cgi-bin/admin.c:1849 cgi-bin/admin.c:1861 cgi-bin/admin.c:1915
+#: cgi-bin/admin.c:1922 cgi-bin/admin.c:1957 cgi-bin/admin.c:1970
+#: cgi-bin/admin.c:1994 cgi-bin/admin.c:2067
msgid "Edit Configuration File"
msgstr ""
msgstr ""
#. TRANSLATORS: Banner/cover sheet after the print job.
-#: cgi-bin/admin.c:3539
+#: cgi-bin/admin.c:3561
msgid "Ending Banner"
msgstr ""
msgid "Enter password:"
msgstr ""
-#: scheduler/client.c:2498
+#: scheduler/client.c:2427
msgid "Enter your username and password or the root username and password to access this page. If you are using Kerberos authentication, make sure you have a valid Kerberos ticket."
msgstr ""
msgid "Envelope DL"
msgstr ""
-#: ppdc/sample.c:278
+#: ppdc/sample.c:269
msgid "Envelope Feed"
msgstr ""
msgid "Envelope You4 Long Edge"
msgstr ""
-#: ppdc/sample.c:249
+#: ppdc/sample.c:240
msgid "Epson"
msgstr ""
-#: cgi-bin/admin.c:3582
+#: cgi-bin/admin.c:3604
msgid "Error Policy"
msgstr ""
msgid "Error: need hostname after \"-h\" option."
msgstr ""
-#: ppdc/sample.c:364
+#: ppdc/sample.c:355
msgid "Every 10 Labels"
msgstr ""
-#: ppdc/sample.c:356
+#: ppdc/sample.c:347
msgid "Every 2 Labels"
msgstr ""
-#: ppdc/sample.c:357
+#: ppdc/sample.c:348
msgid "Every 3 Labels"
msgstr ""
-#: ppdc/sample.c:358
+#: ppdc/sample.c:349
msgid "Every 4 Labels"
msgstr ""
-#: ppdc/sample.c:359
+#: ppdc/sample.c:350
msgid "Every 5 Labels"
msgstr ""
-#: ppdc/sample.c:360
+#: ppdc/sample.c:351
msgid "Every 6 Labels"
msgstr ""
-#: ppdc/sample.c:361
+#: ppdc/sample.c:352
msgid "Every 7 Labels"
msgstr ""
-#: ppdc/sample.c:362
+#: ppdc/sample.c:353
msgid "Every 8 Labels"
msgstr ""
-#: ppdc/sample.c:363
+#: ppdc/sample.c:354
msgid "Every 9 Labels"
msgstr ""
-#: ppdc/sample.c:355
+#: ppdc/sample.c:346
msgid "Every Label"
msgstr ""
msgid "Executive"
msgstr ""
-#: cups/http-support.c:1300
+#: cups/http-support.c:1327
msgid "Expectation Failed"
msgstr ""
-#: cgi-bin/admin.c:2337 cgi-bin/admin.c:2356
+#: cgi-bin/admin.c:2356 cgi-bin/admin.c:2375
msgid "Export Printers to Samba"
msgstr ""
msgstr ""
#: ppdc/sample.c:169
-msgid "File Folder"
-msgstr ""
-
-#: ppdc/sample.c:178
-msgid "File Folder - 9/16 x 3 7/16\""
+msgid "File Folder "
msgstr ""
#: scheduler/ipp.c:2382
msgid "Folio"
msgstr ""
-#: cups/http-support.c:1279
+#: cups/http-support.c:1306
msgid "Forbidden"
msgstr ""
msgid "General"
msgstr ""
-#: ppdc/sample.c:268
+#: ppdc/sample.c:259
msgid "Generic"
msgstr ""
msgid "Get-Response-PDU uses indefinite length"
msgstr ""
-#: ppdc/sample.c:299
+#: ppdc/sample.c:290
msgid "Glossy Paper"
msgstr ""
msgid "Got a printer-uri attribute but no job-id."
msgstr ""
-#: ppdc/sample.c:264
+#: ppdc/sample.c:255
msgid "Grayscale"
msgstr ""
-#: ppdc/sample.c:289
+#: ppdc/sample.c:280
msgid "HP"
msgstr ""
msgid "Hanging Folder"
msgstr ""
-#: ppdc/sample.c:179
-msgid "Hanging Folder - 9/16 x 2\""
+#: cgi-bin/help.c:143
+msgid "Help file not in index."
msgstr ""
-#: cups/ipp.c:2677 cups/ipp.c:2704 cups/ipp.c:2727
+#: cups/ipp.c:2687 cups/ipp.c:2714 cups/ipp.c:2737
msgid "IPP 1setOf attribute with incompatible value tags."
msgstr ""
-#: cups/ipp.c:2640
+#: cups/ipp.c:2650
msgid "IPP attribute has no name."
msgstr ""
-#: cups/ipp.c:5519
+#: cups/ipp.c:5525
msgid "IPP attribute is not a member of the message."
msgstr ""
-#: cups/ipp.c:3067
+#: cups/ipp.c:3077
msgid "IPP begCollection value not 0 bytes."
msgstr ""
-#: cups/ipp.c:2863
+#: cups/ipp.c:2873
msgid "IPP boolean value not 1 byte."
msgstr ""
-#: cups/ipp.c:2921
+#: cups/ipp.c:2931
msgid "IPP date value not 11 bytes."
msgstr ""
-#: cups/ipp.c:3088
+#: cups/ipp.c:3098
msgid "IPP endCollection value not 0 bytes."
msgstr ""
-#: cups/ipp.c:2838
+#: cups/ipp.c:2848
msgid "IPP enum value not 4 bytes."
msgstr ""
-#: cups/ipp.c:2569
+#: cups/ipp.c:2579
msgid "IPP extension tag larger than 0x7FFFFFFF."
msgstr ""
-#: cups/ipp.c:2835
+#: cups/ipp.c:2845
msgid "IPP integer value not 4 bytes."
msgstr ""
-#: cups/ipp.c:3030
+#: cups/ipp.c:3040
msgid "IPP language length overflows value."
msgstr ""
-#: cups/ipp.c:2754
+#: cups/ipp.c:2764
msgid "IPP member name is not empty."
msgstr ""
-#: cups/ipp.c:2623
+#: cups/ipp.c:2633
msgid "IPP name larger than 32767 bytes."
msgstr ""
-#: cups/ipp.c:2997
+#: cups/ipp.c:3007
msgid "IPP nameWithLanguage value less than minimum 4 bytes."
msgstr ""
-#: cups/ipp.c:2966
+#: cups/ipp.c:2976
msgid "IPP rangeOfInteger value not 8 bytes."
msgstr ""
-#: cups/ipp.c:2939
+#: cups/ipp.c:2949
msgid "IPP resolution value not 9 bytes."
msgstr ""
-#: cups/ipp.c:3047
+#: cups/ipp.c:3057
msgid "IPP string length overflows value."
msgstr ""
-#: cups/ipp.c:2993
+#: cups/ipp.c:3003
msgid "IPP textWithLanguage value less than minimum 4 bytes."
msgstr ""
-#: cups/ipp.c:2821
+#: cups/ipp.c:2831
msgid "IPP value larger than 32767 bytes."
msgstr ""
msgid "Illegal whitespace character"
msgstr ""
-#: ppdc/sample.c:283
+#: ppdc/sample.c:274
msgid "Installable Options"
msgstr ""
-#: ppdc/sample.c:286
+#: ppdc/sample.c:277
msgid "Installed"
msgstr ""
-#: ppdc/sample.c:302
+#: ppdc/sample.c:293
msgid "IntelliBar Label Printer"
msgstr ""
-#: ppdc/sample.c:301
+#: ppdc/sample.c:292
msgid "Intellitech"
msgstr ""
-#: cups/http-support.c:1306
+#: cups/http-support.c:1333
msgid "Internal Server Error"
msgstr ""
msgid "Internet Postage 2-Part"
msgstr ""
-#: ppdc/sample.c:176
-msgid "Internet Postage 2-Part - 2 1/4 x 7 1/2\""
-msgstr ""
-
#: ppdc/sample.c:168
msgid "Internet Postage 3-Part"
msgstr ""
-#: ppdc/sample.c:177
-msgid "Internet Postage 3-Part - 2 1/4 x 7\""
-msgstr ""
-
#: backend/ipp.c:305
msgid "Internet Printing Protocol"
msgstr ""
msgstr ""
#: cgi-bin/jobs.c:198
-msgid "Job operation failed:"
+msgid "Job operation failed"
msgstr ""
#: scheduler/ipp.c:10798 scheduler/ipp.c:10817 scheduler/ipp.c:10828
msgid "LPD/LPR Host or Printer"
msgstr ""
-#: ppdc/sample.c:239
+#: ppdc/sample.c:230
msgid "Label Printer"
msgstr ""
-#: ppdc/sample.c:455
+#: ppdc/sample.c:446
msgid "Label Top"
msgstr ""
msgid "Large Address"
msgstr ""
-#: ppdc/sample.c:173
-msgid "Large Address - 1 4/10 x 3 1/2\""
-msgstr ""
-
-#: ppdc/sample.c:300
+#: ppdc/sample.c:291
msgid "LaserJet Series PCL 4/5"
msgstr ""
msgid "Letter Oversize Long Edge"
msgstr ""
-#: ppdc/sample.c:245
+#: ppdc/sample.c:236
msgid "Light"
msgstr ""
msgid "Line longer than the maximum allowed (255 characters)"
msgstr ""
-#: cgi-bin/admin.c:2374
+#: cgi-bin/admin.c:2393
msgid "List Available Printers"
msgstr ""
-#: ppdc/sample.c:281
+#: ppdc/sample.c:272
msgid "Long-Edge (Portrait)"
msgstr ""
-#: cups/http-support.c:1525
+#: cups/http-support.c:1558
msgid "Looking for printer."
msgstr ""
-#: ppdc/sample.c:277
+#: ppdc/sample.c:268
msgid "Manual Feed"
msgstr ""
msgid "Media Size"
msgstr ""
-#: cups/ppd.c:793 cups/ppd.c:1361 ppdc/sample.c:271
+#: cups/ppd.c:793 cups/ppd.c:1361 ppdc/sample.c:262
msgid "Media Source"
msgstr ""
-#: ppdc/sample.c:373
+#: ppdc/sample.c:364
msgid "Media Tracking"
msgstr ""
-#: cups/ppd.c:791 cups/ppd.c:1359 ppdc/sample.c:294
+#: cups/ppd.c:791 cups/ppd.c:1359 ppdc/sample.c:285
msgid "Media Type"
msgstr ""
-#: ppdc/sample.c:246
+#: ppdc/sample.c:237
msgid "Medium"
msgstr ""
msgid "Missing double quote on line %d."
msgstr ""
-#: cgi-bin/admin.c:736 cgi-bin/admin.c:2087 cgi-bin/admin.c:2172
-#: cgi-bin/admin.c:2763 cgi-bin/admin.c:3017 cgi-bin/admin.c:3128
-#: cgi-bin/admin.c:3838
+#: cgi-bin/admin.c:736 cgi-bin/admin.c:2106 cgi-bin/admin.c:2191
+#: cgi-bin/admin.c:2785 cgi-bin/admin.c:3039 cgi-bin/admin.c:3150
+#: cgi-bin/admin.c:3860
msgid "Missing form variable"
msgstr ""
msgid "Missing last-document attribute in request."
msgstr ""
-#: cups/pwg-media.c:473
+#: cups/pwg-media.c:474
msgid "Missing media or media-col."
msgstr ""
-#: cups/pwg-media.c:392
+#: cups/pwg-media.c:393
msgid "Missing media-size in media-col."
msgstr ""
msgid "Missing value string"
msgstr ""
-#: cups/pwg-media.c:380
+#: cups/pwg-media.c:381
msgid "Missing x-dimension in media-size."
msgstr ""
-#: cups/pwg-media.c:386
+#: cups/pwg-media.c:387
msgid "Missing y-dimension in media-size."
msgstr ""
msgid "Move Job"
msgstr ""
-#: cups/http-support.c:1263
+#: cups/http-support.c:1290
msgid "Moved Permanently"
msgstr ""
msgid "Nested classes are not allowed."
msgstr ""
-#: ppdc/sample.c:439
+#: ppdc/sample.c:430
msgid "Never"
msgstr ""
-#: ppdc/sample.c:265
+#: ppdc/sample.c:256
msgid "New Stylus Color Series"
msgstr ""
-#: ppdc/sample.c:267
+#: ppdc/sample.c:258
msgid "New Stylus Photo Series"
msgstr ""
msgid "No"
msgstr ""
-#: cups/http-support.c:1260
+#: cups/http-support.c:1287
msgid "No Content"
msgstr ""
msgid "No Windows printer drivers are installed."
msgstr ""
-#: cups/request.c:571 cups/request.c:914
+#: cups/request.c:571 cups/request.c:913
msgid "No active connection"
msgstr ""
msgid "No version number"
msgstr ""
-#: ppdc/sample.c:376
+#: ppdc/sample.c:367
msgid "Non-continuous (Mark sensing)"
msgstr ""
-#: ppdc/sample.c:375
+#: ppdc/sample.c:366
msgid "Non-continuous (Web sensing)"
msgstr ""
-#: ppdc/sample.c:247
+#: ppdc/sample.c:238
msgid "Normal"
msgstr ""
-#: cups/http-support.c:1282
+#: cups/http-support.c:1309
msgid "Not Found"
msgstr ""
-#: cups/http-support.c:1294
+#: cups/http-support.c:1321
msgid "Not Implemented"
msgstr ""
-#: ppdc/sample.c:285
+#: ppdc/sample.c:276
msgid "Not Installed"
msgstr ""
-#: cups/http-support.c:1269
+#: cups/http-support.c:1296
msgid "Not Modified"
msgstr ""
-#: cups/http-support.c:1297
+#: cups/http-support.c:1324
msgid "Not Supported"
msgstr ""
msgid "Note: this program only validates the DSC comments, not the PostScript itself."
msgstr ""
-#: cups/http-support.c:1251 cups/ppd.c:338
+#: cups/http-support.c:1278 cups/ppd.c:338
msgid "OK"
msgstr ""
-#: ppdc/sample.c:280
+#: ppdc/sample.c:271
msgid "Off (1-Sided)"
msgstr ""
-#: ppdc/sample.c:370
+#: ppdc/sample.c:361
msgid "Oki"
msgstr ""
-#: cgi-bin/help.c:90 cgi-bin/help.c:131 cgi-bin/help.c:141 cgi-bin/help.c:172
+#: cgi-bin/help.c:91 cgi-bin/help.c:132 cgi-bin/help.c:142 cgi-bin/help.c:172
msgid "Online Help"
msgstr ""
msgid "OpenUI/JCLOpenUI without a CloseUI/JCLCloseUI first"
msgstr ""
-#: cgi-bin/admin.c:3609
+#: cgi-bin/admin.c:3631
msgid "Operation Policy"
msgstr ""
msgid "Option \"%s\" cannot be included via %%%%IncludeFeature."
msgstr ""
-#: cgi-bin/admin.c:3259 cgi-bin/admin.c:3343
+#: cgi-bin/admin.c:3281 cgi-bin/admin.c:3365
msgid "Options Installed"
msgstr ""
-#: scheduler/cupsfilter.c:1438 scheduler/cupsfilter.c:1465
-#: scheduler/main.c:2019 systemv/cupsaddsmb.c:284 systemv/cupsctl.c:203
-#: systemv/cupstestdsc.c:429 systemv/cupstestppd.c:3796 test/ipptool.c:4336
-#: ppdc/ppdc.cxx:437 ppdc/ppdhtml.cxx:174 ppdc/ppdi.cxx:130
-#: ppdc/ppdmerge.cxx:369 ppdc/ppdpo.cxx:254
+#: scheduler/cupsfilter.c:1430 scheduler/main.c:2018 systemv/cupsaddsmb.c:284
+#: systemv/cupsctl.c:203 systemv/cupstestdsc.c:429 systemv/cupstestppd.c:3797
+#: test/ipptool.c:4336 ppdc/ppdc.cxx:437 ppdc/ppdhtml.cxx:174
+#: ppdc/ppdi.cxx:130 ppdc/ppdmerge.cxx:369 ppdc/ppdpo.cxx:254
msgid "Options:"
msgstr ""
msgid "PASS"
msgstr ""
-#: ppdc/sample.c:269
+#: ppdc/sample.c:260
msgid "PCL Laser Printer"
msgstr ""
msgid "Packet does not start with SEQUENCE"
msgstr ""
-#: ppdc/sample.c:369
+#: ppdc/sample.c:360
msgid "ParamCustominCutInterval"
msgstr ""
-#: ppdc/sample.c:367
+#: ppdc/sample.c:358
msgid "ParamCustominTearInterval"
msgstr ""
msgid "Pause Printer"
msgstr ""
-#: ppdc/sample.c:457
+#: ppdc/sample.c:448
msgid "Peel-Off"
msgstr ""
msgid "Photo Labels"
msgstr ""
-#: ppdc/sample.c:295
+#: ppdc/sample.c:286
msgid "Plain Paper"
msgstr ""
-#: cgi-bin/admin.c:3277 cgi-bin/admin.c:3558
+#: cgi-bin/admin.c:3299 cgi-bin/admin.c:3580
msgid "Policies"
msgstr ""
-#: cgi-bin/admin.c:3284 cgi-bin/admin.c:3627 cgi-bin/admin.c:3640
+#: cgi-bin/admin.c:3306 cgi-bin/admin.c:3649 cgi-bin/admin.c:3662
msgid "Port Monitor"
msgstr ""
-#: ppdc/sample.c:287
+#: ppdc/sample.c:278
msgid "PostScript Printer"
msgstr ""
msgid "Postcard Long Edge"
msgstr ""
-#: ppdc/sample.c:304
+#: ppdc/sample.c:295
msgid "Print Density"
msgstr ""
msgid "Print Job:"
msgstr ""
-#: ppdc/sample.c:349
+#: ppdc/sample.c:340
msgid "Print Mode"
msgstr ""
-#: ppdc/sample.c:392
+#: ppdc/sample.c:383
msgid "Print Rate"
msgstr ""
msgid "Print Self-Test Page"
msgstr ""
-#: ppdc/sample.c:336
+#: ppdc/sample.c:327
msgid "Print Speed"
msgstr ""
msgid "Print Test Page"
msgstr ""
-#: ppdc/sample.c:365
+#: ppdc/sample.c:356
msgid "Print and Cut"
msgstr ""
-#: ppdc/sample.c:353
+#: ppdc/sample.c:344
msgid "Print and Tear"
msgstr ""
-#: backend/ipp.c:1523
+#: backend/ipp.c:1526
#, c-format
msgid "Print file accepted - job ID %d."
msgstr ""
-#: backend/ipp.c:1513
+#: backend/ipp.c:1516
msgid "Print file accepted - job ID unknown."
msgstr ""
-#: backend/socket.c:424 backend/usb-unix.c:195
+#: backend/socket.c:424 backend/usb-unix.c:191
msgid "Print file sent."
msgstr ""
-#: backend/ipp.c:1474
+#: backend/ipp.c:1477
msgid "Print file was not accepted."
msgstr ""
-#: backend/ipp.c:1875
+#: backend/ipp.c:1882
+msgid "Print job canceled at printer."
+msgstr ""
+
+#: backend/ipp.c:1880
msgid "Print job too large."
msgstr ""
msgid "Printer Added"
msgstr ""
-#: ppdc/sample.c:272
+#: ppdc/sample.c:263
msgid "Printer Default"
msgstr ""
msgid "Printer Paused"
msgstr ""
-#: ppdc/sample.c:303
+#: ppdc/sample.c:294
msgid "Printer Settings"
msgstr ""
-#: backend/usb-unix.c:132
-msgid "Printer busy, will retry in 10 seconds."
-msgstr ""
-
-#: backend/lpd.c:619 backend/lpd.c:1009 backend/lpd.c:1091 backend/lpd.c:1141
-msgid "Printer did not respond."
-msgstr ""
-
-#: backend/ipp.c:885 backend/ipp.c:892
-#, c-format
-msgid "Printer does not support IPP/%d.%d, trying IPP/%s."
-msgstr ""
-
-#: backend/usb-unix.c:429 backend/usb-unix.c:513
-msgid "Printer is busy, will retry in 5 seconds."
-msgstr ""
-
-#: backend/runloop.c:253 backend/runloop.c:371
-msgid "Printer is not currently connected."
-msgstr ""
-
-#: backend/runloop.c:392
-msgid "Printer is now connected."
-msgstr ""
-
-#: backend/usb-darwin.c:1286
-msgid "Printer is now online."
-msgstr ""
-
-#: backend/usb-darwin.c:1307
-msgid "Printer is offline."
-msgstr ""
-
-#: backend/usb-unix.c:139
-msgid "Printer not connected, will retry in 30 seconds."
-msgstr ""
-
#: cups/notify.c:126
msgid "Printer:"
msgstr ""
msgid "Rank Owner Pri Job Files Total Size"
msgstr ""
-#: backend/ipp.c:1882 backend/socket.c:475 filter/rastertoepson.c:1152
-#: filter/rastertohp.c:881 filter/rastertolabel.c:1307
-msgid "Ready to print."
-msgstr ""
-
#: cgi-bin/classes.c:171 cgi-bin/printers.c:174
msgid "Reject Jobs"
msgstr ""
msgid "Remote host did not accept data file (%d)."
msgstr ""
-#: ppdc/sample.c:437
+#: ppdc/sample.c:428
msgid "Reprint After Error"
msgstr ""
-#: cups/http-support.c:1285
+#: cups/http-support.c:1312
msgid "Request Entity Too Large"
msgstr ""
-#: cups/ppd.c:797 cups/ppd.c:1365 ppdc/sample.c:240
+#: cups/ppd.c:797 cups/ppd.c:1365 ppdc/sample.c:231
msgid "Resolution"
msgstr ""
msgid "Return Address"
msgstr ""
-#: ppdc/sample.c:174
-msgid "Return Address - 3/4 x 2\""
-msgstr ""
-
-#: ppdc/sample.c:458
+#: ppdc/sample.c:449
msgid "Rewind"
msgstr ""
msgid "SEQUENCE uses indefinite length"
msgstr ""
-#: cups/http-support.c:1309
+#: cups/http-support.c:1336
msgid "SSL/TLS Negotiation Error"
msgstr ""
-#: cups/http-support.c:1266
+#: cups/http-support.c:1293
msgid "See Other"
msgstr ""
msgid "Server Stopped"
msgstr ""
-#: cups/http-support.c:1303
+#: cups/http-support.c:1330
msgid "Service Unavailable"
msgstr ""
-#: cgi-bin/admin.c:2764 cgi-bin/admin.c:2810 cgi-bin/admin.c:2967
-#: cgi-bin/admin.c:2986
+#: cgi-bin/admin.c:2786 cgi-bin/admin.c:2832 cgi-bin/admin.c:2989
+#: cgi-bin/admin.c:3008
msgid "Set Allowed Users"
msgstr ""
-#: cgi-bin/admin.c:3013
+#: cgi-bin/admin.c:3035
msgid "Set As Server Default"
msgstr ""
-#: cgi-bin/admin.c:3113
+#: cgi-bin/admin.c:3135
msgid "Set Class Options"
msgstr ""
-#: cgi-bin/admin.c:3113 cgi-bin/admin.c:3287 cgi-bin/admin.c:3669
+#: cgi-bin/admin.c:3135 cgi-bin/admin.c:3309 cgi-bin/admin.c:3691
msgid "Set Printer Options"
msgstr ""
-#: cgi-bin/admin.c:3839 cgi-bin/admin.c:3883 cgi-bin/admin.c:3901
+#: cgi-bin/admin.c:3861 cgi-bin/admin.c:3905 cgi-bin/admin.c:3923
msgid "Set Publishing"
msgstr ""
msgid "Shipping Address"
msgstr ""
-#: ppdc/sample.c:175
-msgid "Shipping Address - 2 5/16 x 4\""
-msgstr ""
-
-#: ppdc/sample.c:282
+#: ppdc/sample.c:273
msgid "Short-Edge (Landscape)"
msgstr ""
-#: ppdc/sample.c:297
+#: ppdc/sample.c:288
msgid "Special Paper"
msgstr ""
msgid "Spooling job, %.0f%% complete."
msgstr ""
-#: ppdc/sample.c:350
+#: ppdc/sample.c:341
msgid "Standard"
msgstr ""
#. TRANSLATORS: Banner/cover sheet before the print job.
-#: cgi-bin/admin.c:3530
+#: cgi-bin/admin.c:3552
msgid "Starting Banner"
msgstr ""
msgid "Statement"
msgstr ""
-#: ppdc/sample.c:260
+#: ppdc/sample.c:251
msgid "Stylus Color Series"
msgstr ""
-#: ppdc/sample.c:266
+#: ppdc/sample.c:257
msgid "Stylus Photo Series"
msgstr ""
msgid "Super B/A3"
msgstr ""
-#: cups/http-support.c:1248
+#: cups/http-support.c:1275
msgid "Switching Protocols"
msgstr ""
msgid "Tabloid Oversize Long Edge"
msgstr ""
-#: ppdc/sample.c:351
+#: ppdc/sample.c:342
msgid "Tear"
msgstr ""
-#: ppdc/sample.c:456
+#: ppdc/sample.c:447
msgid "Tear-Off"
msgstr ""
-#: ppdc/sample.c:397
+#: ppdc/sample.c:388
msgid "Tear-Off Adjust Position"
msgstr ""
msgid "The paper tray needs to be filled."
msgstr ""
-#: backend/ipp.c:902
+#: backend/ipp.c:907
msgid "The printer URI is incorrect or no longer exists."
msgstr ""
-#: backend/ipp.c:752 backend/ipp.c:867 backend/ipp.c:973 backend/ipp.c:1302
-#: backend/ipp.c:1450 backend/lpd.c:828 backend/socket.c:374
-msgid "The printer is busy."
+#: backend/lpd.c:619 backend/lpd.c:1009 backend/lpd.c:1091 backend/lpd.c:1141
+msgid "The printer did not respond."
+msgstr ""
+
+#: backend/ipp.c:890 backend/ipp.c:897
+#, c-format
+msgid "The printer does not support IPP/%d.%d, trying IPP/%s."
msgstr ""
-#: cups/localize.c:311
+#: backend/ipp.c:755 backend/ipp.c:872 backend/ipp.c:978 backend/ipp.c:1305
+#: backend/ipp.c:1453 backend/lpd.c:828 backend/socket.c:374
+#: backend/usb-unix.c:131 backend/usb-unix.c:424 backend/usb-unix.c:507
+msgid "The printer is in use."
+msgstr ""
+
+#: backend/runloop.c:254 backend/runloop.c:373 cups/localize.c:311
msgid "The printer is not connected."
msgstr ""
-#: backend/ipp.c:730 backend/ipp.c:763 backend/ipp.c:863 backend/lpd.c:807
+#: backend/ipp.c:733 backend/ipp.c:766 backend/ipp.c:868 backend/lpd.c:807
#: backend/lpd.c:848 backend/socket.c:353 backend/socket.c:386
msgid "The printer is not responding."
msgstr ""
+#: backend/runloop.c:395
+msgid "The printer is now connected."
+msgstr ""
+
+#: backend/usb-darwin.c:1286
+msgid "The printer is now online."
+msgstr ""
+
+#: backend/usb-darwin.c:1307
+msgid "The printer is offline."
+msgstr ""
+
#: cups/localize.c:335
msgid "The printer is running low on ink."
msgstr ""
msgid "The printer is running low on toner."
msgstr ""
-#: backend/ipp.c:745 backend/lpd.c:821 backend/socket.c:367
+#: backend/ipp.c:748 backend/lpd.c:821 backend/socket.c:367
msgid "The printer is unreachable at this time."
msgstr ""
msgid "The printer may be out of toner."
msgstr ""
-#: backend/ipp.c:739 backend/lpd.c:815 backend/socket.c:361
+#: backend/ipp.c:742 backend/lpd.c:815 backend/socket.c:361
msgid "The printer may not exist or is unavailable at this time."
msgstr ""
msgid "The subscription name may not contain spaces, slashes (/), question marks (?), or the pound sign (#)."
msgstr ""
-#: scheduler/client.c:2521
+#: scheduler/client.c:2450
msgid "The web interface is currently disabled. Run \"cupsctl WebInterface=yes\" to enable it."
msgstr ""
msgid "There was an unrecoverable USB error."
msgstr ""
-#: ppdc/sample.c:444
+#: ppdc/sample.c:435
msgid "Thermal Transfer Media"
msgstr ""
msgid "Too many printer-state-reasons values (%d > %d)."
msgstr ""
-#: ppdc/sample.c:298
+#: ppdc/sample.c:289
msgid "Transparency"
msgstr ""
-#: ppdc/sample.c:293
+#: ppdc/sample.c:284
msgid "Tray"
msgstr ""
-#: ppdc/sample.c:273
+#: ppdc/sample.c:264
msgid "Tray 1"
msgstr ""
-#: ppdc/sample.c:274
+#: ppdc/sample.c:265
msgid "Tray 2"
msgstr ""
-#: ppdc/sample.c:275
+#: ppdc/sample.c:266
msgid "Tray 3"
msgstr ""
-#: ppdc/sample.c:276
+#: ppdc/sample.c:267
msgid "Tray 4"
msgstr ""
-#: cups/http-support.c:1288
+#: cups/http-support.c:1315
msgid "URI Too Long"
msgstr ""
msgid "US Letter Small"
msgstr ""
-#: cgi-bin/admin.c:1940 cgi-bin/admin.c:1953 cgi-bin/admin.c:1977
-msgid "Unable to access cupsd.conf file:"
+#: cgi-bin/admin.c:1959 cgi-bin/admin.c:1972 cgi-bin/admin.c:1996
+msgid "Unable to access cupsd.conf file"
+msgstr ""
+
+#: cgi-bin/help.c:133
+msgid "Unable to access help file."
msgstr ""
#: cgi-bin/admin.c:526
-msgid "Unable to add RSS subscription:"
+msgid "Unable to add RSS subscription"
msgstr ""
#: cgi-bin/admin.c:814
-msgid "Unable to add class:"
+msgid "Unable to add class"
msgstr ""
-#: backend/ipp.c:1620
+#: backend/ipp.c:1624
msgid "Unable to add document to print job."
msgstr ""
msgstr ""
#: cgi-bin/admin.c:1059 cgi-bin/admin.c:1419
-msgid "Unable to add printer:"
+msgid "Unable to add printer"
msgstr ""
#: scheduler/ipp.c:1258
msgstr ""
#: cgi-bin/admin.c:1525
-msgid "Unable to cancel RSS subscription:"
+msgid "Unable to cancel RSS subscription"
msgstr ""
-#: backend/ipp.c:1924
+#: backend/ipp.c:1929
msgid "Unable to cancel print job."
msgstr ""
-#: cgi-bin/admin.c:3884
-msgid "Unable to change printer-is-shared attribute:"
+#: cgi-bin/admin.c:2990
+msgid "Unable to change printer"
msgstr ""
-#: cgi-bin/admin.c:2968
-msgid "Unable to change printer:"
+#: cgi-bin/admin.c:3906
+msgid "Unable to change printer-is-shared attribute"
msgstr ""
-#: cgi-bin/admin.c:1638 cgi-bin/admin.c:1780
-msgid "Unable to change server settings:"
+#: cgi-bin/admin.c:1657 cgi-bin/admin.c:1799
+msgid "Unable to change server settings"
msgstr ""
-#: filter/commandtops.c:421
+#: filter/commandtops.c:420
msgid "Unable to configure printer options."
msgstr ""
-#: cups/adminutil.c:911 cups/request.c:1022
+#: cups/adminutil.c:911 cups/request.c:1021
msgid "Unable to connect to host."
msgstr ""
-#: backend/ipp.c:708 backend/ipp.c:1123 backend/lpd.c:787 backend/socket.c:333
+#: backend/ipp.c:711 backend/ipp.c:1131 backend/lpd.c:787 backend/socket.c:333
#: backend/usb-unix.c:117
msgid "Unable to contact printer, queuing on next printer in class."
msgstr ""
msgid "Unable to copy interface script - %s"
msgstr ""
-#: backend/ipp.c:2016
+#: backend/ipp.c:2021
msgid "Unable to create compressed print file"
msgstr ""
msgid "Unable to create printer-uri"
msgstr ""
-#: scheduler/cupsfilter.c:1242
+#: cgi-bin/admin.c:1850 cgi-bin/admin.c:1862 scheduler/cupsfilter.c:1236
msgid "Unable to create temporary file"
msgstr ""
-#: cgi-bin/admin.c:1831 cgi-bin/admin.c:1843
-msgid "Unable to create temporary file:"
-msgstr ""
-
-#: cgi-bin/admin.c:2134
-msgid "Unable to delete class:"
+#: cgi-bin/admin.c:2153
+msgid "Unable to delete class"
msgstr ""
-#: cgi-bin/admin.c:2219
-msgid "Unable to delete printer:"
+#: cgi-bin/admin.c:2238
+msgid "Unable to delete printer"
msgstr ""
#: cgi-bin/classes.c:260 cgi-bin/printers.c:269
-msgid "Unable to do maintenance command:"
+msgid "Unable to do maintenance command"
msgstr ""
-#: cgi-bin/admin.c:1955
+#: cgi-bin/admin.c:1974
msgid "Unable to edit cupsd.conf files larger than 1MB"
msgstr ""
-#: cups/http.c:4258
+#: cups/http.c:4259
msgid "Unable to establish a secure connection to host (certificate chain invalid)."
msgstr ""
-#: cups/http.c:4248
+#: cups/http.c:4249
msgid "Unable to establish a secure connection to host (certificate not yet valid)."
msgstr ""
-#: cups/http.c:4243
+#: cups/http.c:4244
msgid "Unable to establish a secure connection to host (expired certificate)."
msgstr ""
-#: cups/http.c:4253
+#: cups/http.c:4254
msgid "Unable to establish a secure connection to host (host name mismatch)."
msgstr ""
-#: cups/http.c:4263
+#: cups/http.c:4264
msgid "Unable to establish a secure connection to host (peer dropped connection before responding)."
msgstr ""
-#: cups/http.c:4238
+#: cups/http.c:4239
msgid "Unable to establish a secure connection to host (self-signed certificate)."
msgstr ""
-#: cups/http.c:4233
+#: cups/http.c:4234
msgid "Unable to establish a secure connection to host (untrusted certificate)."
msgstr ""
-#: cups/http.c:3995 cups/http.c:4290 cups/http.c:4323 cups/http.c:4340
+#: cups/http.c:3995 cups/http.c:4291 cups/http.c:4324 cups/http.c:4341
msgid "Unable to establish a secure connection to host."
msgstr ""
msgid "Unable to find destination for job"
msgstr ""
-#: cups/http-support.c:1644
+#: cups/http-support.c:1748
msgid "Unable to find printer."
msgstr ""
-#: backend/ipp.c:2038
+#: backend/ipp.c:2043
msgid "Unable to generate compressed print file"
msgstr ""
-#: backend/ipp.c:2945
+#: backend/ipp.c:2995
msgid "Unable to get backend exit status."
msgstr ""
#: cgi-bin/classes.c:450
-msgid "Unable to get class list:"
+msgid "Unable to get class list"
msgstr ""
#: cgi-bin/classes.c:549
-msgid "Unable to get class status:"
+msgid "Unable to get class status"
msgstr ""
#: cgi-bin/admin.c:1320
-msgid "Unable to get list of printer drivers:"
+msgid "Unable to get list of printer drivers"
msgstr ""
-#: cgi-bin/admin.c:2818
-msgid "Unable to get printer attributes:"
+#: cgi-bin/admin.c:2840
+msgid "Unable to get printer attributes"
msgstr ""
#: cgi-bin/printers.c:467
-msgid "Unable to get printer list:"
+msgid "Unable to get printer list"
msgstr ""
-#: backend/ipp.c:926
-msgid "Unable to get printer status."
+#: cgi-bin/printers.c:569
+msgid "Unable to get printer status"
msgstr ""
-#: cgi-bin/printers.c:569
-msgid "Unable to get printer status:"
+#: backend/ipp.c:931
+msgid "Unable to get printer status."
msgstr ""
#: cups/adminutil.c:565 cups/adminutil.c:769
msgid "Unable to install Windows 9x printer driver files (%d)."
msgstr ""
+#: cgi-bin/help.c:92
+msgid "Unable to load help index."
+msgstr ""
+
#: backend/ipp.c:640 backend/lpd.c:421 backend/socket.c:275
#, c-format
msgid "Unable to locate printer \"%s\"."
msgstr ""
-#: backend/dnssd.c:529 backend/ipp.c:322 backend/lpd.c:204
+#: backend/dnssd.c:787 backend/ipp.c:322 backend/lpd.c:204
#: backend/socket.c:171
msgid "Unable to locate printer."
msgstr ""
#: cgi-bin/admin.c:813
-msgid "Unable to modify class:"
+msgid "Unable to modify class"
msgstr ""
#: cgi-bin/admin.c:1058 cgi-bin/admin.c:1418
-msgid "Unable to modify printer:"
+msgid "Unable to modify printer"
msgstr ""
#: cgi-bin/ipp-var.c:432 cgi-bin/ipp-var.c:521
msgid "Unable to move jobs"
msgstr ""
-#: cups/ppd.c:339
+#: cgi-bin/admin.c:3186 cups/ppd.c:339
msgid "Unable to open PPD file"
msgstr ""
-#: cgi-bin/admin.c:3164
-msgid "Unable to open PPD file:"
-msgstr ""
-
-#: backend/ipp.c:2022
+#: backend/ipp.c:2027
msgid "Unable to open compressed print file"
msgstr ""
-#: cgi-bin/admin.c:2589
+#: cgi-bin/admin.c:2608
msgid "Unable to open cupsd.conf file:"
msgstr ""
-#: backend/usb-unix.c:145
+#: backend/usb-unix.c:141
msgid "Unable to open device file"
msgstr ""
msgid "Unable to open document #%d in job #%d."
msgstr ""
-#: backend/ipp.c:363 backend/ipp.c:1384 backend/ipp.c:1580 backend/ipp.c:2028
+#: cgi-bin/help.c:364
+msgid "Unable to open help file."
+msgstr ""
+
+#: backend/ipp.c:363 backend/ipp.c:1387 backend/ipp.c:1583 backend/ipp.c:2033
#: backend/lpd.c:488 backend/socket.c:158 backend/usb.c:237
#: filter/gziptoany.c:71 filter/pstops.c:300
msgid "Unable to open print file"
msgstr ""
#: cgi-bin/ipp-var.c:795
-msgid "Unable to print test page:"
-msgstr ""
-
-#: backend/runloop.c:95 backend/runloop.c:322
-msgid "Unable to read print data"
+msgid "Unable to print test page"
msgstr ""
-#: backend/usb-darwin.c:613 backend/usb-darwin.c:657 backend/usb-libusb.c:343
-#: backend/usb-libusb.c:378
+#: backend/runloop.c:96 backend/runloop.c:324 backend/usb-darwin.c:613
+#: backend/usb-darwin.c:657 backend/usb-libusb.c:343 backend/usb-libusb.c:378
msgid "Unable to read print data."
msgstr ""
-#: cups/dest.c:2974
+#: cups/dest.c:2968
msgid "Unable to resolve printer URI."
msgstr ""
msgid "Unable to set Windows printer driver (%d)."
msgstr ""
-#: cgi-bin/admin.c:3785
-msgid "Unable to set options:"
+#: cgi-bin/admin.c:3807
+msgid "Unable to set options"
msgstr ""
-#: cgi-bin/admin.c:3055
-msgid "Unable to set server default:"
+#: cgi-bin/admin.c:3077
+msgid "Unable to set server default"
msgstr ""
-#: backend/ipp.c:2804 backend/ipp.c:2881 backend/ipp.c:2889
+#: backend/ipp.c:2854 backend/ipp.c:2931 backend/ipp.c:2939
msgid "Unable to start backend process."
msgstr ""
-#: cgi-bin/admin.c:1893
-msgid "Unable to upload cupsd.conf file:"
+#: cgi-bin/admin.c:1912
+msgid "Unable to upload cupsd.conf file"
msgstr ""
#: backend/usb-darwin.c:1985 backend/usb-darwin.c:2009
msgid "Unable to use legacy USB class driver."
msgstr ""
-#: backend/runloop.c:124 backend/runloop.c:377
+#: backend/runloop.c:125 backend/runloop.c:379
msgid "Unable to write print data"
msgstr ""
msgid "Unable to write uncompressed print data: %s"
msgstr ""
-#: cups/http-support.c:1276
+#: cups/http-support.c:1303
msgid "Unauthorized"
msgstr ""
-#: cgi-bin/admin.c:3481
+#: cgi-bin/admin.c:3503
msgid "Units"
msgstr ""
-#: cups/http-support.c:1316 cups/ppd.c:366
+#: cups/http-support.c:1343 cups/ppd.c:366
msgid "Unknown"
msgstr ""
msgid "Unknown printer-op-policy \"%s\"."
msgstr ""
-#: cups/http-addrlist.c:708
+#: cups/http-addrlist.c:710
msgid "Unknown service name."
msgstr ""
msgid "Unsupported margins."
msgstr ""
-#: cups/pwg-media.c:467
+#: cups/pwg-media.c:468
msgid "Unsupported media value."
msgstr ""
msgid "Unsupported value type"
msgstr ""
-#: cups/http-support.c:1291
+#: cups/http-support.c:1318
msgid "Upgrade Required"
msgstr ""
" [-u allow:user,user] [-u deny:user,user]"
msgstr ""
-#: backend/dnssd.c:174 backend/ipp.c:311 backend/lpd.c:191
-#: backend/socket.c:135 backend/usb.c:183 monitor/bcp.c:62 monitor/tbcp.c:61
+#: backend/dnssd.c:241 backend/ipp.c:311 backend/lpd.c:191
+#: backend/socket.c:135 backend/usb.c:183 filter/commandtops.c:74
+#: filter/gziptoany.c:50 filter/pstops.c:264 monitor/bcp.c:62
+#: monitor/tbcp.c:61
#, c-format
msgid "Usage: %s job-id user title copies options [file]"
msgstr ""
-#: filter/commandtops.c:74 filter/gziptoany.c:50 filter/pstops.c:264
-#, c-format
-msgid "Usage: %s job-id user title copies options file"
-msgstr ""
-
-#: scheduler/cupsfilter.c:1464
-msgid "Usage: convert [ options ]"
-msgstr ""
-
#: systemv/cupsaddsmb.c:281
msgid "Usage: cupsaddsmb [options] printer1 ... printerN"
msgstr ""
msgid "Usage: cupsctl [options] [param=value ... paramN=valueN]"
msgstr ""
-#: scheduler/main.c:2018
+#: scheduler/main.c:2017
msgid "Usage: cupsd [options]"
msgstr ""
-#: scheduler/cupsfilter.c:1437
+#: scheduler/cupsfilter.c:1429
msgid "Usage: cupsfilter [ options ] filename"
msgstr ""
msgid "Usage: cupstestdsc [options] filename.ps [... filename.ps]"
msgstr ""
-#: systemv/cupstestppd.c:3792
+#: systemv/cupstestppd.c:3793
msgid "Usage: cupstestppd [options] filename1.ppd[.gz] [... filenameN.ppd[.gz]]"
msgstr ""
msgid "Version uses indefinite length"
msgstr ""
-#: backend/ipp.c:1660
+#: backend/ipp.c:1664
msgid "Waiting for job to complete."
msgstr ""
msgid "Warning, no Windows 2000 printer drivers are installed."
msgstr ""
-#: cups/http-support.c:1312
+#: cups/http-support.c:1339
msgid "Web Interface is Disabled"
msgstr ""
msgid "Yes"
msgstr ""
-#: scheduler/client.c:2508
+#: scheduler/client.c:2437
#, c-format
msgid "You must access this page using the URL <A HREF=\"https://%s:%d%s\">https://%s:%d%s</A>."
msgstr ""
msgid "Your password must be at least 6 characters long, cannot contain your username, and must contain at least one letter and number."
msgstr ""
-#: ppdc/sample.c:448
+#: ppdc/sample.c:439
msgid "ZPL Label Printer"
msgstr ""
-#: ppdc/sample.c:371
+#: ppdc/sample.c:362
msgid "Zebra"
msgstr ""
msgid "completed"
msgstr ""
-#: scheduler/cupsfilter.c:356
-msgid "convert: Use the -f option to specify a file to convert."
-msgstr ""
-
#: scheduler/ipp.c:6706
msgid "cups-deviced failed to execute."
msgstr ""
msgid "cupsctl: Unknown option \"-%c\""
msgstr ""
-#: scheduler/main.c:193
+#: scheduler/main.c:189
msgid "cupsd: Expected config filename after \"-c\" option."
msgstr ""
-#: scheduler/main.c:225 scheduler/main.c:232
+#: scheduler/main.c:221 scheduler/main.c:228
msgid "cupsd: Unable to get current directory."
msgstr ""
-#: scheduler/main.c:299
+#: scheduler/main.c:295
#, c-format
msgid "cupsd: Unknown argument \"%s\" - aborting."
msgstr ""
-#: scheduler/main.c:292
+#: scheduler/main.c:288
#, c-format
msgid "cupsd: Unknown option \"%c\" - aborting."
msgstr ""
-#: scheduler/main.c:259
+#: scheduler/main.c:255
msgid "cupsd: launchd(8) support not compiled in, running in normal mode."
msgstr ""
-#: scheduler/cupsfilter.c:1215
+#: scheduler/cupsfilter.c:1209
#, c-format
msgid "cupsfilter: Invalid document number %d."
msgstr ""
-#: scheduler/cupsfilter.c:1209
+#: scheduler/cupsfilter.c:1203
#, c-format
msgid "cupsfilter: Invalid job ID %d."
msgstr ""
-#: scheduler/cupsfilter.c:364
+#: scheduler/cupsfilter.c:358
msgid "cupsfilter: Only one filename can be specified."
msgstr ""
-#: scheduler/cupsfilter.c:1257
+#: scheduler/cupsfilter.c:1251
#, c-format
msgid "cupsfilter: Unable to get job file - %s"
msgstr ""
msgid "idle"
msgstr ""
-#: test/ipptool.c:371
+#: test/ipptool.c:371 test/ipptool.c:510 test/ipptool.c:534
msgid "ipptool: \"-i\" and \"-n\" are incompatible with -X\"."
msgstr ""
-#: test/ipptool.c:510
-msgid "ipptool: \"-i\" is incompatible with \"-X\"."
-msgstr ""
-
-#: test/ipptool.c:534
-msgid "ipptool: \"-n\" is incompatible with \"-X\"."
-msgstr ""
-
#: test/ipptool.c:592
#, c-format
msgid "ipptool: Bad URI - %s."
msgid "ppdc: Bad font attribute: %s"
msgstr ""
-#: ppdc/ppdc-source.cxx:1795
+#: ppdc/ppdc-source.cxx:1796
#, c-format
msgid "ppdc: Bad resolution name \"%s\" on line %d of %s."
msgstr ""
msgid "ppdc: Bad status keyword %s on line %d of %s."
msgstr ""
-#: ppdc/ppdc-source.cxx:2032
+#: ppdc/ppdc-source.cxx:2033
#, c-format
msgid "ppdc: Bad variable substitution ($%c) on line %d of %s."
msgstr ""
-#: ppdc/ppdc-source.cxx:2718
+#: ppdc/ppdc-source.cxx:2719
#, c-format
msgid "ppdc: Choice found on line %d of %s with no Option."
msgstr ""
-#: ppdc/ppdc-source.cxx:1697
+#: ppdc/ppdc-source.cxx:1698
#, c-format
msgid "ppdc: Duplicate #po for locale %s on line %d of %s."
msgstr ""
msgid "ppdc: Expected constraints string for UIConstraints on line %d of %s."
msgstr ""
-#: ppdc/ppdc-source.cxx:2904
+#: ppdc/ppdc-source.cxx:2905
#, c-format
msgid "ppdc: Expected driver type keyword following DriverType on line %d of %s."
msgstr ""
msgid "ppdc: Expected encoding after Font on line %d of %s."
msgstr ""
-#: ppdc/ppdc-source.cxx:1688
+#: ppdc/ppdc-source.cxx:1689
#, c-format
msgid "ppdc: Expected filename after #po %s on line %d of %s."
msgstr ""
msgid "ppdc: Expected group name/text on line %d of %s."
msgstr ""
-#: ppdc/ppdc-source.cxx:2618
+#: ppdc/ppdc-source.cxx:2619
#, c-format
msgid "ppdc: Expected include filename on line %d of %s."
msgstr ""
-#: ppdc/ppdc-source.cxx:1501
+#: ppdc/ppdc-source.cxx:1502
#, c-format
msgid "ppdc: Expected integer on line %d of %s."
msgstr ""
-#: ppdc/ppdc-source.cxx:1680
+#: ppdc/ppdc-source.cxx:1681
#, c-format
msgid "ppdc: Expected locale after #po on line %d of %s."
msgstr ""
msgid "ppdc: Expected name after %s on line %d of %s."
msgstr ""
-#: ppdc/ppdc-source.cxx:3276
+#: ppdc/ppdc-source.cxx:3277
#, c-format
msgid "ppdc: Expected name after FileName on line %d of %s."
msgstr ""
msgid "ppdc: Expected name after Font on line %d of %s."
msgstr ""
-#: ppdc/ppdc-source.cxx:3107
+#: ppdc/ppdc-source.cxx:3108
#, c-format
msgid "ppdc: Expected name after Manufacturer on line %d of %s."
msgstr ""
-#: ppdc/ppdc-source.cxx:3140
+#: ppdc/ppdc-source.cxx:3141
#, c-format
msgid "ppdc: Expected name after MediaSize on line %d of %s."
msgstr ""
-#: ppdc/ppdc-source.cxx:3230
+#: ppdc/ppdc-source.cxx:3231
#, c-format
msgid "ppdc: Expected name after ModelName on line %d of %s."
msgstr ""
-#: ppdc/ppdc-source.cxx:3293
+#: ppdc/ppdc-source.cxx:3294
#, c-format
msgid "ppdc: Expected name after PCFileName on line %d of %s."
msgstr ""
msgid "ppdc: Expected name/text after Installable on line %d of %s."
msgstr ""
-#: ppdc/ppdc-source.cxx:1781
+#: ppdc/ppdc-source.cxx:1782
#, c-format
msgid "ppdc: Expected name/text after Resolution on line %d of %s."
msgstr ""
msgid "ppdc: Expected name/text combination for ColorModel on line %d of %s."
msgstr ""
-#: ppdc/ppdc-source.cxx:1573
+#: ppdc/ppdc-source.cxx:1574
#, c-format
msgid "ppdc: Expected option name/text on line %d of %s."
msgstr ""
-#: ppdc/ppdc-source.cxx:1607
+#: ppdc/ppdc-source.cxx:1608
#, c-format
msgid "ppdc: Expected option section on line %d of %s."
msgstr ""
-#: ppdc/ppdc-source.cxx:1585
+#: ppdc/ppdc-source.cxx:1586
#, c-format
msgid "ppdc: Expected option type on line %d of %s."
msgstr ""
-#: ppdc/ppdc-source.cxx:1764
+#: ppdc/ppdc-source.cxx:1765
#, c-format
msgid "ppdc: Expected override field after Resolution on line %d of %s."
msgstr ""
msgid "ppdc: Expected resolution/mediatype following ColorProfile on line %d of %s."
msgstr ""
-#: ppdc/ppdc-source.cxx:1862
+#: ppdc/ppdc-source.cxx:1863
#, c-format
msgid "ppdc: Expected resolution/mediatype following SimpleColorProfile on line %d of %s."
msgstr ""
msgid "ppdc: Expected status after Font on line %d of %s."
msgstr ""
-#: ppdc/ppdc-source.cxx:2793
+#: ppdc/ppdc-source.cxx:2794
#, c-format
msgid "ppdc: Expected string after Copyright on line %d of %s."
msgstr ""
-#: ppdc/ppdc-source.cxx:3396
+#: ppdc/ppdc-source.cxx:3397
#, c-format
msgid "ppdc: Expected string after Version on line %d of %s."
msgstr ""
msgid "ppdc: Invalid empty program name for filter on line %d of %s."
msgstr ""
-#: ppdc/ppdc-source.cxx:1627
+#: ppdc/ppdc-source.cxx:1628
#, c-format
msgid "ppdc: Invalid option section \"%s\" on line %d of %s."
msgstr ""
-#: ppdc/ppdc-source.cxx:1599
+#: ppdc/ppdc-source.cxx:1600
#, c-format
msgid "ppdc: Invalid option type \"%s\" on line %d of %s."
msgstr ""
msgid "ppdc: Loading messages from \"%s\"."
msgstr ""
-#: ppdc/ppdc-source.cxx:2411 ppdc/ppdc-source.cxx:2643
+#: ppdc/ppdc-source.cxx:2412 ppdc/ppdc-source.cxx:2644
#, c-format
msgid "ppdc: Missing #endif at end of \"%s\"."
msgstr ""
-#: ppdc/ppdc-source.cxx:2512 ppdc/ppdc-source.cxx:2547
-#: ppdc/ppdc-source.cxx:2577
+#: ppdc/ppdc-source.cxx:2513 ppdc/ppdc-source.cxx:2548
+#: ppdc/ppdc-source.cxx:2578
#, c-format
msgid "ppdc: Missing #if on line %d of %s."
msgstr ""
msgid "ppdc: No message catalog provided for locale %s."
msgstr ""
-#: ppdc/ppdc-source.cxx:1650 ppdc/ppdc-source.cxx:2881
-#: ppdc/ppdc-source.cxx:2967 ppdc/ppdc-source.cxx:3060
-#: ppdc/ppdc-source.cxx:3193 ppdc/ppdc-source.cxx:3326
+#: ppdc/ppdc-source.cxx:1651 ppdc/ppdc-source.cxx:2882
+#: ppdc/ppdc-source.cxx:2968 ppdc/ppdc-source.cxx:3061
+#: ppdc/ppdc-source.cxx:3194 ppdc/ppdc-source.cxx:3327
#, c-format
msgid "ppdc: Option %s defined in two different groups on line %d of %s."
msgstr ""
-#: ppdc/ppdc-source.cxx:1643
+#: ppdc/ppdc-source.cxx:1644
#, c-format
msgid "ppdc: Option %s redefined with a different type on line %d of %s."
msgstr ""
msgid "ppdc: Option constraint must *name on line %d of %s."
msgstr ""
-#: ppdc/ppdc-source.cxx:2494
+#: ppdc/ppdc-source.cxx:2495
#, c-format
msgid "ppdc: Too many nested #if's on line %d of %s."
msgstr ""
msgid "ppdc: Unable to execute cupstestppd: %s"
msgstr ""
-#: ppdc/ppdc-source.cxx:1729
+#: ppdc/ppdc-source.cxx:1730
#, c-format
msgid "ppdc: Unable to find #po file %s on line %d of %s."
msgstr ""
-#: ppdc/ppdc-source.cxx:2650
+#: ppdc/ppdc-source.cxx:2651
#, c-format
msgid "ppdc: Unable to find include file \"%s\" on line %d of %s."
msgstr ""
msgid "ppdc: Unable to open %s: %s"
msgstr ""
-#: ppdc/ppdc-source.cxx:2053
+#: ppdc/ppdc-source.cxx:2054
#, c-format
msgid "ppdc: Undefined variable (%s) on line %d of %s."
msgstr ""
msgid "ppdc: Unexpected text on line %d of %s."
msgstr ""
-#: ppdc/ppdc-source.cxx:2923
+#: ppdc/ppdc-source.cxx:2924
#, c-format
msgid "ppdc: Unknown driver type %s on line %d of %s."
msgstr ""
msgid "ppdc: Unknown duplex type \"%s\" on line %d of %s."
msgstr ""
-#: ppdc/ppdc-source.cxx:3153
+#: ppdc/ppdc-source.cxx:3154
#, c-format
msgid "ppdc: Unknown media size \"%s\" on line %d of %s."
msgstr ""
msgid "ppdc: Unknown message catalog format for \"%s\"."
msgstr ""
-#: ppdc/ppdc-source.cxx:3407
+#: ppdc/ppdc-source.cxx:3408
#, c-format
msgid "ppdc: Unknown token \"%s\" seen on line %d of %s."
msgstr ""
msgid "ppdc: Unknown trailing characters in real number \"%s\" on line %d of %s."
msgstr ""
-#: ppdc/ppdc-source.cxx:2163
+#: ppdc/ppdc-source.cxx:2164
#, c-format
msgid "ppdc: Unterminated string starting with %c on line %d of %s."
msgstr ""
" %s cupsICCProfile %s hash value collides with %s." = " %s cupsICCProfile %s hash value collides with %s.";
" %s cupsUIResolver %s causes a loop." = " %s cupsUIResolver %s causes a loop.";
" %s cupsUIResolver %s does not list at least two different options." = " %s cupsUIResolver %s does not list at least two different options.";
-" **FAIL** %s choice names %s and %s differ only by case." = " **FAIL** %s choice names %s and %s differ only by case.";
" **FAIL** %s must be 1284DeviceID\n REF: Page 72, section 5.5" = " **FAIL** %s must be 1284DeviceID\n REF: Page 72, section 5.5";
-" **FAIL** BAD Default%s %s\n REF: Page 40, section 4.5." = " **FAIL** BAD Default%s %s\n REF: Page 40, section 4.5.";
-" **FAIL** BAD DefaultImageableArea %s\n REF: Page 102, section 5.15." = " **FAIL** BAD DefaultImageableArea %s\n REF: Page 102, section 5.15.";
-" **FAIL** BAD DefaultPaperDimension %s\n REF: Page 103, section 5.15." = " **FAIL** BAD DefaultPaperDimension %s\n REF: Page 103, section 5.15.";
-" **FAIL** BAD JobPatchFile attribute in file\n REF: Page 24, section 3.4." = " **FAIL** BAD JobPatchFile attribute in file\n REF: Page 24, section 3.4.";
-" **FAIL** BAD Manufacturer (should be \"HP\")\n REF: Page 211, table D.1." = " **FAIL** BAD Manufacturer (should be \"HP\")\n REF: Page 211, table D.1.";
-" **FAIL** BAD Manufacturer (should be \"Oki\")\n REF: Page 211, table D.1." = " **FAIL** BAD Manufacturer (should be \"Oki\")\n REF: Page 211, table D.1.";
-" **FAIL** BAD ModelName - \"%c\" not allowed in string.\n REF: Pages 59-60, section 5.3." = " **FAIL** BAD ModelName - \"%c\" not allowed in string.\n REF: Pages 59-60, section 5.3.";
-" **FAIL** BAD PSVersion - not \"(string) int\".\n REF: Pages 62-64, section 5.3." = " **FAIL** BAD PSVersion - not \"(string) int\".\n REF: Pages 62-64, section 5.3.";
-" **FAIL** BAD Product - not \"(string)\".\n REF: Page 62, section 5.3." = " **FAIL** BAD Product - not \"(string)\".\n REF: Page 62, section 5.3.";
-" **FAIL** BAD ShortNickName - longer than 31 chars.\n REF: Pages 64-65, section 5.3." = " **FAIL** BAD ShortNickName - longer than 31 chars.\n REF: Pages 64-65, section 5.3.";
-" **FAIL** Bad %s choice %s\n REF: Page 84, section 5.9" = " **FAIL** Bad %s choice %s\n REF: Page 84, section 5.9";
+" **FAIL** Bad Default%s %s\n REF: Page 40, section 4.5." = " **FAIL** Bad Default%s %s\n REF: Page 40, section 4.5.";
+" **FAIL** Bad DefaultImageableArea %s\n REF: Page 102, section 5.15." = " **FAIL** Bad DefaultImageableArea %s\n REF: Page 102, section 5.15.";
+" **FAIL** Bad DefaultPaperDimension %s\n REF: Page 103, section 5.15." = " **FAIL** Bad DefaultPaperDimension %s\n REF: Page 103, section 5.15.";
" **FAIL** Bad FileVersion \"%s\"\n REF: Page 56, section 5.3." = " **FAIL** Bad FileVersion \"%s\"\n REF: Page 56, section 5.3.";
" **FAIL** Bad FormatVersion \"%s\"\n REF: Page 56, section 5.3." = " **FAIL** Bad FormatVersion \"%s\"\n REF: Page 56, section 5.3.";
+" **FAIL** Bad JobPatchFile attribute in file\n REF: Page 24, section 3.4." = " **FAIL** Bad JobPatchFile attribute in file\n REF: Page 24, section 3.4.";
" **FAIL** Bad LanguageEncoding %s - must be ISOLatin1." = " **FAIL** Bad LanguageEncoding %s - must be ISOLatin1.";
" **FAIL** Bad LanguageVersion %s - must be English." = " **FAIL** Bad LanguageVersion %s - must be English.";
+" **FAIL** Bad Manufacturer (should be \"%s\")\n REF: Page 211, table D.1." = " **FAIL** Bad Manufacturer (should be \"%s\")\n REF: Page 211, table D.1.";
+" **FAIL** Bad ModelName - \"%c\" not allowed in string.\n REF: Pages 59-60, section 5.3." = " **FAIL** Bad ModelName - \"%c\" not allowed in string.\n REF: Pages 59-60, section 5.3.";
+" **FAIL** Bad PSVersion - not \"(string) int\".\n REF: Pages 62-64, section 5.3." = " **FAIL** Bad PSVersion - not \"(string) int\".\n REF: Pages 62-64, section 5.3.";
+" **FAIL** Bad Product - not \"(string)\".\n REF: Page 62, section 5.3." = " **FAIL** Bad Product - not \"(string)\".\n REF: Page 62, section 5.3.";
+" **FAIL** Bad ShortNickName - longer than 31 chars.\n REF: Pages 64-65, section 5.3." = " **FAIL** Bad ShortNickName - longer than 31 chars.\n REF: Pages 64-65, section 5.3.";
+" **FAIL** Bad option %s choice %s\n REF: Page 84, section 5.9" = " **FAIL** Bad option %s choice %s\n REF: Page 84, section 5.9";
" **FAIL** Default option code cannot be interpreted: %s" = " **FAIL** Default option code cannot be interpreted: %s";
" **FAIL** Default translation string for option %s choice %s contains 8-bit characters." = " **FAIL** Default translation string for option %s choice %s contains 8-bit characters.";
" **FAIL** Default translation string for option %s contains 8-bit characters." = " **FAIL** Default translation string for option %s contains 8-bit characters.";
" **FAIL** Group names %s and %s differ only by case." = " **FAIL** Group names %s and %s differ only by case.";
-" **FAIL** Multiple occurrences of %s choice name %s." = " **FAIL** Multiple occurrences of %s choice name %s.";
+" **FAIL** Multiple occurrences of option %s choice name %s." = " **FAIL** Multiple occurrences of option %s choice name %s.";
+" **FAIL** Option %s choice names %s and %s differ only by case." = " **FAIL** Option %s choice names %s and %s differ only by case.";
" **FAIL** Option names %s and %s differ only by case." = " **FAIL** Option names %s and %s differ only by case.";
" **FAIL** REQUIRED Default%s\n REF: Page 40, section 4.5." = " **FAIL** REQUIRED Default%s\n REF: Page 40, section 4.5.";
" **FAIL** REQUIRED DefaultImageableArea\n REF: Page 102, section 5.15." = " **FAIL** REQUIRED DefaultImageableArea\n REF: Page 102, section 5.15.";
" **FAIL** REQUIRED PaperDimension for PageSize %s\n REF: Page 41, section 5.\n REF: Page 103, section 5.15." = " **FAIL** REQUIRED PaperDimension for PageSize %s\n REF: Page 41, section 5.\n REF: Page 103, section 5.15.";
" **FAIL** REQUIRED Product\n REF: Page 62, section 5.3." = " **FAIL** REQUIRED Product\n REF: Page 62, section 5.3.";
" **FAIL** REQUIRED ShortNickName\n REF: Page 64-65, section 5.3." = " **FAIL** REQUIRED ShortNickName\n REF: Page 64-65, section 5.3.";
-" **FAIL** Unable to open PPD file - %s" = " **FAIL** Unable to open PPD file - %s";
" **FAIL** Unable to open PPD file - %s on line %d." = " **FAIL** Unable to open PPD file - %s on line %d.";
" %d ERRORS FOUND" = " %d ERRORS FOUND";
" -h Show program usage" = " -h Show program usage";
" --[no-]user-cancel-any Allow/prevent users to cancel any job." = " --[no-]user-cancel-any Allow/prevent users to cancel any job.";
" --cr End lines with CR (Mac OS 9)." = " --cr End lines with CR (Mac OS 9).";
" --crlf End lines with CR + LF (Windows)." = " --crlf End lines with CR + LF (Windows).";
-" --lf End lines with LF (UNIX/Linux/Mac OS X)." = " --lf End lines with LF (UNIX/Linux/Mac OS X).";
+" --lf End lines with LF (UNIX/Linux/OS X)." = " --lf End lines with LF (UNIX/Linux/OS X).";
" -4 Connect using IPv4." = " -4 Connect using IPv4.";
" -6 Connect using IPv6." = " -6 Connect using IPv6.";
" -C Send requests using chunking (default)." = " -C Send requests using chunking (default).";
" -D Remove the input file when finished." = " -D Remove the input file when finished.";
" -D name=value Set named variable to value." = " -D name=value Set named variable to value.";
-" -E Enable encryption." = " -E Enable encryption.";
-" -E Encrypt the connection to the server." = " -E Encrypt the connection to the server.";
-" -E Test with TLS encryption." = " -E Test with TLS encryption.";
+" -E Encrypt the connection." = " -E Encrypt the connection.";
+" -E Test with HTTP Upgrade to TLS." = " -E Test with HTTP Upgrade to TLS.";
" -F Run in the foreground but detach from console." = " -F Run in the foreground but detach from console.";
" -H samba-server Use the named SAMBA server." = " -H samba-server Use the named SAMBA server.";
" -I Ignore errors." = " -I Ignore errors.";
" -I include-dir Add include directory to search path." = " -I include-dir Add include directory to search path.";
" -I {filename,filters,none,profiles}" = " -I {filename,filters,none,profiles}";
-" -J title Set title." = " -J title Set title.";
" -L Send requests using content-length." = " -L Send requests using content-length.";
" -P filename.ppd Set PPD file." = " -P filename.ppd Set PPD file.";
" -R root-directory Set alternate root." = " -R root-directory Set alternate root.";
" -S Test with SSL encryption." = " -S Test with SSL encryption.";
" -T seconds Set the receive/send timeout in seconds." = " -T seconds Set the receive/send timeout in seconds.";
-" -U samba-user Authenticate using the named SAMBA user." = " -U samba-user Authenticate using the named SAMBA user.";
-" -U username Set username for job." = " -U username Set username for job.";
" -U username Specify username." = " -U username Specify username.";
" -V version Set default IPP version." = " -V version Set default IPP version.";
" -W {all,none,constraints,defaults,duplex,filters,profiles,sizes,translations}" = " -W {all,none,constraints,defaults,duplex,filters,profiles,sizes,translations}";
" -X Produce XML plist instead of plain text." = " -X Produce XML plist instead of plain text.";
" -a Export all printers." = " -a Export all printers.";
-" -a 'name=value ...' Set option(s)." = " -a 'name=value ...' Set option(s).";
" -c catalog.po Load the specified message catalog." = " -c catalog.po Load the specified message catalog.";
-" -c config-file Load alternate configuration file." = " -c config-file Load alternate configuration file.";
-" -c copies Set number of copies." = " -c copies Set number of copies.";
" -c cupsd.conf Set cupsd.conf file to use." = " -c cupsd.conf Set cupsd.conf file to use.";
" -d name=value Set named variable to value." = " -d name=value Set named variable to value.";
" -d output-dir Specify the output directory." = " -d output-dir Specify the output directory.";
" -e Use every filter from the PPD file." = " -e Use every filter from the PPD file.";
" -f Run in the foreground." = " -f Run in the foreground.";
" -f filename Set default request filename." = " -f filename Set default request filename.";
-" -f filename Set file to be converted (otherwise stdin)." = " -f filename Set file to be converted (otherwise stdin).";
" -h Show this usage message." = " -h Show this usage message.";
-" -h cups-server Use the named CUPS server." = " -h cups-server Use the named CUPS server.";
" -h server[:port] Specify server address." = " -h server[:port] Specify server address.";
" -i mime/type Set input MIME type (otherwise auto-typed)." = " -i mime/type Set input MIME type (otherwise auto-typed).";
" -i seconds Repeat the last file with the given time interval." = " -i seconds Repeat the last file with the given time interval.";
" -j job-id[,N] Filter file N from the specified job (default is file 1)." = " -j job-id[,N] Filter file N from the specified job (default is file 1).";
-" -j mime/type Set output MIME type (otherwise application/pdf)." = " -j mime/type Set output MIME type (otherwise application/pdf).";
" -l Run cupsd from launchd(8)." = " -l Run cupsd from launchd(8).";
" -l lang[,lang,...] Specify the output language(s) (locale)." = " -l lang[,lang,...] Specify the output language(s) (locale).";
" -m Use the ModelName value as the filename." = " -m Use the ModelName value as the filename.";
" -m mime/type Set output MIME type (otherwise application/pdf)." = " -m mime/type Set output MIME type (otherwise application/pdf).";
" -n copies Set number of copies." = " -n copies Set number of copies.";
" -n count Repeat the last file the given number of times." = " -n count Repeat the last file the given number of times.";
-" -o filename Set file to be generated (otherwise stdout)." = " -o filename Set file to be generated (otherwise stdout).";
" -o filename.drv Set driver information file (otherwise ppdi.drv)." = " -o filename.drv Set driver information file (otherwise ppdi.drv).";
" -o filename.ppd[.gz] Set output file (otherwise stdout)." = " -o filename.ppd[.gz] Set output file (otherwise stdout).";
" -o name=value Set option(s)." = " -o name=value Set option(s).";
" -p filename.ppd Set PPD file." = " -p filename.ppd Set PPD file.";
-" -q Be quiet - no output except errors." = " -q Be quiet - no output except errors.";
" -q Run silently." = " -q Run silently.";
" -r Use 'relaxed' open mode." = " -r Use 'relaxed' open mode.";
" -t Produce a test report." = " -t Produce a test report.";
" -t Test the configuration file." = " -t Test the configuration file.";
" -t title Set title." = " -t title Set title.";
" -u Remove the PPD file when finished." = " -u Remove the PPD file when finished.";
-" -v Be slightly verbose." = " -v Be slightly verbose.";
-" -v Be verbose (more v's for more verbosity)." = " -v Be verbose (more v's for more verbosity).";
-" -v Be verbose (show commands)." = " -v Be verbose (show commands).";
-" -v Show all attributes sent and received." = " -v Show all attributes sent and received.";
+" -v Be verbose." = " -v Be verbose.";
" -vv Be very verbose." = " -vv Be very verbose.";
" -z Compress PPD files using GNU zip." = " -z Compress PPD files using GNU zip.";
" FAIL" = " FAIL";
"3.25x7.83\"" = "3.25x7.83\"";
"3.5 x 5" = "3.5 x 5";
"3.5\" Disk" = "3.5\" Disk";
-"3.5\" Disk - 2 1/8 x 2 3/4\"" = "3.5\" Disk - 2 1/8 x 2 3/4\"";
"3.50x1.00\"" = "3.50x1.00\"";
"30" = "30";
"30 mm/sec." = "30 mm/sec.";
"Add Printer" = "Add Printer";
"Add RSS Subscription" = "Add RSS Subscription";
"Address" = "Address";
-"Address - 1 1/8 x 3 1/2\"" = "Address - 1 1/8 x 3 1/2\"";
"Administration" = "Administration";
"Always" = "Always";
"AppSocket/HP JetDirect" = "AppSocket/HP JetDirect";
"File \"%s\" is a directory." = "File \"%s\" is a directory.";
"File \"%s\" not available: %s" = "File \"%s\" not available: %s";
"File \"%s\" permissions OK (0%o/uid=%d/gid=%d)." = "File \"%s\" permissions OK (0%o/uid=%d/gid=%d).";
-"File Folder" = "File Folder";
-"File Folder - 9/16 x 3 7/16\"" = "File Folder - 9/16 x 3 7/16\"";
+"File Folder " = "File Folder ";
"File device URIs have been disabled. To enable, see the FileDevice directive in \"%s/cupsd.conf\"." = "File device URIs have been disabled. To enable, see the FileDevice directive in \"%s/cupsd.conf\".";
"Finished page %d." = "Finished page %d.";
"Folio" = "Folio";
"Grayscale" = "Grayscale";
"HP" = "HP";
"Hanging Folder" = "Hanging Folder";
-"Hanging Folder - 9/16 x 2\"" = "Hanging Folder - 9/16 x 2\"";
+"Help file not in index." = "Help file not in index.";
"IPP 1setOf attribute with incompatible value tags." = "IPP 1setOf attribute with incompatible value tags.";
"IPP attribute has no name." = "IPP attribute has no name.";
"IPP attribute is not a member of the message." = "IPP attribute is not a member of the message.";
"Internal Server Error" = "Internal Server Error";
"Internal error" = "Internal error";
"Internet Postage 2-Part" = "Internet Postage 2-Part";
-"Internet Postage 2-Part - 2 1/4 x 7 1/2\"" = "Internet Postage 2-Part - 2 1/4 x 7 1/2\"";
"Internet Postage 3-Part" = "Internet Postage 3-Part";
-"Internet Postage 3-Part - 2 1/4 x 7\"" = "Internet Postage 3-Part - 2 1/4 x 7\"";
"Internet Printing Protocol" = "Internet Printing Protocol";
"Invalid media size." = "Invalid media size.";
"Invalid printer command \"%s\"." = "Invalid printer command \"%s\".";
"Job Options Changed" = "Job Options Changed";
"Job Stopped" = "Job Stopped";
"Job is completed and cannot be changed." = "Job is completed and cannot be changed.";
-"Job operation failed:" = "Job operation failed:";
+"Job operation failed" = "Job operation failed";
"Job state cannot be changed." = "Job state cannot be changed.";
"Job subscriptions cannot be renewed." = "Job subscriptions cannot be renewed.";
"Jobs" = "Jobs";
"Label Top" = "Label Top";
"Language \"%s\" not supported." = "Language \"%s\" not supported.";
"Large Address" = "Large Address";
-"Large Address - 1 4/10 x 3 1/2\"" = "Large Address - 1 4/10 x 3 1/2\"";
"LaserJet Series PCL 4/5" = "LaserJet Series PCL 4/5";
"Letter Oversize" = "Letter Oversize";
"Letter Oversize Long Edge" = "Letter Oversize Long Edge";
"Print file accepted - job ID unknown." = "Print file accepted - job ID unknown.";
"Print file sent." = "Print file sent.";
"Print file was not accepted." = "Print file was not accepted.";
+"Print job canceled at printer." = "Print job canceled at printer.";
"Print job too large." = "Print job too large.";
"Printer Added" = "Printer Added";
"Printer Default" = "Printer Default";
"Printer Modified" = "Printer Modified";
"Printer Paused" = "Printer Paused";
"Printer Settings" = "Printer Settings";
-"Printer busy, will retry in 10 seconds." = "Printer busy, will retry in 10 seconds.";
-"Printer did not respond." = "Printer did not respond.";
-"Printer does not support IPP/%d.%d, trying IPP/%s." = "Printer does not support IPP/%d.%d, trying IPP/%s.";
-"Printer is busy, will retry in 5 seconds." = "Printer is busy, will retry in 5 seconds.";
-"Printer is not currently connected." = "Printer is not currently connected.";
-"Printer is now connected." = "Printer is now connected.";
-"Printer is now online." = "Printer is now online.";
-"Printer is offline." = "Printer is offline.";
-"Printer not connected, will retry in 30 seconds." = "Printer not connected, will retry in 30 seconds.";
"Printer:" = "Printer:";
"Printers" = "Printers";
"Printing page %d, %d%% complete." = "Printing page %d, %d%% complete.";
"Rank Owner Job File(s) Total Size" = "Rank Owner Job File(s) Total Size";
// TRANSLATORS: Pri is job priority.
"Rank Owner Pri Job Files Total Size" = "Rank Owner Pri Job Files Total Size";
-"Ready to print." = "Ready to print.";
"Reject Jobs" = "Reject Jobs";
"Remote host did not accept control file (%d)." = "Remote host did not accept control file (%d).";
"Remote host did not accept data file (%d)." = "Remote host did not accept data file (%d).";
"Resume Class" = "Resume Class";
"Resume Printer" = "Resume Printer";
"Return Address" = "Return Address";
-"Return Address - 3/4 x 2\"" = "Return Address - 3/4 x 2\"";
"Rewind" = "Rewind";
"Running command: %s %s -N -A %s -c '%s'" = "Running command: %s %s -N -A %s -c '%s'";
"SEQUENCE uses indefinite length" = "SEQUENCE uses indefinite length";
"Set Printer Options" = "Set Printer Options";
"Set Publishing" = "Set Publishing";
"Shipping Address" = "Shipping Address";
-"Shipping Address - 2 5/16 x 4\"" = "Shipping Address - 2 5/16 x 4\"";
"Short-Edge (Landscape)" = "Short-Edge (Landscape)";
"Special Paper" = "Special Paper";
"Spooling job, %.0f%% complete." = "Spooling job, %.0f%% complete.";
"The paper tray is missing." = "The paper tray is missing.";
"The paper tray needs to be filled." = "The paper tray needs to be filled.";
"The printer URI is incorrect or no longer exists." = "The printer URI is incorrect or no longer exists.";
-"The printer is busy." = "The printer is busy.";
+"The printer did not respond." = "The printer did not respond.";
+"The printer does not support IPP/%d.%d, trying IPP/%s." = "The printer does not support IPP/%d.%d, trying IPP/%s.";
+"The printer is in use." = "The printer is in use.";
"The printer is not connected." = "The printer is not connected.";
"The printer is not responding." = "The printer is not responding.";
+"The printer is now connected." = "The printer is now connected.";
+"The printer is now online." = "The printer is now online.";
+"The printer is offline." = "The printer is offline.";
"The printer is running low on ink." = "The printer is running low on ink.";
"The printer is running low on toner." = "The printer is running low on toner.";
"The printer is unreachable at this time." = "The printer is unreachable at this time.";
"US Letter Oversize" = "US Letter Oversize";
"US Letter Oversize Long Edge" = "US Letter Oversize Long Edge";
"US Letter Small" = "US Letter Small";
-"Unable to access cupsd.conf file:" = "Unable to access cupsd.conf file:";
-"Unable to add RSS subscription:" = "Unable to add RSS subscription:";
-"Unable to add class:" = "Unable to add class:";
+"Unable to access cupsd.conf file" = "Unable to access cupsd.conf file";
+"Unable to access help file." = "Unable to access help file.";
+"Unable to add RSS subscription" = "Unable to add RSS subscription";
+"Unable to add class" = "Unable to add class";
"Unable to add document to print job." = "Unable to add document to print job.";
"Unable to add job for destination \"%s\"." = "Unable to add job for destination \"%s\".";
-"Unable to add printer:" = "Unable to add printer:";
+"Unable to add printer" = "Unable to add printer";
"Unable to allocate memory for file types." = "Unable to allocate memory for file types.";
"Unable to allocate memory for page info" = "Unable to allocate memory for page info";
"Unable to allocate memory for pages array" = "Unable to allocate memory for pages array";
-"Unable to cancel RSS subscription:" = "Unable to cancel RSS subscription:";
+"Unable to cancel RSS subscription" = "Unable to cancel RSS subscription";
"Unable to cancel print job." = "Unable to cancel print job.";
-"Unable to change printer-is-shared attribute:" = "Unable to change printer-is-shared attribute:";
-"Unable to change printer:" = "Unable to change printer:";
-"Unable to change server settings:" = "Unable to change server settings:";
+"Unable to change printer" = "Unable to change printer";
+"Unable to change printer-is-shared attribute" = "Unable to change printer-is-shared attribute";
+"Unable to change server settings" = "Unable to change server settings";
"Unable to configure printer options." = "Unable to configure printer options.";
"Unable to connect to host." = "Unable to connect to host.";
"Unable to contact printer, queuing on next printer in class." = "Unable to contact printer, queuing on next printer in class.";
"Unable to create compressed print file" = "Unable to create compressed print file";
"Unable to create printer-uri" = "Unable to create printer-uri";
"Unable to create temporary file" = "Unable to create temporary file";
-"Unable to create temporary file:" = "Unable to create temporary file:";
-"Unable to delete class:" = "Unable to delete class:";
-"Unable to delete printer:" = "Unable to delete printer:";
-"Unable to do maintenance command:" = "Unable to do maintenance command:";
+"Unable to delete class" = "Unable to delete class";
+"Unable to delete printer" = "Unable to delete printer";
+"Unable to do maintenance command" = "Unable to do maintenance command";
"Unable to edit cupsd.conf files larger than 1MB" = "Unable to edit cupsd.conf files larger than 1MB";
"Unable to establish a secure connection to host (certificate chain invalid)." = "Unable to establish a secure connection to host (certificate chain invalid).";
"Unable to establish a secure connection to host (certificate not yet valid)." = "Unable to establish a secure connection to host (certificate not yet valid).";
"Unable to find printer." = "Unable to find printer.";
"Unable to generate compressed print file" = "Unable to generate compressed print file";
"Unable to get backend exit status." = "Unable to get backend exit status.";
-"Unable to get class list:" = "Unable to get class list:";
-"Unable to get class status:" = "Unable to get class status:";
-"Unable to get list of printer drivers:" = "Unable to get list of printer drivers:";
-"Unable to get printer attributes:" = "Unable to get printer attributes:";
-"Unable to get printer list:" = "Unable to get printer list:";
+"Unable to get class list" = "Unable to get class list";
+"Unable to get class status" = "Unable to get class status";
+"Unable to get list of printer drivers" = "Unable to get list of printer drivers";
+"Unable to get printer attributes" = "Unable to get printer attributes";
+"Unable to get printer list" = "Unable to get printer list";
+"Unable to get printer status" = "Unable to get printer status";
"Unable to get printer status." = "Unable to get printer status.";
-"Unable to get printer status:" = "Unable to get printer status:";
"Unable to install Windows 2000 printer driver files (%d)." = "Unable to install Windows 2000 printer driver files (%d).";
"Unable to install Windows 9x printer driver files (%d)." = "Unable to install Windows 9x printer driver files (%d).";
+"Unable to load help index." = "Unable to load help index.";
"Unable to locate printer \"%s\"." = "Unable to locate printer \"%s\".";
"Unable to locate printer." = "Unable to locate printer.";
-"Unable to modify class:" = "Unable to modify class:";
-"Unable to modify printer:" = "Unable to modify printer:";
+"Unable to modify class" = "Unable to modify class";
+"Unable to modify printer" = "Unable to modify printer";
"Unable to move job" = "Unable to move job";
"Unable to move jobs" = "Unable to move jobs";
"Unable to open PPD file" = "Unable to open PPD file";
-"Unable to open PPD file:" = "Unable to open PPD file:";
"Unable to open compressed print file" = "Unable to open compressed print file";
"Unable to open cupsd.conf file:" = "Unable to open cupsd.conf file:";
"Unable to open device file" = "Unable to open device file";
"Unable to open document #%d in job #%d." = "Unable to open document #%d in job #%d.";
+"Unable to open help file." = "Unable to open help file.";
"Unable to open print file" = "Unable to open print file";
"Unable to open raster file" = "Unable to open raster file";
-"Unable to print test page:" = "Unable to print test page:";
-"Unable to read print data" = "Unable to read print data";
+"Unable to print test page" = "Unable to print test page";
"Unable to read print data." = "Unable to read print data.";
"Unable to resolve printer URI." = "Unable to resolve printer URI.";
"Unable to run \"%s\": %s" = "Unable to run \"%s\": %s";
"Unable to send command to printer driver" = "Unable to send command to printer driver";
"Unable to send data to printer." = "Unable to send data to printer.";
"Unable to set Windows printer driver (%d)." = "Unable to set Windows printer driver (%d).";
-"Unable to set options:" = "Unable to set options:";
-"Unable to set server default:" = "Unable to set server default:";
+"Unable to set options" = "Unable to set options";
+"Unable to set server default" = "Unable to set server default";
"Unable to start backend process." = "Unable to start backend process.";
-"Unable to upload cupsd.conf file:" = "Unable to upload cupsd.conf file:";
+"Unable to upload cupsd.conf file" = "Unable to upload cupsd.conf file";
"Unable to use legacy USB class driver." = "Unable to use legacy USB class driver.";
"Unable to write print data" = "Unable to write print data";
"Unable to write uncompressed print data: %s" = "Unable to write uncompressed print data: %s";
"Upgrade Required" = "Upgrade Required";
"Usage:\n\n lpadmin [-h server] -d destination\n lpadmin [-h server] -x destination\n lpadmin [-h server] -p printer [-c add-class] [-i interface] [-m model]\n [-r remove-class] [-v device] [-D description]\n [-P ppd-file] [-o name=value]\n [-u allow:user,user] [-u deny:user,user]" = "Usage:\n\n lpadmin [-h server] -d destination\n lpadmin [-h server] -x destination\n lpadmin [-h server] -p printer [-c add-class] [-i interface] [-m model]\n [-r remove-class] [-v device] [-D description]\n [-P ppd-file] [-o name=value]\n [-u allow:user,user] [-u deny:user,user]";
"Usage: %s job-id user title copies options [file]" = "Usage: %s job-id user title copies options [file]";
-"Usage: %s job-id user title copies options file" = "Usage: %s job-id user title copies options file";
-"Usage: convert [ options ]" = "Usage: convert [ options ]";
"Usage: cupsaddsmb [options] printer1 ... printerN" = "Usage: cupsaddsmb [options] printer1 ... printerN";
"Usage: cupsctl [options] [param=value ... paramN=valueN]" = "Usage: cupsctl [options] [param=value ... paramN=valueN]";
"Usage: cupsd [options]" = "Usage: cupsd [options]";
"aborted" = "aborted";
"canceled" = "canceled";
"completed" = "completed";
-"convert: Use the -f option to specify a file to convert." = "convert: Use the -f option to specify a file to convert.";
"cups-deviced failed to execute." = "cups-deviced failed to execute.";
"cups-driverd failed to execute." = "cups-driverd failed to execute.";
"cupsaddsmb: No PPD file for printer \"%s\" - %s" = "cupsaddsmb: No PPD file for printer \"%s\" - %s";
"help\t\tGet help on commands." = "help\t\tGet help on commands.";
"idle" = "idle";
"ipptool: \"-i\" and \"-n\" are incompatible with -X\"." = "ipptool: \"-i\" and \"-n\" are incompatible with -X\".";
-"ipptool: \"-i\" is incompatible with \"-X\"." = "ipptool: \"-i\" is incompatible with \"-X\".";
-"ipptool: \"-n\" is incompatible with \"-X\"." = "ipptool: \"-n\" is incompatible with \"-X\".";
"ipptool: Bad URI - %s." = "ipptool: Bad URI - %s.";
"ipptool: Bad version %s for \"-V\"." = "ipptool: Bad version %s for \"-V\".";
"ipptool: Invalid seconds for \"-i\"." = "ipptool: Invalid seconds for \"-i\".";
cups-driverd.$(MAN8EXT) \
cups-lpd.$(MAN8EXT) \
cups-polld.$(MAN8EXT) \
+ cups-snmp.$(MAN8EXT) \
cupsd.$(MAN8EXT) \
cupsenable.$(MAN8EXT) \
lpadmin.$(MAN8EXT) \
.\"
.\" Backend man page for CUPS.
.\"
-.\" Copyright 2007-2011 by Apple Inc.
+.\" Copyright 2007-2012 by Apple Inc.
.\" Copyright 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.\" 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/".
.\"
-.TH backend 7 "CUPS" "15 April 2011" "Apple Inc."
+.TH backend 7 "CUPS" "23 April 2012" "Apple Inc."
.SH NAME
backend \- cups backend transmission interfaces
-
.SH SYNOPSIS
.B backend
.br
job user title num-copies options [
.I filename
]
-
.SH DESCRIPTION
-Backends are a special type of \fIfilter(7)\fR which is used to
-send print data to and discover different devices on the system.
-
+Backends are a special type of \fIfilter(7)\fR which is used to send print data
+to and discover different devices on the system.
.LP
-Like filters, backends must be capable of reading from a filename
-on the command-line or from the standard input, copying the
-standard input to a temporary file as required by the physical
-interface.
-
+Like filters, backends must be capable of reading from a filename on the
+command-line or from the standard input, copying the standard input to a
+temporary file as required by the physical interface.
.LP
The command name (argv[0]) is set to the device URI of the destination printer.
Starting with CUPS 1.1.22, any authentication information in argv[0] is removed,
so backend developers are urged to use the DEVICE_URI environment variable
whenever authentication information is required. The CUPS API includes a
\fIcupsBackendDeviceURI\fR function for retrieving the correct device URI.
-
.LP
Back-channel data from the device should be relayed to the job
filters by writing to file descriptor 3. The CUPS API includes
the \fIcupsBackChannelWrite\fR function for this purpose.
-
+.SH WARNING
+CUPS backends are not generally design to be run directly by the user. Aside
+from the device URI issue (argv[0] and DEVICE_URI environment variable contain
+the device URI), CUPS backends also expect specific environment variables and
+file descriptors, and typically run in a user session that (on OS X) has
+additional restrictions that affect how it runs. Backends can also be installed
+with restricted permissions (0500 or 0700) that tell the scheduler to run them
+as the "root" user instead of an unprivileged user (typically "lp") on the
+system.
+.LP
+Unless you are a developer and know what you are doing, please do not run
+backends directly. Instead, use the \fIlp(1)\fR or \fIlpr(1)\fR programs to send
+a print job or \fIlpinfo(8)\fR program to query for available printers using the
+backend. The one exception is the SNMP backend - see \fIsnmpbackend(8)\fR for
+more information.
.SH DEVICE DISCOVERY
-When run with no arguments, the backend should list the devices
-and schemes it supports or is advertising to stdout. The output
-consists of zero or more lines consisting of any of the following
-forms:
+When run with no arguments, the backend should list the devices and schemes it
+supports or is advertising to stdout. The output consists of zero or more lines
+consisting of any of the following forms:
.nf
device-class scheme "Unknown" "device-info"
device-class device-uri "device-make-and-model" "device-info" "device-id"
device-class device-uri "device-make-and-model" "device-info" "device-id" "device-location"
.fi
-
.LP
The \fIdevice-class\fR field is one of the following values:
-
.TP 5
direct
.br
-The device-uri refers to a specific direct-access device with no
-options, such as a parallel, USB, or SCSI device.
-
+The device-uri refers to a specific direct-access device with no options, such
+as a parallel, USB, or SCSI device.
.TP 5
file
.br
The device-uri refers to a file on disk.
-
.TP 5
network
.br
-The device-uri refers to a networked device and conforms to the
-general form for network URIs.
-
+The device-uri refers to a networked device and conforms to the general form for
+network URIs.
.TP 5
serial
.br
-The device-uri refers to a serial device with configurable baud
-rate and other options. If the device-uri contains a baud value,
-it represents the maximum baud rate supported by the device.
-
+The device-uri refers to a serial device with configurable baud rate and other
+options. If the device-uri contains a baud value, it represents the maximum baud
+rate supported by the device.
.LP
-The \fIscheme\fR field provides the URI scheme that is supported
-by the backend. Backends should use this form only when the
-backend supports any URI using that scheme. The \fIdevice-uri\fR
-field specifies the full URI to use when communicating with the
-device.
-
+The \fIscheme\fR field provides the URI scheme that is supported by the backend.
+Backends should use this form only when the backend supports any URI using that
+scheme. The \fIdevice-uri\fR field specifies the full URI to use when
+communicating with the device.
.LP
-The \fIdevice-make-and-model\fR field specifies the make and
-model of the device, e.g. "Acme Foojet 2000". If the make and
-model is not known, you must report "Unknown".
-
+The \fIdevice-make-and-model\fR field specifies the make and model of the
+device, e.g. "Example Foojet 2000". If the make and model is not known, you must
+report "Unknown".
.LP
-The \fIdevice-info\fR field specifies additional information
-about the device. Typically this includes the make and model
-along with the port number or network address, e.g. "Acme Foojet
-2000 USB #1".
-
+The \fIdevice-info\fR field specifies additional information about the device.
+Typically this includes the make and model along with the port number or network
+address, e.g. "Example Foojet 2000 USB #1".
.LP
-The optional \fIdevice-id\fR field specifies the IEEE-1284 device
-ID string for the device, which is used to select a matching
-driver.
-
+The optional \fIdevice-id\fR field specifies the IEEE-1284 device ID string for
+the device, which is used to select a matching driver.
.LP
The optional \fIdevice-location\fR field specifies the physical location of
the device, which is often used to pre-populate the printer-location attribute
when adding a printer.
-
.SH PERMISSIONS
-Backends without world execute permissions are run as the root
-user. Otherwise, the backend is run using the unprivileged user
-account, typically "lp".
-
+Backends without world execute permissions are run as the root user. Otherwise,
+the backend is run using an unprivileged user account, typically "lp".
.SH EXIT CODES
-The following exit codes are defined for backends; C API
-constants defined in the <cups/backend.h> header file are defined
-in parenthesis:
-
+The following exit codes are defined for backends; C API constants defined in
+the <cups/backend.h> header file are defined in parenthesis:
.TP 5
0 (CUPS_BACKEND_OK)
.br
-The print file was successfully transmitted to the device or
-remote server.
-
+The print file was successfully transmitted to the device or remote server.
.TP 5
1 (CUPS_BACKEND_FAILED)
.br
-The print file was not successfully transmitted to the device or
-remote server. The scheduler will respond to this by canceling
-the job, retrying the job, or stopping the queue depending on the
-state of the error-policy attribute.
-
+The print file was not successfully transmitted to the device or remote server.
+The scheduler will respond to this by canceling the job, retrying the job, or
+stopping the queue depending on the state of the error-policy attribute.
.TP 5
2 (CUPS_BACKEND_AUTH_REQUIRED)
.br
-The print file was not successfully transmitted because valid
-authentication information is required. The scheduler will
-respond to this by holding the job and adding the
-authentication-required job-reasons keyword.
-
+The print file was not successfully transmitted because valid authentication
+information is required. The scheduler will respond to this by holding the job
+and adding the "cups-held-for-authentication" keyword to the "job-reasons"
+attribute.
.TP 5
3 (CUPS_BACKEND_HOLD)
.br
-The print file was not successfully transmitted because it cannot
-be printed at this time. The scheduler will respond to this by
-holding the job.
-
+The print file was not successfully transmitted because it cannot be printed at
+this time. The scheduler will respond to this by holding the job.
.TP 5
4 (CUPS_BACKEND_STOP)
.br
-The print file was not successfully transmitted because it cannot
-be printed at this time. The scheduler will respond to this by
-stopping the queue.
-
+The print file was not successfully transmitted because it cannot be printed at
+this time. The scheduler will respond to this by stopping the queue.
.TP 5
5 (CUPS_BACKEND_CANCEL)
.br
-The print file was not successfully transmitted because one or
-more attributes are not supported. The scheduler will respond to
-this by canceling the job.
-
+The print file was not successfully transmitted because one or more attributes
+are not supported or the job was canceled at the printer. The scheduler will
+respond to this by canceling the job.
.TP 5
6 (CUPS_BACKEND_RETRY)
.br
The print file was not successfully transmitted because of a temporary issue.
The scheduler will retry the job at a future time - other jobs may print before
this one.
-
.TP 5
7 (CUPS_BACKEND_RETRY_CURRENT)
.br
The print file was not successfully transmitted because of a temporary issue.
The scheduler will retry the job immediately without allowing intervening jobs.
-
.PP
All other exit code values are reserved.
-
.SH SEE ALSO
-\fIcupsd(8)\fR, \fIcupsd.conf(5)\fR, \fIfilter(7)\fR,
+\fIcups-snmp(8)\fR, \fIcupsd(8)\fR, \fIcupsd.conf(5)\fR, \fIfilter(7)\fR,
+\fIlpinfo(8)\fR,
.br
http://localhost:631/help
-
.SH COPYRIGHT
-Copyright 2007-2011 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id: backend.man 7810 2008-07-29 01:11:15Z mike $".
.\"
.\"
.\" cancel man page for CUPS.
.\"
-.\" Copyright 2007-2011 by Apple Inc.
+.\" Copyright 2007-2012 by Apple Inc.
.\" Copyright 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007-2011 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id: cancel.man 7600 2008-05-20 21:06:23Z mike $".
.\"
.\"
.\" classes.conf man page for CUPS.
.\"
-.\" Copyright 2007-2011 by Apple Inc.
+.\" Copyright 2007-2012 by Apple Inc.
.\" Copyright 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007-2011 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id: classes.conf.man 7600 2008-05-20 21:06:23Z mike $".
.\"
.\" 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/".
.\"
-.TH client.conf 5 "CUPS" "15 February 2012" "Apple Inc."
+.TH client.conf 5 "CUPS" "23 April 2012" "Apple Inc."
.SH NAME
client.conf \- client configuration file for cups
.SH DESCRIPTION
ServerName /domain/socket
.br
Specifies the address and optionally the port to use when connecting to the
-server. \fBNote: Not supported on Mac OS X 10.7 or later.\fR
+server. \fBNote: Not supported on OS X 10.7 or later.\fR
.TP 5
User name
.br
.\"
.\" cups-config man page for CUPS.
.\"
-.\" Copyright 2007-2011 by Apple Inc.
+.\" Copyright 2007-2012 by Apple Inc.
.\" Copyright 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.SH SEE ALSO
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007-2011 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id: cups-config.man 7646 2008-06-16 17:26:20Z mike $".
.\"
.\"
.\" cups-deviced man page for CUPS.
.\"
-.\" Copyright 2007-2011 by Apple Inc.
+.\" Copyright 2007-2012 by Apple Inc.
.\" Copyright 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007-2011 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id: cups-deviced.man.in 7646 2008-06-16 17:26:20Z mike $".
.\"
.\"
.\" cups-driverd man page for CUPS.
.\"
-.\" Copyright 2007-2011 by Apple Inc.
+.\" Copyright 2007-2012 by Apple Inc.
.\" Copyright 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007-2011 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id: cups-driverd.man.in 7662 2008-06-17 14:34:20Z mike $".
.\"
.\"
.\" cups-lpd man page for CUPS.
.\"
-.\" Copyright 2007-2011 by Apple Inc.
+.\" Copyright 2007-2012 by Apple Inc.
.\" Copyright 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007-2011 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id: cups-lpd.man.in 7835 2008-08-09 06:37:04Z mike $".
.\"
.\"
.\" cups-polld man page for CUPS.
.\"
-.\" Copyright 2007-2011 by Apple Inc.
+.\" Copyright 2007-2012 by Apple Inc.
.\" Copyright 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007-2011 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id: cups-polld.man 7600 2008-05-20 21:06:23Z mike $".
.\"
.\"
.\" snmp.conf man page for CUPS.
.\"
-.\" Copyright 2007-2011 by Apple Inc.
+.\" Copyright 2007-2012 by Apple Inc.
.\" Copyright 2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.\" 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/".
.\"
-.TH snmp.conf 5 "CUPS" "31 July 2006" "Apple Inc."
+.TH snmp.conf 5 "CUPS" "23 April 2012" "Apple Inc."
+
.SH NAME
snmp.conf \- snmp configuration file for cups
.SH DESCRIPTION
-The \fIsnmp.conf\fR file configures the CUPS SNMP printer
-discovery backend and is normally located in the \fI/etc/cups\fR
-directory. Each line in the file can be a configuration
-directive, a blank line, or a comment. Comment lines start with
-the # character.
+The \fIsnmp.conf\fR file configures how the standard CUPS network backends
+(http, https, ipp, ipps, lpd, snmp, and socket) access printer information using
+SNMPv1 and is normally located in the \fI/etc/cups\fR directory. Each line in
+the file can be a configuration directive, a blank line, or a comment. Comment
+lines start with the # character.
.LP
-The SNMP backend uses the SNMPv1 protocol to discover network
-printers, collecting information from the Host MIB along with
-intelligent port probes to determine the correct device URI and
-make and model for each printer. Future versions of CUPS will
-likely support the new Port Monitor MIB as well.
+The Community and DebugLevel directives are used by all backends. The remainder
+apply only to the SNMP backend (\fIcups-snmp(8)\fR).
.SH DIRECTIVES
-The following directives are understood by the SNMP backend.
-Consult the on-line help for detailed descriptions:
+The following directives are understood by the CUPS network backends. Consult
+the on-line help for detailed descriptions:
.TP 5
Address @IF(\fIname\fR)
.TP 5
.TP 5
Address \fIaddress\fR
.br
-Sends SNMP broadcast queries to the specified address(es). The
-default address is "@LOCAL" which broadcasts to all LAN
-interfaces.
+Sends SNMP broadcast queries to the specified address(es). There is no default
+for the broadcast address.
.TP 5
Community \fIname\fR
.br
-Specifies a SNMP community to query. The default community is
-"public".
+Specifies the community name to use. Only a single community name may be
+specified. The default community name is "public".
.TP 5
-DebugLevel \fIN\fR
+DebugLevel number
.br
-Sets the debug logging level to \fIN\fR; 0 disables debug
-logging, 1 enables basic logging, 2 displays SNMP values, and 3
-displays raw hex data.
+Specifies the logging level from 0 (none) to 3 (everything). Typically only used
+for debugging (thus the name). The default debug level is 0.
+.TP 5
+DeviceURI "regular expression" device-uri [... device-uri]
+.br
+Specifies one or more device URIs that should be used for a given make and model
+string. The regular expression is used to match the detected make and model, and
+the device URI strings must be of the form "scheme://%s[:port]/[path]", where
+"%s" represents the detected address or hostname. There are no default device
+URI matching rules.
.TP 5
HostNameLookups on
.TP 5
HostNameLookups off
.br
-Specifies whether the addresses of printers should be converted
-to hostnames or left as numeric IP addresses. The default is
-"off".
+Specifies whether the addresses of printers should be converted to hostnames or
+left as numeric IP addresses. The default is "off".
.TP 5
MaxRunTime \fIseconds\fR
.br
-Specifies the maximum number of seconds that the SNMP backend
-will scan the network for printers.
+Specifies the maximum number of seconds that the SNMP backend will scan the
+network for printers. The default is 120 seconds (2 minutes).
.SH SEE ALSO
+cups-snmp(8),
+.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007-2011 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id: cups-snmp.conf.man 7600 2008-05-20 21:06:23Z mike $".
.\"
--- /dev/null
+.\"
+.\" "$Id$"
+.\"
+.\" SNMP backend man page 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/".
+.\"
+.TH cups-snmp 8 "CUPS" "23 April 2012" "Apple Inc."
+.SH NAME
+snmp \- cups snmp backend
+.SH SYNOPSIS
+.B @CUPS_SERVERBIN@/backend/snmp
+.I ip-address-or-hostname
+.br
+.B lpinfo -v --include-schemes snmp
+.SH DESCRIPTION
+The CUPS SNMP backend provides legacy discovery and identification of network
+printers using SNMPv1. When used for discovery through the scheduler, the
+backend will list all printers that respond to a broadcast SNMPv1 query with the
+"public" community name. Additional queries are then sent to printers that
+respond in order to determine the correct device URI, make and model, and other
+information needed for printing.
+.LP
+In the first form, the SNMP backend is run directly by the user to look up the
+device URI and other information when you have an IP address or hostname. This
+can be used for programs that need to configure print queues where the user has
+supplied an address but nothing else.
+.LP
+In the second form, the SNMP backend is run indirectly using the \fIlpinfo(8)\fR
+command. The output provides all printers detected via SNMP on the configured
+broadcast addresses. \fBNote\fR: no broadcast addresses are configured by
+default.
+.SH MIBS
+The CUPS SNMP backend uses the information from the Host, Printer, and Port
+Monitor MIBs along with some vendor private MIBs and intelligent port probes to
+determine the correct device URI and make and model for each printer.
+.SH CONFIGURATION
+The SNMP backend reads the @CUPS_SERVERROOT@/snmp.conf configuration file, if
+present, to set the default broadcast address, community name, and logging
+level. The configuration file is documented in \fIcups-snmp.conf(5)\fR. The
+DebugLevel value can be overridden using the CUPS_DEBUG_LEVEL environment
+variable and the MaxRunTime value can be overridden using the CUPS_MAX_RUN_TIME
+environment variable.
+.SH SEE ALSO
+\fIbackend(7)\fR, \fIcups-snmp.conf(5)\fR, \fIcupsd(8)\fR, \fIcupsd.conf(5)\fR,
+\fIfilter(7)\fR, \fIlpinfo(8)\fR,
+.br
+http://localhost:631/help
+.SH COPYRIGHT
+Copyright 2007-2012 by Apple Inc.
+.\"
+.\" End of "$Id$".
+.\"
.\"
.\" accept/reject man page for CUPS.
.\"
-.\" Copyright 2007-2011 by Apple Inc.
+.\" Copyright 2007-2012 by Apple Inc.
.\" Copyright 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007-2011 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id: cupsaccept.man 7930 2008-09-10 22:25:54Z mike $".
.\"
.\"
.\" cupsaddsmb man page for CUPS.
.\"
-.\" Copyright 2007-2011 by Apple Inc.
+.\" Copyright 2007-2012 by Apple Inc.
.\" Copyright 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
http://www.cups.org/windows/
.SH COPYRIGHT
-Copyright 2007-2011 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id: cupsaddsmb.man.in 7600 2008-05-20 21:06:23Z mike $".
.\"
.\"
.\" cupsctl man page for CUPS.
.\"
-.\" Copyright 2007-2011 by Apple Inc.
+.\" Copyright 2007-2012 by Apple Inc.
.\" Copyright 2007 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007-2011 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id: cupsctl.man 7600 2008-05-20 21:06:23Z mike $".
.\"
.\"
.\" cupsd man page for CUPS.
.\"
-.\" Copyright 2007-2011 by Apple Inc.
+.\" Copyright 2007-2012 by Apple Inc.
.\" Copyright 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007-2011 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id: cupsd.man.in 7600 2008-05-20 21:06:23Z mike $".
.\"
.\"
.\" cupsenable/cupsdisable man page for CUPS.
.\"
-.\" Copyright 2007-2011 by Apple Inc.
+.\" Copyright 2007-2012 by Apple Inc.
.\" Copyright 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007-2011 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id: cupsenable.man 7600 2008-05-20 21:06:23Z mike $".
.\"
.\" cupsfilter man page for CUPS.
.\"
-.\" Copyright 2007-2010 by Apple Inc.
+.\" Copyright 2007-2012 by Apple Inc.
.\"
.\" These coded instructions, statements, and computer programs are the
.\" property of Apple Inc. and are protected by Federal copyright
.B cupsfilter
[ -c
.I config-file
-] [ -d
+] [ -d
.I printer
] [ -e ] -j
.I job-id[,N]
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007-2010 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id: cupsfilter.man 7936 2008-09-11 03:12:59Z mike $".
.\"
.\"
.\" cupstestdsc man page for CUPS.
.\"
-.\" Copyright 2007-2011 by Apple Inc.
+.\" Copyright 2007-2012 by Apple Inc.
.\" Copyright 2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
Adobe PostScript Language Document Structuring Conventions
Specification, Version 3.0.
.SH COPYRIGHT
-Copyright 2007-2011 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id: cupstestdsc.man 7600 2008-05-20 21:06:23Z mike $".
.\"
.\"
.\" cupstestppd man page for CUPS.
.\"
-.\" Copyright 2007-2011 by Apple Inc.
+.\" Copyright 2007-2012 by Apple Inc.
.\" Copyright 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
Adobe PostScript Printer Description File Format Specification, Version 4.3.
.SH COPYRIGHT
-Copyright 2007-2011 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id: cupstestppd.man 7600 2008-05-20 21:06:23Z mike $".
.\"
.\"
.\" filter man page for CUPS.
.\"
-.\" Copyright 2007-2011 by Apple Inc.
+.\" Copyright 2007-2012 by Apple Inc.
.\" Copyright 1997-2007 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.\" 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/".
.\"
-.TH filter 7 "CUPS" "13 May 2009" "Apple Inc."
+.TH filter 7 "CUPS" "13 April 2012" "Apple Inc."
.SH NAME
filter \- cups file conversion filter interface
.SH SYNOPSIS
.LP
The command name (argv[0]) is set to the name of the destination printer but is
also available in the PRINTER environment variable.
-
+.SH WARNING
+CUPS filters are not meant to be run directly by the user. Aside from the legacy
+System V interface issues (argv[0] is the printer name), CUPS filters also
+expect specific environment variables and file descriptors, and typically run in
+a user session that (on OS X) has additional restrictions that affect how it
+runs. Unless you are a developer and know what you are doing, please do not run
+filters directly. Instead, use the \fIcupsfilter(8)\fR program to use the
+appropriate filters to do the conversions you need.
.SH OPTIONS
Options passed on the command-line typically do not include the default choices
the printer's PPD file. In addition, some options may be specified in multiple
those reflect the options in effect for a given page. Options specified on the
command-line determine the default values for the entire job, which can be
overridden on a per-page basis.
-
.SH LOG MESSAGES
Messages sent to stderr are generally logged to
printer-state-message attribute and the current \fIErrorLog\fR.
Each line begins with a standard prefix:
-
.TP 5
ALERT: message
.br
Sets the printer-state-message attribute and adds the specified
message to the current \fIErrorLog\fR using the "alert" log level.
-
.TP 5
ATTR: attribute=value [attribute=value]
.br
-Sets the named job attribute(s). Typically this will be used to
-set the job-remote-id attribute.
-
+Sets the named job or printer attribute(s). The following job attributes can be
+set: "job-media-progress". The following printer attributes can be set:
+"auth-info-required", "marker-colors", "marker-high-levels", "marker-levels",
+"marker-low-levels", "marker-message", "marker-names", "marker-types",
+"printer-alert", and "printer-alert-description".
.TP 5
CRIT: message
.br
Sets the printer-state-message attribute and adds the specified
message to the current \fIErrorLog\fR using the "critical" log level.
-
.TP 5
DEBUG: message
.br
Sets the printer-state-message attribute and adds the specified
message to the current \fIErrorLog\fR using the "debug" log level.
-
.TP 5
DEBUG2: message
.br
Sets the printer-state-message attribute and adds the specified
message to the current \fIErrorLog\fR using the "debug2" log level.
-
.TP 5
EMERG: message
.br
Sets the printer-state-message attribute and adds the specified
message to the current \fIErrorLog\fR using the "emergency" log level.
-
.TP 5
ERROR: message
.br
Sets the printer-state-message attribute and adds the specified
message to the current \fIErrorLog\fR using the "error" log level.
-
.TP 5
INFO: message
.br
Sets the printer-state-message attribute. If the current \fILogLevel\fR
is set to "debug2", also adds the specified message to the
current \fIErrorLog\fR using the "info" log level.
-
.TP 5
NOTICE: message
.br
Sets the printer-state-message attribute and adds the specified
message to the current \fIErrorLog\fR using the "notice" log level.
-
.TP 5
PAGE: page-number #-copies
.TP 5
Adds an entry to the current \fIPageLog\fR. The first form adds
#-copies to the job-media-sheets-completed attribute. The second
form sets the job-media-sheets-completed attribute to #-pages.
-
.TP 5
PPD: Keyword=Value ... KeywordN=Value
.br
Sets the named keywords in the printer's PPD file. This is typically
used to update default option keywords such as DefaultPageSize and
the various installable options in the PPD file.
-
.TP 5
STATE: printer-state-reason [printer-state-reason ...]
.TP 5
Sets, adds, or removes printer-state-reason keywords to the
current queue. Typically this is used to indicate media, ink, and
toner conditions on a printer.
-
.TP 5
WARNING: message
.br
Sets the printer-state-message attribute and adds the specified
message to the current \fIErrorLog\fR using the "warning" log level.
-
.SH ENVIRONMENT VARIABLES
The following environment variables are defined by the CUPS
server when executing the filter:
-
.TP 5
CHARSET
.br
The default text character set, typically utf-8.
-
.TP 5
CLASS
.br
When a job is submitted to a printer class, contains the name of
the destination printer class. Otherwise this environment
variable will not be set.
-
.TP 5
CONTENT_TYPE
.br
The MIME type associated with the file (e.g.
application/postscript).
-
.TP 5
CUPS_CACHEDIR
.br
The directory for semi-persistent cache files can be found.
-
.TP 5
CUPS_DATADIR
.br
The directory where data files can be found.
-
.TP 5
CUPS_FILETYPE
.br
The type of file being printed: "job-sheet" for a banner page and "document"
for a regular print file.
-
.TP 5
CUPS_SERVERROOT
.br
The root directory of the server.
-
.TP 5
DEVICE_URI
.br
The device-uri associated with the printer.
-
.TP 5
FINAL_CONTENT_TYPE
.br
The MIME type associated with the printer (e.g.
application/vnd.cups-postscript).
-
.TP 5
LANG
.br
The default language locale (typically C or en).
-
.TP 5
PATH
.br
The standard execution path for external programs that may be run by
the filter.
-
.TP 5
PPD
.br
The full pathname of the PostScript Printer Description (PPD)
file for this printer.
-
.TP 5
PRINTER
.br
The name of the printer.
-
.TP 5
RIP_CACHE
.br
The recommended amount of memory to use for Raster Image
Processors (RIPs).
-
.TP 5
SOFTWARE
.br
The name and version number of the server (typically CUPS/1.2).
-
.TP 5
TZ
.br
The timezone of the server.
-
.TP 5
USER
.br
The user executing the filter, typically "lp" or "root"; consult the
\fIcupsd.conf(5)\fR file for the current setting.
-
.SH COMPATIBILITY
While the filter interface is compatible with System V interface
scripts, it will only work with the System V interface script as the
only filter. Typically the interface script will be provided via the
\fIlpadmin(8)\fR command using the \fI-i\fR option.
.SH SEE ALSO
-\fIbackend(7)\fR, \fIcupsd(8)\fR,
+\fIbackend(7)\fR, \fIcupsd(8)\fR, \fIcupsfilter(8)\fR,
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007-2011 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id: filter.man 7600 2008-05-20 21:06:23Z mike $".
.\"
.\"
.\" ipptool man page for CUPS.
.\"
-.\" Copyright 2010 by Apple Inc.
+.\" Copyright 2010-2012 by Apple Inc.
.\"
.\" These coded instructions, statements, and computer programs are the
.\" property of Apple Inc. and are protected by Federal copyright
.SH STANDARD FILES
The following standard files are available:
.nf
+ color.jpg
create-printer-subscription.test
+ document-a4.pdf
+ document-a4.ps
+ document-letter.pdf
+ document-letter.ps
get-completed-jobs.test
get-jobs.test
+ get-printer-attributes.test
+ gray.jpg
ipp-1.1.test
ipp-2.0.test
ipp-2.1.test
+ ipp-2.2.test
+ onepage-a4.pdf
+ onepage-a4.ps
+ onepage-letter.pdf
+ onepage-letter.ps
+ print-job.test
testfile.jpg
testfile.pdf
testfile.ps
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007-2010 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id$".
.\"
.\"
.\" lp man page for CUPS.
.\"
-.\" Copyright 2007-2011 by Apple Inc.
+.\" Copyright 2007-2012 by Apple Inc.
.\" Copyright 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007-2011 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id: lp.man 7889 2008-08-29 22:03:35Z mike $".
.\"
.\"
.\" lpadmin man page for CUPS.
.\"
-.\" Copyright 2007-2011 by Apple Inc.
+.\" Copyright 2007-2012 by Apple Inc.
.\" Copyright 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007-2011 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id: lpadmin.man 7600 2008-05-20 21:06:23Z mike $".
.\"
.\"
.\" lpc man page for CUPS.
.\"
-.\" Copyright 2007-2011 by Apple Inc.
+.\" Copyright 2007-2012 by Apple Inc.
.\" Copyright 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007-2011 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id: lpc.man 7600 2008-05-20 21:06:23Z mike $".
.\"
.\"
.\" lpinfo man page for CUPS.
.\"
-.\" Copyright 2007-2011 by Apple Inc.
+.\" Copyright 2007-2012 by Apple Inc.
.\" Copyright 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007-2011 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id: lpinfo.man 7600 2008-05-20 21:06:23Z mike $".
.\"
.\"
.\" lpmove man page for CUPS.
.\"
-.\" Copyright 2007-2011 by Apple Inc.
+.\" Copyright 2007-2012 by Apple Inc.
.\" Copyright 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007-2011 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id: lpmove.man 7600 2008-05-20 21:06:23Z mike $".
.\"
.\"
.\" lpoptions man page for CUPS.
.\"
-.\" Copyright 2007-2011 by Apple Inc.
+.\" Copyright 2007-2012 by Apple Inc.
.\" Copyright 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007-2011 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id: lpoptions.man.in 7889 2008-08-29 22:03:35Z mike $".
.\"
.\"
.\" lpadmin man page for CUPS.
.\"
-.\" Copyright 2007-2011 by Apple Inc.
+.\" Copyright 2007-2012 by Apple Inc.
.\" Copyright 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007-2011 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id: lppasswd.man 7600 2008-05-20 21:06:23Z mike $".
.\"
.\"
.\" lpq man page for CUPS.
.\"
-.\" Copyright 2007-2011 by Apple Inc.
+.\" Copyright 2007-2012 by Apple Inc.
.\" Copyright 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007-2011 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id: lpq.man 7646 2008-06-16 17:26:20Z mike $".
.\"
.\"
.\" lpr man page for CUPS.
.\"
-.\" Copyright 2007-2011 by Apple Inc.
+.\" Copyright 2007-2012 by Apple Inc.
.\" Copyright 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007-2011 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id: lpr.man 7889 2008-08-29 22:03:35Z mike $".
.\"
.\"
.\" lprm man page for CUPS.
.\"
-.\" Copyright 2007-2011 by Apple Inc.
+.\" Copyright 2007-2012 by Apple Inc.
.\" Copyright 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007-2011 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id: lprm.man 7600 2008-05-20 21:06:23Z mike $".
.\"
.\"
.\" lpstat man page for CUPS.
.\"
-.\" Copyright 2007-2011 by Apple Inc.
+.\" Copyright 2007-2012 by Apple Inc.
.\" Copyright 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007-2011 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id: lpstat.man 7921 2008-09-10 15:42:24Z mike $".
.\"
.\"
.\" mailto.conf man page for CUPS.
.\"
-.\" Copyright 2007-2011 by Apple Inc.
+.\" Copyright 2007-2012 by Apple Inc.
.\" Copyright 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007-2011 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id: mailto.conf.man 7600 2008-05-20 21:06:23Z mike $".
.\"
.\"
.\" mime.convs man page for CUPS.
.\"
-.\" Copyright 2007-2011 by Apple Inc.
+.\" Copyright 2007-2012 by Apple Inc.
.\" Copyright 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007-2011 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id: mime.convs.man 7600 2008-05-20 21:06:23Z mike $".
.\"
.\"
.\" mime.types man page for CUPS.
.\"
-.\" Copyright 2007-2011 by Apple Inc.
+.\" Copyright 2007-2012 by Apple Inc.
.\" Copyright 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007-2011 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id: mime.types.man 7670 2008-06-17 22:42:08Z mike $".
.\"
.\"
.\" notifier man page for CUPS.
.\"
-.\" Copyright 2007-2009 by Apple Inc.
+.\" Copyright 2007-2012 by Apple Inc.
.\" Copyright 1997-2007 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007-2009 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id$".
.\"
.\"
.\" ppdcfile man page for CUPS.
.\"
-.\" Copyright 2007-2011 by Apple Inc.
+.\" Copyright 2007-2012 by Apple Inc.
.\" Copyright 1997-2007 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007-2011 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id: ppdcfile.man 7607 2008-05-21 01:06:23Z mike $".
.\"
.\"
.\" ppdhtml man page for CUPS.
.\"
-.\" Copyright 2007-2011 by Apple Inc.
+.\" Copyright 2007-2012 by Apple Inc.
.\" Copyright 1997-2007 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007-2011 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id: ppdhtml.man 7600 2008-05-20 21:06:23Z mike $".
.\"
.\"
.\" ppdi man page for CUPS.
.\"
-.\" Copyright 2007-2011 by Apple Inc.
+.\" Copyright 2007-2012 by Apple Inc.
.\" Copyright 1997-2007 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007-2011 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id: ppdi.man 7600 2008-05-20 21:06:23Z mike $".
.\"
.\"
.\" ppdmerge man page for CUPS.
.\"
-.\" Copyright 2007-2011 by Apple Inc.
+.\" Copyright 2007-2012 by Apple Inc.
.\" Copyright 1997-2007 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007-2011 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id: ppdmerge.man 7600 2008-05-20 21:06:23Z mike $".
.\"
.\"
.\" ppdpo man page for CUPS.
.\"
-.\" Copyright 2007-2011 by Apple Inc.
+.\" Copyright 2007-2012 by Apple Inc.
.\" Copyright 1997-2007 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.\" 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/".
.\"
-.TH ppdpo 1 "CUPS" "10 October 2008" "Apple Inc."
+.TH ppdpo 1 "CUPS" "23 April 2012" "Apple Inc."
.SH NAME
ppdpo \- ppd message catalog generator
.SH SYNOPSIS
.I source-file
.SH DESCRIPTION
\fIppdpo\fR extracts UI strings from PPDC source files and updates either
-a GNU gettext or Mac OS X strings format message catalog source file for
+a GNU gettext or OS X strings format message catalog source file for
translation.
.PP
The \fI-D\fR option sets the named variable for use in the
.PP
The \fI-o\fR option specifies the output file. The supported extensions are
".po" or ".po.gz" for GNU gettext format message catalogs and ".strings" for
-Mac OS X strings files.
+OS X strings files.
.SH SEE ALSO
ppdc(1), ppdhtml(1), ppdi(1), ppdmerge(1), ppdcfile(5)
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007-2011 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id: ppdpo.man 7600 2008-05-20 21:06:23Z mike $".
.\"
.\"
.\" printers.conf man page for CUPS.
.\"
-.\" Copyright 2007-2011 by Apple Inc.
+.\" Copyright 2007-2012 by Apple Inc.
.\" Copyright 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007-2011 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id: printers.conf.man 7600 2008-05-20 21:06:23Z mike $".
.\"
.\"
.\" subscriptions.conf man page for CUPS.
.\"
-.\" Copyright 2007-2011 by Apple Inc.
+.\" Copyright 2007-2012 by Apple Inc.
.\" Copyright 2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007-2011 by Apple Inc.
+Copyright 2007-2012 by Apple Inc.
.\"
.\" End of "$Id: subscriptions.conf.man 7600 2008-05-20 21:06:23Z mike $".
.\"
-bcp.o: bcp.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
-tbcp.o: tbcp.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
+bcp.o: bcp.c ../cups/cups-private.h ../cups/string-private.h ../config.h \
+ ../cups/debug-private.h ../cups/versioning.h ../cups/ipp-private.h \
+ ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
+tbcp.o: tbcp.c ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/versioning.h \
+ ../cups/ipp-private.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
+ ../cups/http-private.h ../cups/md5-private.h \
+ ../cups/language-private.h ../cups/transcode.h ../cups/language.h \
+ ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
dbus.o: dbus.c ../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
-mailto.o: mailto.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
+mailto.o: mailto.c ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/versioning.h \
+ ../cups/ipp-private.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
+ ../cups/http-private.h ../cups/md5-private.h \
+ ../cups/language-private.h ../cups/transcode.h ../cups/language.h \
+ ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
rss.o: rss.c ../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/ipp-private.h
-testnotify.o: testnotify.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
+testnotify.o: testnotify.c ../cups/cups-private.h \
+ ../cups/string-private.h ../config.h ../cups/debug-private.h \
+ ../cups/versioning.h ../cups/ipp-private.h ../cups/ipp.h \
+ ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
#!/bin/sh
case `uname -r` in
- # Mac OS X 10.4.x
- 8.*) exit 0;;
+ # OS X 10.7.x
+ 11.*) exit 0;;
- # Mac OS X 10.5.x
- 9.*) exit 0;;
+ # OS X 10.8.x
+ 12.*) exit 0;;
- # Older Mac OS X...
+ # Older OS X...
*) exit 97;;
esac
%version @CUPS_VERSION@
%format all
%description CUPS is the standards-based, open source printing system developed by
-%description Apple Inc. for Mac OS® X and other UNIX®-like operating systems.
+%description Apple Inc. for OS X and other UNIX®-like operating systems.
%format rpm
%provides lpd
f 0500 root sys $SERVERBIN/backend/lpd backend/lpd
%if DNSSD_BACKEND
f 0500 root sys $SERVERBIN/backend/dnssd backend/dnssd
+%system darwin
l 0700 root sys $SERVERBIN/backend/mdns dnssd
+%system all
%endif
f 0555 root sys $SERVERBIN/backend/snmp backend/snmp
f 0555 root sys $SERVERBIN/backend/socket backend/socket
d 0511 root $CUPS_PRIMARY_SYSTEM_GROUP $STATEDIR/certs -
# Data files
-f 0444 root sys $LOCALEDIR/da/cups_da.po locale/cups_da.po
-f 0444 root sys $LOCALEDIR/de/cups_de.po locale/cups_de.po
-f 0444 root sys $LOCALEDIR/es/cups_es.po locale/cups_es.po
+#f 0444 root sys $LOCALEDIR/da/cups_da.po locale/cups_da.po
+#f 0444 root sys $LOCALEDIR/de/cups_de.po locale/cups_de.po
+#f 0444 root sys $LOCALEDIR/es/cups_es.po locale/cups_es.po
#f 0444 root sys $LOCALEDIR/et/cups_et.po locale/cups_et.po
-f 0444 root sys $LOCALEDIR/eu/cups_eu.po locale/cups_eu.po
-f 0444 root sys $LOCALEDIR/fi/cups_fi.po locale/cups_fi.po
-f 0444 root sys $LOCALEDIR/fr/cups_fr.po locale/cups_fr.po
+#f 0444 root sys $LOCALEDIR/eu/cups_eu.po locale/cups_eu.po
+#f 0444 root sys $LOCALEDIR/fi/cups_fi.po locale/cups_fi.po
+#f 0444 root sys $LOCALEDIR/fr/cups_fr.po locale/cups_fr.po
#f 0444 root sys $LOCALEDIR/he/cups_he.po locale/cups_he.po
-f 0444 root sys $LOCALEDIR/id/cups_id.po locale/cups_id.po
-f 0444 root sys $LOCALEDIR/it/cups_it.po locale/cups_it.po
-f 0444 root sys $LOCALEDIR/ja/cups_ja.po locale/cups_ja.po
-f 0444 root sys $LOCALEDIR/ko/cups_ko.po locale/cups_ko.po
-f 0444 root sys $LOCALEDIR/nl/cups_nl.po locale/cups_nl.po
-f 0444 root sys $LOCALEDIR/no/cups_no.po locale/cups_no.po
-f 0444 root sys $LOCALEDIR/pl/cups_pl.po locale/cups_pl.po
-f 0444 root sys $LOCALEDIR/pt/cups_pt.po locale/cups_pt.po
-f 0444 root sys $LOCALEDIR/pt_BR/cups_pt_BR.po locale/cups_pt_BR.po
-f 0444 root sys $LOCALEDIR/ru/cups_ru.po locale/cups_ru.po
-f 0444 root sys $LOCALEDIR/sv/cups_sv.po locale/cups_sv.po
-f 0444 root sys $LOCALEDIR/zh/cups_zh.po locale/cups_zh.po
-f 0444 root sys $LOCALEDIR/zh_TW/cups_zh_TW.po locale/cups_zh_TW.po
+#f 0444 root sys $LOCALEDIR/id/cups_id.po locale/cups_id.po
+#f 0444 root sys $LOCALEDIR/it/cups_it.po locale/cups_it.po
+#f 0444 root sys $LOCALEDIR/ja/cups_ja.po locale/cups_ja.po
+#f 0444 root sys $LOCALEDIR/ko/cups_ko.po locale/cups_ko.po
+#f 0444 root sys $LOCALEDIR/nl/cups_nl.po locale/cups_nl.po
+#f 0444 root sys $LOCALEDIR/no/cups_no.po locale/cups_no.po
+#f 0444 root sys $LOCALEDIR/pl/cups_pl.po locale/cups_pl.po
+#f 0444 root sys $LOCALEDIR/pt/cups_pt.po locale/cups_pt.po
+#f 0444 root sys $LOCALEDIR/pt_BR/cups_pt_BR.po locale/cups_pt_BR.po
+#f 0444 root sys $LOCALEDIR/ru/cups_ru.po locale/cups_ru.po
+#f 0444 root sys $LOCALEDIR/sv/cups_sv.po locale/cups_sv.po
+#f 0444 root sys $LOCALEDIR/zh/cups_zh.po locale/cups_zh.po
+#f 0444 root sys $LOCALEDIR/zh_TW/cups_zh_TW.po locale/cups_zh_TW.po
d 0755 root sys $DATADIR -
f 0444 root sys $DATADIR/ipptool/create-printer-subscription.test test/create-printer-subscription.test
f 0444 root sys $DATADIR/ipptool/get-completed-jobs.test test/get-completed-jobs.test
f 0444 root sys $DATADIR/ipptool/get-jobs.test test/get-jobs.test
+f 0444 root sys $DATADIR/ipptool/get-printer-attributes.test test/get-printer-attributes.test
+f 0444 root sys $DATADIR/ipptool/print-job.test test/print-job.test
+f 0444 root sys $DATADIR/ipptool test/document-*.p*
f 0444 root sys $DATADIR/ipptool test/ipp-*.test
-f 0444 root sys $DATADIR/ipptool test/testfile.*
+f 0444 root sys $DATADIR/ipptool test/onepage-*.p*
+f 0444 root sys $DATADIR/ipptool/color.jpg test/color.jpg
+f 0444 root sys $DATADIR/ipptool/gray.jpg test/gray.jpg
d 0755 root sys $DATADIR/mime -
f 0444 root sys $DATADIR/mime/mime.convs conf/mime.convs
f 0444 root sys $DATADIR/templates templates/*.tmpl
## Template files
-d 0755 root sys $DATADIR/templates/de
-f 0444 root sys $DATADIR/templates/de templates/de/*.tmpl
+#d 0755 root sys $DATADIR/templates/de
+#f 0444 root sys $DATADIR/templates/de templates/de/*.tmpl
-d 0755 root sys $DATADIR/templates/es
-f 0444 root sys $DATADIR/templates/es templates/es/*.tmpl
+#d 0755 root sys $DATADIR/templates/es
+#f 0444 root sys $DATADIR/templates/es templates/es/*.tmpl
#d 0755 root sys $DATADIR/templates/et
#f 0444 root sys $DATADIR/templates/et templates/et/*.tmpl
-d 0755 root sys $DATADIR/templates/eu
-f 0444 root sys $DATADIR/templates/eu templates/eu/*.tmpl
+#d 0755 root sys $DATADIR/templates/eu
+#f 0444 root sys $DATADIR/templates/eu templates/eu/*.tmpl
#d 0755 root sys $DATADIR/templates/fr
#f 0444 root sys $DATADIR/templates/fr templates/fr/*.tmpl
#d 0755 root sys $DATADIR/templates/he
#f 0444 root sys $DATADIR/templates/he templates/he/*.tmpl
-d 0755 root sys $DATADIR/templates/id
-f 0444 root sys $DATADIR/templates/id templates/id/*.tmpl
+#d 0755 root sys $DATADIR/templates/id
+#f 0444 root sys $DATADIR/templates/id templates/id/*.tmpl
-d 0755 root sys $DATADIR/templates/it
-f 0444 root sys $DATADIR/templates/it templates/it/*.tmpl
+#d 0755 root sys $DATADIR/templates/it
+#f 0444 root sys $DATADIR/templates/it templates/it/*.tmpl
-d 0755 root sys $DATADIR/templates/ja
-f 0444 root sys $DATADIR/templates/ja templates/ja/*.tmpl
+#d 0755 root sys $DATADIR/templates/ja
+#f 0444 root sys $DATADIR/templates/ja templates/ja/*.tmpl
-d 0755 root sys $DATADIR/templates/pl
-f 0444 root sys $DATADIR/templates/pl templates/pl/*.tmpl
+#d 0755 root sys $DATADIR/templates/pl
+#f 0444 root sys $DATADIR/templates/pl templates/pl/*.tmpl
-d 0755 root sys $DATADIR/templates/ru
-f 0444 root sys $DATADIR/templates/ru templates/ru/*.tmpl
+#d 0755 root sys $DATADIR/templates/ru
+#f 0444 root sys $DATADIR/templates/ru templates/ru/*.tmpl
#d 0755 root sys $DATADIR/templates/sv
#f 0444 root sys $DATADIR/templates/sv templates/sv/*.tmpl
f 0444 root sys $INCLUDEDIR/cups/file.h cups/file.h
f 0444 root sys $INCLUDEDIR/cups/http.h cups/http.h
f 0444 root sys $INCLUDEDIR/cups/ipp.h cups/ipp.h
-f 0444 root sys $INCLUDEDIR/cups/mime.h scheduler/mime.h
f 0444 root sys $INCLUDEDIR/cups/language.h cups/language.h
f 0444 root sys $INCLUDEDIR/cups/ppd.h cups/ppd.h
f 0444 root sys $INCLUDEDIR/cups/raster.h cups/raster.h
+f 0444 root sys $INCLUDEDIR/cups/sidechannel.h cups/sidechannel.h
f 0444 root sys $INCLUDEDIR/cups/transcode.h cups/transcode.h
+f 0444 root sys $INCLUDEDIR/cups/versioning.h cups/versioning.h
%if INSTALLSTATIC
f 0444 root sys $LIBDIR/libcups.a cups/libcups.a
-f 0444 root sys $LIBDIR/libcupscgi.a cgi-bin/libcupscgi.a
-f 0444 root sys $LIBDIR/libcupsdriver.a driver/libcupsdriver.a
f 0444 root sys $LIBDIR/libcupsimage.a filter/libcupsimage.a
-f 0444 root sys $LIBDIR/libcupsmime.a scheduler/libcupsmime.a
-f 0444 root sys $LIBDIR/libcupsppdc.a ppdc/libcupsppdc.a
%endif
d 0755 root sys $DOCDIR/help -
f 0444 root sys $DOCDIR/robots.txt doc/robots.txt
# Localized documentation files
-d 0755 root sys $DOCDIR/de
-f 0444 root sys $DOCDIR/de doc/de/*.html
+#d 0755 root sys $DOCDIR/de
+#f 0444 root sys $DOCDIR/de doc/de/*.html
-d 0755 root sys $DOCDIR/es
-f 0444 root sys $DOCDIR/es doc/es/*.html
+#d 0755 root sys $DOCDIR/es
+#f 0444 root sys $DOCDIR/es doc/es/*.html
#d 0755 root sys $DOCDIR/et
#f 0444 root sys $DOCDIR/et doc/et/*.html
-d 0755 root sys $DOCDIR/eu
-f 0444 root sys $DOCDIR/eu doc/eu/*.html
+#d 0755 root sys $DOCDIR/eu
+#f 0444 root sys $DOCDIR/eu doc/eu/*.html
#d 0755 root sys $DOCDIR/fr
#f 0444 root sys $DOCDIR/fr doc/fr/*.html
#f 0444 root sys $DOCDIR/he doc/he/*.html
#f 0444 root sys $DOCDIR/he/cups.css doc/he/cups.css
-d 0755 root sys $DOCDIR/id
-f 0444 root sys $DOCDIR/id doc/id/*.html
+#d 0755 root sys $DOCDIR/id
+#f 0444 root sys $DOCDIR/id doc/id/*.html
-d 0755 root sys $DOCDIR/it
-f 0444 root sys $DOCDIR/it doc/it/*.html
+#d 0755 root sys $DOCDIR/it
+#f 0444 root sys $DOCDIR/it doc/it/*.html
-d 0755 root sys $DOCDIR/ja
-f 0444 root sys $DOCDIR/ja doc/ja/*.html
+#d 0755 root sys $DOCDIR/ja
+#f 0444 root sys $DOCDIR/ja doc/ja/*.html
-d 0755 root sys $DOCDIR/pl
-f 0444 root sys $DOCDIR/pl doc/pl/*.html
+#d 0755 root sys $DOCDIR/pl
+#f 0444 root sys $DOCDIR/pl doc/pl/*.html
-d 0755 root sys $DOCDIR/ru
-f 0444 root sys $DOCDIR/ru doc/ru/*.html
+#d 0755 root sys $DOCDIR/ru
+#f 0444 root sys $DOCDIR/ru doc/ru/*.html
#d 0755 root sys $DOCDIR/sv
#f 0444 root sys $DOCDIR/sv doc/sv/*.html
f 0444 root sys $MANDIR/man1/lp.$MAN1EXT man/lp.$MAN1EXT
f 0444 root sys $MANDIR/man5/classes.conf.$MAN5EXT man/classes.conf.$MAN5EXT
+f 0444 root sys $MANDIR/man5/cups-snmp.conf.$MAN5EXT man/cups-snmp.conf.$MAN5EXT
f 0444 root sys $MANDIR/man5/cupsd.conf.$MAN5EXT man/cupsd.conf.$MAN5EXT
f 0444 root sys $MANDIR/man5/ipptoolfile.$MAN5EXT man/ipptoolfile.$MAN5EXT
f 0444 root sys $MANDIR/man5/mailto.conf.$MAN5EXT man/mailto.conf.$MAN5EXT
f 0444 root sys $AMANDIR/man$MAN8DIR/cupsaddsmb.$MAN8EXT man/cupsaddsmb.$MAN8EXT
f 0444 root sys $AMANDIR/man$MAN8DIR/cupsctl.$MAN8EXT man/cupsctl.$MAN8EXT
f 0444 root sys $AMANDIR/man$MAN8DIR/cupsfilter.$MAN8EXT man/cupsfilter.$MAN8EXT
-f 0444 root sys $AMANDIR/man$MAN8DIR/cups-polld.$MAN8EXT man/cups-polld.$MAN8EXT
+f 0444 root sys $AMANDIR/man$MAN8DIR/cups-snmp.$MAN8EXT man/cups-snmp.$MAN8EXT
f 0444 root sys $AMANDIR/man$MAN8DIR/cupsd.$MAN8EXT man/cupsd.$MAN8EXT
f 0444 root sys $AMANDIR/man$MAN8DIR/cupsenable.$MAN8EXT man/cupsenable.$MAN8EXT
l 0644 root sys $AMANDIR/man$MAN8DIR/cupsdisable.$MAN8EXT cupsenable.$MAN8EXT
#
# Original version by Jason McMullan <jmcc@ontv.com>.
#
-# Copyright 2007-2011 by Apple Inc.
+# Copyright 2007-2012 by Apple Inc.
# Copyright 1999-2007 by Easy Software Products, all rights reserved.
#
# These coded instructions, statements, and computer programs are the
# Conditional build options (--with name/--without name):
#
# dbus - Enable/disable DBUS support (default = enable)
+# dnssd - Enable/disable DNS-SD support (default = enable)
+# static - Enable/disable static libraries (default = enable)
%{!?_with_dbus: %{!?_without_dbus: %define _with_dbus --with-dbus}}
%{?_with_dbus: %define _dbus --enable-dbus}
%{!?_with_dbus: %define _dbus --disable-dbus}
+%{!?_with_dnssd: %{!?_without_dnssd: %define _without_dnssd --without-dnssd}}
+%{?_with_dnssd: %define _dnssd --enable-dnssd}
+%{!?_with_dnssd: %define _dnssd --disable-dnssd}
+
%{!?_with_static: %{!?_without_static: %define _without_static --without-static}}
%{?_with_static: %define _static --enable-static}
%{!?_with_static: %define _static --disable-static}
Epoch: 1
License: GPL
Group: System Environment/Daemons
-Source: http://ftp.easysw.com/pub/cups/%{version}/cups-%{version}-source.tar.bz2
+Source: http://ftp.cups.org/pub/cups/%{version}/cups-%{version}-source.tar.bz2
Url: http://www.cups.org
Packager: Anonymous <anonymous@foo.com>
Vendor: Apple Inc.
%description
CUPS is the standards-based, open source printing system developed by
-Apple Inc. for Mac OS® X and other UNIX®-like operating systems.
+Apple Inc. for OS X and other UNIX®-like operating systems.
%description devel
This package provides the CUPS headers and development environment.
%build
CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" LDFLAGS="$RPM_OPT_FLAGS" \
- ./configure %{_dbus} %{_static}
+ ./configure %{_dbus} %{_dnssd} %{_static}
# If we got this far, all prerequisite libraries must be here.
make
/usr/bin/lp*
%dir /usr/lib/cups
%dir /usr/lib/cups/backend
+%if %{?_with_dnssd:1}%{!?_with_dnssd:0}
+/usr/lib/cups/backend/dnssd
+%endif
/usr/lib/cups/backend/http
/usr/lib/cups/backend/https
%attr(0700,root,root) /usr/lib/cups/backend/ipp
ppdc-array.o: ppdc-array.cxx ppdc-private.h ppdc.h ../cups/file.h \
- ../cups/versioning.h ../cups/cups-private.h ../cups/cups.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/versioning.h ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/ipp-private.h \
+ ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
ppdc-attr.o: ppdc-attr.cxx ppdc-private.h ppdc.h ../cups/file.h \
- ../cups/versioning.h ../cups/cups-private.h ../cups/cups.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/versioning.h ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/ipp-private.h \
+ ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
ppdc-catalog.o: ppdc-catalog.cxx ppdc-private.h ppdc.h ../cups/file.h \
- ../cups/versioning.h ../cups/cups-private.h ../cups/cups.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/versioning.h ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/ipp-private.h \
+ ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
ppdc-choice.o: ppdc-choice.cxx ppdc-private.h ppdc.h ../cups/file.h \
- ../cups/versioning.h ../cups/cups-private.h ../cups/cups.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/versioning.h ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/ipp-private.h \
+ ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
ppdc-constraint.o: ppdc-constraint.cxx ppdc-private.h ppdc.h \
../cups/file.h ../cups/versioning.h ../cups/cups-private.h \
- ../cups/cups.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
-ppdc-driver.o: ppdc-driver.cxx ppdc-private.h ppdc.h ../cups/file.h \
- ../cups/versioning.h ../cups/cups-private.h ../cups/cups.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/ipp-private.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
+ ../cups/http-private.h ../cups/md5-private.h \
+ ../cups/language-private.h ../cups/transcode.h ../cups/language.h \
+ ../cups/pwg-private.h ../cups/cups.h ../cups/ppd-private.h \
+ ../cups/ppd.h ../cups/thread-private.h
+ppdc-driver.o: ppdc-driver.cxx ppdc-private.h ppdc.h ../cups/file.h \
+ ../cups/versioning.h ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/ipp-private.h \
+ ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
ppdc-file.o: ppdc-file.cxx ppdc-private.h ppdc.h ../cups/file.h \
- ../cups/versioning.h ../cups/cups-private.h ../cups/cups.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/versioning.h ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/ipp-private.h \
+ ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
ppdc-filter.o: ppdc-filter.cxx ppdc-private.h ppdc.h ../cups/file.h \
- ../cups/versioning.h ../cups/cups-private.h ../cups/cups.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/versioning.h ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/ipp-private.h \
+ ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
ppdc-font.o: ppdc-font.cxx ppdc-private.h ppdc.h ../cups/file.h \
- ../cups/versioning.h ../cups/cups-private.h ../cups/cups.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/versioning.h ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/ipp-private.h \
+ ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
ppdc-group.o: ppdc-group.cxx ppdc-private.h ppdc.h ../cups/file.h \
- ../cups/versioning.h ../cups/cups-private.h ../cups/cups.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/versioning.h ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/ipp-private.h \
+ ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
ppdc-import.o: ppdc-import.cxx ppdc-private.h ppdc.h ../cups/file.h \
- ../cups/versioning.h ../cups/cups-private.h ../cups/cups.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/versioning.h ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/ipp-private.h \
+ ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
ppdc-mediasize.o: ppdc-mediasize.cxx ppdc-private.h ppdc.h ../cups/file.h \
- ../cups/versioning.h ../cups/cups-private.h ../cups/cups.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/versioning.h ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/ipp-private.h \
+ ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
ppdc-message.o: ppdc-message.cxx ppdc-private.h ppdc.h ../cups/file.h \
- ../cups/versioning.h ../cups/cups-private.h ../cups/cups.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/versioning.h ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/ipp-private.h \
+ ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
ppdc-option.o: ppdc-option.cxx ppdc-private.h ppdc.h ../cups/file.h \
- ../cups/versioning.h ../cups/cups-private.h ../cups/cups.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/versioning.h ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/ipp-private.h \
+ ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
ppdc-profile.o: ppdc-profile.cxx ppdc-private.h ppdc.h ../cups/file.h \
- ../cups/versioning.h ../cups/cups-private.h ../cups/cups.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/versioning.h ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/ipp-private.h \
+ ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
ppdc-shared.o: ppdc-shared.cxx ppdc-private.h ppdc.h ../cups/file.h \
- ../cups/versioning.h ../cups/cups-private.h ../cups/cups.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/versioning.h ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/ipp-private.h \
+ ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
ppdc-source.o: ppdc-source.cxx ppdc-private.h ppdc.h ../cups/file.h \
- ../cups/versioning.h ../cups/cups-private.h ../cups/cups.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/raster.h ../data/epson.h ../data/hp.h \
- ../data/label.h
+ ../cups/versioning.h ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/ipp-private.h \
+ ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
+ ../cups/raster.h ../data/epson.h ../data/hp.h ../data/label.h
ppdc-string.o: ppdc-string.cxx ppdc-private.h ppdc.h ../cups/file.h \
- ../cups/versioning.h ../cups/cups-private.h ../cups/cups.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/versioning.h ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/ipp-private.h \
+ ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
ppdc-variable.o: ppdc-variable.cxx ppdc-private.h ppdc.h ../cups/file.h \
- ../cups/versioning.h ../cups/cups-private.h ../cups/cups.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/versioning.h ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/ipp-private.h \
+ ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
genstrings.o: genstrings.cxx ppdc-private.h ppdc.h ../cups/file.h \
- ../cups/versioning.h ../cups/cups-private.h ../cups/cups.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/versioning.h ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/ipp-private.h \
+ ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
ppdc.o: ppdc.cxx ppdc-private.h ppdc.h ../cups/file.h \
- ../cups/versioning.h ../cups/cups-private.h ../cups/cups.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/versioning.h ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/ipp-private.h \
+ ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
ppdhtml.o: ppdhtml.cxx ppdc-private.h ppdc.h ../cups/file.h \
- ../cups/versioning.h ../cups/cups-private.h ../cups/cups.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/versioning.h ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/ipp-private.h \
+ ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
ppdi.o: ppdi.cxx ppdc-private.h ppdc.h ../cups/file.h \
- ../cups/versioning.h ../cups/cups-private.h ../cups/cups.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
-ppdmerge.o: ppdmerge.cxx ../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/versioning.h ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/ipp-private.h \
+ ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
+ppdmerge.o: ppdmerge.cxx ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/versioning.h \
+ ../cups/ipp-private.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
+ ../cups/http-private.h ../cups/md5-private.h \
+ ../cups/language-private.h ../cups/transcode.h ../cups/language.h \
+ ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
ppdpo.o: ppdpo.cxx ppdc-private.h ppdc.h ../cups/file.h \
- ../cups/versioning.h ../cups/cups-private.h ../cups/cups.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/versioning.h ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/ipp-private.h \
+ ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
testcatalog.o: testcatalog.cxx ppdc-private.h ppdc.h ../cups/file.h \
- ../cups/versioning.h ../cups/cups-private.h ../cups/cups.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/versioning.h ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/ipp-private.h \
+ ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
//
// Shared message catalog class for the CUPS PPD Compiler.
//
-// Copyright 2007-2010 by Apple Inc.
+// Copyright 2007-2012 by Apple Inc.
// Copyright 2002-2006 by Easy Software Products.
//
// These coded instructions, statements, and computer programs are the
else if (!strcmp(ptr, ".strings"))
{
/*
- * Read messages in Mac OS X ".strings" format, which are UTF-16 text
- * files of the format:
+ * Read messages in OS X ".strings" format, which are UTF-16 text files of
+ * the format:
*
* "id" = "str";
*
int which, // In msgid?
haveid, // Did we get a msgid string?
havestr; // Did we get a msgstr string?
-
+
linenum = 0;
id[0] = '\0';
str[0] = '\0';
//
// PPD file compiler main entry for the CUPS PPD Compiler.
//
-// Copyright 2007-2011 by Apple Inc.
+// Copyright 2007-2012 by Apple Inc.
// Copyright 2002-2007 by Easy Software Products.
//
// These coded instructions, statements, and computer programs are the
"as the filename."));
_cupsLangPuts(stdout, _(" -t Test PPDs instead of "
"generating them."));
- _cupsLangPuts(stdout, _(" -v Be verbose (more v's for "
- "more verbosity)."));
+ _cupsLangPuts(stdout, _(" -v Be verbose."));
_cupsLangPuts(stdout, _(" -z Compress PPD files using "
"GNU zip."));
_cupsLangPuts(stdout, _(" --cr End lines with CR (Mac "
_cupsLangPuts(stdout, _(" --crlf End lines with CR + LF "
"(Windows)."));
_cupsLangPuts(stdout, _(" --lf End lines with LF "
- "(UNIX/Linux/Mac OS X)."));
+ "(UNIX/Linux/OS X)."));
exit(1);
}
//
// PPD file message catalog program for the CUPS PPD Compiler.
//
-// Copyright 2007-2011 by Apple Inc.
+// Copyright 2007-2012 by Apple Inc.
// Copyright 2002-2005 by Easy Software Products.
//
// These coded instructions, statements, and computer programs are the
"value."));
_cupsLangPuts(stdout, _(" -I include-dir Add include directory to "
"search path."));
- _cupsLangPuts(stdout, _(" -v Be verbose (more v's for "
- "more verbosity)."));
+ _cupsLangPuts(stdout, _(" -v Be verbose."));
exit(1);
}
//#po zh_TW ""
// MediaSize sizes used by label drivers...
-#media "w81h252/Address - 1 1/8 x 3 1/2\"" 81 252
-#media "w101h252/Large Address - 1 4/10 x 3 1/2\"" 101 252
-#media "w54h144/Return Address - 3/4 x 2\"" 54 144
-#media "w167h288/Shipping Address - 2 5/16 x 4\"" 167 288
-#media "w162h540/Internet Postage 2-Part - 2 1/4 x 7 1/2\"" 162 540
-#media "w162h504/Internet Postage 3-Part - 2 1/4 x 7\"" 162 504
-#media "w41h248/File Folder - 9/16 x 3 7/16\"" 41 248
-#media "w41h144/Hanging Folder - 9/16 x 2\"" 41 144
-#media "w153h198/3.5\" Disk - 2 1/8 x 2 3/4\"" 153 198
#media "w90h18/1.25x0.25\"" 90 18
#media "w90h162/1.25x2.25\"" 90 162
#media "w108h18/1.50x0.25\"" 108 18
Attribute "LandscapeOrientation" "" "Plus90"
Attribute "TTRasterizer" "" "Type42"
-Copyright "Copyright 2007-2011 by Apple Inc."
+Copyright "Copyright 2007-2012 by Apple Inc."
Copyright "Copyright 1997-2007 by Easy Software Products."
Copyright ""
Copyright "These coded instructions, statements, and computer programs are the"
-auth.o: auth.c cupsd.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/file-private.h \
- mime.h sysman.h statbuf.h cert.h auth.h client.h policy.h printers.h \
- classes.h job.h conf.h banners.h dirsvc.h network.h subscriptions.h
-banners.o: banners.c cupsd.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/file-private.h \
- mime.h sysman.h statbuf.h cert.h auth.h client.h policy.h printers.h \
- classes.h job.h conf.h banners.h dirsvc.h network.h subscriptions.h \
- ../cups/dir.h
-cert.o: cert.c cupsd.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/file-private.h \
- mime.h sysman.h statbuf.h cert.h auth.h client.h policy.h printers.h \
- classes.h job.h conf.h banners.h dirsvc.h network.h subscriptions.h
-classes.o: classes.c cupsd.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/file-private.h \
- mime.h sysman.h statbuf.h cert.h auth.h client.h policy.h printers.h \
- classes.h job.h conf.h banners.h dirsvc.h network.h subscriptions.h
-client.o: client.c cupsd.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/file-private.h \
- mime.h sysman.h statbuf.h cert.h auth.h client.h policy.h printers.h \
- classes.h job.h conf.h banners.h dirsvc.h network.h subscriptions.h
-conf.o: conf.c cupsd.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/file-private.h \
- mime.h sysman.h statbuf.h cert.h auth.h client.h policy.h printers.h \
- classes.h job.h conf.h banners.h dirsvc.h network.h subscriptions.h
-dirsvc.o: dirsvc.c cupsd.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/file-private.h \
- mime.h sysman.h statbuf.h cert.h auth.h client.h policy.h printers.h \
- classes.h job.h conf.h banners.h dirsvc.h network.h subscriptions.h
-env.o: env.c cupsd.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/file-private.h mime.h sysman.h \
- statbuf.h cert.h auth.h client.h policy.h printers.h classes.h job.h \
- conf.h banners.h dirsvc.h network.h subscriptions.h
-file.o: file.c cupsd.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/file-private.h \
- mime.h sysman.h statbuf.h cert.h auth.h client.h policy.h printers.h \
- classes.h job.h conf.h banners.h dirsvc.h network.h subscriptions.h \
- ../cups/dir.h
-main.o: main.c cupsd.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/file-private.h \
- mime.h sysman.h statbuf.h cert.h auth.h client.h policy.h printers.h \
- classes.h job.h conf.h banners.h dirsvc.h network.h subscriptions.h
-ipp.o: ipp.c cupsd.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/file-private.h mime.h sysman.h \
- statbuf.h cert.h auth.h client.h policy.h printers.h classes.h job.h \
- conf.h banners.h dirsvc.h network.h subscriptions.h
-listen.o: listen.c cupsd.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/file-private.h \
- mime.h sysman.h statbuf.h cert.h auth.h client.h policy.h printers.h \
- classes.h job.h conf.h banners.h dirsvc.h network.h subscriptions.h
-job.o: job.c cupsd.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/file-private.h mime.h sysman.h \
- statbuf.h cert.h auth.h client.h policy.h printers.h classes.h job.h \
- conf.h banners.h dirsvc.h network.h subscriptions.h ../cups/backend.h \
- ../cups/dir.h
-log.o: log.c cupsd.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/file-private.h mime.h sysman.h \
- statbuf.h cert.h auth.h client.h policy.h printers.h classes.h job.h \
- conf.h banners.h dirsvc.h network.h subscriptions.h
+auth.o: auth.c cupsd.h ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/versioning.h \
+ ../cups/ipp-private.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
+ ../cups/http-private.h ../cups/md5-private.h \
+ ../cups/language-private.h ../cups/transcode.h ../cups/language.h \
+ ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
+ ../cups/file-private.h mime.h sysman.h statbuf.h cert.h auth.h \
+ client.h policy.h printers.h classes.h job.h conf.h banners.h dirsvc.h \
+ network.h subscriptions.h
+avahi.o: avahi.c ../config.h
+banners.o: banners.c cupsd.h ../cups/cups-private.h \
+ ../cups/string-private.h ../config.h ../cups/debug-private.h \
+ ../cups/versioning.h ../cups/ipp-private.h ../cups/ipp.h \
+ ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
+ ../cups/file-private.h mime.h sysman.h statbuf.h cert.h auth.h \
+ client.h policy.h printers.h classes.h job.h conf.h banners.h dirsvc.h \
+ network.h subscriptions.h ../cups/dir.h
+cert.o: cert.c cupsd.h ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/versioning.h \
+ ../cups/ipp-private.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
+ ../cups/http-private.h ../cups/md5-private.h \
+ ../cups/language-private.h ../cups/transcode.h ../cups/language.h \
+ ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
+ ../cups/file-private.h mime.h sysman.h statbuf.h cert.h auth.h \
+ client.h policy.h printers.h classes.h job.h conf.h banners.h dirsvc.h \
+ network.h subscriptions.h
+classes.o: classes.c cupsd.h ../cups/cups-private.h \
+ ../cups/string-private.h ../config.h ../cups/debug-private.h \
+ ../cups/versioning.h ../cups/ipp-private.h ../cups/ipp.h \
+ ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
+ ../cups/file-private.h mime.h sysman.h statbuf.h cert.h auth.h \
+ client.h policy.h printers.h classes.h job.h conf.h banners.h dirsvc.h \
+ network.h subscriptions.h
+client.o: client.c cupsd.h ../cups/cups-private.h \
+ ../cups/string-private.h ../config.h ../cups/debug-private.h \
+ ../cups/versioning.h ../cups/ipp-private.h ../cups/ipp.h \
+ ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
+ ../cups/file-private.h mime.h sysman.h statbuf.h cert.h auth.h \
+ client.h policy.h printers.h classes.h job.h conf.h banners.h dirsvc.h \
+ network.h subscriptions.h
+conf.o: conf.c cupsd.h ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/versioning.h \
+ ../cups/ipp-private.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
+ ../cups/http-private.h ../cups/md5-private.h \
+ ../cups/language-private.h ../cups/transcode.h ../cups/language.h \
+ ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
+ ../cups/file-private.h mime.h sysman.h statbuf.h cert.h auth.h \
+ client.h policy.h printers.h classes.h job.h conf.h banners.h dirsvc.h \
+ network.h subscriptions.h
+dirsvc.o: dirsvc.c cupsd.h ../cups/cups-private.h \
+ ../cups/string-private.h ../config.h ../cups/debug-private.h \
+ ../cups/versioning.h ../cups/ipp-private.h ../cups/ipp.h \
+ ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
+ ../cups/file-private.h mime.h sysman.h statbuf.h cert.h auth.h \
+ client.h policy.h printers.h classes.h job.h conf.h banners.h dirsvc.h \
+ network.h subscriptions.h
+env.o: env.c cupsd.h ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/versioning.h \
+ ../cups/ipp-private.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
+ ../cups/http-private.h ../cups/md5-private.h \
+ ../cups/language-private.h ../cups/transcode.h ../cups/language.h \
+ ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
+ ../cups/file-private.h mime.h sysman.h statbuf.h cert.h auth.h \
+ client.h policy.h printers.h classes.h job.h conf.h banners.h dirsvc.h \
+ network.h subscriptions.h
+file.o: file.c cupsd.h ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/versioning.h \
+ ../cups/ipp-private.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
+ ../cups/http-private.h ../cups/md5-private.h \
+ ../cups/language-private.h ../cups/transcode.h ../cups/language.h \
+ ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
+ ../cups/file-private.h mime.h sysman.h statbuf.h cert.h auth.h \
+ client.h policy.h printers.h classes.h job.h conf.h banners.h dirsvc.h \
+ network.h subscriptions.h ../cups/dir.h
+main.o: main.c cupsd.h ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/versioning.h \
+ ../cups/ipp-private.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
+ ../cups/http-private.h ../cups/md5-private.h \
+ ../cups/language-private.h ../cups/transcode.h ../cups/language.h \
+ ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
+ ../cups/file-private.h mime.h sysman.h statbuf.h cert.h auth.h \
+ client.h policy.h printers.h classes.h job.h conf.h banners.h dirsvc.h \
+ network.h subscriptions.h
+ipp.o: ipp.c cupsd.h ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/versioning.h \
+ ../cups/ipp-private.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
+ ../cups/http-private.h ../cups/md5-private.h \
+ ../cups/language-private.h ../cups/transcode.h ../cups/language.h \
+ ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
+ ../cups/file-private.h mime.h sysman.h statbuf.h cert.h auth.h \
+ client.h policy.h printers.h classes.h job.h conf.h banners.h dirsvc.h \
+ network.h subscriptions.h
+listen.o: listen.c cupsd.h ../cups/cups-private.h \
+ ../cups/string-private.h ../config.h ../cups/debug-private.h \
+ ../cups/versioning.h ../cups/ipp-private.h ../cups/ipp.h \
+ ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
+ ../cups/file-private.h mime.h sysman.h statbuf.h cert.h auth.h \
+ client.h policy.h printers.h classes.h job.h conf.h banners.h dirsvc.h \
+ network.h subscriptions.h
+job.o: job.c cupsd.h ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/versioning.h \
+ ../cups/ipp-private.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
+ ../cups/http-private.h ../cups/md5-private.h \
+ ../cups/language-private.h ../cups/transcode.h ../cups/language.h \
+ ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
+ ../cups/file-private.h mime.h sysman.h statbuf.h cert.h auth.h \
+ client.h policy.h printers.h classes.h job.h conf.h banners.h dirsvc.h \
+ network.h subscriptions.h ../cups/backend.h ../cups/dir.h
+log.o: log.c cupsd.h ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/versioning.h \
+ ../cups/ipp-private.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
+ ../cups/http-private.h ../cups/md5-private.h \
+ ../cups/language-private.h ../cups/transcode.h ../cups/language.h \
+ ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
+ ../cups/file-private.h mime.h sysman.h statbuf.h cert.h auth.h \
+ client.h policy.h printers.h classes.h job.h conf.h banners.h dirsvc.h \
+ network.h subscriptions.h
network.o: network.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 cupsd.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/file-private.h \
- mime.h sysman.h statbuf.h cert.h auth.h client.h policy.h printers.h \
- classes.h job.h conf.h banners.h dirsvc.h network.h subscriptions.h
-policy.o: policy.c cupsd.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/file-private.h \
- mime.h sysman.h statbuf.h cert.h auth.h client.h policy.h printers.h \
- classes.h job.h conf.h banners.h dirsvc.h network.h subscriptions.h
-printers.o: printers.c cupsd.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/file-private.h \
- mime.h sysman.h statbuf.h cert.h auth.h client.h policy.h printers.h \
- classes.h job.h conf.h banners.h dirsvc.h network.h subscriptions.h \
- ../cups/dir.h
-process.o: process.c cupsd.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/file-private.h \
- mime.h sysman.h statbuf.h cert.h auth.h client.h policy.h printers.h \
- classes.h job.h conf.h banners.h dirsvc.h network.h subscriptions.h
-quotas.o: quotas.c cupsd.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/file-private.h \
- mime.h sysman.h statbuf.h cert.h auth.h client.h policy.h printers.h \
- classes.h job.h conf.h banners.h dirsvc.h network.h subscriptions.h
-select.o: select.c cupsd.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/file-private.h \
- mime.h sysman.h statbuf.h cert.h auth.h client.h policy.h printers.h \
- classes.h job.h conf.h banners.h dirsvc.h network.h subscriptions.h
+ ../cups/string-private.h ../cups/debug-private.h \
+ ../cups/language-private.h ../cups/transcode.h ../cups/language.h \
+ ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
+ ../cups/file-private.h mime.h sysman.h statbuf.h cert.h auth.h \
+ client.h policy.h printers.h classes.h job.h conf.h banners.h dirsvc.h \
+ network.h subscriptions.h
+policy.o: policy.c cupsd.h ../cups/cups-private.h \
+ ../cups/string-private.h ../config.h ../cups/debug-private.h \
+ ../cups/versioning.h ../cups/ipp-private.h ../cups/ipp.h \
+ ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
+ ../cups/file-private.h mime.h sysman.h statbuf.h cert.h auth.h \
+ client.h policy.h printers.h classes.h job.h conf.h banners.h dirsvc.h \
+ network.h subscriptions.h
+printers.o: printers.c cupsd.h ../cups/cups-private.h \
+ ../cups/string-private.h ../config.h ../cups/debug-private.h \
+ ../cups/versioning.h ../cups/ipp-private.h ../cups/ipp.h \
+ ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
+ ../cups/file-private.h mime.h sysman.h statbuf.h cert.h auth.h \
+ client.h policy.h printers.h classes.h job.h conf.h banners.h dirsvc.h \
+ network.h subscriptions.h ../cups/dir.h
+process.o: process.c cupsd.h ../cups/cups-private.h \
+ ../cups/string-private.h ../config.h ../cups/debug-private.h \
+ ../cups/versioning.h ../cups/ipp-private.h ../cups/ipp.h \
+ ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
+ ../cups/file-private.h mime.h sysman.h statbuf.h cert.h auth.h \
+ client.h policy.h printers.h classes.h job.h conf.h banners.h dirsvc.h \
+ network.h subscriptions.h
+quotas.o: quotas.c cupsd.h ../cups/cups-private.h \
+ ../cups/string-private.h ../config.h ../cups/debug-private.h \
+ ../cups/versioning.h ../cups/ipp-private.h ../cups/ipp.h \
+ ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
+ ../cups/file-private.h mime.h sysman.h statbuf.h cert.h auth.h \
+ client.h policy.h printers.h classes.h job.h conf.h banners.h dirsvc.h \
+ network.h subscriptions.h
+select.o: select.c cupsd.h ../cups/cups-private.h \
+ ../cups/string-private.h ../config.h ../cups/debug-private.h \
+ ../cups/versioning.h ../cups/ipp-private.h ../cups/ipp.h \
+ ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
+ ../cups/file-private.h mime.h sysman.h statbuf.h cert.h auth.h \
+ client.h policy.h printers.h classes.h job.h conf.h banners.h dirsvc.h \
+ network.h subscriptions.h
server.o: server.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 cupsd.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/file-private.h \
- mime.h sysman.h statbuf.h cert.h auth.h client.h policy.h printers.h \
- classes.h job.h conf.h banners.h dirsvc.h network.h subscriptions.h
-statbuf.o: statbuf.c cupsd.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/file-private.h \
- mime.h sysman.h statbuf.h cert.h auth.h client.h policy.h printers.h \
- classes.h job.h conf.h banners.h dirsvc.h network.h subscriptions.h
+ ../cups/string-private.h ../cups/debug-private.h \
+ ../cups/language-private.h ../cups/transcode.h ../cups/language.h \
+ ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
+ ../cups/file-private.h mime.h sysman.h statbuf.h cert.h auth.h \
+ client.h policy.h printers.h classes.h job.h conf.h banners.h dirsvc.h \
+ network.h subscriptions.h
+statbuf.o: statbuf.c cupsd.h ../cups/cups-private.h \
+ ../cups/string-private.h ../config.h ../cups/debug-private.h \
+ ../cups/versioning.h ../cups/ipp-private.h ../cups/ipp.h \
+ ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
+ ../cups/file-private.h mime.h sysman.h statbuf.h cert.h auth.h \
+ client.h policy.h printers.h classes.h job.h conf.h banners.h dirsvc.h \
+ network.h subscriptions.h
subscriptions.o: subscriptions.c cupsd.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/file-private.h mime.h sysman.h \
- statbuf.h cert.h auth.h client.h policy.h printers.h classes.h job.h \
- conf.h banners.h dirsvc.h network.h subscriptions.h
-sysman.o: sysman.c cupsd.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/file-private.h \
- mime.h sysman.h statbuf.h cert.h auth.h client.h policy.h printers.h \
- classes.h job.h conf.h banners.h dirsvc.h network.h subscriptions.h
+ ../cups/versioning.h ../cups/ipp-private.h ../cups/ipp.h \
+ ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
+ ../cups/file-private.h mime.h sysman.h statbuf.h cert.h auth.h \
+ client.h policy.h printers.h classes.h job.h conf.h banners.h dirsvc.h \
+ network.h subscriptions.h
+sysman.o: sysman.c cupsd.h ../cups/cups-private.h \
+ ../cups/string-private.h ../config.h ../cups/debug-private.h \
+ ../cups/versioning.h ../cups/ipp-private.h ../cups/ipp.h \
+ ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
+ ../cups/file-private.h mime.h sysman.h statbuf.h cert.h auth.h \
+ client.h policy.h printers.h classes.h job.h conf.h banners.h dirsvc.h \
+ network.h subscriptions.h
+timeout.o: timeout.c cupsd.h ../cups/cups-private.h \
+ ../cups/string-private.h ../config.h ../cups/debug-private.h \
+ ../cups/versioning.h ../cups/ipp-private.h ../cups/ipp.h \
+ ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
+ ../cups/file-private.h mime.h sysman.h statbuf.h cert.h auth.h \
+ client.h policy.h printers.h classes.h job.h conf.h banners.h dirsvc.h \
+ network.h subscriptions.h
+tls.o: tls.c cupsd.h ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/versioning.h \
+ ../cups/ipp-private.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
+ ../cups/http-private.h ../cups/md5-private.h \
+ ../cups/language-private.h ../cups/transcode.h ../cups/language.h \
+ ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
+ ../cups/file-private.h mime.h sysman.h statbuf.h cert.h auth.h \
+ client.h policy.h printers.h classes.h job.h conf.h banners.h dirsvc.h \
+ network.h subscriptions.h tls-darwin.c
filter.o: filter.c ../cups/string-private.h ../config.h \
../cups/debug-private.h ../cups/versioning.h mime.h ../cups/array.h \
../cups/ipp.h ../cups/http.h ../cups/file.h
type.o: type.c ../cups/string-private.h ../config.h \
../cups/debug-private.h ../cups/versioning.h mime.h ../cups/array.h \
../cups/ipp.h ../cups/http.h ../cups/file.h
-cupsfilter.o: cupsfilter.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 ../cups/file-private.h \
- mime.h
+cupsfilter.o: cupsfilter.c ../cups/cups-private.h \
+ ../cups/string-private.h ../config.h ../cups/debug-private.h \
+ ../cups/versioning.h ../cups/ipp-private.h ../cups/ipp.h \
+ ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
+ ../cups/file-private.h mime.h
cups-deviced.o: cups-deviced.c util.h ../cups/array-private.h \
../cups/array.h ../cups/versioning.h ../cups/file-private.h \
- ../cups/cups-private.h ../cups/cups.h ../cups/file.h ../cups/ipp.h \
- ../cups/http.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/dir.h
+ ../cups/cups-private.h ../cups/string-private.h ../config.h \
+ ../cups/debug-private.h ../cups/ipp-private.h ../cups/ipp.h \
+ ../cups/http.h ../cups/http-private.h ../cups/md5-private.h \
+ ../cups/language-private.h ../cups/transcode.h ../cups/language.h \
+ ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
+ ../cups/dir.h
cups-exec.o: cups-exec.c ../cups/string-private.h ../config.h
-cups-lpd.o: cups-lpd.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
+cups-lpd.o: cups-lpd.c ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/versioning.h \
+ ../cups/ipp-private.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
+ ../cups/http-private.h ../cups/md5-private.h \
+ ../cups/language-private.h ../cups/transcode.h ../cups/language.h \
+ ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
testlpd.o: testlpd.c ../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/ipp-private.h
util.o: util.c util.h ../cups/array-private.h ../cups/array.h \
../cups/versioning.h ../cups/file-private.h ../cups/cups-private.h \
- ../cups/cups.h ../cups/file.h ../cups/ipp.h ../cups/http.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/string-private.h ../config.h ../cups/debug-private.h \
+ ../cups/ipp-private.h ../cups/ipp.h ../cups/http.h \
+ ../cups/http-private.h ../cups/md5-private.h \
+ ../cups/language-private.h ../cups/transcode.h ../cups/language.h \
+ ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
cups-driverd.o: cups-driverd.cxx util.h ../cups/array-private.h \
../cups/array.h ../cups/versioning.h ../cups/file-private.h \
- ../cups/cups-private.h ../cups/cups.h ../cups/file.h ../cups/ipp.h \
- ../cups/http.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/dir.h ../ppdc/ppdc.h
+ ../cups/cups-private.h ../cups/string-private.h ../config.h \
+ ../cups/debug-private.h ../cups/ipp-private.h ../cups/ipp.h \
+ ../cups/http.h ../cups/http-private.h ../cups/md5-private.h \
+ ../cups/language-private.h ../cups/transcode.h ../cups/language.h \
+ ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
+ ../cups/dir.h ../ppdc/ppdc.h
CUPSDOBJS = \
auth.o \
- avahi.o \
banners.o \
cert.o \
classes.o \
statbuf.o \
subscriptions.o \
sysman.o \
- timeout.o \
tls.o
LIBOBJS = \
filter.o \
+++ /dev/null
-/*
- * "$Id$"
- *
- * Avahi poll implementation for the CUPS scheduler.
- *
- * Copyright (C) 2010, 2011 Red Hat, Inc.
- * Authors:
- * Tim Waugh <twaugh@redhat.com>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * Contents:
- *
- * watch_read_cb - Read callback for file descriptor
- * watch_write_cb - Write callback for file descriptor
- * watched_fd_add_select() - Call cupsdAddSelect() as needed
- * watch_new() - Create a new file descriptor watch
- * watch_free() - Free a file descriptor watch
- * watch_update() - Update watched events for a file descriptor
- * watch_get_events() - Get events that happened for a file descriptor
- * timeout_cb() - Run a timed Avahi callback
- * timeout_new() - Set a wakeup time
- * timeout_update() - Update the expiration time for a timeout
- * timeout_free() - Free a timeout
- * compare_watched_fds() - Compare watched file descriptors for array sorting
- * avahi_cups_poll_new() - Create a new Avahi main loop object for CUPS
- * avahi_cups_poll_free() - Free an Avahi main loop object for CUPS
- * avahi_cups_poll_get() - Get the abstract poll API structure
- */
-
-#include <config.h>
-
-#ifdef HAVE_AVAHI /* Applies to entire file... */
-
-/*
- * Include necessary headers...
- */
-
-#include "cupsd.h"
-
-#if defined(HAVE_MALLOC_H) && defined(HAVE_MALLINFO)
-# include <malloc.h>
-#endif /* HAVE_MALLOC_H && HAVE_MALLINFO */
-
-#ifdef HAVE_AVAHI
-# include <avahi-common/timeval.h>
-#endif /* HAVE_AVAHI */
-
-
-typedef struct
-{
- AvahiCupsPoll *cups_poll;
-
- int fd;
- AvahiWatchEvent occurred;
- cups_array_t *watches;
-} cupsd_watched_fd_t;
-
-struct AvahiWatch
-{
- cupsd_watched_fd_t *watched_fd;
-
- AvahiWatchEvent events;
- AvahiWatchCallback callback;
- void *userdata;
-};
-
-struct AvahiTimeout
-{
- AvahiCupsPoll *cups_poll;
- AvahiTimeoutCallback callback;
- void *userdata;
- cupsd_timeout_t *cupsd_timeout;
-};
-
-/*
- * Local functions...
- */
-
-static AvahiWatch * watch_new(const AvahiPoll *api,
- int fd,
- AvahiWatchEvent events,
- AvahiWatchCallback callback,
- void *userdata);
-static void watch_free(AvahiWatch *watch);
-static void watch_update(AvahiWatch *watch,
- AvahiWatchEvent events);
-static AvahiWatchEvent watch_get_events(AvahiWatch *watch);
-
-
-/*
- * 'watch_read_cb' - Read callback for file descriptor
- */
-
-static void
-watch_read_cb (void *userdata)
-{
- AvahiWatch *watch;
- cupsd_watched_fd_t *watched_fd = userdata;
- watched_fd->occurred |= AVAHI_WATCH_IN;
- for (watch = (AvahiWatch *)cupsArrayFirst(watched_fd->watches);
- watch;
- watch = (AvahiWatch *)cupsArrayNext(watched_fd->watches))
- {
- if (watch->events & watched_fd->occurred)
- {
- (watch->callback) (watch, watched_fd->fd,
- AVAHI_WATCH_IN, watch->userdata);
- watched_fd->occurred &= ~AVAHI_WATCH_IN;
- break;
- }
- }
-}
-
-
-/*
- * 'watch_write_cb' - Write callback for file descriptor
- */
-
-static void
-watch_write_cb (void *userdata)
-{
- AvahiWatch *watch;
- cupsd_watched_fd_t *watched_fd = userdata;
- watched_fd->occurred |= AVAHI_WATCH_OUT;
- for (watch = (AvahiWatch *)cupsArrayFirst(watched_fd->watches);
- watch;
- watch = (AvahiWatch *)cupsArrayNext(watched_fd->watches))
- {
- if (watch->events & watched_fd->occurred)
- {
- (watch->callback) (watch, watched_fd->fd,
- AVAHI_WATCH_OUT, watch->userdata);
- watched_fd->occurred &= ~AVAHI_WATCH_OUT;
- break;
- }
- }
-}
-
-
-/*
- * 'watched_fd_add_select' - Call cupsdAddSelect() as needed
- */
-
-static int /* O - Watches? */
-watched_fd_add_select (cupsd_watched_fd_t *watched_fd)
-{
- AvahiWatch *watch;
- cupsd_selfunc_t read_cb = NULL, write_cb = NULL;
- int any_watches = 0;
-
- for (watch = (AvahiWatch *)cupsArrayFirst(watched_fd->watches);
- watch;
- watch = (AvahiWatch *)cupsArrayNext(watched_fd->watches))
- {
- any_watches = 1;
- if (watch->events & (AVAHI_WATCH_IN |
- AVAHI_WATCH_ERR |
- AVAHI_WATCH_HUP))
- {
- read_cb = (cupsd_selfunc_t)watch_read_cb;
- if (write_cb != NULL)
- break;
- }
-
- if (watch->events & AVAHI_WATCH_OUT)
- {
- write_cb = (cupsd_selfunc_t)watch_write_cb;
- if (read_cb != NULL)
- break;
- }
- }
-
- if (read_cb || write_cb)
- cupsdAddSelect (watched_fd->fd, read_cb, write_cb, watched_fd);
- else
- cupsdRemoveSelect (watched_fd->fd);
-
- return (any_watches);
-}
-
-/*
- * 'watch_new' - Create a new file descriptor watch
- */
-
-static AvahiWatch *
-watch_new (const AvahiPoll *api,
- int fd,
- AvahiWatchEvent events,
- AvahiWatchCallback callback,
- void *userdata)
-{
- cupsd_watched_fd_t key, *watched_fd;
- AvahiCupsPoll *cups_poll = api->userdata;
- AvahiWatch *watch = malloc(sizeof(AvahiWatch));
- if (watch == NULL)
- return (NULL);
-
- watch->events = events;
- watch->callback = callback;
- watch->userdata = userdata;
-
- key.fd = fd;
- watched_fd = cupsArrayFind (cups_poll->watched_fds, &key);
- if (watched_fd == NULL)
- {
- watched_fd = malloc(sizeof(cupsd_watched_fd_t));
- if (watched_fd == NULL)
- {
- free (watch);
- return (NULL);
- }
-
- watched_fd->fd = fd;
- watched_fd->occurred = 0;
- watched_fd->cups_poll = cups_poll;
- watched_fd->watches = cupsArrayNew (NULL, NULL);
- cupsArrayAdd (cups_poll->watched_fds, watched_fd);
- }
-
- watch->watched_fd = watched_fd;
- cupsArrayAdd(watched_fd->watches, watch);
- watched_fd_add_select (watched_fd);
- return (watch);
-}
-
-
-/*
- * 'watch_free' - Free a file descriptor watch
- */
-
-static void
-watch_free (AvahiWatch *watch)
-{
- cupsd_watched_fd_t *watched_fd = watch->watched_fd;
- AvahiCupsPoll *cups_poll = watched_fd->cups_poll;
-
- cupsArrayRemove (watched_fd->watches, watch);
- free (watch);
-
- if (!watched_fd_add_select (watched_fd))
- {
- /* No more watches */
- cupsArrayRemove (cups_poll->watched_fds, watched_fd);
- free (watched_fd);
- }
-}
-
-
-/*
- * 'watch_update' - Update watched events for a file descriptor
- */
-
-static void
-watch_update (AvahiWatch *watch,
- AvahiWatchEvent events)
-{
- watch->events = events;
- watched_fd_add_select (watch->watched_fd);
-}
-
-
-/*
- * 'watch_get_events' - Get events that happened for a file descriptor
- */
-
-static AvahiWatchEvent
-watch_get_events (AvahiWatch *watch)
-{
- return (watch->watched_fd->occurred);
-}
-
-
-/*
- * 'timeout_cb()' - Run a timed Avahi callback
- */
-
-static void
-timeout_cb (cupsd_timeout_t *cupsd_timeout, void *userdata)
-{
- AvahiTimeout *timeout = userdata;
- (timeout->callback) (timeout, timeout->userdata);
-}
-
-
-/*
- * 'timeout_new' - Set a wakeup time
- */
-
-static AvahiTimeout *
-timeout_new (const AvahiPoll *api,
- const struct timeval *tv,
- AvahiTimeoutCallback callback,
- void *userdata)
-{
- AvahiTimeout *timeout;
- AvahiCupsPoll *cups_poll = api->userdata;
-
- timeout = malloc(sizeof(AvahiTimeout));
- if (timeout == NULL)
- return (NULL);
-
- timeout->cups_poll = cups_poll;
- timeout->callback = callback;
- timeout->userdata = userdata;
- timeout->cupsd_timeout = cupsdAddTimeout (tv,
- (cupsd_timeoutfunc_t)timeout_cb,
- timeout);
- cupsArrayAdd (cups_poll->timeouts, timeout);
- return (timeout);
-}
-
-
-/*
- * 'timeout_update' - Update the expiration time for a timeout
- */
-
-static void
-timeout_update (AvahiTimeout *timeout,
- const struct timeval *tv)
-{
- cupsdUpdateTimeout (timeout->cupsd_timeout, tv);
-}
-
-
-/*
- * ' timeout_free' - Free a timeout
- */
-
-static void
-timeout_free (AvahiTimeout *timeout)
-{
- cupsArrayRemove (timeout->cups_poll->timeouts, timeout);
- cupsdRemoveTimeout (timeout->cupsd_timeout);
- free (timeout);
-}
-
-
-/*
- * 'compare_watched_fds' - Compare watched file descriptors for array sorting
- */
-static int
-compare_watched_fds(cupsd_watched_fd_t *p0,
- cupsd_watched_fd_t *p1)
-{
- /*
- * Compare by fd (no two elements have the same fd)
- */
-
- if (p0->fd == p1->fd)
- return 0;
-
- return (p0->fd < p1->fd ? -1 : 1);
-}
-
-
-/*
- * 'avahi_cups_poll_new' - Create a new Avahi main loop object for CUPS
- */
-
-AvahiCupsPoll *
-avahi_cups_poll_new (void)
-{
- AvahiCupsPoll *cups_poll = malloc(sizeof(AvahiCupsPoll));
- if (cups_poll == NULL)
- return (NULL);
-
- cups_poll->watched_fds = cupsArrayNew ((cups_array_func_t)compare_watched_fds,
- NULL);
- cups_poll->timeouts = cupsArrayNew (NULL, NULL);
-
- cups_poll->api.userdata = cups_poll;
- cups_poll->api.watch_new = watch_new;
- cups_poll->api.watch_free = watch_free;
- cups_poll->api.watch_update = watch_update;
- cups_poll->api.watch_get_events = watch_get_events;
-
- cups_poll->api.timeout_new = timeout_new;
- cups_poll->api.timeout_update = timeout_update;
- cups_poll->api.timeout_free = timeout_free;
-
- return (cups_poll);
-}
-
-
-/*
- * 'avahi_cups_poll_free' - Free an Avahi main loop object for CUPS
- */
-void
-avahi_cups_poll_free (AvahiCupsPoll *cups_poll)
-{
- cupsd_watched_fd_t *watched_fd;
-
- for (watched_fd = (cupsd_watched_fd_t*)cupsArrayFirst(cups_poll->watched_fds);
- watched_fd;
- watched_fd = (cupsd_watched_fd_t*)cupsArrayNext(cups_poll->watched_fds))
- cupsArrayClear (watched_fd->watches);
-
- cupsArrayClear (cups_poll->watched_fds);
- cupsArrayClear (cups_poll->timeouts);
-}
-
-
-/*
- * 'avahi_cups_poll_get' - Get the abstract poll API structure
- */
-
-const AvahiPoll *
-avahi_cups_poll_get (AvahiCupsPoll *cups_poll)
-{
- return (&cups_poll->api);
-}
-
-
-#endif /* HAVE_AVAHI ... from top of file */
-
-/*
- * End of "$Id$".
- */
+++ /dev/null
-/*
- * "$Id$"
- *
- * Avahi poll implementation for the CUPS scheduler.
- *
- * Copyright (C) 2010, 2011 Red Hat, Inc.
- * Authors:
- * Tim Waugh <twaugh@redhat.com>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <config.h>
-
-#ifdef HAVE_AVAHI
-# include <avahi-client/client.h>
-# include <avahi-client/publish.h>
-#endif /* HAVE_AVAHI */
-
-#ifdef HAVE_AUTHORIZATION_H
-# include <Security/Authorization.h>
-#endif /* HAVE_AUTHORIZATION_H */
-
-
-#ifdef HAVE_AVAHI
-typedef struct
-{
- AvahiPoll api;
- cups_array_t *watched_fds;
- cups_array_t *timeouts;
-} AvahiCupsPoll;
-#endif /* HAVE_AVAHI */
-
-/*
- * Prototypes...
- */
-
-#ifdef HAVE_AVAHI
-extern AvahiCupsPoll * avahi_cups_poll_new(void);
-extern void avahi_cups_poll_free(AvahiCupsPoll *cups_poll);
-extern const AvahiPoll *avahi_cups_poll_get(AvahiCupsPoll *cups_poll);
-#endif /* HAVE_AVAHI */
-
-
-/*
- * End of "$Id$".
- */
* requests when the request requires system group membership - then the
* client knows the root certificate can/should be used.
*
- * Also, for Mac OS X we also look for @AUTHKEY and add an "authkey"
+ * Also, for OS X we also look for @AUTHKEY and add an "authkey"
* parameter as needed...
*/
{ "AccessLog", &AccessLog, CUPSD_VARTYPE_STRING },
{ "AutoPurgeJobs", &JobAutoPurge, CUPSD_VARTYPE_BOOLEAN },
#ifdef HAVE_DNSSD
- { "BrowseDNSSDRegType", &DNSSDRegType, CUPSD_VARTYPE_STRING },
+ { "BrowseDNSSDSubTypes", &DNSSDSubTypes, CUPSD_VARTYPE_STRING },
#endif /* HAVE_DNSSD */
{ "BrowseWebIF", &BrowseWebIF, CUPSD_VARTYPE_BOOLEAN },
{ "Browsing", &Browsing, CUPSD_VARTYPE_BOOLEAN },
DefaultShared = CUPS_DEFAULT_DEFAULT_SHARED;
#ifdef HAVE_DNSSD
- cupsdSetString(&DNSSDRegType, "_ipp._tcp,_cups");
+ cupsdSetString(&DNSSDSubTypes, "_cups,_print");
#endif /* HAVE_DNSSD */
cupsdSetString(&LPDConfigFile, CUPS_DEFAULT_LPD_CONFIG_FILE);
*
* Configuration file definitions for the CUPS scheduler.
*
- * Copyright 2007-2011 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
#define PRINTCAP_BSD 0 /* Berkeley LPD format */
#define PRINTCAP_SOLARIS 1 /* Solaris lpsched format */
-#define PRINTCAP_PLIST 2 /* Mac OS X plist format */
+#define PRINTCAP_PLIST 2 /* OS X plist format */
/*
slash > printerDriver))
{
/*
- * Map ppd-name to Mac OS X standard locations...
+ * Map ppd-name to OS X standard locations...
*/
snprintf(buffer, bufsize, "/%s", name);
#ifdef __APPLE__
/*
- * Load PPDs from standard Mac OS X locations...
+ * Load PPDs from standard OS X locations...
*/
load_ppds("/Library/Printers",
if (request_id)
{
cupsdSendIPPGroup(IPP_TAG_PRINTER);
-
+
if (send_name)
cupsdSendIPPString(IPP_TAG_NAME, "ppd-name", ppd->record.name);
-
+
if (send_natural_language)
{
cupsdSendIPPString(IPP_TAG_LANGUAGE, "ppd-natural-language",
ppd->record.languages[0]);
-
+
for (i = 1; i < PPD_MAX_LANG && ppd->record.languages[i][0]; i ++)
cupsdSendIPPString(IPP_TAG_LANGUAGE, "", ppd->record.languages[i]);
}
-
+
if (send_make)
cupsdSendIPPString(IPP_TAG_TEXT, "ppd-make", ppd->record.make);
-
+
if (send_make_and_model)
cupsdSendIPPString(IPP_TAG_TEXT, "ppd-make-and-model",
ppd->record.make_and_model);
-
+
if (send_device_id)
cupsdSendIPPString(IPP_TAG_TEXT, "ppd-device-id",
ppd->record.device_id);
-
+
if (send_product)
{
cupsdSendIPPString(IPP_TAG_TEXT, "ppd-product",
ppd->record.products[0]);
-
+
for (i = 1; i < PPD_MAX_PROD && ppd->record.products[i][0]; i ++)
cupsdSendIPPString(IPP_TAG_TEXT, "", ppd->record.products[i]);
}
-
+
if (send_psversion)
{
cupsdSendIPPString(IPP_TAG_TEXT, "ppd-psversion",
ppd->record.psversions[0]);
-
+
for (i = 1; i < PPD_MAX_VERS && ppd->record.psversions[i][0]; i ++)
cupsdSendIPPString(IPP_TAG_TEXT, "", ppd->record.psversions[i]);
}
-
+
if (send_type)
cupsdSendIPPString(IPP_TAG_KEYWORD, "ppd-type",
PPDTypes[ppd->record.type]);
-
+
if (send_model_number)
cupsdSendIPPInteger(IPP_TAG_INTEGER, "ppd-model-number",
ppd->record.model_number);
* Add a dummy entry for the file...
*/
+ (void)filename;
+
add_ppd(name, name, "", "", "", "", "", "", mtime, size, 0,
PPD_TYPE_ARCHIVE, "file");
ChangedPPD = 1;
*
* Sandbox helper for CUPS.
*
- * Copyright 2007-2011 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
*
* These coded instructions, statements, and computer programs are the
* property of Apple Inc. and are protected by Federal copyright
typedef void (*cupsd_selfunc_t)(void *data);
-#ifdef HAVE_AVAHI
-/*
- * Timeout callback function type...
- */
-
-typedef struct _cupsd_timeout_s cupsd_timeout_t;
-typedef void (*cupsd_timeoutfunc_t)(cupsd_timeout_t *timeout, void *data);
-#endif /* HAVE_AVAHI */
-
/*
* Globals...
/* Running from launchd */
#endif /* HAVE_LAUNCH_H */
-#ifdef HAVE_AVAHI
-VAR cups_array_t *Timeouts VALUE(NULL);
- /* Timed callbacks for main loop */
-#endif /* HAVE_AVAHI */
-
-
/*
* Prototypes...
extern void cupsdStartServer(void);
extern void cupsdStopServer(void);
-#ifdef HAVE_AVAHI
-extern cupsd_timeout_t *cupsdAddTimeout(const struct timeval *tv,
- cupsd_timeoutfunc_t cb,
- void *data);
-extern cupsd_timeout_t *cupsdNextTimeout(long *delay);
-extern void cupsdRemoveTimeout(cupsd_timeout_t *timeout);
-extern void cupsdRunTimeout(cupsd_timeout_t *timeout);
-extern void cupsdUpdateTimeout(cupsd_timeout_t *timeout,
- const struct timeval *tv);
-#endif /* HAVE_AVAHI */
-
-extern int cupsdRemoveFile(const char *filename);
-
/*
* End of "$Id: cupsd.h 7928 2008-09-10 22:14:22Z mike $".
*
* Filtering program for CUPS.
*
- * Copyright 2007-2011 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 1997-2006 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
static int read_cupsd_conf(const char *filename);
static void set_string(char **s, const char *val);
static void sighandler(int sig);
-static void usage(const char *command, const char *opt)
- __attribute__((noreturn));
+static void usage(const char *opt) __attribute__((noreturn));
/*
if (i < argc && !infile)
infile = argv[i];
else
- usage(command, opt);
+ usage(opt);
break;
case 'a' : /* Specify option... */
if (i < argc)
num_options = cupsParseOptions(argv[i], num_options, &options);
else
- usage(command, opt);
+ usage(opt);
break;
case 'c' : /* Specify cupsd.conf file location... */
strlcpy(cupsdconf, argv[i], sizeof(cupsdconf));
}
else
- usage(command, opt);
+ usage(opt);
break;
case 'd' : /* Specify the real printer name */
if (i < argc)
printer = argv[i];
else
- usage(command, opt);
+ usage(opt);
break;
case 'D' : /* Delete input file after conversion */
if (i < argc && !infile)
infile = argv[i];
else
- usage(command, opt);
+ usage(opt);
break;
case 'i' : /* Specify source MIME type... */
if (i < argc)
{
if (sscanf(argv[i], "%15[^/]/%255s", super, type) != 2)
- usage(command, opt);
+ usage(opt);
srctype = argv[i];
}
else
- usage(command, opt);
+ usage(opt);
break;
case 'j' : /* Get job file or specify destination MIME type... */
infile = TempFile;
}
else
- usage(command, opt);
+ usage(opt);
break;
}
if (i < argc)
{
if (sscanf(argv[i], "%15[^/]/%255s", super, type) != 2)
- usage(command, opt);
+ usage(opt);
dsttype = argv[i];
}
else
- usage(command, opt);
+ usage(opt);
break;
case 'n' : /* Specify number of copies... */
num_options = cupsAddOption("copies", argv[i], num_options,
&options);
else
- usage(command, opt);
+ usage(opt);
break;
case 'o' : /* Specify option(s) or output filename */
if (!strcmp(command, "convert"))
{
if (outfile)
- usage(command, NULL);
+ usage(NULL);
else
outfile = argv[i];
}
&options);
}
else
- usage(command, opt);
+ usage(opt);
break;
case 'p' : /* Specify PPD file... */
if (i < argc)
ppdfile = argv[i];
else
- usage(command, opt);
+ usage(opt);
break;
case 't' : /* Specify title... */
if (i < argc)
title = argv[i];
else
- usage(command, opt);
+ usage(opt);
break;
case 'u' : /* Delete PPD file after conversion */
if (i < argc)
user = argv[i];
else
- usage(command, opt);
+ usage(opt);
break;
default : /* Something we don't understand... */
- usage(command, opt);
+ usage(opt);
break;
}
}
if (strcmp(command, "convert"))
infile = argv[i];
else
- {
- _cupsLangPuts(stderr,
- _("convert: Use the -f option to specify a file to "
- "convert."));
- usage(command, NULL);
- }
+ usage(NULL);
}
else
{
_cupsLangPuts(stderr,
_("cupsfilter: Only one filename can be specified."));
- usage(command, NULL);
+ usage(NULL);
}
if (!infile && !srctype)
- usage(command, NULL);
+ usage(NULL);
if (!title)
{
*/
static void
-usage(const char *command, /* I - Command name */
- const char *opt) /* I - Incorrect option, if any */
+usage(const char *opt) /* I - Incorrect option, if any */
{
if (opt)
- _cupsLangPrintf(stderr, _("%s: Unknown option \"%c\"."), command, *opt);
-
- if (!strcmp(command, "cupsfilter"))
- {
- _cupsLangPuts(stdout, _("Usage: cupsfilter [ options ] filename"));
- _cupsLangPuts(stdout, _("Options:"));
- _cupsLangPuts(stdout, _(" -D Remove the input file "
- "when finished."));
- _cupsLangPuts(stdout, _(" -P filename.ppd Set PPD file."));
- _cupsLangPuts(stdout, _(" -U username Set username for job."));
- _cupsLangPuts(stdout, _(" -c cupsd.conf Set cupsd.conf file to "
- "use."));
- _cupsLangPuts(stdout, _(" -d printer Use the named "
- "printer."));
- _cupsLangPuts(stdout, _(" -e Use every filter from "
- "the PPD file."));
- _cupsLangPuts(stdout, _(" -i mime/type Set input MIME type "
- "(otherwise auto-typed)."));
- _cupsLangPuts(stdout, _(" -j job-id[,N] Filter file N from the "
- "specified job (default is file 1)."));
- _cupsLangPuts(stdout, _(" -m mime/type Set output MIME type "
- "(otherwise application/pdf)."));
- _cupsLangPuts(stdout, _(" -n copies Set number of copies."));
- _cupsLangPuts(stdout, _(" -o name=value Set option(s)."));
- _cupsLangPuts(stdout, _(" -p filename.ppd Set PPD file."));
- _cupsLangPuts(stdout, _(" -t title Set title."));
- _cupsLangPuts(stdout, _(" -u Remove the PPD file "
- "when finished."));
- }
- else
- {
- _cupsLangPuts(stdout, _("Usage: convert [ options ]"));
- _cupsLangPuts(stdout, _("Options:"));
- _cupsLangPuts(stdout, _(" -D Remove the input file "
- "when finished."));
- _cupsLangPuts(stdout, _(" -J title Set title."));
- _cupsLangPuts(stdout, _(" -P filename.ppd Set PPD file."));
- _cupsLangPuts(stdout, _(" -U username Set username for job."));
- _cupsLangPuts(stdout, _(" -a 'name=value ...' Set option(s)."));
- _cupsLangPuts(stdout, _(" -c copies Set number of copies."));
- _cupsLangPuts(stdout, _(" -d printer Use the named "
- "printer."));
- _cupsLangPuts(stdout, _(" -e Use every filter from "
- "the PPD file."));
- _cupsLangPuts(stdout, _(" -f filename Set file to be "
- "converted (otherwise stdin)."));
- _cupsLangPuts(stdout, _(" -i mime/type Set input MIME type "
- "(otherwise auto-typed)."));
- _cupsLangPuts(stdout, _(" -j mime/type Set output MIME type "
- "(otherwise application/pdf)."));
- _cupsLangPuts(stdout, _(" -o filename Set file to be "
- "generated (otherwise stdout)."));
- _cupsLangPuts(stdout, _(" -u Remove the PPD file "
- "when finished."));
- }
+ _cupsLangPrintf(stderr, _("%s: Unknown option \"%c\"."), "cupsfilter",
+ *opt);
+
+ _cupsLangPuts(stdout, _("Usage: cupsfilter [ options ] filename"));
+ _cupsLangPuts(stdout, _("Options:"));
+ _cupsLangPuts(stdout, _(" -D Remove the input file "
+ "when finished."));
+ _cupsLangPuts(stdout, _(" -P filename.ppd Set PPD file."));
+ _cupsLangPuts(stdout, _(" -U username Specify username."));
+ _cupsLangPuts(stdout, _(" -c cupsd.conf Set cupsd.conf file to "
+ "use."));
+ _cupsLangPuts(stdout, _(" -d printer Use the named "
+ "printer."));
+ _cupsLangPuts(stdout, _(" -e Use every filter from "
+ "the PPD file."));
+ _cupsLangPuts(stdout, _(" -i mime/type Set input MIME type "
+ "(otherwise auto-typed)."));
+ _cupsLangPuts(stdout, _(" -j job-id[,N] Filter file N from the "
+ "specified job (default is file 1)."));
+ _cupsLangPuts(stdout, _(" -m mime/type Set output MIME type "
+ "(otherwise application/pdf)."));
+ _cupsLangPuts(stdout, _(" -n copies Set number of copies."));
+ _cupsLangPuts(stdout, _(" -o name=value Set option(s)."));
+ _cupsLangPuts(stdout, _(" -p filename.ppd Set PPD file."));
+ _cupsLangPuts(stdout, _(" -t title Set title."));
+ _cupsLangPuts(stdout, _(" -u Remove the PPD file "
+ "when finished."));
exit(1);
}
*
* Directory services routines for the CUPS scheduler.
*
- * Copyright 2007-2011 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
*
* Contents:
*
- * cupsdDeregisterPrinter() - Stop sending broadcast information for a local
- * printer and remove any pending references to
- * remote printers.
- * cupsdRegisterPrinter() - Start sending broadcast information for a
- * printer or update the broadcast contents.
- * cupsdStartBrowsing() - Start sending and receiving broadcast
- * information.
- * cupsdStopBrowsing() - Stop sending and receiving broadcast
- * information.
- * cupsdUpdateDNSSDName() - Update the computer name we use for browsing...
- * dnssdAddAlias() - Add a DNS-SD alias name.
- * dnssdBuildTxtRecord() - Build a TXT record from printer info.
- * dnssdDeregisterPrinter() - Stop sending broadcast information for a
- * printer.
- * dnssdPackTxtRecord() - Pack an array of key/value pairs into the TXT
- * record format.
- * dnssdRegisterCallback() - DNSServiceRegister callback.
- * dnssdRegisterPrinter() - Start sending broadcast information for a
- * printer or update the broadcast contents.
- * dnssdStop() - Stop all DNS-SD registrations.
- * dnssdUpdate() - Handle DNS-SD queries.
- * get_auth_info_required() - Get the auth-info-required value to advertise.
- * get_hostconfig() - Get an /etc/hostconfig service setting.
- * update_lpd() - Update the LPD configuration as needed.
- * update_smb() - Update the SMB configuration as needed.
+ * cupsdDeregisterPrinter() - Stop sending broadcast information for a local
+ * printer and remove any pending references to
+ * remote printers.
+ * cupsdRegisterPrinter() - Start sending broadcast information for a
+ * printer or update the broadcast contents.
+ * cupsdStartBrowsing() - Start sending and receiving broadcast
+ * information.
+ * cupsdStopBrowsing() - Stop sending and receiving broadcast
+ * information.
+ * cupsdUpdateDNSSDName() - Update the computer name we use for
+ * browsing...
+ * dnssdAddAlias() - Add a DNS-SD alias name.
+ * dnssdBuildTxtRecord() - Build a TXT record from printer info.
+ * dnssdDeregisterInstance() - Deregister a DNS-SD service instance.
+ * dnssdDeregisterPrinter() - Deregister all services for a printer.
+ * dnssdErrorString() - Return an error string for an error code.
+ * dnssdRegisterCallback() - Free a TXT record.
+ * dnssdRegisterCallback() - DNSServiceRegister callback.
+ * dnssdRegisterInstance() - Register an instance of a printer service.
+ * dnssdRegisterPrinter() - Start sending broadcast information for a
+ * printer or update the broadcast contents.
+ * dnssdStop() - Stop all DNS-SD registrations.
+ * dnssdUpdate() - Handle DNS-SD queries.
+ * get_auth_info_required() - Get the auth-info-required value to advertise.
+ * get_hostconfig() - Get an /etc/hostconfig service setting.
+ * update_lpd() - Update the LPD configuration as needed.
+ * update_smb() - Update the SMB configuration as needed.
*/
/*
#include "cupsd.h"
#include <grp.h>
-#ifdef HAVE_DNSSD
-# include <dns_sd.h>
-# ifdef __APPLE__
-# include <nameser.h>
-# ifdef HAVE_COREFOUNDATION
-# include <CoreFoundation/CoreFoundation.h>
-# endif /* HAVE_COREFOUNDATION */
-# ifdef HAVE_SYSTEMCONFIGURATION
-# include <SystemConfiguration/SystemConfiguration.h>
-# endif /* HAVE_SYSTEMCONFIGURATION */
-# endif /* __APPLE__ */
-#endif /* HAVE_DNSSD */
+#if defined(HAVE_DNSSD) && defined(__APPLE__)
+# include <nameser.h>
+# ifdef HAVE_COREFOUNDATION
+# include <CoreFoundation/CoreFoundation.h>
+# endif /* HAVE_COREFOUNDATION */
+# ifdef HAVE_SYSTEMCONFIGURATION
+# include <SystemConfiguration/SystemConfiguration.h>
+# endif /* HAVE_SYSTEMCONFIGURATION */
+#endif /* HAVE_DNSSD && __APPLE__ */
/*
* Local functions...
*/
-#ifdef HAVE_DNSSD
-static char *get_auth_info_required(cupsd_printer_t *p, char *buffer,
- size_t bufsize);
-#endif /* HAVE_DNSSD */
+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+static char *get_auth_info_required(cupsd_printer_t *p,
+ char *buffer, size_t bufsize);
+#endif /* HAVE_DNSSD || HAVE_AVAHI */
#ifdef __APPLE__
-static int get_hostconfig(const char *name);
+static int get_hostconfig(const char *name);
#endif /* __APPLE__ */
-static void update_lpd(int onoff);
-static void update_smb(int onoff);
+static void update_lpd(int onoff);
+static void update_smb(int onoff);
-#ifdef HAVE_DNSSD
+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
# ifdef HAVE_COREFOUNDATION
-static void dnssdAddAlias(const void *key, const void *value,
- void *context);
+static void dnssdAddAlias(const void *key, const void *value,
+ void *context);
# endif /* HAVE_COREFOUNDATION */
-static char *dnssdBuildTxtRecord(int *txt_len, cupsd_printer_t *p,
- int for_lpd);
-static void dnssdDeregisterPrinter(cupsd_printer_t *p);
-static char *dnssdPackTxtRecord(int *txt_len, char *keyvalue[][2],
- int count);
-static void dnssdRegisterCallback(DNSServiceRef sdRef,
- DNSServiceFlags flags,
- DNSServiceErrorType errorCode,
- const char *name, const char *regtype,
- const char *domain, void *context);
-static void dnssdRegisterPrinter(cupsd_printer_t *p);
-static void dnssdStop(void);
-static void dnssdUpdate(void);
-#endif /* HAVE_DNSSD */
+static cupsd_txt_t dnssdBuildTxtRecord(cupsd_printer_t *p, int for_lpd);
+static void dnssdDeregisterInstance(cupsd_srv_t *srv);
+static void dnssdDeregisterPrinter(cupsd_printer_t *p,
+ int clear_name);
+static const char *dnssdErrorString(int error);
+static void dnssdFreeTxtRecord(cupsd_txt_t *txt);
+# ifdef HAVE_DNSSD
+static void dnssdRegisterCallback(DNSServiceRef sdRef,
+ DNSServiceFlags flags,
+ DNSServiceErrorType errorCode,
+ const char *name,
+ const char *regtype,
+ const char *domain,
+ void *context);
+# else
+static void dnssdRegisterCallback(AvahiEntryGroup *p,
+ AvahiEntryGroupState state,
+ void *context);
+# endif /* HAVE_DNSSD */
+static int dnssdRegisterInstance(cupsd_srv_t *srv,
+ cupsd_printer_t *p,
+ char *name, const char *type,
+ const char *subtypes, int port,
+ cupsd_txt_t *txt, int commit);
+static void dnssdRegisterPrinter(cupsd_printer_t *p);
+static void dnssdStop(void);
+# ifdef HAVE_DNSSD
+static void dnssdUpdate(void);
+# endif /* HAVE_DNSSD */
+#endif /* HAVE_DNSSD || HAVE_AVAHI */
/*
* Announce the deletion...
*/
-#ifdef HAVE_DNSSD
- if (removeit && (BrowseLocalProtocols & BROWSE_DNSSD) && DNSSDRef)
- dnssdDeregisterPrinter(p);
-#endif /* HAVE_DNSSD */
+ if (removeit && (BrowseLocalProtocols & BROWSE_DNSSD) && DNSSDMaster)
+ dnssdDeregisterPrinter(p, 1);
}
(p->type & (CUPS_PRINTER_REMOTE | CUPS_PRINTER_SCANNER)))
return;
-#ifdef HAVE_DNSSD
- if ((BrowseLocalProtocols & BROWSE_DNSSD) && DNSSDRef)
+ if ((BrowseLocalProtocols & BROWSE_DNSSD) && DNSSDMaster)
dnssdRegisterPrinter(p);
-#endif /* HAVE_DNSSD */
}
if (!Browsing || !BrowseLocalProtocols)
return;
-#ifdef HAVE_DNSSD
+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
if (BrowseLocalProtocols & BROWSE_DNSSD)
{
- DNSServiceErrorType error; /* Error from service creation */
cupsd_listener_t *lis; /* Current listening socket */
-
+# ifdef HAVE_DNSSD
+ DNSServiceErrorType error; /* Error from service creation */
/*
* First create a "master" connection for all registrations...
*/
- if ((error = DNSServiceCreateConnection(&DNSSDRef))
+ if ((error = DNSServiceCreateConnection(&DNSSDMaster))
!= kDNSServiceErr_NoError)
{
cupsdLogMessage(CUPSD_LOG_ERROR,
* Add the master connection to the select list...
*/
- int fd = DNSServiceRefSockFD(DNSSDRef);
+ int fd = DNSServiceRefSockFD(DNSSDMaster);
fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC);
cupsdAddSelect(fd, (cupsd_selfunc_t)dnssdUpdate, NULL, NULL);
+ }
- /*
- * Then get the port we use for registrations. If we are not listening
- * on any non-local ports, there is no sense sharing local printers via
- * Bonjour...
- */
+# else /* HAVE_AVAHI */
+ if ((DNSSDMaster = avahi_threaded_poll_new()) == NULL)
+ {
+ cupsdLogMessage(CUPSD_LOG_ERROR, "Unable to create DNS-SD thread.");
- DNSSDPort = 0;
+ if (FatalErrors & CUPSD_FATAL_BROWSE)
+ cupsdEndProcess(getpid(), 0);
+ }
+ else
+ {
+ int error; /* Error code, if any */
- for (lis = (cupsd_listener_t *)cupsArrayFirst(Listeners);
- lis;
- lis = (cupsd_listener_t *)cupsArrayNext(Listeners))
+ DNSSDClient = avahi_client_new(avahi_threaded_poll_get(DNSSDMaster), 0,
+ NULL, NULL, &error);
+
+ if (DNSSDClient == NULL)
{
- if (httpAddrLocalhost(&(lis->address)))
- continue;
+ cupsdLogMessage(CUPSD_LOG_ERROR,
+ "Unable to communicate with avahi-daemon: %s",
+ dnssdErrorString(error));
- DNSSDPort = _httpAddrPort(&(lis->address));
- break;
+ if (FatalErrors & CUPSD_FATAL_BROWSE)
+ cupsdEndProcess(getpid(), 0);
}
- /*
- * Set the computer name and register the web interface...
- */
+ avahi_threaded_poll_start(DNSSDMaster);
+ }
+# endif /* HAVE_DNSSD */
+
+ /*
+ * Then get the port we use for registrations. If we are not listening
+ * on any non-local ports, there is no sense sharing local printers via
+ * Bonjour...
+ */
+
+ DNSSDPort = 0;
+
+ for (lis = (cupsd_listener_t *)cupsArrayFirst(Listeners);
+ lis;
+ lis = (cupsd_listener_t *)cupsArrayNext(Listeners))
+ {
+ if (httpAddrLocalhost(&(lis->address)))
+ continue;
- cupsdUpdateDNSSDName();
+ DNSSDPort = _httpAddrPort(&(lis->address));
+ break;
}
+
+ /*
+ * Set the computer name and register the web interface...
+ */
+
+ cupsdUpdateDNSSDName();
}
-#endif /* HAVE_DNSSD */
+#endif /* HAVE_DNSSD || HAVE_AVAHI */
/*
* Enable LPD and SMB printer sharing as needed through external programs...
* Shut down browsing sockets...
*/
-#ifdef HAVE_DNSSD
- if ((BrowseLocalProtocols & BROWSE_DNSSD) && DNSSDRef)
+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
+ if ((BrowseLocalProtocols & BROWSE_DNSSD) && DNSSDMaster)
dnssdStop();
-#endif /* HAVE_DNSSD */
+#endif /* HAVE_DNSSD || HAVE_AVAHI */
/*
* Disable LPD and SMB printer sharing as needed through external programs...
}
-#ifdef HAVE_DNSSD
+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
/*
* 'cupsdUpdateDNSSDName()' - Update the computer name we use for browsing...
*/
void
cupsdUpdateDNSSDName(void)
{
- DNSServiceErrorType error; /* Error from service creation */
char webif[1024]; /* Web interface share name */
# ifdef HAVE_SYSTEMCONFIGURATION
SCDynamicStoreRef sc; /* Context for dynamic store */
}
else
# endif /* HAVE_SYSTEMCONFIGURATION */
+# ifdef HAVE_AVAHI
+ {
+ cupsdSetString(&DNSSDComputerName, avahi_client_get_host_name(DNSSDClient));
+ cupsdSetString(&DNSSDHostName,
+ avahi_client_get_host_name_fqdn(DNSSDClient));
+ }
+# else /* HAVE_DNSSD */
{
cupsdSetString(&DNSSDComputerName, ServerName);
cupsdSetString(&DNSSDHostName, ServerName);
}
+# endif /* HAVE_AVAHI */
/*
* Then (re)register the web interface if enabled...
if (DNSSDComputerName)
snprintf(webif, sizeof(webif), "CUPS @ %s", DNSSDComputerName);
else
- strlcpy(webif, "CUPS Web Interface", sizeof(webif));
-
- if (WebIFRef)
- DNSServiceRefDeallocate(WebIFRef);
-
- WebIFRef = DNSSDRef;
- if ((error = DNSServiceRegister(&WebIFRef,
- kDNSServiceFlagsShareConnection,
- 0, webif, "_http._tcp", NULL,
- NULL, htons(DNSSDPort), 7,
- "\006path=/", dnssdRegisterCallback,
- NULL)) != kDNSServiceErr_NoError)
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "DNS-SD web interface registration failed: %d", error);
+ strlcpy(webif, "CUPS", sizeof(webif));
+
+ dnssdDeregisterInstance(&WebIFSrv);
+ dnssdRegisterInstance(&WebIFSrv, NULL, webif, "_http._tcp", "_printer",
+ DNSSDPort, NULL, 1);
}
}
-#endif /* HAVE_DNSSD */
-#ifdef HAVE_DNSSD
# ifdef HAVE_COREFOUNDATION
/*
* 'dnssdAddAlias()' - Add a DNS-SD alias name.
* 'dnssdBuildTxtRecord()' - Build a TXT record from printer info.
*/
-static char * /* O - TXT record */
+static cupsd_txt_t /* O - TXT record */
dnssdBuildTxtRecord(
- int *txt_len, /* O - TXT record length */
cupsd_printer_t *p, /* I - Printer information */
int for_lpd) /* I - 1 = LPD, 0 = IPP */
{
- int i; /* Looping var */
+ int i, /* Looping var */
+ count; /* Count of key/value pairs */
char admin_hostname[256], /* .local hostname for admin page */
adminurl_str[256], /* URL for the admin page */
type_str[32], /* Type to string buffer */
rp_str[1024], /* Queue name string buffer */
air_str[1024], /* auth-info-required string buffer */
*keyvalue[32][2]; /* Table of key/value pairs */
+ cupsd_txt_t txt; /* TXT record */
/*
* Load up the key value pairs...
*/
- i = 0;
+ count = 0;
- keyvalue[i ][0] = "txtvers";
- keyvalue[i++][1] = "1";
-
- keyvalue[i ][0] = "qtotal";
- keyvalue[i++][1] = "1";
-
- keyvalue[i ][0] = "rp";
- keyvalue[i++][1] = rp_str;
- if (for_lpd)
- strlcpy(rp_str, p->name, sizeof(rp_str));
- else
- snprintf(rp_str, sizeof(rp_str), "%s/%s",
- (p->type & CUPS_PRINTER_CLASS) ? "classes" : "printers", p->name);
-
- keyvalue[i ][0] = "ty";
- keyvalue[i++][1] = p->make_model ? p->make_model : "Unknown";
+ if (!for_lpd || (BrowseLocalProtocols & BROWSE_LPD))
+ {
+ keyvalue[count ][0] = "txtvers";
+ keyvalue[count++][1] = "1";
- snprintf(admin_hostname, sizeof(admin_hostname), "%s.local.", DNSSDHostName);
- httpAssembleURIf(HTTP_URI_CODING_ALL, adminurl_str, sizeof(adminurl_str),
- "http", NULL, admin_hostname, DNSSDPort, "/%s/%s",
- (p->type & CUPS_PRINTER_CLASS) ? "classes" : "printers",
- p->name);
- keyvalue[i ][0] = "adminurl";
- keyvalue[i++][1] = adminurl_str;
+ keyvalue[count ][0] = "qtotal";
+ keyvalue[count++][1] = "1";
- keyvalue[i ][0] = "note";
- keyvalue[i++][1] = p->location ? p->location : "";
+ keyvalue[count ][0] = "rp";
+ keyvalue[count++][1] = rp_str;
+ if (for_lpd)
+ strlcpy(rp_str, p->name, sizeof(rp_str));
+ else
+ snprintf(rp_str, sizeof(rp_str), "%s/%s",
+ (p->type & CUPS_PRINTER_CLASS) ? "classes" : "printers",
+ p->name);
- keyvalue[i ][0] = "priority";
- keyvalue[i++][1] = for_lpd ? "100" : "0";
+ keyvalue[count ][0] = "ty";
+ keyvalue[count++][1] = p->make_model ? p->make_model : "Unknown";
- keyvalue[i ][0] = "product";
- keyvalue[i++][1] = p->pc && p->pc->product ? p->pc->product : "Unknown";
+ if (strstr(DNSSDHostName, ".local"))
+ strlcpy(admin_hostname, DNSSDHostName, sizeof(admin_hostname));
+ else
+ snprintf(admin_hostname, sizeof(admin_hostname), "%s.local.",
+ DNSSDHostName);
+ httpAssembleURIf(HTTP_URI_CODING_ALL, adminurl_str, sizeof(adminurl_str),
+# ifdef HAVE_SSL
+ "https",
+# else
+ "http",
+# endif /* HAVE_SSL */
+ NULL, admin_hostname, DNSSDPort, "/%s/%s",
+ (p->type & CUPS_PRINTER_CLASS) ? "classes" : "printers",
+ p->name);
+ keyvalue[count ][0] = "adminurl";
+ keyvalue[count++][1] = adminurl_str;
+
+ if (p->location)
+ {
+ keyvalue[count ][0] = "note";
+ keyvalue[count++][1] = p->location;
+ }
- keyvalue[i ][0] = "pdl";
- keyvalue[i++][1] = p->pdl ? p->pdl : "application/postscript";
+ keyvalue[count ][0] = "priority";
+ keyvalue[count++][1] = for_lpd ? "100" : "0";
- if (get_auth_info_required(p, air_str, sizeof(air_str)))
- {
- keyvalue[i ][0] = "air";
- keyvalue[i++][1] = air_str;
- }
+ keyvalue[count ][0] = "product";
+ keyvalue[count++][1] = p->pc && p->pc->product ? p->pc->product : "Unknown";
- keyvalue[i ][0] = "UUID";
- keyvalue[i++][1] = p->uuid + 9;
+ keyvalue[count ][0] = "pdl";
+ keyvalue[count++][1] = p->pdl ? p->pdl : "application/postscript";
-#ifdef HAVE_SSL
- keyvalue[i ][0] = "TLS";
- keyvalue[i++][1] = "1.2";
-#endif /* HAVE_SSL */
+ if (get_auth_info_required(p, air_str, sizeof(air_str)))
+ {
+ keyvalue[count ][0] = "air";
+ keyvalue[count++][1] = air_str;
+ }
- keyvalue[i ][0] = "Transparent";
- keyvalue[i++][1] = "F";
+ keyvalue[count ][0] = "UUID";
+ keyvalue[count++][1] = p->uuid + 9;
- keyvalue[i ][0] = "Binary";
- keyvalue[i++][1] = "F";
+ #ifdef HAVE_SSL
+ keyvalue[count ][0] = "TLS";
+ keyvalue[count++][1] = "1.2";
+ #endif /* HAVE_SSL */
- keyvalue[i ][0] = "Fax";
- keyvalue[i++][1] = (p->type & CUPS_PRINTER_FAX) ? "T" : "F";
+ if (p->type & CUPS_PRINTER_FAX)
+ {
+ keyvalue[count ][0] = "Fax";
+ keyvalue[count++][1] = (p->type & CUPS_PRINTER_FAX) ? "T" : "F";
+ }
- keyvalue[i ][0] = "Color";
- keyvalue[i++][1] = (p->type & CUPS_PRINTER_COLOR) ? "T" : "F";
+ if (p->type & CUPS_PRINTER_COLOR)
+ {
+ keyvalue[count ][0] = "Color";
+ keyvalue[count++][1] = (p->type & CUPS_PRINTER_COLOR) ? "T" : "F";
+ }
- keyvalue[i ][0] = "Duplex";
- keyvalue[i++][1] = (p->type & CUPS_PRINTER_DUPLEX) ? "T" : "F";
+ if (p->type & CUPS_PRINTER_DUPLEX)
+ {
+ keyvalue[count ][0] = "Duplex";
+ keyvalue[count++][1] = (p->type & CUPS_PRINTER_DUPLEX) ? "T" : "F";
+ }
- keyvalue[i ][0] = "Staple";
- keyvalue[i++][1] = (p->type & CUPS_PRINTER_STAPLE) ? "T" : "F";
+ if (p->type & CUPS_PRINTER_STAPLE)
+ {
+ keyvalue[count ][0] = "Staple";
+ keyvalue[count++][1] = (p->type & CUPS_PRINTER_STAPLE) ? "T" : "F";
+ }
- keyvalue[i ][0] = "Copies";
- keyvalue[i++][1] = (p->type & CUPS_PRINTER_COPIES) ? "T" : "F";
+ if (p->type & CUPS_PRINTER_COPIES)
+ {
+ keyvalue[count ][0] = "Copies";
+ keyvalue[count++][1] = (p->type & CUPS_PRINTER_COPIES) ? "T" : "F";
+ }
- keyvalue[i ][0] = "Collate";
- keyvalue[i++][1] = (p->type & CUPS_PRINTER_COLLATE) ? "T" : "F";
+ if (p->type & CUPS_PRINTER_COLLATE)
+ {
+ keyvalue[count ][0] = "Collate";
+ keyvalue[count++][1] = (p->type & CUPS_PRINTER_COLLATE) ? "T" : "F";
+ }
- keyvalue[i ][0] = "Punch";
- keyvalue[i++][1] = (p->type & CUPS_PRINTER_PUNCH) ? "T" : "F";
+ if (p->type & CUPS_PRINTER_PUNCH)
+ {
+ keyvalue[count ][0] = "Punch";
+ keyvalue[count++][1] = (p->type & CUPS_PRINTER_PUNCH) ? "T" : "F";
+ }
- keyvalue[i ][0] = "Bind";
- keyvalue[i++][1] = (p->type & CUPS_PRINTER_BIND) ? "T" : "F";
+ if (p->type & CUPS_PRINTER_BIND)
+ {
+ keyvalue[count ][0] = "Bind";
+ keyvalue[count++][1] = (p->type & CUPS_PRINTER_BIND) ? "T" : "F";
+ }
- keyvalue[i ][0] = "Sort";
- keyvalue[i++][1] = (p->type & CUPS_PRINTER_SORT) ? "T" : "F";
+ if (p->type & CUPS_PRINTER_SORT)
+ {
+ keyvalue[count ][0] = "Sort";
+ keyvalue[count++][1] = (p->type & CUPS_PRINTER_SORT) ? "T" : "F";
+ }
- keyvalue[i ][0] = "Scan";
- keyvalue[i++][1] = (p->type & CUPS_PRINTER_MFP) ? "T" : "F";
+ if (p->type & CUPS_PRINTER_MFP)
+ {
+ keyvalue[count ][0] = "Scan";
+ keyvalue[count++][1] = (p->type & CUPS_PRINTER_MFP) ? "T" : "F";
+ }
- snprintf(type_str, sizeof(type_str), "0x%X", p->type | CUPS_PRINTER_REMOTE);
- snprintf(state_str, sizeof(state_str), "%d", p->state);
+ snprintf(type_str, sizeof(type_str), "0x%X", p->type | CUPS_PRINTER_REMOTE);
+ snprintf(state_str, sizeof(state_str), "%d", p->state);
- keyvalue[i ][0] = "printer-state";
- keyvalue[i++][1] = state_str;
+ keyvalue[count ][0] = "printer-state";
+ keyvalue[count++][1] = state_str;
- keyvalue[i ][0] = "printer-type";
- keyvalue[i++][1] = type_str;
+ keyvalue[count ][0] = "printer-type";
+ keyvalue[count++][1] = type_str;
+ }
/*
* Then pack them into a proper txt record...
*/
- return (dnssdPackTxtRecord(txt_len, keyvalue, i));
+# ifdef HAVE_DNSSD
+ TXTRecordCreate(&txt, 0, NULL);
+
+ for (i = 0; i < count; i ++)
+ {
+ size_t len = strlen(keyvalue[i][1]);
+
+ if (len < 256)
+ TXTRecordSetValue(&txt, keyvalue[i][0], (uint8_t)len, keyvalue[i][1]);
+ }
+
+# else
+ for (i = 0, txt = NULL; i < count; i ++)
+ txt = avahi_string_list_add_printf(txt, "%s=%s", keyvalue[i][0],
+ keyvalue[i][1]);
+# endif /* HAVE_DNSSD */
+
+ return (txt);
}
/*
- * 'dnssdDeregisterPrinter()' - Stop sending broadcast information for a
- * printer.
+ * 'dnssdDeregisterInstance()' - Deregister a DNS-SD service instance.
*/
static void
-dnssdDeregisterPrinter(
- cupsd_printer_t *p) /* I - Printer */
+dnssdDeregisterInstance(
+ cupsd_srv_t *srv) /* I - Service */
{
- cupsdLogMessage(CUPSD_LOG_DEBUG2, "dnssdDeregisterPrinter(%s)", p->name);
+ if (!srv || !*srv)
+ return;
- /*
- * Closing the socket deregisters the service
- */
+# ifdef HAVE_DNSSD
+ DNSServiceRefDeallocate(*srv);
- if (p->ipp_ref)
- {
- DNSServiceRefDeallocate(p->ipp_ref);
- p->ipp_ref = NULL;
- }
+# else /* HAVE_AVAHI */
+ avahi_threaded_poll_lock(DNSSDMaster);
+ avahi_entry_group_free(*srv);
+ avahi_threaded_poll_unlock(DNSSDMaster);
+# endif /* HAVE_DNSSD */
- if (p->ipp_txt)
- {
- /*
- * p->ipp_txt is malloc'd, not _cupsStrAlloc'd...
- */
+ *srv = NULL;
+}
- free(p->ipp_txt);
- p->ipp_txt = NULL;
- }
- if (p->printer_ref)
- {
- DNSServiceRefDeallocate(p->printer_ref);
- p->printer_ref = NULL;
- }
+/*
+ * 'dnssdDeregisterPrinter()' - Deregister all services for a printer.
+ */
- if (p->printer_txt)
- {
- /*
- * p->printer_txt is malloc'd, not _cupsStrAlloc'd...
- */
+static void
+dnssdDeregisterPrinter(
+ cupsd_printer_t *p, /* I - Printer */
+ int clear_name) /* I - Clear the name? */
- free(p->printer_txt);
- p->printer_txt = NULL;
+{
+ cupsdLogMessage(CUPSD_LOG_DEBUG2,
+ "dnssdDeregisterPrinter(p=%p(%s), clear_name=%d)", p, p->name,
+ clear_name);
+
+ if (p->ipp_srv)
+ {
+ dnssdDeregisterInstance(&p->ipp_srv);
+
+# ifdef HAVE_DNSSD
+# ifdef HAVE_SSL
+ dnssdDeregisterInstance(&p->ipps_srv);
+# endif /* HAVE_SSL */
+ dnssdDeregisterInstance(&p->printer_srv);
+# endif /* HAVE_DNSSD */
}
/*
- * Remove the printer from the array of DNS-SD printers, then clear the
+ * Remove the printer from the array of DNS-SD printers but keep the
* registered name...
*/
cupsArrayRemove(DNSSDPrinters, p);
- cupsdClearString(&p->reg_name);
+
+ /*
+ * Optionally clear the service name...
+ */
+
+ if (clear_name)
+ cupsdClearString(&p->reg_name);
}
/*
- * 'dnssdPackTxtRecord()' - Pack an array of key/value pairs into the
- * TXT record format.
+ * 'dnssdErrorString()' - Return an error string for an error code.
*/
-static char * /* O - TXT record */
-dnssdPackTxtRecord(int *txt_len, /* O - TXT record length */
- char *keyvalue[][2], /* I - Table of key value pairs */
- int count) /* I - Items in table */
+static const char * /* O - Error message */
+dnssdErrorString(int error) /* I - Error number */
{
- int i; /* Looping var */
- int length; /* Length of TXT record */
- int length2; /* Length of value */
- char *txtRecord; /* TXT record buffer */
- char *cursor; /* Looping pointer */
+# ifdef HAVE_DNSSD
+ switch (error)
+ {
+ case kDNSServiceErr_NoError :
+ return ("OK.");
+ default :
+ case kDNSServiceErr_Unknown :
+ return ("Unknown error.");
- /*
- * Calculate the buffer size
- */
+ case kDNSServiceErr_NoSuchName :
+ return ("Service not found.");
- if (count <= 0)
- return (NULL);
+ case kDNSServiceErr_NoMemory :
+ return ("Out of memory.");
- for (length = i = 0; i < count; i++)
- length += 1 + strlen(keyvalue[i][0]) +
- (keyvalue[i][1] ? 1 + strlen(keyvalue[i][1]) : 0);
+ case kDNSServiceErr_BadParam :
+ return ("Bad parameter.");
- /*
- * Allocate and fill it
- */
+ case kDNSServiceErr_BadReference :
+ return ("Bad service reference.");
- txtRecord = malloc(length);
- if (txtRecord)
- {
- *txt_len = length;
+ case kDNSServiceErr_BadState :
+ return ("Bad state.");
- for (cursor = txtRecord, i = 0; i < count; i++)
- {
- /*
- * Drop in the p-string style length byte followed by the data
- */
+ case kDNSServiceErr_BadFlags :
+ return ("Bad flags.");
- length = strlen(keyvalue[i][0]);
- length2 = keyvalue[i][1] ? 1 + strlen(keyvalue[i][1]) : 0;
+ case kDNSServiceErr_Unsupported :
+ return ("Unsupported.");
- *cursor++ = (unsigned char)(length + length2);
+ case kDNSServiceErr_NotInitialized :
+ return ("Not initialized.");
- memcpy(cursor, keyvalue[i][0], length);
- cursor += length;
+ case kDNSServiceErr_AlreadyRegistered :
+ return ("Already registered.");
- if (length2)
- {
- length2 --;
- *cursor++ = '=';
- memcpy(cursor, keyvalue[i][1], length2);
- cursor += length2;
- }
- }
+ case kDNSServiceErr_NameConflict :
+ return ("Name conflict.");
+
+ case kDNSServiceErr_Invalid :
+ return ("Invalid name.");
+
+ case kDNSServiceErr_Firewall :
+ return ("Firewall prevents registration.");
+
+ case kDNSServiceErr_Incompatible :
+ return ("Client library incompatible.");
+
+ case kDNSServiceErr_BadInterfaceIndex :
+ return ("Bad interface index.");
+
+ case kDNSServiceErr_Refused :
+ return ("Server prevents registration.");
+
+ case kDNSServiceErr_NoSuchRecord :
+ return ("Record not found.");
+
+ case kDNSServiceErr_NoAuth :
+ return ("Authentication required.");
+
+ case kDNSServiceErr_NoSuchKey :
+ return ("Encryption key not found.");
+
+ case kDNSServiceErr_NATTraversal :
+ return ("Unable to traverse NAT boundary.");
+
+ case kDNSServiceErr_DoubleNAT :
+ return ("Unable to traverse double-NAT boundary.");
+
+ case kDNSServiceErr_BadTime :
+ return ("Bad system time.");
+
+ case kDNSServiceErr_BadSig :
+ return ("Bad signature.");
+
+ case kDNSServiceErr_BadKey :
+ return ("Bad encryption key.");
+
+ case kDNSServiceErr_Transient :
+ return ("Transient error occurred - please try again.");
+
+ case kDNSServiceErr_ServiceNotRunning :
+ return ("Server not running.");
+
+ case kDNSServiceErr_NATPortMappingUnsupported :
+ return ("NAT doesn't support NAT-PMP or UPnP.");
+
+ case kDNSServiceErr_NATPortMappingDisabled :
+ return ("NAT supports NAT-PNP or UPnP but it is disabled.");
+
+ case kDNSServiceErr_NoRouter :
+ return ("No Internet/default router configured.");
+
+ case kDNSServiceErr_PollingMode :
+ return ("Service polling mode error.");
+
+ case kDNSServiceErr_Timeout :
+ return ("Service timeout.");
}
- return (txtRecord);
+# else /* HAVE_AVAHI */
+ return (avahi_strerror(error));
+# endif /* HAVE_DNSSD */
+}
+
+
+/*
+ * 'dnssdRegisterCallback()' - Free a TXT record.
+ */
+
+static void
+dnssdFreeTxtRecord(cupsd_txt_t *txt) /* I - TXT record */
+{
+# ifdef HAVE_DNSSD
+ TXTRecordDeallocate(txt);
+
+# else /* HAVE_AVAHI */
+ avahi_string_list_free(*txt);
+ *txt = NULL;
+# endif /* HAVE_DNSSD */
}
* 'dnssdRegisterCallback()' - DNSServiceRegister callback.
*/
+# ifdef HAVE_DNSSD
static void
dnssdRegisterCallback(
DNSServiceRef sdRef, /* I - DNS Service reference */
const char *name, /* I - Service name */
const char *regtype, /* I - Service type */
const char *domain, /* I - Domain. ".local" for now */
- void *context) /* I - User-defined context */
+ void *context) /* I - Printer */
{
cupsd_printer_t *p = (cupsd_printer_t *)context;
/* Current printer */
}
}
+# else /* HAVE_AVAHI */
+static void
+dnssdRegisterCallback(
+ AvahiEntryGroup *srv, /* I - Service */
+ AvahiEntryGroupState state, /* I - Registration state */
+ void *context) /* I - Printer */
+{
+ cupsd_printer_t *p = (cupsd_printer_t *)context;
+ /* Current printer */
+
+ cupsdLogMessage(CUPSD_LOG_DEBUG2,
+ "dnssdRegisterCallback(srv=%p, state=%d, context=%p) "
+ "for %s (%s)", srv, state, context,
+ p ? p->name : "Web Interface",
+ p ? (p->reg_name ? p->reg_name : "(null)") : "NA");
+
+ /* TODO: Handle collisions with avahi_alternate_service_name(p->reg_name)? */
+}
+# endif /* HAVE_DNSSD */
+
/*
- * 'dnssdRegisterPrinter()' - Start sending broadcast information for a printer
- * or update the broadcast contents.
+ * 'dnssdRegisterInstance()' - Register an instance of a printer service.
*/
-static void
-dnssdRegisterPrinter(cupsd_printer_t *p)/* I - Printer */
+static int /* O - 1 on success, 0 on failure */
+dnssdRegisterInstance(
+ cupsd_srv_t *srv, /* O - Service */
+ cupsd_printer_t *p, /* I - Printer */
+ char *name, /* I - DNS-SD service name */
+ const char *type, /* I - DNS-SD service type */
+ const char *subtypes, /* I - Subtypes to register or NULL */
+ int port, /* I - Port number or 0 */
+ cupsd_txt_t *txt, /* I - TXT record */
+ int commit) /* I - Commit registration? */
{
- DNSServiceErrorType se; /* dnssd errors */
- char *ipp_txt, /* IPP TXT record buffer */
- *printer_txt, /* LPD TXT record buffer */
- name[1024], /* Service name */
- *nameptr; /* Pointer into name */
- int ipp_len, /* IPP TXT record length */
- printer_len, /* LPD TXT record length */
- printer_port; /* LPD port number */
- const char *regtype; /* Registration type */
+ char temp[256], /* Temporary string */
+ *ptr; /* Pointer into string */
+ int error; /* Any error */
- cupsdLogMessage(CUPSD_LOG_DEBUG2, "dnssdRegisterPrinter(%s) %s", p->name,
- !p->ipp_ref ? "new" : "update");
+ cupsdLogMessage(CUPSD_LOG_DEBUG,
+ "Registering \"%s\" with DNS-SD type \"%s\".", name, type);
- /*
- * If per-printer sharing was just disabled make sure we're not
- * registered before returning.
- */
+ if (p && !srv)
+ {
+ /*
+ * Assign the correct pointer for "srv"...
+ */
- if (!p->shared)
+# ifdef HAVE_DNSSD
+ if (!strcmp(type, "_printer._tcp"))
+ srv = &p->printer_srv; /* Target LPD service */
+# ifdef HAVE_SSL
+ else if (!strcmp(type, "_ipps._tcp"))
+ srv = &p->ipps_srv; /* Target IPPS service */
+# endif /* HAVE_SSL */
+ else
+ srv = &p->ipp_srv; /* Target IPP service */
+
+# else /* HAVE_AVAHI */
+ srv = &p->ipp_srv; /* Target service group */
+# endif /* HAVE_DNSSD */
+ }
+
+# ifdef HAVE_DNSSD
+ (void)commit;
+
+# else /* HAVE_AVAHI */
+ avahi_threaded_poll_lock(DNSSDMaster);
+
+ if (!*srv)
+ *srv = avahi_entry_group_new(DNSSDClient, dnssdRegisterCallback, NULL);
+ if (!*srv)
{
- dnssdDeregisterPrinter(p);
- return;
+ avahi_threaded_poll_unlock(DNSSDMaster);
+
+ cupsdLogMessage(CUPSD_LOG_WARN, "DNS-SD registration of \"%s\" failed: %s",
+ name, dnssdErrorString(avahi_client_errno(DNSSDClient)));
+ return (0);
}
+# endif /* HAVE_DNSSD */
/*
- * The registered name takes the form of "<printer-info> @ <computer name>"...
+ * Make sure the name is <= 63 octets, and when we truncate be sure to
+ * properly truncate any UTF-8 characters...
*/
- if (p->info && strlen(p->info) > 0)
+ ptr = name + strlen(name);
+ while ((ptr - name) > 63)
{
- if (DNSSDComputerName)
- snprintf(name, sizeof(name), "%s @ %s", p->info, DNSSDComputerName);
- else
- strlcpy(name, p->info, sizeof(name));
+ do
+ {
+ ptr --;
+ }
+ while (ptr > name && (*ptr & 0xc0) == 0x80);
+
+ if (ptr > name)
+ *ptr = '\0';
}
- else if (DNSSDComputerName)
- snprintf(name, sizeof(name), "%s @ %s", p->name, DNSSDComputerName);
- else
- strlcpy(name, p->name, sizeof(name));
/*
- * If an existing printer was renamed, unregister it and start over...
+ * Register the service...
*/
- if (p->reg_name && strcmp(p->reg_name, name))
- dnssdDeregisterPrinter(p);
+# ifdef HAVE_DNSSD
+ if (subtypes)
+ snprintf(temp, sizeof(temp), "%s,%s", type, subtypes);
+ else
+ strlcpy(temp, type, sizeof(temp));
- if (!p->reg_name)
+ *srv = DNSSDMaster;
+ error = DNSServiceRegister(srv, kDNSServiceFlagsShareConnection,
+ 0, name, temp, NULL, NULL, htons(port),
+ txt ? TXTRecordGetLength(txt) : 0,
+ txt ? TXTRecordGetBytesPtr(txt) : NULL,
+ dnssdRegisterCallback, p);
+
+# else /* HAVE_AVAHI */
+ if (txt)
{
- cupsdSetString(&p->reg_name, name);
- cupsArrayAdd(DNSSDPrinters, p);
+ AvahiStringList *temptxt;
+ for (temptxt = *txt; temptxt; temptxt = temptxt->next)
+ cupsdLogMessage(CUPSD_LOG_DEBUG, "DNS_SD \"%s\" %s", name, temptxt->text);
}
- /*
- * Register IPP and (optionally) LPD...
- */
+ error = avahi_entry_group_add_service_strlst(*srv, AVAHI_IF_UNSPEC,
+ AVAHI_PROTO_UNSPEC, 0, name,
+ type, NULL, NULL, port,
+ txt ? *txt : NULL);
+ if (error)
+ cupsdLogMessage(CUPSD_LOG_DEBUG, "DNS-SD service add for \"%s\" failed.",
+ name);
- ipp_len = 0; /* anti-compiler-warning-code */
- ipp_txt = dnssdBuildTxtRecord(&ipp_len, p, 0);
-
- if (p->ipp_ref &&
- (ipp_len != p->ipp_len || memcmp(ipp_txt, p->ipp_txt, ipp_len)))
+ if (!error && subtypes)
{
/*
- * Update the existing registration...
+ * Register all of the subtypes...
*/
- /* A TTL of 0 means use record's original value (Radar 3176248) */
- if ((se = DNSServiceUpdateRecord(p->ipp_ref, NULL, 0, ipp_len, ipp_txt,
- 0)) == kDNSServiceErr_NoError)
- {
- if (p->ipp_txt)
- free(p->ipp_txt);
+ char *start, /* Start of subtype */
+ subtype[256]; /* Subtype string */
- p->ipp_txt = ipp_txt;
- p->ipp_len = ipp_len;
- ipp_txt = NULL;
- }
- else
+ strlcpy(temp, subtypes, sizeof(temp));
+
+ for (start = temp; *start; start = ptr)
{
/*
- * Failed to update record, lets close this reference and move on...
+ * Skip leading whitespace...
*/
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "Unable to update IPP DNS-SD record for %s - %d", p->name,
- se);
+ while (*start && isspace(*start & 255))
+ start ++;
+
+ /*
+ * Grab everything up to the next comma or the end of the string...
+ */
+
+ for (ptr = start; *ptr && *ptr != ','; ptr ++);
+
+ if (*ptr)
+ *ptr++ = '\0';
+
+ if (!*start)
+ break;
- DNSServiceRefDeallocate(p->ipp_ref);
- p->ipp_ref = NULL;
+ /*
+ * Register the subtype...
+ */
+
+ snprintf(subtype, sizeof(subtype), "%s._sub.%s", start, type);
+
+ error = avahi_entry_group_add_service_subtype(*srv, AVAHI_IF_UNSPEC,
+ AVAHI_PROTO_UNSPEC, 0,
+ name, type, NULL, subtype);
+ if (error)
+ {
+ cupsdLogMessage(CUPSD_LOG_DEBUG,
+ "DNS-SD subtype %s registration for \"%s\" failed." ,
+ subtype, name);
+ break;
+ }
}
}
- if (!p->ipp_ref)
+ if (!error && commit)
{
- /*
- * Initial registration. Use the _fax-ipp regtype for fax queues...
- */
+ if ((error = avahi_entry_group_commit(*srv)) != 0)
+ cupsdLogMessage(CUPSD_LOG_DEBUG, "DNS-SD commit of \"%s\" failed.",
+ name);
+ }
- regtype = (p->type & CUPS_PRINTER_FAX) ? "_fax-ipp._tcp" : DNSSDRegType;
+ avahi_threaded_poll_unlock(DNSSDMaster);
+# endif /* HAVE_DNSSD */
- cupsdLogMessage(CUPSD_LOG_DEBUG,
- "Registering DNS-SD printer %s with name \"%s\" and "
- "type \"%s\"", p->name, name, regtype);
+ if (error)
+ {
+ cupsdLogMessage(CUPSD_LOG_WARN, "DNS-SD registration of \"%s\" failed: %s",
+ name, dnssdErrorString(error));
+ cupsdLogMessage(CUPSD_LOG_DEBUG, "DNS-SD type: %s", type);
+ if (subtypes)
+ cupsdLogMessage(CUPSD_LOG_DEBUG, "DNS-SD sub-types: %s", subtypes);
+ }
- /*
- * Register the queue, dropping characters as needed until we succeed...
- */
+ return (!error);
+}
- nameptr = name + strlen(name);
- do
- {
- p->ipp_ref = DNSSDRef;
- if ((se = DNSServiceRegister(&p->ipp_ref, kDNSServiceFlagsShareConnection,
- 0, name, regtype, NULL, NULL,
- htons(DNSSDPort), ipp_len, ipp_txt,
- dnssdRegisterCallback,
- p)) == kDNSServiceErr_BadParam)
- {
- /*
- * Name is too long, drop trailing characters, taking into account
- * UTF-8 encoding...
- */
+/*
+ * 'dnssdRegisterPrinter()' - Start sending broadcast information for a printer
+ * or update the broadcast contents.
+ */
- nameptr --;
+static void
+dnssdRegisterPrinter(cupsd_printer_t *p)/* I - Printer */
+{
+ char name[256]; /* Service name */
+ int printer_port; /* LPD port number */
+ int status; /* Registration status */
+ cupsd_txt_t ipp_txt, /* IPP(S) TXT record */
+ printer_txt; /* LPD TXT record */
- while (nameptr > name && (*nameptr & 0xc0) == 0x80)
- nameptr --;
+ cupsdLogMessage(CUPSD_LOG_DEBUG2, "dnssdRegisterPrinter(%s) %s", p->name,
+ !p->ipp_srv ? "new" : "update");
- if (nameptr > name)
- *nameptr = '\0';
- }
- }
- while (se == kDNSServiceErr_BadParam && nameptr > name);
+ /*
+ * Remove the current registrations if we have them and then return if
+ * per-printer sharing was just disabled...
+ */
- if (se == kDNSServiceErr_NoError)
+ dnssdDeregisterPrinter(p, 0);
+
+ if (!p->shared)
+ return;
+
+ /*
+ * Set the registered name as needed; the registered name takes the form of
+ * "<printer-info> @ <computer name>"...
+ */
+
+ if (!p->reg_name)
+ {
+ if (p->info && strlen(p->info) > 0)
{
- p->ipp_txt = ipp_txt;
- p->ipp_len = ipp_len;
- ipp_txt = NULL;
+ if (DNSSDComputerName)
+ snprintf(name, sizeof(name), "%s @ %s", p->info, DNSSDComputerName);
+ else
+ strlcpy(name, p->info, sizeof(name));
}
+ else if (DNSSDComputerName)
+ snprintf(name, sizeof(name), "%s @ %s", p->name, DNSSDComputerName);
else
- cupsdLogMessage(CUPSD_LOG_WARN,
- "DNS-SD IPP registration of \"%s\" failed: %d",
- p->name, se);
+ strlcpy(name, p->name, sizeof(name));
}
+ else
+ strlcpy(name, p->reg_name, sizeof(name));
- if (ipp_txt)
- free(ipp_txt);
+ /*
+ * Register IPP and LPD...
+ *
+ * We always must register the "_printer" service type in order to reserve
+ * our name, but use port number 0 if we haven't actually configured cups-lpd
+ * to share via LPD...
+ */
+
+ ipp_txt = dnssdBuildTxtRecord(p, 0);
+ printer_txt = dnssdBuildTxtRecord(p, 1);
if (BrowseLocalProtocols & BROWSE_LPD)
- {
- printer_len = 0; /* anti-compiler-warning-code */
printer_port = 515;
- printer_txt = dnssdBuildTxtRecord(&printer_len, p, 1);
- }
else
- {
- printer_len = 0;
printer_port = 0;
- printer_txt = NULL;
- }
- if (p->printer_ref &&
- (printer_len != p->printer_len ||
- memcmp(printer_txt, p->printer_txt, printer_len)))
+ status = dnssdRegisterInstance(NULL, p, name, "_printer._tcp", NULL,
+ printer_port, &printer_txt, 0);
+
+# ifdef HAVE_SSL
+ if (status)
+ dnssdRegisterInstance(NULL, p, name, "_ipps._tcp", DNSSDSubTypes,
+ DNSSDPort, &ipp_txt, 0);
+# endif /* HAVE_SSL */
+
+ if (status)
{
/*
- * Update the existing registration...
+ * Use the "_fax-ipp" service type for fax queues, otherwise use "_ipp"...
*/
- /* A TTL of 0 means use record's original value (Radar 3176248) */
- if ((se = DNSServiceUpdateRecord(p->printer_ref, NULL, 0, printer_len,
- printer_txt,
- 0)) == kDNSServiceErr_NoError)
- {
- if (p->printer_txt)
- free(p->printer_txt);
-
- p->printer_txt = printer_txt;
- p->printer_len = printer_len;
- printer_txt = NULL;
- }
+ if (p->type & CUPS_PRINTER_FAX)
+ status = dnssdRegisterInstance(NULL, p, name, "_fax-ipp._tcp",
+ DNSSDSubTypes, DNSSDPort, &ipp_txt, 1);
else
- {
- /*
- * Failed to update record, lets close this reference and move on...
- */
-
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "Unable to update LPD DNS-SD record for %s - %d",
- p->name, se);
-
- DNSServiceRefDeallocate(p->printer_ref);
- p->printer_ref = NULL;
- }
+ status = dnssdRegisterInstance(NULL, p, name, "_ipp._tcp", DNSSDSubTypes,
+ DNSSDPort, &ipp_txt, 1);
}
- if (!p->printer_ref)
+ dnssdFreeTxtRecord(&ipp_txt);
+ dnssdFreeTxtRecord(&printer_txt);
+
+ if (status)
{
/*
- * Initial registration...
+ * Save the registered name and add the printer to the array of DNS-SD
+ * printers...
*/
- cupsdLogMessage(CUPSD_LOG_DEBUG,
- "Registering DNS-SD printer %s with name \"%s\" and "
- "type \"_printer._tcp\"", p->name, name);
-
- p->printer_ref = DNSSDRef;
- if ((se = DNSServiceRegister(&p->printer_ref,
- kDNSServiceFlagsShareConnection,
- 0, name, "_printer._tcp", NULL, NULL,
- htons(printer_port), printer_len, printer_txt,
- dnssdRegisterCallback,
- p)) == kDNSServiceErr_NoError)
- {
- p->printer_txt = printer_txt;
- p->printer_len = printer_len;
- printer_txt = NULL;
- }
- else
- cupsdLogMessage(CUPSD_LOG_WARN,
- "DNS-SD LPD registration of \"%s\" failed: %d",
- p->name, se);
+ cupsdSetString(&p->reg_name, name);
+ cupsArrayAdd(DNSSDPrinters, p);
}
+ else
+ {
+ /*
+ * Registration failed for this printer...
+ */
- if (printer_txt)
- free(printer_txt);
+ dnssdDeregisterInstance(&p->ipp_srv);
+
+# ifdef HAVE_DNSSD
+# ifdef HAVE_SSL
+ dnssdDeregisterInstance(&p->ipps_srv);
+# endif /* HAVE_SSL */
+ dnssdDeregisterInstance(&p->printer_srv);
+# endif /* HAVE_DNSSD */
+ }
}
for (p = (cupsd_printer_t *)cupsArrayFirst(Printers);
p;
p = (cupsd_printer_t *)cupsArrayNext(Printers))
- dnssdDeregisterPrinter(p);
+ dnssdDeregisterPrinter(p, 1);
/*
* Shutdown the rest of the service refs...
*/
- if (WebIFRef)
- {
- DNSServiceRefDeallocate(WebIFRef);
- WebIFRef = NULL;
- }
+ dnssdDeregisterInstance(&WebIFSrv);
+
+# ifdef HAVE_DNSSD
+ cupsdRemoveSelect(DNSServiceRefSockFD(DNSSDMaster));
+
+ DNSServiceRefDeallocate(DNSSDMaster);
+ DNSSDMaster = NULL;
- cupsdRemoveSelect(DNSServiceRefSockFD(DNSSDRef));
+# else /* HAVE_AVAHI */
+ avahi_client_free(DNSSDClient);
+ DNSSDClient = NULL;
- DNSServiceRefDeallocate(DNSSDRef);
- DNSSDRef = NULL;
+ avahi_threaded_poll_free(DNSSDMaster);
+ DNSSDMaster = NULL;
+# endif /* HAVE_DNSSD */
cupsArrayDelete(DNSSDPrinters);
DNSSDPrinters = NULL;
}
+# ifdef HAVE_DNSSD
/*
* 'dnssdUpdate()' - Handle DNS-SD queries.
*/
DNSServiceErrorType sdErr; /* Service discovery error */
- if ((sdErr = DNSServiceProcessResult(DNSSDRef)) != kDNSServiceErr_NoError)
+ if ((sdErr = DNSServiceProcessResult(DNSSDMaster)) != kDNSServiceErr_NoError)
{
cupsdLogMessage(CUPSD_LOG_ERROR,
"DNS Service Discovery registration error %d!",
dnssdStop();
}
}
+# endif /* HAVE_DNSSD */
/*
return ("none");
}
-#endif /* HAVE_DNSSD */
+#endif /* HAVE_DNSSD || HAVE_AVAHI */
#ifdef __APPLE__
*
* Directory services definitions for the CUPS scheduler.
*
- * Copyright 2007-2010 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
BrowseLocalProtocols
VALUE(BROWSE_ALL);
/* Protocols to support for local printers */
-#ifdef HAVE_DNSSD
+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
VAR char *DNSSDComputerName VALUE(NULL),
/* Computer/server name */
*DNSSDHostName VALUE(NULL),
/* Hostname */
- *DNSSDRegType VALUE(NULL);
- /* Bonjour registration type */
+ *DNSSDSubTypes VALUE(NULL);
+ /* Bonjour registration subtypes */
VAR cups_array_t *DNSSDAlias VALUE(NULL);
/* List of dynamic ServerAlias's */
VAR int DNSSDPort VALUE(0);
/* Port number to register */
VAR cups_array_t *DNSSDPrinters VALUE(NULL);
/* Printers we have registered */
-VAR DNSServiceRef DNSSDRef VALUE(NULL),
+# ifdef HAVE_DNSSD
+VAR DNSServiceRef DNSSDMaster VALUE(NULL);
/* Master DNS-SD service reference */
- WebIFRef VALUE(NULL);
+# else /* HAVE_AVAHI */
+VAR AvahiThreadedPoll *DNSSDMaster VALUE(NULL);
+ /* Master polling interface for Avahi */
+VAR AvahiClient *DNSSDClient VALUE(NULL);
+ /* Client information */
+# endif /* HAVE_DNSSD */
+VAR cupsd_srv_t WebIFSrv VALUE(NULL);
/* Service reference for the web interface */
-#endif /* HAVE_DNSSD */
+#endif /* HAVE_DNSSD || HAVE_AVAHI */
VAR char *LPDConfigFile VALUE(NULL),
/* LPD configuration file */
extern void cupsdRegisterPrinter(cupsd_printer_t *p);
extern void cupsdStartBrowsing(void);
extern void cupsdStopBrowsing(void);
-#ifdef HAVE_DNSSD
+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
extern void cupsdUpdateDNSSDName(void);
-#endif /* HAVE_DNSSD */
+#endif /* HAVE_DNSSD || HAVE_AVAHI */
/*
*
* Contents:
*
-* cupsdAddJob() - Add a new job to the job queue.
+ * cupsdAddJob() - Add a new job to the job queue.
* cupsdCancelJobs() - Cancel all jobs for the given
* destination/user.
* cupsdCheckJobs() - Check the pending jobs and start any if the
else if (!strcmp(line, "password"))
cupsdSetStringf(job->auth_env + i, "AUTH_PASSWORD=%s", data);
else if (!strcmp(line, "negotiate"))
- cupsdSetStringf(job->auth_env + i, "AUTH_NEGOTIATE=%s", line);
+ cupsdSetStringf(job->auth_env + i, "AUTH_NEGOTIATE=%s", data);
else
continue;
case CUPS_BACKEND_CANCEL :
/*
- * Abort the job...
+ * Cancel the job...
*/
if (job_state == IPP_JOB_COMPLETED)
{
- job_state = IPP_JOB_ABORTED;
- message = "Job aborted due to backend errors; please consult "
- "the error_log file for details.";
+ job_state = IPP_JOB_CANCELED;
+ message = "Job canceled at printer.";
- ippSetString(job->attrs, &job->reasons, 0, "aborted-by-system");
+ ippSetString(job->attrs, &job->reasons, 0, "canceled-at-device");
}
break;
int launchd_idle_exit;
/* Idle exit on select timeout? */
#endif /* HAVE_LAUNCHD */
-#ifdef HAVE_AVAHI
- cupsd_timeout_t *tmo; /* Next scheduled timed callback */
- long tmo_delay; /* Time before it must be called */
-#endif /* HAVE_AVAHI */
#ifdef HAVE_GETEUID
}
#endif /* __APPLE__ */
-#ifdef HAVE_AVAHI
- /*
- * If a timed callback is due, run it.
- */
-
- tmo = cupsdNextTimeout(&tmo_delay);
- if (tmo && tmo_delay == 0)
- cupsdRunTimeout(tmo);
-#endif /* HAVE_AVAHI */
-
#ifndef __APPLE__
/*
* Update the network interfaces once a minute...
}
if (status && status != SIGTERM && status != SIGKILL &&
- status != SIGPIPE && job->status >= 0)
+ status != SIGPIPE)
{
/*
* An error occurred; save the exit status so we know to stop
*
* A negative status indicates that the backend failed and the
* printer needs to be stopped.
+ *
+ * In order to preserve the most serious status, we always log
+ * when a process dies due to a signal (e.g. SIGABRT, SIGSEGV,
+ * and SIGBUS) and prefer to log the backend exit status over a
+ * filter's.
*/
- if (job->filters[i])
- job->status = status; /* Filter failed */
- else
- job->status = -status; /* Backend failed */
+ int old_status = abs(job->status);
+
+ if (WIFSIGNALED(status) || /* This process crashed, or */
+ !job->status || /* No process had a status, or */
+ (!job->filters[i] && WIFEXITED(old_status)))
+ { /* Backend and filter didn't crash */
+ if (job->filters[i])
+ job->status = status; /* Filter failed */
+ else
+ job->status = -status; /* Backend failed */
+ }
if (job->state_value == IPP_JOB_PROCESSING &&
job->status_level > CUPSD_LOG_ERROR &&
cupsd_job_t *job; /* Job information */
cupsd_subscription_t *sub; /* Subscription information */
const char *why; /* Debugging aid */
-#ifdef HAVE_AVAHI
- cupsd_timeout_t *tmo; /* Timed callback */
- long tmo_delay; /* Seconds before calling it */
-#endif /* HAVE_AVAHI */
cupsdLogMessage(CUPSD_LOG_DEBUG2, "select_timeout: JobHistoryUpdate=%ld",
}
#endif /* __APPLE__ */
-#ifdef HAVE_AVAHI
- /*
- * See if there are any scheduled timed callbacks to run.
- */
-
- if ((tmo = cupsdNextTimeout(&tmo_delay)) != NULL &&
- (now + tmo_delay) < timeout)
- {
- timeout = tmo_delay;
- why = "run a timed callback";
- }
-#endif /* HAVE_AVAHI */
-
/*
* Check whether we are accepting new connections...
*/
_cupsLangPuts(fp, _("Usage: cupsd [options]"));
_cupsLangPuts(fp, _("Options:"));
- _cupsLangPuts(fp, _(" -c config-file Load alternate configuration "
- "file."));
+ _cupsLangPuts(fp, _(" -c cupsd.conf Set cupsd.conf file to use."));
_cupsLangPuts(fp, _(" -f Run in the foreground."));
_cupsLangPuts(fp, _(" -F Run in the foreground but "
"detach from console."));
cupsdClearString(&p->alert);
cupsdClearString(&p->alert_description);
-#ifdef HAVE_DNSSD
+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
cupsdClearString(&p->pdl);
-#endif /* HAVE_DNSSD */
+ cupsdClearString(&p->reg_name);
+#endif /* HAVE_DNSSD || HAVE_AVAHI */
cupsArrayDelete(p->filetypes);
attr->values[i].string.text = _cupsStrAlloc(mimetype);
}
-#ifdef HAVE_DNSSD
+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
{
char pdl[1024]; /* Buffer to build pdl list */
mime_filter_t *filter; /* MIME filter looping var */
cupsdSetString(&p->pdl, pdl);
}
-#endif /* HAVE_DNSSD */
+#endif /* HAVE_DNSSD || HAVE_AVAHI */
}
*
* Printer definitions for the CUPS scheduler.
*
- * Copyright 2007-2011 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
#ifdef HAVE_DNSSD
# include <dns_sd.h>
+#elif defined(HAVE_AVAHI)
+# include <avahi-client/client.h>
+# include <avahi-client/publish.h>
+# include <avahi-common/error.h>
+# include <avahi-common/thread-watch.h>
#endif /* HAVE_DNSSD */
#include <cups/pwg-private.h>
} cupsd_quota_t;
+/*
+ * DNS-SD types to make the code cleaner/clearer...
+ */
+
+#ifdef HAVE_DNSSD
+typedef DNSServiceRef cupsd_srv_t; /* Service reference */
+typedef TXTRecordRef cupsd_txt_t; /* TXT record */
+
+#elif defined(HAVE_AVAHI)
+typedef AvahiEntryGroup *cupsd_srv_t; /* Service reference */
+typedef AvahiStringList *cupsd_txt_t; /* TXT record */
+#endif /* HAVE_DNSSD */
+
+
/*
* Printer/class information structure...
*/
time_t marker_time; /* Last time marker attributes were updated */
_ppd_cache_t *pc; /* PPD cache and mapping data */
-#ifdef HAVE_DNSSD
+#if defined(HAVE_DNSSD) || defined(HAVE_AVAHI)
char *reg_name, /* Name used for service registration */
- *pdl, /* pdl value for TXT record */
- *ipp_txt, /* IPP TXT record contents */
- *printer_txt; /* LPD TXT record contents */
- int ipp_len, /* IPP TXT record length */
- printer_len; /* LPD TXT record length */
- DNSServiceRef ipp_ref, /* Reference for _ipp._tcp,_cups */
- printer_ref; /* Reference for _printer._tcp */
-#endif /* HAVE_DNSSD */
+ *pdl; /* pdl value for TXT record */
+ cupsd_srv_t ipp_srv; /* IPP service(s) */
+# ifdef HAVE_DNSSD
+# ifdef HAVE_SSL
+ cupsd_srv_t ipps_srv; /* IPPS service(s) */
+# endif /* HAVE_SSL */
+ cupsd_srv_t printer_srv; /* LPD service */
+# endif /* HAVE_DNSSD */
+#endif /* HAVE_DNSSD || HAVE_AVAHI */
};
*
* Process management routines for the CUPS scheduler.
*
- * Copyright 2007-2011 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
if (envp)
{
/*
- * Add special voodoo magic for Mac OS X - this allows Mac OS X
- * programs to access their bundle resources properly...
+ * Add special voodoo magic for OS X - this allows OS X programs to access
+ * their bundle resources properly...
*/
if ((linkbytes = readlink(command, linkpath, sizeof(linkpath) - 1)) > 0)
{
if (!process_array)
process_array = cupsArrayNew((cups_array_func_t)compare_procs, NULL);
-
+
if (process_array)
{
if ((proc = calloc(1, sizeof(cupsd_proc_t) + strlen(command))) != NULL)
+++ /dev/null
-/*
- * "$Id$"
- *
- * Timeout functions for the CUPS Scheduler.
- *
- * 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/".
- *
- * Copyright (C) 2010, 2011 Red Hat, Inc.
- * Authors:
- * Tim Waugh <twaugh@redhat.com>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * Contents:
- *
- * cupsdAddTimeout() - Add a timed callback.
- * cupsdNextTimeout() - Find the next enabled timed callback.
- * cupsdRemoveTimeout() - Discard a timed callback.
- * cupsdRunTimeout() - Run a timed callback.
- * cupsdUpdateTimeout() - Adjust the time of a timed callback or disable it.
- * compare_addrs() - Compare pointers for array sorting.
- * compare_timeouts() - Compare timed callbacks for array sorting.
- */
-
-#include "cupsd.h"
-#ifdef HAVE_AVAHI /* Applies to entire file... */
-
-/*
- * Include necessary headers...
- */
-
-# include <avahi-common/timeval.h>
-
-
-/*
- * Local types...
- */
-
-struct _cupsd_timeout_s /* Timeout data */
-{
- struct timeval when; /* When to fire timeout */
- int enabled; /* Is the timeout enabled? */
- cupsd_timeoutfunc_t callback; /* Timeout callback */
- void *data; /* User data for callback */
-};
-
-
-/*
- * Local functions...
- */
-
-static int compare_addrs(void *p0, void *p1);
-static int compare_timeouts(cupsd_timeout_t *p0, cupsd_timeout_t *p1);
-
-
-/*
- * 'cupsdAddTimeout()' - Add a timed callback.
- */
-
-cupsd_timeout_t * /* O - Timeout handle */
-cupsdAddTimeout(
- const struct timeval *tv, /* I - Absolute time */
- cupsd_timeoutfunc_t cb, /* I - Callback function */
- void *data) /* I - User data */
-{
- cupsd_timeout_t *timeout; /* I - New timeout */
-
-
- if ((timeout = calloc(1, sizeof(cupsd_timeout_t))) != NULL)
- {
- timeout->enabled = (tv != NULL);
- if (tv)
- timeout->when = *tv;
-
- timeout->callback = cb;
- timeout->data = data;
-
- if (!Timeouts)
- Timeouts = cupsArrayNew((cups_array_func_t)compare_timeouts, NULL);
-
- cupsArrayAdd(Timeouts, timeout);
- }
-
- return (timeout);
-}
-
-
-/*
- * 'cupsdNextTimeout()' - Find the next enabled timed callback.
- */
-
-cupsd_timeout_t * /* O - Next enabled timeout or NULL */
-cupsdNextTimeout(long *delay) /* O - Seconds before scheduled */
-{
- cupsd_timeout_t *first = cupsArrayFirst(Timeouts);
- /* First timeout */
- struct timeval curtime; /* Current time */
-
-
- if (first && !first->enabled)
- first = NULL;
-
- if (first && delay)
- {
- gettimeofday(&curtime, NULL);
- if (avahi_timeval_compare(&curtime, &first->when) > 0)
- *delay = 0;
- else
- {
- *delay = 1 + first->when.tv_sec - curtime.tv_sec;
- if (first->when.tv_usec < curtime.tv_usec)
- (*delay) --;
- }
- }
-
- return (first);
-}
-
-
-/*
- * 'cupsdRemoveTimeout()' - Discard a timed callback.
- */
-
-void
-cupsdRemoveTimeout(
- cupsd_timeout_t *timeout) /* I - Timeout */
-{
- cupsArrayRemove(Timeouts, timeout);
- free(timeout);
-}
-
-
-/*
- * 'cupsdRunTimeout()' - Run a timed callback.
- */
-
-void
-cupsdRunTimeout(
- cupsd_timeout_t *timeout) /* I - Timeout */
-{
- if (timeout)
- {
- timeout->enabled = 0;
- if (timeout->callback)
- (*timeout->callback)(timeout, timeout->data);
- }
-}
-
-
-/*
- * 'cupsdUpdateTimeout()' - Adjust the time of a timed callback or disable it.
- */
-
-void
-cupsdUpdateTimeout(
- cupsd_timeout_t *timeout, /* I - Timeout */
- const struct timeval *tv) /* I - Absolute time or NULL */
-{
- cupsArrayRemove(Timeouts, timeout);
- timeout->enabled = (tv != NULL);
-
- if (tv)
- timeout->when = *tv;
-
- cupsArrayAdd(Timeouts, timeout);
-}
-
-
-/*
- * 'compare_addrs()' - Compare pointers for array sorting.
- */
-
-static int /* O - Result of comparison */
-compare_addrs(void *p0, /* I - First pointer */
- void *p1) /* I - Second pointer */
-{
- if (p0 == p1)
- return (0);
- else if (p0 < p1)
- return (-1);
- else
- return (1);
-}
-
-
-/*
- * 'compare_timeouts()' - Compare timed callbacks for array sorting.
- */
-
-static int /* O - Result of comparison */
-compare_timeouts(cupsd_timeout_t *p0, /* I - First timeout */
- cupsd_timeout_t *p1) /* I - Second timeout */
-{
- int addrsdiff = compare_addrs (p0, p1);
- /* Address difference */
- int tvdiff; /* Time difference */
-
-
- if (addrsdiff == 0)
- return (0);
-
- if (!p0->enabled || !p1->enabled)
- {
- if (!p0->enabled && !p1->enabled)
- return (addrsdiff);
-
- return (p0->enabled ? -1 : 1);
- }
-
- tvdiff = avahi_timeval_compare(&p0->when, &p1->when);
- if (tvdiff != 0)
- return (tvdiff);
-
- return (addrsdiff);
-}
-#endif /* HAVE_AVAHI */
-
-
-/*
- * End of "$Id$".
- */
/*
* 'cupsdExec()' - Run a program with the correct environment.
*
- * On Mac OS X, we need to update the CFProcessPath environment variable that
+ * On OS X, we need to update the CFProcessPath environment variable that
* is passed in the environment so the child can access its bundled resources.
*/
/*
- * Some Mac OS X programs are bundled and need the CFProcessPath environment
+ * Some OS X programs are bundled and need the CFProcessPath environment
* variable defined. If the command is a symlink, resolve the link and point
* to the resolved location, otherwise, use the command path itself.
*/
-cancel.o: cancel.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
-cupsaccept.o: cupsaccept.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
-cupsaddsmb.o: cupsaddsmb.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 ../cups/adminutil.h
-cupsctl.o: cupsctl.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 ../cups/adminutil.h
-cupstestdsc.o: cupstestdsc.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
-cupstestppd.o: cupstestppd.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 ../cups/dir.h \
- ../cups/raster.h
-lp.o: lp.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
-lpadmin.o: lpadmin.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
-lpinfo.o: lpinfo.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
-lpmove.o: lpmove.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
-lpoptions.o: lpoptions.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
-lppasswd.o: lppasswd.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
-lpstat.o: lpstat.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
+cancel.o: cancel.c ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/versioning.h \
+ ../cups/ipp-private.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
+ ../cups/http-private.h ../cups/md5-private.h \
+ ../cups/language-private.h ../cups/transcode.h ../cups/language.h \
+ ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
+cupsaccept.o: cupsaccept.c ../cups/cups-private.h \
+ ../cups/string-private.h ../config.h ../cups/debug-private.h \
+ ../cups/versioning.h ../cups/ipp-private.h ../cups/ipp.h \
+ ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
+cupsaddsmb.o: cupsaddsmb.c ../cups/cups-private.h \
+ ../cups/string-private.h ../config.h ../cups/debug-private.h \
+ ../cups/versioning.h ../cups/ipp-private.h ../cups/ipp.h \
+ ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
+ ../cups/adminutil.h
+cupsctl.o: cupsctl.c ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/versioning.h \
+ ../cups/ipp-private.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
+ ../cups/http-private.h ../cups/md5-private.h \
+ ../cups/language-private.h ../cups/transcode.h ../cups/language.h \
+ ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
+ ../cups/adminutil.h
+cupstestdsc.o: cupstestdsc.c ../cups/cups-private.h \
+ ../cups/string-private.h ../config.h ../cups/debug-private.h \
+ ../cups/versioning.h ../cups/ipp-private.h ../cups/ipp.h \
+ ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
+cupstestppd.o: cupstestppd.c ../cups/cups-private.h \
+ ../cups/string-private.h ../config.h ../cups/debug-private.h \
+ ../cups/versioning.h ../cups/ipp-private.h ../cups/ipp.h \
+ ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
+ ../cups/dir.h ../cups/raster.h
+lp.o: lp.c ../cups/cups-private.h ../cups/string-private.h ../config.h \
+ ../cups/debug-private.h ../cups/versioning.h ../cups/ipp-private.h \
+ ../cups/ipp.h ../cups/http.h ../cups/array.h ../cups/http-private.h \
+ ../cups/md5-private.h ../cups/language-private.h ../cups/transcode.h \
+ ../cups/language.h ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
+lpadmin.o: lpadmin.c ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/versioning.h \
+ ../cups/ipp-private.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
+ ../cups/http-private.h ../cups/md5-private.h \
+ ../cups/language-private.h ../cups/transcode.h ../cups/language.h \
+ ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
+lpinfo.o: lpinfo.c ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/versioning.h \
+ ../cups/ipp-private.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
+ ../cups/http-private.h ../cups/md5-private.h \
+ ../cups/language-private.h ../cups/transcode.h ../cups/language.h \
+ ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
+lpmove.o: lpmove.c ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/versioning.h \
+ ../cups/ipp-private.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
+ ../cups/http-private.h ../cups/md5-private.h \
+ ../cups/language-private.h ../cups/transcode.h ../cups/language.h \
+ ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
+lpoptions.o: lpoptions.c ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/versioning.h \
+ ../cups/ipp-private.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
+ ../cups/http-private.h ../cups/md5-private.h \
+ ../cups/language-private.h ../cups/transcode.h ../cups/language.h \
+ ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
+lppasswd.o: lppasswd.c ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/versioning.h \
+ ../cups/ipp-private.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
+ ../cups/http-private.h ../cups/md5-private.h \
+ ../cups/language-private.h ../cups/transcode.h ../cups/language.h \
+ ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
+lpstat.o: lpstat.c ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/versioning.h \
+ ../cups/ipp-private.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
+ ../cups/http-private.h ../cups/md5-private.h \
+ ../cups/language-private.h ../cups/transcode.h ../cups/language.h \
+ ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
*
* "cupsaddsmb" command for CUPS.
*
- * Copyright 2007-2011 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 2001-2006 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
_cupsLangPuts(stdout, _(" cupsaddsmb [options] -a"));
_cupsLangPuts(stdout, "");
_cupsLangPuts(stdout, _("Options:"));
- _cupsLangPuts(stdout, _(" -E Encrypt the connection to "
- "the server."));
+ _cupsLangPuts(stdout, _(" -E Encrypt the connection."));
_cupsLangPuts(stdout, _(" -H samba-server Use the named SAMBA "
"server."));
- _cupsLangPuts(stdout, _(" -U samba-user Authenticate using the "
- "named SAMBA user."));
+ _cupsLangPuts(stdout, _(" -U username Specify username."));
_cupsLangPuts(stdout, _(" -a Export all printers."));
- _cupsLangPuts(stdout, _(" -h cups-server Use the named CUPS "
- "server."));
- _cupsLangPuts(stdout, _(" -v Be verbose (show "
- "commands)."));
+ _cupsLangPuts(stdout, _(" -h server[:port] Specify server address."));
+ _cupsLangPuts(stdout, _(" -v Be verbose."));
exit(1);
}
*
* Scheduler control program for CUPS.
*
- * Copyright 2007-2011 by Apple Inc.
+ * Copyright 2007-2012 by Apple Inc.
* Copyright 2006-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
_cupsLangPuts(stdout, "");
_cupsLangPuts(stdout, _("Options:"));
_cupsLangPuts(stdout, "");
- _cupsLangPuts(stdout, _(" -E Enable encryption."));
+ _cupsLangPuts(stdout, _(" -E Encrypt the connection."));
_cupsLangPuts(stdout, _(" -U username Specify username."));
_cupsLangPuts(stdout, _(" -h server[:port] Specify server "
"address."));
{
_cupsLangPuts(stdout, _(" FAIL"));
_cupsLangPrintf(stdout,
- _(" **FAIL** Unable to open PPD file - %s"),
- strerror(errno));
+ _(" **FAIL** Unable to open PPD file - %s on "
+ "line %d."), strerror(errno), 0);
continue;
}
}
{
_cupsLangPuts(stdout, _(" FAIL"));
_cupsLangPrintf(stdout,
- _(" **FAIL** Unable to open PPD file - %s"),
- strerror(errno));
+ _(" **FAIL** Unable to open PPD file - %s on "
+ "line %d."), strerror(errno), 0);
}
}
else
_cupsLangPuts(stdout, _(" FAIL"));
_cupsLangPrintf(stdout,
- _(" **FAIL** BAD DefaultImageableArea %s\n"
+ _(" **FAIL** Bad DefaultImageableArea %s\n"
" REF: Page 102, section 5.15."),
attr->value);
}
_cupsLangPuts(stdout, _(" FAIL"));
_cupsLangPrintf(stdout,
- _(" **FAIL** BAD DefaultPaperDimension %s\n"
+ _(" **FAIL** Bad DefaultPaperDimension %s\n"
" REF: Page 103, section 5.15."),
attr->value);
}
_cupsLangPuts(stdout, _(" FAIL"));
_cupsLangPrintf(stdout,
- _(" **FAIL** BAD Default%s %s\n"
+ _(" **FAIL** Bad Default%s %s\n"
" REF: Page 40, section 4.5."),
option->keyword, option->defchoice);
}
if (!errors && !verbose)
_cupsLangPuts(stdout, _(" FAIL"));
- _cupsLangPuts(stdout,
- _(" **FAIL** BAD Manufacturer (should be "
- "\"HP\")\n"
- " REF: Page 211, table D.1."));
+ _cupsLangPrintf(stdout,
+ _(" **FAIL** Bad Manufacturer (should be "
+ "\"%s\")\n"
+ " REF: Page 211, table D.1."),
+ "HP");
}
errors ++;
if (!errors && !verbose)
_cupsLangPuts(stdout, _(" FAIL"));
- _cupsLangPuts(stdout,
- _(" **FAIL** BAD Manufacturer (should be "
- "\"Oki\")\n"
- " REF: Page 211, table D.1."));
+ _cupsLangPrintf(stdout,
+ _(" **FAIL** Bad Manufacturer (should be "
+ "\"%s\")\n"
+ " REF: Page 211, table D.1."),
+ "Oki");
}
errors ++;
_cupsLangPuts(stdout, _(" FAIL"));
_cupsLangPrintf(stdout,
- _(" **FAIL** BAD ModelName - \"%c\" not "
+ _(" **FAIL** Bad ModelName - \"%c\" not "
"allowed in string.\n"
" REF: Pages 59-60, section 5.3."),
*ptr);
_cupsLangPuts(stdout, _(" FAIL"));
_cupsLangPuts(stdout,
- _(" **FAIL** BAD Product - not \"(string)\".\n"
+ _(" **FAIL** Bad Product - not \"(string)\".\n"
" REF: Page 62, section 5.3."));
}
_cupsLangPuts(stdout, _(" FAIL"));
_cupsLangPuts(stdout,
- _(" **FAIL** BAD PSVersion - not \"(string) "
+ _(" **FAIL** Bad PSVersion - not \"(string) "
"int\".\n"
" REF: Pages 62-64, section 5.3."));
}
_cupsLangPuts(stdout, _(" FAIL"));
_cupsLangPuts(stdout,
- _(" **FAIL** BAD ShortNickName - longer "
+ _(" **FAIL** Bad ShortNickName - longer "
"than 31 chars.\n"
" REF: Pages 64-65, section 5.3."));
}
_cupsLangPuts(stdout, _(" FAIL"));
_cupsLangPuts(stdout,
- _(" **FAIL** BAD JobPatchFile attribute in file\n"
+ _(" **FAIL** Bad JobPatchFile attribute in file\n"
" REF: Page 24, section 3.4."));
}
_cupsLangPuts(stdout, _(" FAIL"));
_cupsLangPrintf(stdout,
- _(" **FAIL** Bad %s choice %s\n"
+ _(" **FAIL** Bad option %s choice %s\n"
" REF: Page 84, section 5.9"),
option->keyword, choice->choice);
}
if (verbose >= 0)
_cupsLangPrintf(stdout,
- _(" **FAIL** Multiple occurrences of %s "
- "choice name %s."),
+ _(" **FAIL** Multiple occurrences of "
+ "option %s choice name %s."),
optiona->keyword, choicea->choice);
errors ++;
if (verbose >= 0)
_cupsLangPrintf(stdout,
- _(" **FAIL** %s choice names %s and %s "
- "differ only by case."),
+ _(" **FAIL** Option %s choice names %s and "
+ "%s differ only by case."),
optiona->keyword, choicea->choice, choiceb->choice);
errors ++;
_PWG_FROMPTS(size->width);
pwg_media = _pwgMediaForSize(width_2540ths, length_2540ths);
- if (pwg_media && pwg_media->ppd)
+ if (pwg_media && pwg_media->ppd && (pwg_media->ppd[0] < 'a' || pwg_media->ppd[0] > 'z'))
{
size_t ppdlen = strlen(pwg_media->ppd);
/* Length of standard PPD name */
strlcpy(buf, pwg_media->ppd, sizeof(buf));
+ if (strcmp(size->name, buf) && size->width > size->length)
+ {
+ if (!strcmp(pwg_media->ppd, "DoublePostcardRotated"))
+ strlcpy(buf, "DoublePostcard", sizeof(buf));
+ else if (strstr(size->name, ".Transverse"))
+ snprintf(buf, sizeof(buf), "%s.Transverse", pwg_media->ppd);
+ else
+ snprintf(buf, sizeof(buf), "%sRotated", pwg_media->ppd);
+ }
+
if (size->left == 0 && size->bottom == 0 &&
size->right == size->width && size->top == size->length)
{
- snprintf(buf, sizeof(buf), "%s.Fullbleed", pwg_media->ppd);
+ strlcat(buf, ".Fullbleed", sizeof(buf) - strlen(buf));
if (_cups_strcasecmp(size->name, buf))
{
/*
is_ok = 0;
}
}
- else if (strcmp(size->name, buf) && size->width > size->length)
- {
- if (!strcmp(pwg_media->ppd, "DoublePostcardRotated"))
- strlcpy(buf, "DoublePostcard", sizeof(buf));
- else
- snprintf(buf, sizeof(buf), "%sRotated", pwg_media->ppd);
-
- if (strcmp(size->name, buf))
- {
- snprintf(buf, sizeof(buf), "%s.Transverse", pwg_media->ppd);
- if (strcmp(size->name, buf))
- is_ok = 0;
- }
- }
else if (!strncmp(size->name, pwg_media->ppd, ppdlen))
{
/*
* Check for EnvSizeName as well...
*/
- if (strncmp(pwg_media->ppd, "Env", 3))
+ if (strncmp(pwg_media->ppd, "Env", 3) &&
+ !strncmp(size->name, "Env", 3))
snprintf(buf, sizeof(buf), "Env%s", pwg_media->ppd);
if (strcmp(size->name, buf))
size_t buflen = strlen(buf); /* Length of proposed name */
if (_cups_strncasecmp(size->name, buf, buflen) ||
- strcmp(size->name + buflen, "in"))
+ (strcmp(size->name + buflen, "in") &&
+ size->name[buflen] != '.'))
_cupsLangPrintf(stdout,
_(" %s Size \"%s\" should be \"%s\"."),
prefix, size->name, buf);
"errors."));
_cupsLangPuts(stdout, _(" -q Run silently."));
_cupsLangPuts(stdout, _(" -r Use 'relaxed' open mode."));
- _cupsLangPuts(stdout, _(" -v Be slightly verbose."));
+ _cupsLangPuts(stdout, _(" -v Be verbose."));
_cupsLangPuts(stdout, _(" -vv Be very verbose."));
exit(ERROR_USAGE);
<H2 CLASS="title">{?title} {?printer_name} Error</H2>
-<P>{?message?{message}:Error:}</P>
+<P>{?message?{message}:Error}:</P>
<BLOCKQUOTE>{error}</BLOCKQUOTE>
-ippserver.o: ippserver.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
-ipptool.o: ipptool.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 ../cups/file-private.h
+ippserver.o: ippserver.c ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/versioning.h \
+ ../cups/ipp-private.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
+ ../cups/http-private.h ../cups/md5-private.h \
+ ../cups/language-private.h ../cups/transcode.h ../cups/language.h \
+ ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h
+ipptool.o: ipptool.c ../cups/cups-private.h ../cups/string-private.h \
+ ../config.h ../cups/debug-private.h ../cups/versioning.h \
+ ../cups/ipp-private.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
+ ../cups/http-private.h ../cups/md5-private.h \
+ ../cups/language-private.h ../cups/transcode.h ../cups/language.h \
+ ../cups/pwg-private.h ../cups/cups.h ../cups/file.h \
+ ../cups/ppd-private.h ../cups/ppd.h ../cups/thread-private.h \
+ ../cups/file-private.h
xmltotest.o: xmltotest.c ../config.h ../cups/cups.h ../cups/file.h \
../cups/versioning.h ../cups/ipp.h ../cups/http.h ../cups/array.h \
../cups/language.h
# Usage:
#
# ./ipptool -f filename [-d document-uri=SOMEURI] -t printer-uri ipp-1.1.test
+# ./ipptool -f filename -d NOPRINT=1 -t printer-uri ipp-1.1.test
+#
+# The latter form disables all but the basic file printing.
#
# Regular expressions for URI schemes:
# Test PDF output
{
+ SKIP-IF-DEFINED NOPRINT
SKIP-IF-NOT-DEFINED OPTIONAL_PDF
SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA
}
{
+ SKIP-IF-DEFINED NOPRINT
SKIP-IF-NOT-DEFINED OPTIONAL_PDF
SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA
SKIP-IF-NOT-DEFINED OPTIONAL_DUPLEX
}
{
+ SKIP-IF-DEFINED NOPRINT
SKIP-IF-NOT-DEFINED OPTIONAL_PDF
SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA
}
{
+ SKIP-IF-DEFINED NOPRINT
SKIP-IF-NOT-DEFINED OPTIONAL_PDF
SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA
SKIP-IF-NOT-DEFINED OPTIONAL_DUPLEX
# Test PostScript output
{
+ SKIP-IF-DEFINED NOPRINT
SKIP-IF-NOT-DEFINED OPTIONAL_POSTSCRIPT
SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA
}
{
+ SKIP-IF-DEFINED NOPRINT
SKIP-IF-NOT-DEFINED OPTIONAL_POSTSCRIPT
SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA
SKIP-IF-NOT-DEFINED OPTIONAL_DUPLEX
}
{
+ SKIP-IF-DEFINED NOPRINT
SKIP-IF-NOT-DEFINED OPTIONAL_POSTSCRIPT
SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA
}
{
+ SKIP-IF-DEFINED NOPRINT
SKIP-IF-NOT-DEFINED OPTIONAL_POSTSCRIPT
SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA
SKIP-IF-NOT-DEFINED OPTIONAL_DUPLEX
# Test JPEG output
{
+ SKIP-IF-DEFINED NOPRINT
SKIP-IF-NOT-DEFINED OPTIONAL_JPEG
SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA
}
{
+ SKIP-IF-DEFINED NOPRINT
SKIP-IF-NOT-DEFINED OPTIONAL_JPEG
SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA
}
{
+ SKIP-IF-DEFINED NOPRINT
SKIP-IF-NOT-DEFINED OPTIONAL_JPEG
SKIP-IF-NOT-DEFINED OPTIONAL_4X6_MEDIA
}
{
+ SKIP-IF-DEFINED NOPRINT
SKIP-IF-NOT-DEFINED OPTIONAL_JPEG
SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA
}
{
+ SKIP-IF-DEFINED NOPRINT
SKIP-IF-NOT-DEFINED OPTIONAL_JPEG
SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA
}
{
+ SKIP-IF-DEFINED NOPRINT
SKIP-IF-NOT-DEFINED OPTIONAL_JPEG
SKIP-IF-NOT-DEFINED OPTIONAL_4X6_MEDIA
# Print-Job with job-sheets
{
+ SKIP-IF-DEFINED NOPRINT
SKIP-IF-NOT-DEFINED OPTIONAL_PDF
SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA
SKIP-IF-NOT-DEFINED OPTIONAL_STANDARD_SHEET
}
{
+ SKIP-IF-DEFINED NOPRINT
SKIP-IF-NOT-DEFINED OPTIONAL_PDF
SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA
SKIP-IF-NOT-DEFINED OPTIONAL_STANDARD_SHEET
}
{
+ SKIP-IF-DEFINED NOPRINT
SKIP-IF-NOT-DEFINED OPTIONAL_POSTSCRIPT
SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA
SKIP-IF-NOT-DEFINED OPTIONAL_STANDARD_SHEET
}
{
+ SKIP-IF-DEFINED NOPRINT
SKIP-IF-NOT-DEFINED OPTIONAL_POSTSCRIPT
SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA
SKIP-IF-NOT-DEFINED OPTIONAL_STANDARD_SHEET
# Test number-up output
{
+ SKIP-IF-DEFINED NOPRINT
SKIP-IF-NOT-DEFINED OPTIONAL_PDF
SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA
SKIP-IF-NOT-DEFINED OPTIONAL_2UP
}
{
+ SKIP-IF-DEFINED NOPRINT
SKIP-IF-NOT-DEFINED OPTIONAL_PDF
SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA
SKIP-IF-NOT-DEFINED OPTIONAL_2UP
}
{
+ SKIP-IF-DEFINED NOPRINT
SKIP-IF-NOT-DEFINED OPTIONAL_POSTSCRIPT
SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA
SKIP-IF-NOT-DEFINED OPTIONAL_2UP
}
{
+ SKIP-IF-DEFINED NOPRINT
SKIP-IF-NOT-DEFINED OPTIONAL_POSTSCRIPT
SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA
SKIP-IF-NOT-DEFINED OPTIONAL_2UP
# Test output with print-quality...
{
+ SKIP-IF-DEFINED NOPRINT
SKIP-IF-NOT-DEFINED OPTIONAL_JPEG
SKIP-IF-NOT-DEFINED OPTIONAL_4X6_MEDIA
SKIP-IF-NOT-DEFINED OPTIONAL_DRAFT_QUALITY
}
{
+ SKIP-IF-DEFINED NOPRINT
SKIP-IF-NOT-DEFINED OPTIONAL_JPEG
SKIP-IF-NOT-DEFINED OPTIONAL_4X6_MEDIA
SKIP-IF-NOT-DEFINED OPTIONAL_NORMAL_QUALITY
}
{
+ SKIP-IF-DEFINED NOPRINT
SKIP-IF-NOT-DEFINED OPTIONAL_JPEG
SKIP-IF-NOT-DEFINED OPTIONAL_4X6_MEDIA
SKIP-IF-NOT-DEFINED OPTIONAL_HIGH_QUALITY
}
{
+ SKIP-IF-DEFINED NOPRINT
SKIP-IF-NOT-DEFINED OPTIONAL_PDF
SKIP-IF-NOT-DEFINED OPTIONAL_A4_MEDIA
SKIP-IF-NOT-DEFINED OPTIONAL_DRAFT_QUALITY
}
{
+ SKIP-IF-DEFINED NOPRINT
SKIP-IF-NOT-DEFINED OPTIONAL_PDF
SKIP-IF-NOT-DEFINED OPTIONAL_LETTER_MEDIA
SKIP-IF-NOT-DEFINED OPTIONAL_DRAFT_QUALITY
if (Output == _CUPS_OUTPUT_PLIST && interval)
{
- _cupsLangPuts(stderr, _("ipptool: \"-i\" is incompatible with "
- "\"-X\"."));
+ _cupsLangPuts(stderr, _("ipptool: \"-i\" and \"-n\" are "
+ "incompatible with -X\"."));
usage();
}
break;
if (Output == _CUPS_OUTPUT_PLIST && repeat)
{
- _cupsLangPuts(stderr, _("ipptool: \"-n\" is incompatible with "
- "\"-X\"."));
+ _cupsLangPuts(stderr, _("ipptool: \"-i\" and \"-n\" are "
+ "incompatible with -X\"."));
usage();
}
break;
_cupsLangPuts(stderr, _(" -6 Connect using IPv6."));
_cupsLangPuts(stderr, _(" -C Send requests using "
"chunking (default)."));
- _cupsLangPuts(stderr, _(" -E Test with TLS "
- "encryption."));
+ _cupsLangPuts(stdout, _(" -E Test with HTTP Upgrade to "
+ "TLS."));
_cupsLangPuts(stderr, _(" -I Ignore errors."));
_cupsLangPuts(stderr, _(" -L Send requests using "
"content-length."));
"the given time interval."));
_cupsLangPuts(stderr, _(" -n count Repeat the last file the "
"given number of times."));
- _cupsLangPuts(stderr, _(" -q Be quiet - no output "
- "except errors."));
+ _cupsLangPuts(stderr, _(" -q Run silently."));
_cupsLangPuts(stderr, _(" -t Produce a test report."));
- _cupsLangPuts(stderr, _(" -v Show all attributes sent "
- "and received."));
+ _cupsLangPuts(stderr, _(" -v Be verbose."));
exit(1);
}
ln -s $root/templates /tmp/cups-$user/share
#
-# Mac OS X filters and configuration files...
+# Local filters and configuration files...
#
if test `uname` = Darwin; then
/*
- * Do we have Mac OS X 10.4's mbr_XXX functions?
+ * Do we have OS X 10.4's mbr_XXX functions?
*/
/* #undef HAVE_MEMBERSHIP_H */
/*
- * Location of Mac OS X localization bundle, if any.
+ * Location of OS X localization bundle, if any.
*/
/* #undef CUPS_BUNDLEDIR */
274FF5E913332D4300317ECB /* PBXTargetDependency */,
274FF648133335A300317ECB /* PBXTargetDependency */,
274FF65E13333A3400317ECB /* PBXTargetDependency */,
- 274FF67213333AE400317ECB /* PBXTargetDependency */,
724379531333FECE009631B9 /* PBXTargetDependency */,
724379111333E4EA009631B9 /* PBXTargetDependency */,
276683FF1337F7C5000D33D0 /* PBXTargetDependency */,
/* End PBXAggregateTarget section */
/* Begin PBXBuildFile section */
- 270CCDB9135E3D0900007BE2 /* libcups_static.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 72F75A4C1336F31B004BB496 /* libcups_static.a */; };
270CCDBA135E3D0900007BE2 /* libcupsmime.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 72220FAC13330B2200FCA411 /* libcupsmime.dylib */; };
270CCDBC135E3D3E00007BE2 /* testmime.c in Sources */ = {isa = PBXBuildFile; fileRef = 270CCDBB135E3D3E00007BE2 /* testmime.c */; };
273BF6C71333B5370022CAAB /* testcups.c in Sources */ = {isa = PBXBuildFile; fileRef = 273BF6C61333B5370022CAAB /* testcups.c */; };
- 273BF6CE1333B5950022CAAB /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 273BF6CB1333B5950022CAAB /* CoreFoundation.framework */; };
- 273BF6CF1333B5950022CAAB /* libiconv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 273BF6CC1333B5950022CAAB /* libiconv.dylib */; };
- 273BF6D01333B5950022CAAB /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 273BF6CD1333B5950022CAAB /* libz.dylib */; };
- 273BF6D31333B5C30022CAAB /* Kerberos.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 273BF6D11333B5C30022CAAB /* Kerberos.framework */; };
- 273BF6D41333B5C30022CAAB /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 273BF6D21333B5C30022CAAB /* Security.framework */; };
- 273BF6D71333B5F60022CAAB /* libresolv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 273BF6D51333B5F60022CAAB /* libresolv.dylib */; };
- 273BF6D81333B5F60022CAAB /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 273BF6D61333B5F60022CAAB /* SystemConfiguration.framework */; };
274FF5D913332CC700317ECB /* cups-driverd.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 274FF5D613332CC700317ECB /* cups-driverd.cxx */; };
274FF5DA13332CC700317ECB /* util.c in Sources */ = {isa = PBXBuildFile; fileRef = 274FF5D713332CC700317ECB /* util.c */; };
274FF5DD13332D0600317ECB /* libcups.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 72220EAE1333047D00FCA411 /* libcups.dylib */; };
274FF64A1333398D00317ECB /* cups-exec.c in Sources */ = {isa = PBXBuildFile; fileRef = 274FF6491333398D00317ECB /* cups-exec.c */; };
274FF658133339D300317ECB /* libcups.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 72220EAE1333047D00FCA411 /* libcups.dylib */; };
274FF65C133339FC00317ECB /* cups-lpd.c in Sources */ = {isa = PBXBuildFile; fileRef = 274FF65B133339FC00317ECB /* cups-lpd.c */; };
- 274FF66E13333AB500317ECB /* libcups.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 72220EAE1333047D00FCA411 /* libcups.dylib */; };
- 274FF67013333ACF00317ECB /* cups-polld.c in Sources */ = {isa = PBXBuildFile; fileRef = 274FF66F13333ACF00317ECB /* cups-polld.c */; };
274FF68513333B4300317ECB /* libcups.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 72220EAE1333047D00FCA411 /* libcups.dylib */; };
274FF68613333B4300317ECB /* libcupsmime.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 72220FAC13330B2200FCA411 /* libcupsmime.dylib */; };
274FF68813333B6E00317ECB /* cupsfilter.c in Sources */ = {isa = PBXBuildFile; fileRef = 274FF68713333B6E00317ECB /* cupsfilter.c */; };
274FF6B61333B1C400317ECB /* transcode.c in Sources */ = {isa = PBXBuildFile; fileRef = 72220F06133305BB00FCA411 /* transcode.c */; };
274FF6B71333B1C400317ECB /* usersys.c in Sources */ = {isa = PBXBuildFile; fileRef = 72220F08133305BB00FCA411 /* usersys.c */; };
274FF6B81333B1C400317ECB /* util.c in Sources */ = {isa = PBXBuildFile; fileRef = 72220F09133305BB00FCA411 /* util.c */; };
- 274FF6BA1333B1C400317ECB /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 72220F49133306BB00FCA411 /* CoreFoundation.framework */; };
- 274FF6BB1333B1C400317ECB /* Kerberos.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 72220F55133308EA00FCA411 /* Kerberos.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
- 274FF6BC1333B1C400317ECB /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 72220F4B133306BB00FCA411 /* Security.framework */; };
- 274FF6BD1333B1C400317ECB /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 72220F4C133306BB00FCA411 /* SystemConfiguration.framework */; };
- 274FF6BE1333B1C400317ECB /* libiconv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 72220F51133308C100FCA411 /* libiconv.dylib */; };
- 274FF6BF1333B1C400317ECB /* libresolv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 72220F53133308CB00FCA411 /* libresolv.dylib */; };
- 274FF6C01333B1C400317ECB /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 72220F4A133306BB00FCA411 /* libz.dylib */; };
274FF6C21333B1C400317ECB /* adminutil.h in Headers */ = {isa = PBXBuildFile; fileRef = 72220EB71333056300FCA411 /* adminutil.h */; settings = {ATTRIBUTES = (); }; };
274FF6C31333B1C400317ECB /* array.h in Headers */ = {isa = PBXBuildFile; fileRef = 72220EB91333056300FCA411 /* array.h */; settings = {ATTRIBUTES = (); }; };
274FF6C41333B1C400317ECB /* backend.h in Headers */ = {isa = PBXBuildFile; fileRef = 72220EBE1333056300FCA411 /* backend.h */; settings = {ATTRIBUTES = (); }; };
276683FD1337F7B8000D33D0 /* libcups.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 72220EAE1333047D00FCA411 /* libcups.dylib */; };
2766840F1337FA38000D33D0 /* libcups.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 72220EAE1333047D00FCA411 /* libcups.dylib */; };
276684111337FA7C000D33D0 /* cupsaddsmb.c in Sources */ = {isa = PBXBuildFile; fileRef = 276684101337FA7C000D33D0 /* cupsaddsmb.c */; };
- 278C58D9136B645C00836530 /* libcups_static.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 72F75A4C1336F31B004BB496 /* libcups_static.a */; };
- 278C58DE136B645C00836530 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 278C58DA136B645C00836530 /* CoreFoundation.framework */; };
- 278C58DF136B645C00836530 /* Kerberos.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 278C58DB136B645C00836530 /* Kerberos.framework */; };
- 278C58E1136B645C00836530 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 278C58DD136B645C00836530 /* SystemConfiguration.framework */; };
278C58E3136B647200836530 /* testhttp.c in Sources */ = {isa = PBXBuildFile; fileRef = 278C58E2136B647200836530 /* testhttp.c */; };
- 278C58E4136B649200836530 /* libcups_static.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 72F75A4C1336F31B004BB496 /* libcups_static.a */; };
278C58E9136B64B000836530 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 278C58E5136B64AF00836530 /* CoreFoundation.framework */; };
278C58EA136B64B000836530 /* Kerberos.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 278C58E6136B64B000836530 /* Kerberos.framework */; };
278C58EB136B64B000836530 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 278C58E7136B64B000836530 /* Security.framework */; };
278C58EC136B64B000836530 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 278C58E8136B64B000836530 /* SystemConfiguration.framework */; };
- 278C58F6136B652300836530 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 278C58F4136B652300836530 /* Security.framework */; };
720DD6CD1358FD720064AA82 /* libcups.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 72220EAE1333047D00FCA411 /* libcups.dylib */; };
720DD6D31358FDDE0064AA82 /* snmp.c in Sources */ = {isa = PBXBuildFile; fileRef = 720DD6D21358FDDE0064AA82 /* snmp.c */; };
720DD6D413590AB90064AA82 /* ieee1284.c in Sources */ = {isa = PBXBuildFile; fileRef = 724379CA1334000E009631B9 /* ieee1284.c */; };
72220F43133305BB00FCA411 /* util.c in Sources */ = {isa = PBXBuildFile; fileRef = 72220F09133305BB00FCA411 /* util.c */; };
72220F44133305BB00FCA411 /* versioning.h in Headers */ = {isa = PBXBuildFile; fileRef = 72220F0A133305BB00FCA411 /* versioning.h */; settings = {ATTRIBUTES = (Public, ); }; };
72220F481333063D00FCA411 /* config.h in Headers */ = {isa = PBXBuildFile; fileRef = 72220F471333063D00FCA411 /* config.h */; settings = {ATTRIBUTES = (Private, ); }; };
- 72220F4D133306BB00FCA411 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 72220F49133306BB00FCA411 /* CoreFoundation.framework */; };
- 72220F4E133306BB00FCA411 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 72220F4A133306BB00FCA411 /* libz.dylib */; };
- 72220F4F133306BB00FCA411 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 72220F4B133306BB00FCA411 /* Security.framework */; };
- 72220F50133306BB00FCA411 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 72220F4C133306BB00FCA411 /* SystemConfiguration.framework */; };
- 72220F52133308C100FCA411 /* libiconv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 72220F51133308C100FCA411 /* libiconv.dylib */; };
- 72220F54133308CB00FCA411 /* libresolv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 72220F53133308CB00FCA411 /* libresolv.dylib */; };
- 72220F56133308EA00FCA411 /* Kerberos.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 72220F55133308EA00FCA411 /* Kerberos.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
72220F6613330A7000FCA411 /* libcups.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 72220EAE1333047D00FCA411 /* libcups.dylib */; };
- 72220F6813330A8500FCA411 /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 72220F6713330A8500FCA411 /* ApplicationServices.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
72220F9013330B0C00FCA411 /* auth.c in Sources */ = {isa = PBXBuildFile; fileRef = 72220F6913330B0C00FCA411 /* auth.c */; };
72220F9113330B0C00FCA411 /* banners.c in Sources */ = {isa = PBXBuildFile; fileRef = 72220F6B13330B0C00FCA411 /* banners.c */; };
72220F9213330B0C00FCA411 /* cert.c in Sources */ = {isa = PBXBuildFile; fileRef = 72220F6D13330B0C00FCA411 /* cert.c */; };
724379511333FEBB009631B9 /* dnssd.c in Sources */ = {isa = PBXBuildFile; fileRef = 724379501333FEBB009631B9 /* dnssd.c */; };
724379561333FF04009631B9 /* libcups.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 72220EAE1333047D00FCA411 /* libcups.dylib */; };
724379661333FF3B009631B9 /* libcups.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 72220EAE1333047D00FCA411 /* libcups.dylib */; };
- 724379681333FF3B009631B9 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 724379671333FF3B009631B9 /* IOKit.framework */; };
724379C71333FFC7009631B9 /* usb.c in Sources */ = {isa = PBXBuildFile; fileRef = 724379C51333FFC7009631B9 /* usb.c */; };
- 724379C91333FFF3009631B9 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 724379C81333FFF3009631B9 /* CoreFoundation.framework */; };
724379CB1334000E009631B9 /* ieee1284.c in Sources */ = {isa = PBXBuildFile; fileRef = 724379CA1334000E009631B9 /* ieee1284.c */; };
7258EAED134594EB009286F1 /* rastertopwg.c in Sources */ = {isa = PBXBuildFile; fileRef = 7258EAEC134594EB009286F1 /* rastertopwg.c */; };
7258EAF413459B6D009286F1 /* libcups.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 72220EAE1333047D00FCA411 /* libcups.dylib */; };
7258EAF513459B6D009286F1 /* libcupsimage.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 72F75A611336F9A3004BB496 /* libcupsimage.dylib */; };
- 7263EE2713330D2800BA4D44 /* libpam.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 7263EE2613330D2800BA4D44 /* libpam.dylib */; };
- 7263EE2C13330D5C00BA4D44 /* Kerberos.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7263EE2913330D5C00BA4D44 /* Kerberos.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
- 7263EE2D13330D5C00BA4D44 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7263EE2A13330D5C00BA4D44 /* Security.framework */; };
- 7263EE2E13330D5C00BA4D44 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7263EE2B13330D5C00BA4D44 /* SystemConfiguration.framework */; };
- 7263EE3013330DC100BA4D44 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7263EE2F13330DC100BA4D44 /* IOKit.framework */; };
- 7263EE3213330E1E00BA4D44 /* libpthread.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 7263EE3113330E1E00BA4D44 /* libpthread.dylib */; };
- 7263EE3413330E3C00BA4D44 /* libresolv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 7263EE3313330E3C00BA4D44 /* libresolv.dylib */; };
- 7263EE3613330E4E00BA4D44 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7263EE3513330E4E00BA4D44 /* CoreFoundation.framework */; };
- 7263EE3813330E7500BA4D44 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 7263EE3713330E7500BA4D44 /* libz.dylib */; };
- 7263EE3A13330EC500BA4D44 /* libldap.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 7263EE3913330EC500BA4D44 /* libldap.dylib */; };
726AD702135E8A90002C930D /* ippserver.c in Sources */ = {isa = PBXBuildFile; fileRef = 726AD701135E8A90002C930D /* ippserver.c */; };
- 726AD707135E8B11002C930D /* libcups_static.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 72F75A4C1336F31B004BB496 /* libcups_static.a */; };
- 726AD708135E8B11002C930D /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 72220F49133306BB00FCA411 /* CoreFoundation.framework */; };
- 726AD709135E8B11002C930D /* Kerberos.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 72220F55133308EA00FCA411 /* Kerberos.framework */; };
- 726AD70A135E8B11002C930D /* libresolv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 72220F53133308CB00FCA411 /* libresolv.dylib */; };
- 726AD70B135E8B11002C930D /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 72220F4A133306BB00FCA411 /* libz.dylib */; };
- 726AD70C135E8B11002C930D /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 72220F4B133306BB00FCA411 /* Security.framework */; };
- 726AD70D135E8B11002C930D /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 72220F4C133306BB00FCA411 /* SystemConfiguration.framework */; };
- 726AD70E135E8B5E002C930D /* libiconv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 72220F51133308C100FCA411 /* libiconv.dylib */; };
7271883D1374AB14001A2036 /* mime-private.h in Headers */ = {isa = PBXBuildFile; fileRef = 7271883C1374AB14001A2036 /* mime-private.h */; };
+ 728FB7E4153600FA005426E1 /* avahi.c in Sources */ = {isa = PBXBuildFile; fileRef = 728FB7DE153600FA005426E1 /* avahi.c */; };
+ 728FB7E8153600FA005426E1 /* tls.c in Sources */ = {isa = PBXBuildFile; fileRef = 728FB7E3153600FA005426E1 /* tls.c */; };
+ 728FB7E91536161C005426E1 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 278C58E5136B64AF00836530 /* CoreFoundation.framework */; };
+ 728FB7EA1536161C005426E1 /* Kerberos.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 278C58E6136B64B000836530 /* Kerberos.framework */; };
+ 728FB7EB1536161C005426E1 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 278C58E7136B64B000836530 /* Security.framework */; };
+ 728FB7ED1536161C005426E1 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 728FB7EC1536161C005426E1 /* libz.dylib */; };
+ 728FB7EE15361642005426E1 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 278C58E8136B64B000836530 /* SystemConfiguration.framework */; };
+ 728FB7F11536167A005426E1 /* libiconv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 728FB7EF1536167A005426E1 /* libiconv.dylib */; };
+ 728FB7F21536167A005426E1 /* libresolv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 728FB7F01536167A005426E1 /* libresolv.dylib */; };
72C16CB9137B195D007E4BF4 /* file.c in Sources */ = {isa = PBXBuildFile; fileRef = 72C16CB8137B195D007E4BF4 /* file.c */; };
72F75A5C1336F988004BB496 /* cupstestppd.c in Sources */ = {isa = PBXBuildFile; fileRef = 72F75A5B1336F988004BB496 /* cupstestppd.c */; };
72F75A671336FA38004BB496 /* libcups.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 72220EAE1333047D00FCA411 /* libcups.dylib */; };
remoteGlobalIDString = 274FF64E133339C400317ECB;
remoteInfo = "cups-lpd";
};
- 274FF66C13333AAD00317ECB /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 72BF96371333042100B1EAD7 /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 72220EAD1333047D00FCA411;
- remoteInfo = libcups;
- };
- 274FF67113333AE400317ECB /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = 72BF96371333042100B1EAD7 /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 274FF66213333A9B00317ECB;
- remoteInfo = "cups-polld";
- };
274FF68113333B3C00317ECB /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 72BF96371333042100B1EAD7 /* Project object */;
);
runOnlyForDeploymentPostprocessing = 1;
};
- 274FF66113333A9B00317ECB /* CopyFiles */ = {
- isa = PBXCopyFilesBuildPhase;
- buildActionMask = 2147483647;
- dstPath = /usr/share/man/man1/;
- dstSubfolderSpec = 0;
- files = (
- );
- runOnlyForDeploymentPostprocessing = 1;
- };
274FF67613333B2F00317ECB /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
2732E092137A3F5200FAFEF6 /* lpstat.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = lpstat.c; path = ../systemv/lpstat.c; sourceTree = "<group>"; };
273BF6BD1333B5000022CAAB /* testcups */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = testcups; sourceTree = BUILT_PRODUCTS_DIR; };
273BF6C61333B5370022CAAB /* testcups.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testcups.c; path = ../cups/testcups.c; sourceTree = "<group>"; };
- 273BF6CB1333B5950022CAAB /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = SDKs/MacOSX10.6.sdk/System/Library/Frameworks/CoreFoundation.framework; sourceTree = DEVELOPER_DIR; };
- 273BF6CC1333B5950022CAAB /* libiconv.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libiconv.dylib; path = SDKs/MacOSX10.6.sdk/usr/lib/libiconv.dylib; sourceTree = DEVELOPER_DIR; };
- 273BF6CD1333B5950022CAAB /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = SDKs/MacOSX10.6.sdk/usr/lib/libz.dylib; sourceTree = DEVELOPER_DIR; };
- 273BF6D11333B5C30022CAAB /* Kerberos.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Kerberos.framework; path = SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Kerberos.framework; sourceTree = DEVELOPER_DIR; };
- 273BF6D21333B5C30022CAAB /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Security.framework; sourceTree = DEVELOPER_DIR; };
- 273BF6D51333B5F60022CAAB /* libresolv.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libresolv.dylib; path = SDKs/MacOSX10.6.sdk/usr/lib/libresolv.dylib; sourceTree = DEVELOPER_DIR; };
- 273BF6D61333B5F60022CAAB /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = SDKs/MacOSX10.6.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; };
274FF5CC13332B1F00317ECB /* cups-driverd */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "cups-driverd"; sourceTree = BUILT_PRODUCTS_DIR; };
274FF5D613332CC700317ECB /* cups-driverd.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "cups-driverd.cxx"; path = "../scheduler/cups-driverd.cxx"; sourceTree = "<group>"; };
274FF5D713332CC700317ECB /* util.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = util.c; path = ../scheduler/util.c; sourceTree = "<group>"; };
274FF6491333398D00317ECB /* cups-exec.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = "cups-exec.c"; path = "../scheduler/cups-exec.c"; sourceTree = "<group>"; };
274FF64F133339C400317ECB /* cups-lpd */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "cups-lpd"; sourceTree = BUILT_PRODUCTS_DIR; };
274FF65B133339FC00317ECB /* cups-lpd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = "cups-lpd.c"; path = "../scheduler/cups-lpd.c"; sourceTree = "<group>"; };
- 274FF66313333A9B00317ECB /* cups-polld */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "cups-polld"; sourceTree = BUILT_PRODUCTS_DIR; };
- 274FF66F13333ACF00317ECB /* cups-polld.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = "cups-polld.c"; path = "../scheduler/cups-polld.c"; sourceTree = "<group>"; };
274FF67813333B2F00317ECB /* cupsfilter */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = cupsfilter; sourceTree = BUILT_PRODUCTS_DIR; };
274FF68713333B6E00317ECB /* cupsfilter.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cupsfilter.c; path = ../scheduler/cupsfilter.c; sourceTree = "<group>"; };
276683561337A8C5000D33D0 /* cups.strings */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = cups.strings; path = ../locale/cups.strings; sourceTree = "<group>"; };
276684041337FA1D000D33D0 /* cupsaddsmb */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = cupsaddsmb; sourceTree = BUILT_PRODUCTS_DIR; };
276684101337FA7C000D33D0 /* cupsaddsmb.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cupsaddsmb.c; path = ../systemv/cupsaddsmb.c; sourceTree = "<group>"; };
278C58CB136B640300836530 /* testhttp */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = testhttp; sourceTree = BUILT_PRODUCTS_DIR; };
- 278C58DA136B645C00836530 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = SDKs/MacOSX10.6.sdk/System/Library/Frameworks/CoreFoundation.framework; sourceTree = DEVELOPER_DIR; };
- 278C58DB136B645C00836530 /* Kerberos.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Kerberos.framework; path = SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Kerberos.framework; sourceTree = DEVELOPER_DIR; };
- 278C58DD136B645C00836530 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = SDKs/MacOSX10.6.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; };
278C58E2136B647200836530 /* testhttp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = testhttp.c; path = ../cups/testhttp.c; sourceTree = "<group>"; };
278C58E5136B64AF00836530 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = "<absolute>"; };
278C58E6136B64B000836530 /* Kerberos.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Kerberos.framework; path = /System/Library/Frameworks/Kerberos.framework; sourceTree = "<absolute>"; };
278C58E7136B64B000836530 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = /System/Library/Frameworks/Security.framework; sourceTree = "<absolute>"; };
278C58E8136B64B000836530 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = /System/Library/Frameworks/SystemConfiguration.framework; sourceTree = "<absolute>"; };
- 278C58F4136B652300836530 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Security.framework; sourceTree = DEVELOPER_DIR; };
27D3037C134148CB00F022B1 /* libcups_s.exp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.exports; name = libcups_s.exp; path = ../cups/libcups_s.exp; sourceTree = "<group>"; };
27D3037D134148CB00F022B1 /* libcups2.def */ = {isa = PBXFileReference; lastKnownFileType = text; name = libcups2.def; path = ../cups/libcups2.def; sourceTree = "<group>"; };
720DD6C21358FD5F0064AA82 /* snmp */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = snmp; sourceTree = BUILT_PRODUCTS_DIR; };
72220F09133305BB00FCA411 /* util.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = util.c; path = ../cups/util.c; sourceTree = "<group>"; };
72220F0A133305BB00FCA411 /* versioning.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = versioning.h; path = ../cups/versioning.h; sourceTree = "<group>"; };
72220F471333063D00FCA411 /* config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = "<group>"; };
- 72220F49133306BB00FCA411 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = SDKs/MacOSX10.6.sdk/System/Library/Frameworks/CoreFoundation.framework; sourceTree = DEVELOPER_DIR; };
- 72220F4A133306BB00FCA411 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = SDKs/MacOSX10.6.sdk/usr/lib/libz.dylib; sourceTree = DEVELOPER_DIR; };
- 72220F4B133306BB00FCA411 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Security.framework; sourceTree = DEVELOPER_DIR; };
- 72220F4C133306BB00FCA411 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = SDKs/MacOSX10.6.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; };
- 72220F51133308C100FCA411 /* libiconv.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libiconv.dylib; path = SDKs/MacOSX10.6.sdk/usr/lib/libiconv.dylib; sourceTree = DEVELOPER_DIR; };
- 72220F53133308CB00FCA411 /* libresolv.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libresolv.dylib; path = SDKs/MacOSX10.6.sdk/usr/lib/libresolv.dylib; sourceTree = DEVELOPER_DIR; };
- 72220F55133308EA00FCA411 /* Kerberos.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Kerberos.framework; path = SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Kerberos.framework; sourceTree = DEVELOPER_DIR; };
72220F5B13330A5A00FCA411 /* cupsd */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = cupsd; sourceTree = BUILT_PRODUCTS_DIR; };
- 72220F6713330A8500FCA411 /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = SDKs/MacOSX10.6.sdk/System/Library/Frameworks/ApplicationServices.framework; sourceTree = DEVELOPER_DIR; };
72220F6913330B0C00FCA411 /* auth.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = auth.c; path = ../scheduler/auth.c; sourceTree = SOURCE_ROOT; };
72220F6A13330B0C00FCA411 /* auth.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = auth.h; path = ../scheduler/auth.h; sourceTree = SOURCE_ROOT; };
72220F6B13330B0C00FCA411 /* banners.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = banners.c; path = ../scheduler/banners.c; sourceTree = SOURCE_ROOT; };
724379471333FEA9009631B9 /* dnssd */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = dnssd; sourceTree = BUILT_PRODUCTS_DIR; };
724379501333FEBB009631B9 /* dnssd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = dnssd.c; path = ../backend/dnssd.c; sourceTree = "<group>"; };
7243795B1333FF1D009631B9 /* usb */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = usb; sourceTree = BUILT_PRODUCTS_DIR; };
- 724379671333FF3B009631B9 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = SDKs/MacOSX10.7.sdk/System/Library/Frameworks/IOKit.framework; sourceTree = DEVELOPER_DIR; };
724379C41333FFC7009631B9 /* usb-darwin.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = "usb-darwin.c"; path = "../backend/usb-darwin.c"; sourceTree = "<group>"; };
724379C51333FFC7009631B9 /* usb.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = usb.c; path = ../backend/usb.c; sourceTree = "<group>"; };
- 724379C81333FFF3009631B9 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = SDKs/MacOSX10.7.sdk/System/Library/Frameworks/CoreFoundation.framework; sourceTree = DEVELOPER_DIR; };
724379CA1334000E009631B9 /* ieee1284.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ieee1284.c; path = ../backend/ieee1284.c; sourceTree = "<group>"; };
7258EAE2134594C4009286F1 /* rastertopwg */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = rastertopwg; sourceTree = BUILT_PRODUCTS_DIR; };
7258EAEC134594EB009286F1 /* rastertopwg.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = rastertopwg.c; path = ../filter/rastertopwg.c; sourceTree = "<group>"; };
- 7263EE2613330D2800BA4D44 /* libpam.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libpam.dylib; path = SDKs/MacOSX10.6.sdk/usr/lib/libpam.dylib; sourceTree = DEVELOPER_DIR; };
- 7263EE2913330D5C00BA4D44 /* Kerberos.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Kerberos.framework; path = SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Kerberos.framework; sourceTree = DEVELOPER_DIR; };
- 7263EE2A13330D5C00BA4D44 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Security.framework; sourceTree = DEVELOPER_DIR; };
- 7263EE2B13330D5C00BA4D44 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = SDKs/MacOSX10.6.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; };
- 7263EE2F13330DC100BA4D44 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = SDKs/MacOSX10.6.sdk/System/Library/Frameworks/IOKit.framework; sourceTree = DEVELOPER_DIR; };
- 7263EE3113330E1E00BA4D44 /* libpthread.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libpthread.dylib; path = SDKs/MacOSX10.6.sdk/usr/lib/libpthread.dylib; sourceTree = DEVELOPER_DIR; };
- 7263EE3313330E3C00BA4D44 /* libresolv.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libresolv.dylib; path = SDKs/MacOSX10.6.sdk/usr/lib/libresolv.dylib; sourceTree = DEVELOPER_DIR; };
- 7263EE3513330E4E00BA4D44 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = SDKs/MacOSX10.6.sdk/System/Library/Frameworks/CoreFoundation.framework; sourceTree = DEVELOPER_DIR; };
- 7263EE3713330E7500BA4D44 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = SDKs/MacOSX10.6.sdk/usr/lib/libz.dylib; sourceTree = DEVELOPER_DIR; };
- 7263EE3913330EC500BA4D44 /* libldap.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libldap.dylib; path = SDKs/MacOSX10.6.sdk/usr/lib/libldap.dylib; sourceTree = DEVELOPER_DIR; };
726AD6F7135E88F0002C930D /* ippserver */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = ippserver; sourceTree = BUILT_PRODUCTS_DIR; };
726AD701135E8A90002C930D /* ippserver.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ippserver.c; path = ../test/ippserver.c; sourceTree = "<group>"; };
7271881713746EA8001A2036 /* commandtops.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = commandtops.c; path = ../filter/commandtops.c; sourceTree = "<group>"; };
7271882213746EA8001A2036 /* rastertohp.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = rastertohp.c; path = ../filter/rastertohp.c; sourceTree = "<group>"; };
7271882313746EA8001A2036 /* rastertolabel.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = rastertolabel.c; path = ../filter/rastertolabel.c; sourceTree = "<group>"; };
7271883C1374AB14001A2036 /* mime-private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "mime-private.h"; path = "../scheduler/mime-private.h"; sourceTree = "<group>"; };
+ 728FB7DE153600FA005426E1 /* avahi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = avahi.c; path = ../scheduler/avahi.c; sourceTree = "<group>"; };
+ 728FB7DF153600FA005426E1 /* avahi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = avahi.h; path = ../scheduler/avahi.h; sourceTree = "<group>"; };
+ 728FB7E0153600FA005426E1 /* tls-darwin.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = "tls-darwin.c"; path = "../scheduler/tls-darwin.c"; sourceTree = "<group>"; };
+ 728FB7E1153600FA005426E1 /* tls-gnutls.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = "tls-gnutls.c"; path = "../scheduler/tls-gnutls.c"; sourceTree = "<group>"; };
+ 728FB7E2153600FA005426E1 /* tls-openssl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = "tls-openssl.c"; path = "../scheduler/tls-openssl.c"; sourceTree = "<group>"; };
+ 728FB7E3153600FA005426E1 /* tls.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = tls.c; path = ../scheduler/tls.c; sourceTree = "<group>"; };
+ 728FB7EC1536161C005426E1 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = ../../../../../usr/lib/libz.dylib; sourceTree = "<group>"; };
+ 728FB7EF1536167A005426E1 /* libiconv.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libiconv.dylib; path = ../../../../../usr/lib/libiconv.dylib; sourceTree = "<group>"; };
+ 728FB7F01536167A005426E1 /* libresolv.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libresolv.dylib; path = ../../../../../usr/lib/libresolv.dylib; sourceTree = "<group>"; };
72C16CB8137B195D007E4BF4 /* file.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = file.c; path = ../scheduler/file.c; sourceTree = SOURCE_ROOT; };
- 72F75A4C1336F31B004BB496 /* libcups_static.a */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = libcups_static.a; sourceTree = BUILT_PRODUCTS_DIR; };
+ 72F75A4C1336F31B004BB496 /* libcups_static.a */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; name = libcups_static.a; path = "/Users/msweet/c/cups-trunk/xcode/build/Release/libcups_static.a"; sourceTree = "<absolute>"; };
72F75A521336F950004BB496 /* cupstestppd */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = cupstestppd; sourceTree = BUILT_PRODUCTS_DIR; };
72F75A5B1336F988004BB496 /* cupstestppd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cupstestppd.c; path = ../systemv/cupstestppd.c; sourceTree = "<group>"; };
72F75A611336F9A3004BB496 /* libcupsimage.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = libcupsimage.dylib; sourceTree = BUILT_PRODUCTS_DIR; };
278C58EA136B64B000836530 /* Kerberos.framework in Frameworks */,
278C58EB136B64B000836530 /* Security.framework in Frameworks */,
278C58EC136B64B000836530 /* SystemConfiguration.framework in Frameworks */,
- 270CCDB9135E3D0900007BE2 /* libcups_static.a in Frameworks */,
270CCDBA135E3D0900007BE2 /* libcupsmime.dylib in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- 278C58E4136B649200836530 /* libcups_static.a in Frameworks */,
- 273BF6CE1333B5950022CAAB /* CoreFoundation.framework in Frameworks */,
- 273BF6D31333B5C30022CAAB /* Kerberos.framework in Frameworks */,
- 273BF6D41333B5C30022CAAB /* Security.framework in Frameworks */,
- 273BF6D81333B5F60022CAAB /* SystemConfiguration.framework in Frameworks */,
- 273BF6CF1333B5950022CAAB /* libiconv.dylib in Frameworks */,
- 273BF6D71333B5F60022CAAB /* libresolv.dylib in Frameworks */,
- 273BF6D01333B5950022CAAB /* libz.dylib in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
);
runOnlyForDeploymentPostprocessing = 0;
};
- 274FF66013333A9B00317ECB /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 274FF66E13333AB500317ECB /* libcups.dylib in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
274FF67513333B2F00317ECB /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- 274FF6BA1333B1C400317ECB /* CoreFoundation.framework in Frameworks */,
- 274FF6BB1333B1C400317ECB /* Kerberos.framework in Frameworks */,
- 274FF6BC1333B1C400317ECB /* Security.framework in Frameworks */,
- 274FF6BD1333B1C400317ECB /* SystemConfiguration.framework in Frameworks */,
- 274FF6BE1333B1C400317ECB /* libiconv.dylib in Frameworks */,
- 274FF6BF1333B1C400317ECB /* libresolv.dylib in Frameworks */,
- 274FF6C01333B1C400317ECB /* libz.dylib in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- 278C58DE136B645C00836530 /* CoreFoundation.framework in Frameworks */,
- 278C58DF136B645C00836530 /* Kerberos.framework in Frameworks */,
- 278C58F6136B652300836530 /* Security.framework in Frameworks */,
- 278C58E1136B645C00836530 /* SystemConfiguration.framework in Frameworks */,
- 278C58D9136B645C00836530 /* libcups_static.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- 72220F4D133306BB00FCA411 /* CoreFoundation.framework in Frameworks */,
- 72220F56133308EA00FCA411 /* Kerberos.framework in Frameworks */,
- 72220F4F133306BB00FCA411 /* Security.framework in Frameworks */,
- 72220F50133306BB00FCA411 /* SystemConfiguration.framework in Frameworks */,
- 72220F52133308C100FCA411 /* libiconv.dylib in Frameworks */,
- 72220F54133308CB00FCA411 /* libresolv.dylib in Frameworks */,
- 72220F4E133306BB00FCA411 /* libz.dylib in Frameworks */,
+ 728FB7F11536167A005426E1 /* libiconv.dylib in Frameworks */,
+ 728FB7F21536167A005426E1 /* libresolv.dylib in Frameworks */,
+ 728FB7ED1536161C005426E1 /* libz.dylib in Frameworks */,
+ 728FB7E91536161C005426E1 /* CoreFoundation.framework in Frameworks */,
+ 728FB7EA1536161C005426E1 /* Kerberos.framework in Frameworks */,
+ 728FB7EB1536161C005426E1 /* Security.framework in Frameworks */,
+ 728FB7EE15361642005426E1 /* SystemConfiguration.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- 72220F6813330A8500FCA411 /* ApplicationServices.framework in Frameworks */,
- 7263EE3613330E4E00BA4D44 /* CoreFoundation.framework in Frameworks */,
- 7263EE3013330DC100BA4D44 /* IOKit.framework in Frameworks */,
- 7263EE2C13330D5C00BA4D44 /* Kerberos.framework in Frameworks */,
- 7263EE2D13330D5C00BA4D44 /* Security.framework in Frameworks */,
- 7263EE2E13330D5C00BA4D44 /* SystemConfiguration.framework in Frameworks */,
72220F6613330A7000FCA411 /* libcups.dylib in Frameworks */,
72220FBF13330C1000FCA411 /* libcupsmime.dylib in Frameworks */,
- 7263EE3A13330EC500BA4D44 /* libldap.dylib in Frameworks */,
- 7263EE2713330D2800BA4D44 /* libpam.dylib in Frameworks */,
- 7263EE3213330E1E00BA4D44 /* libpthread.dylib in Frameworks */,
- 7263EE3413330E3C00BA4D44 /* libresolv.dylib in Frameworks */,
- 7263EE3813330E7500BA4D44 /* libz.dylib in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- 724379C91333FFF3009631B9 /* CoreFoundation.framework in Frameworks */,
- 724379681333FF3B009631B9 /* IOKit.framework in Frameworks */,
724379661333FF3B009631B9 /* libcups.dylib in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- 726AD70E135E8B5E002C930D /* libiconv.dylib in Frameworks */,
- 726AD707135E8B11002C930D /* libcups_static.a in Frameworks */,
- 726AD708135E8B11002C930D /* CoreFoundation.framework in Frameworks */,
- 726AD709135E8B11002C930D /* Kerberos.framework in Frameworks */,
- 726AD70A135E8B11002C930D /* libresolv.dylib in Frameworks */,
- 726AD70B135E8B11002C930D /* libz.dylib in Frameworks */,
- 726AD70C135E8B11002C930D /* Security.framework in Frameworks */,
- 726AD70D135E8B11002C930D /* SystemConfiguration.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
274FF5D513332C2C00317ECB /* daemon */ = {
isa = PBXGroup;
children = (
- 274FF66F13333ACF00317ECB /* cups-polld.c */,
274FF6351333344400317ECB /* cups-deviced.c */,
274FF5D613332CC700317ECB /* cups-driverd.cxx */,
274FF6491333398D00317ECB /* cups-exec.c */,
274FF6291333333600317ECB /* cups-deviced */,
274FF63E1333358B00317ECB /* cups-exec */,
274FF64F133339C400317ECB /* cups-lpd */,
- 274FF66313333A9B00317ECB /* cups-polld */,
274FF67813333B2F00317ECB /* cupsfilter */,
273BF6BD1333B5000022CAAB /* testcups */,
724378FD1333E43E009631B9 /* ipp */,
children = (
72220F6913330B0C00FCA411 /* auth.c */,
72220F6A13330B0C00FCA411 /* auth.h */,
+ 728FB7DE153600FA005426E1 /* avahi.c */,
+ 728FB7DF153600FA005426E1 /* avahi.h */,
72220F6B13330B0C00FCA411 /* banners.c */,
72220F6C13330B0C00FCA411 /* banners.h */,
72220F6D13330B0C00FCA411 /* cert.c */,
72220F8D13330B0C00FCA411 /* subscriptions.h */,
72220F8E13330B0C00FCA411 /* sysman.c */,
72220F8F13330B0C00FCA411 /* sysman.h */,
+ 728FB7E3153600FA005426E1 /* tls.c */,
+ 728FB7E0153600FA005426E1 /* tls-darwin.c */,
+ 728FB7E1153600FA005426E1 /* tls-gnutls.c */,
+ 728FB7E2153600FA005426E1 /* tls-openssl.c */,
);
name = cupsd;
path = .;
72220FB113330B4A00FCA411 /* Frameworks */ = {
isa = PBXGroup;
children = (
- 278C58F4136B652300836530 /* Security.framework */,
278C58E5136B64AF00836530 /* CoreFoundation.framework */,
278C58E6136B64B000836530 /* Kerberos.framework */,
278C58E7136B64B000836530 /* Security.framework */,
278C58E8136B64B000836530 /* SystemConfiguration.framework */,
- 278C58DA136B645C00836530 /* CoreFoundation.framework */,
- 278C58DB136B645C00836530 /* Kerberos.framework */,
- 278C58DD136B645C00836530 /* SystemConfiguration.framework */,
- 72220FAC13330B2200FCA411 /* libcupsmime.dylib */,
72220EAE1333047D00FCA411 /* libcups.dylib */,
72F75A611336F9A3004BB496 /* libcupsimage.dylib */,
+ 72220FAC13330B2200FCA411 /* libcupsmime.dylib */,
274FF5EE133330C800317ECB /* libcupsppdc.dylib */,
- 724379C81333FFF3009631B9 /* CoreFoundation.framework */,
- 724379671333FF3B009631B9 /* IOKit.framework */,
- 273BF6D51333B5F60022CAAB /* libresolv.dylib */,
- 273BF6D61333B5F60022CAAB /* SystemConfiguration.framework */,
- 273BF6D11333B5C30022CAAB /* Kerberos.framework */,
- 273BF6D21333B5C30022CAAB /* Security.framework */,
- 273BF6CB1333B5950022CAAB /* CoreFoundation.framework */,
- 273BF6CC1333B5950022CAAB /* libiconv.dylib */,
- 273BF6CD1333B5950022CAAB /* libz.dylib */,
- 7263EE3913330EC500BA4D44 /* libldap.dylib */,
- 7263EE3713330E7500BA4D44 /* libz.dylib */,
- 7263EE3513330E4E00BA4D44 /* CoreFoundation.framework */,
- 7263EE3313330E3C00BA4D44 /* libresolv.dylib */,
- 7263EE3113330E1E00BA4D44 /* libpthread.dylib */,
- 7263EE2F13330DC100BA4D44 /* IOKit.framework */,
- 7263EE2913330D5C00BA4D44 /* Kerberos.framework */,
- 7263EE2A13330D5C00BA4D44 /* Security.framework */,
- 7263EE2B13330D5C00BA4D44 /* SystemConfiguration.framework */,
- 7263EE2613330D2800BA4D44 /* libpam.dylib */,
- 72220F6713330A8500FCA411 /* ApplicationServices.framework */,
- 72220F49133306BB00FCA411 /* CoreFoundation.framework */,
- 72220F55133308EA00FCA411 /* Kerberos.framework */,
- 72220F4B133306BB00FCA411 /* Security.framework */,
- 72220F4C133306BB00FCA411 /* SystemConfiguration.framework */,
- 72220F51133308C100FCA411 /* libiconv.dylib */,
- 72220F53133308CB00FCA411 /* libresolv.dylib */,
- 72220F4A133306BB00FCA411 /* libz.dylib */,
);
name = Frameworks;
sourceTree = "<group>";
72BF96351333042100B1EAD7 = {
isa = PBXGroup;
children = (
- 72F75A4C1336F31B004BB496 /* libcups_static.a */,
+ 728FB7EF1536167A005426E1 /* libiconv.dylib */,
+ 728FB7F01536167A005426E1 /* libresolv.dylib */,
+ 728FB7EC1536161C005426E1 /* libz.dylib */,
72220FB113330B4A00FCA411 /* Frameworks */,
72220F45133305D000FCA411 /* Public Headers */,
72220F461333060C00FCA411 /* Private Headers */,
productReference = 274FF64F133339C400317ECB /* cups-lpd */;
productType = "com.apple.product-type.tool";
};
- 274FF66213333A9B00317ECB /* cups-polld */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 274FF66913333A9B00317ECB /* Build configuration list for PBXNativeTarget "cups-polld" */;
- buildPhases = (
- 274FF65F13333A9B00317ECB /* Sources */,
- 274FF66013333A9B00317ECB /* Frameworks */,
- 274FF66113333A9B00317ECB /* CopyFiles */,
- );
- buildRules = (
- );
- dependencies = (
- 274FF66D13333AAD00317ECB /* PBXTargetDependency */,
- );
- name = "cups-polld";
- productName = "cups-polld";
- productReference = 274FF66313333A9B00317ECB /* cups-polld */;
- productType = "com.apple.product-type.tool";
- };
274FF67713333B2F00317ECB /* cupsfilter */ = {
isa = PBXNativeTarget;
buildConfigurationList = 274FF67E13333B2F00317ECB /* Build configuration list for PBXNativeTarget "cupsfilter" */;
274FF6281333333600317ECB /* cups-deviced */,
274FF63D1333358B00317ECB /* cups-exec */,
274FF64E133339C400317ECB /* cups-lpd */,
- 274FF66213333A9B00317ECB /* cups-polld */,
274FF67713333B2F00317ECB /* cupsfilter */,
72F75A511336F950004BB496 /* cupstestppd */,
724379461333FEA9009631B9 /* dnssd */,
);
runOnlyForDeploymentPostprocessing = 0;
};
- 274FF65F13333A9B00317ECB /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 274FF67013333ACF00317ECB /* cups-polld.c in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
274FF67413333B2F00317ECB /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
72220FA613330B0C00FCA411 /* subscriptions.c in Sources */,
72220FA713330B0C00FCA411 /* sysman.c in Sources */,
72C16CB9137B195D007E4BF4 /* file.c in Sources */,
+ 728FB7E4153600FA005426E1 /* avahi.c in Sources */,
+ 728FB7E8153600FA005426E1 /* tls.c in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
target = 274FF64E133339C400317ECB /* cups-lpd */;
targetProxy = 274FF65D13333A3400317ECB /* PBXContainerItemProxy */;
};
- 274FF66D13333AAD00317ECB /* PBXTargetDependency */ = {
- isa = PBXTargetDependency;
- target = 72220EAD1333047D00FCA411 /* libcups */;
- targetProxy = 274FF66C13333AAD00317ECB /* PBXContainerItemProxy */;
- };
- 274FF67213333AE400317ECB /* PBXTargetDependency */ = {
- isa = PBXTargetDependency;
- target = 274FF66213333A9B00317ECB /* cups-polld */;
- targetProxy = 274FF67113333AE400317ECB /* PBXContainerItemProxy */;
- };
274FF68213333B3C00317ECB /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 72220EAD1333047D00FCA411 /* libcups */;
};
name = Release;
};
- 274FF66A13333A9B00317ECB /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- INSTALL_PATH = /usr/libexec/cups/daemon;
- PRODUCT_NAME = "$(TARGET_NAME)";
- };
- name = Debug;
- };
- 274FF66B13333A9B00317ECB /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- INSTALL_PATH = /usr/libexec/cups/daemon;
- PRODUCT_NAME = "$(TARGET_NAME)";
- };
- name = Release;
- };
274FF67F13333B2F00317ECB /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
- 274FF66913333A9B00317ECB /* Build configuration list for PBXNativeTarget "cups-polld" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 274FF66A13333A9B00317ECB /* Debug */,
- 274FF66B13333A9B00317ECB /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
274FF67E13333B2F00317ECB /* Build configuration list for PBXNativeTarget "cupsfilter" */ = {
isa = XCConfigurationList;
buildConfigurations = (