xref: /aosp_15_r20/external/libcups/cups/ppd-custom.c (revision 5e7646d21f1134fb0638875d812ef646c12ab91e)
1*5e7646d2SAndroid Build Coastguard Worker /*
2*5e7646d2SAndroid Build Coastguard Worker  * PPD custom option routines for CUPS.
3*5e7646d2SAndroid Build Coastguard Worker  *
4*5e7646d2SAndroid Build Coastguard Worker  * Copyright 2007-2015 by Apple Inc.
5*5e7646d2SAndroid Build Coastguard Worker  * Copyright 1997-2006 by Easy Software Products, all rights reserved.
6*5e7646d2SAndroid Build Coastguard Worker  *
7*5e7646d2SAndroid Build Coastguard Worker  * Licensed under Apache License v2.0.  See the file "LICENSE" for more
8*5e7646d2SAndroid Build Coastguard Worker  * information.
9*5e7646d2SAndroid Build Coastguard Worker  *
10*5e7646d2SAndroid Build Coastguard Worker  * PostScript is a trademark of Adobe Systems, Inc.
11*5e7646d2SAndroid Build Coastguard Worker  */
12*5e7646d2SAndroid Build Coastguard Worker 
13*5e7646d2SAndroid Build Coastguard Worker /*
14*5e7646d2SAndroid Build Coastguard Worker  * Include necessary headers.
15*5e7646d2SAndroid Build Coastguard Worker  */
16*5e7646d2SAndroid Build Coastguard Worker 
17*5e7646d2SAndroid Build Coastguard Worker #include "cups-private.h"
18*5e7646d2SAndroid Build Coastguard Worker #include "ppd-private.h"
19*5e7646d2SAndroid Build Coastguard Worker #include "debug-internal.h"
20*5e7646d2SAndroid Build Coastguard Worker 
21*5e7646d2SAndroid Build Coastguard Worker 
22*5e7646d2SAndroid Build Coastguard Worker /*
23*5e7646d2SAndroid Build Coastguard Worker  * 'ppdFindCustomOption()' - Find a custom option.
24*5e7646d2SAndroid Build Coastguard Worker  *
25*5e7646d2SAndroid Build Coastguard Worker  * @since CUPS 1.2/macOS 10.5@
26*5e7646d2SAndroid Build Coastguard Worker  */
27*5e7646d2SAndroid Build Coastguard Worker 
28*5e7646d2SAndroid Build Coastguard Worker ppd_coption_t *				/* O - Custom option or NULL */
ppdFindCustomOption(ppd_file_t * ppd,const char * keyword)29*5e7646d2SAndroid Build Coastguard Worker ppdFindCustomOption(ppd_file_t *ppd,	/* I - PPD file */
30*5e7646d2SAndroid Build Coastguard Worker                     const char *keyword)/* I - Custom option name */
31*5e7646d2SAndroid Build Coastguard Worker {
32*5e7646d2SAndroid Build Coastguard Worker   ppd_coption_t	key;			/* Custom option search key */
33*5e7646d2SAndroid Build Coastguard Worker 
34*5e7646d2SAndroid Build Coastguard Worker 
35*5e7646d2SAndroid Build Coastguard Worker   if (!ppd)
36*5e7646d2SAndroid Build Coastguard Worker     return (NULL);
37*5e7646d2SAndroid Build Coastguard Worker 
38*5e7646d2SAndroid Build Coastguard Worker   strlcpy(key.keyword, keyword, sizeof(key.keyword));
39*5e7646d2SAndroid Build Coastguard Worker   return ((ppd_coption_t *)cupsArrayFind(ppd->coptions, &key));
40*5e7646d2SAndroid Build Coastguard Worker }
41*5e7646d2SAndroid Build Coastguard Worker 
42*5e7646d2SAndroid Build Coastguard Worker 
43*5e7646d2SAndroid Build Coastguard Worker /*
44*5e7646d2SAndroid Build Coastguard Worker  * 'ppdFindCustomParam()' - Find a parameter for a custom option.
45*5e7646d2SAndroid Build Coastguard Worker  *
46*5e7646d2SAndroid Build Coastguard Worker  * @since CUPS 1.2/macOS 10.5@
47*5e7646d2SAndroid Build Coastguard Worker  */
48*5e7646d2SAndroid Build Coastguard Worker 
49*5e7646d2SAndroid Build Coastguard Worker ppd_cparam_t *				/* O - Custom parameter or NULL */
ppdFindCustomParam(ppd_coption_t * opt,const char * name)50*5e7646d2SAndroid Build Coastguard Worker ppdFindCustomParam(ppd_coption_t *opt,	/* I - Custom option */
51*5e7646d2SAndroid Build Coastguard Worker                    const char    *name)	/* I - Parameter name */
52*5e7646d2SAndroid Build Coastguard Worker {
53*5e7646d2SAndroid Build Coastguard Worker   ppd_cparam_t	*param;			/* Current custom parameter */
54*5e7646d2SAndroid Build Coastguard Worker 
55*5e7646d2SAndroid Build Coastguard Worker 
56*5e7646d2SAndroid Build Coastguard Worker   if (!opt)
57*5e7646d2SAndroid Build Coastguard Worker     return (NULL);
58*5e7646d2SAndroid Build Coastguard Worker 
59*5e7646d2SAndroid Build Coastguard Worker   for (param = (ppd_cparam_t *)cupsArrayFirst(opt->params);
60*5e7646d2SAndroid Build Coastguard Worker        param;
61*5e7646d2SAndroid Build Coastguard Worker        param = (ppd_cparam_t *)cupsArrayNext(opt->params))
62*5e7646d2SAndroid Build Coastguard Worker     if (!_cups_strcasecmp(param->name, name))
63*5e7646d2SAndroid Build Coastguard Worker       break;
64*5e7646d2SAndroid Build Coastguard Worker 
65*5e7646d2SAndroid Build Coastguard Worker   return (param);
66*5e7646d2SAndroid Build Coastguard Worker }
67*5e7646d2SAndroid Build Coastguard Worker 
68*5e7646d2SAndroid Build Coastguard Worker 
69*5e7646d2SAndroid Build Coastguard Worker /*
70*5e7646d2SAndroid Build Coastguard Worker  * 'ppdFirstCustomParam()' - Return the first parameter for a custom option.
71*5e7646d2SAndroid Build Coastguard Worker  *
72*5e7646d2SAndroid Build Coastguard Worker  * @since CUPS 1.2/macOS 10.5@
73*5e7646d2SAndroid Build Coastguard Worker  */
74*5e7646d2SAndroid Build Coastguard Worker 
75*5e7646d2SAndroid Build Coastguard Worker ppd_cparam_t *				/* O - Custom parameter or NULL */
ppdFirstCustomParam(ppd_coption_t * opt)76*5e7646d2SAndroid Build Coastguard Worker ppdFirstCustomParam(ppd_coption_t *opt)	/* I - Custom option */
77*5e7646d2SAndroid Build Coastguard Worker {
78*5e7646d2SAndroid Build Coastguard Worker   if (!opt)
79*5e7646d2SAndroid Build Coastguard Worker     return (NULL);
80*5e7646d2SAndroid Build Coastguard Worker 
81*5e7646d2SAndroid Build Coastguard Worker   return ((ppd_cparam_t *)cupsArrayFirst(opt->params));
82*5e7646d2SAndroid Build Coastguard Worker }
83*5e7646d2SAndroid Build Coastguard Worker 
84*5e7646d2SAndroid Build Coastguard Worker 
85*5e7646d2SAndroid Build Coastguard Worker /*
86*5e7646d2SAndroid Build Coastguard Worker  * 'ppdNextCustomParam()' - Return the next parameter for a custom option.
87*5e7646d2SAndroid Build Coastguard Worker  *
88*5e7646d2SAndroid Build Coastguard Worker  * @since CUPS 1.2/macOS 10.5@
89*5e7646d2SAndroid Build Coastguard Worker  */
90*5e7646d2SAndroid Build Coastguard Worker 
91*5e7646d2SAndroid Build Coastguard Worker ppd_cparam_t *				/* O - Custom parameter or NULL */
ppdNextCustomParam(ppd_coption_t * opt)92*5e7646d2SAndroid Build Coastguard Worker ppdNextCustomParam(ppd_coption_t *opt)	/* I - Custom option */
93*5e7646d2SAndroid Build Coastguard Worker {
94*5e7646d2SAndroid Build Coastguard Worker   if (!opt)
95*5e7646d2SAndroid Build Coastguard Worker     return (NULL);
96*5e7646d2SAndroid Build Coastguard Worker 
97*5e7646d2SAndroid Build Coastguard Worker   return ((ppd_cparam_t *)cupsArrayNext(opt->params));
98*5e7646d2SAndroid Build Coastguard Worker }
99