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