mirror of https://gitee.com/openkylin/cups.git
87 lines
1.5 KiB
C++
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);
|
|
}
|