cups/ppdc/ppdc-group.cxx

87 lines
1.5 KiB
C++

//
// 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);
}