From b6008d6bdb0d2d829014ed9102ab77236781a15d Mon Sep 17 00:00:00 2001
From: Michael R Sweet
Date: Thu, 27 Feb 2025 11:06:39 -0500
Subject: [PATCH] Update documentation.
---
cups/adminutil.c | 10 +-
cups/adminutil.h | 4 +-
cups/array.c | 24 +-
cups/auth.c | 8 +-
cups/backchannel.c | 14 +-
cups/backend.c | 14 +-
cups/cups.h | 8 +-
cups/cupspm.md | 2 +-
cups/dest-job.c | 18 +-
cups/dest-localization.c | 12 +-
cups/dest-options.c | 28 +-
cups/dest.c | 24 +-
cups/dir.c | 22 +-
cups/encode.c | 10 +-
cups/file.c | 54 ++--
cups/getifaddrs-internal.h | 2 +-
cups/getputfile.c | 14 +-
cups/globals.c | 8 +-
cups/http-addr.c | 8 +-
cups/http-addrlist.c | 16 +-
cups/http-support.c | 12 +-
cups/http.c | 52 ++--
cups/ipp-support.c | 16 +-
cups/ipp.c | 112 +++----
cups/ipp.h | 30 +-
cups/notify.c | 14 +-
cups/options.c | 16 +-
cups/ppd-attr.c | 14 +-
cups/ppd-conflicts.c | 16 +-
cups/ppd-custom.c | 18 +-
cups/ppd-emit.c | 18 +-
cups/ppd-localize.c | 16 +-
cups/ppd-mark.c | 6 +-
cups/ppd-page.c | 12 +-
cups/ppd-util.c | 12 +-
cups/ppd.c | 16 +-
cups/ppd.h | 34 +--
cups/pwg-media.c | 18 +-
cups/rand.c | 2 +-
cups/raster-interpret.c | 8 +-
cups/raster-interstub.c | 8 +-
cups/raster-stream.c | 4 +-
cups/raster-stubs.c | 10 +-
cups/raster.h | 64 ++--
cups/request.c | 14 +-
cups/sidechannel.c | 16 +-
cups/sidechannel.h | 8 +-
cups/tempfile.c | 2 +-
cups/testhttp.c | 2 +-
cups/usersys.c | 10 +-
cups/util.c | 18 +-
doc/help/api-admin.html | 8 +-
doc/help/api-filter.html | 26 +-
doc/help/api-ppd.html | 48 +--
doc/help/cupspm.epub | Bin 243033 -> 242903 bytes
doc/help/cupspm.html | 583 +++++++++++++++++++------------------
56 files changed, 738 insertions(+), 825 deletions(-)
diff --git a/cups/adminutil.c b/cups/adminutil.c
index 448164a366..9fa58a24a2 100644
--- a/cups/adminutil.c
+++ b/cups/adminutil.c
@@ -1,7 +1,7 @@
/*
* Administration utility API definitions for CUPS.
*
- * Copyright © 2020-2024 by OpenPrinting.
+ * Copyright © 2020-2025 by OpenPrinting.
* Copyright © 2007-2019 by Apple Inc.
* Copyright © 2001-2007 by Easy Software Products.
*
@@ -9,10 +9,6 @@
* information.
*/
-/*
- * Include necessary headers...
- */
-
#include "cups-private.h"
#include "debug-internal.h"
#include "ppd.h"
@@ -91,7 +87,7 @@ cupsAdminExportSamba(
* The returned settings should be freed with cupsFreeOptions() when
* you are done with them.
*
- * @since CUPS 1.3/macOS 10.5@
+ * @since CUPS 1.3@
*/
int /* O - 1 on success, 0 on failure */
@@ -406,7 +402,7 @@ cupsAdminGetServerSettings(
/*
* 'cupsAdminSetServerSettings()' - Set settings on the server.
*
- * @since CUPS 1.3/macOS 10.5@
+ * @since CUPS 1.3@
*/
int /* O - 1 on success, 0 on failure */
diff --git a/cups/adminutil.h b/cups/adminutil.h
index 028acf8864..eabe7ed7fd 100644
--- a/cups/adminutil.h
+++ b/cups/adminutil.h
@@ -1,7 +1,7 @@
//
// Administration utility API definitions for CUPS.
//
-// Copyright © 2020-2024 by OpenPrinting.
+// Copyright © 2020-2025 by OpenPrinting.
// Copyright © 2007-2016 by Apple Inc.
// Copyright © 2001-2007 by Easy Software Products.
//
@@ -34,7 +34,7 @@ extern "C" {
//
typedef void (*cups_device_cb_t)(const char *device_class, const char *device_id, const char *device_info, const char *device_make_and_model, const char *device_uri, const char *device_location, void *user_data);
- // Device callback @since CUPS 1.4/macOS 10.6@
+ // Device callback @since CUPS 1.4@
//
diff --git a/cups/array.c b/cups/array.c
index e52fa32270..a12ce99cd9 100644
--- a/cups/array.c
+++ b/cups/array.c
@@ -65,7 +65,7 @@ static int cups_array_find(cups_array_t *a, void *e, int prev, int *rdiff);
// 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/macOS 10.5@
+// @since CUPS 1.2@
//
int // O - 1 on success, 0 on failure
@@ -183,7 +183,7 @@ cupsArrayAddStrings(cups_array_t *a, // I - Array
// The caller is responsible for freeing the memory used by the
// elements themselves.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
void
@@ -248,7 +248,7 @@ cupsArrayCurrent(cups_array_t *a) // I - Array
// The caller is responsible for freeing the memory used by the
// elements themselves.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
void
@@ -283,7 +283,7 @@ cupsArrayDelete(cups_array_t *a) // I - Array
//
// 'cupsArrayDup()' - Duplicate the array.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
cups_array_t * // O - Duplicate array
@@ -347,7 +347,7 @@ cupsArrayDup(cups_array_t *a) // I - Array
//
// 'cupsArrayFind()' - Find an element in the array.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
void * // O - Element found or `NULL`
@@ -520,7 +520,7 @@ cupsArrayGetFirst(cups_array_t *a) // I - Array
// The current element is undefined until you call @link cupsArrayFind@,
// @link cupsArrayFirst@, or @link cupsArrayIndex@, or @link cupsArrayLast@.
//
-// @since CUPS 1.3/macOS 10.5@
+// @since CUPS 1.3@
//
int // O - Index of the current element, starting at 0
@@ -536,7 +536,7 @@ cupsArrayGetIndex(cups_array_t *a) // I - Array
//
// 'cupsArrayGetInsert()' - Get the index of the last inserted element.
//
-// @since CUPS 1.3/macOS 10.5@
+// @since CUPS 1.3@
//
int // O - Index of the last inserted element, starting at 0
@@ -666,7 +666,7 @@ cupsArrayIndex(cups_array_t *a, // I - Array
// 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/macOS 10.5@
+// @since CUPS 1.2@
//
int // O - 0 on failure, 1 on success
@@ -761,7 +761,7 @@ cupsArrayNew2(cups_array_cb_t f, // I - Comparison function or `NULL` for an un
// removed with @link cupsArrayRemove@ or the array is deleted with
// @link cupsArrayDelete@.
//
-// @since CUPS 1.5/macOS 10.7@
+// @since CUPS 1.5@
//
cups_array_t * // O - Array
@@ -881,7 +881,7 @@ cupsArrayPrev(cups_array_t *a) // I - Array
// The caller is responsible for freeing the memory used by the
// removed element.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
int // O - 1 on success, 0 on failure
@@ -938,7 +938,7 @@ cupsArrayRemove(cups_array_t *a, // I - Array
//
// 'cupsArrayRestore()' - Reset the current element to the last @link cupsArraySave@.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
void * // O - New current element
@@ -969,7 +969,7 @@ cupsArrayRestore(cups_array_t *a) // I - Array
//
// The save/restore stack is guaranteed to be at least 32 elements deep.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
int // O - 1 on success, 0 on failure
diff --git a/cups/auth.c b/cups/auth.c
index e1a361cfe1..040837ea16 100644
--- a/cups/auth.c
+++ b/cups/auth.c
@@ -1,7 +1,7 @@
/*
* Authentication functions for CUPS.
*
- * Copyright © 2020-2024 by OpenPrinting.
+ * Copyright © 2020-2025 by OpenPrinting.
* Copyright © 2007-2019 by Apple Inc.
* Copyright © 1997-2007 by Easy Software Products.
*
@@ -12,10 +12,6 @@
* information.
*/
-/*
- * Include necessary headers...
- */
-
#include "cups-private.h"
#include "debug-internal.h"
#include
@@ -102,7 +98,7 @@ static int cups_local_auth(http_t *http);
* This function should be called in response to a @code HTTP_STATUS_UNAUTHORIZED@
* status, prior to resubmitting your request.
*
- * @since CUPS 1.1.20/macOS 10.4@
+ * @since CUPS 1.1.20@
*/
int /* O - 0 on success, -1 on error */
diff --git a/cups/backchannel.c b/cups/backchannel.c
index 62d1cda102..05c9688184 100644
--- a/cups/backchannel.c
+++ b/cups/backchannel.c
@@ -1,17 +1,13 @@
/*
* Backchannel functions for CUPS.
*
- * Copyright © 2020-2024 by OpenPrinting.
- * Copyright 2007-2014 by Apple Inc.
- * Copyright 1997-2007 by Easy Software Products.
+ * Copyright © 2020-2025 by OpenPrinting.
+ * Copyright © 2007-2014 by Apple Inc.
+ * Copyright © 1997-2007 by Easy Software Products.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more information.
*/
-/*
- * Include necessary headers...
- */
-
#include "cups.h"
#include "sidechannel.h"
#include
@@ -38,7 +34,7 @@ static void cups_setup(fd_set *set, struct timeval *tval,
* 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/macOS 10.5@
+ * @since CUPS 1.2@
*/
ssize_t /* O - Bytes read or -1 on error */
@@ -89,7 +85,7 @@ cupsBackChannelRead(char *buffer, /* I - Buffer to read into */
* 0.0 to return immediately if the data cannot be written, -1.0 to wait
* indefinitely.
*
- * @since CUPS 1.2/macOS 10.5@
+ * @since CUPS 1.2@
*/
ssize_t /* O - Bytes written or -1 on error */
diff --git a/cups/backend.c b/cups/backend.c
index 59af0f7daf..dfe51be321 100644
--- a/cups/backend.c
+++ b/cups/backend.c
@@ -1,17 +1,13 @@
/*
* Backend functions for CUPS.
*
- * Copyright © 2020-2024 by OpenPrinting.
- * Copyright 2007-2015 by Apple Inc.
- * Copyright 2006 by Easy Software Products.
+ * Copyright © 2020-2025 by OpenPrinting.
+ * Copyright © 2007-2015 by Apple Inc.
+ * Copyright © 2006 by Easy Software Products.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more information.
*/
-/*
- * Include necessary headers...
- */
-
#include "cups-private.h"
#include "backend.h"
#include "ppd.h"
@@ -32,7 +28,7 @@ static void quote_string(const char *s);
* variable or the device URI passed in argv[0], whichever is found
* first.
*
- * @since CUPS 1.2/macOS 10.5@
+ * @since CUPS 1.2@
*/
const char * /* O - Device URI or @code NULL@ */
@@ -79,7 +75,7 @@ cupsBackendDeviceURI(char **argv) /* I - Command-line arguments */
* It handles quoting of special characters in the device-make-and-model,
* device-info, device-id, and device-location strings.
*
- * @since CUPS 1.4/macOS 10.6@
+ * @since CUPS 1.4@
*/
void
diff --git a/cups/cups.h b/cups/cups.h
index 72cd743796..b98d36f91e 100644
--- a/cups/cups.h
+++ b/cups/cups.h
@@ -1,7 +1,7 @@
//
// API definitions for CUPS.
//
-// Copyright © 2020-2024 by OpenPrinting.
+// Copyright © 2020-2025 by OpenPrinting.
// Copyright © 2007-2020 by Apple Inc.
// Copyright © 1997-2007 by Easy Software Products.
//
@@ -296,7 +296,7 @@ typedef struct cups_dest_s // Destination
} cups_dest_t;
typedef struct _cups_dinfo_s cups_dinfo_t;
- // Destination capability and status information @since CUPS 1.6/macOS 10.8@
+ // Destination capability and status information @since CUPS 1.6@
typedef struct cups_job_s // Job information
{
@@ -345,7 +345,7 @@ typedef bool (*cups_cert_san_cb_t)(const char *common_name, const char *subject_
// Certificate signing subjectAltName callback
typedef int (*cups_dest_cb_t)(void *user_data, unsigned flags, cups_dest_t *dest);
- // Destination enumeration callback @since CUPS 1.6/macOS 10.8@
+ // Destination enumeration callback @since CUPS 1.6@
# ifdef __BLOCKS__
typedef int (^cups_dest_block_t)(unsigned flags, cups_dest_t *dest);
@@ -359,7 +359,7 @@ typedef const char *(*cups_password_cb_t)(const char *prompt);
// Password callback @deprecated@ @exclude all@
typedef const char *(*cups_password_cb2_t)(const char *prompt, http_t *http, const char *method, const char *resource, void *user_data);
- // New password callback @since CUPS 1.4/macOS 10.6@
+ // New password callback @since CUPS 1.4@
typedef int (*cups_server_cert_cb_t)(http_t *http, void *tls, cups_array_t *certs, void *user_data);
// Server credentials callback @deprecated@
diff --git a/cups/cupspm.md b/cups/cupspm.md
index a97edc0fb4..c713c03ec6 100644
--- a/cups/cupspm.md
+++ b/cups/cupspm.md
@@ -1,7 +1,7 @@
---
title: CUPS Programming Manual
author: Michael R Sweet
-copyright: Copyright © 2020-2024 by OpenPrinting. All Rights Reserved.
+copyright: Copyright © 2020-2025 by OpenPrinting. All Rights Reserved.
version: 2.5.0
...
diff --git a/cups/dest-job.c b/cups/dest-job.c
index e8bf3b60c7..4d33a074d5 100644
--- a/cups/dest-job.c
+++ b/cups/dest-job.c
@@ -1,16 +1,12 @@
/*
* Destination job support for CUPS.
*
- * Copyright © 2020-2024 by OpenPrinting.
- * Copyright 2012-2017 by Apple Inc.
+ * Copyright © 2020-2025 by OpenPrinting.
+ * Copyright © 2012-2017 by Apple Inc.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more information.
*/
-/*
- * Include necessary headers...
- */
-
#include "cups-private.h"
#include "debug-internal.h"
@@ -24,7 +20,7 @@
* @code IPP_STATUS_ERROR_NOT_AUTHORIZED@ or
* @code IPP_STATUS_ERROR_FORBIDDEN@ on failure.
*
- * @since CUPS 1.6/macOS 10.8@
+ * @since CUPS 1.6@
*/
ipp_status_t /* O - Status of cancel operation */
@@ -62,7 +58,7 @@ cupsCancelDestJob(http_t *http, /* I - Connection to destination */
* "job_id" is the job ID returned by cupsCreateDestJob. Returns @code IPP_STATUS_OK@
* on success.
*
- * @since CUPS 1.6/macOS 10.8@
+ * @since CUPS 1.6@
*/
ipp_status_t /* O - IPP status code */
@@ -152,7 +148,7 @@ cupsCloseDestJob(
* 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/macOS 10.8@
+ * @since CUPS 1.6@
*/
ipp_status_t /* O - IPP status code */
@@ -247,7 +243,7 @@ cupsCreateDestJob(
*
* Returns @code IPP_STATUS_OK@ or @code IPP_STATUS_OK_SUBST@ on success.
*
- * @since CUPS 1.6/macOS 10.8@
+ * @since CUPS 1.6@
*/
ipp_status_t /* O - Status of document submission */
@@ -298,7 +294,7 @@ cupsFinishDestDocument(
* if this is the last document to be submitted in the job. Returns
* @code HTTP_CONTINUE@ on success.
*
- * @since CUPS 1.6/macOS 10.8@
+ * @since CUPS 1.6@
*/
http_status_t /* O - Status of document creation */
diff --git a/cups/dest-localization.c b/cups/dest-localization.c
index 617c5c0414..13232cd3b5 100644
--- a/cups/dest-localization.c
+++ b/cups/dest-localization.c
@@ -1,17 +1,13 @@
/*
* Destination localization support for CUPS.
*
- * Copyright © 2020-2024 by OpenPrinting.
+ * Copyright © 2020-2025 by OpenPrinting.
* Copyright © 2012-2017 by Apple Inc.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more
* information.
*/
-/*
- * Include necessary headers...
- */
-
#include "cups-private.h"
#include "debug-internal.h"
@@ -33,7 +29,7 @@ static void cups_create_localizations(http_t *http, cups_dinfo_t *dinfo);
* The returned string is stored in the destination information and will become
* invalid if the destination information is deleted.
*
- * @since CUPS 2.0/macOS 10.10@
+ * @since CUPS 2.0@
*/
const char * /* O - Localized string */
@@ -305,7 +301,7 @@ cupsLocalizeDestMedia2(
* The returned string is stored in the destination information and will become
* invalid if the destination information is deleted.
*
- * @since CUPS 1.6/macOS 10.8@
+ * @since CUPS 1.6@
*/
const char * /* O - Localized string */
@@ -345,7 +341,7 @@ cupsLocalizeDestOption(
* The returned string is stored in the destination information and will become
* invalid if the destination information is deleted.
*
- * @since CUPS 1.6/macOS 10.8@
+ * @since CUPS 1.6@
*/
const char * /* O - Localized string */
diff --git a/cups/dest-options.c b/cups/dest-options.c
index b4ccfcc70e..006113a4d6 100644
--- a/cups/dest-options.c
+++ b/cups/dest-options.c
@@ -1,7 +1,7 @@
/*
* Destination option/media support for CUPS.
*
- * Copyright © 2020-2024 by OpenPrinting.
+ * Copyright © 2020-2025 by OpenPrinting.
* Copyright © 2012-2019 by Apple Inc.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more
@@ -47,7 +47,7 @@ static void cups_update_ready(http_t *http, cups_dinfo_t *dinfo);
/*
* 'cupsAddDestMediaOptions()' - Add the option corresponding to the specified media size.
*
- * @since CUPS 2.3/macOS 10.14@
+ * @since CUPS 2.3@
*/
int /* O - New number of options */
@@ -246,7 +246,7 @@ cupsAddDestMediaOptions2(
*
* Returns 1 if supported, 0 otherwise.
*
- * @since CUPS 1.6/macOS 10.8@
+ * @since CUPS 1.6@
*/
int /* O - 1 if supported, 0 otherwise */
@@ -462,7 +462,7 @@ cupsCheckDestSupported(
* If cupsCopyDestConflicts returns 1 but "num_resolved" and "resolved" are set
* to 0 and `NULL`, respectively, then the conflict cannot be resolved.
*
- * @since CUPS 1.6/macOS 10.8@
+ * @since CUPS 1.6@
*/
int /* O - 1 if there is a conflict, 0 if none, -1 on error */
@@ -958,7 +958,7 @@ cupsCopyDestInfo2(
* @code ippGetResolution@, @code ippGetString@, and @code ippGetValueTag@
* functions to inspect the default value(s) as needed.
*
- * @since CUPS 1.7/macOS 10.9@
+ * @since CUPS 1.7@
*/
ipp_attribute_t * /* O - Default attribute or `NULL` for none */
@@ -1006,7 +1006,7 @@ cupsFindDestDefault(
* @code ippGetResolution@, @code ippGetString@, and @code ippGetValueTag@
* functions to inspect the default value(s) as needed.
*
- * @since CUPS 1.7/macOS 10.9@
+ * @since CUPS 1.7@
*/
ipp_attribute_t * /* O - Default attribute or `NULL` for none */
@@ -1056,7 +1056,7 @@ cupsFindDestReady(
* @code ippGetResolution@, @code ippGetString@, and @code ippGetValueTag@
* functions to inspect the default value(s) as needed.
*
- * @since CUPS 1.7/macOS 10.9@
+ * @since CUPS 1.7@
*/
ipp_attribute_t * /* O - Default attribute or `NULL` for none */
@@ -1099,7 +1099,7 @@ cupsFindDestSupported(
* 'cupsFreeDestInfo()' - Free destination information obtained using
* @link cupsCopyDestInfo@.
*
- * @since CUPS 1.6/macOS 10.8@
+ * @since CUPS 1.6@
*/
void
@@ -1144,7 +1144,7 @@ cupsFreeDestInfo(cups_dinfo_t *dinfo) /* I - Destination information */
* example, passing @code CUPS_MEDIA_FLAGS_BORDERLESS@ will get the Nth
* borderless size supported by the printer.
*
- * @since CUPS 1.7/macOS 10.9@
+ * @since CUPS 1.7@
*/
int /* O - 1 on success, 0 on failure */
@@ -1337,7 +1337,7 @@ cupsGetDestMediaByIndex2(
*
* Returns 1 when there is a match and 0 if there is not a match.
*
- * @since CUPS 1.6/macOS 10.8@
+ * @since CUPS 1.6@
*/
int /* O - 1 on match, 0 on failure */
@@ -1411,7 +1411,7 @@ cupsGetDestMediaByName(
*
* Returns `true` when there is a match and `false` if there is not a match.
*
- * @since CUPS 1.6/macOS 10.8@
+ * @since CUPS 1.6@
*/
bool /* O - `true` on match, `false` on failure */
@@ -1485,7 +1485,7 @@ cupsGetDestMediaByName2(
*
* Returns 1 when there is a match and 0 if there is not a match.
*
- * @since CUPS 1.6/macOS 10.8@
+ * @since CUPS 1.6@
*/
int /* O - 1 on match, 0 on failure */
@@ -1622,7 +1622,7 @@ cupsGetDestMediaBySize2(
* counted. For example, passing @code CUPS_MEDIA_FLAGS_BORDERLESS@ will return
* the number of borderless sizes.
*
- * @since CUPS 1.7/macOS 10.9@
+ * @since CUPS 1.7@
*/
int /* O - Number of sizes */
@@ -1670,7 +1670,7 @@ cupsGetDestMediaCount(
* 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/macOS 10.9@
+ * @since CUPS 1.7@
*/
int /* O - 1 on success, 0 on failure */
diff --git a/cups/dest.c b/cups/dest.c
index f0067100a6..3659f5f75f 100644
--- a/cups/dest.c
+++ b/cups/dest.c
@@ -1,7 +1,7 @@
//
// User-defined destination (and option) support for CUPS.
//
-// Copyright © 2020-2024 by OpenPrinting.
+// Copyright © 2020-2025 by OpenPrinting.
// Copyright © 2007-2019 by Apple Inc.
// Copyright © 1997-2007 by Easy Software Products.
//
@@ -493,7 +493,7 @@ _cupsAppleSetUseLastPrinter(
// the destination. Otherwise, the connection is made to the CUPS scheduler
// associated with the destination.
//
-// @since CUPS 1.6/macOS 10.8@
+// @since CUPS 1.6@
//
http_t * // O - Connection to destination or @code NULL@
@@ -682,7 +682,7 @@ cupsConnectDest(
// the destination. Otherwise, the connection is made to the CUPS scheduler
// associated with the destination.
//
-// @since CUPS 1.6/macOS 10.8@ @exclude all@
+// @since CUPS 1.6@ @exclude all@
//
http_t * // O - Connection to destination or @code NULL@
@@ -708,7 +708,7 @@ cupsConnectDestBlock(
// copy) - for use with the cupsEnumDests* functions. The caller is responsible
// for calling cupsFreeDests() on the returned object(s).
//
-// @since CUPS 1.6/macOS 10.8@
+// @since CUPS 1.6@
//
int // O - New number of destinations
@@ -876,7 +876,7 @@ _cupsCreateDest(const char *name, // I - Printer name
// Note: The callback function will likely receive multiple updates for the same
// destinations - it is up to the caller to suppress any duplicate destinations.
//
-// @since CUPS 1.6/macOS 10.8@
+// @since CUPS 1.6@
//
int // O - 1 on success, 0 on failure
@@ -913,7 +913,7 @@ cupsEnumDests(
// Note: The block will likely receive multiple updates for the same
// destinations - it is up to the caller to suppress any duplicate destinations.
//
-// @since CUPS 1.6/macOS 10.8@ @exclude all@
+// @since CUPS 1.6@ @exclude all@
//
int // O - 1 on success, 0 on failure
@@ -1126,7 +1126,7 @@ _cupsGetDestResource(
//
// "uri" is the "ipp" or "ipps" URI for the printer.
//
-// @since CUPS 2.0/macOS 10.10@
+// @since CUPS 2.0@
//
cups_dest_t * // O - Destination or @code NULL@
@@ -1555,7 +1555,7 @@ cupsGetDests(cups_dest_t **dests) // O - Destinations
// 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/macOS 10.4@
+// @since CUPS 1.1.21@
//
int // O - Number of destinations
@@ -1651,7 +1651,7 @@ cupsGetDests2(http_t *http, // I - Connection to server or @code CUPS_HTTP_
// The returned destination must be freed using @link cupsFreeDests@ with a
// "num_dests" value of 1.
//
-// @since CUPS 1.4/macOS 10.6@
+// @since CUPS 1.4@
//
cups_dest_t * // O - Destination or @code NULL@
@@ -1836,7 +1836,7 @@ cupsGetNamedDest(http_t *http, // I - Connection to server or @code CUPS_HTT
// @link cupsSetDests@ or @link cupsSetDests2@ functions to save the new
// options for the user.
//
-// @since CUPS 1.3/macOS 10.5@
+// @since CUPS 1.3@
//
int // O - New number of destinations
@@ -1882,7 +1882,7 @@ cupsRemoveDest(const char *name, // I - Destination name
//
// 'cupsSetDefaultDest()' - Set the default destination.
//
-// @since CUPS 1.3/macOS 10.5@
+// @since CUPS 1.3@
//
void
@@ -1939,7 +1939,7 @@ cupsSetDests(int num_dests, // I - Number of destinations
// 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/macOS 10.4@
+// @since CUPS 1.1.21@
//
int // O - 0 on success, -1 on error
diff --git a/cups/dir.c b/cups/dir.c
index ff5ea31620..9bcd6c858a 100644
--- a/cups/dir.c
+++ b/cups/dir.c
@@ -3,7 +3,7 @@
*
* This set of APIs abstracts enumeration of directory entries.
*
- * Copyright © 2022-2024 by OpenPrinting.
+ * Copyright © 2022-2025 by OpenPrinting.
* Copyright © 2007-2021 by Apple Inc.
* Copyright © 1997-2005 by Easy Software Products, all rights reserved.
*
@@ -11,10 +11,6 @@
* information.
*/
-/*
- * Include necessary headers...
- */
-
#include "cups-private.h"
#include "string-private.h"
#include "debug-internal.h"
@@ -103,7 +99,7 @@ _cups_dir_time(FILETIME ft) /* I - File time */
/*
* 'cupsDirClose()' - Close a directory.
*
- * @since CUPS 1.2/macOS 10.5@
+ * @since CUPS 1.2@
*/
void
@@ -134,7 +130,7 @@ cupsDirClose(cups_dir_t *dp) /* I - Directory pointer */
/*
* 'cupsDirOpen()' - Open a directory.
*
- * @since CUPS 1.2/macOS 10.5@
+ * @since CUPS 1.2@
*/
cups_dir_t * /* O - Directory pointer or @code NULL@ if the directory could not be opened. */
@@ -177,7 +173,7 @@ cupsDirOpen(const char *directory) /* I - Directory name */
/*
* 'cupsDirRead()' - Read the next directory entry.
*
- * @since CUPS 1.2/macOS 10.5@
+ * @since CUPS 1.2@
*/
cups_dentry_t * /* O - Directory entry or @code NULL@ if there are no more */
@@ -247,7 +243,7 @@ cupsDirRead(cups_dir_t *dp) /* I - Directory pointer */
/*
* 'cupsDirRewind()' - Rewind to the start of the directory.
*
- * @since CUPS 1.2/macOS 10.5@
+ * @since CUPS 1.2@
*/
void
@@ -297,7 +293,7 @@ struct _cups_dir_s /**** Directory data structure ****/
/*
* 'cupsDirClose()' - Close a directory.
*
- * @since CUPS 1.2/macOS 10.5@
+ * @since CUPS 1.2@
*/
void
@@ -324,7 +320,7 @@ cupsDirClose(cups_dir_t *dp) /* I - Directory pointer */
/*
* 'cupsDirOpen()' - Open a directory.
*
- * @since CUPS 1.2/macOS 10.5@
+ * @since CUPS 1.2@
*/
cups_dir_t * /* O - Directory pointer or @code NULL@ if the directory could not be opened. */
@@ -378,7 +374,7 @@ cupsDirOpen(const char *directory) /* I - Directory name */
/*
* 'cupsDirRead()' - Read the next directory entry.
*
- * @since CUPS 1.2/macOS 10.5@
+ * @since CUPS 1.2@
*/
cups_dentry_t * /* O - Directory entry or @code NULL@ when there are no more */
@@ -448,7 +444,7 @@ cupsDirRead(cups_dir_t *dp) /* I - Directory pointer */
/*
* 'cupsDirRewind()' - Rewind to the start of the directory.
*
- * @since CUPS 1.2/macOS 10.5@
+ * @since CUPS 1.2@
*/
void
diff --git a/cups/encode.c b/cups/encode.c
index b5f7c62830..0e907d734e 100644
--- a/cups/encode.c
+++ b/cups/encode.c
@@ -1,7 +1,7 @@
/*
* Option encoding routines for CUPS.
*
- * Copyright © 2020-2024 by OpenPrinting.
+ * Copyright © 2020-2025 by OpenPrinting.
* Copyright © 2007-2019 by Apple Inc.
* Copyright © 1997-2007 by Easy Software Products.
*
@@ -9,10 +9,6 @@
* information.
*/
-/*
- * Include necessary headers...
- */
-
#include "cups-private.h"
#include "debug-internal.h"
@@ -694,7 +690,7 @@ _cupsEncodeOption(
/*
* 'cupsEncodeOption()' - Encode a single option into an IPP attribute.
*
- * @since CUPS 2.3/macOS 10.14@
+ * @since CUPS 2.3@
*/
ipp_attribute_t * /* O - New attribute or @code NULL@ on error */
@@ -739,7 +735,7 @@ cupsEncodeOptions(ipp_t *ipp, /* I - IPP request/response */
* function multiple times for each group, or use @link cupsEncodeOptions@
* to add the standard groups.
*
- * @since CUPS 1.2/macOS 10.5@
+ * @since CUPS 1.2@
*/
void
diff --git a/cups/file.c b/cups/file.c
index 226b944606..c4293fc2e9 100644
--- a/cups/file.c
+++ b/cups/file.c
@@ -6,7 +6,7 @@
// our own file functions allows us to provide transparent support of
// different line endings, gzip'd print files, PPD files, etc.
//
-// Copyright © 2020-2024 by OpenPrinting.
+// Copyright © 2020-2025 by OpenPrinting.
// Copyright © 2007-2019 by Apple Inc.
// Copyright © 1997-2007 by Easy Software Products, all rights reserved.
//
@@ -292,7 +292,7 @@ _cupsFileCheckFilter(
//
// 'cupsFileClose()' - Close a CUPS file.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
int // O - 0 on success, -1 on error
@@ -411,7 +411,7 @@ cupsFileCompression(cups_file_t *fp) // I - CUPS file
//
// 'cupsFileEOF()' - Return the end-of-file status.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
int // O - 1 on end of file, 0 otherwise
@@ -430,7 +430,7 @@ cupsFileEOF(cups_file_t *fp) // I - CUPS file
// the supplied paths, @code NULL@ is returned. A @code NULL@ path only
// matches the current directory.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
const char * // O - Full path to file or @code NULL@ if not found
@@ -519,7 +519,7 @@ cupsFileFind(const char *filename, // I - File to find
//
// 'cupsFileFlush()' - Flush pending output.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
int // O - 0 on success, -1 on error
@@ -561,7 +561,7 @@ cupsFileFlush(cups_file_t *fp) // I - CUPS file
//
// 'cupsFileGetChar()' - Get a single character from a file.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
int // O - Character or -1 on end of file
@@ -606,7 +606,7 @@ cupsFileGetChar(cups_file_t *fp) // I - CUPS file
//
// 'cupsFileGetConf()' - Get a line from a configuration file.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
char * // O - Line read or @code NULL@ on end of file or error
@@ -718,7 +718,7 @@ cupsFileGetConf(cups_file_t *fp, // I - CUPS file
// nul-terminated, however you should use the returned length to determine
// the number of bytes on the line.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
size_t // O - Number of bytes on line or 0 on end of file
@@ -780,7 +780,7 @@ cupsFileGetLine(cups_file_t *fp, // I - File to read from
//
// 'cupsFileGets()' - Get a CR and/or LF-terminated line.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
char * // O - Line read or @code NULL@ on end of file or error
@@ -862,7 +862,7 @@ cupsFileIsCompressed(cups_file_t *fp) // I - CUPS file
//
// 'cupsFileLock()' - Temporarily lock access to a file.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
int // O - 0 on success, -1 on error
@@ -885,7 +885,7 @@ cupsFileLock(cups_file_t *fp, // I - CUPS file
//
// 'cupsFileNumber()' - Return the file descriptor associated with a CUPS file.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
int // O - File descriptor
@@ -917,7 +917,7 @@ cupsFileNumber(cups_file_t *fp) // I - CUPS file
// connection as needed, generally preferring IPv6 connections when there is
// a choice.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
cups_file_t * // O - CUPS file or @code NULL@ if the file or socket cannot be opened
@@ -1026,7 +1026,7 @@ cupsFileOpen(const char *filename, // I - Name of file
// supplied which enables Flate compression of the file. Compression is
// not supported for the "a" (append) mode.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
cups_file_t * // O - CUPS file or @code NULL@ if the file could not be opened
@@ -1133,7 +1133,7 @@ _cupsFilePeekAhead(cups_file_t *fp, // I - CUPS file
//
// 'cupsFilePeekChar()' - Peek at the next character from a file.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
int // O - Character or -1 on end of file
@@ -1156,7 +1156,7 @@ cupsFilePeekChar(cups_file_t *fp) // I - CUPS file
//
// 'cupsFilePrintf()' - Write a formatted string.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
int // O - Number of bytes written or -1 on error
@@ -1249,7 +1249,7 @@ cupsFilePrintf(cups_file_t *fp, // I - CUPS file
//
// 'cupsFilePutChar()' - Write a character.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
int // O - 0 on success, -1 on error
@@ -1294,7 +1294,7 @@ cupsFilePutChar(cups_file_t *fp, // I - CUPS file
//
// This function handles any comment escaping of the value.
//
-// @since CUPS 1.4/macOS 10.6@
+// @since CUPS 1.4@
//
ssize_t // O - Number of bytes written or -1 on error
@@ -1352,7 +1352,7 @@ cupsFilePutConf(cups_file_t *fp, // I - CUPS file
//
// Like the @code fputs@ function, no newline is appended to the string.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
int // O - Number of bytes written or -1 on error
@@ -1412,7 +1412,7 @@ cupsFilePuts(cups_file_t *fp, // I - CUPS file
//
// 'cupsFileRead()' - Read from a file.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
ssize_t // O - Number of bytes read or -1 on error
@@ -1481,7 +1481,7 @@ cupsFileRead(cups_file_t *fp, // I - CUPS file
// 'cupsFileRewind()' - Set the current file position to the beginning of the
// file.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
off_t // O - New file position or -1 on error
@@ -1540,7 +1540,7 @@ cupsFileRewind(cups_file_t *fp) // I - CUPS file
//
// 'cupsFileSeek()' - Seek in a file.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
off_t // O - New file position or -1 on error
@@ -1664,7 +1664,7 @@ cupsFileSeek(cups_file_t *fp, // I - CUPS file
//
// 'cupsFileStderr()' - Return a CUPS file associated with stderr.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
cups_file_t * // O - CUPS file
@@ -1691,7 +1691,7 @@ cupsFileStderr(void)
//
// 'cupsFileStdin()' - Return a CUPS file associated with stdin.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
cups_file_t * // O - CUPS file
@@ -1715,7 +1715,7 @@ cupsFileStdin(void)
//
// 'cupsFileStdout()' - Return a CUPS file associated with stdout.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
cups_file_t * // O - CUPS file
@@ -1742,7 +1742,7 @@ cupsFileStdout(void)
//
// 'cupsFileTell()' - Return the current file position.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
off_t // O - File position
@@ -1758,7 +1758,7 @@ cupsFileTell(cups_file_t *fp) // I - CUPS file
//
// 'cupsFileUnlock()' - Unlock access to a file.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
int // O - 0 on success, -1 on error
@@ -1782,7 +1782,7 @@ cupsFileUnlock(cups_file_t *fp) // I - CUPS file
//
// 'cupsFileWrite()' - Write to a file.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
ssize_t // O - Number of bytes written or -1 on error
diff --git a/cups/getifaddrs-internal.h b/cups/getifaddrs-internal.h
index 1702b5d254..6cfe76c679 100644
--- a/cups/getifaddrs-internal.h
+++ b/cups/getifaddrs-internal.h
@@ -1,7 +1,7 @@
//
// getifaddrs definitions for CUPS.
//
-// Copyright © 2020-2024 by OpenPrinting.
+// Copyright © 2020-2025 by OpenPrinting.
// Copyright © 2007-2018 by Apple Inc.
// Copyright © 1997-2007 by Easy Software Products, all rights reserved.
//
diff --git a/cups/getputfile.c b/cups/getputfile.c
index a65f310c24..229bc111eb 100644
--- a/cups/getputfile.c
+++ b/cups/getputfile.c
@@ -1,7 +1,7 @@
/*
* Get/put file functions for CUPS.
*
- * Copyright © 2020-2024 by OpenPrinting.
+ * Copyright © 2020-2025 by OpenPrinting.
* Copyright © 2007-2018 by Apple Inc.
* Copyright © 1997-2006 by Easy Software Products.
*
@@ -9,10 +9,6 @@
* information.
*/
-/*
- * Include necessary headers...
- */
-
#include "cups-private.h"
#include "debug-internal.h"
#include
@@ -29,7 +25,7 @@
*
* This function returns @code HTTP_STATUS_OK@ when the file is successfully retrieved.
*
- * @since CUPS 1.1.20/macOS 10.4@
+ * @since CUPS 1.1.20@
*/
http_status_t /* O - HTTP status */
@@ -212,7 +208,7 @@ cupsGetFd(http_t *http, /* I - Connection to server or @code CUPS_HTTP_DEFA
*
* This function returns @code HTTP_STATUS_OK@ when the file is successfully retrieved.
*
- * @since CUPS 1.1.20/macOS 10.4@
+ * @since CUPS 1.1.20@
*/
http_status_t /* O - HTTP status */
@@ -280,7 +276,7 @@ cupsGetFile(http_t *http, /* I - Connection to server or @code CUPS_HTTP_DE
* This function returns @code HTTP_STATUS_CREATED@ when the file is stored
* successfully.
*
- * @since CUPS 1.1.20/macOS 10.4@
+ * @since CUPS 1.1.20@
*/
http_status_t /* O - HTTP status */
@@ -507,7 +503,7 @@ cupsPutFd(http_t *http, /* I - Connection to server or @code CUPS_HTTP_DEFA
* This function returns @code HTTP_CREATED@ when the file is stored
* successfully.
*
- * @since CUPS 1.1.20/macOS 10.4@
+ * @since CUPS 1.1.20@
*/
http_status_t /* O - HTTP status */
diff --git a/cups/globals.c b/cups/globals.c
index 519ebf1195..dbeae44d8f 100644
--- a/cups/globals.c
+++ b/cups/globals.c
@@ -1,7 +1,7 @@
/*
* Global variable access routines for CUPS.
*
- * Copyright © 2020-2024 by OpenPrinting.
+ * Copyright © 2020-2025 by OpenPrinting.
* Copyright © 2007-2019 by Apple Inc.
* Copyright © 1997-2007 by Easy Software Products, all rights reserved.
*
@@ -9,10 +9,6 @@
* information.
*/
-/*
- * Include necessary headers...
- */
-
#include "cups-private.h"
#include "debug-internal.h"
#ifndef _WIN32
@@ -121,6 +117,8 @@ _cupsGlobalUnlock(void)
#ifdef _WIN32
/*
* 'DllMain()' - Main entry for library.
+ *
+ * @private@
*/
BOOL WINAPI /* O - Success/failure */
diff --git a/cups/http-addr.c b/cups/http-addr.c
index 445053e581..3953f25be1 100644
--- a/cups/http-addr.c
+++ b/cups/http-addr.c
@@ -1,7 +1,7 @@
//
// HTTP address routines for CUPS.
//
-// Copyright © 2023-2024 by OpenPrinting.
+// Copyright © 2023-2025 by OpenPrinting.
// Copyright © 2007-2021 by Apple Inc.
// Copyright © 1997-2006 by Easy Software Products, all rights reserved.
//
@@ -185,7 +185,7 @@ httpAddrGetLength(
// 'httpAddrListen()' - Create a listening socket bound to the specified
// address and port.
//
-// @since CUPS 1.7/macOS 10.9@
+// @since CUPS 1.7@
//
int // O - Socket or -1 on error
@@ -339,7 +339,7 @@ httpAddrIsLocalhost(
//
// 'httpAddrLookup()' - Lookup the hostname associated with the address.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
char * // O - Host name
@@ -713,7 +713,7 @@ httpGetHostByName(const char *name) // I - Hostname or IP address
// Otherwise, return the FQDN for the local system using both gethostname()
// and gethostbyname() to get the local hostname with domain.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
const char * // O - FQDN for connection or system
diff --git a/cups/http-addrlist.c b/cups/http-addrlist.c
index 56d4b3705f..53c07e9b07 100644
--- a/cups/http-addrlist.c
+++ b/cups/http-addrlist.c
@@ -1,7 +1,7 @@
/*
* HTTP address list routines for CUPS.
*
- * Copyright © 2022-2024 by OpenPrinting.
+ * Copyright © 2022-2025 by OpenPrinting.
* Copyright © 2007-2021 by Apple Inc.
* Copyright © 1997-2007 by Easy Software Products, all rights reserved.
*
@@ -9,10 +9,6 @@
* information.
*/
-/*
- * Include necessary headers...
- */
-
#include "cups-private.h"
#include "debug-internal.h"
#ifdef HAVE_RESOLV_H
@@ -27,7 +23,7 @@
/*
* 'httpAddrConnect()' - Connect to any of the addresses in the list.
*
- * @since CUPS 1.2/macOS 10.5@ @exclude all@
+ * @since CUPS 1.2@ @exclude all@
*/
http_addrlist_t * /* O - Connected address or NULL on failure */
@@ -45,7 +41,7 @@ httpAddrConnect(
* 'httpAddrConnect2()' - Connect to any of the addresses in the list with a
* timeout and optional cancel.
*
- * @since CUPS 1.7/macOS 10.9@
+ * @since CUPS 1.7@
*/
http_addrlist_t * /* O - Connected address or NULL on failure */
@@ -397,7 +393,7 @@ httpAddrConnect2(
/*
* 'httpAddrCopyList()' - Copy an address list.
*
- * @since CUPS 1.7/macOS 10.9@
+ * @since CUPS 1.7@
*/
http_addrlist_t * /* O - New address list or @code NULL@ on error */
@@ -446,7 +442,7 @@ httpAddrCopyList(
/*
* 'httpAddrFreeList()' - Free an address list.
*
- * @since CUPS 1.2/macOS 10.5@
+ * @since CUPS 1.2@
*/
void
@@ -474,7 +470,7 @@ httpAddrFreeList(
/*
* 'httpAddrGetList()' - Get a list of addresses for a hostname.
*
- * @since CUPS 1.2/macOS 10.5@
+ * @since CUPS 1.2@
*/
http_addrlist_t * /* O - List of addresses or NULL */
diff --git a/cups/http-support.c b/cups/http-support.c
index f28333db0b..0a195b310c 100644
--- a/cups/http-support.c
+++ b/cups/http-support.c
@@ -1,7 +1,7 @@
//
// HTTP support routines for CUPS.
//
-// Copyright © 2020-2023 by OpenPrinting
+// Copyright © 2020-2025 by OpenPrinting
// Copyright © 2007-2019 by Apple Inc.
// Copyright © 1997-2007 by Easy Software Products, all rights reserved.
//
@@ -97,7 +97,7 @@ static void http_resolve_cb(cups_dnssd_resolve_t *res, void *cb_data, cups_dns
// place of traditional string functions whenever you need to create a
// URI string.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
http_uri_status_t // O - URI status
@@ -332,7 +332,7 @@ httpAssembleURI(
// this function in place of traditional string functions whenever
// you need to create a URI string.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
http_uri_status_t // O - URI status
@@ -387,7 +387,7 @@ httpAssembleURIf(
//
// The buffer needs to be at least 46 bytes in size.
//
-// @since CUPS 1.7/macOS 10.9@
+// @since CUPS 1.7@
//
char * // I - UUID string
@@ -726,7 +726,7 @@ httpGetDateString(time_t t) // I - Time in seconds
//
// 'httpGetDateString2()' - Get a formatted date/time string from a time value.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
const char * // O - Date/time string
@@ -858,7 +858,7 @@ httpSeparate2(const char *uri, // I - Universal Resource Identifier
// 'httpSeparateURI()' - Separate a Universal Resource Identifier into its
// components.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
http_uri_status_t // O - Result of separation
diff --git a/cups/http.c b/cups/http.c
index 0c9803f18f..dfefbacb80 100644
--- a/cups/http.c
+++ b/cups/http.c
@@ -109,7 +109,7 @@ static const char * const http_fields[] =
// listening socket "fd". The "blocking" argument specifies whether the new
// HTTP connection is blocking.
//
-// @since CUPS 1.7/macOS 10.9@
+// @since CUPS 1.7@
//
http_t * // O - HTTP connection or `NULL`
@@ -221,7 +221,7 @@ httpCheck(http_t *http) // I - HTTP connection
//
// 'httpClearCookie()' - Clear the cookie value(s).
//
-// @since CUPS 1.1.19/macOS 10.3@
+// @since CUPS 1.1.19@
//
void
@@ -400,7 +400,7 @@ httpConnect(const char *host, // I - Host to connect to
// specifies an integer variable that can be set to a non-zero value to cancel
// the connection process.
//
-// @since CUPS 1.7/macOS 10.9@
+// @since CUPS 1.7@
//
http_t * // O - New HTTP connection
@@ -840,7 +840,7 @@ httpFlush(http_t *http) // I - HTTP connection
//
// 'httpFlushWrite()' - Flush data written to a HTTP connection.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
int // O - Bytes written or -1 on error
@@ -921,7 +921,7 @@ httpGetActivity(http_t *http) // I - HTTP connection
// string to use with @link httpSetField@ for the
// `HTTP_FIELD_AUTHORIZATION` value.
//
-// @since CUPS 1.3/macOS 10.5@
+// @since CUPS 1.3@
//
char * // O - Authorization string
@@ -937,7 +937,7 @@ httpGetAuthString(http_t *http) // I - HTTP connection
//
// 'httpGetBlocking()' - Get the blocking/non-blocking state of a connection.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
int // O - 1 if blocking, 0 if non-blocking
@@ -956,7 +956,7 @@ httpGetBlocking(http_t *http) // I - HTTP connection
// 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/macOS 10.9@
+// @since CUPS 1.7@
//
const char * // O - Content-Coding value or `NULL` for the identity coding.
@@ -1026,7 +1026,7 @@ httpGetContentEncoding(http_t *http) // I - HTTP connection
//
// 'httpGetCookie()' - Get any cookie data from the response.
//
-// @since CUPS 1.1.19/macOS 10.3@
+// @since CUPS 1.1.19@
//
const char * // O - Cookie data or `NULL`
@@ -1043,7 +1043,7 @@ httpGetCookie(http_t *http) // I - HTTP connection
// @link httpIsEncrypted@ function to determine whether a TLS session has
// been established.
//
-// @since CUPS 2.0/macOS 10.10@
+// @since CUPS 2.0@
//
http_encryption_t // O - Current encryption mode
@@ -1075,7 +1075,7 @@ httpGetError(http_t *http) // I - HTTP connection
// Returns `HTTP_STATUS_NONE` if there is no Expect header, otherwise
// returns the expected HTTP status code, typically `HTTP_STATUS_CONTINUE`.
//
-// @since CUPS 1.7/macOS 10.9@
+// @since CUPS 1.7@
//
http_status_t // O - Expect: status, if any
@@ -1091,7 +1091,7 @@ httpGetExpect(http_t *http) // I - HTTP connection
//
// 'httpGetFd()' - Get the file descriptor associated with a connection.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
int // O - File descriptor or -1 if none
@@ -1163,7 +1163,7 @@ httpGetLength(http_t *http) // I - HTTP connection
// This function returns the complete content length, even for
// content larger than 2^31 - 1.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
off_t // O - Content length
@@ -1449,7 +1449,7 @@ httpGetState(http_t *http) // I - HTTP connection
//
// 'httpGetStatus()' - Get the status of the last HTTP request.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
http_status_t // O - HTTP status
@@ -1478,7 +1478,7 @@ httpGetSubField(http_t *http, // I - HTTP connection
//
// 'httpGetSubField2()' - Get a sub-field value.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
char * // O - Value or `NULL`
@@ -1726,7 +1726,7 @@ httpOptions(http_t *http, // I - HTTP connection
//
// For non-blocking connections the usual timeouts apply.
//
-// @since CUPS 1.7/macOS 10.9@
+// @since CUPS 1.7@
//
ssize_t // O - Number of bytes copied
@@ -2040,7 +2040,7 @@ httpRead(http_t *http, // I - HTTP connection
//
// 'httpRead2()' - Read data from a HTTP connection.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
ssize_t // O - Number of bytes read
@@ -2216,7 +2216,7 @@ httpRead2(http_t *http, // I - HTTP connection
//
// 'httpReadRequest()' - Read a HTTP request from a connection.
//
-// @since CUPS 1.7/macOS 10.9@
+// @since CUPS 1.7@
//
http_state_t // O - New state of connection
@@ -2438,7 +2438,7 @@ httpSaveCredentials(
// `HTTP_FIELD_AUTHORIZATION` prior to issuing a HTTP request using
// @link httpWriteRequest@.
//
-// @since CUPS 1.3/macOS 10.5@
+// @since CUPS 1.3@
//
void
@@ -2522,7 +2522,7 @@ httpSetCredentials(http_t *http, // I - HTTP connection
//
// 'httpSetCookie()' - Set the cookie value(s).
//
-// @since CUPS 1.1.19/macOS 10.3@
+// @since CUPS 1.1.19@
//
void
@@ -2548,7 +2548,7 @@ httpSetCookie(http_t *http, // I - Connection
// Currently only `HTTP_FIELD_ACCEPT_ENCODING`, `HTTP_FIELD_SERVER`,
// and `HTTP_FIELD_USER_AGENT` can be set.
//
-// @since CUPS 1.7/macOS 10.9@
+// @since CUPS 1.7@
//
void
@@ -2615,7 +2615,7 @@ httpSetEncryption(
// Currently only `HTTP_STATUS_CONTINUE` is supported for the "expect"
// argument.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
void
@@ -2666,7 +2666,7 @@ httpSetKeepAlive(
//
// 'httpSetLength()' - Set the content-length and content-encoding.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
void
@@ -2700,7 +2700,7 @@ httpSetLength(http_t *http, // I - HTTP connection
// 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/macOS 10.7@
+// @since CUPS 1.5@
//
void
@@ -3017,7 +3017,7 @@ _httpWait(http_t *http, // I - HTTP connection
//
// 'httpWait()' - Wait for data available on a connection.
//
-// @since CUPS 1.1.19/macOS 10.3@
+// @since CUPS 1.1.19@
//
int // O - 1 if data is available, 0 otherwise
@@ -3077,7 +3077,7 @@ httpWrite(http_t *http, // I - HTTP connection
//
// 'httpWrite2()' - Write data to a HTTP connection.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
ssize_t // O - Number of bytes written
@@ -3260,7 +3260,7 @@ httpWriteRequest(http_t *http, // I - HTTP connection
//
// 'httpWriteResponse()' - Write a HTTP response to a client connection.
//
-// @since CUPS 1.7/macOS 10.9@
+// @since CUPS 1.7@
//
int // O - 0 on success, -1 on error
diff --git a/cups/ipp-support.c b/cups/ipp-support.c
index bf844e8ee6..daa895856f 100644
--- a/cups/ipp-support.c
+++ b/cups/ipp-support.c
@@ -1,7 +1,7 @@
//
// Internet Printing Protocol support functions for CUPS.
//
-// Copyright © 2020-2024 by OpenPrinting.
+// Copyright © 2020-2025 by OpenPrinting.
// Copyright © 2007-2018 by Apple Inc.
// Copyright © 1997-2007 by Easy Software Products, all rights reserved.
//
@@ -647,7 +647,7 @@ static size_t ipp_col_string(ipp_t *col, char *buffer, size_t bufsize);
// trailing nul. The buffer pointer can be NULL to get the required length,
// just like (v)snprintf.
//
-// @since CUPS 1.6/macOS 10.8@
+// @since CUPS 1.6@
//
size_t // O - Number of bytes less nul
@@ -878,7 +878,7 @@ ippAttributeString(
// "attribute-name")@ will return a non-NULL pointer. The array must be freed
// using the @code cupsArrayDelete@ function.
//
-// @since CUPS 1.7/macOS 10.9@
+// @since CUPS 1.7@
//
cups_array_t * // O - CUPS array or @code NULL@ if all
@@ -2274,7 +2274,7 @@ ippErrorString(ipp_status_t error) // I - Error status
//
// 'ippErrorValue()' - Return a status code for the given name.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
ipp_status_t // O - IPP status code
@@ -2339,7 +2339,7 @@ ippGetPort(void)
//
// 'ippOpString()' - Return a name for the given operation id.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
const char * // O - Name
@@ -2374,7 +2374,7 @@ ippOpString(ipp_op_t op) // I - Operation ID
//
// 'ippOpValue()' - Return an operation id for the given name.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
ipp_op_t // O - Operation ID
@@ -2464,7 +2464,7 @@ ippStateString(ipp_state_t state) // I - State value
//
// The returned names are defined in RFC 8011 and the IANA IPP Registry.
//
-// @since CUPS 1.4/macOS 10.6@
+// @since CUPS 1.4@
//
const char * // O - Tag name
@@ -2484,7 +2484,7 @@ ippTagString(ipp_tag_t tag) // I - Tag value
//
// The tag names are defined in RFC 8011 and the IANA IPP Registry.
//
-// @since CUPS 1.4/macOS 10.6@
+// @since CUPS 1.4@
//
ipp_tag_t // O - Tag value
diff --git a/cups/ipp.c b/cups/ipp.c
index 7cb6910471..70052849c9 100644
--- a/cups/ipp.c
+++ b/cups/ipp.c
@@ -1,7 +1,7 @@
//
// Internet Printing Protocol functions for CUPS.
//
-// Copyright © 2022-2024 by OpenPrinting.
+// Copyright © 2022-2025 by OpenPrinting.
// Copyright © 2007-2021 by Apple Inc.
// Copyright © 1997-2007 by Easy Software Products, all rights reserved.
//
@@ -176,7 +176,7 @@ ippAddBooleans(ipp_t *ipp, // I - IPP message
// (`IPP_TAG_OPERATION`), printer (`IPP_TAG_PRINTER`), subscription
// (`IPP_TAG_SUBSCRIPTION`), or unsupported (`IPP_TAG_UNSUPPORTED_GROUP`).
//
-// @since CUPS 1.1.19/macOS 10.3@
+// @since CUPS 1.1.19@
//
ipp_attribute_t * // O - New attribute
@@ -219,7 +219,7 @@ ippAddCollection(ipp_t *ipp, // I - IPP message
// (`IPP_TAG_OPERATION`), printer (`IPP_TAG_PRINTER`), subscription
// (`IPP_TAG_SUBSCRIPTION`), or unsupported (`IPP_TAG_UNSUPPORTED_GROUP`).
//
-// @since CUPS 1.1.19/macOS 10.3@
+// @since CUPS 1.1.19@
//
ipp_attribute_t * // O - New attribute
@@ -503,7 +503,7 @@ ippAddIntegers(ipp_t *ipp, // I - IPP message
// (`IPP_TAG_OPERATION`), printer (`IPP_TAG_PRINTER`), subscription
// (`IPP_TAG_SUBSCRIPTION`), or unsupported (`IPP_TAG_UNSUPPORTED_GROUP`).
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
ipp_attribute_t * // O - New attribute
@@ -560,7 +560,7 @@ ippAddOctetString(ipp_t *ipp, // I - IPP message
// (`IPP_TAG_NOTSETTABLE`), delete-attribute (`IPP_TAG_DELETEATTR`), and
// admin-define (`IPP_TAG_ADMINDEFINE`).
//
-// @since CUPS 1.6/macOS 10.8@
+// @since CUPS 1.6@
//
ipp_attribute_t * // O - New attribute
@@ -911,7 +911,7 @@ ippAddString(ipp_t *ipp, // I - IPP message
// needed. The formatted string is truncated as needed to the maximum length of
// the corresponding value type.
//
-// @since CUPS 1.7/macOS 10.9@
+// @since CUPS 1.7@
//
ipp_attribute_t * // O - New attribute
@@ -964,7 +964,7 @@ ippAddStringf(ipp_t *ipp, // I - IPP message
// stdarg pointer "ap". The formatted string is truncated as needed to the
// maximum length of the corresponding value type.
//
-// @since CUPS 1.7/macOS 10.9@
+// @since CUPS 1.7@
//
ipp_attribute_t * // O - New attribute
@@ -1205,7 +1205,7 @@ ippAddStrings(
// enum value, or the value falls within one of the rangeOfInteger values for
// the attribute.
//
-// @since CUPS 1.7/macOS 10.9@
+// @since CUPS 1.7@
//
int // O - 1 on a match, 0 on no match
@@ -1255,7 +1255,7 @@ ippContainsInteger(
// Returns non-zero when the attribute contains a matching charset, keyword,
// naturalLanguage, mimeMediaType, name, text, uri, or uriScheme value.
//
-// @since CUPS 1.7/macOS 10.9@
+// @since CUPS 1.7@
//
int // O - 1 on a match, 0 on no match
@@ -1331,7 +1331,7 @@ ippContainsString(
// 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/macOS 10.8@
+// @since CUPS 1.6@
//
ipp_attribute_t * // O - New attribute
@@ -1513,7 +1513,7 @@ ippCopyAttribute(
// 0 to skip it. The function may also choose to do a partial copy of the source attribute
// itself.
//
-// @since CUPS 1.6/macOS 10.8@
+// @since CUPS 1.6@
//
int // O - 1 on success, 0 on error
@@ -1695,7 +1695,7 @@ ippDelete(ipp_t *ipp) // I - IPP message
//
// 'ippDeleteAttribute()' - Delete a single attribute in an IPP message.
//
-// @since CUPS 1.1.19/macOS 10.3@
+// @since CUPS 1.1.19@
//
void
@@ -1761,7 +1761,7 @@ ippDeleteAttribute(
//
// Deleting all values in an attribute deletes the attribute.
//
-// @since CUPS 1.6/macOS 10.8@
+// @since CUPS 1.6@
//
int // O - 1 on success, 0 on failure
@@ -1959,7 +1959,7 @@ ippFirstAttribute(ipp_t *ipp) // I - IPP message
// The "element" parameter specifies which value to get from 0 to
// @code ippGetCount(attr)@ - 1.
//
-// @since CUPS 1.6/macOS 10.8@
+// @since CUPS 1.6@
//
int // O - Boolean value or 0 on error
@@ -1981,7 +1981,7 @@ ippGetBoolean(ipp_attribute_t *attr, // I - IPP attribute
// The "element" parameter specifies which value to get from 0 to
// @code ippGetCount(attr)@ - 1.
//
-// @since CUPS 1.6/macOS 10.8@
+// @since CUPS 1.6@
//
ipp_t * // O - Collection value or `NULL` on error
@@ -2001,7 +2001,7 @@ ippGetCollection(
//
// 'ippGetCount()' - Get the number of values in an attribute.
//
-// @since CUPS 1.6/macOS 10.8@
+// @since CUPS 1.6@
//
int // O - Number of values or 0 on error
@@ -2022,7 +2022,7 @@ ippGetCount(ipp_attribute_t *attr) // I - IPP attribute
// The "element" parameter specifies which value to get from 0 to
// @code ippGetCount(attr)@ - 1.
//
-// @since CUPS 1.6/macOS 10.8@
+// @since CUPS 1.6@
//
const ipp_uchar_t * // O - dateTime value or `NULL`
@@ -2066,7 +2066,7 @@ ippGetFirstAttribute(ipp_t *ipp) // I - IPP message
//
// 'ippGetGroupTag()' - Get the group associated with an attribute.
//
-// @since CUPS 1.6/macOS 10.8@
+// @since CUPS 1.6@
//
ipp_tag_t // O - Group tag or `IPP_TAG_ZERO` on error
@@ -2087,7 +2087,7 @@ ippGetGroupTag(ipp_attribute_t *attr) // I - IPP attribute
// The "element" parameter specifies which value to get from 0 to
// @code ippGetCount(attr)@ - 1.
//
-// @since CUPS 1.6/macOS 10.8@
+// @since CUPS 1.6@
//
int // O - Value or 0 on error
@@ -2117,7 +2117,7 @@ ippGetLength(ipp_t *ipp) // I - IPP message
//
// 'ippGetName()' - Get the attribute name.
//
-// @since CUPS 1.6/macOS 10.8@
+// @since CUPS 1.6@
//
const char * // O - Attribute name or `NULL` for separators
@@ -2159,7 +2159,7 @@ ippGetNextAttribute(ipp_t *ipp) // I - IPP message
// The "element" parameter specifies which value to get from 0 to
// @code ippGetCount(attr)@ - 1.
//
-// @since CUPS 1.7/macOS 10.9@
+// @since CUPS 1.7@
//
void * // O - Pointer to octetString data
@@ -2188,7 +2188,7 @@ ippGetOctetString(
//
// 'ippGetOperation()' - Get the operation ID in an IPP message.
//
-// @since CUPS 1.6/macOS 10.8@
+// @since CUPS 1.6@
//
ipp_op_t // O - Operation ID or 0 on error
@@ -2209,7 +2209,7 @@ ippGetOperation(ipp_t *ipp) // I - IPP request message
// The "element" parameter specifies which value to get from 0 to
// @code ippGetCount(attr)@ - 1.
//
-// @since CUPS 1.6/macOS 10.8@
+// @since CUPS 1.6@
//
int // O - Lower value of range or 0
@@ -2237,7 +2237,7 @@ ippGetRange(ipp_attribute_t *attr, // I - IPP attribute
//
// 'ippGetRequestId()' - Get the request ID from an IPP message.
//
-// @since CUPS 1.6/macOS 10.8@
+// @since CUPS 1.6@
//
int // O - Request ID or 0 on error
@@ -2258,7 +2258,7 @@ ippGetRequestId(ipp_t *ipp) // I - IPP message
// The "element" parameter specifies which value to get from 0 to
// @code ippGetCount(attr)@ - 1.
//
-// @since CUPS 1.6/macOS 10.8@
+// @since CUPS 1.6@
//
int // O - Horizontal/cross feed resolution or 0
@@ -2294,7 +2294,7 @@ ippGetResolution(
//
// 'ippGetState()' - Get the IPP message state.
//
-// @since CUPS 1.6/macOS 10.8@
+// @since CUPS 1.6@
//
ipp_state_t // O - IPP message state value
@@ -2312,7 +2312,7 @@ ippGetState(ipp_t *ipp) // I - IPP message
//
// 'ippGetStatusCode()' - Get the status code from an IPP response or event message.
//
-// @since CUPS 1.6/macOS 10.8@
+// @since CUPS 1.6@
//
ipp_status_t // O - Status code in IPP message
@@ -2333,7 +2333,7 @@ ippGetStatusCode(ipp_t *ipp) // I - IPP response or event message
// The "element" parameter specifies which value to get from 0 to
// @code ippGetCount(attr)@ - 1.
//
-// @since CUPS 1.6/macOS 10.8@
+// @since CUPS 1.6@
//
const char *
@@ -2361,7 +2361,7 @@ ippGetString(ipp_attribute_t *attr, // I - IPP attribute
//
// 'ippGetValueTag()' - Get the value tag for an attribute.
//
-// @since CUPS 1.6/macOS 10.8@
+// @since CUPS 1.6@
//
ipp_tag_t // O - Value tag or `IPP_TAG_ZERO` on error
@@ -2379,7 +2379,7 @@ ippGetValueTag(ipp_attribute_t *attr) // I - IPP attribute
//
// 'ippGetVersion()' - Get the major and minor version number from an IPP message.
//
-// @since CUPS 1.6/macOS 10.8@
+// @since CUPS 1.6@
//
int // O - Major version number or 0 on error
@@ -2470,7 +2470,7 @@ ippNew(void)
// "attributes-natural-language" attributes added. The
// "attributes-natural-language" value is derived from the current locale.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
ipp_t * // O - IPP request message
@@ -2520,7 +2520,7 @@ ippNewRequest(ipp_op_t op) // I - Operation code
// 'utf-8' and a value derived from the current locale are substituted,
// respectively.
//
-// @since CUPS 1.7/macOS 10.9@
+// @since CUPS 1.7@
//
ipp_t * // O - IPP response message
@@ -2601,7 +2601,7 @@ ippRead(http_t *http, // I - HTTP connection
//
// 'ippReadFile()' - Read data for an IPP message from a file.
//
-// @since CUPS 1.1.19/macOS 10.3@
+// @since CUPS 1.1.19@
//
ipp_state_t // O - Current state
@@ -2620,7 +2620,7 @@ ippReadFile(int fd, // I - HTTP data
//
// 'ippReadIO()' - Read data for an IPP message.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
ipp_state_t // O - Current state
@@ -2686,7 +2686,7 @@ ippSave(ipp_t *ipp) // I - IPP message
// The "element" parameter specifies which value to set from 0 to
// @code ippGetCount(attr)@.
//
-// @since CUPS 1.6/macOS 10.8@
+// @since CUPS 1.6@
//
int // O - 1 on success, 0 on failure
@@ -2721,7 +2721,7 @@ ippSetBoolean(ipp_t *ipp, // I - IPP message
// The "element" parameter specifies which value to set from 0 to
// @code ippGetCount(attr)@.
//
-// @since CUPS 1.6/macOS 10.8@
+// @since CUPS 1.6@
//
int // O - 1 on success, 0 on failure
@@ -2763,7 +2763,7 @@ ippSetCollection(
// The "element" parameter specifies which value to set from 0 to
// @code ippGetCount(attr)@.
//
-// @since CUPS 1.6/macOS 10.8@
+// @since CUPS 1.6@
//
int // O - 1 on success, 0 on failure
@@ -2804,7 +2804,7 @@ ippSetDate(ipp_t *ipp, // I - IPP message
// (`IPP_TAG_OPERATION`), printer (`IPP_TAG_PRINTER`), subscription
// (`IPP_TAG_SUBSCRIPTION`), or unsupported (`IPP_TAG_UNSUPPORTED_GROUP`).
//
-// @since CUPS 1.6/macOS 10.8@
+// @since CUPS 1.6@
//
int // O - 1 on success, 0 on failure
@@ -2835,7 +2835,7 @@ ippSetGroupTag(
// The "element" parameter specifies which value to set from 0 to
// @code ippGetCount(attr)@.
//
-// @since CUPS 1.6/macOS 10.8@
+// @since CUPS 1.6@
//
int // O - 1 on success, 0 on failure
@@ -2872,7 +2872,7 @@ ippSetInteger(ipp_t *ipp, // I - IPP message
//
// The "attr" parameter may be modified as a result of setting the value.
//
-// @since CUPS 1.6/macOS 10.8@
+// @since CUPS 1.6@
//
int // O - 1 on success, 0 on failure
@@ -2911,7 +2911,7 @@ ippSetName(ipp_t *ipp, // I - IPP message
// The "element" parameter specifies which value to set from 0 to
// @code ippGetCount(attr)@.
//
-// @since CUPS 1.7/macOS 10.9@
+// @since CUPS 1.7@
//
int // O - 1 on success, 0 on failure
@@ -2981,7 +2981,7 @@ ippSetOctetString(
// The "ipp" parameter refers to an IPP message previously created using
// the @link ippNew@, @link ippNewRequest@, or @link ippNewResponse@ functions.
//
-// @since CUPS 1.6/macOS 10.8@
+// @since CUPS 1.6@
//
int // O - 1 on success, 0 on failure
@@ -3010,7 +3010,7 @@ ippSetOperation(ipp_t *ipp, // I - IPP request message
// The "element" parameter specifies which value to set from 0 to
// @code ippGetCount(attr)@.
//
-// @since CUPS 1.6/macOS 10.8@
+// @since CUPS 1.6@
//
int // O - 1 on success, 0 on failure
@@ -3047,7 +3047,7 @@ ippSetRange(ipp_t *ipp, // I - IPP message
//
// The @code request_id@ parameter must be greater than 0.
//
-// @since CUPS 1.6/macOS 10.8@
+// @since CUPS 1.6@
//
int // O - 1 on success, 0 on failure
@@ -3078,7 +3078,7 @@ ippSetRequestId(ipp_t *ipp, // I - IPP message
// The "element" parameter specifies which value to set from 0 to
// @code ippGetCount(attr)@.
//
-// @since CUPS 1.6/macOS 10.8@
+// @since CUPS 1.6@
//
int // O - 1 on success, 0 on failure
@@ -3113,7 +3113,7 @@ ippSetResolution(
//
// 'ippSetState()' - Set the current state of the IPP message.
//
-// @since CUPS 1.6/macOS 10.8@
+// @since CUPS 1.6@
//
int // O - 1 on success, 0 on failure
@@ -3138,7 +3138,7 @@ ippSetState(ipp_t *ipp, // I - IPP message
// The "ipp" parameter refers to an IPP message previously created using
// the @link ippNew@, @link ippNewRequest@, or @link ippNewResponse@ functions.
//
-// @since CUPS 1.6/macOS 10.8@
+// @since CUPS 1.6@
//
int // O - 1 on success, 0 on failure
@@ -3167,7 +3167,7 @@ ippSetStatusCode(ipp_t *ipp, // I - IPP response or event message
// The "element" parameter specifies which value to set from 0 to
// @code ippGetCount(attr)@.
//
-// @since CUPS 1.6/macOS 10.8@
+// @since CUPS 1.6@
//
int // O - 1 on success, 0 on failure
@@ -3236,7 +3236,7 @@ ippSetString(ipp_t *ipp, // I - IPP message
// needed. The formatted string is truncated as needed to the maximum length of
// the corresponding value type.
//
-// @since CUPS 1.7/macOS 10.9@
+// @since CUPS 1.7@
//
int // O - 1 on success, 0 on failure
@@ -3274,7 +3274,7 @@ ippSetStringf(ipp_t *ipp, // I - IPP message
// needed. The formatted string is truncated as needed to the maximum length of
// the corresponding value type.
//
-// @since CUPS 1.7/macOS 10.9@
+// @since CUPS 1.7@
//
int // O - 1 on success, 0 on failure
@@ -3407,7 +3407,7 @@ ippSetStringfv(ipp_t *ipp, // I - IPP message
// code in the "attributes-natural-language" attribute or, if not present, the language
// code for the current locale.
//
-// @since CUPS 1.6/macOS 10.8@
+// @since CUPS 1.6@
//
int // O - 1 on success, 0 on failure
@@ -3535,7 +3535,7 @@ ippSetValueTag(
//
// The valid version numbers are currently 1.0, 1.1, 2.0, 2.1, and 2.2.
//
-// @since CUPS 1.6/macOS 10.8@
+// @since CUPS 1.6@
//
int // O - 1 on success, 0 on failure
@@ -3607,7 +3607,7 @@ ippTimeToDate(time_t t) // I - Time in seconds
// value tag. 1 is returned if the attribute is valid, 0 otherwise. On
// failure, @link cupsGetErrorString@ is set to a human-readable message.
//
-// @since CUPS 1.7/macOS 10.9@
+// @since CUPS 1.7@
//
int // O - 1 if valid, 0 otherwise
@@ -4110,7 +4110,7 @@ ippValidateAttribute(
// attribute. Like @link ippValidateAttribute@, @link cupsGetErrorString@ is
// set to a human-readable message on failure.
//
-// @since CUPS 1.7/macOS 10.9@
+// @since CUPS 1.7@
//
int // O - 1 if valid, 0 otherwise
@@ -4152,7 +4152,7 @@ ippWrite(http_t *http, // I - HTTP connection
//
// 'ippWriteFile()' - Write data for an IPP message to a file.
//
-// @since CUPS 1.1.19/macOS 10.3@
+// @since CUPS 1.1.19@
//
ipp_state_t // O - Current state
@@ -4170,7 +4170,7 @@ ippWriteFile(int fd, // I - HTTP data
//
// 'ippWriteIO()' - Write data for an IPP message.
//
-// @since CUPS 1.2/macOS 10.5@
+// @since CUPS 1.2@
//
ipp_state_t // O - Current state
diff --git a/cups/ipp.h b/cups/ipp.h
index a2e21c3dbf..ce8a924a59 100644
--- a/cups/ipp.h
+++ b/cups/ipp.h
@@ -1,7 +1,7 @@
//
// Internet Printing Protocol definitions for CUPS.
//
-// Copyright © 2020-2024 by OpenPrinting.
+// Copyright © 2020-2025 by OpenPrinting.
// Copyright © 2007-2018 by Apple Inc.
// Copyright © 1997-2006 by Easy Software Products.
//
@@ -203,13 +203,13 @@ typedef enum ipp_op_e // IPP operations
IPP_OP_SET_PRINTER_ATTRIBUTES, // Set-Printer-Attributes: Set printer values
IPP_OP_SET_JOB_ATTRIBUTES, // Set-Job-Attributes: Set job values
IPP_OP_GET_PRINTER_SUPPORTED_VALUES, // Get-Printer-Supported-Values: Get supported values
- IPP_OP_CREATE_PRINTER_SUBSCRIPTIONS, // Create-Printer-Subscriptions: Create one or more printer subscriptions @since CUPS 1.2/macOS 10.5@
- IPP_OP_CREATE_JOB_SUBSCRIPTIONS, // Create-Job-Subscriptions: Create one of more job subscriptions @since CUPS 1.2/macOS 10.5@
- IPP_OP_GET_SUBSCRIPTION_ATTRIBUTES, // Get-Subscription-Attributes: Get subscription information @since CUPS 1.2/macOS 10.5@
- IPP_OP_GET_SUBSCRIPTIONS, // Get-Subscriptions: Get list of subscriptions @since CUPS 1.2/macOS 10.5@
- IPP_OP_RENEW_SUBSCRIPTION, // Renew-Subscription: Renew a printer subscription @since CUPS 1.2/macOS 10.5@
- IPP_OP_CANCEL_SUBSCRIPTION, // Cancel-Subscription: Cancel a subscription @since CUPS 1.2/macOS 10.5@
- IPP_OP_GET_NOTIFICATIONS, // Get-Notifications: Get notification events @since CUPS 1.2/macOS 10.5@
+ IPP_OP_CREATE_PRINTER_SUBSCRIPTIONS, // Create-Printer-Subscriptions: Create one or more printer subscriptions @since CUPS 1.2@
+ IPP_OP_CREATE_JOB_SUBSCRIPTIONS, // Create-Job-Subscriptions: Create one of more job subscriptions @since CUPS 1.2@
+ IPP_OP_GET_SUBSCRIPTION_ATTRIBUTES, // Get-Subscription-Attributes: Get subscription information @since CUPS 1.2@
+ IPP_OP_GET_SUBSCRIPTIONS, // Get-Subscriptions: Get list of subscriptions @since CUPS 1.2@
+ IPP_OP_RENEW_SUBSCRIPTION, // Renew-Subscription: Renew a printer subscription @since CUPS 1.2@
+ IPP_OP_CANCEL_SUBSCRIPTION, // Cancel-Subscription: Cancel a subscription @since CUPS 1.2@
+ IPP_OP_GET_NOTIFICATIONS, // Get-Notifications: Get notification events @since CUPS 1.2@
IPP_OP_SEND_NOTIFICATIONS, // Send-Notifications: Send notification events @private@
IPP_OP_GET_RESOURCE_ATTRIBUTES, // Get-Resource-Attributes: Get resource information @private@
IPP_OP_GET_RESOURCE_DATA, // Get-Resource-Data: Get resource data @private@ @deprecated@
@@ -299,9 +299,9 @@ typedef enum ipp_op_e // IPP operations
IPP_OP_CUPS_GET_DEVICES, // CUPS-Get-Devices: Get a list of supported devices @deprecated@
IPP_OP_CUPS_GET_PPDS, // CUPS-Get-PPDs: Get a list of supported drivers @deprecated@
IPP_OP_CUPS_MOVE_JOB, // CUPS-Move-Job: Move a job to a different printer
- IPP_OP_CUPS_AUTHENTICATE_JOB, // CUPS-Authenticate-Job: Authenticate a job @since CUPS 1.2/macOS 10.5@
+ IPP_OP_CUPS_AUTHENTICATE_JOB, // CUPS-Authenticate-Job: Authenticate a job @since CUPS 1.2@
IPP_OP_CUPS_GET_PPD, // CUPS-Get-PPD: Get a PPD file @deprecated@
- IPP_OP_CUPS_GET_DOCUMENT = 0x4027, // CUPS-Get-Document: Get a document file @since CUPS 1.4/macOS 10.6@
+ IPP_OP_CUPS_GET_DOCUMENT = 0x4027, // CUPS-Get-Document: Get a document file @since CUPS 1.4@
IPP_OP_CUPS_CREATE_LOCAL_PRINTER // CUPS-Create-Local-Printer: Create a local (temporary) printer @since CUPS 2.2@
} ipp_op_t;
@@ -446,10 +446,10 @@ typedef enum ipp_status_e // IPP status code values
// 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/macOS 10.7@
- IPP_STATUS_ERROR_CUPS_PKI, // cups-pki-error - Error negotiating a secure connection @since CUPS 1.5/macOS 10.7@
+ // cups-authentication-canceled - Authentication canceled by user @since CUPS 1.5@
+ IPP_STATUS_ERROR_CUPS_PKI, // cups-pki-error - Error negotiating a secure connection @since CUPS 1.5@
IPP_STATUS_ERROR_CUPS_UPGRADE_REQUIRED,
- // cups-upgrade-required - TLS upgrade required @since CUPS 1.5/macOS 10.7@
+ // cups-upgrade-required - TLS upgrade required @since CUPS 1.5@
IPP_STATUS_ERROR_CUPS_OAUTH // cups-oauth - OAuth error
} ipp_status_t;
@@ -507,7 +507,7 @@ typedef struct _ipp_attribute_s ipp_attribute_t;
// IPP attribute
typedef int (*ipp_copy_cb_t)(void *context, ipp_t *dst, ipp_attribute_t *attr);
- // ippCopyAttributes callback function @since CUPS 1.6/macOS 10.8
+ // ippCopyAttributes callback function @since CUPS 1.6
#define ipp_copycb_t ipp_copy_cb_t // Old name
typedef struct _ipp_file_s ipp_file_t; // IPP data file
@@ -519,7 +519,7 @@ typedef bool (*ipp_ftoken_cb_t)(ipp_file_t *file, void *cb_data, const char *tok
// IPP data file token callback
typedef ssize_t (*ipp_io_cb_t)(void *context, ipp_uchar_t *buffer, size_t bytes);
- // ippReadIO/ippWriteIO callback function @since CUPS 1.2/macOS 10.5@
+ // ippReadIO/ippWriteIO callback function @since CUPS 1.2@
#define ipp_iocb_t ipp_io_cb_t // Old name
diff --git a/cups/notify.c b/cups/notify.c
index f4931aeec1..f1876d2ba4 100644
--- a/cups/notify.c
+++ b/cups/notify.c
@@ -1,17 +1,13 @@
/*
* Notification routines for CUPS.
*
- * Copyright © 2020-2024 by OpenPrinting.
- * Copyright 2007-2013 by Apple Inc.
- * Copyright 2005-2006 by Easy Software Products.
+ * Copyright © 2020-2025 by OpenPrinting.
+ * Copyright © 2007-2013 by Apple Inc.
+ * Copyright © 2005-2006 by Easy Software Products.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more information.
*/
-/*
- * Include necessary headers...
- */
-
#include "cups-private.h"
#include "debug-internal.h"
@@ -21,7 +17,7 @@
*
* The returned string must be freed by the caller using @code free@.
*
- * @since CUPS 1.2/macOS 10.5@
+ * @since CUPS 1.2@
*/
char * /* O - Subject string or @code NULL@ */
@@ -152,7 +148,7 @@ cupsNotifySubject(cups_lang_t *lang, /* I - Language data */
*
* The returned string must be freed by the caller using @code free@.
*
- * @since CUPS 1.2/macOS 10.5@
+ * @since CUPS 1.2@
*/
char * /* O - Message text or @code NULL@ */
diff --git a/cups/options.c b/cups/options.c
index 31b9580934..d6473eab49 100644
--- a/cups/options.c
+++ b/cups/options.c
@@ -1,17 +1,13 @@
/*
* Option routines for CUPS.
*
- * Copyright © 2020-2024 by OpenPrinting.
- * Copyright 2007-2017 by Apple Inc.
- * Copyright 1997-2007 by Easy Software Products.
+ * Copyright © 2020-2025 by OpenPrinting.
+ * Copyright © 2007-2017 by Apple Inc.
+ * Copyright © 1997-2007 by Easy Software Products.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more information.
*/
-/*
- * Include necessary headers...
- */
-
#include "cups-private.h"
#include "debug-internal.h"
@@ -31,7 +27,7 @@ static int cups_find_option(const char *name, int num_options,
* New option arrays can be initialized simply by passing 0 for the
* "num_options" parameter.
*
- * @since CUPS 2.2.4/macOS 10.13@
+ * @since CUPS 2.2.4@
*/
int /* O - Number of options */
@@ -183,7 +179,7 @@ cupsFreeOptions(
* INT_MIN is returned when the option does not exist, is not an integer, or
* exceeds the range of values for the "int" type.
*
- * @since CUPS 2.2.4/macOS 10.13@
+ * @since CUPS 2.2.4@
*/
int /* O - Option value or @code INT_MIN@ */
@@ -452,7 +448,7 @@ cupsParseOptions2(
/*
* 'cupsRemoveOption()' - Remove an option from an option array.
*
- * @since CUPS 1.2/macOS 10.5@
+ * @since CUPS 1.2@
*/
int /* O - New number of options */
diff --git a/cups/ppd-attr.c b/cups/ppd-attr.c
index 2b08dfa95c..4ca4cd982f 100644
--- a/cups/ppd-attr.c
+++ b/cups/ppd-attr.c
@@ -1,18 +1,14 @@
/*
* PPD model-specific attribute routines for CUPS.
*
- * Copyright © 2020-2024 by OpenPrinting.
- * Copyright 2007-2015 by Apple Inc.
- * Copyright 1997-2006 by Easy Software Products.
+ * Copyright © 2020-2025 by OpenPrinting.
+ * Copyright © 2007-2015 by Apple Inc.
+ * Copyright © 1997-2006 by Easy Software Products.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more
* information.
*/
-/*
- * Include necessary headers...
- */
-
#include "cups-private.h"
#include "ppd-private.h"
#include "debug-internal.h"
@@ -21,7 +17,7 @@
/*
* 'ppdFindAttr()' - Find the first matching attribute.
*
- * @since CUPS 1.1.19/macOS 10.3@
+ * @since CUPS 1.1.19@
*/
ppd_attr_t * /* O - Attribute or @code NULL@ if not found */
@@ -77,7 +73,7 @@ ppdFindAttr(ppd_file_t *ppd, /* I - PPD file data */
/*
* 'ppdFindNextAttr()' - Find the next matching attribute.
*
- * @since CUPS 1.1.19/macOS 10.3@
+ * @since CUPS 1.1.19@
*/
ppd_attr_t * /* O - Attribute or @code NULL@ if not found */
diff --git a/cups/ppd-conflicts.c b/cups/ppd-conflicts.c
index aa065c08c9..29e34003a6 100644
--- a/cups/ppd-conflicts.c
+++ b/cups/ppd-conflicts.c
@@ -1,9 +1,9 @@
/*
* Option conflict management routines for CUPS.
*
- * Copyright © 2020-2024 by OpenPrinting.
- * Copyright 2007-2018 by Apple Inc.
- * Copyright 1997-2007 by Easy Software Products, all rights reserved.
+ * Copyright © 2020-2025 by OpenPrinting.
+ * Copyright © 2007-2018 by Apple Inc.
+ * Copyright © 1997-2007 by Easy Software Products, all rights reserved.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more
* information.
@@ -11,10 +11,6 @@
* PostScript is a trademark of Adobe Systems, Inc.
*/
-/*
- * Include necessary headers...
- */
-
#include "cups-private.h"
#include "ppd-private.h"
#include "debug-internal.h"
@@ -59,7 +55,7 @@ static cups_array_t *ppd_test_constraints(ppd_file_t *ppd,
* the conflicting options. The returned option array must be freed using
* @link cupsFreeOptions@.
*
- * @since CUPS 1.4/macOS 10.6@
+ * @since CUPS 1.4@
*/
int /* O - Number of conflicting options */
@@ -158,7 +154,7 @@ cupsGetConflicts(
* choice for the conflicting option, then iterating over all possible choices
* until a non-conflicting option choice is found.
*
- * @since CUPS 1.4/macOS 10.6@
+ * @since CUPS 1.4@
*/
int /* O - 1 on success, 0 on failure */
@@ -626,7 +622,7 @@ ppdConflicts(ppd_file_t *ppd) /* I - PPD to check */
* This function tests whether a particular option choice is available based
* on constraints against options in the "InstallableOptions" group.
*
- * @since CUPS 1.4/macOS 10.6@
+ * @since CUPS 1.4@
*/
int /* O - 1 if conflicting, 0 if not conflicting */
diff --git a/cups/ppd-custom.c b/cups/ppd-custom.c
index bdd2c505cb..22a5c82bd1 100644
--- a/cups/ppd-custom.c
+++ b/cups/ppd-custom.c
@@ -1,9 +1,9 @@
/*
* PPD custom option routines for CUPS.
*
- * Copyright © 2020-2024 by OpenPrinting.
- * Copyright 2007-2015 by Apple Inc.
- * Copyright 1997-2006 by Easy Software Products, all rights reserved.
+ * Copyright © 2020-2025 by OpenPrinting.
+ * Copyright © 2007-2015 by Apple Inc.
+ * Copyright © 1997-2006 by Easy Software Products, all rights reserved.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more
* information.
@@ -11,10 +11,6 @@
* PostScript is a trademark of Adobe Systems, Inc.
*/
-/*
- * Include necessary headers.
- */
-
#include "cups-private.h"
#include "ppd-private.h"
#include "debug-internal.h"
@@ -23,7 +19,7 @@
/*
* 'ppdFindCustomOption()' - Find a custom option.
*
- * @since CUPS 1.2/macOS 10.5@
+ * @since CUPS 1.2@
*/
ppd_coption_t * /* O - Custom option or NULL */
@@ -44,7 +40,7 @@ ppdFindCustomOption(ppd_file_t *ppd, /* I - PPD file */
/*
* 'ppdFindCustomParam()' - Find a parameter for a custom option.
*
- * @since CUPS 1.2/macOS 10.5@
+ * @since CUPS 1.2@
*/
ppd_cparam_t * /* O - Custom parameter or NULL */
@@ -70,7 +66,7 @@ ppdFindCustomParam(ppd_coption_t *opt, /* I - Custom option */
/*
* 'ppdFirstCustomParam()' - Return the first parameter for a custom option.
*
- * @since CUPS 1.2/macOS 10.5@
+ * @since CUPS 1.2@
*/
ppd_cparam_t * /* O - Custom parameter or NULL */
@@ -86,7 +82,7 @@ ppdFirstCustomParam(ppd_coption_t *opt) /* I - Custom option */
/*
* 'ppdNextCustomParam()' - Return the next parameter for a custom option.
*
- * @since CUPS 1.2/macOS 10.5@
+ * @since CUPS 1.2@
*/
ppd_cparam_t * /* O - Custom parameter or NULL */
diff --git a/cups/ppd-emit.c b/cups/ppd-emit.c
index 2b54741561..09385dc21c 100644
--- a/cups/ppd-emit.c
+++ b/cups/ppd-emit.c
@@ -1,9 +1,9 @@
/*
* PPD code emission routines for CUPS.
*
- * Copyright © 2020-2024 by OpenPrinting.
- * Copyright 2007-2019 by Apple Inc.
- * Copyright 1997-2007 by Easy Software Products, all rights reserved.
+ * Copyright © 2020-2025 by OpenPrinting.
+ * Copyright © 2007-2019 by Apple Inc.
+ * Copyright © 1997-2007 by Easy Software Products, all rights reserved.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more
* information.
@@ -11,10 +11,6 @@
* PostScript is a trademark of Adobe Systems, Inc.
*/
-/*
- * Include necessary headers...
- */
-
#include "cups-private.h"
#include "debug-internal.h"
#include "ppd.h"
@@ -66,7 +62,7 @@ ppdCollect(ppd_file_t *ppd, /* I - PPD file data */
* The choices array should be freed using @code free@ when you are
* finished with it.
*
- * @since CUPS 1.2/macOS 10.5@
+ * @since CUPS 1.2@
*/
int /* O - Number of options marked */
@@ -238,7 +234,7 @@ ppdEmit(ppd_file_t *ppd, /* I - PPD file record */
*
* When "limit" is zero, this function is identical to ppdEmit().
*
- * @since CUPS 1.2/macOS 10.5@
+ * @since CUPS 1.2@
*/
int /* O - 0 on success, -1 on failure */
@@ -538,7 +534,7 @@ ppdEmitJCL(ppd_file_t *ppd, /* I - PPD file record */
/*
* 'ppdEmitJCLEnd()' - Emit JCLEnd code to a file.
*
- * @since CUPS 1.2/macOS 10.5@
+ * @since CUPS 1.2@
*/
int /* O - 0 on success, -1 on failure */
@@ -597,7 +593,7 @@ ppdEmitJCLEnd(ppd_file_t *ppd, /* I - PPD file record */
* 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/macOS 10.5@
+ * @since CUPS 1.2@
*/
char * /* O - String containing option code or @code NULL@ if there is no option code */
diff --git a/cups/ppd-localize.c b/cups/ppd-localize.c
index d07722e96f..fa7004bb01 100644
--- a/cups/ppd-localize.c
+++ b/cups/ppd-localize.c
@@ -1,9 +1,9 @@
/*
* PPD localization routines for CUPS.
*
- * Copyright © 2020-2024 by OpenPrinting.
- * Copyright 2007-2018 by Apple Inc.
- * Copyright 1997-2007 by Easy Software Products, all rights reserved.
+ * Copyright © 2020-2025 by OpenPrinting.
+ * Copyright © 2007-2018 by Apple Inc.
+ * Copyright © 1997-2007 by Easy Software Products, all rights reserved.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more
* information.
@@ -11,10 +11,6 @@
* PostScript is a trademark of Adobe Systems, Inc.
*/
-/*
- * Include necessary headers.
- */
-
#include "cups-private.h"
#include "ppd-private.h"
#include "debug-internal.h"
@@ -34,7 +30,7 @@ static cups_lang_t *ppd_ll_CC(char *ll_CC, size_t ll_CC_size);
* descriptions, printer presets, and custom option parameters. Each
* localized string uses the UTF-8 character encoding.
*
- * @since CUPS 1.2/macOS 10.5@
+ * @since CUPS 1.2@
*/
int /* O - 0 on success, -1 on error */
@@ -219,7 +215,7 @@ ppdLocalizeAttr(ppd_file_t *ppd, /* I - PPD file */
*
* If no value of the requested scheme can be found, NULL is returned.
*
- * @since CUPS 1.3/macOS 10.5@
+ * @since CUPS 1.3@
*/
const char * /* O - Value or NULL if not found */
@@ -430,7 +426,7 @@ ppdLocalizeIPPReason(
* text from the attribute value. If no localized text for the requested
* name can be found, @code NULL@ is returned.
*
- * @since CUPS 1.4/macOS 10.6@
+ * @since CUPS 1.4@
*/
const char * /* O - Value or @code NULL@ if not found */
diff --git a/cups/ppd-mark.c b/cups/ppd-mark.c
index 1b1f5f211d..866991293f 100644
--- a/cups/ppd-mark.c
+++ b/cups/ppd-mark.c
@@ -1,7 +1,7 @@
/*
* Option marking routines for CUPS.
*
- * Copyright © 2020-2024 by OpenPrinting.
+ * Copyright © 2020-2025 by OpenPrinting.
* Copyright © 2007-2019 by Apple Inc.
* Copyright © 1997-2007 by Easy Software Products, all rights reserved.
*
@@ -566,7 +566,7 @@ ppdMarkOption(ppd_file_t *ppd, /* I - PPD file record */
*
* Options are returned from all groups in ascending alphanumeric order.
*
- * @since CUPS 1.2/macOS 10.5@
+ * @since CUPS 1.2@
*/
ppd_option_t * /* O - First option or @code NULL@ */
@@ -584,7 +584,7 @@ ppdFirstOption(ppd_file_t *ppd) /* I - PPD file */
*
* Options are returned from all groups in ascending alphanumeric order.
*
- * @since CUPS 1.2/macOS 10.5@
+ * @since CUPS 1.2@
*/
ppd_option_t * /* O - Next option or @code NULL@ */
diff --git a/cups/ppd-page.c b/cups/ppd-page.c
index 2e2099088b..19c528807b 100644
--- a/cups/ppd-page.c
+++ b/cups/ppd-page.c
@@ -1,9 +1,9 @@
/*
* Page size functions for CUPS.
*
- * Copyright © 2020-2024 by OpenPrinting.
- * Copyright 2007-2015 by Apple Inc.
- * Copyright 1997-2007 by Easy Software Products, all rights reserved.
+ * Copyright © 2020-2025 by OpenPrinting.
+ * Copyright © 2007-2015 by Apple Inc.
+ * Copyright © 1997-2007 by Easy Software Products, all rights reserved.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more
* information.
@@ -11,10 +11,6 @@
* PostScript is a trademark of Adobe Systems, Inc.
*/
-/*
- * Include necessary headers...
- */
-
#include "string-private.h"
#include "debug-internal.h"
#include "ppd.h"
@@ -182,7 +178,7 @@ ppdPageSize(ppd_file_t *ppd, /* I - PPD file record */
* If the specified PPD file does not support custom page sizes, both
* "minimum" and "maximum" are filled with zeroes.
*
- * @since CUPS 1.4/macOS 10.6@
+ * @since CUPS 1.4@
*/
int /* O - 1 if custom sizes are supported, 0 otherwise */
diff --git a/cups/ppd-util.c b/cups/ppd-util.c
index b03e6887b6..8001f33427 100644
--- a/cups/ppd-util.c
+++ b/cups/ppd-util.c
@@ -1,7 +1,7 @@
/*
* PPD utilities for CUPS.
*
- * Copyright © 2020-2024 by OpenPrinting.
+ * Copyright © 2020-2025 by OpenPrinting.
* Copyright © 2007-2018 by Apple Inc.
* Copyright © 1997-2006 by Easy Software Products.
*
@@ -9,10 +9,6 @@
* information.
*/
-/*
- * Include necessary headers...
- */
-
#include "cups-private.h"
#include "ppd-private.h"
#include "debug-internal.h"
@@ -76,7 +72,7 @@ cupsGetPPD(const char *name) /* I - Destination name */
* 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/macOS 10.4@
+ * @since CUPS 1.1.21@
*/
const char * /* O - Filename for PPD file */
@@ -117,7 +113,7 @@ cupsGetPPD2(http_t *http, /* I - Connection to server or @code CUPS_HTTP_DE
* For classes, @code cupsGetPPD3@ returns the PPD file for the first printer
* in the class.
*
- * @since CUPS 1.4/macOS 10.6@
+ * @since CUPS 1.4@
*/
http_status_t /* O - HTTP status */
@@ -468,7 +464,7 @@ cupsGetPPD3(http_t *http, /* I - HTTP connection or @code CUPS_HTTP_DEFAUL
* overwritten on the next call to @link cupsGetPPD@, @link cupsGetPPD2@,
* or @link cupsGetServerPPD@.
*
- * @since CUPS 1.3/macOS 10.5@
+ * @since CUPS 1.3@
*/
char * /* O - Name of PPD file or @code NULL@ on error */
diff --git a/cups/ppd.c b/cups/ppd.c
index f7552a6538..14b76483ed 100644
--- a/cups/ppd.c
+++ b/cups/ppd.c
@@ -1,7 +1,7 @@
/*
* PPD file routines for CUPS.
*
- * Copyright © 2020-2024 by OpenPrinting.
+ * Copyright © 2020-2025 by OpenPrinting.
* Copyright © 2007-2019 by Apple Inc.
* Copyright © 1997-2007 by Easy Software Products, all rights reserved.
*
@@ -11,10 +11,6 @@
* PostScript is a trademark of Adobe Systems, Inc.
*/
-/*
- * Include necessary headers.
- */
-
#include "cups-private.h"
#include "ppd-private.h"
#include "debug-internal.h"
@@ -272,7 +268,7 @@ ppdClose(ppd_file_t *ppd) /* I - PPD file record */
/*
* 'ppdErrorString()' - Returns the text associated with a status.
*
- * @since CUPS 1.1.19/macOS 10.3@
+ * @since CUPS 1.1.19@
*/
const char * /* O - Status string */
@@ -384,7 +380,7 @@ _ppdGlobals(void)
/*
* 'ppdLastError()' - Return the status from the last ppdOpen*().
*
- * @since CUPS 1.1.19/macOS 10.3@
+ * @since CUPS 1.1.19@
*/
ppd_status_t /* O - Status code */
@@ -404,7 +400,7 @@ ppdLastError(int *line) /* O - Line number */
/*
* '_ppdOpen()' - Read a PPD file into memory.
*
- * @since CUPS 1.2/macOS 10.5@
+ * @since CUPS 1.2@
*/
ppd_file_t * /* O - PPD file record or @code NULL@ if the PPD file could not be opened. */
@@ -2187,7 +2183,7 @@ ppdOpen(FILE *fp) /* I - File to read from */
/*
* 'ppdOpen2()' - Read a PPD file into memory.
*
- * @since CUPS 1.2/macOS 10.5@
+ * @since CUPS 1.2@
*/
ppd_file_t * /* O - PPD file record or @code NULL@ if the PPD file could not be opened. */
@@ -2312,7 +2308,7 @@ ppdOpenFile(const char *filename) /* I - File to read from */
/*
* 'ppdSetConformance()' - Set the conformance level for PPD files.
*
- * @since CUPS 1.1.20/macOS 10.4@
+ * @since CUPS 1.1.20@
*/
void
diff --git a/cups/ppd.h b/cups/ppd.h
index d03e6e9a1f..fde52a41e0 100644
--- a/cups/ppd.h
+++ b/cups/ppd.h
@@ -4,7 +4,7 @@
// THESE APIS ARE DEPRECATED. THIS HEADER AND THESE FUNCTIONS WILL BE REMOVED
// IN A FUTURE RELEASE OF CUPS.
//
-// Copyright © 2020-2024 by OpenPrinting.
+// Copyright © 2020-2025 by OpenPrinting.
// Copyright © 2007-2019 by Apple Inc.
// Copyright © 1997-2007 by Easy Software Products, all rights reserved.
//
@@ -167,7 +167,7 @@ typedef struct ppd_group_s // Groups @deprecated@
****/
char text[PPD_MAX_TEXT - PPD_MAX_NAME];
// Human-readable group name
- char name[PPD_MAX_NAME]; // Group name @since CUPS 1.1.18/macOS 10.3@
+ char name[PPD_MAX_NAME]; // Group name @since CUPS 1.1.18@
int num_options; // Number of options
ppd_option_t *options; // Options
int num_subgroups; // Number of sub-groups
@@ -212,7 +212,7 @@ typedef struct ppd_profile_s // sRGB Color Profiles @deprecated@
float matrix[3][3]; // Transform matrix
} ppd_profile_t;
-// New in CUPS 1.2/macOS 10.5
+// New in CUPS 1.2
typedef enum ppd_cptype_e // Custom Parameter Type @deprecated@
{
PPD_CUSTOM_UNKNOWN = -1, // Unknown type (error)
@@ -318,25 +318,25 @@ typedef struct ppd_file_s // PPD File @deprecated@
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/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@
+ char *protocols; // Protocols (BCP, TBCP) string @since CUPS 1.1.19@
+ char *pcfilename; // PCFileName string @since CUPS 1.1.19@
+ int num_attrs; // Number of attributes @since CUPS 1.1.19@ @private@
+ int cur_attr; // Current attribute @since CUPS 1.1.19@ @private@
+ ppd_attr_t **attrs; // Attributes @since CUPS 1.1.19@ @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.2
+ cups_array_t *sorted_attrs; // Attribute lookup array @since CUPS 1.2@ @private@
+ cups_array_t *options; // Option lookup array @since CUPS 1.2@ @private@
+ cups_array_t *coptions; // Custom options array @since CUPS 1.2@ @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.3
+ cups_array_t *marked; // Marked choices @since CUPS 1.3@ @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.4
+ cups_array_t *cups_uiconstraints; // cupsUIConstraints @since CUPS 1.4@ @private@
// New in CUPS 1.5
- _ppd_cache_t *cache; // PPD cache and mapping data @since CUPS 1.5/macOS 10.7@ @private@
+ _ppd_cache_t *cache; // PPD cache and mapping data @since CUPS 1.5@ @private@
} ppd_file_t;
diff --git a/cups/pwg-media.c b/cups/pwg-media.c
index 24f5b4d5ee..a2b49169b1 100644
--- a/cups/pwg-media.c
+++ b/cups/pwg-media.c
@@ -1,17 +1,13 @@
/*
* PWG media name API implementation for CUPS.
*
- * Copyright © 2020-2024 by OpenPrinting.
+ * Copyright © 2020-2025 by OpenPrinting.
* Copyright © 2009-2019 by Apple Inc.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more
* information.
*/
-/*
- * Include necessary headers...
- */
-
#include "cups-private.h"
#include "debug-internal.h"
#include
@@ -296,7 +292,7 @@ static pwg_media_t const cups_pwg_media[] =
* units string is @code NULL@, otherwise inches ("in") or millimeters ("mm")
* are used.
*
- * @since CUPS 1.7/macOS 10.9@
+ * @since CUPS 1.7@
*/
int /* O - 1 on success, 0 on failure */
@@ -429,7 +425,7 @@ pwgFormatSizeName(char *keyword, /* I - Keyword buffer */
* member attribute was specified in the "media-col" Job Template attribute,
* otherwise it is initialized to 0.
*
- * @since CUPS 1.7/macOS 10.9@
+ * @since CUPS 1.7@
*/
int /* O - 1 if size was initialized, 0 otherwise */
@@ -600,7 +596,7 @@ pwgInitSize(pwg_size_t *size, /* I - Size to initialize */
* The "name" argument specifies the legacy ISO media size name, for example
* "iso-a4" or "na-letter".
*
- * @since CUPS 1.7/macOS 10.9@
+ * @since CUPS 1.7@
*/
pwg_media_t * /* O - Matching size or NULL */
@@ -658,7 +654,7 @@ pwgMediaForLegacy(const char *legacy) /* I - Legacy size name */
* thread. Custom names can be of the form "Custom.WIDTHxLENGTH[units]" or
* "WIDTHxLENGTH[units]".
*
- * @since CUPS 1.7/macOS 10.9@
+ * @since CUPS 1.7@
*/
pwg_media_t * /* O - Matching size or NULL */
@@ -834,7 +830,7 @@ pwgMediaForPPD(const char *ppd) /* I - PPD size name */
* thread-local storage and is overwritten by each call to the function in the
* thread.
*
- * @since CUPS 1.7/macOS 10.9@
+ * @since CUPS 1.7@
*/
pwg_media_t * /* O - Matching size or NULL */
@@ -945,7 +941,7 @@ pwgMediaForPWG(const char *pwg) /* I - PWG size name */
* thread-local storage and is overwritten by each call to the function in the
* thread.
*
- * @since CUPS 1.7/macOS 10.9@
+ * @since CUPS 1.7@
*/
pwg_media_t * /* O - PWG media name */
diff --git a/cups/rand.c b/cups/rand.c
index 47b45f0fb6..4bd65dbd06 100644
--- a/cups/rand.c
+++ b/cups/rand.c
@@ -1,7 +1,7 @@
//
// Random number function for CUPS.
//
-// Copyright © 2019-2022 by Michael R Sweet.
+// Copyright © 2019-2025 by Michael R Sweet.
//
// Licensed under Apache License v2.0. See the file "LICENSE" for more
// information.
diff --git a/cups/raster-interpret.c b/cups/raster-interpret.c
index a3f7cde6c1..852a4db004 100644
--- a/cups/raster-interpret.c
+++ b/cups/raster-interpret.c
@@ -1,7 +1,7 @@
/*
* PPD command interpreter for CUPS.
*
- * Copyright © 2020-2024 by OpenPrinting.
+ * Copyright © 2020-2025 by OpenPrinting.
* Copyright © 2007-2018 by Apple Inc.
* Copyright © 1993-2007 by Easy Software Products.
*
@@ -9,10 +9,6 @@
* information.
*/
-/*
- * Include necessary headers...
- */
-
#include
#include
#include "debug-internal.h"
@@ -119,7 +115,7 @@ static void DEBUG_stack(const char *prefix, _cups_ps_stack_t *st);
* @code pop@, @code roll@, @code setpagedevice@, and @code stopped@ operators
* are supported.
*
- * @since CUPS 1.2/macOS 10.5@
+ * @since CUPS 1.2@
*/
int /* O - 0 on success, -1 on failure */
diff --git a/cups/raster-interstub.c b/cups/raster-interstub.c
index 3443de532e..d1e9ba3f6c 100644
--- a/cups/raster-interstub.c
+++ b/cups/raster-interstub.c
@@ -1,17 +1,13 @@
/*
* cupsRasterInterpretPPD stub for CUPS.
*
- * Copyright © 2020-2024 by OpenPrinting.
+ * Copyright © 2020-2025 by OpenPrinting.
* Copyright © 2018 by Apple Inc.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more
* information.
*/
-/*
- * Include necessary headers...
- */
-
#include
@@ -49,7 +45,7 @@
* @code pop@, @code roll@, @code setpagedevice@, and @code stopped@ operators
* are supported.
*
- * @since CUPS 1.2/macOS 10.5@
+ * @since CUPS 1.2@
*/
int /* O - 0 on success, -1 on failure */
diff --git a/cups/raster-stream.c b/cups/raster-stream.c
index 1a17b048b4..d96b589e20 100644
--- a/cups/raster-stream.c
+++ b/cups/raster-stream.c
@@ -1,7 +1,7 @@
//
// Raster file routines for CUPS.
//
-// Copyright © 2020-2024 by OpenPrinting.
+// Copyright © 2020-2025 by OpenPrinting.
// Copyright © 2007-2019 by Apple Inc.
// Copyright © 1997-2006 by Easy Software Products.
//
@@ -538,7 +538,7 @@ cupsRasterInitHeader(
// The "sheet_back" argument specifies a "pwg-raster-document-sheet-back" value
// to apply for the back side of a page. Pass `NULL` for the front side.
//
-// @since CUPS 2.2/macOS 10.12@
+// @since CUPS 2.2@
//
int // O - 1 on success, 0 on failure
diff --git a/cups/raster-stubs.c b/cups/raster-stubs.c
index 898e9e486a..2354b8237b 100644
--- a/cups/raster-stubs.c
+++ b/cups/raster-stubs.c
@@ -1,17 +1,13 @@
/*
* Imaging library stubs for CUPS.
*
- * Copyright © 2020-2024 by OpenPrinting.
+ * Copyright © 2020-2025 by OpenPrinting.
* Copyright © 2018 by Apple Inc.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more
* information.
*/
-/*
- * Include necessary headers...
- */
-
#include "raster-private.h"
@@ -185,7 +181,7 @@ cupsRasterReadHeader(
* 'cupsRasterReadHeader2()' - Read a raster page header and store it in a
* version 2 page header structure.
*
- * @since CUPS 1.2/macOS 10.5@
+ * @since CUPS 1.2@
*/
unsigned /* O - 1 on success, 0 on failure/end-of-file */
@@ -264,7 +260,7 @@ cupsRasterWriteHeader(
*
* The page header can be initialized using @link cupsRasterInitPWGHeader@.
*
- * @since CUPS 1.2/macOS 10.5@
+ * @since CUPS 1.2@
*/
unsigned /* O - 1 on success, 0 on failure */
diff --git a/cups/raster.h b/cups/raster.h
index d8ca98d57d..f7ae6c7e02 100644
--- a/cups/raster.h
+++ b/cups/raster.h
@@ -1,7 +1,7 @@
//
// Raster file definitions for CUPS.
//
-// Copyright © 2020-2024 by OpenPrinting.
+// Copyright © 2020-2025 by OpenPrinting.
// Copyright © 2007-2018 by Apple Inc.
// Copyright © 1997-2006 by Easy Software Products.
//
@@ -118,28 +118,28 @@ typedef enum cups_cspace_e // cupsColorSpace attribute values
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/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_CIEXYZ = 15, // CIE XYZ @since CUPS 1.1.19@
+ CUPS_CSPACE_CIELab = 16, // CIE Lab @since CUPS 1.1.19@
+ CUPS_CSPACE_RGBW = 17, // Red, green, blue, white (DeviceRGB, sRGB by default) @since CUPS 1.2@
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/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_ICC1 = 32, // ICC-based, 1 color @since CUPS 1.1.19@
+ CUPS_CSPACE_ICC2 = 33, // ICC-based, 2 colors @since CUPS 1.1.19@
+ CUPS_CSPACE_ICC3 = 34, // ICC-based, 3 colors @since CUPS 1.1.19@
+ CUPS_CSPACE_ICC4 = 35, // ICC-based, 4 colors @since CUPS 1.1.19@
+ CUPS_CSPACE_ICC5 = 36, // ICC-based, 5 colors @since CUPS 1.1.19@
+ CUPS_CSPACE_ICC6 = 37, // ICC-based, 6 colors @since CUPS 1.1.19@
+ CUPS_CSPACE_ICC7 = 38, // ICC-based, 7 colors @since CUPS 1.1.19@
+ CUPS_CSPACE_ICC8 = 39, // ICC-based, 8 colors @since CUPS 1.1.19@
+ CUPS_CSPACE_ICC9 = 40, // ICC-based, 9 colors @since CUPS 1.1.19@
+ CUPS_CSPACE_ICCA = 41, // ICC-based, 10 colors @since CUPS 1.1.19@
+ CUPS_CSPACE_ICCB = 42, // ICC-based, 11 colors @since CUPS 1.1.19@
+ CUPS_CSPACE_ICCC = 43, // ICC-based, 12 colors @since CUPS 1.1.19@
+ CUPS_CSPACE_ICCD = 44, // ICC-based, 13 colors @since CUPS 1.1.19@
+ CUPS_CSPACE_ICCE = 45, // ICC-based, 14 colors @since CUPS 1.1.19@
+ CUPS_CSPACE_ICCF = 46, // ICC-based, 15 colors @since CUPS 1.1.19@
CUPS_CSPACE_DEVICE1 = 48, // DeviceN, 1 color @since CUPS 1.4.5@
CUPS_CSPACE_DEVICE2 = 49, // DeviceN, 2 colors @since CUPS 1.4.5@
@@ -187,8 +187,8 @@ enum cups_raster_mode_e // cupsRasterOpen modes
{
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/macOS 10.5@
- CUPS_RASTER_WRITE_PWG = 3, // Open stream for compressed writing in PWG Raster mode @since CUPS 1.5/macOS 10.7@
+ CUPS_RASTER_WRITE_COMPRESSED = 2, // Open stream for compressed writing @since CUPS 1.3@
+ CUPS_RASTER_WRITE_PWG = 3, // Open stream for compressed writing in PWG Raster mode @since CUPS 1.5@
CUPS_RASTER_WRITE_APPLE = 4 // Open stream for compressed writing in AppleRaster mode (beta) @private@
};
@@ -269,7 +269,7 @@ typedef struct cups_page_header_s // Version 1 page header @deprecated@
unsigned cupsRowStep; // Spacing between lines
} cups_page_header_t;
-typedef struct cups_page_header2_s // Version 2 page header @since CUPS 1.2/macOS 10.5@
+typedef struct cups_page_header2_s // Version 2 page header @since CUPS 1.2@
{
// Standard Page Device Dictionary String Values
char MediaClass[64]; // MediaClass string
@@ -317,20 +317,20 @@ typedef struct cups_page_header2_s // Version 2 page header @since CUPS 1.2/macO
unsigned cupsRowStep; // Spacing between lines
// Version 2 Dictionary Values
- unsigned cupsNumColors; // Number of color components @since CUPS 1.2/macOS 10.5@
+ unsigned cupsNumColors; // Number of color components @since CUPS 1.2@
float cupsBorderlessScalingFactor;
- // Scaling that was applied to page data @since CUPS 1.2/macOS 10.5@
+ // Scaling that was applied to page data @since CUPS 1.2@
float cupsPageSize[2]; /* Floating point PageSize (scaling *
- * factor not applied) @since CUPS 1.2/macOS 10.5@ */
+ * factor not applied) @since CUPS 1.2@ */
float cupsImagingBBox[4]; /* Floating point ImagingBoundingBox
* (scaling factor not applied, left,
- * 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@
+ * bottom, right, top) @since CUPS 1.2@ */
+ unsigned cupsInteger[16]; // User-defined integer values @since CUPS 1.2@
+ float cupsReal[16]; // User-defined floating-point values @since CUPS 1.2@
+ char cupsString[16][64]; // User-defined string values @since CUPS 1.2@
+ char cupsMarkerType[64]; // Ink/toner type @since CUPS 1.2@
+ char cupsRenderingIntent[64];// Color rendering intent @since CUPS 1.2@
+ char cupsPageSizeName[64]; // PageSize name @since CUPS 1.2@
} cups_page_header2_t;
typedef struct _cups_raster_s cups_raster_t;
diff --git a/cups/request.c b/cups/request.c
index cddc8edcb4..26483c9c7d 100644
--- a/cups/request.c
+++ b/cups/request.c
@@ -9,10 +9,6 @@
* information.
*/
-/*
- * Include necessary headers...
- */
-
#include "cups-private.h"
#include "debug-internal.h"
#include
@@ -98,7 +94,7 @@ cupsDoFileRequest(http_t *http, /* I - Connection to server or @code CUPS_HT
* 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/macOS 10.5@
+ * @since CUPS 1.3@
*/
ipp_t * /* O - Response data */
@@ -335,7 +331,7 @@ cupsGetErrorString(void)
* @link cupsReadResponseData@ after getting a successful response,
* otherwise call @link httpFlush@ to complete the response processing.
*
- * @since CUPS 1.4/macOS 10.6@
+ * @since CUPS 1.4@
*/
ipp_t * /* O - Response or @code NULL@ on HTTP error */
@@ -558,7 +554,7 @@ _cupsNextDelay(int current, /* I - Current delay value or 0 */
* files from @code CUPS_GET_PPD@ and @code CUPS_GET_DOCUMENT@ requests,
* respectively.
*
- * @since CUPS 1.4/macOS 10.6@
+ * @since CUPS 1.4@
*/
ssize_t /* O - Bytes read, 0 on EOF, -1 on error */
@@ -608,7 +604,7 @@ cupsReadResponseData(
* Note: Unlike @link cupsDoFileRequest@, @link cupsDoIORequest@, and
* @link cupsDoRequest@, the request is NOT freed with @link ippDelete@.
*
- * @since CUPS 1.4/macOS 10.6@
+ * @since CUPS 1.4@
*/
http_status_t /* O - Initial HTTP status */
@@ -922,7 +918,7 @@ cupsSendRequest(http_t *http, /* I - Connection to server or @code CUPS_HTTP
* This function is used after @link cupsSendRequest@ to provide a PPD and
* after @link cupsStartDocument@ to provide a document file.
*
- * @since CUPS 1.4/macOS 10.6@
+ * @since CUPS 1.4@
*/
http_status_t /* O - @code HTTP_STATUS_CONTINUE@ if OK or HTTP status on error */
diff --git a/cups/sidechannel.c b/cups/sidechannel.c
index 4f7ffe766a..1b1d7bdfd6 100644
--- a/cups/sidechannel.c
+++ b/cups/sidechannel.c
@@ -1,7 +1,7 @@
/*
* Side-channel API code for CUPS.
*
- * Copyright © 2020-2024 by OpenPrinting.
+ * Copyright © 2020-2025 by OpenPrinting.
* Copyright © 2007-2019 by Apple Inc.
* Copyright © 2006 by Easy Software Products.
*
@@ -9,10 +9,6 @@
* information.
*/
-/*
- * Include necessary headers...
- */
-
#include "sidechannel.h"
#include "cups-private.h"
#include "debug-internal.h"
@@ -47,7 +43,7 @@
* 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/macOS 10.5@
+ * @since CUPS 1.3@
*/
cups_sc_status_t /* O - Status of command */
@@ -86,7 +82,7 @@ cupsSideChannelDoRequest(
* 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/macOS 10.5@
+ * @since CUPS 1.3@
*/
int /* O - 0 on success, -1 on error */
@@ -265,7 +261,7 @@ cupsSideChannelRead(
* 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/macOS 10.6@
+ * @since CUPS 1.4@
*/
cups_sc_status_t /* O - Query status */
@@ -369,7 +365,7 @@ cupsSideChannelSNMPGet(
* 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/macOS 10.6@
+ * @since CUPS 1.4@
*/
cups_sc_status_t /* O - Status of first query of @code CUPS_SC_STATUS_OK@ on success */
@@ -487,7 +483,7 @@ cupsSideChannelSNMPWalk(
* This function is normally only called by backend programs to send
* responses to a filter, driver, or port monitor program.
*
- * @since CUPS 1.3/macOS 10.5@
+ * @since CUPS 1.3@
*/
int /* O - 0 on success, -1 on error */
diff --git a/cups/sidechannel.h b/cups/sidechannel.h
index 94e7b959b3..ecd55d9417 100644
--- a/cups/sidechannel.h
+++ b/cups/sidechannel.h
@@ -1,7 +1,7 @@
//
// Side-channel API definitions for CUPS.
//
-// Copyright © 2020-2024 by OpenPrinting.
+// Copyright © 2020-2025 by OpenPrinting.
// Copyright © 2007-2019 by Apple Inc.
// Copyright © 2006 by Easy Software Products.
//
@@ -51,9 +51,9 @@ enum cups_sc_command_e // Request command codes
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/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_SNMP_GET = 6, // Query an SNMP OID @since CUPS 1.4@
+ CUPS_SC_CMD_SNMP_GET_NEXT = 7, // Query the next SNMP OID @since CUPS 1.4@
+ CUPS_SC_CMD_GET_CONNECTED = 8, // Return whether the backend is "connected" to the printer @since CUPS 1.5@
CUPS_SC_CMD_MAX // End of valid values @private@
};
typedef enum cups_sc_command_e cups_sc_command_t;
diff --git a/cups/tempfile.c b/cups/tempfile.c
index 8c9cf35486..ab459d6743 100644
--- a/cups/tempfile.c
+++ b/cups/tempfile.c
@@ -1,7 +1,7 @@
//
// Temp file utilities for CUPS.
//
-// Copyright © 2020-2024 by OpenPrinting.
+// Copyright © 2020-2025 by OpenPrinting.
// Copyright © 2007-2018 by Apple Inc.
// Copyright © 1997-2006 by Easy Software Products.
//
diff --git a/cups/testhttp.c b/cups/testhttp.c
index 98dbe4acab..5630a3eb71 100644
--- a/cups/testhttp.c
+++ b/cups/testhttp.c
@@ -1,7 +1,7 @@
//
// HTTP test program for CUPS.
//
-// Copyright © 2021-2024 by OpenPrinting.
+// Copyright © 2021-2025 by OpenPrinting.
// Copyright © 2007-2018 by Apple Inc.
// Copyright © 1997-2006 by Easy Software Products.
//
diff --git a/cups/usersys.c b/cups/usersys.c
index 61791e06ae..4f4a186fb5 100644
--- a/cups/usersys.c
+++ b/cups/usersys.c
@@ -9,10 +9,6 @@
* information.
*/
-/*
- * Include necessary headers...
- */
-
#include "cups-private.h"
#include "debug-internal.h"
#include
@@ -188,7 +184,7 @@ cupsGetPassword(const char *prompt) /* I - Prompt string */
* the @link cupsSetPasswordCB2@ function need to do so in each thread for the
* same function to be used.
*
- * @since CUPS 1.4/macOS 10.6@
+ * @since CUPS 1.4@
*/
const char * /* O - Password */
@@ -480,7 +476,7 @@ cupsSetPasswordCB(cups_password_cb_t cb)/* I - Callback function */
* 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/macOS 10.6@
+ * @since CUPS 1.4@
*/
void
@@ -627,7 +623,7 @@ cupsSetUser(const char *user) /* I - User name */
* 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/macOS 10.9@
+ * @since CUPS 1.7@
*/
void
diff --git a/cups/util.c b/cups/util.c
index ae7d382893..80063c2b7c 100644
--- a/cups/util.c
+++ b/cups/util.c
@@ -1,7 +1,7 @@
/*
* Printing utilities for CUPS.
*
- * Copyright © 2020-2024 by OpenPrinting.
+ * Copyright © 2020-2025 by OpenPrinting.
* Copyright © 2007-2018 by Apple Inc.
* Copyright © 1997-2006 by Easy Software Products.
*
@@ -57,7 +57,7 @@ cupsCancelJob(const char *name, /* I - Name of printer or class */
* Use the @link cupsGetError@ and @link cupsGetErrorString@ functions to get
* the cause of any failure.
*
- * @since CUPS 1.4/macOS 10.6@ @exclude all@
+ * @since CUPS 1.4@ @exclude all@
*/
ipp_status_t /* O - IPP status */
@@ -145,7 +145,7 @@ cupsCancelJob2(http_t *http, /* I - Connection to server or @code CUPS_HTTP_
* print, use the @link cupsPrintFile2@ or @link cupsPrintFiles2@ function
* instead.
*
- * @since CUPS 1.4/macOS 10.6@ @exclude all@
+ * @since CUPS 1.4@ @exclude all@
*/
int /* O - Job ID or 0 on error */
@@ -219,7 +219,7 @@ cupsCreateJob(
*
* The document must have been started using @link cupsStartDocument@.
*
- * @since CUPS 1.4/macOS 10.6@ @exclude all@
+ * @since CUPS 1.4@ @exclude all@
*/
ipp_status_t /* O - Status of document submission */
@@ -317,7 +317,7 @@ cupsGetDefault(void)
* functions to get the user-defined default printer, as this function does
* not support the lpoptions-defined default printer.
*
- * @since CUPS 1.1.21/macOS 10.4@ @exclude all@
+ * @since CUPS 1.1.21@ @exclude all@
*/
const char * /* O - Default printer or @code NULL@ */
@@ -410,7 +410,7 @@ cupsGetJobs(cups_job_t **jobs, /* O - Job data */
* pending, processing, or held and @code CUPS_WHICHJOBS_COMPLETED@ returns
* jobs that are stopped, canceled, aborted, or completed.
*
- * @since CUPS 1.1.21/macOS 10.4@
+ * @since CUPS 1.1.21@
*/
int /* O - Number of jobs */
@@ -717,7 +717,7 @@ cupsPrintFile(const char *name, /* I - Destination name */
* 'cupsPrintFile2()' - Print a file to a printer or class on the specified
* server.
*
- * @since CUPS 1.1.21/macOS 10.4@ @exclude all@
+ * @since CUPS 1.1.21@ @exclude all@
*/
int /* O - Job ID or 0 on error */
@@ -767,7 +767,7 @@ cupsPrintFiles(
* 'cupsPrintFiles2()' - Print one or more files to a printer or class on the
* specified server.
*
- * @since CUPS 1.1.21/macOS 10.4@ @exclude all@
+ * @since CUPS 1.1.21@ @exclude all@
*/
int /* O - Job ID or 0 on error */
@@ -897,7 +897,7 @@ cupsPrintFiles2(
* @code CUPS_FORMAT_TEXT@ are provided for the "format" argument, although
* any supported MIME type string can be supplied.
*
- * @since CUPS 1.4/macOS 10.6@ @exclude all@
+ * @since CUPS 1.4@ @exclude all@
*/
http_status_t /* O - HTTP status of request */
diff --git a/doc/help/api-admin.html b/doc/help/api-admin.html
index a65e97a820..1052c37184 100644
--- a/doc/help/api-admin.html
+++ b/doc/help/api-admin.html
@@ -5,7 +5,7 @@
Administration APIs
-
+
@@ -438,7 +438,7 @@ show_devices(void)
Return Value
1 on success, 0 on failure
-
+
Get settings from the server.
int cupsAdminGetServerSettings(http_t *http, int *num_settings, cups_option_t **settings);
@@ -458,7 +458,7 @@ show_devices(void)
you are done with them.
-
+
Set settings on the server.
int cupsAdminSetServerSettings(http_t *http, int num_settings, cups_option_t *settings);
@@ -506,7 +506,7 @@ being provided by the cupsEnumDests
an
-
+
Device callback
typedef void (*cups_device_cb_t)(const char *device_class, const char *device_id, const char *device_info, const char *device_make_and_model, const char *device_uri, const char *device_location, void *user_data);
diff --git a/doc/help/api-filter.html b/doc/help/api-filter.html
index b08c8c03fc..374a9f0bff 100644
--- a/doc/help/api-filter.html
+++ b/doc/help/api-filter.html
@@ -5,7 +5,7 @@
Filter and Backend Programming
-
+
@@ -1215,7 +1215,7 @@ void *my_data;
The sandbox profile used in CUPS still allows some actions that are not listed above - these privileges will be removed over time until the profile matches the list above.
-
+
Read data from the backchannel.
ssize_t cupsBackChannelRead(char *buffer, size_t bytes, double timeout);
@@ -1236,7 +1236,7 @@ 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.
-
+
Write data to the backchannel.
ssize_t cupsBackChannelWrite(const char *buffer, size_t bytes, double timeout);
@@ -1258,7 +1258,7 @@ controls how many seconds to wait for the data to be written - use
indefinitely.
-
+
Get the device URI for a backend.
const char *cupsBackendDeviceURI(char **argv);
@@ -1276,7 +1276,7 @@ variable or the device URI passed in argv[0], whichever is found
first.
-
+
Write a device line from a backend.
void cupsBackendReport(const char *device_scheme, const char *device_uri, const char *device_make_and_model, const char *device_info, const char *device_id, const char *device_location);
@@ -1301,7 +1301,7 @@ It handles quoting of special characters in the device-make-and-model,
device-info, device-id, and device-location strings.
-
+
Send a side-channel command to a backend and wait for a response.
cups_sc_status_t cupsSideChannelDoRequest(cups_sc_command_t command, char *data, int *datalen, double timeout);
@@ -1330,7 +1330,7 @@ pointed to by the "data" parameter. cupsSideChannelDoRequest() will
update the value to contain the number of data bytes in the buffer.
-
+
Read a side-channel message.
int cupsSideChannelRead(cups_sc_command_t *command, cups_sc_status_t *status, char *data, int *datalen, double timeout);
@@ -1360,7 +1360,7 @@ pointed to by the "data" parameter. cupsSideChannelDoRequest() will
update the value to contain the number of data bytes in the buffer.
-
+
Query a SNMP OID's value.
cups_sc_status_t cupsSideChannelSNMPGet(const char *oid, char *data, int *datalen, double timeout);
@@ -1396,7 +1396,7 @@ support SNMP queries. CUPS_SC_STATUS_NO_RESPONSE
is returned when
the printer does not respond to the SNMP query.
-
+
Query multiple SNMP OID values.
cups_sc_status_t cupsSideChannelSNMPWalk(const char *oid, double timeout, cups_sc_walk_func_t cb, void *context);
@@ -1437,7 +1437,7 @@ support SNMP queries. CUPS_SC_STATUS_NO_RESPONSE
is returned when
the printer does not respond to the first SNMP query.
-
+
Write a side-channel message.
int cupsSideChannelWrite(cups_sc_command_t command, cups_sc_status_t status, const char *data, int datalen, double timeout);
@@ -1524,11 +1524,11 @@ typedef void (*cups_sc_walk_func_t)(const char *oid, const char *data, int datal
CUPS_SC_CMD_DRAIN_OUTPUT | Drain all pending output |
CUPS_SC_CMD_GET_BIDI | Return bidirectional capabilities |
-CUPS_SC_CMD_GET_CONNECTED CUPS 1.5/macOS 10.7 | Return whether the backend is "connected" to the printer |
+CUPS_SC_CMD_GET_CONNECTED CUPS 1.5 | Return whether the backend is "connected" to the printer |
CUPS_SC_CMD_GET_DEVICE_ID | Return the IEEE-1284 device ID |
CUPS_SC_CMD_GET_STATE | Return the device state |
-CUPS_SC_CMD_SNMP_GET CUPS 1.4/macOS 10.6 | Query an SNMP OID |
-CUPS_SC_CMD_SNMP_GET_NEXT CUPS 1.4/macOS 10.6 | Query the next SNMP OID |
+CUPS_SC_CMD_SNMP_GET CUPS 1.4 | Query an SNMP OID |
+CUPS_SC_CMD_SNMP_GET_NEXT CUPS 1.4 | Query the next SNMP OID |
CUPS_SC_CMD_SOFT_RESET | Do a soft reset |
diff --git a/doc/help/api-ppd.html b/doc/help/api-ppd.html
index d6ef5eb7f6..5d74c34087 100644
--- a/doc/help/api-ppd.html
+++ b/doc/help/api-ppd.html
@@ -5,7 +5,7 @@
PPD API (DEPRECATED)
-
+
@@ -592,7 +592,7 @@ for (attr = ppdFindAttr(ppd, "Product", NULL);
puts(attr->value);
-
+
Get a list of conflicting options in a marked PPD.
int cupsGetConflicts(ppd_file_t *ppd, const char *option, const char *choice, cups_option_t **options);
@@ -638,7 +638,7 @@ in the class.
The returned filename is stored in a static buffer and is overwritten with
each call to cupsGetPPD
or cupsGetPPD2
. The caller "owns" the
file that is created and must unlink
the returned filename.
- CUPS 1.1.21/macOS 10.4 cupsGetPPD2
+
Get the PPD file for a printer from the specified server.
const char *cupsGetPPD2(http_t *http, const char *name);
@@ -660,7 +660,7 @@ each call to cupsGetPPD
or cupsGetP
file that is created and must unlink
the returned filename.
-
+
Get the PPD file for a printer on the specified
server if it has changed.
@@ -698,7 +698,7 @@ For classes, cupsGetPPD3
returns the PPD file for the first printer
in the class.
-
+
Get an available PPD file from the server.
char *cupsGetServerPPD(http_t *http, const char *name);
@@ -742,7 +742,7 @@ or cupsGetServerPPD
.
"multiple-document-handling", "output-bin", "print-color-mode",
"print-quality", "printer-resolution", and "sides" attributes to their
corresponding PPD options and choices.
-
+
Interpret PPD commands to create a page header.
int cupsRasterInterpretPPD(cups_page_header2_t *h, ppd_file_t *ppd, int num_options, cups_option_t *options, cups_interpret_cb_t func);
@@ -787,7 +787,7 @@ Currently only the [
, ]
, <<
,
are supported.
-
+
Resolve conflicts in a marked PPD.
int cupsResolveConflicts(ppd_file_t *ppd, const char *option, const char *choice, int *num_options, cups_option_t **options);
@@ -858,7 +858,7 @@ until a non-conflicting option choice is found.
Discussion
The choices array should be freed using free
when you are
finished with it.
-
+
Collect all marked options that reside in the
specified section and minimum order.
@@ -910,7 +910,7 @@ finished with it.
Return Value
0 on success, -1 on failure
-
+
Emit a subset of the code for marked options to a file.
int ppdEmitAfterOrder(ppd_file_t *ppd, FILE *fp, ppd_section_t section, int limit, float min_order);
@@ -970,7 +970,7 @@ When "limit" is zero, this function is identical to ppdEmit().
Return Value
0 on success, -1 on failure
-
+
Emit JCLEnd code to a file.
int ppdEmitJCLEnd(ppd_file_t *ppd, FILE *fp);
@@ -983,7 +983,7 @@ When "limit" is zero, this function is identical to ppdEmit().
Return Value
0 on success, -1 on failure
-
+
Get a string containing the code for marked options.
char *ppdEmitString(ppd_file_t *ppd, ppd_section_t section, float min_order);
@@ -1008,7 +1008,7 @@ The return string is allocated on the heap and should be freed using
free
when you are done with it.
- CUPS 1.1.19/macOS 10.3 ppdFindAttr
+
Find the first matching attribute.
ppd_attr_t *ppdFindAttr(ppd_file_t *ppd, const char *name, const char *spec);
@@ -1036,7 +1036,7 @@ The return string is allocated on the heap and should be freed using
Return Value
Choice pointer or NULL
-
+
Find a custom option.
ppd_coption_t *ppdFindCustomOption(ppd_file_t *ppd, const char *keyword);
@@ -1049,7 +1049,7 @@ ppd_coption_t *ppdFindCustomOption(ppd_file_t *ppd, const
Return Value
Custom option or NULL
-
+
Find a parameter for a custom option.
ppd_cparam_t *ppdFindCustomParam(ppd_coption_t *opt, const char *name);
@@ -1075,7 +1075,7 @@ ppd_cparam_t *ppdFindCustomParam(ppd_coption_t *opt, cons
Return Value
Pointer to choice or NULL
-
+
Find the next matching attribute.
ppd_attr_t *ppdFindNextAttr(ppd_file_t *ppd, const char *name, const char *spec);
@@ -1103,7 +1103,7 @@ ppd_cparam_t *ppdFindCustomParam(ppd_coption_t *opt, cons
Return Value
Pointer to option or NULL
-
+
Return the first parameter for a custom option.
ppd_cparam_t *ppdFirstCustomParam(ppd_coption_t *opt);
@@ -1114,7 +1114,7 @@ ppd_cparam_t *ppdFirstCustomParam(ppd_coption_t *opt);
Return Value
Custom parameter or NULL
-
+
Return the first option in the PPD file.
ppd_option_t *ppdFirstOption(ppd_file_t *ppd);
@@ -1129,7 +1129,7 @@ ppd_cparam_t *ppdFirstCustomParam(ppd_coption_t *opt);
Options are returned from all groups in ascending alphanumeric order.
-
+
Test whether an option choice conflicts with
an installable option.
@@ -1165,7 +1165,7 @@ on constraints against options in the "InstallableOptions" group.
Return Value
Non-zero if option is marked
-
+
Localize the PPD file to the current locale.
int ppdLocalize(ppd_file_t *ppd);
@@ -1201,7 +1201,7 @@ localized string uses the UTF-8 character encoding.
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.
-
+
Get the localized version of a cupsIPPReason
attribute.
@@ -1230,7 +1230,7 @@ string or attribute value. Otherwise the corresponding URI is returned.
If no value of the requested scheme can be found, NULL is returned.
-
+
Get the localized version of a marker-names
attribute value.
@@ -1275,7 +1275,7 @@ name can be found, NULL
is returned.
Return Value
Number of conflicts
-
+
Return the next parameter for a custom option.
ppd_cparam_t *ppdNextCustomParam(ppd_coption_t *opt);
@@ -1286,7 +1286,7 @@ ppd_cparam_t *ppdNextCustomParam(ppd_coption_t *opt);
Return Value
Custom parameter or NULL
-
+
Return the next option in the PPD file.
ppd_option_t *ppdNextOption(ppd_file_t *ppd);
@@ -1327,7 +1327,7 @@ ppd_size_t *ppdPageSize(ppd_file_t *ppd, const
Return Value
Size record for page or NULL
-
+
Return the custom page size limits.
int ppdPageSizeLimits(ppd_file_t *ppd, ppd_size_t *minimum, ppd_size_t *maximum);
diff --git a/doc/help/cupspm.epub b/doc/help/cupspm.epub
index 3d69b9bd4d08dc81f01727c5ef619a58c34058ae..7a13ac93f17b9b849d7d91a3cb0769ef0b68eadd 100644
GIT binary patch
delta 94873
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
z