xref: /aosp_15_r20/external/libcups/ppdc/ppdc-group.cxx (revision 5e7646d21f1134fb0638875d812ef646c12ab91e)
1*5e7646d2SAndroid Build Coastguard Worker //
2*5e7646d2SAndroid Build Coastguard Worker // Group class for the CUPS PPD Compiler.
3*5e7646d2SAndroid Build Coastguard Worker //
4*5e7646d2SAndroid Build Coastguard Worker // Copyright 2007-2011 by Apple Inc.
5*5e7646d2SAndroid Build Coastguard Worker // Copyright 2002-2005 by Easy Software Products.
6*5e7646d2SAndroid Build Coastguard Worker //
7*5e7646d2SAndroid Build Coastguard Worker // Licensed under Apache License v2.0.  See the file "LICENSE" for more information.
8*5e7646d2SAndroid Build Coastguard Worker //
9*5e7646d2SAndroid Build Coastguard Worker 
10*5e7646d2SAndroid Build Coastguard Worker //
11*5e7646d2SAndroid Build Coastguard Worker // Include necessary headers...
12*5e7646d2SAndroid Build Coastguard Worker //
13*5e7646d2SAndroid Build Coastguard Worker 
14*5e7646d2SAndroid Build Coastguard Worker #include "ppdc-private.h"
15*5e7646d2SAndroid Build Coastguard Worker 
16*5e7646d2SAndroid Build Coastguard Worker 
17*5e7646d2SAndroid Build Coastguard Worker //
18*5e7646d2SAndroid Build Coastguard Worker // 'ppdcGroup::ppdcGroup()' - Create a new group.
19*5e7646d2SAndroid Build Coastguard Worker //
20*5e7646d2SAndroid Build Coastguard Worker 
ppdcGroup(const char * n,const char * t)21*5e7646d2SAndroid Build Coastguard Worker ppdcGroup::ppdcGroup(const char *n,	// I - Name of group
22*5e7646d2SAndroid Build Coastguard Worker                      const char *t)	// I - Text of group
23*5e7646d2SAndroid Build Coastguard Worker {
24*5e7646d2SAndroid Build Coastguard Worker   PPDC_NEWVAL(n);
25*5e7646d2SAndroid Build Coastguard Worker 
26*5e7646d2SAndroid Build Coastguard Worker   name    = new ppdcString(n);
27*5e7646d2SAndroid Build Coastguard Worker   text    = new ppdcString(t);
28*5e7646d2SAndroid Build Coastguard Worker   options = new ppdcArray();
29*5e7646d2SAndroid Build Coastguard Worker }
30*5e7646d2SAndroid Build Coastguard Worker 
31*5e7646d2SAndroid Build Coastguard Worker 
32*5e7646d2SAndroid Build Coastguard Worker //
33*5e7646d2SAndroid Build Coastguard Worker // 'ppdcGroup::ppdcGroup()' - Copy a new group.
34*5e7646d2SAndroid Build Coastguard Worker //
35*5e7646d2SAndroid Build Coastguard Worker 
ppdcGroup(ppdcGroup * g)36*5e7646d2SAndroid Build Coastguard Worker ppdcGroup::ppdcGroup(ppdcGroup *g)	// I - Group template
37*5e7646d2SAndroid Build Coastguard Worker {
38*5e7646d2SAndroid Build Coastguard Worker   PPDC_NEWVAL(g->name->value);
39*5e7646d2SAndroid Build Coastguard Worker 
40*5e7646d2SAndroid Build Coastguard Worker   g->name->retain();
41*5e7646d2SAndroid Build Coastguard Worker   g->text->retain();
42*5e7646d2SAndroid Build Coastguard Worker 
43*5e7646d2SAndroid Build Coastguard Worker   name = g->name;
44*5e7646d2SAndroid Build Coastguard Worker   text = g->text;
45*5e7646d2SAndroid Build Coastguard Worker 
46*5e7646d2SAndroid Build Coastguard Worker   options = new ppdcArray();
47*5e7646d2SAndroid Build Coastguard Worker   for (ppdcOption *o = (ppdcOption *)g->options->first();
48*5e7646d2SAndroid Build Coastguard Worker        o;
49*5e7646d2SAndroid Build Coastguard Worker        o = (ppdcOption *)g->options->next())
50*5e7646d2SAndroid Build Coastguard Worker     options->add(new ppdcOption(o));
51*5e7646d2SAndroid Build Coastguard Worker }
52*5e7646d2SAndroid Build Coastguard Worker 
53*5e7646d2SAndroid Build Coastguard Worker 
54*5e7646d2SAndroid Build Coastguard Worker //
55*5e7646d2SAndroid Build Coastguard Worker // 'ppdcGroup::~ppdcGroup()' - Destroy a group.
56*5e7646d2SAndroid Build Coastguard Worker //
57*5e7646d2SAndroid Build Coastguard Worker 
~ppdcGroup()58*5e7646d2SAndroid Build Coastguard Worker ppdcGroup::~ppdcGroup()
59*5e7646d2SAndroid Build Coastguard Worker {
60*5e7646d2SAndroid Build Coastguard Worker   PPDC_DELETEVAL(name ? name->value : NULL);
61*5e7646d2SAndroid Build Coastguard Worker 
62*5e7646d2SAndroid Build Coastguard Worker   name->release();
63*5e7646d2SAndroid Build Coastguard Worker   text->release();
64*5e7646d2SAndroid Build Coastguard Worker   options->release();
65*5e7646d2SAndroid Build Coastguard Worker 
66*5e7646d2SAndroid Build Coastguard Worker   name = text = 0;
67*5e7646d2SAndroid Build Coastguard Worker   options = 0;
68*5e7646d2SAndroid Build Coastguard Worker }
69*5e7646d2SAndroid Build Coastguard Worker 
70*5e7646d2SAndroid Build Coastguard Worker 
71*5e7646d2SAndroid Build Coastguard Worker //
72*5e7646d2SAndroid Build Coastguard Worker // 'ppdcGroup::find_option()' - Find an option in a group.
73*5e7646d2SAndroid Build Coastguard Worker //
74*5e7646d2SAndroid Build Coastguard Worker 
75*5e7646d2SAndroid Build Coastguard Worker ppdcOption *
find_option(const char * n)76*5e7646d2SAndroid Build Coastguard Worker ppdcGroup::find_option(const char *n)	// I - Name of option
77*5e7646d2SAndroid Build Coastguard Worker {
78*5e7646d2SAndroid Build Coastguard Worker   ppdcOption	*o;			// Current option
79*5e7646d2SAndroid Build Coastguard Worker 
80*5e7646d2SAndroid Build Coastguard Worker 
81*5e7646d2SAndroid Build Coastguard Worker   for (o = (ppdcOption *)options->first(); o; o = (ppdcOption *)options->next())
82*5e7646d2SAndroid Build Coastguard Worker     if (!_cups_strcasecmp(n, o->name->value))
83*5e7646d2SAndroid Build Coastguard Worker       return (o);
84*5e7646d2SAndroid Build Coastguard Worker 
85*5e7646d2SAndroid Build Coastguard Worker   return (0);
86*5e7646d2SAndroid Build Coastguard Worker }
87