-CHANGES.txt - 2.2b1 - 2016-06-02
+CHANGES.txt - 2.2b1 - 2016-06-21
--------------------------------
+CHANGES IN CUPS V2.2b2
+
+ - Added Upstart support (PR #4825)
+ - CUPS now supports Let's Encrypt certificates on Linux.
+
+
CHANGES IN CUPS V2.2b1
- All CUPS commands now support POSIX options (Issue #4813)
- Added support for disc media sizes (<rdar://problem/20219536>)
- The httpAddrConnect and httpConnect* APIs now try connecting to
multiple addresses in parallel (<rdar://problem/20643153>)
- - The cupsd domain socket is no longer world-accessible on OS X
+ - The cupsd domain socket is no longer world-accessible on macOS
(<rdar://problem/7542560>)
- Interface scripts are no longer supported for security reasons
(<rdar://problem/23135640>)
> Note:
>
> The ".cxx" extension is used because it is the only common C++ extension
-> between Linux, OS X, UNIX, and Windows.
+> between Linux, macOS, UNIX, and Windows.
The top of each source file contains a header giving the purpose or nature of
the source file and the copyright and licensing notice:
depend:
TAB $(CC) -MM $(ALL_CFLAGS) $(OBJS:.o=.c) >Dependencies
-We regenerate the automatic dependencies on an OS X system and express any
-non-OS X dependencies statically in the makefile.
+We regenerate the automatic dependencies on an macOS system and express any
+non-macOS dependencies statically in the makefile.
### INSTALL/UNINSTALL SUPPORT
-CREDITS.txt - 2013-07-23
+CREDITS.txt - 2016-06-21
------------------------
Few projects are completed by one person, and CUPS is no exception. We'd
like to thank the following individuals for their contributions:
+ Niklas 'Nille' Åkerström - Swedish localization.
Nathaniel Barbour - Lots of testing and feedback.
N. Becker - setsid().
Philippe Combes - French localization and buttons script.
Wang Jian - CUPS RPM corrections.
Roderick Johnstone - Beta tester of the millenium.
Till Kamppeter - Bug fixes, beta testing, evangelism.
- Iñaki Larrañaga - Basque localization.
- Kenshi Muto - Japanese localization, patches, and
- testing.
Tomohiro Kato - Japanese localization.
Kiko - Bug fixes.
Sergey V. Kovalyov - ESP Print Pro and CUPS beta tester.
Marek Laane - Estonian translation.
+ Iñaki Larrañaga - Basque localization.
Mark Lawrence - Microsoft interoperability testing.
Jeff Licquia - Bug fixes, beta testing, evangelism.
Jason McMullan - Original CUPS RPM distributions.
Àngel Mompó - Catalan localization.
Wes Morgan - *BSD fixes.
+ Kenshi Muto - Japanese localization, patches, and
+ testing.
+ Brian Norris - Upstart support.
Daniel Nylander - Swedish localization.
- Niklas 'Nille' Åkerström - Swedish localization.
Naruiko Ogasawara - Japanese localization.
Giulio Orsero - Bug fixes and testing.
Michal Osowiecki - Polish localization.
Also, please note that CUPS does not include print filters to support PDF
or raster printing. You *must* download GPL Ghostscript and/or the Open
Printing CUPS filters package separately to print on operating systems
- other than OS X.
+ other than macOS.
COMPILING THE SUBVERSION REPOSITORY CODE
and diagnose a variety of common problems - use the "--enable-unit-tests"
configure option to run them at build time.
- On OS X, use the "--with-archflags" option to build with the correct set of
+ On macOS, use the "--with-archflags" option to build with the correct set of
architectures:
./configure --with-archflags="-arch i386 -arch x86_64" ...
CUPS License Agreement
- Copyright 2007-2013 by Apple Inc.
+ Copyright 2007-2016 by Apple Inc.
1 Infinite Loop
Cupertino, CA 95014 USA
b. An Apple Operating System means any operating system
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 of Apple's Darwin, iOS, macOS, macOS Server, and
+ tvOS products and all follow-on releases and future
versions thereof.
c. This exception is only available for Apple
EPMFLAGS = -v --output-dir dist $(EPMARCH)
-bsd deb pkg slackware:
+bsd deb epm pkg rpm slackware:
epm $(EPMFLAGS) -f $@ cups packaging/cups.list
-epm:
- epm $(EPMFLAGS) -s packaging/installer.gif cups packaging/cups.list
-
-rpm:
- epm $(EPMFLAGS) -f rpm -s packaging/installer.gif cups packaging/cups.list
-
.PHONEY: dist
dist: all
$(RM) -r dist
$(MAKE) $(MFLAGS) epm
case `uname` in \
*BSD*) $(MAKE) $(MFLAGS) bsd;; \
- Darwin*) $(MAKE) $(MFLAGS) osx;; \
Linux*) test ! -x /usr/bin/rpm || $(MAKE) $(MFLAGS) rpm;; \
SunOS*) $(MAKE) $(MFLAGS) pkg;; \
esac
esac])
AC_SUBST(LANGUAGES)
-dnl OS X bundle-based localization support
-AC_ARG_WITH(bundledir, [ --with-bundledir set OS X localization bundle directory ],
+dnl macOS bundle-based localization support
+AC_ARG_WITH(bundledir, [ --with-bundledir set macOS 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"
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 OS X])
+AC_ARG_ENABLE(webif, [ --enable-webif enable the web interface by default, default=no for macOS])
case "x$enable_webif" in
xno)
CUPS_WEBIF=No
dnl
dnl Directory stuff for CUPS.
dnl
-dnl Copyright 2007-2014 by Apple Inc.
+dnl Copyright 2007-2016 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
# Server executables...
case "$uname" in
*BSD* | Darwin*)
- # *BSD and Darwin (MacOS X)
+ # *BSD and Darwin (macOS)
INSTALL_SYSV=""
CUPS_SERVERBIN="$exec_prefix/libexec/cups"
;;
AC_ARG_WITH(rundir, [ --with-rundir set transient run-time state directory],CUPS_STATEDIR="$withval",[
case "$uname" in
Darwin*)
- # Darwin (OS X)
+ # Darwin (macOS)
CUPS_STATEDIR="$CUPS_SERVERROOT"
;;
*)
dnl
dnl DNS Service Discovery (aka Bonjour) stuff for CUPS.
dnl
-dnl Copyright 2007-2015 by Apple Inc.
+dnl Copyright 2007-2016 by Apple Inc.
dnl
dnl These coded instructions, statements, and computer programs are the
dnl property of Apple Inc. and are protected by Federal copyright
AC_CHECK_HEADER(dns_sd.h, [
case "$uname" in
Darwin*)
- # Darwin and MacOS X...
+ # Darwin and macOS...
AC_DEFINE(HAVE_DNSSD)
DNSSDLIBS="-framework CoreFoundation -framework SystemConfiguration"
DNSSD_BACKEND="dnssd"
if test "x$KRB5CONFIG" != x; then
case "$uname" in
Darwin)
- # OS X weak-links to the Kerberos framework...
+ # macOS 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-2013 by Apple Inc.
+dnl Copyright 2007-2016 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
if test "$mandir" = "\${prefix}/man" -a "$prefix" = "/"; then
case "$uname" in
Darwin* | Linux | GNU | *BSD*)
- # Darwin, MacOS X, Linux, GNU HURD, and *BSD
+ # Darwin, macOS, Linux, GNU HURD, and *BSD
mandir="/usr/share/man"
AMANDIR="/usr/share/man"
PMANDIR="/usr/share/man"
MAN8DIR=1m
;;
Linux* | GNU* | Darwin*)
- # Linux, GNU Hurd, and OS X
+ # Linux, GNU Hurd, and macOS
MAN1EXT=1.gz
MAN5EXT=5.gz
MAN7EXT=7.gz
dnl
dnl Networking stuff for CUPS.
dnl
-dnl Copyright 2007-2014 by Apple Inc.
+dnl Copyright 2007-2016 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
if test "x$default_domainsocket" = x; then
case "$uname" in
Darwin*)
- # Darwin and MaxOS X do their own thing...
+ # Darwin and macOS do their own thing...
CUPS_DEFAULT_DOMAINSOCKET="$localstatedir/run/cupsd"
;;
*)
Darwin*)
uname="Darwin"
if test $uversion -lt 120; then
- AC_MSG_ERROR([Sorry, this version of CUPS requires OS X 10.8 or higher.])
+ AC_MSG_ERROR([Sorry, this version of CUPS requires macOS 10.8 or higher.])
fi
;;
case "$uname" in
Darwin*)
- # Darwin/OS X
+ # Darwin/macOS
if test "x$with_pam_module" != x; then
PAMFILE="pam.$with_pam_module"
elif test -f /usr/lib/pam/pam_opendirectory.so.2; then
dnl
dnl Launch-on-demand/startup stuff for CUPS.
dnl
-dnl Copyright 2007-2015 by Apple Inc.
+dnl Copyright 2007-2016 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
AC_SUBST(ONDEMANDFLAGS)
AC_SUBST(ONDEMANDLIBS)
-dnl Launchd is used on OS X/Darwin...
+dnl Launchd is used on macOS/Darwin...
AC_ARG_ENABLE(launchd, [ --disable-launchd disable launchd support])
LAUNCHD_DIR=""
AC_SUBST(LAUNCHD_DIR)
if test x$enable_launchd != xno; then
- AC_CHECK_FUNC(launch_msg, AC_DEFINE(HAVE_LAUNCHD))
- if test $uversion -ge 140; then
- AC_CHECK_FUNC(launch_activate_socket, [
- AC_DEFINE(HAVE_LAUNCHD)
- AC_DEFINE(HAVE_LAUNCH_ACTIVATE_SOCKET)])
- fi
+ AC_CHECK_FUNC(launch_activate_socket, [
+ AC_DEFINE(HAVE_LAUNCHD)
+ AC_DEFINE(HAVE_ONDEMAND)])
AC_CHECK_HEADER(launch.h, AC_DEFINE(HAVE_LAUNCH_H))
case "$uname" in
Darwin*)
- # Darwin, MacOS X
+ # Darwin, macOS
LAUNCHD_DIR="/System/Library/LaunchDaemons"
# liblaunch is already part of libSystem
;;
if test $have_systemd = yes; then
AC_DEFINE(HAVE_SYSTEMD)
+ AC_DEFINE(HAVE_ONDEMAND)
AC_CHECK_HEADER(systemd/sd-journal.h,AC_DEFINE(HAVE_SYSTEMD_SD_JOURNAL_H))
if test "x$SYSTEMD_DIR" = x; then
SYSTEMD_DIR="`$PKGCONFIG --variable=systemdsystemunitdir systemd`"
fi
fi
+dnl Upstart is also used on Linux (e.g., Chrome OS)
+AC_ARG_ENABLE(upstart, [ --enable-upstart enable upstart support])
+if test "x$enable_upstart" = "xyes"; then
+ if test "x$have_systemd" = "xyes"; then
+ AC_MSG_ERROR(Cannot support both systemd and upstart.)
+ fi
+ AC_DEFINE(HAVE_UPSTART)
+ AC_DEFINE(HAVE_ONDEMAND)
+fi
+
dnl Solaris uses smf
SMFMANIFESTDIR=""
AC_SUBST(SMFMANIFESTDIR)
#undef HAVE_PTHREAD_H
+/*
+ * Do we have on-demand support (launchd/systemd/upstart)?
+ */
+
+#undef HAVE_ONDEMAND
+
+
/*
* Do we have launchd support?
*/
#undef HAVE_LAUNCH_H
#undef HAVE_LAUNCHD
-#undef HAVE_LAUNCH_ACTIVATE_SOCKET
/*
#undef HAVE_SYSTEMD
+/*
+ * Do we have upstart support?
+ */
+
+#undef HAVE_UPSTART
+
+
/*
* Various scripting languages...
*/
*/
#undef HAVE_GETGROUPLIST
-
+
/*
- * Do we have OS X 10.4's mbr_XXX functions?
+ * Do we have macOS 10.4's mbr_XXX functions?
*/
#undef HAVE_MEMBERSHIP_H
/*
- * Location of OS X localization bundle, if any.
+ * Location of macOS localization bundle, if any.
*/
#undef CUPS_BUNDLEDIR
enable_launchd
enable_systemd
with_systemd
+enable_upstart
with_smfmanifestdir
with_rcdir
with_rclevels
--disable-dnssd disable DNS Service Discovery support using mDNSResponder
--disable-launchd disable launchd support
--disable-systemd disable systemd support
+ --enable-upstart enable upstart support
--enable-page-logging enable page_log by default
--disable-browsing disable Browsing by default
--disable-default-shared
disable DefaultShared by default
--disable-raw-printing do not allow raw printing by default
- --enable-webif enable the web interface by default, default=no for OS X
+ --enable-webif enable the web interface by default, default=no for macOS
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--with-rcstop set stop number for rc scripts
--with-xinetd set path for xinetd config files
--with-languages set installed languages, default=all
- --with-bundledir set OS X localization bundle directory
+ --with-bundledir set macOS localization bundle directory
--with-config-file-perm set default ConfigFilePerm value, default=0640
--with-cupsd-file-perm set default cupsd permissions, default=0500
--with-log-file-perm set default LogFilePerm value, default=0644
Darwin*)
uname="Darwin"
if test $uversion -lt 120; then
- as_fn_error $? "Sorry, this version of CUPS requires OS X 10.8 or higher." "$LINENO" 5
+ as_fn_error $? "Sorry, this version of CUPS requires macOS 10.8 or higher." "$LINENO" 5
fi
;;
# Server executables...
case "$uname" in
*BSD* | Darwin*)
- # *BSD and Darwin (MacOS X)
+ # *BSD and Darwin (macOS)
INSTALL_SYSV=""
CUPS_SERVERBIN="$exec_prefix/libexec/cups"
;;
case "$uname" in
Darwin*)
- # Darwin (OS X)
+ # Darwin (macOS)
CUPS_STATEDIR="$CUPS_SERVERROOT"
;;
*)
if test "$mandir" = "\${prefix}/man" -a "$prefix" = "/"; then
case "$uname" in
Darwin* | Linux | GNU | *BSD*)
- # Darwin, MacOS X, Linux, GNU HURD, and *BSD
+ # Darwin, macOS, Linux, GNU HURD, and *BSD
mandir="/usr/share/man"
AMANDIR="/usr/share/man"
PMANDIR="/usr/share/man"
MAN8DIR=1m
;;
Linux* | GNU* | Darwin*)
- # Linux, GNU Hurd, and OS X
+ # Linux, GNU Hurd, and macOS
MAN1EXT=1.gz
MAN5EXT=5.gz
MAN7EXT=7.gz
if test "x$default_domainsocket" = x; then
case "$uname" in
Darwin*)
- # Darwin and MaxOS X do their own thing...
+ # Darwin and macOS do their own thing...
CUPS_DEFAULT_DOMAINSOCKET="$localstatedir/run/cupsd"
;;
*)
if test "x$KRB5CONFIG" != x; then
case "$uname" in
Darwin)
- # OS X weak-links to the Kerberos framework...
+ # macOS weak-links to the Kerberos framework...
LIBGSSAPI="-weak_framework Kerberos"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GSS framework" >&5
$as_echo_n "checking for GSS framework... " >&6; }
case "$uname" in
Darwin*)
- # Darwin/OS X
+ # Darwin/macOS
if test "x$with_pam_module" != x; then
PAMFILE="pam.$with_pam_module"
elif test -f /usr/lib/pam/pam_opendirectory.so.2; then
case "$uname" in
Darwin*)
- # Darwin and MacOS X...
+ # Darwin and macOS...
$as_echo "#define HAVE_DNSSD 1" >>confdefs.h
DNSSDLIBS="-framework CoreFoundation -framework SystemConfiguration"
if test x$enable_launchd != xno; then
- ac_fn_c_check_func "$LINENO" "launch_msg" "ac_cv_func_launch_msg"
-if test "x$ac_cv_func_launch_msg" = xyes; then :
- $as_echo "#define HAVE_LAUNCHD 1" >>confdefs.h
-
-fi
-
- if test $uversion -ge 140; then
- ac_fn_c_check_func "$LINENO" "launch_activate_socket" "ac_cv_func_launch_activate_socket"
+ ac_fn_c_check_func "$LINENO" "launch_activate_socket" "ac_cv_func_launch_activate_socket"
if test "x$ac_cv_func_launch_activate_socket" = xyes; then :
- $as_echo "#define HAVE_LAUNCHD 1" >>confdefs.h
+ $as_echo "#define HAVE_LAUNCHD 1" >>confdefs.h
- $as_echo "#define HAVE_LAUNCH_ACTIVATE_SOCKET 1" >>confdefs.h
+ $as_echo "#define HAVE_ONDEMAND 1" >>confdefs.h
fi
- fi
ac_fn_c_check_header_mongrel "$LINENO" "launch.h" "ac_cv_header_launch_h" "$ac_includes_default"
if test "x$ac_cv_header_launch_h" = xyes; then :
$as_echo "#define HAVE_LAUNCH_H 1" >>confdefs.h
case "$uname" in
Darwin*)
- # Darwin, MacOS X
+ # Darwin, macOS
LAUNCHD_DIR="/System/Library/LaunchDaemons"
# liblaunch is already part of libSystem
;;
if test $have_systemd = yes; then
$as_echo "#define HAVE_SYSTEMD 1" >>confdefs.h
+ $as_echo "#define HAVE_ONDEMAND 1" >>confdefs.h
+
ac_fn_c_check_header_mongrel "$LINENO" "systemd/sd-journal.h" "ac_cv_header_systemd_sd_journal_h" "$ac_includes_default"
if test "x$ac_cv_header_systemd_sd_journal_h" = xyes; then :
$as_echo "#define HAVE_SYSTEMD_SD_JOURNAL_H 1" >>confdefs.h
fi
fi
+# Check whether --enable-upstart was given.
+if test "${enable_upstart+set}" = set; then :
+ enableval=$enable_upstart;
+fi
+
+if test "x$enable_upstart" = "xyes"; then
+ if test "x$have_systemd" = "xyes"; then
+ as_fn_error $? "Cannot support both systemd and upstart." "$LINENO" 5
+ fi
+ $as_echo "#define HAVE_UPSTART 1" >>confdefs.h
+
+ $as_echo "#define HAVE_ONDEMAND 1" >>confdefs.h
+
+fi
+
SMFMANIFESTDIR=""
* The returned settings should be freed with cupsFreeOptions() when
* you are done with them.
*
- * @since CUPS 1.3/OS X 10.5@
+ * @since CUPS 1.3/macOS 10.5@
*/
int /* O - 1 on success, 0 on failure */
/*
* 'cupsAdminSetServerSettings()' - Set settings on the server.
*
- * @since CUPS 1.3/OS X 10.5@
+ * @since CUPS 1.3/macOS 10.5@
*/
int /* O - 1 on success, 0 on failure */
const char *device_uri,
const char *device_location, void *user_data);
/* Device callback
- * @since CUPS 1.4/OS X 10.6@ */
+ * @since CUPS 1.4/macOS 10.6@ */
/*
<p>In addition, some operating systems provide additional security mechanisms
that further limit file system access, even for backends running as root. On
-OS X, for example, no backend may write to a user's home directory. See the <a href="#SANDBOXING">Sandboxing on OS X</a> section for more information.</p>
+macOS, for example, no backend may write to a user's home directory. See the <a href="#SANDBOXING">Sandboxing on macOS</a> section for more information.</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
- (OS X only).</dd>
+ (macOS 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 OS X setting a printer-state-reason value with an "-error" or
+on macOS 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><a name="SANDBOXING">Sandboxing on OS X</a></h2>
+<h2><a name="SANDBOXING">Sandboxing on macOS</a></h2>
-<p>Starting with OS X 10.6, filters and backends are run inside a security "sandbox" which further limits (beyond the normal UNIX user/group permissions) what a filter or backend can do. This helps to both secure the printing system from malicious software and enforce the functional separation of components in the CUPS filter chain. What follows is a list of actions that are explicitly allowed for all filters and backends:</p>
+<p>Starting with macOS 10.6, filters and backends are run inside a security "sandbox" which further limits (beyond the normal UNIX user/group permissions) what a filter or backend can do. This helps to both secure the printing system from malicious software and enforce the functional separation of components in the CUPS filter chain. What follows is a list of actions that are explicitly allowed for all filters and backends:</p>
<ol>
<h1 class='title'>PPD API (DEPRECATED)</h1>
-<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>
+<blockquote>The PPD API is deprecated starting in CUPS 1.6/macOS 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>
<h2 class='title'><a name='OVERVIEW'>Overview</a></h2>
-<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>
+<blockquote>The PPD API is deprecated starting in CUPS 1.6/macOS 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
* 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/OS X 10.5@
+ * @since CUPS 1.2/macOS 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/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
void
/*
* 'cupsArrayCount()' - Get the number of elements in the array.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 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/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
void * /* O - Element */
* The caller is responsible for freeing the memory used by the
* elements themselves.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
void
/*
* 'cupsArrayDup()' - Duplicate the array.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
cups_array_t * /* O - Duplicate array */
/*
* 'cupsArrayFind()' - Find an element in the array.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
void * /* O - Element found or @code NULL@ */
/*
* 'cupsArrayFirst()' - Get the first element in the array.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 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/OS X 10.5@
+ * @since CUPS 1.3/macOS 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/OS X 10.5@
+ * @since CUPS 1.3/macOS 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/OS X 10.5@
+ * @since CUPS 1.2/macOS 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/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
int /* O - 0 on failure, 1 on success */
/*
* 'cupsArrayLast()' - Get the last element in the array.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 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/OS X 10.5@
+ * @since CUPS 1.2/macOS 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/OS X 10.5@
+ * @since CUPS 1.3/macOS 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/OS X 10.7@
+ * @since CUPS 1.5/macOS 10.7@
*/
cups_array_t * /* O - Array */
* @link cupsArrayFirst@, or @link cupsArrayIndex@, or @link cupsArrayLast@
* to set the current element.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 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/OS X 10.5@
+ * @since CUPS 1.2/macOS 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/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
int /* O - 1 on success, 0 on failure */
/*
* 'cupsArrayRestore()' - Reset the current element to the last @link cupsArraySave@.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
void * /* O - New current element */
*
* The save/restore stack is guaranteed to be at least 32 elements deep.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
int /* O - 1 on success, 0 on failure */
/*
* 'cupsArrayUserData()' - Return the user data for an array.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
void * /* O - User data */
/*
* 'cups_array_add()' - Insert or append an element to the array.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
static int /* O - 1 on success, 0 on failure */
* This function should be called in response to a @code HTTP_STATUS_UNAUTHORIZED@
* status, prior to resubmitting your request.
*
- * @since CUPS 1.1.20/OS X 10.4@
+ * @since CUPS 1.1.20/macOS 10.4@
*/
int /* O - 0 on success, -1 on error */
* 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/OS X 10.5@
+ * @since CUPS 1.2/macOS 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/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
ssize_t /* O - Bytes written or -1 on error */
* variable or the device URI passed in argv[0], whichever is found
* first.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
const char * /* O - Device URI or @code 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/OS X 10.6@
+ * @since CUPS 1.4/macOS 10.6@
*/
void
CUPS_PRINTER_FAX = 0x40000, /* Fax queue */
CUPS_PRINTER_REJECTING = 0x80000, /* Printer is rejecting jobs */
CUPS_PRINTER_DELETE = 0x100000, /* Delete printer
- * @since CUPS 1.2/OS X 10.5@ */
+ * @since CUPS 1.2/macOS 10.5@ */
CUPS_PRINTER_NOT_SHARED = 0x200000, /* Printer is not shared
- * @since CUPS 1.2/OS X 10.5@ */
+ * @since CUPS 1.2/macOS 10.5@ */
CUPS_PRINTER_AUTHENTICATED = 0x400000,/* Printer requires authentication
- * @since CUPS 1.2/OS X 10.5@ */
+ * @since CUPS 1.2/macOS 10.5@ */
CUPS_PRINTER_COMMANDS = 0x800000, /* Printer supports maintenance commands
- * @since CUPS 1.2/OS X 10.5@ */
+ * @since CUPS 1.2/macOS 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/OS X 10.6@ */
+ * @since CUPS 1.4/macOS 10.6@ */
CUPS_PRINTER_MFP = 0x4000000, /* Printer with scanning capabilities
- * @since CUPS 1.4/OS X 10.6@ */
+ * @since CUPS 1.4/macOS 10.6@ */
CUPS_PRINTER_3D = 0x8000000, /* Printer with 3D capabilities @since CUPS 2.1@ */
CUPS_PRINTER_OPTIONS = 0x6fffc /* ~(CLASS | REMOTE | IMPLICIT |
* DEFAULT | FAX | REJECTING | DELETE |
typedef struct _cups_dinfo_s cups_dinfo_t;
/* Destination capability and status
- * information @since CUPS 1.6/OS X 10.8@ */
+ * information @since CUPS 1.6/macOS 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/OS X 10.8@ ****/
+typedef struct cups_size_s /**** Media Size @since CUPS 1.6/macOS 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/OS X 10.7@ */
+ * @since CUPS 1.5/macOS 10.7@ */
typedef int (*cups_dest_cb_t)(void *user_data, unsigned flags,
cups_dest_t *dest);
/* Destination enumeration callback
- * @since CUPS 1.6/OS X 10.8@ */
+ * @since CUPS 1.6/macOS 10.8@ */
# ifdef __BLOCKS__
typedef int (^cups_dest_block_t)(unsigned flags, cups_dest_t *dest);
/* Destination enumeration block
- * @since CUPS 1.6/OS X 10.8@ */
+ * @since CUPS 1.6/macOS 10.8@ */
# endif /* __BLOCKS__ */
typedef const char *(*cups_password_cb_t)(const char *prompt);
const char *resource,
void *user_data);
/* New password callback
- * @since CUPS 1.4/OS X 10.6@ */
+ * @since CUPS 1.4/macOS 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/OS X 10.7@ */
+ * @since CUPS 1.5/macOS 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/OS X 10.5 ****/
+/**** New in CUPS 1.2/macOS 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/OS X 10.5 ****/
+/**** New in CUPS 1.3/macOS 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/OS X 10.6 ****/
+/**** New in CUPS 1.4/macOS 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/OS X 10.7 ****/
+/**** New in CUPS 1.5/macOS 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/OS X 10.8 ****/
+/**** New in CUPS 1.6/macOS 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,
extern void cupsSetUserAgent(const char *user_agent) _CUPS_API_1_7;
extern const char *cupsUserAgent(void) _CUPS_API_1_7;
-/* New in CUPS 2.0/OS X 10.10 */
+/* New in CUPS 2.0/macOS 10.10 */
extern cups_dest_t *cupsGetDestWithURI(const char *name, const char *uri) _CUPS_API_2_0;
extern const char *cupsLocalizeDestMedia(http_t *http, cups_dest_t *dest, cups_dinfo_t *info, unsigned flags, cups_size_t *size) _CUPS_API_2_0;
extern int cupsMakeServerCredentials(const char *path, const char *common_name, int num_alt_names, const char **alt_names, time_t expiration_date) _CUPS_API_2_0;
extern int cupsSetServerCredentials(const char *path, const char *common_name, int auto_create) _CUPS_API_2_0;
-/* New in CUPS 2.2 */
+/* New in CUPS 2.2/macOS 10.12 */
extern ssize_t cupsHashData(const char *algorithm, const void *data, size_t datalen, unsigned char *hash, size_t hashsize) _CUPS_API_2_2;
# ifdef __cplusplus
* @code IPP_STATUS_ERRPR_NOT_AUTHORIZED@ or
* @code IPP_STATUS_ERROR_FORBIDDEN@ on failure.
*
- * @since CUPS 1.6/OS X 10.8@
+ * @since CUPS 1.6/macOS 10.8@
*/
ipp_status_t
* "job_id" is the job ID returned by cupsCreateDestJob. Returns @code IPP_STATUS_OK@
* on success.
*
- * @since CUPS 1.6/OS X 10.8@
+ * @since CUPS 1.6/macOS 10.8@
*/
ipp_status_t /* O - IPP status code */
* Returns @code IPP_STATUS_OK@ or @code IPP_STATUS_OK_SUBST@ on success, saving the job ID
* in the variable pointed to by "job_id".
*
- * @since CUPS 1.6/OS X 10.8@
+ * @since CUPS 1.6/macOS 10.8@
*/
ipp_status_t /* O - IPP status code */
*
* Returns @code IPP_STATUS_OK@ or @code IPP_STATUS_OK_SUBST@ on success.
*
- * @since CUPS 1.6/OS X 10.8@
+ * @since CUPS 1.6/macOS 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/OS X 10.8@
+ * @since CUPS 1.6/macOS 10.8@
*/
http_status_t /* O - Status of document creation */
* The returned string is stored in the destination information and will become
* invalid if the destination information is deleted.
*
- * @since CUPS 2.0/OS X 10.10@
+ * @since CUPS 2.0/macOS 10.10@
*/
const char * /* O - Localized string */
* The returned string is stored in the destination information and will become
* invalid if the destination information is deleted.
*
- * @since CUPS 1.6/OS X 10.8@
+ * @since CUPS 1.6/macOS 10.8@
*/
const char * /* O - Localized string */
* The returned string is stored in the destination information and will become
* invalid if the destination information is deleted.
*
- * @since CUPS 1.6/OS X 10.8@
+ * @since CUPS 1.6/macOS 10.8@
*/
const char * /* O - Localized string */
*
* Returns 1 if supported, 0 otherwise.
*
- * @since CUPS 1.6/OS X 10.8@
+ * @since CUPS 1.6/macOS 10.8@
*/
int /* O - 1 if supported, 0 otherwise */
* If cupsCopyDestConflicts returns 1 but "num_resolved" and "resolved" are set
* to 0 and @code NULL@, respectively, then the conflict cannot be resolved.
*
- * @since CUPS 1.6/OS X 10.8@
+ * @since CUPS 1.6/macOS 10.8@
*/
int /* O - 1 if there is a conflict, 0 if none, -1 on error */
* The caller is responsible for calling @link cupsFreeDestInfo@ on the return
* value. @code NULL@ is returned on error.
*
- * @since CUPS 1.6/OS X 10.8@
+ * @since CUPS 1.6/macOS 10.8@
*/
cups_dinfo_t * /* O - Destination information */
* @code ippGetResolution@, @code ippGetString@, and @code ippGetValueTag@
* functions to inspect the default value(s) as needed.
*
- * @since CUPS 1.7/OS X 10.9@
+ * @since CUPS 1.7/macOS 10.9@
*/
ipp_attribute_t * /* O - Default attribute or @code NULL@ for none */
* @code ippGetResolution@, @code ippGetString@, and @code ippGetValueTag@
* functions to inspect the default value(s) as needed.
*
- * @since CUPS 1.7/OS X 10.9@
+ * @since CUPS 1.7/macOS 10.9@
*/
ipp_attribute_t * /* O - Default attribute or @code NULL@ for none */
* @code ippGetResolution@, @code ippGetString@, and @code ippGetValueTag@
* functions to inspect the default value(s) as needed.
*
- * @since CUPS 1.7/OS X 10.9@
+ * @since CUPS 1.7/macOS 10.9@
*/
ipp_attribute_t * /* O - Default attribute or @code NULL@ for none */
* example, passing @code CUPS_MEDIA_FLAGS_BORDERLESS@ will get the Nth
* borderless size supported by the printer.
*
- * @since CUPS 1.7/OS X 10.9@
+ * @since CUPS 1.7/macOS 10.9@
*/
int /* O - 1 on success, 0 on failure */
*
* Returns 1 when there is a match and 0 if there is not a match.
*
- * @since CUPS 1.6/OS X 10.8@
+ * @since CUPS 1.6/macOS 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/OS X 10.8@
+ * @since CUPS 1.6/macOS 10.8@
*/
int /* O - 1 on match, 0 on failure */
* counted. For example, passing @code CUPS_MEDIA_FLAGS_BORDERLESS@ will return
* the number of borderless sizes.
*
- * @since CUPS 1.7/OS X 10.9@
+ * @since CUPS 1.7/macOS 10.9@
*/
int /* O - Number of sizes */
* example, passing @code CUPS_MEDIA_FLAGS_BORDERLESS@ will return the default
* borderless size, typically US Letter or A4, but sometimes 4x6 photo media.
*
- * @since CUPS 1.7/OS X 10.9@
+ * @since CUPS 1.7/macOS 10.9@
*/
int /* O - 1 on success, 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/OS X 10.8@
+ * @since CUPS 1.6/macOS 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/OS X 10.8@
+ * @since CUPS 1.6/macOS 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/OS X 10.8@
+ * @since CUPS 1.6/macOS 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/OS X 10.8@
+ * @since CUPS 1.6/macOS 10.8@
*/
int /* O - 1 on success, 0 on failure */
* 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/OS X 10.8@
+ * @since CUPS 1.6/macOS 10.8@
*/
int /* O - 1 on success, 0 on failure */
*
* "uri" is the "ipp" or "ipps" URI for the printer.
*
- * @since CUPS 2.0/OS X 10.10@
+ * @since CUPS 2.0/macOS 10.10@
*/
cups_dest_t * /* O - Destination or @code NULL@ */
* Free the memory used by the destination array using the @link cupsFreeDests@
* function.
*
- * Note: On OS X this function also gets the default paper from the system
+ * Note: On macOS 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/OS X 10.4@
+ * @since CUPS 1.1.21/macOS 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/OS X 10.6@
+ * @since CUPS 1.4/macOS 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/OS X 10.5@
+ * @since CUPS 1.3/macOS 10.5@
*/
int /* O - New number of destinations */
/*
* 'cupsSetDefaultDest()' - Set the default destination.
*
- * @since CUPS 1.3/OS X 10.5@
+ * @since CUPS 1.3/macOS 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/OS X 10.4@
+ * @since CUPS 1.1.21/macOS 10.4@
*/
int /* O - 0 on success, -1 on error */
#ifdef HAVE_NOTIFY_POST
/*
- * Send a notification so that MacOS X applications can know about the
+ * Send a notification so that macOS applications can know about the
* change, too.
*/
/*
* 'cupsDirClose()' - Close a directory.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
void
/*
* 'cupsDirOpen()' - Open a directory.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 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/OS X 10.5@
+ * @since CUPS 1.2/macOS 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/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
void
/*
* 'cupsDirClose()' - Close a directory.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
void
/*
* 'cupsDirOpen()' - Open a directory.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 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/OS X 10.5@
+ * @since CUPS 1.2/macOS 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/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
void
* function multiple times for each group, or use cupsEncodeOptions()
* to add the standard groups.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
void
/*
* 'cupsFileClose()' - Close a CUPS file.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
int /* O - 0 on success, -1 on error */
/*
* 'cupsFileCompression()' - Return whether a file is compressed.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
int /* O - @code CUPS_FILE_NONE@ or @code CUPS_FILE_GZIP@ */
/*
* 'cupsFileEOF()' - Return the end-of-file status.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 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/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
const char * /* O - Full path to file or @code NULL@ if not found */
/*
* 'cupsFileFlush()' - Flush pending output.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
int /* O - 0 on success, -1 on error */
/*
* 'cupsFileGetChar()' - Get a single character from a file.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
int /* O - Character or -1 on end of file */
/*
* 'cupsFileGetConf()' - Get a line from a configuration file.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 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/OS X 10.5@
+ * @since CUPS 1.2/macOS 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/OS X 10.5@
+ * @since CUPS 1.2/macOS 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/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
int /* O - 0 on success, -1 on error */
/*
* 'cupsFileNumber()' - Return the file descriptor associated with a CUPS file.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
int /* O - File descriptor */
* connection as needed, generally preferring IPv6 connections when there is
* a choice.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 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/OS X 10.5@
+ * @since CUPS 1.2/macOS 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/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
int /* O - Character or -1 on end of file */
/*
* 'cupsFilePrintf()' - Write a formatted string.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
int /* O - Number of bytes written or -1 on error */
/*
* 'cupsFilePutChar()' - Write a character.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
int /* O - 0 on success, -1 on error */
*
* This function handles any comment escaping of the value.
*
- * @since CUPS 1.4/OS X 10.6@
+ * @since CUPS 1.4/macOS 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/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
int /* O - Number of bytes written or -1 on error */
/*
* 'cupsFileRead()' - Read from a file.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 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/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
off_t /* O - New file position or -1 on error */
/*
* 'cupsFileSeek()' - Seek in a file.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
off_t /* O - New file position or -1 on error */
/*
* 'cupsFileStderr()' - Return a CUPS file associated with stderr.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
cups_file_t * /* O - CUPS file */
/*
* 'cupsFileStdin()' - Return a CUPS file associated with stdin.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
cups_file_t * /* O - CUPS file */
/*
* 'cupsFileStdout()' - Return a CUPS file associated with stdout.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
cups_file_t * /* O - CUPS file */
/*
* 'cupsFileTell()' - Return the current file position.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
off_t /* O - File position */
/*
* 'cupsFileUnlock()' - Unlock access to a file.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
int /* O - 0 on success, -1 on error */
/*
* 'cupsFileWrite()' - Write to a file.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
ssize_t /* O - Number of bytes written or -1 on error */
* parameters provide comma-delimited lists of backends to include or omit from
* the request respectively.
*
- * @since CUPS 1.4/OS X 10.6@
+ * @since CUPS 1.4/macOS 10.6@
*/
ipp_status_t /* O - Request status - @code IPP_OK@ on success. */
*
* This function returns @code HTTP_STATUS_OK@ when the file is successfully retrieved.
*
- * @since CUPS 1.1.20/OS X 10.4@
+ * @since CUPS 1.1.20/macOS 10.4@
*/
http_status_t /* O - HTTP status */
*
* This function returns @code HTTP_STATUS_OK@ when the file is successfully retrieved.
*
- * @since CUPS 1.1.20/OS X 10.4@
+ * @since CUPS 1.1.20/macOS 10.4@
*/
http_status_t /* O - HTTP status */
* This function returns @code HTTP_STATUS_CREATED@ when the file is stored
* successfully.
*
- * @since CUPS 1.1.20/OS X 10.4@
+ * @since CUPS 1.1.20/macOS 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/OS X 10.4@
+ * @since CUPS 1.1.20/macOS 10.4@
*/
http_status_t /* O - HTTP status */
*
* The returned hash is binary data.
*
- * @since CUPS 2.2@
+ * @since CUPS 2.2/macOS 10.12@
*/
ssize_t /* O - Size of hash or -1 on error */
/*
* 'httpAddrAny()' - Check for the "any" address.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
int /* O - 1 if "any", 0 otherwise */
/*
* 'httpAddrEqual()' - Compare two addresses.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
int /* O - 1 if equal, 0 if not */
/*
* 'httpAddrLength()' - Return the length of the address in bytes.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
int /* O - Length in bytes */
* 'httpAddrListen()' - Create a listening socket bound to the specified
* address and port.
*
- * @since CUPS 1.7/OS X 10.9@
+ * @since CUPS 1.7/macOS 10.9@
*/
int /* O - Socket or -1 on error */
/*
* 'httpAddrLocalhost()' - Check for the local loopback address.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
int /* O - 1 if local host, 0 otherwise */
/*
* 'httpAddrLookup()' - Lookup the hostname associated with the address.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
char * /* O - Host name */
/*
* 'httpAddrPort()' - Get the port number associated with an address.
*
- * @since CUPS 1.7/OS X 10.9@
+ * @since CUPS 1.7/macOS 10.9@
*/
int /* O - Port number */
/*
* 'httpAddrString()' - Convert an address to a numeric string.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 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/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
const char * /* O - FQDN for connection or system */
/*
* 'httpAddrConnect()' - Connect to any of the addresses in the list.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 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.7/OS X 10.9@
+ * @since CUPS 1.7/macOS 10.9@
*/
http_addrlist_t * /* O - Connected address or NULL on failure */
/*
* 'httpAddrCopyList()' - Copy an address list.
*
- * @since CUPS 1.7/OS X 10.9@
+ * @since CUPS 1.7/macOS 10.9@
*/
http_addrlist_t * /* O - New address list or @code NULL@ on error */
/*
* 'httpAddrFreeList()' - Free an address list.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
void
/*
* 'httpAddrGetList()' - Get a list of addresses for a hostname.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
http_addrlist_t * /* O - List of addresses or NULL */
# if defined(__APPLE__) && !defined(_SOCKLEN_T)
/*
- * MacOS X 10.2.x does not define socklen_t, and in fact uses an int instead of
+ * macOS 10.2.x does not define socklen_t, and in fact uses an int instead of
* unsigned type for length values...
*/
* place of traditional string functions whenever you need to create a
* URI string.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 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/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
http_uri_status_t /* O - URI status */
*
* The buffer needs to be at least 46 bytes in size.
*
- * @since CUPS 1.7/OS X 10.9@
+ * @since CUPS 1.7/macOS 10.9@
*/
char * /* I - UUID string */
/*
* 'httpDecode64_2()' - Base64-decode a string.
*
- * @since CUPS 1.1.21/OS X 10.4@
+ * @since CUPS 1.1.21/macOS 10.4@
*/
char * /* O - Decoded string */
/*
* 'httpEncode64_2()' - Base64-encode a string.
*
- * @since CUPS 1.1.21/OS X 10.4@
+ * @since CUPS 1.1.21/macOS 10.4@
*/
char * /* O - Encoded string */
/*
* 'httpGetDateString2()' - Get a formatted date/time string from a time value.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
const char * /* O - Date/time string */
*
* This function is deprecated; use the httpSeparateURI() function instead.
*
- * @since CUPS 1.1.21/OS X 10.4@
+ * @since CUPS 1.1.21/macOS 10.4@
* @deprecated@
*/
* 'httpSeparateURI()' - Separate a Universal Resource Identifier into its
* components.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
http_uri_status_t /* O - Result of separation */
* 'httpAcceptConnection()' - Accept a new HTTP client connection from the
* specified listening socket.
*
- * @since CUPS 1.7/OS X 10.9@
+ * @since CUPS 1.7/macOS 10.9@
*/
http_t * /* O - HTTP connection or @code NULL@ */
*
* Use @code cupsArrayNew(NULL, NULL)@ to create a credentials array.
*
- * @since CUPS 1.5/OS X 10.7@
+ * @since CUPS 1.5/macOS 10.7@
*/
int /* O - 0 on success, -1 on error */
/*
* 'httpClearCookie()' - Clear the cookie value(s).
*
- * @since CUPS 1.1.19/OS X 10.3@
+ * @since CUPS 1.1.19/macOS 10.3@
*/
void
/*
* 'httpConnect2()' - Connect to a HTTP server.
*
- * @since CUPS 1.7/OS X 10.9@
+ * @since CUPS 1.7/macOS 10.9@
*/
http_t * /* O - New HTTP connection */
/*
* 'httpFlushWrite()' - Flush data in write buffer.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 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/OS X 10.5@
+ * @since CUPS 1.3/macOS 10.5@
*/
char * /* O - Authorization string */
/*
* 'httpGetBlocking()' - Get the blocking/non-block state of a connection.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
int /* O - 1 if blocking, 0 if non-blocking */
* client. The value returned can be use in subsequent requests (for clients)
* or in the response (for servers) in order to compress the content stream.
*
- * @since CUPS 1.7/OS X 10.9@
+ * @since CUPS 1.7/macOS 10.9@
*/
const char * /* O - Content-Coding value or
/*
* 'httpGetCookie()' - Get any cookie data from the response.
*
- * @since CUPS 1.1.19/OS X 10.3@
+ * @since CUPS 1.1.19/macOS 10.3@
*/
const char * /* O - Cookie data or NULL */
* Returns @code HTTP_STATUS_NONE@ if there is no Expect header, otherwise
* returns the expected HTTP status code, typically @code HTTP_STATUS_CONTINUE@.
*
- * @since CUPS 1.7/OS X 10.9@
+ * @since CUPS 1.7/macOS 10.9@
*/
http_status_t /* O - Expect: status, if any */
/*
* 'httpGetFd()' - Get the file descriptor associated with a connection.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 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/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
off_t /* O - Content length */
/*
* 'httpGetStatus()' - Get the status of the last HTTP request.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
http_status_t /* O - HTTP status */
/*
* 'httpGetSubField2()' - Get a sub-field value.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
char * /* O - Value or NULL */
*
* For non-blocking connections the usual timeouts apply.
*
- * @since CUPS 1.7/OS X 10.9@
+ * @since CUPS 1.7/macOS 10.9@
*/
ssize_t /* O - Number of bytes copied */
/*
* 'httpRead2()' - Read data from a HTTP connection.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
ssize_t /* O - Number of bytes read */
/*
* 'httpReadRequest()' - Read a HTTP request from a connection.
*
- * @since CUPS 1.7/OS X 10.9@
+ * @since CUPS 1.7/macOS 10.9@
*/
http_state_t /* O - New state of connection */
* HTTP_FIELD_AUTHORIZATION prior to issuing a HTTP request using httpGet(),
* httpHead(), httpOptions(), httpPost, or httpPut().
*
- * @since CUPS 1.3/OS X 10.5@
+ * @since CUPS 1.3/macOS 10.5@
*/
void
* 'httpSetCredentials()' - Set the credentials associated with an encrypted
* connection.
*
- * @since CUPS 1.5/OS X 10.7@
+ * @since CUPS 1.5/macOS 10.7@
*/
int /* O - Status of call (0 = success) */
/*
* 'httpSetCookie()' - Set the cookie value(s).
*
- * @since CUPS 1.1.19/OS X 10.3@
+ * @since CUPS 1.1.19/macOS 10.3@
*/
void
* Currently only @code HTTP_FIELD_ACCEPT_ENCODING@, @code HTTP_FIELD_SERVER@,
* and @code HTTP_FIELD_USER_AGENT@ can be set.
*
- * @since CUPS 1.7/OS X 10.9@
+ * @since CUPS 1.7/macOS 10.9@
*/
void
* Currently only @code HTTP_STATUS_CONTINUE@ is supported for the "expect"
* argument.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
void
/*
* 'httpSetLength()' - Set the content-length and content-encoding.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 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/OS X 10.7@
+ * @since CUPS 1.5/macOS 10.7@
*/
void
/*
* 'httpWait()' - Wait for data available on a connection.
*
- * @since CUPS 1.1.19/OS X 10.3@
+ * @since CUPS 1.1.19/macOS 10.3@
*/
int /* O - 1 if data is available, 0 otherwise */
/*
* 'httpWrite2()' - Write data to a HTTP connection.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
ssize_t /* O - Number of bytes written */
/*
* 'httpWriteResponse()' - Write a HTTP response to a client connection.
*
- * @since CUPS 1.7/OS X 10.9@
+ * @since CUPS 1.7/macOS 10.9@
*/
int /* O - 0 on success, -1 on error */
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/OS X 10.5@ */
+ HTTP_AUTH_NEGOTIATE /* GSSAPI authentication in use @since CUPS 1.3/macOS 10.5@ */
} http_auth_t;
typedef enum http_encoding_e /**** HTTP transfer encoding values ****/
HTTP_FIELD_UPGRADE, /* Upgrade field */
HTTP_FIELD_USER_AGENT, /* User-Agent field */
HTTP_FIELD_WWW_AUTHENTICATE, /* WWW-Authenticate field */
- HTTP_FIELD_ACCEPT_ENCODING, /* Accepting-Encoding field @since CUPS 1.7/OS X 10.9@ */
- HTTP_FIELD_ALLOW, /* Allow field @since CUPS 1.7/OS X 10.9@ */
- HTTP_FIELD_SERVER, /* Server field @since CUPS 1.7/OS X 10.9@ */
+ HTTP_FIELD_ACCEPT_ENCODING, /* Accepting-Encoding field @since CUPS 1.7/macOS 10.9@ */
+ HTTP_FIELD_ALLOW, /* Allow field @since CUPS 1.7/macOS 10.9@ */
+ HTTP_FIELD_SERVER, /* Server field @since CUPS 1.7/macOS 10.9@ */
HTTP_FIELD_MAX /* Maximum field index */
} http_field_t;
HTTP_STATE_TRACE, /* TRACE command, waiting for blank line */
HTTP_STATE_CONNECT, /* CONNECT command, waiting for blank line */
HTTP_STATE_STATUS, /* Command complete, sending status */
- HTTP_STATE_UNKNOWN_METHOD, /* Unknown request method, waiting for blank line @since CUPS 1.7/OS X 10.9@ */
- HTTP_STATE_UNKNOWN_VERSION /* Unknown request method, waiting for blank line @since CUPS 1.7/OS X 10.9@ */
+ HTTP_STATE_UNKNOWN_METHOD, /* Unknown request method, waiting for blank line @since CUPS 1.7/macOS 10.9@ */
+ HTTP_STATE_UNKNOWN_VERSION /* Unknown request method, waiting for blank line @since CUPS 1.7/macOS 10.9@ */
# ifndef _CUPS_NO_DEPRECATED
# define HTTP_WAITING HTTP_STATE_WAITING
typedef enum http_status_e /**** HTTP status codes ****/
{
HTTP_STATUS_ERROR = -1, /* An error response from httpXxxx() */
- HTTP_STATUS_NONE = 0, /* No Expect value @since CUPS 1.7/OS X 10.9@ */
+ HTTP_STATUS_NONE = 0, /* No Expect value @since CUPS 1.7/macOS 10.9@ */
HTTP_STATUS_CONTINUE = 100, /* Everything OK, keep going... */
HTTP_STATUS_SWITCHING_PROTOCOLS, /* HTTP upgrade to TLS/SSL */
HTTP_STATUS_CUPS_AUTHORIZATION_CANCELED = 1000,
/* User canceled authorization @since CUPS 1.4@ */
- HTTP_STATUS_CUPS_PKI_ERROR, /* Error negotiating a secure connection @since CUPS 1.5/OS X 10.7@ */
+ HTTP_STATUS_CUPS_PKI_ERROR, /* Error negotiating a secure connection @since CUPS 1.5/macOS 10.7@ */
HTTP_STATUS_CUPS_WEBIF_DISABLED /* Web interface is disabled @private@ */
# ifndef _CUPS_NO_DEPRECATED
typedef union _http_addr_u /**** Socket address union, which
**** makes using IPv6 and other
**** address types easier and
- **** more portable. @since CUPS 1.2/OS X 10.5@
+ **** more portable. @since CUPS 1.2/macOS 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/OS X 10.5@
+ **** with a hostname. @since CUPS 1.2/macOS 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/OS X 10.7@ ****/
+typedef struct http_credential_s /**** HTTP credential data @since CUPS 1.5/macOS 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/OS X 10.7@ ****/
+ /**** HTTP timeout callback @since CUPS 1.5/macOS 10.7@ ****/
char *host, int hostlen, int *port,
char *resource, int resourcelen) _CUPS_DEPRECATED_MSG("Use httpSeparateURI instead.");
-/**** New in CUPS 1.2/OS X 10.5 ****/
+/**** New in CUPS 1.2/macOS 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/OS X 10.5 ****/
+/**** New in CUPS 1.3/macOS 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/OS X 10.7 ****/
+/**** New in CUPS 1.5/macOS 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/OS X 10.8 ****/
+/**** New in CUPS 1.6/macOS 10.8 ****/
extern http_addrlist_t *httpAddrConnect2(http_addrlist_t *addrlist, int *sock,
int msec, int *cancel)
_CUPS_API_1_6;
_CUPS_API_1_6;
-/**** New in CUPS 1.7/OS X 10.9 ****/
+/**** New in CUPS 1.7/macOS 10.9 ****/
extern http_t *httpAcceptConnection(int fd, int blocking)
_CUPS_API_1_7;
extern http_addrlist_t *httpAddrCopyList(http_addrlist_t *src) _CUPS_API_1_7;
extern http_state_t httpWriteResponse(http_t *http,
http_status_t status) _CUPS_API_1_7;
-/* New in CUPS 2.0/OS X 10.10 */
+/* New in CUPS 2.0/macOS 10.10 */
extern int httpAddrClose(http_addr_t *addr, int fd) _CUPS_API_2_0;
extern int httpAddrFamily(http_addr_t *addr) _CUPS_API_2_0;
extern int httpCompareCredentials(cups_array_t *cred1, cups_array_t *cred2) _CUPS_API_2_0;
* trailing nul. The buffer pointer can be NULL to get the required length,
* just like (v)snprintf.
*
- * @since CUPS 1.6/OS X 10.8@
+ * @since CUPS 1.6/macOS 10.8@
*/
size_t /* O - Number of bytes less nul */
* "attribute-name")@ will return a non-NULL pointer. The array must be freed
* using the @code cupsArrayDelete@ function.
*
- * @since CUPS 1.7/OS X 10.9@
+ * @since CUPS 1.7/macOS 10.9@
*/
cups_array_t * /* O - CUPS array or @code NULL@ if all */
/*
* 'ippErrorValue()' - Return a status code for the given name.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
ipp_status_t /* O - IPP status code */
/*
* 'ippOpString()' - Return a name for the given operation id.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
const char * /* O - Name */
/*
* 'ippOpValue()' - Return an operation id for the given name.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
ipp_op_t /* O - Operation ID */
*
* The returned names are defined in RFC 2911 and 3382.
*
- * @since CUPS 1.4/OS X 10.6@
+ * @since CUPS 1.4/macOS 10.6@
*/
const char * /* O - Tag name */
*
* The tag names are defined in RFC 2911 and 3382.
*
- * @since CUPS 1.4/OS X 10.6@
+ * @since CUPS 1.4/macOS 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/OS X 10.3@
+ * @since CUPS 1.1.19/macOS 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/OS X 10.3@
+ * @since CUPS 1.1.19/macOS 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/OS X 10.5@
+ * @since CUPS 1.2/macOS 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/OS X 10.8@
+ * @since CUPS 1.6/macOS 10.8@
*/
ipp_attribute_t * /* O - New attribute */
* needed. The formatted string is truncated as needed to the maximum length of
* the corresponding value type.
*
- * @since CUPS 1.7/OS X 10.9@
+ * @since CUPS 1.7/macOS 10.9@
*/
ipp_attribute_t * /* O - New attribute */
* stdarg pointer @code ap@. The formatted string is truncated as needed to the
* maximum length of the corresponding value type.
*
- * @since CUPS 1.7/OS X 10.9@
+ * @since CUPS 1.7/macOS 10.9@
*/
ipp_attribute_t * /* O - New attribute */
* enum value, or the value falls within one of the rangeOfInteger values for
* the attribute.
*
- * @since CUPS 1.7/OS X 10.9@
+ * @since CUPS 1.7/macOS 10.9@
*/
int /* O - 1 on a match, 0 on no match */
* Returns non-zero when the attribute contains a matching charset, keyword,
* language, mimeMediaType, name, text, URI, or URI scheme value.
*
- * @since CUPS 1.7/OS X 10.9@
+ * @since CUPS 1.7/macOS 10.9@
*/
int /* O - 1 on a match, 0 on no match */
* 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/OS X 10.8@
+ * @since CUPS 1.6/macOS 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/OS X 10.8@
+ * @since CUPS 1.6/macOS 10.8@
*/
int /* O - 1 on success, 0 on error */
/*
* 'ippDeleteAttribute()' - Delete a single attribute in an IPP message.
*
- * @since CUPS 1.1.19/OS X 10.3@
+ * @since CUPS 1.1.19/macOS 10.3@
*/
void
*
* Deleting all values in an attribute deletes the attribute.
*
- * @since CUPS 1.6/OS X 10.8@
+ * @since CUPS 1.6/macOS 10.8@
*/
int /* O - 1 on success, 0 on failure */
/*
* 'ippFirstAttribute()' - Return the first attribute in the message.
*
- * @since CUPS 1.6/OS X 10.8@
+ * @since CUPS 1.6/macOS 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/OS X 10.8@
+ * @since CUPS 1.6/macOS 10.8@
*/
int /* O - Boolean value or 0 on error */
* The @code element@ parameter specifies which value to get from 0 to
* @link ippGetCount(attr)@ - 1.
*
- * @since CUPS 1.6/OS X 10.8@
+ * @since CUPS 1.6/macOS 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/OS X 10.8@
+ * @since CUPS 1.6/macOS 10.8@
*/
int /* O - Number of values or 0 on error */
* The @code element@ parameter specifies which value to get from 0 to
* @link ippGetCount(attr)@ - 1.
*
- * @since CUPS 1.6/OS X 10.8@
+ * @since CUPS 1.6/macOS 10.8@
*/
const ipp_uchar_t * /* O - Date value or @code NULL@ */
/*
* 'ippGetGroupTag()' - Get the group associated with an attribute.
*
- * @since CUPS 1.6/OS X 10.8@
+ * @since CUPS 1.6/macOS 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/OS X 10.8@
+ * @since CUPS 1.6/macOS 10.8@
*/
int /* O - Value or 0 on error */
/*
* 'ippGetName()' - Get the attribute name.
*
- * @since CUPS 1.6/OS X 10.8@
+ * @since CUPS 1.6/macOS 10.8@
*/
const char * /* O - Attribute name or @code NULL@ for separators */
* The @code element@ parameter specifies which value to get from 0 to
* @link ippGetCount(attr)@ - 1.
*
- * @since CUPS 1.7/OS X 10.9@
+ * @since CUPS 1.7/macOS 10.9@
*/
void * /* O - Pointer to octetString data */
/*
* 'ippGetOperation()' - Get the operation ID in an IPP message.
*
- * @since CUPS 1.6/OS X 10.8@
+ * @since CUPS 1.6/macOS 10.8@
*/
ipp_op_t /* O - Operation ID or 0 on error */
* The @code element@ parameter specifies which value to get from 0 to
* @link ippGetCount(attr)@ - 1.
*
- * @since CUPS 1.6/OS X 10.8@
+ * @since CUPS 1.6/macOS 10.8@
*/
int /* O - Lower value of range or 0 */
/*
* 'ippGetRequestId()' - Get the request ID from an IPP message.
*
- * @since CUPS 1.6/OS X 10.8@
+ * @since CUPS 1.6/macOS 10.8@
*/
int /* O - Request ID or 0 on error */
* The @code element@ parameter specifies which value to get from 0 to
* @link ippGetCount(attr)@ - 1.
*
- * @since CUPS 1.6/OS X 10.8@
+ * @since CUPS 1.6/macOS 10.8@
*/
int /* O - Horizontal/cross feed resolution or 0 */
/*
* 'ippGetState()' - Get the IPP message state.
*
- * @since CUPS 1.6/OS X 10.8@
+ * @since CUPS 1.6/macOS 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/OS X 10.8@
+ * @since CUPS 1.6/macOS 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/OS X 10.8@
+ * @since CUPS 1.6/macOS 10.8@
*/
const char *
/*
* 'ippGetValueTag()' - Get the value tag for an attribute.
*
- * @since CUPS 1.6/OS X 10.8@
+ * @since CUPS 1.6/macOS 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/OS X 10.8@
+ * @since CUPS 1.6/macOS 10.8@
*/
int /* O - Major version number or 0 on error */
/*
* 'ippNextAttribute()' - Return the next attribute in the message.
*
- * @since CUPS 1.6/OS X 10.8@
+ * @since CUPS 1.6/macOS 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/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
ipp_t * /* O - IPP request message */
* "utf-8" and a value derived from the current locale are substituted,
* respectively.
*
- * @since CUPS 1.7/OS X 10.9@
+ * @since CUPS 1.7/macOS 10.9@
*/
ipp_t * /* O - IPP response message */
/*
* 'ippReadFile()' - Read data for an IPP message from a file.
*
- * @since CUPS 1.1.19/OS X 10.3@
+ * @since CUPS 1.1.19/macOS 10.3@
*/
ipp_state_t /* O - Current state */
/*
* 'ippReadIO()' - Read data for an IPP message.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 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/OS X 10.8@
+ * @since CUPS 1.6/macOS 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/OS X 10.8@
+ * @since CUPS 1.6/macOS 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/OS X 10.8@
+ * @since CUPS 1.6/macOS 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/OS X 10.8@
+ * @since CUPS 1.6/macOS 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/OS X 10.8@
+ * @since CUPS 1.6/macOS 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/OS X 10.8@
+ * @since CUPS 1.6/macOS 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.7/OS X 10.9@
+ * @since CUPS 1.7/macOS 10.9@
*/
int /* O - 1 on success, 0 on failure */
* The @code ipp@ parameter refers to an IPP message previously created using
* the @link ippNew@, @link ippNewRequest@, or @link ippNewResponse@ functions.
*
- * @since CUPS 1.6/OS X 10.8@
+ * @since CUPS 1.6/macOS 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/OS X 10.8@
+ * @since CUPS 1.6/macOS 10.8@
*/
int /* O - 1 on success, 0 on failure */
*
* The @code request_id@ parameter must be greater than 0.
*
- * @since CUPS 1.6/OS X 10.8@
+ * @since CUPS 1.6/macOS 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/OS X 10.8@
+ * @since CUPS 1.6/macOS 10.8@
*/
int /* O - 1 on success, 0 on failure */
/*
* 'ippSetState()' - Set the current state of the IPP message.
*
- * @since CUPS 1.6/OS X 10.8@
+ * @since CUPS 1.6/macOS 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@, @link ippNewRequest@, or @link ippNewResponse@ functions.
*
- * @since CUPS 1.6/OS X 10.8@
+ * @since CUPS 1.6/macOS 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/OS X 10.8@
+ * @since CUPS 1.6/macOS 10.8@
*/
int /* O - 1 on success, 0 on failure */
* needed. The formatted string is truncated as needed to the maximum length of
* the corresponding value type.
*
- * @since CUPS 1.7/OS X 10.9@
+ * @since CUPS 1.7/macOS 10.9@
*/
int /* O - 1 on success, 0 on failure */
* needed. The formatted string is truncated as needed to the maximum length of
* the corresponding value type.
*
- * @since CUPS 1.7/OS X 10.9@
+ * @since CUPS 1.7/macOS 10.9@
*/
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/OS X 10.8@
+ * @since CUPS 1.6/macOS 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/OS X 10.8@
+ * @since CUPS 1.6/macOS 10.8@
*/
int /* O - 1 on success, 0 on failure */
* value tag. 1 is returned if the attribute is valid, 0 otherwise. On
* failure, cupsLastErrorString() is set to a human-readable message.
*
- * @since CUPS 1.7/OS X 10.9@
+ * @since CUPS 1.7/macOS 10.9@
*/
int /* O - 1 if valid, 0 otherwise */
* attribute. Like @link ippValidateAttribute@, cupsLastErrorString() is set
* to a human-readable message on failure.
*
- * @since CUPS 1.7/OS X 10.9@
+ * @since CUPS 1.7/macOS 10.9@
*/
int /* O - 1 if valid, 0 otherwise */
/*
* 'ippWriteFile()' - Write data for an IPP message to a file.
*
- * @since CUPS 1.1.19/OS X 10.3@
+ * @since CUPS 1.1.19/macOS 10.3@
*/
ipp_state_t /* O - Current state */
/*
* 'ippWriteIO()' - Write data for an IPP message.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
ipp_state_t /* O - Current state */
IPP_OP_SET_PRINTER_ATTRIBUTES, /* Set printer attributes */
IPP_OP_SET_JOB_ATTRIBUTES, /* Set job attributes */
IPP_OP_GET_PRINTER_SUPPORTED_VALUES, /* Get supported attribute values */
- IPP_OP_CREATE_PRINTER_SUBSCRIPTIONS, /* Create one or more printer subscriptions @since CUPS 1.2/OS X 10.5@ */
- IPP_OP_CREATE_JOB_SUBSCRIPTIONS, /* Create one of more job subscriptions @since CUPS 1.2/OS X 10.5@ */
- IPP_OP_GET_SUBSCRIPTION_ATTRIBUTES, /* Get subscription attributes @since CUPS 1.2/OS X 10.5@ */
- IPP_OP_GET_SUBSCRIPTIONS, /* Get list of subscriptions @since CUPS 1.2/OS X 10.5@ */
- IPP_OP_RENEW_SUBSCRIPTION, /* Renew a printer subscription @since CUPS 1.2/OS X 10.5@ */
- IPP_OP_CANCEL_SUBSCRIPTION, /* Cancel a subscription @since CUPS 1.2/OS X 10.5@ */
- IPP_OP_GET_NOTIFICATIONS, /* Get notification events @since CUPS 1.2/OS X 10.5@ */
+ IPP_OP_CREATE_PRINTER_SUBSCRIPTIONS, /* Create one or more printer subscriptions @since CUPS 1.2/macOS 10.5@ */
+ IPP_OP_CREATE_JOB_SUBSCRIPTIONS, /* Create one of more job subscriptions @since CUPS 1.2/macOS 10.5@ */
+ IPP_OP_GET_SUBSCRIPTION_ATTRIBUTES, /* Get subscription attributes @since CUPS 1.2/macOS 10.5@ */
+ IPP_OP_GET_SUBSCRIPTIONS, /* Get list of subscriptions @since CUPS 1.2/macOS 10.5@ */
+ IPP_OP_RENEW_SUBSCRIPTION, /* Renew a printer subscription @since CUPS 1.2/macOS 10.5@ */
+ IPP_OP_CANCEL_SUBSCRIPTION, /* Cancel a subscription @since CUPS 1.2/macOS 10.5@ */
+ IPP_OP_GET_NOTIFICATIONS, /* Get notification events @since CUPS 1.2/macOS 10.5@ */
IPP_OP_SEND_NOTIFICATIONS, /* Send notification events @private@ */
IPP_OP_GET_RESOURCE_ATTRIBUTES, /* Get resource attributes @private@ */
IPP_OP_GET_RESOURCE_DATA, /* Get resource data @private@ */
IPP_OP_CUPS_GET_DEVICES, /* Get a list of supported devices @deprecated@ */
IPP_OP_CUPS_GET_PPDS, /* Get a list of supported drivers @deprecated@ */
IPP_OP_CUPS_MOVE_JOB, /* Move a job to a different printer */
- IPP_OP_CUPS_AUTHENTICATE_JOB, /* Authenticate a job @since CUPS 1.2/OS X 10.5@ */
+ IPP_OP_CUPS_AUTHENTICATE_JOB, /* Authenticate a job @since CUPS 1.2/macOS 10.5@ */
IPP_OP_CUPS_GET_PPD, /* Get a PPD file @deprecated@ */
- IPP_OP_CUPS_GET_DOCUMENT = 0x4027, /* Get a document file @since CUPS 1.4/OS X 10.6@ */
+ IPP_OP_CUPS_GET_DOCUMENT = 0x4027, /* Get a document file @since CUPS 1.4/macOS 10.6@ */
IPP_OP_CUPS_CREATE_LOCAL_PRINTER /* Create a local (temporary) printer @since CUPS 2.2 */
# ifndef _CUPS_NO_DEPRECATED
/* These are internal and never sent over the wire... */
IPP_STATUS_ERROR_CUPS_AUTHENTICATION_CANCELED = 0x1000,
- /* cups-authentication-canceled - Authentication canceled by user @since CUPS 1.5/OS X 10.7@ */
- IPP_STATUS_ERROR_CUPS_PKI, /* cups-pki-error - Error negotiating a secure connection @since CUPS 1.5/OS X 10.7@ */
+ /* cups-authentication-canceled - Authentication canceled by user @since CUPS 1.5/macOS 10.7@ */
+ IPP_STATUS_ERROR_CUPS_PKI, /* cups-pki-error - Error negotiating a secure connection @since CUPS 1.5/macOS 10.7@ */
IPP_STATUS_ERROR_CUPS_UPGRADE_REQUIRED/* cups-upgrade-required - TLS upgrade required */
# ifndef _CUPS_NO_DEPRECATED
typedef struct _ipp_attribute_s ipp_attribute_t;
/**** IPP attribute ****/
-/**** New in CUPS 1.2/OS X 10.5 ****/
+/**** New in CUPS 1.2/macOS 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/OS X 10.5@ ****/
+ /**** IPP IO Callback Function @since CUPS 1.2/macOS 10.5@ ****/
-/**** New in CUPS 1.6/OS X 10.8 ****/
+/**** New in CUPS 1.6/macOS 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/OS X 10.8.
+ * The following structures are PRIVATE starting with CUPS 1.6/macOS 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 1 to cause the private IPP structures to be
- * exposed in CUPS 1.6. This happens automatically on OS X when compiling for
+ * exposed in CUPS 1.6. This happens automatically on macOS when compiling for
* a deployment target of 10.7 or earlier.
*
* Define _IPP_PRIVATE_STRUCTURES to 0 to prevent the private IPP structures
} status;
/**** New in CUPS 1.1.19 ****/
- struct /* Event Header @since CUPS 1.1.19/OS X 10.3@ */
+ struct /* Event Header @since CUPS 1.1.19/macOS 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/OS X 10.3@ */
+ ipp_t *collection; /* Collection value @since CUPS 1.1.19/macOS 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/OS X 10.5@ */
+ ipp_attribute_t *prev; /* Previous attribute (for read) @since CUPS 1.2/macOS 10.5@ */
/**** New in CUPS 1.4.4 ****/
- int use; /* Use count @since CUPS 1.4.4/OS X 10.6.?@ */
+ int use; /* Use count @since CUPS 1.4.4/macOS 10.6.?@ */
/**** New in CUPS 2.0 ****/
int atend, /* At end of list? */
curindex; /* Current attribute index for hierarchical search */
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/OS X 10.5 ****/
+/**** New in CUPS 1.2/macOS 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/OS X 10.6 ****/
+/**** New in CUPS 1.4/macOS 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/OS X 10.8 ****/
+/**** New in CUPS 1.6/macOS 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;
*
* The returned string must be freed by the caller using @code free@.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 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/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
char * /* O - Message text or @code NULL@ */
/*
* 'cupsRemoveOption()' - Remove an option from an option array.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
int /* O - New number of options */
/*
* 'ppdFindAttr()' - Find the first matching attribute.
*
- * @since CUPS 1.1.19/OS X 10.3@
+ * @since CUPS 1.1.19/macOS 10.3@
*/
ppd_attr_t * /* O - Attribute or @code NULL@ if not found */
/*
* 'ppdFindNextAttr()' - Find the next matching attribute.
*
- * @since CUPS 1.1.19/OS X 10.3@
+ * @since CUPS 1.1.19/macOS 10.3@
*/
ppd_attr_t * /* O - Attribute or @code NULL@ if not found */
* the conflicting options. The returned option array must be freed using
* @link cupsFreeOptions@.
*
- * @since CUPS 1.4/OS X 10.6@
+ * @since CUPS 1.4/macOS 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/OS X 10.6@
+ * @since CUPS 1.4/macOS 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/OS X 10.6@
+ * @since CUPS 1.4/macOS 10.6@
*/
int /* O - 1 if conflicting, 0 if not conflicting */
/*
* 'ppdFindCustomOption()' - Find a custom option.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
ppd_coption_t * /* O - Custom option or NULL */
/*
* 'ppdFindCustomParam()' - Find a parameter for a custom option.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
ppd_cparam_t * /* O - Custom parameter or NULL */
/*
* 'ppdFirstCustomParam()' - Return the first parameter for a custom option.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
ppd_cparam_t * /* O - Custom parameter or NULL */
/*
* 'ppdNextCustomParam()' - Return the next parameter for a custom option.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
ppd_cparam_t * /* O - Custom parameter or NULL */
* The choices array should be freed using @code free@ when you are
* finished with it.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
int /* O - Number of options marked */
*
* When "limit" is zero, this function is identical to ppdEmit().
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
int /* O - 0 on success, -1 on failure */
/*
* 'ppdEmitJCLEnd()' - Emit JCLEnd code to a file.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 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/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
char * /* O - String containing option code or @code NULL@ if there is no option code */
* descriptions, printer presets, and custom option parameters. Each
* localized string uses the UTF-8 character encoding.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 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/OS X 10.5@
+ * @since CUPS 1.3/macOS 10.5@
*/
const char * /* O - Value or NULL if not found */
* text from the attribute value. If no localized text for the requested
* name can be found, @code NULL@ is returned.
*
- * @since CUPS 1.4/OS X 10.6@
+ * @since CUPS 1.4/macOS 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 OS X, but is generally accessible
+ * This function is primarily used on macOS, but is generally accessible
* since cupstestppd needs to check for profile name collisions in PPD files...
*/
* InputSlot, etc.) is not also set.
*
* For PageSize, we also check for an empty option value since some versions
- * of MacOS X use it to specify auto-selection of the media based solely on
+ * of macOS use it to specify auto-selection of the media based solely on
* the size.
*/
*
* Options are returned from all groups in ascending alphanumeric order.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 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/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
ppd_option_t * /* O - Next option or @code NULL@ */
ppd, option, choice));
/*
- * AP_D_InputSlot is the "default input slot" on MacOS X, and setting
+ * AP_D_InputSlot is the "default input slot" on macOS, and setting
* it clears the regular InputSlot choices...
*/
* If the specified PPD file does not support custom page sizes, both
* "minimum" and "maximum" are filled with zeroes.
*
- * @since CUPS 1.4/OS X 10.6@
+ * @since CUPS 1.4/macOS 10.6@
*/
int /* O - 1 if custom sizes are supported, 0 otherwise */
* 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/OS X 10.4@
+ * @since CUPS 1.1.21/macOS 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/OS X 10.6@
+ * @since CUPS 1.4/macOS 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/OS X 10.5@
+ * @since CUPS 1.3/macOS 10.5@
*/
char * /* O - Name of PPD file or @code NULL@ on error */
/*
* 'ppdErrorString()' - Returns the text associated with a status.
*
- * @since CUPS 1.1.19/OS X 10.3@
+ * @since CUPS 1.1.19/macOS 10.3@
*/
const char * /* O - Status string */
/*
* 'ppdLastError()' - Return the status from the last ppdOpen*().
*
- * @since CUPS 1.1.19/OS X 10.3@
+ * @since CUPS 1.1.19/macOS 10.3@
*/
ppd_status_t /* O - Status code */
/*
* '_ppdOpen()' - Read a PPD file into memory.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 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/OS X 10.5@
+ * @since CUPS 1.2/macOS 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/OS X 10.4@
+ * @since CUPS 1.1.20/macOS 10.4@
*/
void
DEBUG_printf(("9ppd_read: LINE=\"%s\"", line->buffer));
/*
- * The dynamically created PPDs for older style OS X
+ * The dynamically created PPDs for older style macOS
* 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.
PPD_CS_N /* DeviceN colorspace */
} ppd_cs_t;
-typedef enum ppd_status_e /**** Status Codes @since CUPS 1.1.19/OS X 10.3@ ****/
+typedef enum ppd_status_e /**** Status Codes @since CUPS 1.1.19/macOS 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/OS X 10.3@ ****/
+enum ppd_conform_e /**** Conformance Levels @since CUPS 1.1.19/macOS 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/OS X 10.3@ ****/
+ /**** Conformance Levels @since CUPS 1.1.19/macOS 10.3@ ****/
-typedef struct ppd_attr_s /**** PPD Attribute Structure @since CUPS 1.1.19/OS X 10.3@ ****/
+typedef struct ppd_attr_s /**** PPD Attribute Structure @since CUPS 1.1.19/macOS 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/OS X 10.3@ */
+ char name[PPD_MAX_NAME]; /* Group name @since CUPS 1.1.18/macOS 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/OS X 10.5 ****/
-typedef enum ppd_cptype_e /**** Custom Parameter Type @since CUPS 1.2/OS X 10.5@ ****/
+/**** New in CUPS 1.2/macOS 10.5 ****/
+typedef enum ppd_cptype_e /**** Custom Parameter Type @since CUPS 1.2/macOS 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/OS X 10.5@ ****/
+typedef union ppd_cplimit_u /**** Custom Parameter Limit @since CUPS 1.2/macOS 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/OS X 10.5@ ****/
+typedef union ppd_cpvalue_u /**** Custom Parameter Value @since CUPS 1.2/macOS 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/OS X 10.5@ ****/
+typedef struct ppd_cparam_s /**** Custom Parameter @since CUPS 1.2/macOS 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/OS X 10.5@ ****/
+typedef struct ppd_coption_s /**** Custom Option @since CUPS 1.2/macOS 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/OS X 10.7@ @private@ ****/
+ /**** PPD cache and mapping data @since CUPS 1.5/macOS 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/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@ */
+ char *protocols; /* Protocols (BCP, TBCP) string @since CUPS 1.1.19/macOS 10.3@ */
+ char *pcfilename; /* PCFileName string @since CUPS 1.1.19/macOS 10.3@ */
+ int num_attrs; /* Number of attributes @since CUPS 1.1.19/macOS 10.3@ @private@ */
+ int cur_attr; /* Current attribute @since CUPS 1.1.19/macOS 10.3@ @private@ */
+ ppd_attr_t **attrs; /* Attributes @since CUPS 1.1.19/macOS 10.3@ @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.2/macOS 10.5 ****/
+ cups_array_t *sorted_attrs; /* Attribute lookup array @since CUPS 1.2/macOS 10.5@ @private@ */
+ cups_array_t *options; /* Option lookup array @since CUPS 1.2/macOS 10.5@ @private@ */
+ cups_array_t *coptions; /* Custom options array @since CUPS 1.2/macOS 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.3/macOS 10.5 ****/
+ cups_array_t *marked; /* Marked choices @since CUPS 1.3/macOS 10.5@ @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.4/macOS 10.6 ****/
+ cups_array_t *cups_uiconstraints; /* cupsUIConstraints @since CUPS 1.4/macOS 10.6@ @private@ */
/**** New in CUPS 1.5 ****/
- _ppd_cache_t *cache; /* PPD cache and mapping data @since CUPS 1.5/OS X 10.7@ @private@ */
+ _ppd_cache_t *cache; /* PPD cache and mapping data @since CUPS 1.5/macOS 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/OS X 10.5 ****/
+/**** New in CUPS 1.3/macOS 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/OS X 10.6 ****/
+/**** New in CUPS 1.4/macOS 10.6 ****/
extern int cupsGetConflicts(ppd_file_t *ppd, const char *option,
const char *choice,
cups_option_t **options)
* units string is @code NULL@, otherwise inches ("in") or millimeters ("mm")
* are used.
*
- * @since CUPS 1.7/OS X 10.9@
+ * @since CUPS 1.7/macOS 10.9@
*/
int /* O - 1 on success, 0 on failure */
return (1);
}
-/* For OS X 10.8 and earlier... */
+/* For macOS 10.8 and earlier... */
void _pwgGenerateSize(char *keyword, size_t keysize, const char *prefix,
const char *name, int width, int length)
{ pwgFormatSizeName(keyword, keysize, prefix, name, width, length, NULL); }
* member attribute was specified in the "media-col" Job Template attribute,
* otherwise it is initialized to 0.
*
- * @since CUPS 1.7/OS X 10.9@
+ * @since CUPS 1.7/macOS 10.9@
*/
int /* O - 1 if size was initialized, 0 otherwise */
return (1);
}
-/* For OS X 10.8 and earlier */
+/* For macOS 10.8 and earlier */
int _pwgInitSize(pwg_size_t *size, ipp_t *job, int *margins_set)
{ return (pwgInitSize(size, job, margins_set)); }
* The "name" argument specifies the legacy ISO media size name, for example
* "iso-a4" or "na-letter".
*
- * @since CUPS 1.7/OS X 10.9@
+ * @since CUPS 1.7/macOS 10.9@
*/
pwg_media_t * /* O - Matching size or NULL */
* thread. Custom names can be of the form "Custom.WIDTHxLENGTH[units]" or
* "WIDTHxLENGTH[units]".
*
- * @since CUPS 1.7/OS X 10.9@
+ * @since CUPS 1.7/macOS 10.9@
*/
pwg_media_t * /* O - Matching size or NULL */
* thread-local storage and is overwritten by each call to the function in the
* thread.
*
- * @since CUPS 1.7/OS X 10.9@
+ * @since CUPS 1.7/macOS 10.9@
*/
pwg_media_t * /* O - Matching size or NULL */
* thread-local storage and is overwritten by each call to the function in the
* thread.
*
- * @since CUPS 1.7/OS X 10.9@
+ * @since CUPS 1.7/macOS 10.9@
*/
pwg_media_t * /* O - PWG media name */
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/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_CIEXYZ = 15, /* CIE XYZ @since CUPS 1.1.19/macOS 10.3@ */
+ CUPS_CSPACE_CIELab = 16, /* CIE Lab @since CUPS 1.1.19/macOS 10.3@ */
+ CUPS_CSPACE_RGBW = 17, /* Red, green, blue, white (DeviceRGB, sRGB by default) @since CUPS 1.2/macOS 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/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_ICC1 = 32, /* ICC-based, 1 color @since CUPS 1.1.19/macOS 10.3@ */
+ CUPS_CSPACE_ICC2 = 33, /* ICC-based, 2 colors @since CUPS 1.1.19/macOS 10.3@ */
+ CUPS_CSPACE_ICC3 = 34, /* ICC-based, 3 colors @since CUPS 1.1.19/macOS 10.3@ */
+ CUPS_CSPACE_ICC4 = 35, /* ICC-based, 4 colors @since CUPS 1.1.19/macOS 10.3@ */
+ CUPS_CSPACE_ICC5 = 36, /* ICC-based, 5 colors @since CUPS 1.1.19/macOS 10.3@ */
+ CUPS_CSPACE_ICC6 = 37, /* ICC-based, 6 colors @since CUPS 1.1.19/macOS 10.3@ */
+ CUPS_CSPACE_ICC7 = 38, /* ICC-based, 7 colors @since CUPS 1.1.19/macOS 10.3@ */
+ CUPS_CSPACE_ICC8 = 39, /* ICC-based, 8 colors @since CUPS 1.1.19/macOS 10.3@ */
+ CUPS_CSPACE_ICC9 = 40, /* ICC-based, 9 colors @since CUPS 1.1.19/macOS 10.3@ */
+ CUPS_CSPACE_ICCA = 41, /* ICC-based, 10 colors @since CUPS 1.1.19/macOS 10.3@ */
+ CUPS_CSPACE_ICCB = 42, /* ICC-based, 11 colors @since CUPS 1.1.19/macOS 10.3@ */
+ CUPS_CSPACE_ICCC = 43, /* ICC-based, 12 colors @since CUPS 1.1.19/macOS 10.3@ */
+ CUPS_CSPACE_ICCD = 44, /* ICC-based, 13 colors @since CUPS 1.1.19/macOS 10.3@ */
+ CUPS_CSPACE_ICCE = 45, /* ICC-based, 14 colors @since CUPS 1.1.19/macOS 10.3@ */
+ CUPS_CSPACE_ICCF = 46, /* ICC-based, 15 colors @since CUPS 1.1.19/macOS 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/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@ */
+ CUPS_RASTER_WRITE_COMPRESSED = 2, /* Open stream for compressed writing @since CUPS 1.3/macOS 10.5@ */
+ CUPS_RASTER_WRITE_PWG = 3 /* Open stream for compressed writing in PWG mode @since CUPS 1.5/macOS 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/OS X 10.5@ ****/
+typedef struct cups_page_header2_s /**** Version 2 page header @since CUPS 1.2/macOS 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/OS X 10.5@ */
+ unsigned cupsNumColors; /* Number of color compoents @since CUPS 1.2/macOS 10.5@ */
float cupsBorderlessScalingFactor;
- /* Scaling that was applied to page data @since CUPS 1.2/OS X 10.5@ */
+ /* Scaling that was applied to page data @since CUPS 1.2/macOS 10.5@ */
float cupsPageSize[2]; /* Floating point PageSize (scaling *
- * factor not applied) @since CUPS 1.2/OS X 10.5@ */
+ * factor not applied) @since CUPS 1.2/macOS 10.5@ */
float cupsImagingBBox[4]; /* Floating point ImagingBoundingBox
* (scaling factor not applied, left,
- * 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@ */
+ * bottom, right, top) @since CUPS 1.2/macOS 10.5@ */
+ unsigned cupsInteger[16]; /* User-defined integer values @since CUPS 1.2/macOS 10.5@ */
+ float cupsReal[16]; /* User-defined floating-point values @since CUPS 1.2/macOS 10.5@ */
+ char cupsString[16][64]; /* User-defined string values @since CUPS 1.2/macOS 10.5@ */
+ char cupsMarkerType[64]; /* Ink/toner type @since CUPS 1.2/macOS 10.5@ */
+ char cupsRenderingIntent[64];/* Color rendering intent @since CUPS 1.2/macOS 10.5@ */
+ char cupsPageSizeName[64]; /* PageSize name @since CUPS 1.2/macOS 10.5@ */
} cups_page_header2_t;
typedef struct _cups_raster_s cups_raster_t;
extern cups_raster_t *cupsRasterOpenIO(cups_raster_iocb_t iocb, void *ctx,
cups_mode_t mode);
-/**** New in CUPS 2.2 ****/
+/**** New in CUPS 2.2/macOS 10.12 ****/
extern int cupsRasterInitPWGHeader(cups_page_header2_t *h, pwg_media_t *media, const char *type, int xdpi, int ydpi, const char *sides, const char *sheet_back) _CUPS_API_2_2;
# ifdef __cplusplus
* If "outfile" is a valid file descriptor, @code cupsDoIORequest@ copies
* all of the data after the IPP response message to the file.
*
- * @since CUPS 1.3/OS X 10.5@
+ * @since CUPS 1.3/macOS 10.5@
*/
ipp_t * /* O - Response data */
* @link cupsReadResponseData@ after getting a successful response,
* otherwise call @link httpFlush@ to complete the response processing.
*
- * @since CUPS 1.4/OS X 10.6@
+ * @since CUPS 1.4/macOS 10.6@
*/
ipp_t * /* O - Response or @code NULL@ on HTTP error */
* 'cupsLastErrorString()' - Return the last IPP status-message received on the
* current thread.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
const char * /* O - status-message text from last request */
* files from @code CUPS_GET_PPD@ and @code CUPS_GET_DOCUMENT@ requests,
* respectively.
*
- * @since CUPS 1.4/OS X 10.6@
+ * @since CUPS 1.4/macOS 10.6@
*/
ssize_t /* O - Bytes read, 0 on EOF, -1 on error */
* Note: Unlike @link cupsDoFileRequest@, @link cupsDoIORequest@, and
* @link cupsDoRequest@, the request is NOT freed with @link ippDelete@.
*
- * @since CUPS 1.4/OS X 10.6@
+ * @since CUPS 1.4/macOS 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/OS X 10.6@
+ * @since CUPS 1.4/macOS 10.6@
*/
http_status_t /* O - @code HTTP_STATUS_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/OS X 10.5@
+ * @since CUPS 1.3/macOS 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/OS X 10.5@
+ * @since CUPS 1.3/macOS 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/OS X 10.6@
+ * @since CUPS 1.4/macOS 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/OS X 10.6@
+ * @since CUPS 1.4/macOS 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/OS X 10.5@
+ * @since CUPS 1.3/macOS 10.5@
*/
int /* O - 0 on success, -1 on error */
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/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_SNMP_GET = 6, /* Query an SNMP OID @since CUPS 1.4/macOS 10.6@ */
+ CUPS_SC_CMD_SNMP_GET_NEXT = 7, /* Query the next SNMP OID @since CUPS 1.4/macOS 10.6@ */
+ CUPS_SC_CMD_GET_CONNECTED = 8, /* Return whether the backend is "connected" to the printer @since CUPS 1.5/macOS 10.7@ */
CUPS_SC_CMD_MAX /* End of valid values @private@ */
};
typedef enum cups_sc_command_e cups_sc_command_t;
* The temporary filename is returned in the filename buffer.
* The temporary file is opened for writing.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
cups_file_t * /* O - CUPS file or @code NULL@ on error */
/*
- * TLS support code for CUPS on OS X.
+ * TLS support code for CUPS on macOS.
*
* Copyright 2007-2016 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
* Note: The server credentials are used by all threads in the running process.
* This function is threadsafe.
*
- * @since CUPS 2.0/OS X 10.10@
+ * @since CUPS 2.0/macOS 10.10@
*/
int /* O - 1 on success, 0 on failure */
* 'httpCopyCredentials()' - Copy the credentials associated with the peer in
* an encrypted connection.
*
- * @since CUPS 1.5/OS X 10.7@
+ * @since CUPS 1.5/macOS 10.7@
*/
int /* O - Status of call (0 = success) */
/*
* 'httpCredentialsAreValidForName()' - Return whether the credentials are valid for the given name.
*
- * @since CUPS 2.0/OS X 10.10@
+ * @since CUPS 2.0/macOS 10.10@
*/
int /* O - 1 if valid, 0 otherwise */
/*
* 'httpCredentialsGetTrust()' - Return the trust of credentials.
*
- * @since CUPS 2.0/OS X 10.10@
+ * @since CUPS 2.0/macOS 10.10@
*/
http_trust_t /* O - Level of trust */
/*
* 'httpCredentialsGetExpiration()' - Return the expiration date of the credentials.
*
- * @since CUPS 2.0/OS X 10.10@
+ * @since CUPS 2.0/macOS 10.10@
*/
time_t /* O - Expiration date of credentials */
/*
* 'httpCredentialsString()' - Return a string representing the credentials.
*
- * @since CUPS 2.0/OS X 10.10@
+ * @since CUPS 2.0/macOS 10.10@
*/
size_t /* O - Total size of credentials string */
* 'httpCopyCredentials()' - Copy the credentials associated with the peer in
* an encrypted connection.
*
- * @since CUPS 1.5/OS X 10.7@
+ * @since CUPS 1.5/macOS 10.7@
*/
int /* O - Status of call (0 = success) */
if (hostname[0])
{
- http_gnutls_make_path(crtfile, sizeof(crtfile), tls_keypath, hostname, "crt");
- http_gnutls_make_path(keyfile, sizeof(keyfile), tls_keypath, hostname, "key");
+ /*
+ * First look for CA certs...
+ */
+
+ snprintf(crtfile, sizeof(crtfile), "/etc/letsencrypt/live/%s/fullchain.pem", hostname);
+ snprintf(keyfile, sizeof(keyfile), "/etc/letsencrypt/live/%s/privkey.pem", hostname);
+
+ if ((access(crtfile, R_OK) || access(keyfile, R_OK)) && (hostptr = strchr(hostname, '.')) != NULL)
+ {
+ /*
+ * Try just domain name...
+ */
+
+ hostptr ++;
+ if (strchr(hostptr, '.'))
+ {
+ snprintf(crtfile, sizeof(crtfile), "/etc/letsencrypt/live/%s/fullchain.pem", hostptr);
+ snprintf(keyfile, sizeof(keyfile), "/etc/letsencrypt/live/%s/privkey.pem", hostptr);
+ }
+ }
+
+ if (access(crtfile, R_OK) || access(keyfile, R_OK))
+ {
+ /*
+ * Then look in the CUPS keystore...
+ */
+
+ http_gnutls_make_path(crtfile, sizeof(crtfile), tls_keypath, hostname, "crt");
+ http_gnutls_make_path(keyfile, sizeof(keyfile), tls_keypath, hostname, "key");
+ }
- have_creds = !access(crtfile, 0) && !access(keyfile, 0);
+ have_creds = !access(crtfile, R_OK) && !access(keyfile, R_OK);
}
else if (tls_common_name)
{
- http_gnutls_make_path(crtfile, sizeof(crtfile), tls_keypath, tls_common_name, "crt");
- http_gnutls_make_path(keyfile, sizeof(keyfile), tls_keypath, tls_common_name, "key");
+ /*
+ * First look for CA certs...
+ */
+
+ snprintf(crtfile, sizeof(crtfile), "/etc/letsencrypt/live/%s/fullchain.pem", tls_common_name);
+ snprintf(keyfile, sizeof(keyfile), "/etc/letsencrypt/live/%s/privkey.pem", tls_common_name);
+
+ if ((access(crtfile, R_OK) || access(keyfile, R_OK)) && (hostptr = strchr(tls_common_name, '.')) != NULL)
+ {
+ /*
+ * Try just domain name...
+ */
+
+ hostptr ++;
+ if (strchr(hostptr, '.'))
+ {
+ snprintf(crtfile, sizeof(crtfile), "/etc/letsencrypt/live/%s/fullchain.pem", hostptr);
+ snprintf(keyfile, sizeof(keyfile), "/etc/letsencrypt/live/%s/privkey.pem", hostptr);
+ }
+ }
+
+ if (access(crtfile, R_OK) || access(keyfile, R_OK))
+ {
+ /*
+ * Then look in the CUPS keystore...
+ */
+
+ http_gnutls_make_path(crtfile, sizeof(crtfile), tls_keypath, tls_common_name, "crt");
+ http_gnutls_make_path(keyfile, sizeof(keyfile), tls_keypath, tls_common_name, "key");
+ }
- have_creds = !access(crtfile, 0) && !access(keyfile, 0);
+ have_creds = !access(crtfile, R_OK) && !access(keyfile, R_OK);
}
if (!have_creds && tls_auto_create && (hostname[0] || tls_common_name))
DEBUG_printf(("4_httpTLSStart: Using certificate \"%s\" and private key \"%s\".", crtfile, keyfile));
- status = gnutls_certificate_set_x509_key_file(*credentials, crtfile, keyfile, GNUTLS_X509_FMT_PEM);
+ if (!status)
+ status = gnutls_certificate_set_x509_key_file(*credentials, crtfile, keyfile, GNUTLS_X509_FMT_PEM);
}
if (!status)
* 'httpCopyCredentials()' - Copy the credentials associated with the peer in
* an encrypted connection.
*
- * @since CUPS 1.5/OS X 10.7@
+ * @since CUPS 1.5/macOS 10.7@
*/
int /* O - Status of call (0 = success) */
* 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/OS X 10.6@
+ * @since CUPS 1.4/macOS 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/OS X 10.7@
+ * @since CUPS 1.5/macOS 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/OS X 10.7@
+ * @since CUPS 1.5/macOS 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/OS X 10.6@
+ * @since CUPS 1.4/macOS 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/OS X 10.7@
+ * @since CUPS 1.5/macOS 10.7@
*/
void
* Setting the string to NULL forces the default value containing the CUPS
* version, IPP version, and operating system version and architecture.
*
- * @since CUPS 1.7/OS X 10.9@
+ * @since CUPS 1.7/macOS 10.9@
*/
void
/*
* 'cupsUserAgent()' - Return the default HTTP User-Agent string.
*
- * @since CUPS 1.7/OS X 10.9@
+ * @since CUPS 1.7/macOS 10.9@
*/
const char * /* O - User-Agent string */
cups_set_encryption(cc, value);
#ifndef __APPLE__
/*
- * The ServerName directive is not supported on OS X due to app
+ * The ServerName directive is not supported on macOS due to app
* sandboxing restrictions, i.e. not all apps request network access.
*/
else if (!_cups_strcasecmp(line, "ServerName") && value)
* Use the @link cupsLastError@ and @link cupsLastErrorString@ functions to get
* the cause of any failure.
*
- * @since CUPS 1.4/OS X 10.6@
+ * @since CUPS 1.4/macOS 10.6@
*/
ipp_status_t /* O - IPP status */
* print, use the @link cupsPrintFile2@ or @link cupsPrintFiles2@ function
* instead.
*
- * @since CUPS 1.4/OS X 10.6@
+ * @since CUPS 1.4/macOS 10.6@
*/
int /* O - Job ID or 0 on error */
*
* The document must have been started using @link cupsStartDocument@.
*
- * @since CUPS 1.4/OS X 10.6@
+ * @since CUPS 1.4/macOS 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/OS X 10.4@
+ * @since CUPS 1.1.21/macOS 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/OS X 10.4@
+ * @since CUPS 1.1.21/macOS 10.4@
*/
int /* O - Number of jobs */
* 'cupsPrintFile2()' - Print a file to a printer or class on the specified
* server.
*
- * @since CUPS 1.1.21/OS X 10.4@
+ * @since CUPS 1.1.21/macOS 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/OS X 10.4@
+ * @since CUPS 1.1.21/macOS 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/OS X 10.6@
+ * @since CUPS 1.4/macOS 10.6@
*/
http_status_t /* O - HTTP status of request */
* _CUPS_API_2_0 - which add compiler-specific attributes that flag functions
* that are deprecated, added in particular releases, or internal to CUPS.
*
- * On OS X, the _CUPS_API_* constants are defined based on the values of
+ * On macOS, 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.
*/
# ifndef AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER
# define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER __attribute__((unavailable))
# endif /* !AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER */
+# ifndef AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER
+# define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER __attribute__((unavailable))
+# endif /* !AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER */
# define _CUPS_API_1_1_19 AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
# define _CUPS_API_1_1_20 AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
# define _CUPS_API_1_1_21 AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
# define _CUPS_API_1_6 AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER
# define _CUPS_API_1_7 AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER
# define _CUPS_API_2_0 AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER
-# define _CUPS_API_2_2
+# define _CUPS_API_2_2 AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER
# else
# define _CUPS_API_1_1_19
# define _CUPS_API_1_1_20
<div class="body">
<div class="row">
<h1>CUPS @CUPS_VERSION@</h1>
- <p>CUPS basiert auf Standards, Open Source Drucksystem entwickelt durch <a href="http://www.apple.com/">Apple Inc.</a> für OS X<sup>®</sup> und andere UNIX<sup>®</sup>-artige Betriebssysteme.</p>
+ <p>CUPS basiert auf Standards, Open Source Drucksystem entwickelt durch <a href="http://www.apple.com/">Apple Inc.</a> für macOS<sup>®</sup> und andere UNIX<sup>®</sup>-artige Betriebssysteme.</p>
</div>
<div class="row">
<div class="thirds">
<div class="body">
<div class="row">
<h1>CUPS @CUPS_VERSION@</h1>
- <p>CUPS es el sistema de impresión de código abierto basado en estándares desarrollado por <a href="http://www.apple.com/">Apple Inc.</a> para OS X<sup>®</sup> y otros sistemas operativos tipo UNIX<sup>®</sup>.</p>
+ <p>CUPS es el sistema de impresión de código abierto basado en estándares desarrollado por <a href="http://www.apple.com/">Apple Inc.</a> para macOS<sup>®</sup> y otros sistemas operativos tipo UNIX<sup>®</sup>.</p>
</div>
<div class="row">
<div class="thirds">
</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/OS X 10.5 </span><a name="cupsAdminGetServerSettings">cupsAdminGetServerSettings</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.3/macOS 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/OS X 10.5 </span><a name="cupsAdminSetServerSettings">cupsAdminSetServerSettings</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.3/macOS 10.5 </span><a name="cupsAdminSetServerSettings">cupsAdminSetServerSettings</a></h3>
<p class="description">Set settings on the server.</p>
<p class="code">
int cupsAdminSetServerSettings (<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.4/OS X 10.6 </span><a name="cupsGetDevices">cupsGetDevices</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/macOS 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>
</p>
<h2 class="title"><a name="TYPES">Data Types</a></h2>
-<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>
+<h3 class="typedef"><span class="info"> CUPS 1.4/macOS 10.6 </span><a name="cups_device_cb_t">cups_device_cb_t</a></h3>
<p class="description">Device callback
</p>
<p class="code">
puts(s);
</pre>
<h2 class="title"><a name="FUNCTIONS">Functions</a></h2>
-<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsArrayAdd">cupsArrayAdd</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsArrayClear">cupsArrayClear</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsArrayCount">cupsArrayCount</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsArrayCurrent">cupsArrayCurrent</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsArrayDelete">cupsArrayDelete</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsArrayDup">cupsArrayDup</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsArrayFind">cupsArrayFind</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsArrayFirst">cupsArrayFirst</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsArrayGetIndex">cupsArrayGetIndex</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.3/macOS 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/OS X 10.5 </span><a name="cupsArrayGetInsert">cupsArrayGetInsert</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.3/macOS 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/OS X 10.5 </span><a name="cupsArrayIndex">cupsArrayIndex</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsArrayInsert">cupsArrayInsert</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsArrayLast">cupsArrayLast</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsArrayNew">cupsArrayNew</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsArrayNew2">cupsArrayNew2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.3/macOS 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/OS X 10.7 </span><a name="cupsArrayNew3">cupsArrayNew3</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.5/macOS 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/OS X 10.5 </span><a name="cupsArrayNext">cupsArrayNext</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsArrayPrev">cupsArrayPrev</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsArrayRemove">cupsArrayRemove</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsArrayRestore">cupsArrayRestore</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsArraySave">cupsArraySave</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsArrayUserData">cupsArrayUserData</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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>
</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/OS X 10.5 </span><a name="cupsAdminGetServerSettings">cupsAdminGetServerSettings</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.3/macOS 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/OS X 10.5 </span><a name="cupsAdminSetServerSettings">cupsAdminSetServerSettings</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.3/macOS 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/OS X 10.6 </span><a name="cupsCancelJob2">cupsCancelJob2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/macOS 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/OS X 10.8 </span><a name="cupsCheckDestSupported">cupsCheckDestSupported</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 10.8 </span><a name="cupsCheckDestSupported">cupsCheckDestSupported</a></h3>
<p class="description">Check that the option and value are supported
by the destination.</p>
<p class="code">
<p class="discussion">Returns 1 if supported, 0 otherwise.
</p>
-<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="cupsCloseDestJob">cupsCloseDestJob</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 10.8 </span><a name="cupsCloseDestJob">cupsCloseDestJob</a></h3>
<p class="description">Close a job and start printing.</p>
<p class="code">
ipp_status_t cupsCloseDestJob (<br>
on success.
</p>
-<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="cupsConnectDest">cupsConnectDest</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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/OS X 10.8 </span><a name="cupsConnectDestBlock">cupsConnectDestBlock</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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.6/OS X 10.8 </span><a name="cupsCopyDestConflicts">cupsCopyDestConflicts</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 10.8 </span><a name="cupsCopyDestConflicts">cupsCopyDestConflicts</a></h3>
<p class="description">Get conflicts and resolutions for a new
option/value pair.</p>
<p class="code">
to 0 and <code>NULL</code>, respectively, then the conflict cannot be resolved.
</p>
-<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="cupsCopyDestInfo">cupsCopyDestInfo</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 10.8 </span><a name="cupsCopyDestInfo">cupsCopyDestInfo</a></h3>
<p class="description">Get the supported values/capabilities for the
destination.</p>
<p class="code">
value. <code>NULL</code> is returned on error.
</p>
-<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="cupsCreateDestJob">cupsCreateDestJob</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 10.8 </span><a name="cupsCreateDestJob">cupsCreateDestJob</a></h3>
<p class="description">Create a job on a destination.</p>
<p class="code">
ipp_status_t cupsCreateDestJob (<br>
in the variable pointed to by "job_id".
</p>
-<h3 class="function"><span class="info"> CUPS 1.4/OS X 10.6 </span><a name="cupsCreateJob">cupsCreateJob</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/macOS 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/OS X 10.8 </span><a name="cupsEnumDests">cupsEnumDests</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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/OS X 10.8 </span><a name="cupsEnumDestsBlock">cupsEnumDestsBlock</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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.7/OS X 10.9 </span><a name="cupsFindDestDefault">cupsFindDestDefault</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/macOS 10.9 </span><a name="cupsFindDestDefault">cupsFindDestDefault</a></h3>
<p class="description">Find the default value(s) for the given option.</p>
<p class="code">
ipp_attribute_t *cupsFindDestDefault (<br>
functions to inspect the default value(s) as needed.
</p>
-<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="cupsFindDestReady">cupsFindDestReady</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/macOS 10.9 </span><a name="cupsFindDestReady">cupsFindDestReady</a></h3>
<p class="description">Find the default value(s) for the given option.</p>
<p class="code">
ipp_attribute_t *cupsFindDestReady (<br>
functions to inspect the default value(s) as needed.
</p>
-<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="cupsFindDestSupported">cupsFindDestSupported</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/macOS 10.9 </span><a name="cupsFindDestSupported">cupsFindDestSupported</a></h3>
<p class="description">Find the default value(s) for the given option.</p>
<p class="code">
ipp_attribute_t *cupsFindDestSupported (<br>
functions to inspect the default value(s) as needed.
</p>
-<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="cupsFinishDestDocument">cupsFinishDestDocument</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 10.8 </span><a name="cupsFinishDestDocument">cupsFinishDestDocument</a></h3>
<p class="description">Finish the current document.</p>
<p class="code">
ipp_status_t cupsFinishDestDocument (<br>
<p class="discussion">Returns <code>IPP_STATUS_OK</code> or <code>IPP_STATUS_OK_SUBST</code> on success.
</p>
-<h3 class="function"><span class="info"> CUPS 1.4/OS X 10.6 </span><a name="cupsFinishDocument">cupsFinishDocument</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/macOS 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/OS X 10.4 </span><a name="cupsGetDefault2">cupsGetDefault2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.21/macOS 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>
<h4 class="discussion">Discussion</h4>
<p class="discussion">Use the <a href="#cupsGetDests"><code>cupsGetDests</code></a> or <a href="#cupsGetDests2"><code>cupsGetDests2</code></a> functions to get a
list of supported destinations for the current user.</p>
-<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="cupsGetDestMediaByIndex">cupsGetDestMediaByIndex</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/macOS 10.9 </span><a name="cupsGetDestMediaByIndex">cupsGetDestMediaByIndex</a></h3>
<p class="description">Get a media name, dimension, and margins for a
specific size.</p>
<p class="code">
borderless size supported by the printer.
</p>
-<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="cupsGetDestMediaByName">cupsGetDestMediaByName</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 10.8 </span><a name="cupsGetDestMediaByName">cupsGetDestMediaByName</a></h3>
<p class="description">Get media names, dimensions, and margins.</p>
<p class="code">
int cupsGetDestMediaByName (<br>
Returns 1 when there is a match and 0 if there is not a match.
</p>
-<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="cupsGetDestMediaBySize">cupsGetDestMediaBySize</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 10.8 </span><a name="cupsGetDestMediaBySize">cupsGetDestMediaBySize</a></h3>
<p class="description">Get media names, dimensions, and margins.</p>
<p class="code">
int cupsGetDestMediaBySize (<br>
Returns 1 when there is a match and 0 if there is not a match.
</p>
-<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="cupsGetDestMediaCount">cupsGetDestMediaCount</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/macOS 10.9 </span><a name="cupsGetDestMediaCount">cupsGetDestMediaCount</a></h3>
<p class="description">Get the number of sizes supported by a
destination.</p>
<p class="code">
the number of borderless sizes.
</p>
-<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="cupsGetDestMediaDefault">cupsGetDestMediaDefault</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/macOS 10.9 </span><a name="cupsGetDestMediaDefault">cupsGetDestMediaDefault</a></h3>
<p class="description">Get the default size for a destination.</p>
<p class="code">
int cupsGetDestMediaDefault (<br>
borderless size, typically US Letter or A4, but sometimes 4x6 photo media.
</p>
-<h3 class="function"><span class="info"> CUPS 2.0/OS X 10.10 </span><a name="cupsGetDestWithURI">cupsGetDestWithURI</a></h3>
+<h3 class="function"><span class="info"> CUPS 2.0/macOS 10.10 </span><a name="cupsGetDestWithURI">cupsGetDestWithURI</a></h3>
<p class="description">Get a destination associated with a URI.</p>
<p class="code">
<a href="#cups_dest_t">cups_dest_t</a> *cupsGetDestWithURI (<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/OS X 10.4 </span><a name="cupsGetDests2">cupsGetDests2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.21/macOS 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/OS X 10.4 </span><a name="cupsGetJobs2">cupsGetJobs2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.21/macOS 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/OS X 10.6 </span><a name="cupsGetNamedDest">cupsGetNamedDest</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/macOS 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>
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/OS X 10.6 </span><a name="cupsGetPassword2">cupsGetPassword2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/macOS 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">
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Language data</p>
-<h3 class="function"><span class="info"> CUPS 2.0/OS X 10.10 </span><a name="cupsLocalizeDestMedia">cupsLocalizeDestMedia</a></h3>
+<h3 class="function"><span class="info"> CUPS 2.0/macOS 10.10 </span><a name="cupsLocalizeDestMedia">cupsLocalizeDestMedia</a></h3>
<p class="description">Get the localized string for a destination media
size.</p>
<p class="code">
invalid if the destination information is deleted.
</p>
-<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="cupsLocalizeDestOption">cupsLocalizeDestOption</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 10.8 </span><a name="cupsLocalizeDestOption">cupsLocalizeDestOption</a></h3>
<p class="description">Get the localized string for a destination
option.</p>
<p class="code">
invalid if the destination information is deleted.
</p>
-<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="cupsLocalizeDestValue">cupsLocalizeDestValue</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 10.8 </span><a name="cupsLocalizeDestValue">cupsLocalizeDestValue</a></h3>
<p class="description">Get the localized string for a destination
option+value pair.</p>
<p class="code">
invalid if the destination information is deleted.
</p>
-<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsNotifySubject">cupsNotifySubject</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsNotifyText">cupsNotifyText</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.4 </span><a name="cupsPrintFile2">cupsPrintFile2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.21/macOS 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/OS X 10.4 </span><a name="cupsPrintFiles2">cupsPrintFiles2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.21/macOS 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/OS X 10.5 </span><a name="cupsRemoveDest">cupsRemoveDest</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.3/macOS 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/OS X 10.5 </span><a name="cupsRemoveOption">cupsRemoveOption</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.7 </span><a name="cupsSetClientCertCB">cupsSetClientCertCB</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.5/macOS 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/OS X 10.7 </span><a name="cupsSetCredentials">cupsSetCredentials</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.5/macOS 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/OS X 10.5 </span><a name="cupsSetDefaultDest">cupsSetDefaultDest</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.3/macOS 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/OS X 10.4 </span><a name="cupsSetDests2">cupsSetDests2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.21/macOS 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/OS X 10.6 </span><a name="cupsSetPasswordCB2">cupsSetPasswordCB2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/macOS 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/OS X 10.7 </span><a name="cupsSetServerCertCB">cupsSetServerCertCB</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.5/macOS 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.7/OS X 10.9 </span><a name="cupsSetUserAgent">cupsSetUserAgent</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/macOS 10.9 </span><a name="cupsSetUserAgent">cupsSetUserAgent</a></h3>
<p class="description">Set the default HTTP User-Agent string.</p>
<p class="code">
void cupsSetUserAgent (<br>
version, IPP version, and operating system version and architecture.
</p>
-<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="cupsStartDestDocument">cupsStartDestDocument</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 10.8 </span><a name="cupsStartDestDocument">cupsStartDestDocument</a></h3>
<p class="description">Start a new document.</p>
<p class="code">
http_status_t cupsStartDestDocument (<br>
<code>HTTP_CONTINUE</code> on success.
</p>
-<h3 class="function"><span class="info"> CUPS 1.4/OS X 10.6 </span><a name="cupsStartDocument">cupsStartDocument</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/macOS 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>
filename - use <a href="#cupsTempFd"><code>cupsTempFd</code></a> or <a href="#cupsTempFile2"><code>cupsTempFile2</code></a> instead.
</p>
-<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsTempFile2">cupsTempFile2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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>
program. Multi-threaded programs that override the user name with the
<a href="#cupsSetUser"><code>cupsSetUser</code></a> function need to do so in each thread for the same user
name to be used.</p>
-<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="cupsUserAgent">cupsUserAgent</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/macOS 10.9 </span><a name="cupsUserAgent">cupsUserAgent</a></h3>
<p class="description">Return the default HTTP User-Agent string.</p>
<p class="code">
const char *cupsUserAgent (void);</p>
<h4 class="returnvalue">Return Value</h4>
<p class="description">User-Agent string</p>
-<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="pwgFormatSizeName">pwgFormatSizeName</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/macOS 10.9 </span><a name="pwgFormatSizeName">pwgFormatSizeName</a></h3>
<p class="description">Generate a PWG self-describing media size name.</p>
<p class="code">
int pwgFormatSizeName (<br>
are used.
</p>
-<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="pwgInitSize">pwgInitSize</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/macOS 10.9 </span><a name="pwgInitSize">pwgInitSize</a></h3>
<p class="description">Initialize a pwg_size_t structure using IPP Job Template
attributes.</p>
<p class="code">
otherwise it is initialized to 0.
</p>
-<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="pwgMediaForLegacy">pwgMediaForLegacy</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/macOS 10.9 </span><a name="pwgMediaForLegacy">pwgMediaForLegacy</a></h3>
<p class="description">Find a PWG media size by ISO/IPP legacy name.</p>
<p class="code">
<a href="#pwg_media_t">pwg_media_t</a> *pwgMediaForLegacy (<br>
"iso-a4" or "na-letter".
</p>
-<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="pwgMediaForPPD">pwgMediaForPPD</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/macOS 10.9 </span><a name="pwgMediaForPPD">pwgMediaForPPD</a></h3>
<p class="description">Find a PWG media size by Adobe PPD name.</p>
<p class="code">
<a href="#pwg_media_t">pwg_media_t</a> *pwgMediaForPPD (<br>
"WIDTHxLENGTH[units]".
</p>
-<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="pwgMediaForPWG">pwgMediaForPWG</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/macOS 10.9 </span><a name="pwgMediaForPWG">pwgMediaForPWG</a></h3>
<p class="description">Find a PWG media size by 5101.1 self-describing name.</p>
<p class="code">
<a href="#pwg_media_t">pwg_media_t</a> *pwgMediaForPWG (<br>
thread.
</p>
-<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="pwgMediaForSize">pwgMediaForSize</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/macOS 10.9 </span><a name="pwgMediaForSize">pwgMediaForSize</a></h3>
<p class="description">Get the PWG media size for the given dimensions.</p>
<p class="code">
<a href="#pwg_media_t">pwg_media_t</a> *pwgMediaForSize (<br>
</p>
<h2 class="title"><a name="TYPES">Data Types</a></h2>
-<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>
+<h3 class="typedef"><span class="info"> CUPS 1.5/macOS 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/OS X 10.8 </span><a name="cups_dest_block_t">cups_dest_block_t</a></h3>
+<h3 class="typedef"><span class="info"> CUPS 1.6/macOS 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/OS X 10.8 </span><a name="cups_dest_cb_t">cups_dest_cb_t</a></h3>
+<h3 class="typedef"><span class="info"> CUPS 1.6/macOS 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.6/OS X 10.8 </span><a name="cups_dinfo_t">cups_dinfo_t</a></h3>
+<h3 class="typedef"><span class="info"> CUPS 1.6/macOS 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/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/macOS 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/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/macOS 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/OS X 10.8 </span><a name="cups_size_t">cups_size_t</a></h3>
+<h3 class="typedef"><span class="info"> CUPS 1.6/macOS 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/OS X 10.8 </span><a name="cups_size_s">cups_size_s</a></h3>
+<h3 class="struct"><span class="info"> CUPS 1.6/macOS 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>
<dl>
<dt>CUPS_PRINTER_3D <span class="info"> CUPS 2.1 </span></dt>
<dd class="description">Printer with 3D capabilities </dd>
-<dt>CUPS_PRINTER_AUTHENTICATED <span class="info"> CUPS 1.2/OS X 10.5 </span></dt>
+<dt>CUPS_PRINTER_AUTHENTICATED <span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span></dt>
+<dt>CUPS_PRINTER_COMMANDS <span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span></dt>
+<dt>CUPS_PRINTER_DELETE <span class="info"> CUPS 1.2/macOS 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/OS X 10.6 </span></dt>
+<dt>CUPS_PRINTER_MFP <span class="info"> CUPS 1.4/macOS 10.6 </span></dt>
<dd class="description">Printer with scanning capabilities
</dd>
-<dt>CUPS_PRINTER_NOT_SHARED <span class="info"> CUPS 1.2/OS X 10.5 </span></dt>
+<dt>CUPS_PRINTER_NOT_SHARED <span class="info"> CUPS 1.2/macOS 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/OS X 10.6 </span></dt>
+<dt>CUPS_PRINTER_SCANNER <span class="info"> CUPS 1.4/macOS 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/OS X 10.5 </span><a name="cupsDirClose">cupsDirClose</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsDirOpen">cupsDirOpen</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsDirRead">cupsDirRead</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsDirRewind">cupsDirRewind</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsFileClose">cupsFileClose</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsFileCompression">cupsFileCompression</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsFileEOF">cupsFileEOF</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsFileFind">cupsFileFind</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsFileFlush">cupsFileFlush</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsFileGetChar">cupsFileGetChar</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsFileGetConf">cupsFileGetConf</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsFileGetLine">cupsFileGetLine</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsFileGets">cupsFileGets</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsFileLock">cupsFileLock</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsFileNumber">cupsFileNumber</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsFileOpen">cupsFileOpen</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsFileOpenFd">cupsFileOpenFd</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsFilePeekChar">cupsFilePeekChar</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsFilePrintf">cupsFilePrintf</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsFilePutChar">cupsFilePutChar</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.6 </span><a name="cupsFilePutConf">cupsFilePutConf</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/macOS 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/OS X 10.5 </span><a name="cupsFilePuts">cupsFilePuts</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsFileRead">cupsFileRead</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsFileRewind">cupsFileRewind</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsFileSeek">cupsFileSeek</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsFileStderr">cupsFileStderr</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsFileStdin">cupsFileStdin</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsFileStdout">cupsFileStdout</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsFileTell">cupsFileTell</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsFileUnlock">cupsFileUnlock</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsFileWrite">cupsFileWrite</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 10.5 </span><a name="cupsFileWrite">cupsFileWrite</a></h3>
<p class="description">Write to a file.</p>
<p class="code">
ssize_t cupsFileWrite (<br>
<li><a href="#COMMUNICATING_FILTER">Communicating with Filters</a></li>
<li><a href="#SNMP">Doing SNMP Queries with Network Printers</a></li>
</ul></li>
-<li><a href="#SANDBOXING">Sandboxing on OS X</a></li>
+<li><a href="#SANDBOXING">Sandboxing on macOS</a></li>
<li><a href="#FUNCTIONS">Functions</a><ul class="code">
<li><a href="#cupsBackChannelRead" title="Read data from the backchannel.">cupsBackChannelRead</a></li>
<li><a href="#cupsBackChannelWrite" title="Write data to the backchannel.">cupsBackChannelWrite</a></li>
<p>In addition, some operating systems provide additional security mechanisms
that further limit file system access, even for backends running as root. On
-OS X, for example, no backend may write to a user's home directory. See the <a href="#SANDBOXING">Sandboxing on OS X</a> section for more information.</p>
+macOS, for example, no backend may write to a user's home directory. See the <a href="#SANDBOXING">Sandboxing on macOS</a> section for more information.</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
- (OS X only).</dd>
+ (macOS 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 OS X setting a printer-state-reason value with an "-error" or
+on macOS 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><a name="SANDBOXING">Sandboxing on OS X</a></h2>
+<h2><a name="SANDBOXING">Sandboxing on macOS</a></h2>
-<p>Starting with OS X 10.6, filters and backends are run inside a security "sandbox" which further limits (beyond the normal UNIX user/group permissions) what a filter or backend can do. This helps to both secure the printing system from malicious software and enforce the functional separation of components in the CUPS filter chain. What follows is a list of actions that are explicitly allowed for all filters and backends:</p>
+<p>Starting with macOS 10.6, filters and backends are run inside a security "sandbox" which further limits (beyond the normal UNIX user/group permissions) what a filter or backend can do. This helps to both secure the printing system from malicious software and enforce the functional separation of components in the CUPS filter chain. What follows is a list of actions that are explicitly allowed for all filters and backends:</p>
<ol>
<blockquote><b>Note:</b> The sandbox profile used in CUPS 2.0 still allows some actions that are not listed above - these privileges will be removed over time until the profile matches the list above.</blockquote>
<h2 class="title"><a name="FUNCTIONS">Functions</a></h2>
-<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsBackChannelRead">cupsBackChannelRead</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsBackChannelWrite">cupsBackChannelWrite</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsBackendDeviceURI">cupsBackendDeviceURI</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.6 </span><a name="cupsBackendReport">cupsBackendReport</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/macOS 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/OS X 10.5 </span><a name="cupsSideChannelDoRequest">cupsSideChannelDoRequest</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.3/macOS 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/OS X 10.5 </span><a name="cupsSideChannelRead">cupsSideChannelRead</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.3/macOS 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/OS X 10.6 </span><a name="cupsSideChannelSNMPGet">cupsSideChannelSNMPGet</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/macOS 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/OS X 10.6 </span><a name="cupsSideChannelSNMPWalk">cupsSideChannelSNMPWalk</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/macOS 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/OS X 10.5 </span><a name="cupsSideChannelWrite">cupsSideChannelWrite</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.3/macOS 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/OS X 10.7 </span></dt>
+<dt>CUPS_SC_CMD_GET_CONNECTED <span class="info"> CUPS 1.5/macOS 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/OS X 10.6 </span></dt>
+<dt>CUPS_SC_CMD_SNMP_GET <span class="info"> CUPS 1.4/macOS 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/OS X 10.6 </span></dt>
+<dt>CUPS_SC_CMD_SNMP_GET_NEXT <span class="info"> CUPS 1.4/macOS 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/OS X 10.8.
+ <li><a href="#ipp_copycb_t" title="The following structures are PRIVATE starting with CUPS 1.6/macOS 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>
<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/OS X 10.4 </span><a name="cupsDoAuthentication">cupsDoAuthentication</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.20/macOS 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 and attached file to the specified
server, retrying and authenticating as necessary. The request is freed with
<a href="#ippDelete"><code>ippDelete</code></a>.</p>
-<h3 class="function"><span class="info"> CUPS 1.3/OS X 10.5 </span><a name="cupsDoIORequest">cupsDoIORequest</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.3/macOS 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/OS X 10.5 </span><a name="cupsEncodeOptions2">cupsEncodeOptions2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.6 </span><a name="cupsGetDevices">cupsGetDevices</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/macOS 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/OS X 10.4 </span><a name="cupsGetFd">cupsGetFd</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.20/macOS 10.4 </span><a name="cupsGetFd">cupsGetFd</a></h3>
<p class="description">Get a file from the server.</p>
<p class="code">
http_status_t cupsGetFd (<br>
<p class="discussion">This function returns <code>HTTP_STATUS_OK</code> when the file is successfully retrieved.
</p>
-<h3 class="function"><span class="info"> CUPS 1.1.20/OS X 10.4 </span><a name="cupsGetFile">cupsGetFile</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.20/macOS 10.4 </span><a name="cupsGetFile">cupsGetFile</a></h3>
<p class="description">Get a file from the server.</p>
<p class="code">
http_status_t cupsGetFile (<br>
<p class="discussion">This function returns <code>HTTP_STATUS_OK</code> when the file is successfully retrieved.
</p>
-<h3 class="function"><span class="info"> CUPS 1.4/OS X 10.6 </span><a name="cupsGetResponse">cupsGetResponse</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/macOS 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/OS X 10.5 </span><a name="cupsLastErrorString">cupsLastErrorString</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 10.5 </span><a name="cupsLastErrorString">cupsLastErrorString</a></h3>
<p class="description">Return the last IPP status-message received on the
current thread.</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/OS X 10.4 </span><a name="cupsPutFd">cupsPutFd</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.20/macOS 10.4 </span><a name="cupsPutFd">cupsPutFd</a></h3>
<p class="description">Put a file on the server.</p>
<p class="code">
http_status_t cupsPutFd (<br>
successfully.
</p>
-<h3 class="function"><span class="info"> CUPS 1.1.20/OS X 10.4 </span><a name="cupsPutFile">cupsPutFile</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.20/macOS 10.4 </span><a name="cupsPutFile">cupsPutFile</a></h3>
<p class="description">Put a file on the server.</p>
<p class="code">
http_status_t cupsPutFile (<br>
successfully.
</p>
-<h3 class="function"><span class="info"> CUPS 1.4/OS X 10.6 </span><a name="cupsReadResponseData">cupsReadResponseData</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/macOS 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>
respectively.
</p>
-<h3 class="function"><span class="info"> CUPS 1.4/OS X 10.6 </span><a name="cupsSendRequest">cupsSendRequest</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/macOS 10.6 </span><a name="cupsSendRequest">cupsSendRequest</a></h3>
<p class="description">Send an IPP request.</p>
<p class="code">
http_status_t cupsSendRequest (<br>
<a href="#cupsDoRequest"><code>cupsDoRequest</code></a>, the request is NOT freed with <a href="#ippDelete"><code>ippDelete</code></a>.
</p>
-<h3 class="function"><span class="info"> CUPS 1.4/OS X 10.6 </span><a name="cupsWriteRequestData">cupsWriteRequestData</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/macOS 10.6 </span><a name="cupsWriteRequestData">cupsWriteRequestData</a></h3>
<p class="description">Write additional data after an IPP request.</p>
<p class="code">
http_status_t cupsWriteRequestData (<br>
after <a href="#cupsStartDocument"><code>cupsStartDocument</code></a> to provide a document file.
</p>
-<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="httpAcceptConnection">httpAcceptConnection</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/macOS 10.9 </span><a name="httpAcceptConnection">httpAcceptConnection</a></h3>
<p class="description">Accept a new HTTP client connection from the
specified listening socket.</p>
<p class="code">
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">HTTP connection or <code>NULL</code></p>
-<h3 class="function"><span class="info"> CUPS 1.5/OS X 10.7 </span><a name="httpAddCredential">httpAddCredential</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.5/macOS 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/OS X 10.5 </span><a name="httpAddrAny">httpAddrAny</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 10.5 </span><a name="httpAddrAny">httpAddrAny</a></h3>
<p class="description">Check for the "any" address.</p>
<p class="code">
int httpAddrAny (<br>
ensure that domain sockets are removed when closed.
</p>
-<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="httpAddrEqual">httpAddrEqual</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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">Address family</p>
-<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="httpAddrLength">httpAddrLength</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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.7/OS X 10.9 </span><a name="httpAddrListen">httpAddrListen</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/macOS 10.9 </span><a name="httpAddrListen">httpAddrListen</a></h3>
<p class="description">Create a listening socket bound to the specified
address and port.</p>
<p class="code">
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Socket or -1 on error</p>
-<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="httpAddrLocalhost">httpAddrLocalhost</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="httpAddrLookup">httpAddrLookup</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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.7/OS X 10.9 </span><a name="httpAddrPort">httpAddrPort</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/macOS 10.9 </span><a name="httpAddrPort">httpAddrPort</a></h3>
<p class="description">Get the port number associated with an address.</p>
<p class="code">
int httpAddrPort (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Port number</p>
-<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="httpAddrString">httpAddrString</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="httpAssembleURI">httpAssembleURI</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="httpAssembleURIf">httpAssembleURIf</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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">
you need to create a URI string.
</p>
-<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="httpAssembleUUID">httpAssembleUUID</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/macOS 10.9 </span><a name="httpAssembleUUID">httpAssembleUUID</a></h3>
<p class="description">Assemble a name-based UUID URN conforming to RFC 4122.</p>
<p class="code">
char *httpAssembleUUID (<br>
</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/OS X 10.3 </span><a name="httpClearCookie">httpClearCookie</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.19/macOS 10.3 </span><a name="httpClearCookie">httpClearCookie</a></h3>
<p class="description">Clear the cookie value(s).</p>
<p class="code">
void httpClearCookie (<br>
<p class="discussion">This function is deprecated - use <a href="#httpConnect2"><code>httpConnect2</code></a> instead.
</p>
-<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="httpConnect2">httpConnect2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/macOS 10.9 </span><a name="httpConnect2">httpConnect2</a></h3>
<p class="description">Connect to a HTTP server.</p>
<p class="code">
<a href="#http_t">http_t</a> *httpConnect2 (<br>
which provides buffer length arguments.
</p>
-<h3 class="function"><span class="info"> CUPS 1.1.21/OS X 10.4 </span><a name="httpDecode64_2">httpDecode64_2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.21/macOS 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/OS X 10.4 </span><a name="httpEncode64_2">httpEncode64_2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.21/macOS 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">HTTP connection</dd>
</dl>
-<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="httpFlushWrite">httpFlushWrite</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 10.5 </span><a name="httpFlushWrite">httpFlushWrite</a></h3>
<p class="description">Flush data in write buffer.</p>
<p class="code">
int httpFlushWrite (<br>
<p class="discussion">Returns <code>NULL</code> if the socket is currently unconnected.
</p>
-<h3 class="function"><span class="info"> CUPS 1.3/OS X 10.5 </span><a name="httpGetAuthString">httpGetAuthString</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.3/macOS 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/OS X 10.5 </span><a name="httpGetBlocking">httpGetBlocking</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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.7/OS X 10.9 </span><a name="httpGetContentEncoding">httpGetContentEncoding</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/macOS 10.9 </span><a name="httpGetContentEncoding">httpGetContentEncoding</a></h3>
<p class="description">Get a common content encoding, if any, between
the client and server.</p>
<p class="code">
or in the response (for servers) in order to compress the content stream.
</p>
-<h3 class="function"><span class="info"> CUPS 1.1.19/OS X 10.3 </span><a name="httpGetCookie">httpGetCookie</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.19/macOS 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/OS X 10.5 </span><a name="httpGetDateString2">httpGetDateString2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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>
been established.
</p>
-<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="httpGetExpect">httpGetExpect</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/macOS 10.9 </span><a name="httpGetExpect">httpGetExpect</a></h3>
<p class="description">Get the value of the Expect header, if any.</p>
<p class="code">
http_status_t httpGetExpect (<br>
returns the expected HTTP status code, typically <code>HTTP_STATUS_CONTINUE</code>.
</p>
-<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="httpGetFd">httpGetFd</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="httpGetHostname">httpGetHostname</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="httpGetLength2">httpGetLength2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="httpGetStatus">httpGetStatus</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 10.5 </span><a name="httpGetStatus">httpGetStatus</a></h3>
<p class="description">Get the status of the last HTTP request.</p>
<p class="code">
http_status_t 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/OS X 10.5 </span><a name="httpGetSubField2">httpGetSubField2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 10.5 </span><a name="httpGetSubField2">httpGetSubField2</a></h3>
<p class="description">Get a sub-field value.</p>
<p class="code">
char *httpGetSubField2 (<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.7/OS X 10.9 </span><a name="httpPeek">httpPeek</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/macOS 10.9 </span><a name="httpPeek">httpPeek</a></h3>
<p class="description">Peek at data from a HTTP connection.</p>
<p class="code">
ssize_t httpPeek (<br>
read more than 2GB of data.
</p>
-<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="httpRead2">httpRead2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Number of bytes read</p>
-<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="httpReadRequest">httpReadRequest</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/macOS 10.9 </span><a name="httpReadRequest">httpReadRequest</a></h3>
<p class="description">Read a HTTP request from a connection.</p>
<p class="code">
<a href="#http_state_t">http_state_t</a> httpReadRequest (<br>
<p class="discussion">This function is deprecated; use the httpSeparateURI() function instead.
</p>
-<h3 class="function"><span class="info"> CUPS 1.1.21/OS X 10.4 </span><a name="httpSeparate2">httpSeparate2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.21/macOS 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/OS X 10.5 </span><a name="httpSeparateURI">httpSeparateURI</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="httpSetAuthString">httpSetAuthString</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.3/macOS 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/OS X 10.3 </span><a name="httpSetCookie">httpSetCookie</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.19/macOS 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/OS X 10.7 </span><a name="httpSetCredentials">httpSetCredentials</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.5/macOS 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.7/OS X 10.9 </span><a name="httpSetDefaultField">httpSetDefaultField</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/macOS 10.9 </span><a name="httpSetDefaultField">httpSetDefaultField</a></h3>
<p class="description">Set the default value of an HTTP header.</p>
<p class="code">
void httpSetDefaultField (<br>
and <code>HTTP_FIELD_USER_AGENT</code> can be set.
</p>
-<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="httpSetExpect">httpSetExpect</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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>keep_alive</dt>
<dd class="description">New Keep-Alive value</dd>
</dl>
-<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="httpSetLength">httpSetLength</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.7 </span><a name="httpSetTimeout">httpSetTimeout</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.5/macOS 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/OS X 10.3 </span><a name="httpWait">httpWait</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.19/macOS 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/OS X 10.5 </span><a name="httpWrite2">httpWrite2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Number of bytes written</p>
-<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="httpWriteResponse">httpWriteResponse</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/macOS 10.9 </span><a name="httpWriteResponse">httpWriteResponse</a></h3>
<p class="description">Write a HTTP response to a client connection.</p>
<p class="code">
int httpWriteResponse (<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/OS X 10.3 </span><a name="ippAddCollection">ippAddCollection</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.19/macOS 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/OS X 10.3 </span><a name="ippAddCollections">ippAddCollections</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.19/macOS 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/OS X 10.5 </span><a name="ippAddOctetString">ippAddOctetString</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.8 </span><a name="ippAddOutOfBand">ippAddOutOfBand</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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.7/OS X 10.9 </span><a name="ippAddStringf">ippAddStringf</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/macOS 10.9 </span><a name="ippAddStringf">ippAddStringf</a></h3>
<p class="description">Add a formatted string to an IPP message.</p>
<p class="code">
<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddStringf (<br>
the corresponding value type.
</p>
-<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="ippAddStringfv">ippAddStringfv</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/macOS 10.9 </span><a name="ippAddStringfv">ippAddStringfv</a></h3>
<p class="description">Add a formatted string to an IPP message.</p>
<p class="code">
<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddStringfv (<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/OS X 10.8 </span><a name="ippAttributeString">ippAttributeString</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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.7/OS X 10.9 </span><a name="ippContainsInteger">ippContainsInteger</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/macOS 10.9 </span><a name="ippContainsInteger">ippContainsInteger</a></h3>
<p class="description">Determine whether an attribute contains the
specified value or is within the list of ranges.</p>
<p class="code">
the attribute.
</p>
-<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="ippContainsString">ippContainsString</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/macOS 10.9 </span><a name="ippContainsString">ippContainsString</a></h3>
<p class="description">Determine whether an attribute contains the
specified string value.</p>
<p class="code">
language, mimeMediaType, name, text, URI, or URI scheme value.
</p>
-<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippCopyAttribute">ippCopyAttribute</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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/OS X 10.8 </span><a name="ippCopyAttributes">ippCopyAttributes</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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>
itself.
</p>
-<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="ippCreateRequestedArray">ippCreateRequestedArray</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/macOS 10.9 </span><a name="ippCreateRequestedArray">ippCreateRequestedArray</a></h3>
<p class="description">Create a CUPS array of attribute names from the
given requested-attributes attribute.</p>
<p class="code">
<dt>ipp</dt>
<dd class="description">IPP message</dd>
</dl>
-<h3 class="function"><span class="info"> CUPS 1.1.19/OS X 10.3 </span><a name="ippDeleteAttribute">ippDeleteAttribute</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.19/macOS 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/OS X 10.8 </span><a name="ippDeleteValues">ippDeleteValues</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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/OS X 10.5 </span><a name="ippErrorValue">ippErrorValue</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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>
<p class="discussion">Starting with CUPS 2.0, the attribute name can contain a hierarchical list
of attribute and member names separated by slashes, for example
"media-col/media-size".</p>
-<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippFirstAttribute">ippFirstAttribute</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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/OS X 10.8 </span><a name="ippGetBoolean">ippGetBoolean</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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/OS X 10.8 </span><a name="ippGetCollection">ippGetCollection</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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/OS X 10.8 </span><a name="ippGetCount">ippGetCount</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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 0 on error</p>
-<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippGetDate">ippGetDate</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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/OS X 10.8 </span><a name="ippGetGroupTag">ippGetGroupTag</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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/OS X 10.8 </span><a name="ippGetInteger">ippGetInteger</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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/OS X 10.8 </span><a name="ippGetName">ippGetName</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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.7/OS X 10.9 </span><a name="ippGetOctetString">ippGetOctetString</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/macOS 10.9 </span><a name="ippGetOctetString">ippGetOctetString</a></h3>
<p class="description">Get an octetString value from an IPP attribute.</p>
<p class="code">
void *ippGetOctetString (<br>
<a href="#ippGetCount(attr)"><code>ippGetCount(attr)</code></a> - 1.
</p>
-<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippGetOperation">ippGetOperation</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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 0 on error</p>
-<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippGetRange">ippGetRange</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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/OS X 10.8 </span><a name="ippGetRequestId">ippGetRequestId</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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 0 on error</p>
-<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippGetResolution">ippGetResolution</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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/OS X 10.8 </span><a name="ippGetState">ippGetState</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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/OS X 10.8 </span><a name="ippGetStatusCode">ippGetStatusCode</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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/OS X 10.8 </span><a name="ippGetValueTag">ippGetValueTag</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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/OS X 10.8 </span><a name="ippGetVersion">ippGetVersion</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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/OS X 10.5 </span><a name="ippNewRequest">ippNewRequest</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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.7/OS X 10.9 </span><a name="ippNewResponse">ippNewResponse</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/macOS 10.9 </span><a name="ippNewResponse">ippNewResponse</a></h3>
<p class="description">Allocate a new IPP response message.</p>
<p class="code">
<a href="#ipp_t">ipp_t</a> *ippNewResponse (<br>
respectively.
</p>
-<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippNextAttribute">ippNextAttribute</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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/OS X 10.5 </span><a name="ippOpString">ippOpString</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="ippOpValue">ippOpValue</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.3 </span><a name="ippReadFile">ippReadFile</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.19/macOS 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/OS X 10.5 </span><a name="ippReadIO">ippReadIO</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.8 </span><a name="ippSetBoolean">ippSetBoolean</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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/OS X 10.8 </span><a name="ippSetCollection">ippSetCollection</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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/OS X 10.8 </span><a name="ippSetDate">ippSetDate</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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/OS X 10.8 </span><a name="ippSetGroupTag">ippSetGroupTag</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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/OS X 10.8 </span><a name="ippSetInteger">ippSetInteger</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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/OS X 10.8 </span><a name="ippSetName">ippSetName</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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.7/OS X 10.9 </span><a name="ippSetOctetString">ippSetOctetString</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/macOS 10.9 </span><a name="ippSetOctetString">ippSetOctetString</a></h3>
<p class="description">Set an octetString value in an IPP attribute.</p>
<p class="code">
int ippSetOctetString (<br>
<a href="#ippGetCount(attr)"><code>ippGetCount(attr)</code></a>.
</p>
-<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippSetOperation">ippSetOperation</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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/OS X 10.8 </span><a name="ippSetRange">ippSetRange</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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/OS X 10.8 </span><a name="ippSetRequestId">ippSetRequestId</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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/OS X 10.8 </span><a name="ippSetResolution">ippSetResolution</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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/OS X 10.8 </span><a name="ippSetState">ippSetState</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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/OS X 10.8 </span><a name="ippSetStatusCode">ippSetStatusCode</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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>
the <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.
</p>
-<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippSetString">ippSetString</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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.7/OS X 10.9 </span><a name="ippSetStringf">ippSetStringf</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/macOS 10.9 </span><a name="ippSetStringf">ippSetStringf</a></h3>
<p class="description">Set a formatted string value of an attribute.</p>
<p class="code">
int ippSetStringf (<br>
the corresponding value type.
</p>
-<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="ippSetStringfv">ippSetStringfv</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/macOS 10.9 </span><a name="ippSetStringfv">ippSetStringfv</a></h3>
<p class="description">Set a formatted string value of an attribute.</p>
<p class="code">
int ippSetStringfv (<br>
the corresponding value type.
</p>
-<h3 class="function"><span class="info"> CUPS 1.6/OS X 10.8 </span><a name="ippSetValueTag">ippSetValueTag</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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/OS X 10.8 </span><a name="ippSetVersion">ippSetVersion</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.6/macOS 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>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">State name</p>
-<h3 class="function"><span class="info"> CUPS 1.4/OS X 10.6 </span><a name="ippTagString">ippTagString</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/macOS 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/OS X 10.6 </span><a name="ippTagValue">ippTagValue</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/macOS 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">RFC-1903 date/time data</p>
-<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="ippValidateAttribute">ippValidateAttribute</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/macOS 10.9 </span><a name="ippValidateAttribute">ippValidateAttribute</a></h3>
<p class="description">Validate the contents of an attribute.</p>
<p class="code">
int ippValidateAttribute (<br>
failure, cupsLastErrorString() is set to a human-readable message.
</p>
-<h3 class="function"><span class="info"> CUPS 1.7/OS X 10.9 </span><a name="ippValidateAttributes">ippValidateAttributes</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.7/macOS 10.9 </span><a name="ippValidateAttributes">ippValidateAttributes</a></h3>
<p class="description">Validate all attributes in an IPP message.</p>
<p class="code">
int ippValidateAttributes (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Current state</p>
-<h3 class="function"><span class="info"> CUPS 1.1.19/OS X 10.3 </span><a name="ippWriteFile">ippWriteFile</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.19/macOS 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/OS X 10.5 </span><a name="ippWriteIO">ippWriteIO</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="http_addr_t">http_addr_t</a></h3>
+<h3 class="typedef"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="http_addrlist_t">http_addrlist_t</a></h3>
+<h3 class="typedef"><span class="info"> CUPS 1.2/macOS 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/OS X 10.7 </span><a name="http_credential_t">http_credential_t</a></h3>
+<h3 class="typedef"><span class="info"> CUPS 1.5/macOS 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/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/macOS 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/OS X 10.8.
+<p class="description">The following structures are PRIVATE starting with CUPS 1.6/macOS 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">
<p class="code">
typedef enum <a href="#ipp_finishings_e">ipp_finishings_e</a> ipp_finish_t;
</p>
-<h3 class="typedef"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="ipp_iocb_t">ipp_iocb_t</a></h3>
+<h3 class="typedef"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="http_addrlist_s">http_addrlist_s</a></h3>
+<h3 class="struct"><span class="info"> CUPS 1.2/macOS 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/OS X 10.7 </span><a name="http_credential_s">http_credential_s</a></h3>
+<h3 class="struct"><span class="info"> CUPS 1.5/macOS 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>
<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/OS X 10.5 </span></dt>
+<dt>HTTP_AUTH_NEGOTIATE <span class="info"> CUPS 1.3/macOS 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>
<p class="description">HTTP field names</p>
<h4 class="constants">Constants</h4>
<dl>
-<dt>HTTP_FIELD_ACCEPT_ENCODING <span class="info"> CUPS 1.7/OS X 10.9 </span></dt>
+<dt>HTTP_FIELD_ACCEPT_ENCODING <span class="info"> CUPS 1.7/macOS 10.9 </span></dt>
<dd class="description">Accepting-Encoding field </dd>
<dt>HTTP_FIELD_ACCEPT_LANGUAGE </dt>
<dd class="description">Accept-Language field</dd>
<dt>HTTP_FIELD_ACCEPT_RANGES </dt>
<dd class="description">Accept-Ranges field</dd>
-<dt>HTTP_FIELD_ALLOW <span class="info"> CUPS 1.7/OS X 10.9 </span></dt>
+<dt>HTTP_FIELD_ALLOW <span class="info"> CUPS 1.7/macOS 10.9 </span></dt>
<dd class="description">Allow field </dd>
<dt>HTTP_FIELD_AUTHORIZATION </dt>
<dd class="description">Authorization field</dd>
<dd class="description">Referer field</dd>
<dt>HTTP_FIELD_RETRY_AFTER </dt>
<dd class="description">Retry-After field</dd>
-<dt>HTTP_FIELD_SERVER <span class="info"> CUPS 1.7/OS X 10.9 </span></dt>
+<dt>HTTP_FIELD_SERVER <span class="info"> CUPS 1.7/macOS 10.9 </span></dt>
<dd class="description">Server field </dd>
<dt>HTTP_FIELD_TRANSFER_ENCODING </dt>
<dd class="description">Transfer-Encoding field</dd>
<dd class="description">Command complete, sending status</dd>
<dt>HTTP_STATE_TRACE </dt>
<dd class="description">TRACE command, waiting for blank line</dd>
-<dt>HTTP_STATE_UNKNOWN_METHOD <span class="info"> CUPS 1.7/OS X 10.9 </span></dt>
+<dt>HTTP_STATE_UNKNOWN_METHOD <span class="info"> CUPS 1.7/macOS 10.9 </span></dt>
<dd class="description">Unknown request method, waiting for blank line </dd>
-<dt>HTTP_STATE_UNKNOWN_VERSION <span class="info"> CUPS 1.7/OS X 10.9 </span></dt>
+<dt>HTTP_STATE_UNKNOWN_VERSION <span class="info"> CUPS 1.7/macOS 10.9 </span></dt>
<dd class="description">Unknown request method, waiting for blank line </dd>
<dt>HTTP_STATE_WAITING </dt>
<dd class="description">Waiting for command</dd>
<dd class="description">PUT command was successful</dd>
<dt>HTTP_STATUS_CUPS_AUTHORIZATION_CANCELED <span class="info"> CUPS 1.4 </span></dt>
<dd class="description">User canceled authorization </dd>
-<dt>HTTP_STATUS_CUPS_PKI_ERROR <span class="info"> CUPS 1.5/OS X 10.7 </span></dt>
+<dt>HTTP_STATUS_CUPS_PKI_ERROR <span class="info"> CUPS 1.5/macOS 10.7 </span></dt>
<dd class="description">Error negotiating a secure connection </dd>
<dt>HTTP_STATUS_ERROR </dt>
<dd class="description">An error response from httpXxxx()</dd>
<dd class="description">Document has moved temporarily</dd>
<dt>HTTP_STATUS_MULTIPLE_CHOICES </dt>
<dd class="description">Multiple files match request</dd>
-<dt>HTTP_STATUS_NONE <span class="info"> CUPS 1.7/OS X 10.9 </span></dt>
+<dt>HTTP_STATUS_NONE <span class="info"> CUPS 1.7/macOS 10.9 </span></dt>
<dd class="description">No Expect value </dd>
<dt>HTTP_STATUS_NOT_ACCEPTABLE </dt>
<dd class="description">Not Acceptable</dd>
<dd class="description">Cancel-Jobs</dd>
<dt>IPP_OP_CANCEL_MY_JOBS </dt>
<dd class="description">Cancel-My-Jobs</dd>
-<dt>IPP_OP_CANCEL_SUBSCRIPTION <span class="info"> CUPS 1.2/OS X 10.5 </span></dt>
+<dt>IPP_OP_CANCEL_SUBSCRIPTION <span class="info"> CUPS 1.2/macOS 10.5 </span></dt>
<dd class="description">Cancel a subscription </dd>
<dt>IPP_OP_CLOSE_JOB </dt>
<dd class="description">Close-Job</dd>
<dt>IPP_OP_CREATE_JOB </dt>
<dd class="description">Create an empty print job</dd>
-<dt>IPP_OP_CREATE_JOB_SUBSCRIPTIONS <span class="info"> CUPS 1.2/OS X 10.5 </span></dt>
+<dt>IPP_OP_CREATE_JOB_SUBSCRIPTIONS <span class="info"> CUPS 1.2/macOS 10.5 </span></dt>
<dd class="description">Create one of more job subscriptions </dd>
-<dt>IPP_OP_CREATE_PRINTER_SUBSCRIPTIONS <span class="info"> CUPS 1.2/OS X 10.5 </span></dt>
+<dt>IPP_OP_CREATE_PRINTER_SUBSCRIPTIONS <span class="info"> CUPS 1.2/macOS 10.5 </span></dt>
<dd class="description">Create one or more printer subscriptions </dd>
<dt>IPP_OP_CUPS_ACCEPT_JOBS </dt>
<dd class="description">Accept new jobs on a printer</dd>
<dd class="description">Add or modify a class</dd>
<dt>IPP_OP_CUPS_ADD_MODIFY_PRINTER </dt>
<dd class="description">Add or modify a printer</dd>
-<dt>IPP_OP_CUPS_AUTHENTICATE_JOB <span class="info"> CUPS 1.2/OS X 10.5 </span></dt>
+<dt>IPP_OP_CUPS_AUTHENTICATE_JOB <span class="info"> CUPS 1.2/macOS 10.5 </span></dt>
<dd class="description">Authenticate a job </dd>
<dt>IPP_OP_CUPS_CREATE_LOCAL_PRINTER <span class="info"> CUPS 2.2 </span></dt>
<dd class="description">Create a local (temporary) printer <dt>IPP_OP_CUPS_DELETE_CLASS </dt>
<dd class="description">Get the default printer</dd>
<dt>IPP_OP_CUPS_GET_DEVICES <span class="info"> DEPRECATED </span></dt>
<dd class="description">Get a list of supported devices </dd>
-<dt>IPP_OP_CUPS_GET_DOCUMENT <span class="info"> CUPS 1.4/OS X 10.6 </span></dt>
+<dt>IPP_OP_CUPS_GET_DOCUMENT <span class="info"> CUPS 1.4/macOS 10.6 </span></dt>
<dd class="description">Get a document file </dd>
<dt>IPP_OP_CUPS_GET_PPD <span class="info"> DEPRECATED </span></dt>
<dd class="description">Get a PPD file </dd>
<dd class="description">Get job attributes</dd>
<dt>IPP_OP_GET_NEXT_DOCUMENT_DATA </dt>
<dd class="description">Get-Next-Document-Data</dd>
-<dt>IPP_OP_GET_NOTIFICATIONS <span class="info"> CUPS 1.2/OS X 10.5 </span></dt>
+<dt>IPP_OP_GET_NOTIFICATIONS <span class="info"> CUPS 1.2/macOS 10.5 </span></dt>
<dd class="description">Get notification events </dd>
<dt>IPP_OP_GET_OUTPUT_DEVICE_ATTRIBUTES </dt>
<dd class="description">Get-Output-Device-Attributes</dd>
<dd class="description">Get printer attributes</dd>
<dt>IPP_OP_GET_PRINTER_SUPPORTED_VALUES </dt>
<dd class="description">Get supported attribute values</dd>
-<dt>IPP_OP_GET_SUBSCRIPTIONS <span class="info"> CUPS 1.2/OS X 10.5 </span></dt>
+<dt>IPP_OP_GET_SUBSCRIPTIONS <span class="info"> CUPS 1.2/macOS 10.5 </span></dt>
<dd class="description">Get list of subscriptions </dd>
-<dt>IPP_OP_GET_SUBSCRIPTION_ATTRIBUTES <span class="info"> CUPS 1.2/OS X 10.5 </span></dt>
+<dt>IPP_OP_GET_SUBSCRIPTION_ATTRIBUTES <span class="info"> CUPS 1.2/macOS 10.5 </span></dt>
<dd class="description">Get subscription attributes </dd>
<dt>IPP_OP_HOLD_JOB </dt>
<dd class="description">Hold a job for printing</dd>
<dd class="description">Release new jobs</dd>
<dt>IPP_OP_RELEASE_JOB </dt>
<dd class="description">Release a job for printing</dd>
-<dt>IPP_OP_RENEW_SUBSCRIPTION <span class="info"> CUPS 1.2/OS X 10.5 </span></dt>
+<dt>IPP_OP_RENEW_SUBSCRIPTION <span class="info"> CUPS 1.2/macOS 10.5 </span></dt>
<dd class="description">Renew a printer subscription </dd>
<dt>IPP_OP_REPROCESS_JOB </dt>
<dd class="description">Reprint a job</dd>
<dd class="description">cups-error-account-info-needed </dd>
<dt>IPP_STATUS_ERROR_CUPS_ACCOUNT_LIMIT_REACHED <span class="info"> DEPRECATED </span></dt>
<dd class="description">cups-error-account-limit-reached </dd>
-<dt>IPP_STATUS_ERROR_CUPS_AUTHENTICATION_CANCELED <span class="info"> CUPS 1.5/OS X 10.7 </span></dt>
+<dt>IPP_STATUS_ERROR_CUPS_AUTHENTICATION_CANCELED <span class="info"> CUPS 1.5/macOS 10.7 </span></dt>
<dd class="description">cups-authentication-canceled - Authentication canceled by user </dd>
-<dt>IPP_STATUS_ERROR_CUPS_PKI <span class="info"> CUPS 1.5/OS X 10.7 </span></dt>
+<dt>IPP_STATUS_ERROR_CUPS_PKI <span class="info"> CUPS 1.5/macOS 10.7 </span></dt>
<dd class="description">cups-pki-error - Error negotiating a secure connection </dd>
<dt>IPP_STATUS_ERROR_CUPS_UPGRADE_REQUIRED </dt>
<dd class="description">cups-upgrade-required - TLS upgrade required</dd>
<h1 class='title'>PPD API (DEPRECATED)</h1>
-<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>
+<blockquote>The PPD API is deprecated starting in CUPS 1.6/macOS 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>
<h2 class='title'><a name='OVERVIEW'>Overview</a></h2>
-<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>
+<blockquote>The PPD API is deprecated starting in CUPS 1.6/macOS 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/OS X 10.6 </span><a name="cupsGetConflicts">cupsGetConflicts</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/macOS 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>
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/OS X 10.4 </span><a name="cupsGetPPD2">cupsGetPPD2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.21/macOS 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/OS X 10.6 </span><a name="cupsGetPPD3">cupsGetPPD3</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/macOS 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">
in the class.
</p>
-<h3 class="function"><span class="info"> CUPS 1.3/OS X 10.5 </span><a name="cupsGetServerPPD">cupsGetServerPPD</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.3/macOS 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>
"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/OS X 10.6 </span><a name="cupsResolveConflicts">cupsResolveConflicts</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/macOS 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/OS X 10.5 </span><a name="ppdCollect2">ppdCollect2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="ppdEmitAfterOrder">ppdEmitAfterOrder</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="ppdEmitJCLEnd">ppdEmitJCLEnd</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="ppdEmitString">ppdEmitString</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.3 </span><a name="ppdFindAttr">ppdFindAttr</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.19/macOS 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/OS X 10.5 </span><a name="ppdFindCustomOption">ppdFindCustomOption</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="ppdFindCustomParam">ppdFindCustomParam</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.3 </span><a name="ppdFindNextAttr">ppdFindNextAttr</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.1.19/macOS 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/OS X 10.5 </span><a name="ppdFirstCustomParam">ppdFirstCustomParam</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="ppdFirstOption">ppdFirstOption</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.6 </span><a name="ppdInstallableConflict">ppdInstallableConflict</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/macOS 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.2/OS X 10.5 </span><a name="ppdLocalize">ppdLocalize</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="ppdLocalizeIPPReason">ppdLocalizeIPPReason</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.3/macOS 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/OS X 10.6 </span><a name="ppdLocalizeMarkerName">ppdLocalizeMarkerName</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/macOS 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/OS X 10.5 </span><a name="ppdNextCustomParam">ppdNextCustomParam</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="ppdNextOption">ppdNextOption</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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">Size record for page or NULL</p>
-<h3 class="function"><span class="info"> CUPS 1.4/OS X 10.6 </span><a name="ppdPageSizeLimits">ppdPageSizeLimits</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4/macOS 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>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Width of page in points or 0.0</p>
<h2 class="title"><a name="TYPES">Data Types</a></h2>
-<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>
+<h3 class="typedef"><span class="info"> CUPS 1.1.19/macOS 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/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/macOS 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/OS X 10.5 </span><a name="ppd_coption_t">ppd_coption_t</a></h3>
+<h3 class="typedef"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="ppd_cparam_t">ppd_cparam_t</a></h3>
+<h3 class="typedef"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="ppd_cplimit_t">ppd_cplimit_t</a></h3>
+<h3 class="typedef"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="ppd_cptype_t">ppd_cptype_t</a></h3>
+<h3 class="typedef"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="ppd_cpvalue_t">ppd_cpvalue_t</a></h3>
+<h3 class="typedef"><span class="info"> CUPS 1.2/macOS 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/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/macOS 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/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/macOS 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/OS X 10.5 </span><a name="ppd_coption_s">ppd_coption_s</a></h3>
+<h3 class="struct"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="ppd_cparam_s">ppd_cparam_s</a></h3>
+<h3 class="struct"><span class="info"> CUPS 1.2/macOS 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/OS X 10.3 </span></dt>
+<dt>pcfilename <span class="info"> CUPS 1.1.19/macOS 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/OS X 10.3 </span></dt>
+<dt>protocols <span class="info"> CUPS 1.1.19/macOS 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/OS X 10.3 </span></dt>
+<dt>name[PPD_MAX_NAME] <span class="info"> CUPS 1.1.18/macOS 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/OS X 10.5 </span><a name="ppd_cplimit_u">ppd_cplimit_u</a></h3>
+<h3 class="union"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="ppd_cpvalue_u">ppd_cpvalue_u</a></h3>
+<h3 class="union"><span class="info"> CUPS 1.2/macOS 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/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/macOS 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/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/macOS 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>
<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>
-(OS X) that produce CUPS raster files and printer driver filters that
+(macOS) 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/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/macOS 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/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/macOS 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>
<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 2.2 </span><a name="cupsRasterInitPWGHeader">cupsRasterInitPWGHeader</a></h3>
+<h3 class="function"><span class="info"> CUPS 2.2/macOS 10.12 </span><a name="cupsRasterInitPWGHeader">cupsRasterInitPWGHeader</a></h3>
<p class="description">Initialize a page header for PWG Raster output.</p>
<p class="code">
int cupsRasterInitPWGHeader (<br>
to apply for the back side of a page. Pass <code>NULL</code> for the front side.
</p>
-<h3 class="function"><span class="info"> CUPS 1.2/OS X 10.5 </span><a name="cupsRasterInterpretPPD">cupsRasterInterpretPPD</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsRasterReadHeader2">cupsRasterReadHeader2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span><a name="cupsRasterWriteHeader2">cupsRasterWriteHeader2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 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/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/macOS 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/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/macOS 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/OS X 10.5 </span></dt>
+<dt>cupsBorderlessScalingFactor <span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span></dt>
+<dt>cupsImagingBBox[4] <span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span></dt>
+<dt>cupsInteger[16] <span class="info"> CUPS 1.2/macOS 10.5 </span></dt>
<dd class="description">User-defined integer values </dd>
-<dt>cupsMarkerType[64] <span class="info"> CUPS 1.2/OS X 10.5 </span></dt>
+<dt>cupsMarkerType[64] <span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span></dt>
+<dt>cupsNumColors <span class="info"> CUPS 1.2/macOS 10.5 </span></dt>
<dd class="description">Number of color compoents </dd>
-<dt>cupsPageSizeName[64] <span class="info"> CUPS 1.2/OS X 10.5 </span></dt>
+<dt>cupsPageSizeName[64] <span class="info"> CUPS 1.2/macOS 10.5 </span></dt>
<dd class="description">PageSize name </dd>
-<dt>cupsPageSize[2] <span class="info"> CUPS 1.2/OS X 10.5 </span></dt>
+<dt>cupsPageSize[2] <span class="info"> CUPS 1.2/macOS 10.5 </span></dt>
<dd class="description">Floating point PageSize (scaling *
factor not applied) </dd>
-<dt>cupsReal[16] <span class="info"> CUPS 1.2/OS X 10.5 </span></dt>
+<dt>cupsReal[16] <span class="info"> CUPS 1.2/macOS 10.5 </span></dt>
<dd class="description">User-defined floating-point values </dd>
-<dt>cupsRenderingIntent[64] <span class="info"> CUPS 1.2/OS X 10.5 </span></dt>
+<dt>cupsRenderingIntent[64] <span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span></dt>
+<dt>cupsString[16][64] <span class="info"> CUPS 1.2/macOS 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/OS X 10.3 </span></dt>
+<dt>CUPS_CSPACE_CIELab <span class="info"> CUPS 1.1.19/macOS 10.3 </span></dt>
<dd class="description">CIE Lab </dd>
-<dt>CUPS_CSPACE_CIEXYZ <span class="info"> CUPS 1.1.19/OS X 10.3 </span></dt>
+<dt>CUPS_CSPACE_CIEXYZ <span class="info"> CUPS 1.1.19/macOS 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/OS X 10.3 </span></dt>
+<dt>CUPS_CSPACE_ICC1 <span class="info"> CUPS 1.1.19/macOS 10.3 </span></dt>
<dd class="description">ICC-based, 1 color </dd>
-<dt>CUPS_CSPACE_ICC2 <span class="info"> CUPS 1.1.19/OS X 10.3 </span></dt>
+<dt>CUPS_CSPACE_ICC2 <span class="info"> CUPS 1.1.19/macOS 10.3 </span></dt>
<dd class="description">ICC-based, 2 colors </dd>
-<dt>CUPS_CSPACE_ICC3 <span class="info"> CUPS 1.1.19/OS X 10.3 </span></dt>
+<dt>CUPS_CSPACE_ICC3 <span class="info"> CUPS 1.1.19/macOS 10.3 </span></dt>
<dd class="description">ICC-based, 3 colors </dd>
-<dt>CUPS_CSPACE_ICC4 <span class="info"> CUPS 1.1.19/OS X 10.3 </span></dt>
+<dt>CUPS_CSPACE_ICC4 <span class="info"> CUPS 1.1.19/macOS 10.3 </span></dt>
<dd class="description">ICC-based, 4 colors </dd>
-<dt>CUPS_CSPACE_ICC5 <span class="info"> CUPS 1.1.19/OS X 10.3 </span></dt>
+<dt>CUPS_CSPACE_ICC5 <span class="info"> CUPS 1.1.19/macOS 10.3 </span></dt>
<dd class="description">ICC-based, 5 colors </dd>
-<dt>CUPS_CSPACE_ICC6 <span class="info"> CUPS 1.1.19/OS X 10.3 </span></dt>
+<dt>CUPS_CSPACE_ICC6 <span class="info"> CUPS 1.1.19/macOS 10.3 </span></dt>
<dd class="description">ICC-based, 6 colors </dd>
-<dt>CUPS_CSPACE_ICC7 <span class="info"> CUPS 1.1.19/OS X 10.3 </span></dt>
+<dt>CUPS_CSPACE_ICC7 <span class="info"> CUPS 1.1.19/macOS 10.3 </span></dt>
<dd class="description">ICC-based, 7 colors </dd>
-<dt>CUPS_CSPACE_ICC8 <span class="info"> CUPS 1.1.19/OS X 10.3 </span></dt>
+<dt>CUPS_CSPACE_ICC8 <span class="info"> CUPS 1.1.19/macOS 10.3 </span></dt>
<dd class="description">ICC-based, 8 colors </dd>
-<dt>CUPS_CSPACE_ICC9 <span class="info"> CUPS 1.1.19/OS X 10.3 </span></dt>
+<dt>CUPS_CSPACE_ICC9 <span class="info"> CUPS 1.1.19/macOS 10.3 </span></dt>
<dd class="description">ICC-based, 9 colors </dd>
-<dt>CUPS_CSPACE_ICCA <span class="info"> CUPS 1.1.19/OS X 10.3 </span></dt>
+<dt>CUPS_CSPACE_ICCA <span class="info"> CUPS 1.1.19/macOS 10.3 </span></dt>
<dd class="description">ICC-based, 10 colors </dd>
-<dt>CUPS_CSPACE_ICCB <span class="info"> CUPS 1.1.19/OS X 10.3 </span></dt>
+<dt>CUPS_CSPACE_ICCB <span class="info"> CUPS 1.1.19/macOS 10.3 </span></dt>
<dd class="description">ICC-based, 11 colors </dd>
-<dt>CUPS_CSPACE_ICCC <span class="info"> CUPS 1.1.19/OS X 10.3 </span></dt>
+<dt>CUPS_CSPACE_ICCC <span class="info"> CUPS 1.1.19/macOS 10.3 </span></dt>
<dd class="description">ICC-based, 12 colors </dd>
-<dt>CUPS_CSPACE_ICCD <span class="info"> CUPS 1.1.19/OS X 10.3 </span></dt>
+<dt>CUPS_CSPACE_ICCD <span class="info"> CUPS 1.1.19/macOS 10.3 </span></dt>
<dd class="description">ICC-based, 13 colors </dd>
-<dt>CUPS_CSPACE_ICCE <span class="info"> CUPS 1.1.19/OS X 10.3 </span></dt>
+<dt>CUPS_CSPACE_ICCE <span class="info"> CUPS 1.1.19/macOS 10.3 </span></dt>
<dd class="description">ICC-based, 14 colors </dd>
-<dt>CUPS_CSPACE_ICCF <span class="info"> CUPS 1.1.19/OS X 10.3 </span></dt>
+<dt>CUPS_CSPACE_ICCF <span class="info"> CUPS 1.1.19/macOS 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/OS X 10.5 </span></dt>
+<dt>CUPS_CSPACE_RGBW <span class="info"> CUPS 1.2/macOS 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/OS X 10.5 </span></dt>
+<dt>CUPS_RASTER_WRITE_COMPRESSED <span class="info"> CUPS 1.3/macOS 10.5 </span></dt>
<dd class="description">Open stream for compressed writing </dd>
-<dt>CUPS_RASTER_WRITE_PWG <span class="info"> CUPS 1.5/OS X 10.7 </span></dt>
+<dt>CUPS_RASTER_WRITE_PWG <span class="info"> CUPS 1.5/macOS 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 OS X Frequently Asked Questions</A></LI>
+ on macOS Frequently Asked Questions</A></LI>
</UL>
operating system 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
+ Darwin, macOS, and macOS Server products and all
follow-on releases and future versions thereof.</LI>
<LI>This exception is only available for Apple
<i>argv[0]</i>
and
<b>DEVICE_URI</b>
-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.
+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 macOS) 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.
<p>Unless you are a developer and know what you are doing, please do not run backends directly. Instead, use the
<a href="man-lp.html?TOPIC=Man+Pages"><b>lp</b>(1)</a>
or
<h2 class="title"><a name="DESCRIPTION">Description</a></h2>
The <b>client.conf</b> file configures the CUPS client and is normally located in the <i>/etc/cups</i> and/or <i>~/.cups</i> directories.
Each line in the file can be a configuration directive, a blank line, or a comment. Comment lines start with the # character.
-<p><b>Note:</b> Starting with OS X 10.7, this file is only used by command-line and X11 applications plus the IPP backend.
-The <b>ServerName</b> directive is not supported on OS X at all.
-Starting with OS X 10.TODO, all applications can access these settings in the <i>/Library/Preferences/org.cups.PrintingPrefs.plist</i> file instead.
+<p><b>Note:</b> Starting with macOS 10.7, this file is only used by command-line and X11 applications plus the IPP backend.
+The <b>ServerName</b> directive is not supported on macOS at all.
+Starting with macOS 10.12, all applications can access these settings in the <i>/Library/Preferences/org.cups.PrintingPrefs.plist</i> file instead.
See the NOTES section below for more information.
<h3><a name="DIRECTIVES">Directives</a></h3>
The following directives are understood by the client. Consult the online help for detailed descriptions:
<dt><b>ServerName </b><i>hostname-or-ip-address</i>[<i>:port</i>]
<dd style="margin-left: 5.0em"><dt><b>ServerName </b><i>/domain/socket</i>
<dd style="margin-left: 5.0em">Specifies the address and optionally the port to use when connecting to the server.
-<b>Note: This directive it not supported on OS X 10.7 or later.</b>
+<b>Note: This directive it not supported on macOS 10.7 or later.</b>
<dt><b>ServerName </b><i>hostname-or-ip-address</i>[<i>:port</i>]<b>/version=1.1</b>
<dd style="margin-left: 5.0em">Specifies the address and optionally the port to use when connecting to a server running CUPS 1.3.12 and earlier.
<dt><b>SSLOptions </b>[<i>AllowDH</i>] [<i>AllowRC4</i>] [<i>AllowSSL3</i>] [<i>DenyTLS1.0</i>]
The default is "No".
</dl>
<h2 class="title"><a name="NOTES">Notes</a></h2>
-The <b>client.conf</b> file is deprecated on OS X and will no longer be supported in a future version of CUPS.
+The <b>client.conf</b> file is deprecated on macOS and will no longer be supported in a future version of CUPS.
Configuration settings can instead be viewed or changed using the
<b>defaults</b>(1)
command:
The default is "/var/log/cups/access_log".
<dt><a name="ConfigFilePerm"></a><b>ConfigFilePerm </b><i>mode</i>
<dd style="margin-left: 5.0em">Specifies the permissions for all configuration files that the scheduler writes.
-The default is "0644" on OS X and "0640" on all other operating systems.
+The default is "0644" on macOS and "0640" on all other operating systems.
</dl>
<p><b>Note:</b> The permissions for the <i>printers.conf</i> file are currently masked to only allow access from the scheduler user (typically root).
This is done because printer device URIs sometimes contain sensitive authentication information that should not be generally known on the system.
<dd style="margin-left: 5.0em"><dt><b>Sandboxing strict</b>
<dd style="margin-left: 5.0em">Specifies the level of security sandboxing that is applied to print filters, backends, and other child processes of the scheduler.
The default is "strict".
-This directive is currently only used/supported on OS X.
+This directive is currently only used/supported on macOS.
<dt><a name="ServerBin"></a><b>ServerBin </b><i>directory</i>
<dd style="margin-left: 5.0em">Specifies the directory containing the backends, CGI programs, filters, helper programs, notifiers, and port monitors.
The default is "/usr/lib/cups" or "/usr/libexec/cups" depending on the platform.
<dt><a name="ServerKeychain"></a><b>ServerKeychain </b><i>path</i>
<dd style="margin-left: 5.0em">Specifies the location of TLS certificates and private keys.
-The default is "/Library/Keychains/System.keychain" on OS X and "/etc/cups/ssl" on all other operating systems.
-OS X uses its keychain database to store certificates and keys while other platforms use separate files in the specified directory, *.crt for PEM-encoded certificates and *.key for PEM-encoded private keys.
+The default is "/Library/Keychains/System.keychain" on macOS and "/etc/cups/ssl" on all other operating systems.
+macOS uses its keychain database to store certificates and keys while other platforms use separate files in the specified directory, *.crt for PEM-encoded certificates and *.key for PEM-encoded private keys.
<dt><a name="ServerRoot"></a><b>ServerRoot </b><i>directory</i>
<dd style="margin-left: 5.0em">Specifies the directory containing the server configuration files.
The default is "/etc/cups".
<a href="man-backend.html?TOPIC=Man+Pages"><b>backend</b>(7)</a>
with no arguments in order to discover the available printers.
<p>The <b>cups-driverd</b> helper program lists all available printer drivers, a subset of "matching" printer drivers, or a copy of a specific driver PPD file.
-<p>The <b>cups-exec</b> helper program runs backends, filters, and other programs. On OS X these programs are run in a secure sandbox.
+<p>The <b>cups-exec</b> helper program runs backends, filters, and other programs. On macOS these programs are run in a secure sandbox.
<h2 class="title"><a name="FILES">Files</a></h2>
The <b>cups-driverd</b> program looks for PPD and driver information files in the following directories:
<pre class="man">
While the filter interface is compatible with System V interface scripts, CUPS does not support System V interface scripts.
<h2 class="title"><a name="NOTES">Notes</a></h2>
CUPS filters are not meant to be run directly by the user.
-Aside from the legacy System V interface issues (<i>argv[0]</i> 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.
+Aside from the legacy System V interface issues (<i>argv[0]</i> is the printer name), CUPS filters also expect specific environment variables and file descriptors, and typically run in a user session that (on macOS) 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
<a href="man-cupsfilter.html?TOPIC=Man+Pages"><b>cupsfilter</b>(8)</a>
<br>
<i>/usr/lib/cups/filter</i> - Typical CUPS filter directory.
<br>
-<i>/usr/libexec/cups/filter</i> - CUPS filter directory on OS X.
+<i>/usr/libexec/cups/filter</i> - CUPS filter directory on macOS.
<h2 class="title"><a name="EXAMPLES">Examples</a></h2>
Define a filter that converts PostScript documents to CUPS Raster format:
<pre class="man">
]
<i>source-file</i>
<h2 class="title"><a name="DESCRIPTION">Description</a></h2>
-<b>ppdpo</b> extracts UI strings from PPDC source files and updates either a GNU gettext or OS X strings format message catalog source file for translation.
+<b>ppdpo</b> extracts UI strings from PPDC source files and updates either a GNU gettext or macOS strings format message catalog source file for translation.
<b>This program is deprecated and will be removed in a future release of CUPS.</b>
<h2 class="title"><a name="OPTIONS">Options</a></h2>
<b>ppdpo</b> supports the following options:
Multiple <i>-I</i> options can be supplied to add additional directories.
<dt><b>-o </b><i>output-file</i>
<dd style="margin-left: 5.0em">Specifies the output file.
-The supported extensions are <i>.po</i> or <i>.po.gz</i> for GNU gettext format message catalogs and <i>.strings</i> for OS X strings files.
+The supported extensions are <i>.po</i> or <i>.po.gz</i> for GNU gettext format message catalogs and <i>.strings</i> for macOS strings files.
</dl>
<h2 class="title"><a name="SEE_ALSO">See Also</a></h2>
<a href="man-ppdc.html?TOPIC=Man+Pages"><b>ppdc</b>(1),</a>
(setenv CUPS_DEBUG_LEVEL 2; /usr/lib/cups/backend/snmp) |& tee snmp.log
</PRE>
-<P>On MacOS X you'll find the SNMP backend in /usr/libexec/cups/backend instead:</P>
+<P>On MacmacOS you'll find the SNMP backend in /usr/libexec/cups/backend instead:</P>
<PRE CLASS="command">
CUPS_DEBUG_LEVEL=2 /usr/libexec/cups/backend/snmp 2>&1 | tee snmp.log
<P>Click on the <var>Administration</var> tab. Click on the <var>Add Printer</var> button and follow the prompts.</P>
-<BLOCKQUOTE>When you are asked for a username and password, enter your login username and password or the "root" username and password. On OS X<sup>®</sup>, the login username (or "short name") is typically your first and last name in lowercase.</BLOCKQUOTE>
+<BLOCKQUOTE>When you are asked for a username and password, enter your login username and password or the "root" username and password. On macOS<sup>®</sup>, the login username (or "short name") is typically your first and last name in lowercase.</BLOCKQUOTE>
<P>After the printer is added, CUPS will ask you to set the default printer
options (paper size, output mode, etc.) for the printer. Make any changes as
<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 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 macOS 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 OS X Features</a></li>
+<li><a href="#MACOSX">Adding macOS 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>
-<h2 class='title'><a name='MACOSX'>Adding OS X Features</a></h2>
+<h2 class='title'><a name='MACOSX'>Adding macOS Features</a></h2>
-<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>
+<p>macOS 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 (OS X 10.5 and higher) also
+ 8 bits per color. CUPS 1.2 and higher (macOS 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
<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 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 macOS 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 OS X Features</a></li>
+<li><a href="#MACOSX">Adding macOS 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 OS X 10.5</span>Custom Color Matching Support</h3>
+<h3><span class='info'>Since macOS 10.5</span>Custom Color Matching Support</h3>
-<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>
+<p>macOS 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 OS X Features</a></h2>
+<h2 class='title'><a name='MACOSX'>Adding macOS Features</a></h2>
-<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>
+<p>macOS 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
<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 OS X .strings
+relative to the driver information file. GNU gettext and macOS .strings
files are supported.</p>
<BR>
- <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>
+ <BR><A NAME="REF_COLOR_APPLE">*</A> = This colorspace is not supported on macOS prior to 10.4.
+ <BR><A NAME="REF_COLOR_APPLE2">**</A> = This colorspace is not supported on macOS.</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
- OS X.</LI>
+ macOS.</LI>
</UL>
<P><B>Recommendation:</B> Enable encryption to hide the
username and password information - this is the default on
- MacOS X and systems with GNU TLS or OpenSSL installed.</P></LI>
+ MacmacOS and systems with GNU TLS or OpenSSL installed.</P></LI>
<LI>Local certificate authentication passes 128-bit
"certificates" that identify an authenticated user.
<H2 CLASS="title"><A NAME="ENCRYPTION">Encryption Issues</A></H2>
-<P>CUPS supports 128-bit TLS encryption of network connections via the GNU TLS library, OS X Security framework, and Windows Schannel APIs. Secure deployment of TLS depends on proper certificate management and software maintenance.</P>
+<P>CUPS supports 128-bit TLS encryption of network connections via the GNU TLS library, macOS Security framework, and Windows Schannel APIs. Secure deployment of TLS depends on proper certificate management and software maintenance.</P>
</BODY>
</HTML>
<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>
+<p>This method of configuration does not work on macOS 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
<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>
+<p>This method of configuration does not work on macOS 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
-<h3 class='title'><span class='info'>CUPS 1.2/OS X 10.5</span><a
+<h3 class='title'><span class='info'>CUPS 1.2/macOS 10.5</span><a
name='CREATE_PRINTER_SUBSCRIPTION'>Create-Printer-Subscription</a></h3>
<p>The Create-Printer-Subscription operation (0x0016) creates a subscription for printer or server event notifications. CUPS provides several additional events in addition to the standard events in the IPP notifications specification. CUPS adds the following <tt>notify-events (1setOf type2 keyword)</tt> values:<p>
<dd>The "attributes-charset" and "attributes-natural-language" 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/OS X 10.5</span>
+ <dt>"first-printer-name" (name(127)): <span class='info'>CUPS 1.2/macOS 10.5</span>
<dd>The client OPTIONALLY supplies this attribute to select the first printer that is returned.
<dd>The client OPTIONALLY supplies a set of attribute names and/or attribute group names in whose values the requester is 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/OS X 10.5</span>
+ <dt>"requested-user-name" (name(127)): <span class='info'>CUPS 1.2/macOS 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/OS X 10.5</span>
+ <dt>"auth-info-required" (1setOf type2 keyword): <span class='info'>CUPS 1.3/macOS 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 "attributes-charset" and "attributes-natural-language" 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/OS X 10.5</span>
+ <dt>"first-printer-name" (name(127)): <span class='info'>CUPS 1.2/macOS 10.5</span>
<dd>The client OPTIONALLY supplies this attribute to select the first printer that is returned.
<dd>The client OPTIONALLY supplies a set of attribute names and/or attribute group names in whose values the requester is 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/OS X 10.5</span>
+ <dt>"requested-user-name" (name(127)): <span class='info'>CUPS 1.2/macOS 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/OS X 10.5</span>
+ <dt>"auth-info-required" (1setOf type2 keyword): <span class='info'>CUPS 1.3/macOS 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/OS X 10.6</span>
+ <dt>"exclude-schemes" (1setOf name): <span class='info'>CUPS 1.4/macOS 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/OS X 10.6</span>
+ <dt>"include-schemes" (1setOf name): <span class='info'>CUPS 1.4/macOS 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 server responds with devices of all schemes except those specified by the "exclude-schemes" attribute.
<dd>The client OPTIONALLY supplies a set of attribute names and/or attribute group names in whose values the requester is interested. If 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/OS X 10.6</span>
+ <dt>"timeout" (integer (1:MAX)): <span class='info'>CUPS 1.4/macOS 10.6</span>
<dd>The client OPTIONALLY supplies this attribute to limit the duration of the lookup. The default timeout is 15 seconds.
<dd>The "attributes-charset" and "attributes-natural-language" 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/OS X 10.6</span>
+ <dt>"exclude-schemes" (1setOf name): <span class='info'>CUPS 1.4/macOS 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/OS X 10.6</span>
+ <dt>"include-schemes" (1setOf name): <span class='info'>CUPS 1.4/macOS 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 responds with PPDs of all schemes except those specified by the "exclude-schemes" attribute.
<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/OS X 10.5</span>
+ <dt>"ppd-make-and-model" (text(127)): <span class='info'>CUPS 1.3/macOS 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/OS X 10.5</span>
+ <dt>"ppd-model-number" (integer): <span class='info'>CUPS 1.3/macOS 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/OS X 10.5</span>
+ <dt>"ppd-natural-language" (naturalLanguage): <span class='info'>CUPS 1.3/macOS 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/OS X 10.5</span>
+ <dt>"ppd-product" (text(127)): <span class='info'>CUPS 1.3/macOS 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/OS X 10.5</span>
+ <dt>"ppd-psversion" (text(127)): <span class='info'>CUPS 1.3/macOS 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/OS X 10.5</span>
+ <dt>"ppd-type" (type1 keyword): <span class='info'>CUPS 1.3/macOS 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/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/macOS 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 to a remote server. The authentication information is passed in the HTTP request; the HTTP connection is normally encrypted for this type of request.</p>
<dl>
- <dt>"auth-info" (1setOf text(MAX)): <span class='info'>CUPS 1.3/OS X 10.5</span>
+ <dt>"auth-info" (1setOf text(MAX)): <span class='info'>CUPS 1.3/macOS 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/OS X 10.5</span>
+ <dt>"job-hold-until" (keyword | name(MAX)): <span class='info'>CUPS 1.3/macOS 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 of released for printing.
<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/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/macOS 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 <tt>document-number</tt> and either the <tt>job-uri</tt> or <tt>printer-uri</tt> and <tt>job-id</tt> identifying the job.</p>
<h3 class='title'><a name='JOB_ATTRIBUTES'>Job Attributes</a></h3>
-<h4><a name="auth-info">auth-info (1setOf text(MAX))</a><span class="info">CUPS 1.3/OS X 10.5</span></h4>
+<h4><a name="auth-info">auth-info (1setOf text(MAX))</a><span class="info">CUPS 1.3/macOS 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.
<p>The "job-hold-until" attribute specifies a hold time. In addition to the standard IPP/1.1 keyword names, CUPS supports name values of the form "HH:MM" and "HH:MM:SS" that specify a hold time. The hold time is in Universal Coordinated Time (UTC) and <i>not</i> in the local time zone. If 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/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/macOS 10.6</span></h4>
<p>The "job-media-progress" status attribute specifies the percentage of completion of the current page. It is only valid when the "job-state" attribute has the 'processing(5)' value.</p>
-<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>
+<h4><a name="job-printer-state-message">job-printer-state-message (text(MAX))</a><span class='info'>CUPS 1.3/macOS 10.5</span></h4>
<p>The "job-printer-state-message" status 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/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/macOS 10.5</span></h4>
<p>The "job-printer-state-reasons" status attribute provides the last known value of the "printer-state-reasons" attribute for the printer that processed (or is processing) the job.</p>
<p>If only one value is supplied, the banner file is printed before the job. If two values are supplied, the first value is used as the starting banner file and the second as the ending banner file.
-<h4><a name="job-originating-host-name">job-originating-host-name (name(MAX))</a><span class='info'>CUPS 1.1.5/OS X 10.2</span></h4>
+<h4><a name="job-originating-host-name">job-originating-host-name (name(MAX))</a><span class='info'>CUPS 1.1.5/macOS 10.2</span></h4>
<p>The "job-originating-host-name" status attribute specifies the host from which the job was queued. The value will be the hostname or IP address of the client depending on whether hostname resolution is enabled. The localhost address (127.0.0.1) is <b>always</b> resolved to the name "localhost".
<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/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/macOS 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-quota-period" attribute specifies the time period used for quota calculations, in seconds. The default value of 0 specifies that the limits apply to all jobs that have been printed by a user that are still known to the system.
-<h4><a name="marker-change-time">marker-change-time (integer)</a><span class='info'>CUPS 1.3/OS X 10.5</span></h4>
+<h4><a name="marker-change-time">marker-change-time (integer)</a><span class='info'>CUPS 1.3/macOS 10.5</span></h4>
<p>The "marker-change-time" status 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/OS X 10.5</span></h4>
+<h4><a name="marker-colors">marker-colors (1setof name(MAX))</a><span class='info'>CUPS 1.3/macOS 10.5</span></h4>
<p>The "marker-colors" status 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/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/macOS 10.6</span></h4>
<p>The "marker-high-levels" status 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/OS X 10.5</span></h4>
+<h4><a name="marker-levels">marker-levels (1setof integer(-3:100))</a><span class='info'>CUPS 1.3/macOS 10.5</span></h4>
<p>The "marker-levels" status attribute specifies the current supply levels for the printer. It is only available when the driver provides supply levels. A value of -1 indicates the level is unavailable, -2 indicates unknown, and -3 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/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/macOS 10.6</span></h4>
<p>The "marker-low-levels" status 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/OS X 10.6</span></h4>
+<h4><a name="marker-message">marker-message (text(MAX))</a><span class='info'>CUPS 1.4/macOS 10.6</span></h4>
<p>The "marker-message" status 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/OS X 10.5</span></h4>
+<h4><a name="marker-names">marker-names (1setof name(MAX))</a><span class='info'>CUPS 1.3/macOS 10.5</span></h4>
<p>The "marker-names" status 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/OS X 10.5</span></h4>
+<h4><a name="marker-types">marker-types (1setof type3 keyword)</a><span class='info'>CUPS 1.3/macOS 10.5</span></h4>
<p>The "marker-types" status attribute specifies the type(s) of each supply in the printer. It is only available when the driver provides supply levels. The following (RFC 3805) types are currently supported:</p>
<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/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/macOS 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, "printer-dns-sd-name" will have the no-value value.</p>
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. OS X uses PDF as the primary print job file
+over PostScript. macOS 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/OS X 10.6Custom Options</a></li>
+<li><a href="#OPTIONS">CUPS 1.3/macOS 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">OS X Attributes</a><ul class="subcontents">
+<li><a href="#MACOSX">macOS 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'>OS X 10.5</span><a name='APAutoSetupTool'>APAutoSetupTool</a></h3>
+<h3><span class='info'>macOS 10.5</span><a name='APAutoSetupTool'>APAutoSetupTool</a></h3>
<p class='summary'>*APAutoSetupTool: "/LibraryPrinters/vendor/filename"</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>This macOS 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'>OS X 10.2/CUPS 1.4</span><a name='QUERYKEYWORD'>?MainKeyword</a></h3>
+<h3><span class='info'>macOS 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'>OS X 10.4/CUPS 1.5</span><a name='OID'>OIDMainKeyword</a></h3>
+<h3><span class='info'>macOS 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>
<h2 class='title'><a name='PROFILES'>Color Profiles</a></h2>
-<p>CUPS supports three types of color profiles. The first type is based on sRGB and is used by the standard CUPS raster filters and GPL Ghostscript. The second type is based on ICC profiles and is used by the Quartz-based filters on MacOS X. The final type is based on well-known colorspaces such as sRGB and Adobe RGB.</p>
+<p>CUPS supports three types of color profiles. The first type is based on sRGB and is used by the standard CUPS raster filters and GPL Ghostscript. The second type is based on ICC profiles and is used by the Quartz-based filters on macOS. The final type is based on well-known colorspaces such as sRGB and Adobe RGB.</p>
<blockquote><b>Note:</b>
<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 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 macOS.</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'>OS X 10.3/CUPS 1.2</span><a name='cupsICCProfile'>cupsICCProfile</a></h3>
+<h3><span class='info'>macOS 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'>OS X 10.4</span><a name='APCustom'>Custom Color Matching Support</a></h3>
+<h3><span class='info'>macOS 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 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 macOS 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 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>
+<p>Prior to macOS 10.6, the default RGB color space was Apple's "GenericRGB". The new default in macOS 10.6 and later is "sRGB". For more information, see <a href="http://support.apple.com/kb/HT3712">"macOS v10.6: About gamma 2.2"</a> on Apple's support site.</p>
</blockquote>
-<h4><span class='info'>OS X 10.5</span><a name='APCustomColorMatchingName'>APCustomColorMatchingName</a></h4>
+<h4><span class='info'>macOS 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'>OS X 10.5</span><a name='APCustomColorMatchingProfile'>APCustomColorMatchingProfile</a></h4>
+<h4><span class='info'>macOS 10.5</span><a name='APCustomColorMatchingProfile'>APCustomColorMatchingProfile</a></h4>
<p class='summary'>*APCustomColorMatchingProfile: name</p>
*APCustomColorMatchingProfile: AdobeRGB
</pre>
-<h4><span class='info'>OS X 10.5</span><a name='APDefaultCustomColorMatchingProfile'>APDefaultCustomColorMatchingProfile</a></h4>
+<h4><span class='info'>macOS 10.5</span><a name='APDefaultCustomColorMatchingProfile'>APDefaultCustomColorMatchingProfile</a></h4>
<p class='summary'>*APDefaultCustomColorMatchingProfile: name</p>
*APDefaultCustomColorMatchingProfile: sRGB
</pre>
-<h4><span class='info'>OS X 10.4</span><a name='APSupportsCustomColorMatching'>APSupportsCustomColorMatching</a></h4>
+<h4><span class='info'>macOS 10.4</span><a name='APSupportsCustomColorMatching'>APSupportsCustomColorMatching</a></h4>
<p class='summary'>*APSupportsCustomColorMatching: boolean</p>
</blockquote>
-<h3><span class='info'>CUPS 1.4/OS X 10.6</span><a name='cupsUIConstraints'>cupsUIConstraints</a></h3>
+<h3><span class='info'>CUPS 1.4/macOS 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/OS X 10.6</span><a name='cupsUIResolver'>cupsUIResolver</a></h3>
+<h3><span class='info'>CUPS 1.4/macOS 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/OS X 10.6</span>Custom Options</a></h2>
+<h2 class='title'><a name='OPTIONS'><span class="info">CUPS 1.3/macOS 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/OS X 10.6</span><a name='cupsMediaQualifier2'>cupsMediaQualifier2</a></h3>
+<h3><span class='info'>CUPS 1.4/macOS 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/OS X 10.6</span><a name='cupsMediaQualifier3'>cupsMediaQualifier3</a></h3>
+<h3><span class='info'>CUPS 1.4/macOS 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/OS X 10.6</span><a name='cupsMinSize'>cupsMinSize</a></h3>
+<h3><span class='info'>CUPS 1.4/macOS 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/OS X 10.6</span><a name='cupsMaxSize'>cupsMaxSize</a></h3>
+<h3><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsMaxSize'>cupsMaxSize</a></h3>
<p class='summary'>*cupsMaxSize .Qualifier2.Qualifier3: "width length"<br>
*cupsMaxSize .Qualifier2.: "width length"<br>
</pre>
-<h3><span class='info'>CUPS 1.4/OS X 10.6</span><a name='cupsPageSizeCategory'>cupsPageSizeCategory</a></h3>
+<h3><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsPageSizeCategory'>cupsPageSizeCategory</a></h3>
<p class="summary">*cupsPageSizeCategory name/text: "name name2 ... nameN"</p>
-<p>This keyword lists related paper size names that should be grouped together in the Print or Page Setup dialogs. The "name" portion of the keyword specifies the root/default size for the grouping. On OS X the grouped paper sizes are shown in a submenu of the main paper size. When omitted, sizes with the same dimensions are automatically grouped together, for example "Letter" and "Letter.Borderless".</p>
+<p>This keyword lists related paper size names that should be grouped together in the Print or Page Setup dialogs. The "name" portion of the keyword specifies the root/default size for the grouping. On macOS the grouped paper sizes are shown in a submenu of the main paper size. When omitted, sizes with the same dimensions are automatically grouped together, for example "Letter" and "Letter.Borderless".</p>
<p>Example:</p>
<h2 class='title'><a name='ATTRIBUTES'>General Attributes</a></h2>
-<h3><span class='info'>CUPS 1.3/OS X 10.5</span><a name='cupsBackSide'>cupsBackSide</a></h3>
+<h3><span class='info'>CUPS 1.3/macOS 10.5</span><a name='cupsBackSide'>cupsBackSide</a></h3>
<p class='summary'>*cupsBackSide: keyword</p>
</table>
</div>
-<p><em>* - Not supported in OS X 10.5.x and earlier</em></p>
+<p><em>* - Not supported in macOS 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/OS X 10.6</span><a name='cupsCommands'>cupsCommands</a></h3>
+<h3><span class='info'>CUPS 1.4/macOS 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/OS X 10.5</span><a name='cupsEvenDuplex'>cupsEvenDuplex</a></h3>
+<h3><span class='info'>CUPS 1.3/macOS 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 OS X and Ghostscript,
+<p>Due to implementation differences between macOS 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 OS X and <code>Flipped</code> with
+of <code>Rotated</code> on macOS and <code>Flipped</code> with
Ghostscript.</p>
<p>The default value is <code>false</code>.</p>
<blockquote><b>Note:</b>
-<p>OS X drivers that previously used
+<p>macOS 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/OS X 10.5</span><a name='cupsIPPFinishings'>cupsIPPFinishings</a></h3>
+<h3><span class='info'>CUPS 1.3/macOS 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/OS X 10.5</span><a name='cupsIPPReason'>cupsIPPReason</a></h3>
+<h3><span class='info'>CUPS 1.3/macOS 10.5</span><a name='cupsIPPReason'>cupsIPPReason</a></h3>
<p class='summary'>*cupsIPPReason reason/Reason Text: "optional URIs"</p>
</pre>
-<h3><span class='info'>CUPS 1.7/OS X 10.9</span><a name='cupsJobAccountId'>cupsJobAccountId</a></h3>
+<h3><span class='info'>CUPS 1.7/macOS 10.9</span><a name='cupsJobAccountId'>cupsJobAccountId</a></h3>
<p class='summary'>*cupsJobAccountId: boolean</p>
</pre>
-<h3><span class='info'>CUPS 1.7/OS X 10.9</span><a name='cupsJobAccountingUserId'>cupsJobAccountingUserId</a></h3>
+<h3><span class='info'>CUPS 1.7/macOS 10.9</span><a name='cupsJobAccountingUserId'>cupsJobAccountingUserId</a></h3>
<p class='summary'>*cupsJobAccountingUserId: boolean</p>
</pre>
-<h3><span class='info'>CUPS 1.7/OS X 10.9</span><a name='cupsJobPassword'>cupsJobPassword</a></h3>
+<h3><span class='info'>CUPS 1.7/macOS 10.9</span><a name='cupsJobPassword'>cupsJobPassword</a></h3>
<p class='summary'>*cupsJobPassword: "format"</p>
</pre>
-<h3><span class='info'>CUPS 1.2/OS X 10.5</span><a name='cupsLanguages'>cupsLanguages</a></h3>
+<h3><span class='info'>CUPS 1.2/macOS 10.5</span><a name='cupsLanguages'>cupsLanguages</a></h3>
<p class='summary'>*cupsLanguages: "locale list"</p>
</pre>
-<h3><span class='info'>CUPS 1.7/OS X 10.9</span><a name='cupsMandatory'>cupsMandatory</a></h3>
+<h3><span class='info'>CUPS 1.7/macOS 10.9</span><a name='cupsMandatory'>cupsMandatory</a></h3>
<p class='summary'>*cupsMandatory: "attribute1 attribute2 ... attributeN"</p>
*cupsManualCopies: true
</pre>
-<h3><span class='info'>CUPS 1.4/OS X 10.6</span><a name='cupsMarkerName'>cupsMarkerName</a></h3>
+<h3><span class='info'>CUPS 1.4/macOS 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/OS X 10.6</span><a name='cupsMarkerNotice'>cupsMarkerNotice</a></h3>
+<h3><span class='info'>CUPS 1.4/macOS 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/OS X 10.8</span><a name='cupsMaxCopies'>cupsMaxCopies</a></h3>
+<h3><span class='info'>CUPS 1.6/macOS 10.8</span><a name='cupsMaxCopies'>cupsMaxCopies</a></h3>
<p class='summary'>*cupsMaxCopies: integer</p>
</pre>
-<h3><span class='info'>CUPS 1.3/OS X 10.5</span><a name='cupsPJLCharset'>cupsPJLCharset</a></h3>
+<h3><span class='info'>CUPS 1.3/macOS 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/OS X 10.6</span><a name='cupsPJLDisplay'>cupsPJLDisplay</a></h3>
+<h3><span class='info'>CUPS 1.4/macOS 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/OS X 10.5</span><a name='cupsPortMonitor'>cupsPortMonitor</a></h3>
+<h3><span class='info'>CUPS 1.2/macOS 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/OS X 10.5</span><a name='cupsPreFilter'>cupsPreFilter</a></h3>
+<h3><span class='info'>CUPS 1.3/macOS 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/OS X 10.6</span><a name='cupsSNMPSupplies'>cupsSNMPSupplies</a></h3>
+<h3><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsSNMPSupplies'>cupsSNMPSupplies</a></h3>
<p class='summary'>*cupsSNMPSupplies: boolean</p>
</pre>
-<h3><span class="info">CUPS 1.6/OS X 10.8</span><a name="JCLToPDFInterpreter">JCLToPDFInterpreter</a></h3>
+<h3><span class="info">CUPS 1.6/macOS 10.8</span><a name="JCLToPDFInterpreter">JCLToPDFInterpreter</a></h3>
<p class="summary">*JCLToPDFInterpreter: "JCL"</p>
</pre>
-<h2 class='title'><a name='MACOSX'>OS X Attributes</a></h2>
+<h2 class='title'><a name='MACOSX'>macOS Attributes</a></h2>
-<h3><span class='info'>OS X 10.3</span><a name='APDialogExtension'>APDialogExtension</a></h3>
+<h3><span class='info'>macOS 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 OS X 10.5, each plug-in must be compiled "4-way fat"
+<p>Starting with macOS 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'>OS X 10.4</span><a name='APDuplexRequiresFlippedMargin'>APDuplexRequiresFlippedMargin</a></h3>
+<h3><span class='info'>macOS 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'>OS X 10.6</span><a name='APICADriver'>APICADriver</a></h3>
+<h3><span class='info'>macOS 10.6</span><a name='APICADriver'>APICADriver</a></h3>
<p class='summary'>*APICADriver: boolean</p>
*APScanAppBundleID: "com.apple.ImageCaptureApp"
</pre>
-<h3><span class='info'>OS X 10.3</span><a name='APPrinterIconPath'>APPrinterIconPath</a></h3>
+<h3><span class='info'>macOS 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'>OS X 10.4</span><a name='APPrinterLowInkTool'>APPrinterLowInkTool</a></h3>
+<h3><span class='info'>macOS 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'>OS X 10.5</span><a name='APPrinterPreset'>APPrinterPreset</a></h3>
+<h3><span class='info'>macOS 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'>OS X 10.3</span><a name='APPrinterUtilityPath'>APPrinterUtilityPath</a></h3>
+<h3><span class='info'>macOS 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'>OS X 10.6</span><a name='APScannerOnly'>APScannerOnly</a></h3>
+<h3><span class='info'>macOS 10.6</span><a name='APScannerOnly'>APScannerOnly</a></h3>
<p class='summary'>*APScannerOnly: boolean</p>
*APScannerOnly: True
</pre>
-<h3><span class='info'>OS X 10.3</span><a name='APScanAppBundleID'>APScanAppBundleID</a></h3>
+<h3><span class='info'>macOS 10.3</span><a name='APScanAppBundleID'>APScanAppBundleID</a></h3>
<p class='summary'>*APScanAppBundleID: "bundle ID"</p>
<ul>
- <li>Added missing OS X <tt>AP</tt> keywords.</li>
+ <li>Added missing macOS <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>
<div class="body">
<div class="row">
<h1>CUPS @CUPS_VERSION@</h1>
- <p>CUPS is the standards-based, open source printing system developed by <a href="http://www.apple.com/">Apple Inc.</a> for OS X<sup>®</sup> and other UNIX<sup>®</sup>-like operating systems.</p>
+ <p>CUPS is the standards-based, open source printing system developed by <a href="http://www.apple.com/">Apple Inc.</a> for macOS<sup>®</sup> and other UNIX<sup>®</sup>-like operating systems.</p>
</div>
<div class="row">
<div class="thirds">
<div class="body">
<div class="row">
<h1>CUPS @CUPS_VERSION@</h1>
- <p>CUPS は、OS X<sup>®</sup> およびその他の UNIX <SUP>®</sup> 系 OS のために、<a href="http://www.apple.com/">Apple Inc.</a> によって開発された標準ベースのオープンソース印刷システムです。</p>
+ <p>CUPS は、macOS<sup>®</sup> およびその他の UNIX <SUP>®</sup> 系 OS のために、<a href="http://www.apple.com/">Apple Inc.</a> によって開発された標準ベースのオープンソース印刷システムです。</p>
</div>
<div class="row">
<div class="thirds">
<div class="body">
<div class="row">
<h1>CUPS @CUPS_VERSION@</h1>
-
- <p>CUPS é o sistema de impressão baseado em padrões e de código aberto desenvolvido pela <a href="http://www.apple.com/">Apple Inc.</a> para OS X<sup>®</sup> e outros sistemas operacionais similares ao UNIX<sup>®</sup>.</p>
+
+ <p>CUPS é o sistema de impressão baseado em padrões e de código aberto desenvolvido pela <a href="http://www.apple.com/">Apple Inc.</a> para macOS<sup>®</sup> e outros sistemas operacionais similares ao UNIX<sup>®</sup>.</p>
</div>
<div class="row">
<div class="thirds">
<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>
-(OS X) that produce CUPS raster files and printer driver filters that
+(macOS) 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/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/macOS 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/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/macOS 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>
*
* If there are no recent errors, NULL is returned.
*
- * @since CUPS 1.3/OS X 10.5@
+ * @since CUPS 1.3/macOS 10.5@
*/
const char * /* O - Last error */
* @code pop@, @code roll@, @code setpagedevice@, and @code stopped@ operators
* are supported.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
int /* O - 0 on success, -1 on failure */
#ifdef __APPLE__
/*
- * cupsInteger0 is also used for the total page count on OS X; set an
+ * cupsInteger0 is also used for the total page count on macOS; set an
* uncommon default value so we can tell if the driver is using cupsInteger0.
*/
<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 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 macOS 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>
-<h2 class='title'><a name='MACOSX'>Adding OS X Features</a></h2>
+<h2 class='title'><a name='MACOSX'>Adding macOS Features</a></h2>
-<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>
+<p>macOS 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 (OS X 10.5 and higher) also
+ 8 bits per color. CUPS 1.2 and higher (macOS 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
<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 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 macOS 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 OS X 10.5</span>Custom Color Matching Support</h3>
+<h3><span class='info'>Since macOS 10.5</span>Custom Color Matching Support</h3>
-<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>
+<p>macOS 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 OS X Features</a></h2>
+<h2 class='title'><a name='MACOSX'>Adding macOS Features</a></h2>
-<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>
+<p>macOS 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
* The "sheet_back" argument specifies a "pwg-raster-document-sheet-back" value
* to apply for the back side of a page. Pass @code NULL@ for the front side.
*
- * @since CUPS 2.2@
+ * @since CUPS 2.2/macOS 10.12@
*/
int /* O - 1 on success, 0 on failure */
* 'cupsRasterReadHeader2()' - Read a raster page header and store it in a
* version 2 page header structure.
*
- * @since CUPS 1.2/OS X 10.5@
+ * @since CUPS 1.2/macOS 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/OS X 10.5@
+ * @since CUPS 1.2/macOS 10.5@
*/
unsigned /* O - 1 on success, 0 on failure */
<p>CUPS supports several methods of auto-configuration via PPD keywords.</p>
-<h3><span class='info'>OS X 10.5</span><a name='APAutoSetupTool'>APAutoSetupTool</a></h3>
+<h3><span class='info'>macOS 10.5</span><a name='APAutoSetupTool'>APAutoSetupTool</a></h3>
<p class='summary'>*APAutoSetupTool: "/LibraryPrinters/vendor/filename"</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>This macOS 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'>OS X 10.2/CUPS 1.4</span><a name='QUERYKEYWORD'>?MainKeyword</a></h3>
+<h3><span class='info'>macOS 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'>OS X 10.4/CUPS 1.5</span><a name='OID'>OIDMainKeyword</a></h3>
+<h3><span class='info'>macOS 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>
<h2 class='title'><a name='PROFILES'>Color Profiles</a></h2>
-<p>CUPS supports three types of color profiles. The first type is based on sRGB and is used by the standard CUPS raster filters and GPL Ghostscript. The second type is based on ICC profiles and is used by the Quartz-based filters on MacOS X. The final type is based on well-known colorspaces such as sRGB and Adobe RGB.</p>
+<p>CUPS supports three types of color profiles. The first type is based on sRGB and is used by the standard CUPS raster filters and GPL Ghostscript. The second type is based on ICC profiles and is used by the Quartz-based filters on macOS. The final type is based on well-known colorspaces such as sRGB and Adobe RGB.</p>
<blockquote><b>Note:</b>
<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 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 macOS.</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'>OS X 10.3/CUPS 1.2</span><a name='cupsICCProfile'>cupsICCProfile</a></h3>
+<h3><span class='info'>macOS 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'>OS X 10.4</span><a name='APCustom'>Custom Color Matching Support</a></h3>
+<h3><span class='info'>macOS 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 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 macOS 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 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>
+<p>Prior to macOS 10.6, the default RGB color space was Apple's "GenericRGB". The new default in macOS 10.6 and later is "sRGB". For more information, see <a href="http://support.apple.com/kb/HT3712">"macOS v10.6: About gamma 2.2"</a> on Apple's support site.</p>
</blockquote>
-<h4><span class='info'>OS X 10.5</span><a name='APCustomColorMatchingName'>APCustomColorMatchingName</a></h4>
+<h4><span class='info'>macOS 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'>OS X 10.5</span><a name='APCustomColorMatchingProfile'>APCustomColorMatchingProfile</a></h4>
+<h4><span class='info'>macOS 10.5</span><a name='APCustomColorMatchingProfile'>APCustomColorMatchingProfile</a></h4>
<p class='summary'>*APCustomColorMatchingProfile: name</p>
*APCustomColorMatchingProfile: AdobeRGB
</pre>
-<h4><span class='info'>OS X 10.5</span><a name='APDefaultCustomColorMatchingProfile'>APDefaultCustomColorMatchingProfile</a></h4>
+<h4><span class='info'>macOS 10.5</span><a name='APDefaultCustomColorMatchingProfile'>APDefaultCustomColorMatchingProfile</a></h4>
<p class='summary'>*APDefaultCustomColorMatchingProfile: name</p>
*APDefaultCustomColorMatchingProfile: sRGB
</pre>
-<h4><span class='info'>OS X 10.4</span><a name='APSupportsCustomColorMatching'>APSupportsCustomColorMatching</a></h4>
+<h4><span class='info'>macOS 10.4</span><a name='APSupportsCustomColorMatching'>APSupportsCustomColorMatching</a></h4>
<p class='summary'>*APSupportsCustomColorMatching: boolean</p>
</blockquote>
-<h3><span class='info'>CUPS 1.4/OS X 10.6</span><a name='cupsUIConstraints'>cupsUIConstraints</a></h3>
+<h3><span class='info'>CUPS 1.4/macOS 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/OS X 10.6</span><a name='cupsUIResolver'>cupsUIResolver</a></h3>
+<h3><span class='info'>CUPS 1.4/macOS 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/OS X 10.6</span>Custom Options</a></h2>
+<h2 class='title'><a name='OPTIONS'><span class="info">CUPS 1.3/macOS 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/OS X 10.6</span><a name='cupsMediaQualifier2'>cupsMediaQualifier2</a></h3>
+<h3><span class='info'>CUPS 1.4/macOS 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/OS X 10.6</span><a name='cupsMediaQualifier3'>cupsMediaQualifier3</a></h3>
+<h3><span class='info'>CUPS 1.4/macOS 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/OS X 10.6</span><a name='cupsMinSize'>cupsMinSize</a></h3>
+<h3><span class='info'>CUPS 1.4/macOS 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/OS X 10.6</span><a name='cupsMaxSize'>cupsMaxSize</a></h3>
+<h3><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsMaxSize'>cupsMaxSize</a></h3>
<p class='summary'>*cupsMaxSize .Qualifier2.Qualifier3: "width length"<br>
*cupsMaxSize .Qualifier2.: "width length"<br>
</pre>
-<h3><span class='info'>CUPS 1.4/OS X 10.6</span><a name='cupsPageSizeCategory'>cupsPageSizeCategory</a></h3>
+<h3><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsPageSizeCategory'>cupsPageSizeCategory</a></h3>
<p class="summary">*cupsPageSizeCategory name/text: "name name2 ... nameN"</p>
-<p>This keyword lists related paper size names that should be grouped together in the Print or Page Setup dialogs. The "name" portion of the keyword specifies the root/default size for the grouping. On OS X the grouped paper sizes are shown in a submenu of the main paper size. When omitted, sizes with the same dimensions are automatically grouped together, for example "Letter" and "Letter.Borderless".</p>
+<p>This keyword lists related paper size names that should be grouped together in the Print or Page Setup dialogs. The "name" portion of the keyword specifies the root/default size for the grouping. On macOS the grouped paper sizes are shown in a submenu of the main paper size. When omitted, sizes with the same dimensions are automatically grouped together, for example "Letter" and "Letter.Borderless".</p>
<p>Example:</p>
<h2 class='title'><a name='ATTRIBUTES'>General Attributes</a></h2>
-<h3><span class='info'>CUPS 1.3/OS X 10.5</span><a name='cupsBackSide'>cupsBackSide</a></h3>
+<h3><span class='info'>CUPS 1.3/macOS 10.5</span><a name='cupsBackSide'>cupsBackSide</a></h3>
<p class='summary'>*cupsBackSide: keyword</p>
</table>
</div>
-<p><em>* - Not supported in OS X 10.5.x and earlier</em></p>
+<p><em>* - Not supported in macOS 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/OS X 10.6</span><a name='cupsCommands'>cupsCommands</a></h3>
+<h3><span class='info'>CUPS 1.4/macOS 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/OS X 10.5</span><a name='cupsEvenDuplex'>cupsEvenDuplex</a></h3>
+<h3><span class='info'>CUPS 1.3/macOS 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 OS X and Ghostscript,
+<p>Due to implementation differences between macOS 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 OS X and <code>Flipped</code> with
+of <code>Rotated</code> on macOS and <code>Flipped</code> with
Ghostscript.</p>
<p>The default value is <code>false</code>.</p>
<blockquote><b>Note:</b>
-<p>OS X drivers that previously used
+<p>macOS 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/OS X 10.5</span><a name='cupsIPPFinishings'>cupsIPPFinishings</a></h3>
+<h3><span class='info'>CUPS 1.3/macOS 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/OS X 10.5</span><a name='cupsIPPReason'>cupsIPPReason</a></h3>
+<h3><span class='info'>CUPS 1.3/macOS 10.5</span><a name='cupsIPPReason'>cupsIPPReason</a></h3>
<p class='summary'>*cupsIPPReason reason/Reason Text: "optional URIs"</p>
</pre>
-<h3><span class='info'>CUPS 1.7/OS X 10.9</span><a name='cupsJobAccountId'>cupsJobAccountId</a></h3>
+<h3><span class='info'>CUPS 1.7/macOS 10.9</span><a name='cupsJobAccountId'>cupsJobAccountId</a></h3>
<p class='summary'>*cupsJobAccountId: boolean</p>
</pre>
-<h3><span class='info'>CUPS 1.7/OS X 10.9</span><a name='cupsJobAccountingUserId'>cupsJobAccountingUserId</a></h3>
+<h3><span class='info'>CUPS 1.7/macOS 10.9</span><a name='cupsJobAccountingUserId'>cupsJobAccountingUserId</a></h3>
<p class='summary'>*cupsJobAccountingUserId: boolean</p>
</pre>
-<h3><span class='info'>CUPS 1.7/OS X 10.9</span><a name='cupsJobPassword'>cupsJobPassword</a></h3>
+<h3><span class='info'>CUPS 1.7/macOS 10.9</span><a name='cupsJobPassword'>cupsJobPassword</a></h3>
<p class='summary'>*cupsJobPassword: "format"</p>
</pre>
-<h3><span class='info'>CUPS 1.2/OS X 10.5</span><a name='cupsLanguages'>cupsLanguages</a></h3>
+<h3><span class='info'>CUPS 1.2/macOS 10.5</span><a name='cupsLanguages'>cupsLanguages</a></h3>
<p class='summary'>*cupsLanguages: "locale list"</p>
</pre>
-<h3><span class='info'>CUPS 1.7/OS X 10.9</span><a name='cupsMandatory'>cupsMandatory</a></h3>
+<h3><span class='info'>CUPS 1.7/macOS 10.9</span><a name='cupsMandatory'>cupsMandatory</a></h3>
<p class='summary'>*cupsMandatory: "attribute1 attribute2 ... attributeN"</p>
*cupsManualCopies: true
</pre>
-<h3><span class='info'>CUPS 1.4/OS X 10.6</span><a name='cupsMarkerName'>cupsMarkerName</a></h3>
+<h3><span class='info'>CUPS 1.4/macOS 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/OS X 10.6</span><a name='cupsMarkerNotice'>cupsMarkerNotice</a></h3>
+<h3><span class='info'>CUPS 1.4/macOS 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/OS X 10.8</span><a name='cupsMaxCopies'>cupsMaxCopies</a></h3>
+<h3><span class='info'>CUPS 1.6/macOS 10.8</span><a name='cupsMaxCopies'>cupsMaxCopies</a></h3>
<p class='summary'>*cupsMaxCopies: integer</p>
</pre>
-<h3><span class='info'>CUPS 1.3/OS X 10.5</span><a name='cupsPJLCharset'>cupsPJLCharset</a></h3>
+<h3><span class='info'>CUPS 1.3/macOS 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/OS X 10.6</span><a name='cupsPJLDisplay'>cupsPJLDisplay</a></h3>
+<h3><span class='info'>CUPS 1.4/macOS 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/OS X 10.5</span><a name='cupsPortMonitor'>cupsPortMonitor</a></h3>
+<h3><span class='info'>CUPS 1.2/macOS 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/OS X 10.5</span><a name='cupsPreFilter'>cupsPreFilter</a></h3>
+<h3><span class='info'>CUPS 1.3/macOS 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/OS X 10.6</span><a name='cupsSNMPSupplies'>cupsSNMPSupplies</a></h3>
+<h3><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsSNMPSupplies'>cupsSNMPSupplies</a></h3>
<p class='summary'>*cupsSNMPSupplies: boolean</p>
</pre>
-<h3><span class="info">CUPS 1.6/OS X 10.8</span><a name="JCLToPDFInterpreter">JCLToPDFInterpreter</a></h3>
+<h3><span class="info">CUPS 1.6/macOS 10.8</span><a name="JCLToPDFInterpreter">JCLToPDFInterpreter</a></h3>
<p class="summary">*JCLToPDFInterpreter: "JCL"</p>
</pre>
-<h2 class='title'><a name='MACOSX'>OS X Attributes</a></h2>
+<h2 class='title'><a name='MACOSX'>macOS Attributes</a></h2>
-<h3><span class='info'>OS X 10.3</span><a name='APDialogExtension'>APDialogExtension</a></h3>
+<h3><span class='info'>macOS 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 OS X 10.5, each plug-in must be compiled "4-way fat"
+<p>Starting with macOS 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'>OS X 10.4</span><a name='APDuplexRequiresFlippedMargin'>APDuplexRequiresFlippedMargin</a></h3>
+<h3><span class='info'>macOS 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'>OS X 10.6</span><a name='APICADriver'>APICADriver</a></h3>
+<h3><span class='info'>macOS 10.6</span><a name='APICADriver'>APICADriver</a></h3>
<p class='summary'>*APICADriver: boolean</p>
*APScanAppBundleID: "com.apple.ImageCaptureApp"
</pre>
-<h3><span class='info'>OS X 10.3</span><a name='APPrinterIconPath'>APPrinterIconPath</a></h3>
+<h3><span class='info'>macOS 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'>OS X 10.4</span><a name='APPrinterLowInkTool'>APPrinterLowInkTool</a></h3>
+<h3><span class='info'>macOS 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'>OS X 10.5</span><a name='APPrinterPreset'>APPrinterPreset</a></h3>
+<h3><span class='info'>macOS 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'>OS X 10.3</span><a name='APPrinterUtilityPath'>APPrinterUtilityPath</a></h3>
+<h3><span class='info'>macOS 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'>OS X 10.6</span><a name='APScannerOnly'>APScannerOnly</a></h3>
+<h3><span class='info'>macOS 10.6</span><a name='APScannerOnly'>APScannerOnly</a></h3>
<p class='summary'>*APScannerOnly: boolean</p>
*APScannerOnly: True
</pre>
-<h3><span class='info'>OS X 10.3</span><a name='APScanAppBundleID'>APScanAppBundleID</a></h3>
+<h3><span class='info'>macOS 10.3</span><a name='APScanAppBundleID'>APScanAppBundleID</a></h3>
<p class='summary'>*APScanAppBundleID: "bundle ID"</p>
<ul>
- <li>Added missing OS X <tt>AP</tt> keywords.</li>
+ <li>Added missing macOS <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>
#
# po2strings - A simple utility which uses iconv to convert GNU gettext
-# message catalogs to OS X .strings files.
+# message catalogs to macOS .strings files.
#
# po2strings filename.po filename.strings
#
#
-# strings2po - A simple utility which uses iconv to convert OS X .strings files
+# strings2po - A simple utility which uses iconv to convert macOS .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: 2016-05-02 18:01-0400\n"
+"POT-Creation-Date: 2016-06-20 15:18-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgid " REF: Pages 52-54, section 5.2."
msgstr ""
-#: berkeley/lpq.c:526
+#: berkeley/lpq.c:537
#, c-format
msgid " %-39.39s %.0f bytes"
msgstr ""
msgstr ""
#: ppdc/ppdc.cxx:452
-msgid " --lf End lines with LF (UNIX/Linux/OS X)."
+msgid " --lf End lines with LF (UNIX/Linux/macOS)."
msgstr ""
#: scheduler/cupsfilter.c:1481
msgid " -E Test with HTTP Upgrade to TLS."
msgstr ""
-#: scheduler/main.c:2194
+#: scheduler/main.c:2200
msgid " -F Run in the foreground but detach from console."
msgstr ""
msgid " -c cups-files.conf Set cups-files.conf file to use."
msgstr ""
-#: scheduler/main.c:2192
+#: scheduler/main.c:2198
msgid " -c cupsd.conf Set cupsd.conf file to use."
msgstr ""
msgid " -e Use every filter from the PPD file."
msgstr ""
-#: scheduler/main.c:2193
+#: scheduler/main.c:2199
msgid " -f Run in the foreground."
msgstr ""
msgid " -f filename Set default request filename."
msgstr ""
-#: scheduler/main.c:2195
+#: scheduler/main.c:2201
msgid " -h Show this usage message."
msgstr ""
msgid " -l Produce plain text output."
msgstr ""
-#: scheduler/main.c:2196
+#: scheduler/main.c:2202
msgid " -l Run cupsd on demand."
msgstr ""
msgid " -s Print service name if true."
msgstr ""
-#: scheduler/main.c:2197
+#: scheduler/main.c:2203
msgid " -s cups-files.conf Set cups-files.conf file to use."
msgstr ""
msgid " -t Test PPDs instead of generating them."
msgstr ""
-#: scheduler/main.c:2198
+#: scheduler/main.c:2204
msgid " -t Test the configuration file."
msgstr ""
msgid "\"%s\": Bad uriScheme value \"%s\" - bad length %d (RFC 2911 section 4.1.6)."
msgstr ""
-#: berkeley/lpq.c:531
+#: berkeley/lpq.c:542
#, c-format
msgid "%-7s %-7.7s %-7d %-31.31s %.0f bytes"
msgstr ""
msgid "%s accepting requests since %s"
msgstr ""
-#: scheduler/ipp.c:10237
+#: scheduler/ipp.c:10254
#, c-format
msgid "%s cannot be changed."
msgstr ""
msgid "%s is not implemented by the CUPS version of lpc."
msgstr ""
-#: berkeley/lpq.c:616
+#: berkeley/lpq.c:627
#, c-format
msgid "%s is not ready"
msgstr ""
-#: berkeley/lpq.c:609
+#: berkeley/lpq.c:620
#, c-format
msgid "%s is ready"
msgstr ""
-#: berkeley/lpq.c:612
+#: berkeley/lpq.c:623
#, c-format
msgid "%s is ready and printing"
msgstr ""
msgid "%s/%s not accepting requests since %s -"
msgstr ""
-#: berkeley/lpq.c:524
+#: berkeley/lpq.c:535
#, c-format
msgid "%s: %-33.33s [job %d localhost]"
msgstr ""
#. TRANSLATORS: Message is "subject: error"
-#: cups/langprintf.c:75 scheduler/cupsfilter.c:724 systemv/lpadmin.c:783
-#: systemv/lpadmin.c:834 systemv/lpadmin.c:884 systemv/lpadmin.c:940
-#: systemv/lpadmin.c:1038 systemv/lpadmin.c:1090 systemv/lpadmin.c:1146
-#: systemv/lpadmin.c:1561
+#: cups/langprintf.c:75 scheduler/cupsfilter.c:724 systemv/lpadmin.c:772
+#: systemv/lpadmin.c:823 systemv/lpadmin.c:873 systemv/lpadmin.c:929
+#: systemv/lpadmin.c:1027 systemv/lpadmin.c:1079 systemv/lpadmin.c:1135
+#: systemv/lpadmin.c:1550
#, c-format
msgid "%s: %s"
msgstr ""
-#: systemv/cancel.c:299 systemv/cancel.c:362
+#: systemv/cancel.c:304 systemv/cancel.c:368
#, c-format
msgid "%s: %s failed: %s"
msgstr ""
-#: systemv/lpadmin.c:1196
+#: systemv/lpadmin.c:1185
#, c-format
msgid "%s: Bad printer URI \"%s\"."
msgstr ""
msgid "%s: Bad version %s for \"-V\"."
msgstr ""
-#: systemv/cupsaccept.c:62
+#: systemv/cupsaccept.c:63
#, c-format
msgid "%s: Don't know what to do."
msgstr ""
-#: berkeley/lpq.c:223 berkeley/lpr.c:356 systemv/lp.c:600
+#: berkeley/lpq.c:234 berkeley/lpr.c:365 systemv/lp.c:606
#, c-format
msgid "%s: Error - %s environment variable names non-existent destination \"%s\"."
msgstr ""
-#: berkeley/lpq.c:131 berkeley/lpq.c:201 berkeley/lpr.c:228 berkeley/lpr.c:331
-#: systemv/lp.c:155 systemv/lp.c:575 systemv/lp.c:695 systemv/lp.c:744
-#: systemv/lpstat.c:193 systemv/lpstat.c:239 systemv/lpstat.c:330
-#: systemv/lpstat.c:359 systemv/lpstat.c:383 systemv/lpstat.c:442
+#: berkeley/lpq.c:139 berkeley/lpq.c:212 berkeley/lpr.c:229 berkeley/lpr.c:340
+#: systemv/lp.c:161 systemv/lp.c:581 systemv/lp.c:701 systemv/lp.c:750
+#: systemv/lpstat.c:190 systemv/lpstat.c:235 systemv/lpstat.c:333
+#: systemv/lpstat.c:360 systemv/lpstat.c:382 systemv/lpstat.c:442
#: systemv/lpstat.c:508 systemv/lpstat.c:569 systemv/lpstat.c:694
#: systemv/lpstat.c:878 systemv/lpstat.c:1139 systemv/lpstat.c:1337
#: systemv/lpstat.c:1577
msgid "%s: Error - add '/version=1.1' to server name."
msgstr ""
-#: systemv/lp.c:232
+#: systemv/lp.c:238
#, c-format
msgid "%s: Error - bad job ID."
msgstr ""
-#: systemv/lp.c:220
+#: systemv/lp.c:227
#, c-format
msgid "%s: Error - cannot print files and alter jobs simultaneously."
msgstr ""
-#: systemv/lp.c:513
+#: systemv/lp.c:518
#, c-format
msgid "%s: Error - cannot print from stdin if files or a job ID are provided."
msgstr ""
-#: systemv/lp.c:462
+#: berkeley/lpr.c:254 systemv/lp.c:280
+#, c-format
+msgid "%s: Error - copies must be 1 or more."
+msgstr ""
+
+#: systemv/lp.c:470
#, c-format
msgid "%s: Error - expected character set after \"-S\" option."
msgstr ""
-#: systemv/lp.c:481
+#: systemv/lp.c:489
#, c-format
msgid "%s: Error - expected content type after \"-T\" option."
msgstr ""
-#: berkeley/lpr.c:243
+#: berkeley/lpr.c:245
#, c-format
msgid "%s: Error - expected copies after \"-#\" option."
msgstr ""
-#: systemv/lp.c:265
+#: systemv/lp.c:271
#, c-format
msgid "%s: Error - expected copies after \"-n\" option."
msgstr ""
-#: berkeley/lpr.c:204
+#: berkeley/lpr.c:207
#, c-format
msgid "%s: Error - expected destination after \"-P\" option."
msgstr ""
-#: systemv/lp.c:130
+#: systemv/lp.c:137
#, c-format
msgid "%s: Error - expected destination after \"-d\" option."
msgstr ""
-#: systemv/lp.c:169
+#: systemv/lp.c:178
#, c-format
msgid "%s: Error - expected form after \"-f\" option."
msgstr ""
-#: systemv/lp.c:392
+#: systemv/lp.c:406
#, c-format
msgid "%s: Error - expected hold name after \"-H\" option."
msgstr ""
-#: berkeley/lpr.c:98
+#: berkeley/lpr.c:104
#, c-format
msgid "%s: Error - expected hostname after \"-H\" option."
msgstr ""
-#: berkeley/lpq.c:167 berkeley/lprm.c:117 systemv/cancel.c:118
-#: systemv/cupsaccept.c:117 systemv/lp.c:190 systemv/lpstat.c:264
+#: berkeley/lpq.c:173 berkeley/lprm.c:124 systemv/cancel.c:124
+#: systemv/cupsaccept.c:127 systemv/lp.c:198 systemv/lpstat.c:269
#, c-format
msgid "%s: Error - expected hostname after \"-h\" option."
msgstr ""
-#: systemv/lp.c:372
+#: systemv/lp.c:386
#, c-format
msgid "%s: Error - expected mode list after \"-y\" option."
msgstr ""
-#: berkeley/lpr.c:266
+#: berkeley/lpr.c:275
#, c-format
msgid "%s: Error - expected name after \"-%c\" option."
msgstr ""
-#: berkeley/lpr.c:148 systemv/lp.c:289
+#: berkeley/lpr.c:156 systemv/lp.c:301
#, c-format
msgid "%s: Error - expected option=value after \"-o\" option."
msgstr ""
-#: systemv/lp.c:442
+#: systemv/lp.c:449
#, c-format
msgid "%s: Error - expected page list after \"-P\" option."
msgstr ""
-#: systemv/lp.c:309
+#: systemv/lp.c:322
#, c-format
msgid "%s: Error - expected priority after \"-%c\" option."
msgstr ""
-#: systemv/cupsaccept.c:135
+#: systemv/cupsaccept.c:146
#, c-format
msgid "%s: Error - expected reason text after \"-r\" option."
msgstr ""
-#: systemv/lp.c:355
+#: systemv/lp.c:367
#, c-format
msgid "%s: Error - expected title after \"-t\" option."
msgstr ""
-#: berkeley/lpq.c:95 berkeley/lpr.c:79 berkeley/lprm.c:98 systemv/cancel.c:89
-#: systemv/cupsaccept.c:95 systemv/lp.c:108 systemv/lpadmin.c:424
-#: systemv/lpstat.c:122
+#: berkeley/lpq.c:102 berkeley/lpr.c:84 berkeley/lprm.c:104
+#: systemv/cancel.c:94 systemv/cupsaccept.c:104 systemv/lp.c:114
+#: systemv/lpadmin.c:423 systemv/lpstat.c:129
#, c-format
msgid "%s: Error - expected username after \"-U\" option."
msgstr ""
-#: systemv/cancel.c:139
+#: systemv/cancel.c:146
#, c-format
msgid "%s: Error - expected username after \"-u\" option."
msgstr ""
-#: berkeley/lpr.c:120
+#: berkeley/lpr.c:129
#, c-format
msgid "%s: Error - expected value after \"-%c\" option."
msgstr ""
-#: systemv/lpstat.c:142 systemv/lpstat.c:156
+#: systemv/lpstat.c:149 systemv/lpstat.c:158
#, c-format
msgid "%s: Error - need \"completed\", \"not-completed\", or \"all\" after \"-W\" option."
msgstr ""
-#: berkeley/lpq.c:228 berkeley/lpr.c:361 systemv/lp.c:605
+#: berkeley/lpq.c:239 berkeley/lpr.c:370 systemv/lp.c:611
#, c-format
msgid "%s: Error - no default destination available."
msgstr ""
-#: systemv/lp.c:331
+#: systemv/lp.c:342
#, c-format
msgid "%s: Error - priority must be between 1 and 100."
msgstr ""
-#: berkeley/lpr.c:364 systemv/lp.c:608
+#: berkeley/lpr.c:373 systemv/lp.c:614
#, c-format
msgid "%s: Error - scheduler not responding."
msgstr ""
-#: berkeley/lpr.c:309 systemv/lp.c:545
+#: berkeley/lpr.c:316 systemv/lp.c:550
#, c-format
msgid "%s: Error - too many files - \"%s\"."
msgstr ""
-#: berkeley/lpr.c:291 systemv/lp.c:528
+#: berkeley/lpr.c:298 systemv/lp.c:533
#, c-format
msgid "%s: Error - unable to access \"%s\" - %s"
msgstr ""
-#: berkeley/lpr.c:407 systemv/lp.c:639
+#: berkeley/lpr.c:416 systemv/lp.c:645
#, c-format
msgid "%s: Error - unable to queue from stdin - %s."
msgstr ""
-#: berkeley/lprm.c:81 berkeley/lprm.c:166 systemv/cancel.c:216
+#: berkeley/lprm.c:86 berkeley/lprm.c:173 systemv/cancel.c:221
#, c-format
msgid "%s: Error - unknown destination \"%s\"."
msgstr ""
-#: berkeley/lpq.c:135
+#: berkeley/lpq.c:141
#, c-format
msgid "%s: Error - unknown destination \"%s/%s\"."
msgstr ""
-#: berkeley/lpr.c:277 berkeley/lprm.c:133 systemv/cancel.c:157
-#: systemv/cupsaccept.c:158 systemv/lp.c:504 systemv/lpstat.c:454
+#: berkeley/lpr.c:284 berkeley/lprm.c:139 systemv/cancel.c:162
+#: systemv/cupsaccept.c:155 systemv/lp.c:508 systemv/lpstat.c:452
#, c-format
msgid "%s: Error - unknown option \"%c\"."
msgstr ""
-#: systemv/cupsaccept.c:151 systemv/lp.c:495
+#: systemv/lp.c:500
#, c-format
msgid "%s: Error - unknown option \"%s\"."
msgstr ""
-#: systemv/lp.c:209
+#: systemv/lp.c:218
#, c-format
msgid "%s: Expected job ID after \"-i\" option."
msgstr ""
msgid "%s: Missing version for \"-V\"."
msgstr ""
-#: systemv/lp.c:419
+#: systemv/lp.c:426
#, c-format
msgid "%s: Need job ID (\"-i jobid\") before \"-H restart\"."
msgstr ""
msgid "%s: No filter to convert from %s/%s to %s/%s."
msgstr ""
-#: systemv/cupsaccept.c:192
+#: systemv/cupsaccept.c:189
#, c-format
msgid "%s: Operation failed: %s"
msgstr ""
-#: berkeley/lpq.c:81 berkeley/lpr.c:65 berkeley/lprm.c:61 systemv/cancel.c:76
-#: systemv/cupsaccept.c:82 systemv/cupsaddsmb.c:78 systemv/lp.c:94
-#: systemv/lpadmin.c:228 systemv/lpinfo.c:80 systemv/lpmove.c:66
-#: systemv/lpstat.c:86 test/ipptool.c:282 test/ipptool.c:326
+#: berkeley/lpq.c:87 berkeley/lpr.c:69 berkeley/lprm.c:65 systemv/cancel.c:79
+#: systemv/cupsaccept.c:89 systemv/cupsaddsmb.c:78 systemv/lp.c:99
+#: systemv/lpadmin.c:232 systemv/lpinfo.c:192 systemv/lpmove.c:70
+#: systemv/lpstat.c:91 test/ipptool.c:282 test/ipptool.c:326
#, c-format
msgid "%s: Sorry, no encryption support."
msgstr ""
-#: systemv/lpadmin.c:1203
+#: systemv/lpadmin.c:1192
#, c-format
msgid "%s: Unable to connect to \"%s:%d\": %s"
msgstr ""
-#: berkeley/lpq.c:282 scheduler/cupsfilter.c:1273 systemv/cancel.c:239
+#: berkeley/lpq.c:293 scheduler/cupsfilter.c:1273 systemv/cancel.c:244
#: systemv/cupsaddsmb.c:136 systemv/cupsaddsmb.c:163
#, c-format
msgid "%s: Unable to connect to server."
msgstr ""
-#: systemv/cancel.c:322
+#: systemv/cancel.c:328
#, c-format
msgid "%s: Unable to contact server."
msgstr ""
-#: systemv/lpadmin.c:1216
+#: systemv/lpadmin.c:1205
#, c-format
msgid "%s: Unable to create PPD file: %s"
msgstr ""
msgid "%s: Unable to read MIME database from \"%s\" or \"%s\"."
msgstr ""
-#: systemv/lpadmin.c:1187
+#: systemv/lpadmin.c:1176
#, c-format
msgid "%s: Unable to resolve \"%s\"."
msgstr ""
-#: berkeley/lpq.c:138 systemv/lpstat.c:573
+#: systemv/lpinfo.c:238
+#, c-format
+msgid "%s: Unknown argument \"%s\"."
+msgstr ""
+
+#: berkeley/lpq.c:143 systemv/lpstat.c:573
#, c-format
msgid "%s: Unknown destination \"%s\"."
msgstr ""
msgid "%s: Unknown destination MIME type %s/%s."
msgstr ""
-#: scheduler/cupsfilter.c:1477
+#: scheduler/cupsfilter.c:1477 systemv/lpinfo.c:231 systemv/lpmove.c:95
#, c-format
msgid "%s: Unknown option \"%c\"."
msgstr ""
msgid "%s: Unknown source MIME type %s/%s."
msgstr ""
-#: berkeley/lpr.c:134
+#: berkeley/lpr.c:142
#, c-format
msgid "%s: Warning - \"%c\" format modifier not supported - output may not be correct."
msgstr ""
-#: systemv/lp.c:469
+#: systemv/lp.c:475
#, c-format
msgid "%s: Warning - character set option ignored."
msgstr ""
-#: systemv/lp.c:488
+#: systemv/lp.c:494
#, c-format
msgid "%s: Warning - content type option ignored."
msgstr ""
-#: systemv/lp.c:176
+#: systemv/lp.c:183
#, c-format
msgid "%s: Warning - form option ignored."
msgstr ""
-#: systemv/lp.c:379
+#: systemv/lp.c:391
#, c-format
msgid "%s: Warning - mode option ignored."
msgstr ""
msgid "A Samba username is required to export printer drivers"
msgstr ""
-#: scheduler/ipp.c:2264
+#: scheduler/ipp.c:2281
#, c-format
msgid "A class named \"%s\" already exists."
msgstr ""
msgid "Attempt to set %s printer-state to bad value %d."
msgstr ""
-#: scheduler/ipp.c:5368 scheduler/ipp.c:5394
+#: scheduler/ipp.c:5385 scheduler/ipp.c:5411
#, c-format
msgid "Attribute \"%s\" is in the wrong group."
msgstr ""
-#: scheduler/ipp.c:5370 scheduler/ipp.c:5396
+#: scheduler/ipp.c:5387 scheduler/ipp.c:5413
#, c-format
msgid "Attribute \"%s\" is the wrong value type."
msgstr ""
msgid "B9"
msgstr ""
-#: scheduler/ipp.c:11182
+#: scheduler/ipp.c:11199
#, c-format
msgid "Bad 'document-format' value \"%s\"."
msgstr ""
msgid "Bad PPD cache file."
msgstr ""
-#: scheduler/ipp.c:2627
+#: scheduler/ipp.c:2644
msgid "Bad PPD file."
msgstr ""
msgid "Bad custom parameter"
msgstr ""
-#: cups/http-support.c:1600 scheduler/ipp.c:2362
+#: cups/http-support.c:1600 scheduler/ipp.c:2379
#, c-format
msgid "Bad device-uri \"%s\"."
msgstr ""
-#: scheduler/ipp.c:2401
+#: scheduler/ipp.c:2418
#, c-format
msgid "Bad device-uri scheme \"%s\"."
msgstr ""
-#: scheduler/ipp.c:8394 scheduler/ipp.c:8412 scheduler/ipp.c:9638
+#: scheduler/ipp.c:8409 scheduler/ipp.c:8427 scheduler/ipp.c:9655
#, c-format
msgid "Bad document-format \"%s\"."
msgstr ""
-#: scheduler/ipp.c:9656
+#: scheduler/ipp.c:9673
#, c-format
msgid "Bad document-format-default \"%s\"."
msgstr ""
msgid "Bad job-name value: Wrong type or count."
msgstr ""
-#: scheduler/ipp.c:10252
+#: scheduler/ipp.c:10269
msgid "Bad job-priority value."
msgstr ""
msgid "Bad job-sheets value type."
msgstr ""
-#: scheduler/ipp.c:10282
+#: scheduler/ipp.c:10299
msgid "Bad job-state value."
msgstr ""
-#: scheduler/ipp.c:2951 scheduler/ipp.c:3413 scheduler/ipp.c:6177
-#: scheduler/ipp.c:6324 scheduler/ipp.c:7823 scheduler/ipp.c:8092
-#: scheduler/ipp.c:8956 scheduler/ipp.c:9180 scheduler/ipp.c:9532
-#: scheduler/ipp.c:10145
+#: scheduler/ipp.c:2968 scheduler/ipp.c:3430 scheduler/ipp.c:6194
+#: scheduler/ipp.c:6341 scheduler/ipp.c:7838 scheduler/ipp.c:8107
+#: scheduler/ipp.c:8973 scheduler/ipp.c:9197 scheduler/ipp.c:9549
+#: scheduler/ipp.c:10162
#, c-format
msgid "Bad job-uri \"%s\"."
msgstr ""
-#: scheduler/ipp.c:2030 scheduler/ipp.c:5716
+#: scheduler/ipp.c:2047 scheduler/ipp.c:5733
#, c-format
msgid "Bad notify-pull-method \"%s\"."
msgstr ""
-#: scheduler/ipp.c:1994 scheduler/ipp.c:5680
+#: scheduler/ipp.c:2011 scheduler/ipp.c:5697
#, c-format
msgid "Bad notify-recipient-uri \"%s\"."
msgstr ""
msgid "Bad port number in URI"
msgstr ""
-#: scheduler/ipp.c:2444
+#: scheduler/ipp.c:2461
#, c-format
msgid "Bad port-monitor \"%s\"."
msgstr ""
-#: scheduler/ipp.c:2516
+#: scheduler/ipp.c:2533
#, c-format
msgid "Bad printer-state value %d."
msgstr ""
msgid "Canceling print job."
msgstr ""
-#: scheduler/ipp.c:989 scheduler/ipp.c:2494
+#: scheduler/ipp.c:989 scheduler/ipp.c:2511
msgid "Cannot change printer-is-shared for remote queues."
msgstr ""
-#: scheduler/ipp.c:2484
+#: scheduler/ipp.c:2501
msgid "Cannot share a remote Kerberized printer."
msgstr ""
msgid "Change Settings"
msgstr ""
-#: scheduler/ipp.c:2042 scheduler/ipp.c:5728
+#: scheduler/ipp.c:2059 scheduler/ipp.c:5745
#, c-format
msgid "Character set \"%s\" not supported."
msgstr ""
-#: cgi-bin/classes.c:185 cgi-bin/classes.c:312
+#: cgi-bin/classes.c:185 cgi-bin/classes.c:311
msgid "Classes"
msgstr ""
msgid "Clean Print Heads"
msgstr ""
-#: scheduler/ipp.c:3865
+#: scheduler/ipp.c:3882
msgid "Close-Job doesn't support the job-uri attribute."
msgstr ""
msgid "Destination \"%s\" is not accepting jobs."
msgstr ""
-#: systemv/lpinfo.c:292
+#: systemv/lpinfo.c:273
#, c-format
msgid ""
"Device: uri = %s\n"
msgid "Disc"
msgstr ""
-#: scheduler/ipp.c:6226
+#: scheduler/ipp.c:6243
#, c-format
msgid "Document #%d does not exist in job #%d."
msgstr ""
msgid "Error sending raster data."
msgstr ""
-#: systemv/lpinfo.c:95 systemv/lpmove.c:81
+#: systemv/lpinfo.c:208 systemv/lpmove.c:86
msgid "Error: need hostname after \"-h\" option."
msgstr ""
msgid "File Folder"
msgstr ""
-#: scheduler/ipp.c:2380
+#: scheduler/ipp.c:2397
#, c-format
msgid "File device URIs have been disabled. To enable, see the FileDevice directive in \"%s/cups-files.conf\"."
msgstr ""
msgid "Glossy Photo"
msgstr ""
-#: scheduler/ipp.c:2929 scheduler/ipp.c:3339 scheduler/ipp.c:3877
-#: scheduler/ipp.c:6155 scheduler/ipp.c:6302 scheduler/ipp.c:7800
-#: scheduler/ipp.c:8934 scheduler/ipp.c:9158 scheduler/ipp.c:9510
-#: scheduler/ipp.c:10123
+#: scheduler/ipp.c:2946 scheduler/ipp.c:3356 scheduler/ipp.c:3894
+#: scheduler/ipp.c:6172 scheduler/ipp.c:6319 scheduler/ipp.c:7815
+#: scheduler/ipp.c:8951 scheduler/ipp.c:9175 scheduler/ipp.c:9527
+#: scheduler/ipp.c:10140
msgid "Got a printer-uri attribute but no job-id."
msgstr ""
msgid "Invalid media size."
msgstr ""
-#: scheduler/ipp.c:2667 scheduler/ipp.c:6971
+#: scheduler/ipp.c:2684 scheduler/ipp.c:6986
msgid "Invalid ppd-name value."
msgstr ""
msgid "JIS B9"
msgstr ""
-#: scheduler/ipp.c:9230
+#: scheduler/ipp.c:9247
#, c-format
msgid "Job #%d cannot be restarted - no files."
msgstr ""
-#: scheduler/ipp.c:2969 scheduler/ipp.c:3203 scheduler/ipp.c:3262
-#: scheduler/ipp.c:3441 scheduler/ipp.c:3887 scheduler/ipp.c:5814
-#: scheduler/ipp.c:6195 scheduler/ipp.c:6342 scheduler/ipp.c:6680
-#: scheduler/ipp.c:7641 scheduler/ipp.c:7663 scheduler/ipp.c:7841
-#: scheduler/ipp.c:8066 scheduler/ipp.c:8109 scheduler/ipp.c:8974
-#: scheduler/ipp.c:9198 scheduler/ipp.c:9550 scheduler/ipp.c:10163
+#: scheduler/ipp.c:2986 scheduler/ipp.c:3220 scheduler/ipp.c:3279
+#: scheduler/ipp.c:3458 scheduler/ipp.c:3904 scheduler/ipp.c:5831
+#: scheduler/ipp.c:6212 scheduler/ipp.c:6359 scheduler/ipp.c:6696
+#: scheduler/ipp.c:7656 scheduler/ipp.c:7678 scheduler/ipp.c:7856
+#: scheduler/ipp.c:8081 scheduler/ipp.c:8124 scheduler/ipp.c:8991
+#: scheduler/ipp.c:9215 scheduler/ipp.c:9567 scheduler/ipp.c:10180
#, c-format
msgid "Job #%d does not exist."
msgstr ""
-#: scheduler/ipp.c:3473
+#: scheduler/ipp.c:3490
#, c-format
msgid "Job #%d is already aborted - can't cancel."
msgstr ""
-#: scheduler/ipp.c:3467
+#: scheduler/ipp.c:3484
#, c-format
msgid "Job #%d is already canceled - can't cancel."
msgstr ""
-#: scheduler/ipp.c:3479
+#: scheduler/ipp.c:3496
#, c-format
msgid "Job #%d is already completed - can't cancel."
msgstr ""
-#: scheduler/ipp.c:7867 scheduler/ipp.c:8151 scheduler/ipp.c:10178
+#: scheduler/ipp.c:7882 scheduler/ipp.c:8166 scheduler/ipp.c:10195
#, c-format
msgid "Job #%d is finished and cannot be altered."
msgstr ""
-#: scheduler/ipp.c:9212
+#: scheduler/ipp.c:9229
#, c-format
msgid "Job #%d is not complete."
msgstr ""
-#: scheduler/ipp.c:2984
+#: scheduler/ipp.c:3001
#, c-format
msgid "Job #%d is not held for authentication."
msgstr ""
-#: scheduler/ipp.c:8988
+#: scheduler/ipp.c:9005
#, c-format
msgid "Job #%d is not held."
msgstr ""
msgid "Job Stopped"
msgstr ""
-#: scheduler/ipp.c:10260
+#: scheduler/ipp.c:10277
msgid "Job is completed and cannot be changed."
msgstr ""
msgid "Job operation failed"
msgstr ""
-#: scheduler/ipp.c:10296 scheduler/ipp.c:10313 scheduler/ipp.c:10324
+#: scheduler/ipp.c:10313 scheduler/ipp.c:10330 scheduler/ipp.c:10341
msgid "Job state cannot be changed."
msgstr ""
-#: scheduler/ipp.c:9078
+#: scheduler/ipp.c:9095
msgid "Job subscriptions cannot be renewed."
msgstr ""
msgid "Laminate"
msgstr ""
-#: scheduler/ipp.c:2051 scheduler/ipp.c:5737
+#: scheduler/ipp.c:2068 scheduler/ipp.c:5754
#, c-format
msgid "Language \"%s\" not supported."
msgstr ""
msgid "Load paper."
msgstr ""
-#: scheduler/ipp.c:5446
+#: scheduler/ipp.c:5463
msgid "Local printer created."
msgstr ""
msgid "Missing asterisk in column 1"
msgstr ""
-#: scheduler/ipp.c:6218
+#: scheduler/ipp.c:6235
msgid "Missing document-number attribute."
msgstr ""
msgid "Missing form variable"
msgstr ""
-#: scheduler/ipp.c:9604
+#: scheduler/ipp.c:9621
msgid "Missing last-document attribute in request."
msgstr ""
msgid "Missing media-size in media-col."
msgstr ""
-#: scheduler/ipp.c:6821
+#: scheduler/ipp.c:6836
msgid "Missing notify-subscription-ids attribute."
msgstr ""
msgid "Missing option keyword"
msgstr ""
-#: scheduler/ipp.c:3110 scheduler/ipp.c:3135
+#: scheduler/ipp.c:3127 scheduler/ipp.c:3152
msgid "Missing requesting-user-name attribute."
msgstr ""
-#: scheduler/ipp.c:5366 scheduler/ipp.c:5392
+#: scheduler/ipp.c:5383 scheduler/ipp.c:5409
#, c-format
msgid "Missing required attribute \"%s\"."
msgstr ""
msgid "Missing y-dimension in media-size."
msgstr ""
-#: systemv/lpinfo.c:462
+#: systemv/lpinfo.c:443
#, c-format
msgid ""
"Model: name = %s\n"
msgid "No active connection."
msgstr ""
-#: scheduler/ipp.c:3390
+#: scheduler/ipp.c:3407
#, c-format
msgid "No active jobs on %s."
msgstr ""
msgid "No attributes in request."
msgstr ""
-#: scheduler/ipp.c:3011
+#: scheduler/ipp.c:3028
msgid "No authentication information provided."
msgstr ""
msgid "No community name"
msgstr ""
-#: scheduler/ipp.c:6018
+#: scheduler/ipp.c:6035
msgid "No default printer."
msgstr ""
-#: cgi-bin/ipp-var.c:422 scheduler/ipp.c:7401
+#: cgi-bin/ipp-var.c:422 scheduler/ipp.c:7416
msgid "No destinations added."
msgstr ""
msgid "No error-status"
msgstr ""
-#: scheduler/ipp.c:8356 scheduler/ipp.c:9618
+#: scheduler/ipp.c:8371 scheduler/ipp.c:9635
msgid "No file in print request."
msgstr ""
msgid "No printer-uri found for class"
msgstr ""
-#: scheduler/ipp.c:6426
+#: scheduler/ipp.c:6442
msgid "No printer-uri in request."
msgstr ""
msgid "No request-id"
msgstr ""
-#: scheduler/ipp.c:5622
+#: scheduler/ipp.c:5639
msgid "No subscription attributes in request."
msgstr ""
-#: scheduler/ipp.c:7740
+#: scheduler/ipp.c:7755
msgid "No subscriptions found."
msgstr ""
msgid "Not Supported"
msgstr ""
-#: scheduler/ipp.c:1518 scheduler/ipp.c:10877
+#: scheduler/ipp.c:1518 scheduler/ipp.c:10894
msgid "Not allowed to print."
msgstr ""
msgid "Online Help"
msgstr ""
-#: scheduler/ipp.c:5345
+#: scheduler/ipp.c:5362
msgid "Only local users can create a local printer."
msgstr ""
msgid "Options Installed"
msgstr ""
-#: scheduler/cupsfilter.c:1480 scheduler/main.c:2191 systemv/cupsaddsmb.c:276
+#: scheduler/cupsfilter.c:1480 scheduler/main.c:2197 systemv/cupsaddsmb.c:276
#: systemv/cupsctl.c:196 systemv/cupstestdsc.c:421 systemv/cupstestppd.c:3859
#: test/ippfind.c:2751 test/ipptool.c:4930 ppdc/ppdc.cxx:430
#: ppdc/ppdhtml.cxx:177 ppdc/ppdi.cxx:123 ppdc/ppdmerge.cxx:361
msgid "Print job was not accepted."
msgstr ""
-#: scheduler/ipp.c:5411
+#: scheduler/ipp.c:5428
#, c-format
msgid "Printer \"%s\" already exists."
msgstr ""
msgid "Printer:"
msgstr ""
-#: cgi-bin/printers.c:194 cgi-bin/printers.c:322
+#: cgi-bin/printers.c:194 cgi-bin/printers.c:321
msgid "Printers"
msgstr ""
msgid "Quarto"
msgstr ""
-#: scheduler/ipp.c:1513 scheduler/ipp.c:10872
+#: scheduler/ipp.c:1513 scheduler/ipp.c:10889
msgid "Quota limit reached."
msgstr ""
-#: berkeley/lpq.c:488
+#: berkeley/lpq.c:499
msgid "Rank Owner Job File(s) Total Size"
msgstr ""
msgid "See Other"
msgstr ""
-#: scheduler/ipp.c:7025 scheduler/ipp.c:7044
+#: scheduler/ipp.c:7040 scheduler/ipp.c:7059
msgid "See remote printer."
msgstr ""
msgid "Server Stopped"
msgstr ""
-#: cups/tls-darwin.c:1092 cups/tls-gnutls.c:1047
+#: cups/tls-darwin.c:1101 cups/tls-gnutls.c:1187
msgid "Server credentials not set."
msgstr ""
msgid "Statement"
msgstr ""
-#: scheduler/ipp.c:3536 scheduler/ipp.c:6837 scheduler/ipp.c:7547
-#: scheduler/ipp.c:9066
+#: scheduler/ipp.c:3553 scheduler/ipp.c:6852 scheduler/ipp.c:7562
+#: scheduler/ipp.c:9083
#, c-format
msgid "Subscription #%d does not exist."
msgstr ""
msgid "The \"%s\" attribute is required for print jobs."
msgstr ""
-#: scheduler/ipp.c:6497 scheduler/ipp.c:6577 scheduler/ipp.c:6590
-#: scheduler/ipp.c:6602 scheduler/ipp.c:6617
+#: scheduler/ipp.c:6513 scheduler/ipp.c:6593 scheduler/ipp.c:6606
+#: scheduler/ipp.c:6618 scheduler/ipp.c:6633
#, c-format
msgid "The %s attribute cannot be provided with job-ids."
msgstr ""
msgid "The '%s' Job Status attribute cannot be supplied in a job creation request."
msgstr ""
-#: scheduler/ipp.c:5173
+#: scheduler/ipp.c:5190
#, c-format
msgid "The '%s' operation attribute cannot be supplied in a Create-Job request."
msgstr ""
-#: scheduler/ipp.c:7067
+#: scheduler/ipp.c:7082
#, c-format
msgid "The PPD file \"%s\" could not be found."
msgstr ""
-#: scheduler/ipp.c:7056
+#: scheduler/ipp.c:7071
#, c-format
msgid "The PPD file \"%s\" could not be opened: %s"
msgstr ""
msgid "The fuser's temperature is low."
msgstr ""
-#: scheduler/ipp.c:2078
+#: scheduler/ipp.c:2095
msgid "The notify-lease-duration attribute cannot be used with job subscriptions."
msgstr ""
-#: scheduler/ipp.c:2061 scheduler/ipp.c:5747
+#: scheduler/ipp.c:2078 scheduler/ipp.c:5764
#, c-format
msgid "The notify-user-data value is too large (%d > 63 octets)."
msgstr ""
msgid "The printer name may only contain up to 127 printable characters and may not contain spaces, slashes (/), or the pound sign (#)."
msgstr ""
-#: scheduler/ipp.c:790 scheduler/ipp.c:1067 scheduler/ipp.c:3175
-#: scheduler/ipp.c:3356 scheduler/ipp.c:5156 scheduler/ipp.c:5581
-#: scheduler/ipp.c:5896 scheduler/ipp.c:6463 scheduler/ipp.c:7271
-#: scheduler/ipp.c:7327 scheduler/ipp.c:7653 scheduler/ipp.c:7925
-#: scheduler/ipp.c:8014 scheduler/ipp.c:8047 scheduler/ipp.c:8371
-#: scheduler/ipp.c:8778 scheduler/ipp.c:8860 scheduler/ipp.c:10032
-#: scheduler/ipp.c:10484 scheduler/ipp.c:10835 scheduler/ipp.c:10917
-#: scheduler/ipp.c:11292
+#: scheduler/ipp.c:790 scheduler/ipp.c:1067 scheduler/ipp.c:3192
+#: scheduler/ipp.c:3373 scheduler/ipp.c:5173 scheduler/ipp.c:5598
+#: scheduler/ipp.c:5913 scheduler/ipp.c:6479 scheduler/ipp.c:7286
+#: scheduler/ipp.c:7342 scheduler/ipp.c:7668 scheduler/ipp.c:7940
+#: scheduler/ipp.c:8029 scheduler/ipp.c:8062 scheduler/ipp.c:8386
+#: scheduler/ipp.c:8793 scheduler/ipp.c:8875 scheduler/ipp.c:10049
+#: scheduler/ipp.c:10501 scheduler/ipp.c:10852 scheduler/ipp.c:10934
+#: scheduler/ipp.c:11309
msgid "The printer or class does not exist."
msgstr ""
msgid "The printer's waste bin is full."
msgstr ""
-#: scheduler/ipp.c:896 scheduler/ipp.c:2242
+#: scheduler/ipp.c:896 scheduler/ipp.c:2259
#, c-format
msgid "The printer-uri \"%s\" contains invalid characters."
msgstr ""
-#: scheduler/ipp.c:3152
+#: scheduler/ipp.c:3169
msgid "The printer-uri attribute is required."
msgstr ""
msgid "The printer-uri must be of the form \"ipp://HOSTNAME/classes/CLASSNAME\"."
msgstr ""
-#: scheduler/ipp.c:2226
+#: scheduler/ipp.c:2243
msgid "The printer-uri must be of the form \"ipp://HOSTNAME/printers/PRINTERNAME\"."
msgstr ""
msgid "The web interface is currently disabled. Run \"cupsctl WebInterface=yes\" to enable it."
msgstr ""
-#: scheduler/ipp.c:6561
+#: scheduler/ipp.c:6577
#, c-format
msgid "The which-jobs value \"%s\" is not supported."
msgstr ""
-#: scheduler/ipp.c:5825
+#: scheduler/ipp.c:5842
msgid "There are too many subscriptions."
msgstr ""
msgid "Too many job-sheets values (%d > 2)."
msgstr ""
-#: scheduler/ipp.c:2550
+#: scheduler/ipp.c:2567
#, c-format
msgid "Too many printer-state-reasons values (%d > %d)."
msgstr ""
msgid "Unable to copy CUPS printer driver files (%d)."
msgstr ""
-#: scheduler/ipp.c:2641
+#: scheduler/ipp.c:2658
#, c-format
msgid "Unable to copy PPD file - %s"
msgstr ""
-#: scheduler/ipp.c:2680
+#: scheduler/ipp.c:2697
msgid "Unable to copy PPD file."
msgstr ""
msgid "Unable to create printer-uri"
msgstr ""
-#: scheduler/ipp.c:5421
+#: scheduler/ipp.c:5438
msgid "Unable to create printer."
msgstr ""
-#: cups/tls-darwin.c:1353 cups/tls-gnutls.c:1179
+#: cups/tls-darwin.c:1362 cups/tls-gnutls.c:1375
msgid "Unable to create server credentials."
msgstr ""
msgid "Unable to edit cupsd.conf files larger than 1MB"
msgstr ""
-#: cups/tls-darwin.c:1520
+#: cups/tls-darwin.c:1529
msgid "Unable to establish a secure connection to host (certificate chain invalid)."
msgstr ""
-#: cups/tls-darwin.c:1510
+#: cups/tls-darwin.c:1519
msgid "Unable to establish a secure connection to host (certificate not yet valid)."
msgstr ""
-#: cups/tls-darwin.c:1505
+#: cups/tls-darwin.c:1514
msgid "Unable to establish a secure connection to host (expired certificate)."
msgstr ""
-#: cups/tls-darwin.c:1515
+#: cups/tls-darwin.c:1524
msgid "Unable to establish a secure connection to host (host name mismatch)."
msgstr ""
-#: cups/tls-darwin.c:1525
+#: cups/tls-darwin.c:1534
msgid "Unable to establish a secure connection to host (peer dropped connection before responding)."
msgstr ""
-#: cups/tls-darwin.c:1500
+#: cups/tls-darwin.c:1509
msgid "Unable to establish a secure connection to host (self-signed certificate)."
msgstr ""
-#: cups/tls-darwin.c:1495
+#: cups/tls-darwin.c:1504
msgid "Unable to establish a secure connection to host (untrusted certificate)."
msgstr ""
-#: cups/tls-darwin.c:1552 cups/tls-sspi.c:1277 cups/tls-sspi.c:1294
+#: cups/tls-darwin.c:1561 cups/tls-sspi.c:1277 cups/tls-sspi.c:1294
msgid "Unable to establish a secure connection to host."
msgstr ""
msgid "Unable to find printer."
msgstr ""
-#: cups/tls-darwin.c:1366
+#: cups/tls-darwin.c:1375
msgid "Unable to find server credentials."
msgstr ""
msgid "Unable to get backend exit status."
msgstr ""
-#: cgi-bin/classes.c:440
+#: cgi-bin/classes.c:430
msgid "Unable to get class list"
msgstr ""
-#: cgi-bin/classes.c:539
+#: cgi-bin/classes.c:529
msgid "Unable to get class status"
msgstr ""
msgid "Unable to get printer attributes"
msgstr ""
-#: cgi-bin/printers.c:457
+#: cgi-bin/printers.c:447
msgid "Unable to get printer list"
msgstr ""
-#: cgi-bin/printers.c:559
+#: cgi-bin/printers.c:549
msgid "Unable to get printer status"
msgstr ""
msgid "Unable to open device file"
msgstr ""
-#: scheduler/ipp.c:6239
+#: scheduler/ipp.c:6256
#, c-format
msgid "Unable to open document #%d in job #%d."
msgstr ""
msgid "Unable to read print data."
msgstr ""
-#: scheduler/ipp.c:8530 scheduler/ipp.c:9771
+#: scheduler/ipp.c:8545 scheduler/ipp.c:9788
msgid "Unable to rename job document file."
msgstr ""
msgid "Unknown print mode: \"%s\"."
msgstr ""
-#: scheduler/ipp.c:10706
+#: scheduler/ipp.c:10723
#, c-format
msgid "Unknown printer-error-policy \"%s\"."
msgstr ""
-#: scheduler/ipp.c:10689
+#: scheduler/ipp.c:10706
#, c-format
msgid "Unknown printer-op-policy \"%s\"."
msgstr ""
msgid "Unknown scheme in URI"
msgstr ""
-#: cups/http-addrlist.c:771
+#: cups/http-addrlist.c:775
msgid "Unknown service name."
msgstr ""
msgid "Unknown version option value: \"%s\"."
msgstr ""
-#: scheduler/ipp.c:11163
+#: scheduler/ipp.c:11180
#, c-format
msgid "Unsupported 'compression' value \"%s\"."
msgstr ""
-#: scheduler/ipp.c:11193
+#: scheduler/ipp.c:11210
#, c-format
msgid "Unsupported 'document-format' value \"%s\"."
msgstr ""
-#: scheduler/ipp.c:11268
+#: scheduler/ipp.c:11285
msgid "Unsupported 'job-name' value."
msgstr ""
msgid "Unsupported character set \"%s\"."
msgstr ""
-#: scheduler/ipp.c:8337 scheduler/ipp.c:9583
+#: scheduler/ipp.c:8352 scheduler/ipp.c:9600
#, c-format
msgid "Unsupported compression \"%s\"."
msgstr ""
-#: scheduler/ipp.c:8473 scheduler/ipp.c:9736
+#: scheduler/ipp.c:8488 scheduler/ipp.c:9753
#, c-format
msgid "Unsupported document-format \"%s\"."
msgstr ""
-#: scheduler/ipp.c:9719
+#: scheduler/ipp.c:9736
#, c-format
msgid "Unsupported document-format \"%s/%s\"."
msgstr ""
msgid "Upgrade Required"
msgstr ""
-#: systemv/lpadmin.c:646
+#: systemv/lpadmin.c:635
msgid ""
"Usage:\n"
"\n"
msgid "Usage: cupsctl [options] [param=value ... paramN=valueN]"
msgstr ""
-#: scheduler/main.c:2190
+#: scheduler/main.c:2196
msgid "Usage: cupsd [options]"
msgstr ""
msgid "Usage: ipptool [options] URI filename [ ... filenameN ]"
msgstr ""
-#: systemv/lpmove.c:118
+#: systemv/lpmove.c:125
msgid "Usage: lpmove job/src dest"
msgstr ""
-#: systemv/lpoptions.c:538
+#: systemv/lpoptions.c:523
msgid ""
"Usage: lpoptions [-h server] [-E] -d printer\n"
" lpoptions [-h server] [-E] [-p printer] -l\n"
" lpoptions [-h server] [-E] -x printer"
msgstr ""
-#: berkeley/lpq.c:635
+#: berkeley/lpq.c:646
msgid "Usage: lpq [-P dest] [-U username] [-h hostname[:port]] [-l] [+interval]"
msgstr ""
msgid "completed"
msgstr ""
-#: scheduler/ipp.c:6111
+#: scheduler/ipp.c:6128
msgid "cups-deviced failed to execute."
msgstr ""
-#: scheduler/ipp.c:6999 scheduler/ipp.c:7238
+#: scheduler/ipp.c:7014 scheduler/ipp.c:7253
msgid "cups-driverd failed to execute."
msgstr ""
msgid "ipptool: Unknown option \"-%c\"."
msgstr ""
-#: scheduler/ipp.c:8003
+#: scheduler/ipp.c:8018
msgid "job-printer-uri attribute missing."
msgstr ""
-#: systemv/lpadmin.c:122 systemv/lpadmin.c:362
+#: systemv/lpadmin.c:125 systemv/lpadmin.c:362
msgid "lpadmin: Class name can only contain printable characters."
msgstr ""
-#: systemv/lpadmin.c:211
+#: systemv/lpadmin.c:215
#, c-format
msgid "lpadmin: Expected PPD after \"-%c\" option."
msgstr ""
msgid "lpadmin: Expected allow/deny:userlist after \"-u\" option."
msgstr ""
-#: systemv/lpadmin.c:351
+#: systemv/lpadmin.c:353
msgid "lpadmin: Expected class after \"-r\" option."
msgstr ""
-#: systemv/lpadmin.c:111
+#: systemv/lpadmin.c:115
msgid "lpadmin: Expected class name after \"-c\" option."
msgstr ""
-#: systemv/lpadmin.c:543
+#: systemv/lpadmin.c:537
msgid "lpadmin: Expected description after \"-D\" option."
msgstr ""
-#: systemv/lpadmin.c:477
+#: systemv/lpadmin.c:473
msgid "lpadmin: Expected device URI after \"-v\" option."
msgstr ""
-#: systemv/lpadmin.c:559
+#: systemv/lpadmin.c:550
msgid "lpadmin: Expected file type(s) after \"-I\" option."
msgstr ""
-#: systemv/lpadmin.c:192
+#: systemv/lpadmin.c:194
msgid "lpadmin: Expected hostname after \"-h\" option."
msgstr ""
-#: systemv/lpadmin.c:579
+#: systemv/lpadmin.c:569
msgid "lpadmin: Expected location after \"-L\" option."
msgstr ""
-#: systemv/lpadmin.c:262
+#: systemv/lpadmin.c:266
msgid "lpadmin: Expected model after \"-m\" option."
msgstr ""
-#: systemv/lpadmin.c:403
+#: systemv/lpadmin.c:401
msgid "lpadmin: Expected name after \"-R\" option."
msgstr ""
-#: systemv/lpadmin.c:282
+#: systemv/lpadmin.c:286
msgid "lpadmin: Expected name=value after \"-o\" option."
msgstr ""
-#: systemv/lpadmin.c:301
+#: systemv/lpadmin.c:306
msgid "lpadmin: Expected printer after \"-p\" option."
msgstr ""
-#: systemv/lpadmin.c:154
+#: systemv/lpadmin.c:157
msgid "lpadmin: Expected printer name after \"-d\" option."
msgstr ""
-#: systemv/lpadmin.c:510
+#: systemv/lpadmin.c:506
msgid "lpadmin: Expected printer or class after \"-x\" option."
msgstr ""
-#: systemv/lpadmin.c:953
+#: systemv/lpadmin.c:942
msgid "lpadmin: No member names were seen."
msgstr ""
-#: systemv/lpadmin.c:740
+#: systemv/lpadmin.c:729
#, c-format
msgid "lpadmin: Printer %s is already a member of class %s."
msgstr ""
-#: systemv/lpadmin.c:967
+#: systemv/lpadmin.c:956
#, c-format
msgid "lpadmin: Printer %s is not a member of class %s."
msgstr ""
-#: systemv/lpadmin.c:165 systemv/lpadmin.c:312 systemv/lpadmin.c:521
+#: systemv/lpadmin.c:166 systemv/lpadmin.c:315 systemv/lpadmin.c:515
msgid "lpadmin: Printer name can only contain printable characters."
msgstr ""
-#: systemv/lpadmin.c:96
+#: systemv/lpadmin.c:99
msgid ""
"lpadmin: Unable to add a printer to the class:\n"
" You must specify a printer name first."
msgstr ""
-#: systemv/lpadmin.c:87 systemv/lpadmin.c:139 systemv/lpadmin.c:241
-#: systemv/lpadmin.c:326 systemv/lpadmin.c:379 systemv/lpadmin.c:495
-#: systemv/lpadmin.c:622
+#: systemv/lpadmin.c:91 systemv/lpadmin.c:141 systemv/lpadmin.c:244
+#: systemv/lpadmin.c:328 systemv/lpadmin.c:377 systemv/lpadmin.c:489
+#: systemv/lpadmin.c:611
#, c-format
msgid "lpadmin: Unable to connect to server: %s"
msgstr ""
-#: systemv/lpadmin.c:1407
+#: systemv/lpadmin.c:1396
msgid "lpadmin: Unable to create temporary file"
msgstr ""
-#: systemv/lpadmin.c:388
+#: systemv/lpadmin.c:385
msgid ""
"lpadmin: Unable to delete option:\n"
" You must specify a printer name first."
msgstr ""
-#: systemv/lpadmin.c:1399
+#: systemv/lpadmin.c:1388
#, c-format
msgid "lpadmin: Unable to open PPD \"%s\": %s on line %d."
msgstr ""
-#: systemv/lpadmin.c:1419
+#: systemv/lpadmin.c:1408
#, c-format
msgid "lpadmin: Unable to open PPD file \"%s\" - %s"
msgstr ""
-#: systemv/lpadmin.c:335
+#: systemv/lpadmin.c:337
msgid ""
"lpadmin: Unable to remove a printer from the class:\n"
" You must specify a printer name first."
msgstr ""
-#: systemv/lpadmin.c:631
+#: systemv/lpadmin.c:620
msgid ""
"lpadmin: Unable to set the printer options:\n"
" You must specify a printer name first."
msgstr ""
-#: systemv/lpadmin.c:460
+#: systemv/lpadmin.c:456
#, c-format
msgid "lpadmin: Unknown allow/deny option \"%s\"."
msgstr ""
-#: systemv/lpadmin.c:596
+#: systemv/lpadmin.c:585
#, c-format
msgid "lpadmin: Unknown argument \"%s\"."
msgstr ""
-#: systemv/lpadmin.c:591
+#: systemv/lpadmin.c:578
#, c-format
msgid "lpadmin: Unknown option \"%c\"."
msgstr ""
-#: systemv/lpadmin.c:565
+#: systemv/lpadmin.c:554
msgid "lpadmin: Warning - content type list ignored."
msgstr ""
msgid "lpc> "
msgstr ""
-#: systemv/lpinfo.c:129
+#: systemv/lpinfo.c:82
msgid "lpinfo: Expected 1284 device ID string after \"--device-id\"."
msgstr ""
-#: systemv/lpinfo.c:182
+#: systemv/lpinfo.c:129
msgid "lpinfo: Expected language after \"--language\"."
msgstr ""
-#: systemv/lpinfo.c:199
+#: systemv/lpinfo.c:144
msgid "lpinfo: Expected make and model after \"--make-and-model\"."
msgstr ""
-#: systemv/lpinfo.c:216
+#: systemv/lpinfo.c:159
msgid "lpinfo: Expected product string after \"--product\"."
msgstr ""
-#: systemv/lpinfo.c:147
+#: systemv/lpinfo.c:98
msgid "lpinfo: Expected scheme list after \"--exclude-schemes\"."
msgstr ""
-#: systemv/lpinfo.c:165
+#: systemv/lpinfo.c:114
msgid "lpinfo: Expected scheme list after \"--include-schemes\"."
msgstr ""
-#: systemv/lpinfo.c:233
+#: systemv/lpinfo.c:174
msgid "lpinfo: Expected timeout after \"--timeout\"."
msgstr ""
-#: systemv/lpinfo.c:257
-#, c-format
-msgid "lpinfo: Unknown argument \"%s\"."
-msgstr ""
-
-#: systemv/lpinfo.c:251
-#, c-format
-msgid "lpinfo: Unknown option \"%c\"."
-msgstr ""
-
-#: systemv/lpinfo.c:244
-#, c-format
-msgid "lpinfo: Unknown option \"%s\"."
-msgstr ""
-
-#: systemv/lpmove.c:126
+#: systemv/lpmove.c:133
#, c-format
msgid "lpmove: Unable to connect to server: %s"
msgstr ""
-#: systemv/lpmove.c:112
+#: systemv/lpmove.c:118
#, c-format
msgid "lpmove: Unknown argument \"%s\"."
msgstr ""
-#: systemv/lpmove.c:90
-#, c-format
-msgid "lpmove: Unknown option \"%c\"."
-msgstr ""
-
-#: systemv/lpoptions.c:142 systemv/lpoptions.c:160 systemv/lpoptions.c:236
+#: systemv/lpoptions.c:150 systemv/lpoptions.c:168 systemv/lpoptions.c:247
msgid "lpoptions: No printers."
msgstr ""
-#: systemv/lpoptions.c:211
+#: systemv/lpoptions.c:224
#, c-format
msgid "lpoptions: Unable to add printer or instance: %s"
msgstr ""
-#: systemv/lpoptions.c:506
+#: systemv/lpoptions.c:491
#, c-format
msgid "lpoptions: Unable to get PPD file for %s: %s"
msgstr ""
-#: systemv/lpoptions.c:514
+#: systemv/lpoptions.c:499
#, c-format
msgid "lpoptions: Unable to open PPD file for %s."
msgstr ""
-#: systemv/lpoptions.c:91
+#: systemv/lpoptions.c:96
msgid "lpoptions: Unknown printer or class."
msgstr ""
msgid "members of class %s:"
msgstr ""
-#: berkeley/lpq.c:547
+#: berkeley/lpq.c:558
msgid "no entries"
msgstr ""
msgid "no system default destination"
msgstr ""
-#: scheduler/ipp.c:5796
+#: scheduler/ipp.c:5813
msgid "notify-events not specified."
msgstr ""
-#: scheduler/ipp.c:2015 scheduler/ipp.c:5701
+#: scheduler/ipp.c:2032 scheduler/ipp.c:5718
#, c-format
msgid "notify-recipient-uri URI \"%s\" is already used."
msgstr ""
-#: scheduler/ipp.c:2005 scheduler/ipp.c:5691
+#: scheduler/ipp.c:2022 scheduler/ipp.c:5708
#, c-format
msgid "notify-recipient-uri URI \"%s\" uses unknown scheme."
msgstr ""
msgid "processing"
msgstr ""
-#: systemv/lp.c:660
+#: systemv/lp.c:666
#, c-format
msgid "request id is %s-%d (%d file(s))"
msgstr ""
" --help Show help." = " --help Show help.";
" --help Show this help." = " --help Show this help.";
" --host regex Match hostname to regular expression." = " --host regex Match hostname to regular expression.";
-" --lf End lines with LF (UNIX/Linux/OS X)." = " --lf End lines with LF (UNIX/Linux/OS X).";
+" --lf End lines with LF (UNIX/Linux/macOS)." = " --lf End lines with LF (UNIX/Linux/macOS).";
" --list-filters List filters that will be used." = " --list-filters List filters that will be used.";
" --local True if service is local." = " --local True if service is local.";
" --ls List attributes." = " --ls List attributes.";
"%s: Error - bad job ID." = "%s: Error - bad job ID.";
"%s: Error - cannot print files and alter jobs simultaneously." = "%s: Error - cannot print files and alter jobs simultaneously.";
"%s: Error - cannot print from stdin if files or a job ID are provided." = "%s: Error - cannot print from stdin if files or a job ID are provided.";
+"%s: Error - copies must be 1 or more." = "%s: Error - copies must be 1 or more.";
"%s: Error - expected character set after \"-S\" option." = "%s: Error - expected character set after “-S” option.";
"%s: Error - expected content type after \"-T\" option." = "%s: Error - expected content type after “-T” option.";
"%s: Error - expected copies after \"-#\" option." = "%s: Error - expected copies after “-#” option.";
"%s: Unable to open PPD file: %s on line %d." = "%s: Unable to open PPD file: %s on line %d.";
"%s: Unable to read MIME database from \"%s\" or \"%s\"." = "%s: Unable to read MIME database from “%s” or “%s”.";
"%s: Unable to resolve \"%s\"." = "%s: Unable to resolve “%s”.";
+"%s: Unknown argument \"%s\"." = "%s: Unknown argument “%s”.";
"%s: Unknown destination \"%s\"." = "%s: Unknown destination “%s”.";
"%s: Unknown destination MIME type %s/%s." = "%s: Unknown destination MIME type %s/%s.";
"%s: Unknown option \"%c\"." = "%s: Unknown option “%c”.";
"lpinfo: Expected scheme list after \"--exclude-schemes\"." = "lpinfo: Expected scheme list after “--exclude-schemes”.";
"lpinfo: Expected scheme list after \"--include-schemes\"." = "lpinfo: Expected scheme list after “--include-schemes”.";
"lpinfo: Expected timeout after \"--timeout\"." = "lpinfo: Expected timeout after “--timeout”.";
-"lpinfo: Unknown argument \"%s\"." = "lpinfo: Unknown argument “%s”.";
-"lpinfo: Unknown option \"%c\"." = "lpinfo: Unknown option “%c”.";
-"lpinfo: Unknown option \"%s\"." = "lpinfo: Unknown option “%s”.";
"lpmove: Unable to connect to server: %s" = "lpmove: Unable to connect to server: %s";
"lpmove: Unknown argument \"%s\"." = "lpmove: Unknown argument “%s”.";
-"lpmove: Unknown option \"%c\"." = "lpmove: Unknown option “%c”.";
"lpoptions: No printers." = "lpoptions: No printers.";
"lpoptions: Unable to add printer or instance: %s" = "lpoptions: Unable to add printer or instance: %s";
"lpoptions: Unable to get PPD file for %s: %s" = "lpoptions: Unable to get PPD file for %s: %s";
msgstr ""
"Project-Id-Version: CUPS 1.4.6\n"
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
-"POT-Creation-Date: 2016-05-02 18:01-0400\n"
+"POT-Creation-Date: 2016-06-20 15:18-0400\n"
"PO-Revision-Date: 2012-09-29 11:21+0200\n"
"Last-Translator: Àngel Mompó <mecatxis@gmail.com>\n"
"Language-Team: Catalan <ca@dodds.net>\n"
msgid " --host regex Match hostname to regular expression."
msgstr ""
-msgid " --lf End lines with LF (UNIX/Linux/OS X)."
-msgstr " --lf Final de línia amb LF (UNIX/Linux/OS X)."
+msgid " --lf End lines with LF (UNIX/Linux/macOS)."
+msgstr ""
msgid " --list-filters List filters that will be used."
msgstr ""
"%s: error - no es pot imprimir des d'stdin si s'indiquen els fitxers o "
"l'identificador de la feina."
+#, c-format
+msgid "%s: Error - copies must be 1 or more."
+msgstr ""
+
#, c-format
msgid "%s: Error - expected character set after \"-S\" option."
msgstr ""
msgid "%s: Unable to resolve \"%s\"."
msgstr ""
+#, c-format
+msgid "%s: Unknown argument \"%s\"."
+msgstr ""
+
#, c-format
msgid "%s: Unknown destination \"%s\"."
msgstr "%s: el destí «%s» és desconegut."
msgid "lpinfo: Expected timeout after \"--timeout\"."
msgstr "lpinfo: s'esperava un temps d'espera després de «--timeout»."
-#, c-format
-msgid "lpinfo: Unknown argument \"%s\"."
-msgstr "lpinfo: l'argument «%s» és desconegut."
-
-#, c-format
-msgid "lpinfo: Unknown option \"%c\"."
-msgstr "lpinfo: l'opció «%c» és desconeguda."
-
-#, c-format
-msgid "lpinfo: Unknown option \"%s\"."
-msgstr "lpinfo: l'opció «%s» és desconeguda."
-
#, c-format
msgid "lpmove: Unable to connect to server: %s"
msgstr "lpmove: no s'ha pogut connectar al servidor: %s"
msgid "lpmove: Unknown argument \"%s\"."
msgstr "lpmove: l'argument «%s» és desconegut."
-#, c-format
-msgid "lpmove: Unknown option \"%c\"."
-msgstr "lpmove: l'opció «%c» és desconeguda."
-
msgid "lpoptions: No printers."
msgstr "lpoptions: no hi ha cap impressora."
#~ msgid " **FAIL** Unable to open PPD file - %s"
#~ msgstr " **ERROR** No es pot obrir el fitxer PPD - %s"
+#~ msgid " --lf End lines with LF (UNIX/Linux/OS X)."
+#~ msgstr " --lf Final de línia amb LF (UNIX/Linux/OS X)."
+
#~ msgid " -E Enable encryption."
#~ msgstr " -E Habilita el xifrat."
#~ msgid "lpadmin: Expected interface after \"-i\" option."
#~ msgstr "lpadmin: s'esperava una interfície després de l'opció «-i»."
+#~ msgid "lpinfo: Unknown argument \"%s\"."
+#~ msgstr "lpinfo: l'argument «%s» és desconegut."
+
+#~ msgid "lpinfo: Unknown option \"%c\"."
+#~ msgstr "lpinfo: l'opció «%c» és desconeguda."
+
+#~ msgid "lpinfo: Unknown option \"%s\"."
+#~ msgstr "lpinfo: l'opció «%s» és desconeguda."
+
+#~ msgid "lpmove: Unknown option \"%c\"."
+#~ msgstr "lpmove: l'opció «%c» és desconeguda."
+
#~ msgid "lppasswd: Only root can add or delete passwords."
#~ msgstr ""
#~ "lppasswd: només l'usuari primari (root) pot afegir o esborrar "
msgstr ""
"Project-Id-Version: CUPS 1.6\n"
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
-"POT-Creation-Date: 2016-05-02 18:01-0400\n"
+"POT-Creation-Date: 2016-06-20 15:18-0400\n"
"PO-Revision-Date: 2012-09-14 10:26+0100\n"
"Last-Translator: Jan Bartos <jan.bartos@madeta.cz>\n"
"Language-Team: Czech\n"
msgid " --host regex Match hostname to regular expression."
msgstr ""
-msgid " --lf End lines with LF (UNIX/Linux/OS X)."
+msgid " --lf End lines with LF (UNIX/Linux/macOS)."
msgstr ""
msgid " --list-filters List filters that will be used."
msgid "%s: Error - cannot print from stdin if files or a job ID are provided."
msgstr ""
+#, c-format
+msgid "%s: Error - copies must be 1 or more."
+msgstr ""
+
#, c-format
msgid "%s: Error - expected character set after \"-S\" option."
msgstr ""
msgid "%s: Unable to resolve \"%s\"."
msgstr ""
+#, c-format
+msgid "%s: Unknown argument \"%s\"."
+msgstr ""
+
#, c-format
msgid "%s: Unknown destination \"%s\"."
msgstr ""
msgid "lpinfo: Expected timeout after \"--timeout\"."
msgstr ""
-#, c-format
-msgid "lpinfo: Unknown argument \"%s\"."
-msgstr ""
-
-#, c-format
-msgid "lpinfo: Unknown option \"%c\"."
-msgstr ""
-
-#, c-format
-msgid "lpinfo: Unknown option \"%s\"."
-msgstr ""
-
#, c-format
msgid "lpmove: Unable to connect to server: %s"
msgstr ""
msgid "lpmove: Unknown argument \"%s\"."
msgstr ""
-#, c-format
-msgid "lpmove: Unknown option \"%c\"."
-msgstr ""
-
msgid "lpoptions: No printers."
msgstr ""
msgstr ""
"Project-Id-Version: CUPS 2.0\n"
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
-"POT-Creation-Date: 2016-05-02 18:01-0400\n"
+"POT-Creation-Date: 2016-06-20 15:18-0400\n"
"PO-Revision-Date: 2016-04-22 12:25+0100\n"
"Last-Translator: Joachim Schwender <joachim.schwender@web.de>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
" --host regex Prüfe den Hostnamen auf Übereinstimmung mit "
"Regulärem Audruck"
-msgid " --lf End lines with LF (UNIX/Linux/OS X)."
-msgstr " --lf Zeilenenden mit LF (UNIX/Linux/OS X)"
+msgid " --lf End lines with LF (UNIX/Linux/macOS)."
+msgstr ""
msgid " --list-filters List filters that will be used."
msgstr " --list-filters Liste die Filter auf die benutzt werden."
"%s: Fehler - Kann von der Standardeingabe nicht drucken wenn eine Datei oder "
"Auftrags-ID übergeben werden."
+#, c-format
+msgid "%s: Error - copies must be 1 or more."
+msgstr ""
+
#, c-format
msgid "%s: Error - expected character set after \"-S\" option."
msgstr "%s: Fehler - Zeichensatz nach der \"-S\" Option erwartet."
msgid "%s: Unable to resolve \"%s\"."
msgstr "%s: Auflösen von \"%s\" nicht möglich."
+#, c-format
+msgid "%s: Unknown argument \"%s\"."
+msgstr ""
+
#, c-format
msgid "%s: Unknown destination \"%s\"."
msgstr "%s: Unbekanntes Druckziel \"%s\"."
msgid "lpinfo: Expected timeout after \"--timeout\"."
msgstr ""
-#, c-format
-msgid "lpinfo: Unknown argument \"%s\"."
-msgstr "lpinfo: Unbekanntes Argument »%s«."
-
-#, c-format
-msgid "lpinfo: Unknown option \"%c\"."
-msgstr "lpinfo: Unbekannte Option »%c«."
-
-#, c-format
-msgid "lpinfo: Unknown option \"%s\"."
-msgstr "lpinfo: Unbekannte Option »%s«."
-
#, c-format
msgid "lpmove: Unable to connect to server: %s"
msgstr "lpmove: Verbindung zum Server »%s« nicht möglich"
msgid "lpmove: Unknown argument \"%s\"."
msgstr "lpmove: Unbekanntes Argument »%s«."
-#, c-format
-msgid "lpmove: Unknown option \"%c\"."
-msgstr "lpinfo: Unbekannte Option »%c«."
-
msgid "lpoptions: No printers."
msgstr "lpoptions: Keine Drucker."
#~ msgid "\tInterface: %s/interfaces/%s"
#~ msgstr "\tSchnittstelle: %s/interfaces/%s"
+#~ msgid " --lf End lines with LF (UNIX/Linux/OS X)."
+#~ msgstr " --lf Zeilenenden mit LF (UNIX/Linux/OS X)"
+
#~ msgid " -a Browse for all services."
#~ msgstr " -a Browse für alle Dienste."
#~ msgid "lpadmin: Expected interface after \"-i\" option."
#~ msgstr "lpadmin: Schnittstelle nach der \"-i\" Option erwartet."
+
+#~ msgid "lpinfo: Unknown argument \"%s\"."
+#~ msgstr "lpinfo: Unbekanntes Argument »%s«."
+
+#~ msgid "lpinfo: Unknown option \"%c\"."
+#~ msgstr "lpinfo: Unbekannte Option »%c«."
+
+#~ msgid "lpinfo: Unknown option \"%s\"."
+#~ msgstr "lpinfo: Unbekannte Option »%s«."
+
+#~ msgid "lpmove: Unknown option \"%c\"."
+#~ msgstr "lpinfo: Unbekannte Option »%c«."
msgstr ""
"Project-Id-Version: CUPS 1.6\n"
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
-"POT-Creation-Date: 2016-05-02 18:01-0400\n"
+"POT-Creation-Date: 2016-06-20 15:18-0400\n"
"PO-Revision-Date: 2014-09-23 23:45+0100\n"
"Last-Translator: Juan Pablo González Riopedre <jpgriopedre@yahoo.es>\n"
"Language-Team: Spanish\n"
" --host regex Hacer coincidir el nombre del equipo con la "
"expresión regular."
-msgid " --lf End lines with LF (UNIX/Linux/OS X)."
-msgstr " --lf Finalizar líneas con LF (UNIX/Linux/OS X)."
+msgid " --lf End lines with LF (UNIX/Linux/macOS)."
+msgstr ""
msgid " --list-filters List filters that will be used."
msgstr " --list-filters Listar los filtros a usar."
"%s: Error - no se puede imprimir desde stdin si se proporcionan archivos o "
"una ID de trabajo."
+#, c-format
+msgid "%s: Error - copies must be 1 or more."
+msgstr ""
+
#, c-format
msgid "%s: Error - expected character set after \"-S\" option."
msgstr "%s: Error - se esperaba un juego de caracteres tras la opción \"-S\"."
msgid "%s: Unable to resolve \"%s\"."
msgstr ""
+#, c-format
+msgid "%s: Unknown argument \"%s\"."
+msgstr ""
+
#, c-format
msgid "%s: Unknown destination \"%s\"."
msgstr "%s: Destino \"%s\" desconocido."
msgid ""
"Usage: cupstestppd [options] filename1.ppd[.gz] [... filenameN.ppd[.gz]]"
msgstr ""
-"Uso: cupstestppd [opciones] nombre_archivo1.ppd[.gz] [... nombre_archivoN."
-"ppd[.gz]]"
+"Uso: cupstestppd [opciones] nombre_archivo1.ppd[.gz] [... nombre_archivoN.ppd"
+"[.gz]]"
msgid ""
"Usage: ippfind [options] regtype[,subtype][.domain.] ... [expression]\n"
msgid "lpinfo: Expected timeout after \"--timeout\"."
msgstr "lpinfo: Se esperaba un tiempo de espera tras \"--timeout\"."
-#, c-format
-msgid "lpinfo: Unknown argument \"%s\"."
-msgstr "lpinfo: Argumento \"%s\" desconocido."
-
-#, c-format
-msgid "lpinfo: Unknown option \"%c\"."
-msgstr "lpinfo: Opción \"%c\" desconocida."
-
-#, c-format
-msgid "lpinfo: Unknown option \"%s\"."
-msgstr "lpinfo: Opción \"%s\" desconocida."
-
#, c-format
msgid "lpmove: Unable to connect to server: %s"
msgstr "lpmove: No se ha podido conectar al servidor: %s"
msgid "lpmove: Unknown argument \"%s\"."
msgstr "lpmove: Argumento \"%s\" desconocido."
-#, c-format
-msgid "lpmove: Unknown option \"%c\"."
-msgstr "lpmove: Opción \"%c\" desconocida."
-
msgid "lpoptions: No printers."
msgstr "lpoptions: No hay impresoras."
#~ msgid "\tInterface: %s/interfaces/%s"
#~ msgstr "\tInterfaz: %s/interfaces/%s"
+#~ msgid " --lf End lines with LF (UNIX/Linux/OS X)."
+#~ msgstr ""
+#~ " --lf Finalizar líneas con LF (UNIX/Linux/OS X)."
+
#~ msgid " -a Browse for all services."
#~ msgstr " -a Explorar todos los servicios."
#~ msgid "lpadmin: Expected interface after \"-i\" option."
#~ msgstr "lpadmin: Se esperaba una interfaz tras la opción \"-i\"."
+
+#~ msgid "lpinfo: Unknown argument \"%s\"."
+#~ msgstr "lpinfo: Argumento \"%s\" desconocido."
+
+#~ msgid "lpinfo: Unknown option \"%c\"."
+#~ msgstr "lpinfo: Opción \"%c\" desconocida."
+
+#~ msgid "lpinfo: Unknown option \"%s\"."
+#~ msgstr "lpinfo: Opción \"%s\" desconocida."
+
+#~ msgid "lpmove: Unknown option \"%c\"."
+#~ msgstr "lpmove: Opción \"%c\" desconocida."
msgstr ""
"Project-Id-Version: CUPS 1.6\n"
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
-"POT-Creation-Date: 2016-05-02 18:01-0400\n"
+"POT-Creation-Date: 2016-06-20 15:18-0400\n"
"PO-Revision-Date: 2012-12-12 11:12+0100\n"
"Last-Translator: denis meramdjougoma <dcmeram@libertysurf.fr>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgid " --host regex Match hostname to regular expression."
msgstr ""
-msgid " --lf End lines with LF (UNIX/Linux/OS X)."
+msgid " --lf End lines with LF (UNIX/Linux/macOS)."
msgstr ""
msgid " --list-filters List filters that will be used."
msgid "%s: Error - cannot print from stdin if files or a job ID are provided."
msgstr ""
+#, c-format
+msgid "%s: Error - copies must be 1 or more."
+msgstr ""
+
#, c-format
msgid "%s: Error - expected character set after \"-S\" option."
msgstr ""
msgid "%s: Unable to resolve \"%s\"."
msgstr ""
+#, c-format
+msgid "%s: Unknown argument \"%s\"."
+msgstr ""
+
#, c-format
msgid "%s: Unknown destination \"%s\"."
msgstr ""
msgid "lpinfo: Expected timeout after \"--timeout\"."
msgstr ""
-#, c-format
-msgid "lpinfo: Unknown argument \"%s\"."
-msgstr ""
-
-#, c-format
-msgid "lpinfo: Unknown option \"%c\"."
-msgstr ""
-
-#, c-format
-msgid "lpinfo: Unknown option \"%s\"."
-msgstr ""
-
#, c-format
msgid "lpmove: Unable to connect to server: %s"
msgstr ""
msgid "lpmove: Unknown argument \"%s\"."
msgstr ""
-#, c-format
-msgid "lpmove: Unknown option \"%c\"."
-msgstr ""
-
msgid "lpoptions: No printers."
msgstr ""
msgstr ""
"Project-Id-Version: CUPS 1.6\n"
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
-"POT-Creation-Date: 2016-05-02 18:01-0400\n"
+"POT-Creation-Date: 2016-06-20 15:18-0400\n"
"PO-Revision-Date: 2013-07-14 12:00+0200\n"
"Last-Translator: Giovanni Scafora <giovanni@archlinux.org>\n"
"Language-Team: Arch Linux Italian Team <giovanni@archlinux.org>\n"
" --host regex Corrispondenza dell'hostname con l'espressione "
"regolare."
-msgid " --lf End lines with LF (UNIX/Linux/OS X)."
-msgstr " --lf Termina le righe con LF (UNIX/Linux/OS X)."
+msgid " --lf End lines with LF (UNIX/Linux/macOS)."
+msgstr ""
msgid " --list-filters List filters that will be used."
msgstr ""
"%s: errore - non è possibile stampare da stdin se non si fornisce un file o "
"un ID del processo."
+#, c-format
+msgid "%s: Error - copies must be 1 or more."
+msgstr ""
+
#, c-format
msgid "%s: Error - expected character set after \"-S\" option."
msgstr "%s: errore - è previsto un set di caratteri dopo l'opzione \"-S\"."
msgid "%s: Unable to resolve \"%s\"."
msgstr ""
+#, c-format
+msgid "%s: Unknown argument \"%s\"."
+msgstr ""
+
#, c-format
msgid "%s: Unknown destination \"%s\"."
msgstr "%s: destinazione sconosciuta \"%s\"."
msgid "lpinfo: Expected timeout after \"--timeout\"."
msgstr "lpinfo: è previsto un timeout dopo \"--timeout\"."
-#, c-format
-msgid "lpinfo: Unknown argument \"%s\"."
-msgstr "lpinfo: argomento sconosciuto \"%s\"."
-
-#, c-format
-msgid "lpinfo: Unknown option \"%c\"."
-msgstr "lpinfo: opzione sconosciuta \"%c\"."
-
-#, c-format
-msgid "lpinfo: Unknown option \"%s\"."
-msgstr "lpinfo: opzione sconosciuta \"%s\"."
-
#, c-format
msgid "lpmove: Unable to connect to server: %s"
msgstr "lpmove: non è possibile connettersi al server: %s"
msgid "lpmove: Unknown argument \"%s\"."
msgstr "lpmove: argomento sconosciuto \"%s\"."
-#, c-format
-msgid "lpmove: Unknown option \"%c\"."
-msgstr "lpmove: opzione sconosciuta \"%c\"."
-
msgid "lpoptions: No printers."
msgstr "lpoptions: nessuna stampante."
#~ msgid "\tInterface: %s/interfaces/%s"
#~ msgstr "\tInterfaccia: %s/interfacce/%s"
+#~ msgid " --lf End lines with LF (UNIX/Linux/OS X)."
+#~ msgstr ""
+#~ " --lf Termina le righe con LF (UNIX/Linux/OS X)."
+
#~ msgid " -a Browse for all services."
#~ msgstr " -a Mostra tutti i servizi."
#~ msgid "lpadmin: Expected interface after \"-i\" option."
#~ msgstr "lpadmin: è prevista l'interfaccia dopo l'opzione \"-i\"."
+#~ msgid "lpinfo: Unknown argument \"%s\"."
+#~ msgstr "lpinfo: argomento sconosciuto \"%s\"."
+
+#~ msgid "lpinfo: Unknown option \"%c\"."
+#~ msgstr "lpinfo: opzione sconosciuta \"%c\"."
+
+#~ msgid "lpinfo: Unknown option \"%s\"."
+#~ msgstr "lpinfo: opzione sconosciuta \"%s\"."
+
+#~ msgid "lpmove: Unknown option \"%c\"."
+#~ msgstr "lpmove: opzione sconosciuta \"%c\"."
+
#~ msgid "lppasswd: Only root can add or delete passwords."
#~ msgstr "lppasswd: solo root può aggiungere o eliminare le password."
msgstr ""
"Project-Id-Version: CUPS 2.0\n"
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
-"POT-Creation-Date: 2016-05-02 18:01-0400\n"
+"POT-Creation-Date: 2016-06-20 15:18-0400\n"
"PO-Revision-Date: 2014-11-15 19:27+0900\n"
"Last-Translator: OPFC TRANSCUPS <opfc-transcups@sourceforge.jp>\n"
"Language-Team: OPFC TRANSCUPS <opfc-transcups@sourceforge.jp>\n"
msgid " --host regex Match hostname to regular expression."
msgstr " --host <正規表現> ホスト名が正規表現にマッチするか。"
-msgid " --lf End lines with LF (UNIX/Linux/OS X)."
-msgstr " --lf 行末を LF とする (UNIX/Linux/OS X)。"
+msgid " --lf End lines with LF (UNIX/Linux/macOS)."
+msgstr ""
msgid " --list-filters List filters that will be used."
msgstr " --list-filters 使用されるフィルターのリストを表示する。"
"%s: エラー - ファイルまたはジョブ ID が提供されている場合、標準入力から印刷で"
"きません。 "
+#, c-format
+msgid "%s: Error - copies must be 1 or more."
+msgstr ""
+
#, c-format
msgid "%s: Error - expected character set after \"-S\" option."
msgstr "%s: エラー - \"-S\" オプションのあとには文字セットが必要です。"
msgid "%s: Unable to resolve \"%s\"."
msgstr ""
+#, c-format
+msgid "%s: Unknown argument \"%s\"."
+msgstr ""
+
#, c-format
msgid "%s: Unknown destination \"%s\"."
msgstr "%s: \"%s\" は未知の宛先です。"
msgstr ""
"lpinfo: \"--timeout\" のあとには、タイムアウト値を指定する必要があります。"
-#, c-format
-msgid "lpinfo: Unknown argument \"%s\"."
-msgstr "lpinfo: 未知の引数 \"%s\"。"
-
-#, c-format
-msgid "lpinfo: Unknown option \"%c\"."
-msgstr "lpinfo: 未知のオプション \"%c\"。"
-
-#, c-format
-msgid "lpinfo: Unknown option \"%s\"."
-msgstr "lpinfo: 未知のオプション \"%s\"。"
-
#, c-format
msgid "lpmove: Unable to connect to server: %s"
msgstr "lpmove: サーバーに接続できません: %s"
msgid "lpmove: Unknown argument \"%s\"."
msgstr "lpmove: 未知の引数 \"%s\"。"
-#, c-format
-msgid "lpmove: Unknown option \"%c\"."
-msgstr "lpmove: 未知のオプション \"%c\"。"
-
msgid "lpoptions: No printers."
msgstr "lpoptions: プリンターがありません。"
#~ msgid "\tInterface: %s/interfaces/%s"
#~ msgstr "\tインターフェイス: %s/interfaces/%s"
+#~ msgid " --lf End lines with LF (UNIX/Linux/OS X)."
+#~ msgstr " --lf 行末を LF とする (UNIX/Linux/OS X)。"
+
#~ msgid " -a Browse for all services."
#~ msgstr " -a すべてのサービスをブラウズする。"
#~ msgid "lpadmin: Expected interface after \"-i\" option."
#~ msgstr "lpadmin: \"-i\" オプションのあとにはインターフェイス名が必要です。"
+#~ msgid "lpinfo: Unknown argument \"%s\"."
+#~ msgstr "lpinfo: 未知の引数 \"%s\"。"
+
+#~ msgid "lpinfo: Unknown option \"%c\"."
+#~ msgstr "lpinfo: 未知のオプション \"%c\"。"
+
+#~ msgid "lpinfo: Unknown option \"%s\"."
+#~ msgstr "lpinfo: 未知のオプション \"%s\"。"
+
+#~ msgid "lpmove: Unknown option \"%c\"."
+#~ msgstr "lpmove: 未知のオプション \"%c\"。"
+
#~ msgid "lppasswd: Only root can add or delete passwords."
#~ msgstr "lppasswd: root だけがパスワードの追加と削除を行えます。"
msgstr ""
"Project-Id-Version: CUPS 2.1.2\n"
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
-"POT-Creation-Date: 2016-05-02 18:01-0400\n"
+"POT-Creation-Date: 2016-06-20 15:18-0400\n"
"PO-Revision-Date: 2016-01-31 16:45-0200\n"
"Last-Translator: Rafael Fontenelle <rffontenelle@gmail.com>\n"
"Language-Team: Brazilian Portuguese <traducao-cups-pt-br@googlegroups.com>\n"
msgstr ""
" --host regex Corresponde o nome da máquina à expressão regular."
-msgid " --lf End lines with LF (UNIX/Linux/OS X)."
-msgstr " --lf Fim de linhas com LF (UNIX/Linux/OS X)."
+msgid " --lf End lines with LF (UNIX/Linux/macOS)."
+msgstr ""
msgid " --list-filters List filters that will be used."
msgstr " --list-filters Lista filtros que serão usados."
"%s: Erro - não é possível imprimir de stdin se os arquivos ou um ID de "
"trabalho forem fornecidos."
+#, c-format
+msgid "%s: Error - copies must be 1 or more."
+msgstr ""
+
#, c-format
msgid "%s: Error - expected character set after \"-S\" option."
msgstr "%s: Erro - esperava uma codificação de caracteres após a opção \"-S\"."
msgid "%s: Unable to resolve \"%s\"."
msgstr "%s: Não foi possível resolver \"%s\"."
+#, c-format
+msgid "%s: Unknown argument \"%s\"."
+msgstr ""
+
#, c-format
msgid "%s: Unknown destination \"%s\"."
msgstr "%s: Destino desconhecido \"%s\"."
msgid "lpinfo: Expected timeout after \"--timeout\"."
msgstr "lpinfo: Esperava tempo de espera após \"--timeout\"."
-#, c-format
-msgid "lpinfo: Unknown argument \"%s\"."
-msgstr "lpinfo: Argumento desconhecido \"%s\"."
-
-#, c-format
-msgid "lpinfo: Unknown option \"%c\"."
-msgstr "lpinfo: Opção desconhecida \"%c\"."
-
-#, c-format
-msgid "lpinfo: Unknown option \"%s\"."
-msgstr "lpinfo: Opção desconhecida \"%s\"."
-
#, c-format
msgid "lpmove: Unable to connect to server: %s"
msgstr "lpmove: Não foi possível conectar ao servidor: %s"
msgid "lpmove: Unknown argument \"%s\"."
msgstr "lpmove: Argumento desconhecido \"%s\"."
-#, c-format
-msgid "lpmove: Unknown option \"%c\"."
-msgstr "lpmove: Opção desconhecida \"%c\"."
-
msgid "lpoptions: No printers."
msgstr "lpoptions: Nenhuma impressora."
#~ msgid "\tInterface: %s/interfaces/%s"
#~ msgstr "\tInterface: %s/interfaces/%s"
+#~ msgid " --lf End lines with LF (UNIX/Linux/OS X)."
+#~ msgstr " --lf Fim de linhas com LF (UNIX/Linux/OS X)."
+
#~ msgid " -a Browse for all services."
#~ msgstr " -a Navega por todos os serviços."
#~ msgid "lpadmin: Expected interface after \"-i\" option."
#~ msgstr "lpadmin: Esperava interface após a opção \"-i\"."
+#~ msgid "lpinfo: Unknown argument \"%s\"."
+#~ msgstr "lpinfo: Argumento desconhecido \"%s\"."
+
+#~ msgid "lpinfo: Unknown option \"%c\"."
+#~ msgstr "lpinfo: Opção desconhecida \"%c\"."
+
+#~ msgid "lpinfo: Unknown option \"%s\"."
+#~ msgstr "lpinfo: Opção desconhecida \"%s\"."
+
+#~ msgid "lpmove: Unknown option \"%c\"."
+#~ msgstr "lpmove: Opção desconhecida \"%c\"."
+
#~ msgid "lppasswd: Only root can add or delete passwords."
#~ msgstr "lppasswd: Somente o root pode adicionar ou excluir senhas."
msgstr ""
"Project-Id-Version: CUPS 2.0\n"
"Report-Msgid-Bugs-To: http://www.cups.org/str.php\n"
-"POT-Creation-Date: 2016-05-02 18:01-0400\n"
+"POT-Creation-Date: 2016-06-20 15:18-0400\n"
"PO-Revision-Date: 2015-01-28 12:00-0800\n"
"Last-Translator: Aleksandr Proklov\n"
"Language-Team: PuppyRus Linux Team\n"
msgid " --host regex Match hostname to regular expression."
msgstr " --host regex Найти hostname по регулярному выражению."
-msgid " --lf End lines with LF (UNIX/Linux/OS X)."
+msgid " --lf End lines with LF (UNIX/Linux/macOS)."
msgstr ""
-" --lf Строки заканчиваются на LF (UNIX/Linux/Mac OS X)."
msgid " --list-filters List filters that will be used."
msgstr ""
"%s: Ошибка - не удается печать из stdin, если предоставлены файлы или ID "
"задания."
+#, c-format
+msgid "%s: Error - copies must be 1 or more."
+msgstr ""
+
#, c-format
msgid "%s: Error - expected character set after \"-S\" option."
msgstr "%s: Ошибка - после параметра \"-S\" должен идти набор символов."
msgid "%s: Unable to resolve \"%s\"."
msgstr ""
+#, c-format
+msgid "%s: Unknown argument \"%s\"."
+msgstr ""
+
#, c-format
msgid "%s: Unknown destination \"%s\"."
msgstr "%s: Неизвестное назначение \"%s\"."
msgid "lpinfo: Expected timeout after \"--timeout\"."
msgstr "lpinfo: После \"--timeout\" должно быть указано время ожидания"
-#, c-format
-msgid "lpinfo: Unknown argument \"%s\"."
-msgstr "lpinfo: Неизвестный аргумент \"%s\"."
-
-#, c-format
-msgid "lpinfo: Unknown option \"%c\"."
-msgstr "lpinfo: Неизвестный параметр \"%c\"."
-
-#, c-format
-msgid "lpinfo: Unknown option \"%s\"."
-msgstr "lpinfo: Неизвестный параметр \"%s\"."
-
#, c-format
msgid "lpmove: Unable to connect to server: %s"
msgstr "lpmove: Не удается подключиться к серверу: %s"
msgid "lpmove: Unknown argument \"%s\"."
msgstr "lpmove: Неизвестный аргумент \"%s\"."
-#, c-format
-msgid "lpmove: Unknown option \"%c\"."
-msgstr "lpmove: Неизвестный параметр \"%c\"."
-
msgid "lpoptions: No printers."
msgstr "lpoptions: Нет принтеров."
#~ " Комментарий %%EndComments отсутствует.\n"
#~ " REF: Стр. 41, %%EndComments"
+#~ msgid " --lf End lines with LF (UNIX/Linux/OS X)."
+#~ msgstr ""
+#~ " --lf Строки заканчиваются на LF (UNIX/Linux/Mac OS "
+#~ "X)."
+
#~ msgid " -a Browse for all services."
#~ msgstr " -a Обзор всех сервисов."
#~ msgid "lpadmin: Expected interface after \"-i\" option."
#~ msgstr "lpadmin: После параметра \"-i\" должен быть указан интерфейс."
+
+#~ msgid "lpinfo: Unknown argument \"%s\"."
+#~ msgstr "lpinfo: Неизвестный аргумент \"%s\"."
+
+#~ msgid "lpinfo: Unknown option \"%c\"."
+#~ msgstr "lpinfo: Неизвестный параметр \"%c\"."
+
+#~ msgid "lpinfo: Unknown option \"%s\"."
+#~ msgstr "lpinfo: Неизвестный параметр \"%s\"."
+
+#~ msgid "lpmove: Unknown option \"%c\"."
+#~ msgstr "lpmove: Неизвестный параметр \"%c\"."
.I argv[0]
and
.B 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.
+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 macOS) 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
.BR lp (1)
.\" 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" "18 May 2016" "Apple Inc."
+.TH client.conf 5 "CUPS" "20 June 2016" "Apple Inc."
.SH NAME
client.conf \- client configuration file for cups
.SH DESCRIPTION
The \fBclient.conf\fR file configures the CUPS client and is normally located in the \fI/etc/cups\fR and/or \fI~/.cups\fR directories.
Each line in the file can be a configuration directive, a blank line, or a comment. Comment lines start with the # character.
.LP
-\fBNote:\fR Starting with OS X 10.7, this file is only used by command-line and X11 applications plus the IPP backend.
-The \fBServerName\fR directive is not supported on OS X at all.
-Starting with OS X 10.TODO, all applications can access these settings in the \fI/Library/Preferences/org.cups.PrintingPrefs.plist\fR file instead.
+\fBNote:\fR Starting with macOS 10.7, this file is only used by command-line and X11 applications plus the IPP backend.
+The \fBServerName\fR directive is not supported on macOS at all.
+Starting with macOS 10.12, all applications can access these settings in the \fI/Library/Preferences/org.cups.PrintingPrefs.plist\fR file instead.
See the NOTES section below for more information.
.SS DIRECTIVES
The following directives are understood by the client. Consult the online help for detailed descriptions:
.TP 5
\fBServerName \fI/domain/socket\fR
Specifies the address and optionally the port to use when connecting to the server.
-\fBNote: This directive it not supported on OS X 10.7 or later.\fR
+\fBNote: This directive it not supported on macOS 10.7 or later.\fR
.TP 5
\fBServerName \fIhostname-or-ip-address\fR[\fI:port\fR]\fB/version=1.1\fR
Specifies the address and optionally the port to use when connecting to a server running CUPS 1.3.12 and earlier.
Specifies whether to only allow TLS with certificates whose common name matches the hostname.
The default is "No".
.SH NOTES
-The \fBclient.conf\fR file is deprecated on OS X and will no longer be supported in a future version of CUPS.
+The \fBclient.conf\fR file is deprecated on macOS and will no longer be supported in a future version of CUPS.
Configuration settings can instead be viewed or changed using the
.BR defaults (1)
command:
.\"
.\" cups-files.conf man page for CUPS.
.\"
-.\" Copyright 2007-2015 by Apple Inc.
+.\" Copyright 2007-2016 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 cups-files.conf 5 "CUPS" "3 June 2015" "Apple Inc."
+.TH cups-files.conf 5 "CUPS" "20 June 2016" "Apple Inc."
.SH NAME
cups\-files.conf \- file and directory configuration file for cups
.SH DESCRIPTION
.TP 5
\fBConfigFilePerm \fImode\fR
Specifies the permissions for all configuration files that the scheduler writes.
-The default is "0644" on OS X and "0640" on all other operating systems.
+The default is "0644" on macOS and "0640" on all other operating systems.
.LP
\fBNote:\fR The permissions for the \fIprinters.conf\fR file are currently masked to only allow access from the scheduler user (typically root).
This is done because printer device URIs sometimes contain sensitive authentication information that should not be generally known on the system.
\fBSandboxing strict\fR
Specifies the level of security sandboxing that is applied to print filters, backends, and other child processes of the scheduler.
The default is "strict".
-This directive is currently only used/supported on OS X.
+This directive is currently only used/supported on macOS.
.\"#ServerBin
.TP 5
\fBServerBin \fIdirectory\fR
.TP 5
\fBServerKeychain \fIpath\fR
Specifies the location of TLS certificates and private keys.
-The default is "/Library/Keychains/System.keychain" on OS X and "/etc/cups/ssl" on all other operating systems.
-OS X uses its keychain database to store certificates and keys while other platforms use separate files in the specified directory, *.crt for PEM-encoded certificates and *.key for PEM-encoded private keys.
+The default is "/Library/Keychains/System.keychain" on macOS and "/etc/cups/ssl" on all other operating systems.
+macOS uses its keychain database to store certificates and keys while other platforms use separate files in the specified directory, *.crt for PEM-encoded certificates and *.key for PEM-encoded private keys.
.\"#ServerRoot
.TP 5
\fBServerRoot \fIdirectory\fR
.LP
The \fBcups-driverd\fR helper program lists all available printer drivers, a subset of "matching" printer drivers, or a copy of a specific driver PPD file.
.LP
-The \fBcups-exec\fR helper program runs backends, filters, and other programs. On OS X these programs are run in a secure sandbox.
+The \fBcups-exec\fR helper program runs backends, filters, and other programs. On macOS these programs are run in a secure sandbox.
.SH FILES
The \fBcups-driverd\fR program looks for PPD and driver information files in the following directories:
.nf
While the filter interface is compatible with System V interface scripts, CUPS does not support System V interface scripts.
.SH NOTES
CUPS filters are not meant to be run directly by the user.
-Aside from the legacy System V interface issues (\fIargv[0]\fR 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.
+Aside from the legacy System V interface issues (\fIargv[0]\fR is the printer name), CUPS filters also expect specific environment variables and file descriptors, and typically run in a user session that (on macOS) 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
.BR cupsfilter (8)
.br
\fI/usr/lib/cups/filter\fR - Typical CUPS filter directory.
.br
-\fI/usr/libexec/cups/filter\fR - CUPS filter directory on OS X.
+\fI/usr/libexec/cups/filter\fR - CUPS filter directory on macOS.
.SH EXAMPLES
Define a filter that converts PostScript documents to CUPS Raster format:
.nf
]
.I source-file
.SH DESCRIPTION
-\fBppdpo\fR extracts UI strings from PPDC source files and updates either a GNU gettext or OS X strings format message catalog source file for translation.
+\fBppdpo\fR extracts UI strings from PPDC source files and updates either a GNU gettext or macOS strings format message catalog source file for translation.
\fBThis program is deprecated and will be removed in a future release of CUPS.\fR
.SH OPTIONS
\fBppdpo\fR supports the following options:
.TP 5
\fB\-o \fIoutput-file\fR
Specifies the output file.
-The supported extensions are \fI.po\fR or \fI.po.gz\fR for GNU gettext format message catalogs and \fI.strings\fR for OS X strings files.
+The supported extensions are \fI.po\fR or \fI.po.gz\fR for GNU gettext format message catalogs and \fI.strings\fR for macOS strings files.
.SH SEE ALSO
.BR ppdc (1),
.BR ppdhtml (1),
+++ /dev/null
-#!/bin/sh
-case `uname -r` in
- # OS X 10.7.x
- 11.*) exit 0;;
-
- # OS X 10.8.x
- 12.*) exit 0;;
-
- # Older OS X...
- *) exit 97;;
-esac
+++ /dev/null
-{\rtf1\ansi\ansicpg1252\cocoartf1011
-{\fonttbl\f0\froman\fcharset0 Times-Roman;\f1\fnil\fcharset0 LucidaGrande;\f2\fmodern\fcharset0 Courier;
-\f3\fmodern\fcharset0 Courier-Oblique;}
-{\colortbl;\red255\green255\blue255;\red0\green0\blue238;}
-{\*\listtable{\list\listtemplateid1\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid1}
-{\list\listtemplateid2\listhybrid{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{decimal\}.}{\leveltext\leveltemplateid101\'02\'00.;}{\levelnumbers\'01;}\fi-360\li720\lin720 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{decimal\}.}{\leveltext\leveltemplateid102\'02\'01.;}{\levelnumbers\'01;}\fi-360\li1440\lin1440 }{\listname ;}\listid2}
-{\list\listtemplateid3\listhybrid{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{decimal\}.}{\leveltext\leveltemplateid201\'02\'00.;}{\levelnumbers\'01;}\fi-360\li720\lin720 }{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{decimal\}.}{\leveltext\leveltemplateid202\'02\'01.;}{\levelnumbers\'01;}\fi-360\li1440\lin1440 }{\listname ;}\listid3}
-{\list\listtemplateid4\listhybrid{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{decimal\}.}{\leveltext\leveltemplateid301\'02\'00.;}{\levelnumbers\'01;}\fi-360\li720\lin720 }{\listname ;}\listid4}
-{\list\listtemplateid5\listhybrid{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{decimal\}.}{\leveltext\leveltemplateid401\'02\'00.;}{\levelnumbers\'01;}\fi-360\li720\lin720 }{\listname ;}\listid5}
-{\list\listtemplateid6\listhybrid{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{decimal\}.}{\leveltext\leveltemplateid501\'02\'00.;}{\levelnumbers\'01;}\fi-360\li720\lin720 }{\listname ;}\listid6}
-{\list\listtemplateid7\listhybrid{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{decimal\}.}{\leveltext\leveltemplateid601\'02\'00.;}{\levelnumbers\'01;}\fi-360\li720\lin720 }{\listname ;}\listid7}}
-{\*\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}{\listoverride\listid2\listoverridecount0\ls2}{\listoverride\listid3\listoverridecount0\ls3}{\listoverride\listid4\listoverridecount0\ls4}{\listoverride\listid5\listoverridecount0\ls5}{\listoverride\listid6\listoverridecount0\ls6}{\listoverride\listid7\listoverridecount0\ls7}}
-\margl1440\margr1440\margb1800\margt1800\vieww9000\viewh8400\viewkind0
-\deftab720
-\pard\pardeftab720\sa280\qc
-
-\f0\b\fs36 \cf0 CUPS License Agreement\
-\pard\pardeftab720\sa240\qc
-
-\b0\fs24 \cf0 Copyright 2007-2009 by Apple Inc.
-\f1 \uc0\u8232
-\f0 1 Infinite Loop
-\f1 \uc0\u8232
-\f0 Cupertino, CA 95014 USA
-\f1 \uc0\u8232 \u8232
-\f0 WWW: {\field{\*\fldinst{HYPERLINK "http://www.cups.org/"}}{\fldrslt \cf2 \ul \ulc2 http://www.cups.org}}\
-\pard\pardeftab720\sa280\ql\qnatural
-
-\b\fs28 \cf0 Introduction\
-\pard\pardeftab720\sa240\ql\qnatural
-
-\b0\fs24 \cf0 CUPS
-\fs20 \super TM
-\fs24 \nosupersub is provided under the GNU General Public License ("GPL") and GNU Library General Public License ("LGPL"), Version 2, with exceptions for Apple operating systems and the OpenSSL toolkit. A copy of the exceptions and licenses follow this introduction.\
-The GNU LGPL applies to the CUPS API library, located in the "cups" subdirectory of the CUPS source distribution and in the "cups" include directory and library files in the binary distributions. The GNU GPL applies to the remainder of the CUPS distribution, including the "pdftops" filter which is based upon Xpdf and the CUPS imaging library.\
-For those not familiar with the GNU GPL, the license basically allows you to:\
-\pard\tx220\tx720\pardeftab720\li720\fi-720\ql\qnatural
-\ls1\ilvl0\cf0 {\listtext \'95 }Use the CUPS software at no charge.\
-{\listtext \'95 }Distribute verbatim copies of the software in source or binary form.\
-{\listtext \'95 }Sell verbatim copies of the software for a media fee, or sell support for the software.\
-{\listtext \'95 }Distribute or sell printer drivers and filters that use CUPS so long as source code is made available under the GPL.\
-\pard\pardeftab720\sa240\ql\qnatural
-\cf0 What this license
-\b does not
-\b0 allow you to do is make changes or add features to CUPS and then sell a binary distribution without source code. You must provide source for any new drivers, changes, or additions to the software, and all code must be provided under the GPL or LGPL as appropriate. The only exceptions to this are the portions of the CUPS software covered by the Apple operating system license exceptions outlined later in this license agreement.\
-The GNU LGPL relaxes the "link-to" restriction, allowing you to develop applications that use the CUPS API library under other licenses and/or conditions as appropriate for your application.\
-\pard\pardeftab720\sa280\ql\qnatural
-
-\b\fs28 \cf0 License Exceptions\
-\pard\pardeftab720\sa240\ql\qnatural
-
-\b0\fs24 \cf0 In addition, as the copyright holder of CUPS, Apple Inc. grants the following special exceptions:\
-\pard\tx220\tx720\pardeftab720\li720\fi-720\ql\qnatural
-\ls2\ilvl0
-\b \cf0 {\listtext 1. }Apple Operating System Development License Exception
-\b0 ;\
-\pard\tx940\tx1440\pardeftab720\li1440\fi-1440\ql\qnatural
-\ls2\ilvl1\cf0 {\listtext 1. }Software that is developed by any person or entity for an Apple Operating System ("Apple OS-Developed Software"), including but not limited to Apple and third party printer drivers, filters, and backends for an Apple Operating System, that is linked to the CUPS imaging library or based on any sample filters or backends provided with CUPS shall not be considered to be a derivative work or collective work based on the CUPS program and is exempt from the mandatory source code release clauses of the GNU GPL. You may therefore distribute linked combinations of the CUPS imaging library with Apple OS-Developed Software without releasing the source code of the Apple OS-Developed Software. You may also use sample filters and backends provided with CUPS to develop Apple OS-Developed Software without releasing the source code of the Apple OS-Developed Software.\
-{\listtext 2. }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.\
-{\listtext 3. }This exception is only available for Apple OS-Developed Software and does not apply to software that is distributed for use on other operating systems.\
-{\listtext 4. }All CUPS software that falls under this license exception have the following text at the top of each source file:\
-{\listtext 5. }This file is subject to the Apple OS-Developed Software exception.\
-\pard\tx220\tx720\pardeftab720\li720\fi-720\ql\qnatural
-\ls2\ilvl0
-\b \cf0 {\listtext 2. }OpenSSL Toolkit License Exception
-\b0 ;\
-\pard\tx940\tx1440\pardeftab720\li1440\fi-1440\ql\qnatural
-\ls2\ilvl1\cf0 {\listtext 1. }Apple Inc. explicitly allows the compilation and distribution of the CUPS software with the OpenSSL Toolkit.\
-\pard\pardeftab720\sa240\ql\qnatural
-\cf0 No developer is required to provide these exceptions in a derived work.\
-\pard\pardeftab720\sa280\ql\qnatural
-
-\b\fs28 \cf0 Trademarks\
-\pard\pardeftab720\sa240\ql\qnatural
-
-\b0\fs24 \cf0 CUPS and the CUPS logo (the "CUPS Marks") are trademarks of Apple Inc. Apple grants you a non-exclusive and non-transferable right to use the CUPS Marks in any direct port or binary distribution incorporating CUPS software and in any promotional material therefor. You agree that your products will meet the highest levels of quality and integrity for similar goods, not be unlawful, and be developed, manufactured, and distributed in compliance with this license. You will not interfere with Apple's rights in the CUPS Marks, and all use of the CUPS Marks shall inure to the benefit of Apple. This license does not apply to use of the CUPS Marks in a derivative products, which requires prior written permission from Apple Inc.\
-\pard\pardeftab720\sa280\ql\qnatural
-
-\b\fs28 \cf0 \page \pard\pardeftab720\sa280\ql\qnatural
-
-\fs36 \cf0 GNU GENERAL PUBLIC LICENSE\
-\pard\pardeftab720\sa240\ql\qnatural
-
-\b0\fs24 \cf0 Version 2, June 1991\
-\pard\pardeftab720\ql\qnatural
-
-\f2 \cf0 Copyright 1989, 1991 Free Software Foundation, Inc.\
-59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\
-\
-Everyone is permitted to copy and distribute verbatim\
-copies of this license document, but changing it is not allowed.\
-\pard\pardeftab720\sa300\ql\qnatural
-
-\f0\b \cf0 Preamble\
-\pard\pardeftab720\sa240\ql\qnatural
-
-\b0 \cf0 The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too.\
-When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.\
-To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.\
-For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.\
-We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.\
-Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.\
-Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.\
-The precise terms and conditions for copying, distribution and modification follow.\
-\pard\pardeftab720\sa300\ql\qnatural
-
-\b \cf0 GNU GENERAL PUBLIC LICENSE
-\f1 \uc0\u8232
-\f0 TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\
-\pard\tx220\tx720\pardeftab720\li720\fi-720\ql\qnatural
-\ls3\ilvl0
-\b0 \cf0 {\listtext 1. }This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".\
-\pard\tx220\tx720\pardeftab720\li720\fi-720\sa240\ql\qnatural
-\ls3\ilvl0\cf0 {\listtext 2. }Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.\
-\pard\tx220\tx720\pardeftab720\li720\fi-720\ql\qnatural
-\ls3\ilvl0\cf0 {\listtext 3. }You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.\
-\pard\tx220\tx720\pardeftab720\li720\fi-720\sa240\ql\qnatural
-\ls3\ilvl0\cf0 {\listtext 4. }You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.\
-\pard\tx220\tx720\pardeftab720\li720\fi-720\ql\qnatural
-\ls3\ilvl0\cf0 {\listtext 5. }You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:\
-\pard\tx940\tx1440\pardeftab720\li1440\fi-1440\ql\qnatural
-\ls3\ilvl1\cf0 {\listtext 1. }You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.\
-{\listtext 2. }You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.\
-{\listtext 3. }if the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)\
-\pard\tx220\tx720\pardeftab720\li720\fi-720\sa240\ql\qnatural
-\ls3\ilvl0\cf0 {\listtext 6. }These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.\
-{\listtext 7. }Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.\
-{\listtext 8. }In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.\
-\pard\tx220\tx720\pardeftab720\li720\fi-720\ql\qnatural
-\ls3\ilvl0\cf0 {\listtext 9. }You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:\
-\pard\tx940\tx1440\pardeftab720\li1440\fi-1440\ql\qnatural
-\ls3\ilvl1\cf0 {\listtext 1. }Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,\
-{\listtext 2. }Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,\
-{\listtext 3. }Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)\
-\pard\tx220\tx720\pardeftab720\li720\fi-720\sa240\ql\qnatural
-\ls3\ilvl0\cf0 {\listtext 10. }The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.\
-{\listtext 11. }If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.\
-\pard\tx220\tx720\pardeftab720\li720\fi-720\ql\qnatural
-\ls3\ilvl0\cf0 {\listtext 12. }You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.\
-{\listtext 13. }You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.\
-{\listtext 14. }Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.\
-{\listtext 15. }If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.\
-\pard\tx220\tx720\pardeftab720\li720\fi-720\sa240\ql\qnatural
-\ls3\ilvl0\cf0 {\listtext 16. }If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.\
-{\listtext 17. }It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.\
-{\listtext 18. }This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.\
-\pard\tx220\tx720\pardeftab720\li720\fi-720\ql\qnatural
-\ls3\ilvl0\cf0 {\listtext 19. }If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.\
-{\listtext 20. }The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.\
-\pard\tx220\tx720\pardeftab720\li720\fi-720\sa240\ql\qnatural
-\ls3\ilvl0\cf0 {\listtext 21. }Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.\
-\pard\tx220\tx720\pardeftab720\li720\fi-720\ql\qnatural
-\ls3\ilvl0\cf0 {\listtext 22. }If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.\
-\pard\pardeftab720\sa300\ql\qnatural
-
-\b \cf0 NO WARRANTY\
-\pard\tx220\tx720\pardeftab720\li720\fi-720\ql\qnatural
-\ls4\ilvl0
-\b0 \cf0 {\listtext 1. }BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.\
-{\listtext 2. }IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.\
-\pard\pardeftab720\sa300\ql\qnatural
-
-\b \cf0 END OF TERMS AND CONDITIONS\
-How to Apply These Terms to Your New Programs\
-\pard\pardeftab720\sa240\ql\qnatural
-
-\b0 \cf0 If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.\
-To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.\
-\pard\pardeftab720\ql\qnatural
-
-\f3\i \cf0 one line to give the program's name and an idea of what it does.
-\f2\i0 \
-Copyright (C)
-\f3\i yyyy
-\f2\i0
-\f3\i name of author
-\f2\i0 \
-\
-This program is free software; you can redistribute it and/or\
-modify it under the terms of the GNU General Public License\
-as published by the Free Software Foundation; either version 2\
-of the License, or (at your option) any later version.\
-\
-This program is distributed in the hope that it will be useful,\
-but WITHOUT ANY WARRANTY; without even the implied warranty of\
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\
-GNU General Public License for more details.\
-\
-You should have received a copy of the GNU General Public License\
-along with this program; if not, write to the Free Software\
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\
-\pard\pardeftab720\sa240\ql\qnatural
-
-\f0 \cf0 Also add information on how to contact you by electronic and paper mail.\
-If the program is interactive, make it output a short notice like this when it starts in an interactive mode:\
-\pard\pardeftab720\ql\qnatural
-
-\f2 \cf0 Gnomovision version 69, Copyright (C)
-\f3\i year
-\f2\i0
-\f3\i name of author
-\f2\i0 \
-Gnomovision comes with ABSOLUTELY NO WARRANTY; for details\
-type `show w'. This is free software, and you are welcome\
-to redistribute it under certain conditions; type `show c' \
-for details.\
-\pard\pardeftab720\sa240\ql\qnatural
-
-\f0 \cf0 The hypothetical commands
-\f2 `show w'
-\f0 and
-\f2 `show c'
-\f0 should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than
-\f2 `show w'
-\f0 and
-\f2 `show c'
-\f0 ; they could even be mouse-clicks or menu items--whatever suits your program.\
-You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names:\
-\pard\pardeftab720\ql\qnatural
-
-\f2 \cf0 Yoyodyne, Inc., hereby disclaims all copyright\
-interest in the program `Gnomovision'\
-(which makes passes at compilers) written \
-by James Hacker.\
-\
-\pard\pardeftab720\ql\qnatural
-
-\f3\i \cf0 signature of Ty Coon
-\f2\i0 , 1 April 1989\
-Ty Coon, President of Vice\
-\pard\pardeftab720\sa280\ql\qnatural
-
-\f0\b\fs36 \cf0 GNU LIBRARY GENERAL PUBLIC LICENSE\
-\pard\pardeftab720\sa240\ql\qnatural
-
-\b0\fs24 \cf0 Version 2, June 1991\
-\pard\pardeftab720\ql\qnatural
-
-\f2 \cf0 Copyright (C) 1991 Free Software Foundation, Inc.\
-59 Temple Place - Suite 330, Boston, MA 02111-1307, USA\
-Everyone is permitted to copy and distribute verbatim copies\
-of this license document, but changing it is not allowed.\
-\
-[This is the first released version of the library GPL. It is\
- numbered 2 because it goes with version 2 of the ordinary GPL.]\
-\pard\pardeftab720\sa300\ql\qnatural
-
-\f0\b \cf0 Preamble\
-\pard\pardeftab720\sa240\ql\qnatural
-
-\b0 \cf0 The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users.\
-This license, the Library General Public License, applies to some specially designated Free Software Foundation software, and to any other libraries whose authors decide to use it. You can use it for your libraries, too.\
-When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.\
-To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library, or if you modify it.\
-For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link a program with the library, you must provide complete object files to the recipients so that they can relink them with the library, after making changes to the library and recompiling it. And you must show them these terms so they know their rights.\
-Our method of protecting your rights has two steps: (1) copyright the library, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the library.\
-Also, for each distributor's protection, we want to make certain that everyone understands that there is no warranty for this free library. If the library is modified by someone else and passed on, we want its recipients to know that what they have is not the original version, so that any problems introduced by others will not reflect on the original authors' reputations.\
-Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that companies distributing free software will individually obtain patent licenses, thus in effect transforming the program into proprietary software. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.\
-Most GNU software, including some libraries, is covered by the ordinary GNU General Public License, which was designed for utility programs. This license, the GNU Library General Public License, applies to certain designated libraries. This license is quite different from the ordinary one; be sure to read it in full, and don't assume that anything in it is the same as in the ordinary license.\
-The reason we have a separate public license for some libraries is that they blur the distinction we usually make between modifying or adding to a program and simply using it. Linking a program with a library, without changing the library, is in some sense simply using the library, and is analogous to running a utility program or application program. However, in a textual and legal sense, the linked executable is a combined work, a derivative of the original library, and the ordinary General Public License treats it as such.\
-Because of this blurred distinction, using the ordinary General Public License for libraries did not effectively promote software sharing, because most developers did not use the libraries. We concluded that weaker conditions might promote sharing better.\
-However, unrestricted linking of non-free programs would deprive the users of those programs of all benefit from the free status of the libraries themselves. This Library General Public License is intended to permit developers of non-free programs to use free libraries, while preserving your freedom as a user of such programs to change the free libraries that are incorporated in them. (We have not seen how to achieve this as regards changes in header files, but we have achieved it as regards changes in the actual functions of the Library.) The hope is that this will lead to faster development of free libraries.\
-The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, while the latter only works together with the library.\
-Note that it is possible for a library to be covered by the ordinary General Public License rather than by this special one.\
-\pard\pardeftab720\sa300\ql\qnatural
-
-\b \cf0 TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\
-\pard\pardeftab720\sa240\ql\qnatural
-\cf0 0.
-\b0 This License Agreement applies to any software library which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Library General Public License (also called "this License"). Each licensee is addressed as "you".\
-A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables.\
-The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".)\
-"Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library.\
-Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does.\
-
-\b 1.
-\b0 You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library.\
-You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.\
-
-\b 2.
-\b0 You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:\
-\pard\tx220\tx720\pardeftab720\li720\fi-720\ql\qnatural
-\ls5\ilvl0\cf0 {\listtext 1. }The modified work must itself be a software library.\
-\pard\tx220\tx720\pardeftab720\li720\fi-720\sa240\ql\qnatural
-\ls5\ilvl0\cf0 {\listtext 2. }\
-\pard\tx220\tx720\pardeftab720\li720\fi-720\ql\qnatural
-\ls5\ilvl0\cf0 {\listtext 3. }You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change.\
-\pard\tx220\tx720\pardeftab720\li720\fi-720\sa240\ql\qnatural
-\ls5\ilvl0\cf0 {\listtext 4. }\
-\pard\tx220\tx720\pardeftab720\li720\fi-720\ql\qnatural
-\ls5\ilvl0\cf0 {\listtext 5. }You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License.\
-\pard\tx220\tx720\pardeftab720\li720\fi-720\sa240\ql\qnatural
-\ls5\ilvl0\cf0 {\listtext 6. }\
-\pard\tx220\tx720\pardeftab720\li720\fi-720\ql\qnatural
-\ls5\ilvl0\cf0 {\listtext 7. }If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful.\
-\pard\tx220\tx720\pardeftab720\li720\fi-720\sa240\ql\qnatural
-\ls5\ilvl0\cf0 {\listtext 8. }(For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.)\
-\pard\pardeftab720\sa240\ql\qnatural
-\cf0 These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.\
-Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library.\
-In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.\
-\pard\pardeftab720\sa240\ql\qnatural
-
-\b \cf0 3.
-\b0 You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices.\
-Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy.\
-This option is useful when you wish to copy part of the code of the Library into a program that is not a library.\
-
-\b 4.
-\b0 You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange.\
-If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code.\
-
-\b 5.
-\b0 A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License.\
-However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables.\
-When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law.\
-If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.)\
-Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself.\
-
-\b 6.
-\b0 As an exception to the Sections above, you may also compile or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications.\
-You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things:\
-\pard\tx220\tx720\pardeftab720\li720\fi-720\ql\qnatural
-\ls6\ilvl0\cf0 {\listtext 1. }Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.)\
-\pard\tx220\tx720\pardeftab720\li720\fi-720\sa240\ql\qnatural
-\ls6\ilvl0\cf0 {\listtext 2. }\
-\pard\tx220\tx720\pardeftab720\li720\fi-720\ql\qnatural
-\ls6\ilvl0\cf0 {\listtext 3. }Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution.\
-\pard\tx220\tx720\pardeftab720\li720\fi-720\sa240\ql\qnatural
-\ls6\ilvl0\cf0 {\listtext 4. }\
-\pard\tx220\tx720\pardeftab720\li720\fi-720\ql\qnatural
-\ls6\ilvl0\cf0 {\listtext 5. }If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place.\
-\pard\tx220\tx720\pardeftab720\li720\fi-720\sa240\ql\qnatural
-\ls6\ilvl0\cf0 {\listtext 6. }\
-\pard\tx220\tx720\pardeftab720\li720\fi-720\ql\qnatural
-\ls6\ilvl0\cf0 {\listtext 7. }Verify that the user has already received a copy of these materials or that you have already sent this user a copy.\
-\pard\pardeftab720\sa240\ql\qnatural
-\cf0 For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.\
-It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute.\
-\pard\pardeftab720\sa240\ql\qnatural
-
-\b \cf0 7.
-\b0 You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things:\
-\pard\tx220\tx720\pardeftab720\li720\fi-720\ql\qnatural
-\ls7\ilvl0\cf0 {\listtext 1. }Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above.\
-\pard\tx220\tx720\pardeftab720\li720\fi-720\sa240\ql\qnatural
-\ls7\ilvl0\cf0 {\listtext 2. }\
-\pard\tx220\tx720\pardeftab720\li720\fi-720\ql\qnatural
-\ls7\ilvl0\cf0 {\listtext 3. }Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work.\
-\pard\pardeftab720\sa240\ql\qnatural
-
-\b \cf0 8.
-\b0 You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.\
-
-\b 9.
-\b0 You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it.\
-
-\b 10.
-\b0 Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.\
-
-\b 11.
-\b0 If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library.\
-If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances.\
-It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.\
-This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.\
-
-\b 12.
-\b0 If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.\
-
-\b 13.
-\b0 The Free Software Foundation may publish revised and/or new versions of the Library General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.\
-Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation.\
-
-\b 14.
-\b0 If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.\
-
-\b NO WARRANTY
-\b0 \
-
-\b 15.
-\b0 BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.\
-
-\b 16.
-\b0 IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.\
-\pard\pardeftab720\sa300\ql\qnatural
-
-\b \cf0 END OF TERMS AND CONDITIONS\
-How to Apply These Terms to Your New Libraries\
-\pard\pardeftab720\sa240\ql\qnatural
-
-\b0 \cf0 If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License).\
-To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.\
-\pard\pardeftab720\ql\qnatural
-
-\f3\i \cf0 one line to give the library's name and an idea of what it does.
-\f2\i0 \
-Copyright (C)
-\f3\i year
-\f2\i0
-\f3\i name of author
-\f2\i0 \
-\
-This library is free software; you can redistribute it and/or\
-modify it under the terms of the GNU Lesser General Public\
-License as published by the Free Software Foundation; either\
-version 2.1 of the License, or (at your option) any later version.\
-\
-This library is distributed in the hope that it will be useful,\
-but WITHOUT ANY WARRANTY; without even the implied warranty of\
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\
-Lesser General Public License for more details.\
-\
-You should have received a copy of the GNU Lesser General Public\
-License along with this library; if not, write to the Free Software\
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\
-\pard\pardeftab720\sa240\ql\qnatural
-
-\f0 \cf0 Also add information on how to contact you by electronic and paper mail.\
-You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names:\
-\pard\pardeftab720\ql\qnatural
-
-\f2 \cf0 Yoyodyne, Inc., hereby disclaims all copyright interest in\
-the library `Frob' (a library for tweaking knobs) written\
-by James Random Hacker.\
-\
-\pard\pardeftab720\ql\qnatural
-
-\f3\i \cf0 signature of Ty Coon
-\f2\i0 , 1 April 1990\
-Ty Coon, President of Vice\
-\pard\pardeftab720\sa240\ql\qnatural
-
-\f0 \cf0 That's all there is to it!\
-}
\ No newline at end of file
+++ /dev/null
-{\rtf1\ansi\ansicpg1252\cocoartf1009\cocoasubrtf300
-{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
-{\colortbl;\red255\green255\blue255;}
-\margl1440\margr1440\margb1800\margt1800\vieww9000\viewh8400\viewkind0
-\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
-
-\f0\fs24 \cf0 This program will install CUPS @CUPS_VERSION@, replacing the CUPS software that is included with Mac OS X.\
-\
-
-\b WARNING\
-
-\b0 \
-This is pre-release software and should not be used in production environments. Because Mac OS X packages cannot be uninstalled, you will need to reinstall Mac OS X to revert to the original CUPS software.\
-\
-Please report all problems using the Bugs & Features page on the CUPS home page:\
-\
- {\field{\*\fldinst{HYPERLINK "http://www.cups.org/str.php"}}{\fldrslt http://www.cups.org/str.php}}\
-\
-
-\b NO WARRANTY\
-
-\b0 \
-CUPS is provided under the terms of the GNU General Public License and GNU Library General Public License versions 2. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\
-}
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
- <key>IFPkgDescriptionDeleteWarning</key>
- <string></string>
- <key>IFPkgDescriptionDescription</key>
- <string>CUPS provides a portable printing layer for UNIX(r) operating systems.</string>
- <key>IFPkgDescriptionTitle</key>
- <string>CUPS</string>
- <key>IFPkgDescriptionVersion</key>
- <string>@CUPS_RELEASE@</string>
-</dict>
-</plist>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
- <key>IFPkgFlagAuthorizationAction</key>
- <string>RootAuthorization</string>
- <key>IFPkgFlagBackgroundAlignment</key>
- <string>bottomleft</string>
- <key>IFPkgFlagBackgroundScaling</key>
- <string>none</string>
- <key>IFPkgFormatVersion</key>
- <real>0.1</real>
- <key>CFBundleIdentifier</key>
- <string>org.cups.cups</string>
- <key>CFBundleName</key>
- <string>CUPS</string>
- <key>CFBundleGetInfoString</key>
- <string>CUPS, @CUPS_VERSION@</string>
- <key>CFBundleShortVersionString</key>
- <string>@CUPS_RELEASE@</string>
- <key>IFPkgFlagAllowBackRev</key>
- <true/>
- <key>IFPkgFlagRootVolumeOnly</key>
- <true/>
-</dict>
-</plist>
%version @CUPS_VERSION@
%format all
%description CUPS is the standards-based, open source printing system developed by
-%description Apple Inc. for OS X and other UNIX®-like operating systems.
+%description Apple Inc. for macOS® and other UNIX®-like operating systems.
%format rpm
%provides lpd
#
# Original version by Jason McMullan <jmcc@ontv.com>.
#
-# Copyright 2007-2015 by Apple Inc.
+# Copyright 2007-2016 by Apple Inc.
# Copyright 1999-2007 by Easy Software Products, all rights reserved.
#
# These coded instructions, statements, and computer programs are the
%description
CUPS is the standards-based, open source printing system developed by
-Apple Inc. for OS X and other UNIX®-like operating systems.
+Apple Inc. for macOS® and other UNIX®-like operating systems.
%description devel
This package provides the CUPS headers and development environment.
else if (!strcmp(ptr, ".strings"))
{
/*
- * Read messages in OS X ".strings" format, which are either UTF-8/UTF-16
+ * Read messages in macOS ".strings" format, which are either UTF-8/UTF-16
* text files of the format:
*
* "id" = "str";
_cupsLangPuts(stdout, _(" --crlf End lines with CR + LF "
"(Windows)."));
_cupsLangPuts(stdout, _(" --lf End lines with LF "
- "(UNIX/Linux/OS X)."));
+ "(UNIX/Linux/macOS)."));
exit(1);
}
#ifdef HAVE_MBR_UID_TO_UUID
/*
- * Check group membership through MacOS X membership API...
+ * Check group membership through macOS membership API...
*/
if (user && !mbr_uid_to_uuid(user->pw_uid, useruuid))
/*
* Authentication certificate routines for the CUPS scheduler.
*
- * Copyright 2007-2015 by Apple Inc.
+ * Copyright 2007-2016 by Apple Inc.
* Copyright 1997-2006 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
# ifdef HAVE_MBR_UID_TO_UUID
/*
- * On MacOS X, ACLs use UUIDs instead of GIDs...
+ * On macOS, ACLs use UUIDs instead of GIDs...
*/
acl = acl_init(NumSystemGroups - 1);
* requests when the request requires system group membership - then the
* client knows the root certificate can/should be used.
*
- * Also, for OS X we also look for @AUTHKEY and add an "authkey"
+ * Also, for macOS we also look for @AUTHKEY and add an "authkey"
* parameter as needed...
*/
/*
* Client definitions for the CUPS scheduler.
*
- * Copyright 2007-2014 by Apple Inc.
+ * Copyright 2007-2016 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
int fd; /* File descriptor for this server */
http_addr_t address; /* Bind address of socket */
http_encryption_t encryption; /* To encrypt or not to encrypt... */
-#if defined(HAVE_LAUNCHD) || defined(HAVE_SYSTEMD)
- int on_demand; /* Is this a socket from launchd/systemd? */
-#endif /* HAVE_LAUNCHD || HAVE_SYSTEMD */
+#ifdef HAVE_ONDEMAND
+ int on_demand; /* Is this a socket from launchd/systemd/upstart? */
+#endif /* HAVE_ONDEMAND */
} cupsd_listener_t;
/*
* Configuration routines for the CUPS scheduler.
*
- * Copyright 2007-2015 by Apple Inc.
+ * Copyright 2007-2016 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
#ifdef HAVE_GSSAPI
{ "GSSServiceName", &GSSServiceName, CUPSD_VARTYPE_STRING },
#endif /* HAVE_GSSAPI */
-#if defined(HAVE_LAUNCHD) || defined(HAVE_SYSTEMD)
+#ifdef HAVE_ONDEMAND
{ "IdleExitTimeout", &IdleExitTimeout, CUPSD_VARTYPE_TIME },
-#endif /* HAVE_LAUNCHD || HAVE_SYSTEMD */
+#endif /* HAVE_ONDEMAND */
{ "JobKillDelay", &JobKillDelay, CUPSD_VARTYPE_TIME },
{ "JobRetryLimit", &JobRetryLimit, CUPSD_VARTYPE_INTEGER },
{ "JobRetryInterval", &JobRetryInterval, CUPSD_VARTYPE_TIME },
DefaultLeaseDuration = 86400;
MaxLeaseDuration = 0;
-#if defined(HAVE_LAUNCHD) || defined(HAVE_SYSTEMD)
+#ifdef HAVE_ONDEMAND
IdleExitTimeout = 60;
-#endif /* HAVE_LAUNCHD || HAVE_SYSTEMD */
+#endif /* HAVE_ONDEMAND */
/*
* Setup environment variables...
if (lis)
{
-#if defined(HAVE_LAUNCHD) || defined(HAVE_SYSTEMD)
+#ifdef HAVE_ONDEMAND
if (!lis->on_demand)
-#endif /* HAVE_LAUNCHD || HAVE_SYSTEMD */
+#endif /* HAVE_ONDEMAND */
{
httpAddrString(&lis->address, temp, sizeof(temp));
cupsdLogMessage(CUPSD_LOG_WARN,
/*
* Configuration file definitions for the CUPS scheduler.
*
- * Copyright 2007-2015 by Apple Inc.
+ * Copyright 2007-2016 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 /* OS X plist format */
+#define PRINTCAP_PLIST 2 /* macOS plist format */
/*
/* Keychain holding cert + key */
#endif /* HAVE_SSL */
-#if defined(HAVE_LAUNCHD) || defined(HAVE_SYSTEMD)
+#ifdef HAVE_ONDEMAND
VAR int IdleExitTimeout VALUE(60);
/* Time after which an idle cupsd will exit */
-#endif /* HAVE_LAUNCHD || HAVE_SYSTEMD */
+#endif /* HAVE_ONDEMAND */
#ifdef HAVE_AUTHORIZATION_H
VAR char *SystemGroupAuthKey VALUE(NULL);
slash > printerDriver))
{
/*
- * Map ppd-name to OS X standard locations...
+ * Map ppd-name to macOS standard locations...
*/
snprintf(buffer, bufsize, "/%s", name);
#ifdef __APPLE__
/*
- * Load PPDs from standard OS X locations...
+ * Load PPDs from standard macOS locations...
*/
load_ppds("/Library/Printers",
/*
* Main header file for the CUPS scheduler.
*
- * Copyright 2007-2014 by Apple Inc.
+ * Copyright 2007-2016 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
VAR void *DefaultProfile VALUE(0);
/* Default security profile */
-#if defined(HAVE_LAUNCHD) || defined(HAVE_SYSTEMD)
+#ifdef HAVE_ONDEMAND
VAR int OnDemand VALUE(0);
/* Launched on demand */
-#endif /* HAVE_LAUNCHD || HAVE_SYSTEMD */
+#endif /* HAVE_ONDEMAND */
/*
/*
* Filtering program for CUPS.
*
- * Copyright 2007-2014 by Apple Inc.
+ * Copyright 2007-2016 by Apple Inc.
* Copyright 1997-2006 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
/*
- * Add special voodoo magic for MacOS X - this allows MacOS X
+ * Add special voodoo magic for macOS - this allows macOS
* programs to access their bundle resources properly...
*/
/*
* Environment management routines for the CUPS scheduler.
*
- * Copyright 2007-2014 by Apple Inc.
+ * Copyright 2007-2016 by Apple Inc.
* Copyright 1997-2006 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
#if defined(__APPLE__)
/*
- * Add special voodoo magic for MacOS X - this allows MacOS X
+ * Add special voodoo magic for macOS - this allows macOS
* programs to access their bundle resources properly...
*
* This string is replaced in cupsdStartProcess()...
/*
* Convert the status to an exit code. Due to the way the W* macros are
- * implemented on MacOS X (bug?), we have to store the exit status in a
+ * implemented on macOS (bug?), we have to store the exit status in a
* variable first and then convert...
*/
/*
* Server listening routines for the CUPS scheduler.
*
- * Copyright 2007-2014 by Apple Inc.
+ * Copyright 2007-2016 by Apple Inc.
* Copyright 1997-2006 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
for (lis = (cupsd_listener_t *)cupsArrayFirst(Listeners);
lis;
lis = (cupsd_listener_t *)cupsArrayNext(Listeners))
-#if defined(HAVE_LAUNCHD) || defined(HAVE_SYSTEMD)
+#ifdef HAVE_ONDEMAND
if (!lis->on_demand)
-#endif /* HAVE_LAUNCHD || HAVE_SYSTEMD */
+#endif /* HAVE_ONDEMAND */
{
cupsArrayRemove(Listeners, lis);
free(lis);
lis;
lis = (cupsd_listener_t *)cupsArrayNext(Listeners))
{
-#if defined(HAVE_LAUNCHD) || defined(HAVE_SYSTEMD)
+#ifdef HAVE_ONDEMAND
if (!lis->on_demand && lis->fd != -1)
{
httpAddrClose(&(lis->address), lis->fd);
httpAddrClose(&(lis->address), lis->fd);
lis->fd = -1;
}
-#endif /* HAVE_LAUNCHD || HAVE_SYSTEMD */
+#endif /* HAVE_ONDEMAND */
}
}
#ifdef HAVE_LAUNCH_H
# include <launch.h>
-# include <libgen.h>
-# define CUPS_KEEPALIVE CUPS_CACHEDIR "/org.cups.cupsd"
- /* Name of the launchd KeepAlive file */
-# ifdef HAVE_LAUNCH_ACTIVATE_SOCKET
-/* Update when we have a public header we can include */
-extern int launch_activate_socket(const char *name, int **fds, size_t *cnt);
-# endif /* HAVE_LAUNCH_ACTIVATE_SOCKET */
#endif /* HAVE_LAUNCH_H */
#ifdef HAVE_SYSTEMD
# include <systemd/sd-daemon.h>
-# define CUPS_KEEPALIVE CUPS_CACHEDIR "/org.cups.cupsd"
- /* Name of the systemd path file */
#endif /* HAVE_SYSTEMD */
+#ifdef HAVE_ONDEMAND
+# define CUPS_KEEPALIVE CUPS_CACHEDIR "/org.cups.cupsd"
+ /* Name of the KeepAlive file */
+#endif
+
#if defined(HAVE_MALLOC_H) && defined(HAVE_MALLINFO)
# include <malloc.h>
#endif /* HAVE_MALLOC_H && HAVE_MALLINFO */
static void sighup_handler(int sig);
static void sigterm_handler(int sig);
static long select_timeout(int fds);
-#if defined(HAVE_LAUNCHD) || defined(HAVE_SYSTEMD)
+#ifdef HAVE_ONDEMAND
static void service_checkin(void);
static void service_checkout(void);
-#endif /* HAVE_LAUNCHD || HAVE_SYSTEMD */
+#endif /* HAVE_ONDEMAND */
static void usage(int status) __attribute__((noreturn));
#else
time_t netif_time = 0; /* Time since last network update */
#endif /* __APPLE__ */
-#if defined(HAVE_LAUNCHD) || defined(HAVE_SYSTEMD)
+#if defined(HAVE_ONDEMAND)
int service_idle_exit;
/* Idle exit on select timeout? */
-#endif /* HAVE_LAUNCHD || HAVE_SYSTEMD */
+#endif /* HAVE_ONDEMAND */
#ifdef HAVE_GETEUID
usage(0);
break;
- case 'l' : /* Started by launchd/systemd... */
-#if defined(HAVE_LAUNCHD) || defined(HAVE_SYSTEMD)
+ case 'l' : /* Started by launchd/systemd/upstart... */
+#if defined(HAVE_ONDEMAND)
OnDemand = 1;
fg = 1;
close_all = 0;
fg = 0;
disconnect = 1;
close_all = 1;
-#endif /* HAVE_LAUNCHD || HAVE_SYSTEMD */
+#endif /* HAVE_ONDEMAND */
break;
case 'p' : /* Stop immediately for profiling */
cupsdCleanFiles(CacheDir, "*.ipp");
-#if defined(HAVE_LAUNCHD) || defined(HAVE_SYSTEMD)
+#if defined(HAVE_ONDEMAND)
if (OnDemand)
{
/*
service_checkin();
service_checkout();
}
-#endif /* HAVE_LAUNCHD || HAVE_SYSTEMD */
+#endif /* HAVE_ONDEMAND */
/*
* Startup the server...
* Send server-started event...
*/
-#if defined(HAVE_LAUNCHD) || defined(HAVE_SYSTEMD)
+#if defined(HAVE_ONDEMAND)
if (OnDemand)
cupsdAddEvent(CUPSD_EVENT_SERVER_STARTED, NULL, NULL, "Scheduler started on demand.");
else
-#endif /* HAVE_LAUNCHD || HAVE_SYSTEMD */
+#endif /* HAVE_ONDEMAND */
if (fg)
cupsdAddEvent(CUPSD_EVENT_SERVER_STARTED, NULL, NULL, "Scheduler started in foreground.");
else
* Shutdown the server...
*/
-#if defined(HAVE_LAUNCHD) || defined(HAVE_SYSTEMD)
+#ifdef HAVE_ONDEMAND
if (OnDemand)
break;
-#endif /* HAVE_LAUNCHD || HAVE_SYSTEMD */
+#endif /* HAVE_ONDEMAND */
DoingShutdown = 1;
if ((timeout = select_timeout(fds)) > 1 && LastEvent)
timeout = 1;
-#if defined(HAVE_LAUNCHD) || defined(HAVE_SYSTEMD)
+#ifdef HAVE_ONDEMAND
/*
* If no other work is scheduled and we're being controlled by
* launchd then timeout after 'LaunchdTimeout' seconds of
}
else
service_idle_exit = 0;
-#endif /* HAVE_LAUNCHD || HAVE_SYSTEMD */
+#endif /* HAVE_ONDEMAND */
if ((fds = cupsdDoSelect(timeout)) < 0)
{
cupsd_printer_t *p; /* Current printer */
#endif /* HAVE_DNSSD || HAVE_AVAHI */
-
if (errno == EINTR) /* Just interrupted by a signal */
continue;
}
#endif /* !__APPLE__ */
-#if defined(HAVE_LAUNCHD) || defined(HAVE_SYSTEMD)
+#ifdef HAVE_ONDEMAND
/*
- * If no other work was scheduled and we're being controlled by launchd
- * then timeout after 'LaunchdTimeout' seconds of inactivity...
+ * If no other work was scheduled and we're being controlled by launchd,
+ * systemd, or upstart then timeout after 'LaunchdTimeout' seconds of
+ * inactivity...
*/
if (!fds && service_idle_exit)
stop_scheduler = 1;
break;
}
-#endif /* HAVE_LAUNCHD || HAVE_SYSTEMD */
+#endif /* HAVE_ONDEMAND */
/*
* Resume listening for new connections as needed...
cupsdStopServer();
-#if defined(HAVE_LAUNCHD) || defined(HAVE_SYSTEMD)
+#ifdef HAVE_ONDEMAND
/*
* Update the keep-alive file as needed...
*/
if (OnDemand)
service_checkout();
-#endif /* HAVE_LAUNCHD || HAVE_SYSTEMD */
+#endif /* HAVE_ONDEMAND */
/*
* Stop all jobs...
}
-#if defined(HAVE_LAUNCHD) || defined(HAVE_SYSTEMD)
+#ifdef HAVE_ONDEMAND
/*
- * 'service_checkin()' - Check-in with launchd and collect the listening fds.
+ * 'service_add_listener()' - Bind an open fd as a Listener.
*/
static void
-service_checkin(void)
+service_add_listener(int fd, /* I - Socket file descriptor */
+ int idx) /* I - Listener number, for logging */
{
-# ifdef HAVE_LAUNCH_ACTIVATE_SOCKET
- int error; /* Check-in error, if any */
- size_t i, /* Looping var */
- count; /* Number of listeners */
- int *ld_sockets; /* Listener sockets */
cupsd_listener_t *lis; /* Listeners array */
http_addr_t addr; /* Address variable */
socklen_t addrlen; /* Length of address */
char s[256]; /* String addresss */
- cupsdLogMessage(CUPSD_LOG_DEBUG, "service_checkin: pid=%d", (int)getpid());
-
- /*
- * Check-in with launchd...
- */
+ addrlen = sizeof(addr);
- if ((error = launch_activate_socket("Listeners", &ld_sockets, &count)) != 0)
+ if (getsockname(fd, (struct sockaddr *)&addr, &addrlen))
{
- cupsdLogMessage(CUPSD_LOG_ERROR, "service_checkin: Unable to get listener sockets: %s", strerror(error));
- exit(EXIT_FAILURE);
- return; /* anti-compiler-warning */
+ cupsdLogMessage(CUPSD_LOG_ERROR, "service_add_listener: Unable to get local address for listener #%d: %s", idx + 1, strerror(errno));
+ return;
}
+ cupsdLogMessage(CUPSD_LOG_DEBUG, "service_add_listener: Listener #%d at fd %d, \"%s\".", idx + 1, fd, httpAddrString(&addr, s, sizeof(s)));
+
/*
- * Try to match the launchd sockets to the cupsd listeners...
+ * Try to match the on-demand socket address to one of the listeners...
*/
- cupsdLogMessage(CUPSD_LOG_DEBUG, "service_checkin: %d listeners.", (int)count);
-
- for (i = 0; i < count; i ++)
- {
- /*
- * Get the launchd socket address...
- */
-
- addrlen = sizeof(addr);
-
- if (getsockname(ld_sockets[i], (struct sockaddr *)&addr, &addrlen))
- {
- cupsdLogMessage(CUPSD_LOG_ERROR, "service_checkin: Unable to get local address for listener #%d: %s", (int)i + 1, strerror(errno));
- continue;
- }
-
- cupsdLogMessage(CUPSD_LOG_DEBUG, "service_checkin: Listener #%d at fd %d, \"%s\".", (int)i + 1, ld_sockets[i], httpAddrString(&addr, s, sizeof(s)));
+ for (lis = (cupsd_listener_t *)cupsArrayFirst(Listeners);
+ lis;
+ lis = (cupsd_listener_t *)cupsArrayNext(Listeners))
+ if (httpAddrEqual(&lis->address, &addr))
+ break;
- for (lis = (cupsd_listener_t *)cupsArrayFirst(Listeners);
- lis;
- lis = (cupsd_listener_t *)cupsArrayNext(Listeners))
- if (httpAddrEqual(&lis->address, &addr))
- break;
+ /*
+ * Add a new listener If there's no match...
+ */
- /*
- * Add a new listener if there's no match...
- */
+ if (lis)
+ {
+ cupsdLogMessage(CUPSD_LOG_DEBUG, "service_add_listener: Matched existing listener #%d to %s.", idx + 1, httpAddrString(&(lis->address), s, sizeof(s)));
+ }
+ else
+ {
+ cupsdLogMessage(CUPSD_LOG_DEBUG, "service_add_listener: Adding new listener #%d for %s.", idx + 1, httpAddrString(&addr, s, sizeof(s)));
- if (lis)
+ if ((lis = calloc(1, sizeof(cupsd_listener_t))) == NULL)
{
- cupsdLogMessage(CUPSD_LOG_DEBUG, "service_checkin: Matched existing listener #%d to %s.", (int)i + 1, httpAddrString(&(lis->address), s, sizeof(s)));
+ cupsdLogMessage(CUPSD_LOG_ERROR, "service_add_listener: Unable to allocate listener: %s.", strerror(errno));
+ exit(EXIT_FAILURE);
+ return;
}
- else
- {
- cupsdLogMessage(CUPSD_LOG_DEBUG, "service_checkin: Adding new listener #%d for %s.", (int)i + 1, httpAddrString(&addr, s, sizeof(s)));
- if ((lis = calloc(1, sizeof(cupsd_listener_t))) == NULL)
- {
- cupsdLogMessage(CUPSD_LOG_ERROR, "service_checkin: Unable to allocate listener: %s", strerror(errno));
- exit(EXIT_FAILURE);
- }
+ cupsArrayAdd(Listeners, lis);
- cupsArrayAdd(Listeners, lis);
+ memcpy(&lis->address, &addr, sizeof(lis->address));
+ }
- memcpy(&lis->address, &addr, sizeof(lis->address));
- }
+ lis->fd = fd;
+ lis->on_demand = 1;
- lis->fd = ld_sockets[i];
- lis->on_demand = 1;
+# ifdef HAVE_SSL
+ if (httpAddrPort(&(lis->address)) == 443)
+ lis->encryption = HTTP_ENCRYPT_ALWAYS;
+# endif /* HAVE_SSL */
+}
-# ifdef HAVE_SSL
- if (httpAddrPort(&(lis->address)) == 443)
- lis->encryption = HTTP_ENCRYPT_ALWAYS;
-# endif /* HAVE_SSL */
- }
- free(ld_sockets);
+/*
+ * 'service_checkin()' - Check-in with launchd and collect the listening fds.
+ */
-# elif defined(HAVE_LAUNCHD)
+static void
+service_checkin(void)
+{
+# ifdef HAVE_LAUNCHD
+ int error; /* Check-in error, if any */
size_t i, /* Looping var */
count; /* Number of listeners */
- launch_data_t ld_msg, /* Launch data message */
- ld_resp, /* Launch data response */
- ld_array, /* Launch data array */
- ld_sockets, /* Launch data sockets dictionary */
- tmp; /* Launch data */
- cupsd_listener_t *lis; /* Listeners array */
- http_addr_t addr; /* Address variable */
- socklen_t addrlen; /* Length of address */
- int fd; /* File descriptor */
- char s[256]; /* String addresss */
+ int *ld_sockets; /* Listener sockets */
cupsdLogMessage(CUPSD_LOG_DEBUG, "service_checkin: pid=%d", (int)getpid());
* Check-in with launchd...
*/
- ld_msg = launch_data_new_string(LAUNCH_KEY_CHECKIN);
- if ((ld_resp = launch_msg(ld_msg)) == NULL)
- {
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "service_checkin: launch_msg(\"" LAUNCH_KEY_CHECKIN
- "\") IPC failure");
- exit(EXIT_FAILURE);
- return; /* anti-compiler-warning */
- }
-
- if (launch_data_get_type(ld_resp) == LAUNCH_DATA_ERRNO)
- {
- errno = launch_data_get_errno(ld_resp);
- cupsdLogMessage(CUPSD_LOG_ERROR, "service_checkin: Check-in failed: %s",
- strerror(errno));
- exit(EXIT_FAILURE);
- return; /* anti-compiler-warning */
- }
-
- /*
- * Get the sockets dictionary...
- */
-
- if ((ld_sockets = launch_data_dict_lookup(ld_resp, LAUNCH_JOBKEY_SOCKETS))
- == NULL)
- {
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "service_checkin: No sockets found to answer requests on.");
- exit(EXIT_FAILURE);
- return; /* anti-compiler-warning */
- }
-
- /*
- * Get the array of listener sockets...
- */
-
- if ((ld_array = launch_data_dict_lookup(ld_sockets, "Listeners")) == NULL)
+ if ((error = launch_activate_socket("Listeners", &ld_sockets, &count)) != 0)
{
- cupsdLogMessage(CUPSD_LOG_ERROR,
- "service_checkin: No sockets found to answer requests on.");
+ cupsdLogMessage(CUPSD_LOG_ERROR, "service_checkin: Unable to get listener sockets: %s", strerror(error));
exit(EXIT_FAILURE);
return; /* anti-compiler-warning */
}
/*
- * Add listening fd(s) to the Listener array...
+ * Try to match the launchd sockets to the cupsd listeners...
*/
- if (launch_data_get_type(ld_array) == LAUNCH_DATA_ARRAY)
- {
- count = launch_data_array_get_count(ld_array);
-
- cupsdLogMessage(CUPSD_LOG_DEBUG, "service_checkin: %d listeners.", (int)count);
-
- for (i = 0; i < count; i ++)
- {
- /*
- * Get the launchd file descriptor and address...
- */
-
- if ((tmp = launch_data_array_get_index(ld_array, i)) != NULL)
- {
- fd = launch_data_get_fd(tmp);
- addrlen = sizeof(addr);
-
- if (getsockname(fd, (struct sockaddr *)&addr, &addrlen))
- {
- cupsdLogMessage(CUPSD_LOG_ERROR, "service_checkin: Unable to get local address for listener #%d: %s", (int)i + 1, strerror(errno));
- continue;
- }
-
- cupsdLogMessage(CUPSD_LOG_DEBUG, "service_checkin: Listener #%d at fd %d, \"%s\".", (int)i + 1, fd, httpAddrString(&addr, s, sizeof(s)));
-
- /*
- * Try to match the launchd socket address to one of the listeners...
- */
-
- for (lis = (cupsd_listener_t *)cupsArrayFirst(Listeners);
- lis;
- lis = (cupsd_listener_t *)cupsArrayNext(Listeners))
- if (httpAddrEqual(&lis->address, &addr))
- break;
-
- /*
- * Add a new listener If there's no match...
- */
-
- if (lis)
- {
- cupsdLogMessage(CUPSD_LOG_DEBUG, "service_checkin: Matched existing listener #%d to %s.", (int)i + 1, httpAddrString(&(lis->address), s, sizeof(s)));
- }
- else
- {
- cupsdLogMessage(CUPSD_LOG_DEBUG, "service_checkin: Adding new listener #%d for %s.", (int)i + 1, httpAddrString(&addr, s, sizeof(s)));
-
- if ((lis = calloc(1, sizeof(cupsd_listener_t))) == NULL)
- {
- cupsdLogMessage(CUPSD_LOG_ERROR, "service_checkin: Unable to allocate listener: %s.", strerror(errno));
- exit(EXIT_FAILURE);
- }
-
- cupsArrayAdd(Listeners, lis);
-
- memcpy(&lis->address, &addr, sizeof(lis->address));
- }
-
- lis->fd = fd;
- lis->on_demand = 1;
+ cupsdLogMessage(CUPSD_LOG_DEBUG, "service_checkin: %d listeners.", (int)count);
-# ifdef HAVE_SSL
- if (httpAddrPort(&(lis->address)) == 443)
- lis->encryption = HTTP_ENCRYPT_ALWAYS;
-# endif /* HAVE_SSL */
- }
- }
- }
+ for (i = 0; i < count; i ++)
+ service_add_listener(ld_sockets[i], (int)i);
- launch_data_free(ld_msg);
- launch_data_free(ld_resp);
+ free(ld_sockets);
-# else /* HAVE_SYSTEMD */
+# elif defined(HAVE_SYSTEMD)
int i, /* Looping var */
count; /* Number of listeners */
- cupsd_listener_t *lis; /* Listeners array */
- http_addr_t addr; /* Address variable */
- socklen_t addrlen; /* Length of address */
- char s[256]; /* String addresss */
cupsdLogMessage(CUPSD_LOG_DEBUG, "service_checkin: pid=%d", (int)getpid());
cupsdLogMessage(CUPSD_LOG_DEBUG, "service_checkin: %d listeners.", count);
for (i = 0; i < count; i ++)
- {
- /*
- * Get the launchd socket address...
- */
-
- addrlen = sizeof(addr);
+ service_add_listener(SD_LISTEN_FDS_START + i, i);
- if (getsockname(SD_LISTEN_FDS_START + i, (struct sockaddr *)&addr, &addrlen))
- {
- cupsdLogMessage(CUPSD_LOG_ERROR, "service_checkin: Unable to get local address for listener #%d: %s", (int)i + 1, strerror(errno));
- continue;
- }
+# elif defined(HAVE_UPSTART)
+ const char *e; /* Environment var */
+ int fd; /* File descriptor */
- cupsdLogMessage(CUPSD_LOG_DEBUG, "service_checkin: Listener #%d at fd %d, \"%s\".", (int)i + 1, SD_LISTEN_FDS_START + i, httpAddrString(&addr, s, sizeof(s)));
- for (lis = (cupsd_listener_t *)cupsArrayFirst(Listeners);
- lis;
- lis = (cupsd_listener_t *)cupsArrayNext(Listeners))
- if (httpAddrEqual(&lis->address, &addr))
- break;
+ if (!(e = getenv("UPSTART_EVENTS")))
+ {
+ cupsdLogMessage(CUPSD_LOG_ERROR, "service_checkin: We did not get started via Upstart.");
+ exit(EXIT_FAILURE);
+ return;
+ }
- /*
- * Add a new listener if there's no match...
- */
+ if (strcasecmp(e, "socket"))
+ {
+ cupsdLogMessage(CUPSD_LOG_ERROR, "service_checkin: We did not get triggered via an Upstart socket event.");
+ exit(EXIT_FAILURE);
+ return;
+ }
- if (lis)
- {
- cupsdLogMessage(CUPSD_LOG_DEBUG, "service_checkin: Matched existing listener #%d to %s.", (int)i + 1, httpAddrString(&(lis->address), s, sizeof(s)));
- }
- else
- {
- cupsdLogMessage(CUPSD_LOG_DEBUG, "service_checkin: Adding new listener #%d for %s.", (int)i + 1, httpAddrString(&addr, s, sizeof(s)));
+ if ((e = getenv("UPSTART_FDS")) == NULL)
+ {
+ cupsdLogMessage(CUPSD_LOG_ERROR, "service_checkin: Unable to get listener sockets from UPSTART_FDS.");
+ exit(EXIT_FAILURE);
+ return;
+ }
- if ((lis = calloc(1, sizeof(cupsd_listener_t))) == NULL)
- {
- cupsdLogMessage(CUPSD_LOG_ERROR, "service_checkin: Unable to allocate listener: %s", strerror(errno));
- exit(EXIT_FAILURE);
- }
+ cupsdLogMessage(CUPSD_LOG_DEBUG, "service_checkin: UPSTART_FDS=%s", e);
- cupsArrayAdd(Listeners, lis);
+ fd = (int)strtol(e, NULL, 10);
+ if (fd < 0)
+ {
+ cupsdLogMessage(CUPSD_LOG_ERROR, "service_checkin: Could not parse UPSTART_FDS: %s", strerror(errno));
+ exit(EXIT_FAILURE);
+ return;
+ }
- memcpy(&lis->address, &addr, sizeof(lis->address));
- }
+ /*
+ * Upstart only supportst a single on-demand socket file descriptor...
+ */
- lis->fd = SD_LISTEN_FDS_START + i;
- lis->on_demand = 1;
+ service_add_listener(fd, 0);
-# ifdef HAVE_SSL
- if (httpAddrPort(&(lis->address)) == 443)
- lis->encryption = HTTP_ENCRYPT_ALWAYS;
-# endif /* HAVE_SSL */
- }
+# else
+# error "Error: defined HAVE_ONDEMAND but no launchd/systemd/upstart selection"
# endif /* HAVE_LAUNCH_ACTIVATE_SOCKET */
}
unlink(CUPS_KEEPALIVE);
}
}
-#endif /* HAVE_LAUNCHD || HAVE_SYSTEMD */
+#endif /* HAVE_ONDEMAND */
/*
_cupsLangPuts(fp, _(" -f Run in the foreground."));
_cupsLangPuts(fp, _(" -F Run in the foreground but detach from console."));
_cupsLangPuts(fp, _(" -h Show this usage message."));
+#ifdef HAVE_ONDEMAND
_cupsLangPuts(fp, _(" -l Run cupsd on demand."));
+#endif /* HAVE_ONDEMAND */
_cupsLangPuts(fp, _(" -s cups-files.conf Set cups-files.conf file to use."));
_cupsLangPuts(fp, _(" -t Test the configuration file."));
if (envp)
{
/*
- * Add special voodoo magic for OS X - this allows OS X programs to access
+ * Add special voodoo magic for macOS - this allows macOS programs to access
* their bundle resources properly...
*/
/*
* Select abstraction functions for the CUPS scheduler.
*
- * Copyright 2007-2014 by Apple Inc.
+ * Copyright 2007-2016 by Apple Inc.
* Copyright 2006-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
* FreeBSD YES YES NO YES NO
* HP-UX YES YES NO NO NO
* Linux YES YES YES NO NO
- * MacOS X YES YES NO YES NO
+ * macOS YES YES NO YES NO
* NetBSD YES YES NO YES NO
* OpenBSD YES YES NO YES NO
* Solaris YES YES NO NO YES
* and state files to minimize the number of times the disk has to spin
* up or flash to be written to.
*
- * Power management support is currently only implemented on OS X, but
+ * Power management support is currently only implemented on macOS, but
* essentially we use four functions to let the OS know when it is OK to
* put the system to sleep, typically when we are not in the middle of
- * printing a job. And on OS X we can also "sleep print" - basically the
+ * printing a job. And on macOS we can also "sleep print" - basically the
* system only wakes up long enough to service network requests and process
* print jobs.
*/
/*
* 'cupsdExec()' - Run a program with the correct environment.
*
- * On OS X, we need to update the CFProcessPath environment variable that
+ * On macOS, we need to update the CFProcessPath environment variable that
* is passed in the environment so the child can access its bundled resources.
*/
/*
- * Some OS X programs are bundled and need the CFProcessPath environment
+ * Some macOS 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.
*/
* buffer is empty...
*/
-#ifdef SO_NWRITE /* OS X and some versions of Linux */
+#ifdef SO_NWRITE /* macOS and some versions of Linux */
socklen_t len = sizeof(buffered); /* Size of return value */
if (getsockopt(httpGetFd(http), SOL_SOCKET, SO_NWRITE, &buffered, &len))
/* #undef HAVE_PTHREAD_H */
+/*
+ * Do we have on-demand support (launchd/systemd/upstart)?
+ */
+
+/* #undef HAVE_ONDEMAND */
+
+
/*
* Do we have launchd support?
*/
/* #undef HAVE_SYSTEMD */
+/*
+ * Do we have upstart support?
+ */
+
+/* #undef HAVE_UPSTART */
+
+
/*
* Various scripting languages...
*/
/*
- * Do we have OS X 10.4's mbr_XXX functions?
+ * Do we have macOS 10.4's mbr_XXX functions?
*/
/* #undef HAVE_MEMBERSHIP_H */
/*
- * Location of OS X localization bundle, if any.
+ * Location of macOS localization bundle, if any.
*/
/* #undef CUPS_BUNDLEDIR */
#define HAVE_PTHREAD_H 1
+/*
+ * Do we have on-demand support (launchd/systemd/upstart)?
+ */
+
+#define HAVE_ONDEMAND 1
+
+
/*
* Do we have launchd support?
*/
#define HAVE_LAUNCH_H 1
#define HAVE_LAUNCHD 1
-#define HAVE_LAUNCH_ACTIVATE_SOCKET 1
+
+
+/*
+ * Do we have systemd support?
+ */
+
+/* #undef HAVE_SYSTEMD */
+
+
+/*
+ * Do we have upstart support?
+ */
+
+/* #undef HAVE_UPSTART */
/*
*/
#define HAVE_GETGROUPLIST 1
-
+
/*
- * Do we have OS X 10.4's mbr_XXX functions?
+ * Do we have macOS 10.4's mbr_XXX functions?
*/
#define HAVE_MEMBERSHIP_H 1
/*
- * Location of OS X localization bundle, if any.
+ * Location of macOS localization bundle, if any.
*/
#if !TARGET_OS_IOS