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

-

 CUPS 1.3/macOS 10.5 cupsAdminGetServerSettings

+

 CUPS 1.3 cupsAdminGetServerSettings

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.

-

 CUPS 1.3/macOS 10.5 cupsAdminSetServerSettings

+

 CUPS 1.3 cupsAdminSetServerSettings

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

Data Types

-

 CUPS 1.4/macOS 10.6 cups_device_cb_t

+

 CUPS 1.4 cups_device_cb_t

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.

Functions

-

 CUPS 1.2/macOS 10.5 cupsBackChannelRead

+

 CUPS 1.2 cupsBackChannelRead

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.

-

 CUPS 1.2/macOS 10.5 cupsBackChannelWrite

+

 CUPS 1.2 cupsBackChannelWrite

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.

-

 CUPS 1.2/macOS 10.5 cupsBackendDeviceURI

+

 CUPS 1.2 cupsBackendDeviceURI

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.

-

 CUPS 1.4/macOS 10.6 cupsBackendReport

+

 CUPS 1.4 cupsBackendReport

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.

-

 CUPS 1.3/macOS 10.5 cupsSideChannelDoRequest

+

 CUPS 1.3 cupsSideChannelDoRequest

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.

-

 CUPS 1.3/macOS 10.5 cupsSideChannelRead

+

 CUPS 1.3 cupsSideChannelRead

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.

-

 CUPS 1.4/macOS 10.6 cupsSideChannelSNMPGet

+

 CUPS 1.4 cupsSideChannelSNMPGet

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.

-

 CUPS 1.4/macOS 10.6 cupsSideChannelSNMPWalk

+

 CUPS 1.4 cupsSideChannelSNMPWalk

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.

-

 CUPS 1.3/macOS 10.5 cupsSideChannelWrite

+

 CUPS 1.3 cupsSideChannelWrite

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

cups_sc_connected_e

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);

Functions

-

 CUPS 1.4/macOS 10.6 cupsGetConflicts

+

 CUPS 1.4 cupsGetConflicts

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

+

 CUPS 1.1.21 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.

-

 CUPS 1.4/macOS 10.6 cupsGetPPD3

+

 CUPS 1.4 cupsGetPPD3

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.

-

 CUPS 1.3/macOS 10.5 cupsGetServerPPD

+

 CUPS 1.3 cupsGetServerPPD

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.

-

 CUPS 1.2/macOS 10.5 cupsRasterInterpretPPD

+

 CUPS 1.2 cupsRasterInterpretPPD

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.

-

 CUPS 1.4/macOS 10.6 cupsResolveConflicts

+

 CUPS 1.4 cupsResolveConflicts

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.

-

 CUPS 1.2/macOS 10.5 ppdCollect2

+

 CUPS 1.2 ppdCollect2

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

-

 CUPS 1.2/macOS 10.5 ppdEmitAfterOrder

+

 CUPS 1.2 ppdEmitAfterOrder

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

-

 CUPS 1.2/macOS 10.5 ppdEmitJCLEnd

+

 CUPS 1.2 ppdEmitJCLEnd

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

-

 CUPS 1.2/macOS 10.5 ppdEmitString

+

 CUPS 1.2 ppdEmitString

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

+

 CUPS 1.1.19 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

-

 CUPS 1.2/macOS 10.5 ppdFindCustomOption

+

 CUPS 1.2 ppdFindCustomOption

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

-

 CUPS 1.2/macOS 10.5 ppdFindCustomParam

+

 CUPS 1.2 ppdFindCustomParam

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

-

 CUPS 1.1.19/macOS 10.3 ppdFindNextAttr

+

 CUPS 1.1.19 ppdFindNextAttr

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

-

 CUPS 1.2/macOS 10.5 ppdFirstCustomParam

+

 CUPS 1.2 ppdFirstCustomParam

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

-

 CUPS 1.2/macOS 10.5 ppdFirstOption

+

 CUPS 1.2 ppdFirstOption

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.

-

 CUPS 1.4/macOS 10.6 ppdInstallableConflict

+

 CUPS 1.4 ppdInstallableConflict

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

-

 CUPS 1.2/macOS 10.5 ppdLocalize

+

 CUPS 1.2 ppdLocalize

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.

-

 CUPS 1.3/macOS 10.5 ppdLocalizeIPPReason

+

 CUPS 1.3 ppdLocalizeIPPReason

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.

-

 CUPS 1.4/macOS 10.6 ppdLocalizeMarkerName

+

 CUPS 1.4 ppdLocalizeMarkerName

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

-

 CUPS 1.2/macOS 10.5 ppdNextCustomParam

+

 CUPS 1.2 ppdNextCustomParam

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

-

 CUPS 1.2/macOS 10.5 ppdNextOption

+

 CUPS 1.2 ppdNextOption

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

-

 CUPS 1.4/macOS 10.6 ppdPageSizeLimits

+

 CUPS 1.4 ppdPageSizeLimits

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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 Programming Manual - + - +