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 WorkerppdcGroup::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 WorkerppdcGroup::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 WorkerppdcGroup::~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 WorkerppdcGroup::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