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