diff options
author | elliott_c <ocielliottc@users.noreply.github.com> | 2003-06-10 17:54:16 +0000 |
---|---|---|
committer | elliott_c <ocielliottc@users.noreply.github.com> | 2003-06-10 17:54:16 +0000 |
commit | ebcec164c1c074a4db8c6087d0358c06eb678ad9 (patch) | |
tree | 03acc84b875b0676ce9f0a009d29fb6787d5fde8 | |
parent | 065abe4ee96054e270825c8f534f7ba39a32d949 (diff) | |
download | MPC-ebcec164c1c074a4db8c6087d0358c06eb678ad9.tar.gz |
ChangeLogTag: Tue Jun 10 12:50:16 2003 Chad Elliott <elliott_c@ociweb.com>
-rw-r--r-- | modules/ProjectCreator.pm | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/modules/ProjectCreator.pm b/modules/ProjectCreator.pm index e3f9a5b1..c2c7697f 100644 --- a/modules/ProjectCreator.pm +++ b/modules/ProjectCreator.pm @@ -159,6 +159,7 @@ sub new { $self->{'pctype'} = $self->extractType("$self"); $self->{'defaulted'} = {}; $self->{'custom_types'} = {}; + $self->{'parents_read'} = {}; $self->{'feature_parser'} = new FeatureParser($gfeature, $feature); $self->{'convert_slashes'} = $self->convert_slashes(); $self->{'sort_files'} = $self->sort_files(); @@ -253,6 +254,7 @@ sub parse_line { $self->{'special_supplied'} = {}; $self->{'type_specific_assign'} = {}; $self->{'flag_overrides'} = {}; + $self->{'parents_read'} = {}; $self->reset_generating_types(); } } @@ -307,13 +309,16 @@ sub parse_line { } if ($status) { - ## Begin reading the parent - push(@{$self->{'reading_parent'}}, $file); - $status = $self->parse_file($file); - pop(@{$self->{'reading_parent'}}); - - if (!$status) { - $errorString = "ERROR: Invalid parent: $parent"; + if (!defined $self->{'parents_read'}->{$file}) { + $self->{'parents_read'}->{$file} = 1; + ## Begin reading the parent + push(@{$self->{'reading_parent'}}, $file); + $status = $self->parse_file($file); + pop(@{$self->{'reading_parent'}}); + + if (!$status) { + $errorString = "ERROR: Invalid parent: $parent"; + } } } } |