]> git.ipfire.org Git - thirdparty/cups.git/blobdiff - ppdc/ppdc-group.cxx
Merge changes from CUPS 1.7svn-r10643
[thirdparty/cups.git] / ppdc / ppdc-group.cxx
index 6f63cdffbbe2dc43a21e689d1cf0abe56ecdfe8a..cc0ab280a455e5ca0aa18baf877d30e07e05ddba 100644 (file)
@@ -3,7 +3,7 @@
 //
 //   Group class for the CUPS PPD Compiler.
 //
-//   Copyright 2007-2008 by Apple Inc.
+//   Copyright 2007-2011 by Apple Inc.
 //   Copyright 2002-2005 by Easy Software Products.
 //
 //   These coded instructions, statements, and computer programs are the
@@ -14,7 +14,6 @@
 //
 // Contents:
 //
-//   ppdcGroup::ppdcGroup()   - Create a new group.
 //   ppdcGroup::ppdcGroup()   - Copy a new group.
 //   ppdcGroup::~ppdcGroup()  - Destroy a group.
 //   ppdcGroup::find_option() - Find an option in a group.
@@ -24,7 +23,7 @@
 // Include necessary headers...
 //
 
-#include "ppdc.h"
+#include "ppdc-private.h"
 
 
 //
@@ -34,6 +33,8 @@
 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();
@@ -46,8 +47,7 @@ ppdcGroup::ppdcGroup(const char *n,   // I - Name of group
 
 ppdcGroup::ppdcGroup(ppdcGroup *g)     // I - Group template
 {
-  ppdcOption   *o;                     // Current option
-
+  PPDC_NEWVAL(g->name->value);
 
   g->name->retain();
   g->text->retain();
@@ -56,7 +56,9 @@ ppdcGroup::ppdcGroup(ppdcGroup *g)    // I - Group template
   text = g->text;
 
   options = new ppdcArray();
-  for (o = (ppdcOption *)g->options->first(); o; o = (ppdcOption *)g->options->next())
+  for (ppdcOption *o = (ppdcOption *)g->options->first();
+       o;
+       o = (ppdcOption *)g->options->next())
     options->add(new ppdcOption(o));
 }
 
@@ -67,9 +69,14 @@ ppdcGroup::ppdcGroup(ppdcGroup *g)   // I - Group template
 
 ppdcGroup::~ppdcGroup()
 {
+  PPDC_DELETEVAL(name ? name->value : NULL);
+
   name->release();
   text->release();
   options->release();
+
+  name = text = 0;
+  options = 0;
 }
 
 
@@ -84,7 +91,7 @@ ppdcGroup::find_option(const char *n) // I - Name of option
 
 
   for (o = (ppdcOption *)options->first(); o; o = (ppdcOption *)options->next())
-    if (!strcasecmp(n, o->name->value))
+    if (!_cups_strcasecmp(n, o->name->value))
       return (o);
 
   return (0);