| // |
| // Group class for the CUPS PPD Compiler. |
| // |
| // Copyright 2007-2011 by Apple Inc. |
| // Copyright 2002-2005 by Easy Software Products. |
| // |
| // Licensed under Apache License v2.0. See the file "LICENSE" for more information. |
| // |
| |
| // |
| // Include necessary headers... |
| // |
| |
| #include "ppdc-private.h" |
| |
| |
| // |
| // 'ppdcGroup::ppdcGroup()' - Create a new group. |
| // |
| |
| ppdcGroup::ppdcGroup(const char *n, // I - Name of group |
| const char *t) // I - Text of group |
| { |
| PPDC_NEWVAL(n); |
| |
| name = new ppdcString(n); |
| text = new ppdcString(t); |
| options = new ppdcArray(); |
| } |
| |
| |
| // |
| // 'ppdcGroup::ppdcGroup()' - Copy a new group. |
| // |
| |
| ppdcGroup::ppdcGroup(ppdcGroup *g) // I - Group template |
| { |
| PPDC_NEWVAL(g->name->value); |
| |
| g->name->retain(); |
| g->text->retain(); |
| |
| name = g->name; |
| text = g->text; |
| |
| options = new ppdcArray(); |
| for (ppdcOption *o = (ppdcOption *)g->options->first(); |
| o; |
| o = (ppdcOption *)g->options->next()) |
| options->add(new ppdcOption(o)); |
| } |
| |
| |
| // |
| // 'ppdcGroup::~ppdcGroup()' - Destroy a group. |
| // |
| |
| ppdcGroup::~ppdcGroup() |
| { |
| PPDC_DELETEVAL(name ? name->value : NULL); |
| |
| name->release(); |
| text->release(); |
| options->release(); |
| |
| name = text = 0; |
| options = 0; |
| } |
| |
| |
| // |
| // 'ppdcGroup::find_option()' - Find an option in a group. |
| // |
| |
| ppdcOption * |
| ppdcGroup::find_option(const char *n) // I - Name of option |
| { |
| ppdcOption *o; // Current option |
| |
| |
| for (o = (ppdcOption *)options->first(); o; o = (ppdcOption *)options->next()) |
| if (!_cups_strcasecmp(n, o->name->value)) |
| return (o); |
| |
| return (0); |
| } |