dougm 01/04/02 17:27:02 Modified: Apache-Test/lib/Apache TestConfig.pm TestConfigPerl.pm Log: shift certain .pm __DATA__ config directives outside its container, e.g. Alias allow containers inside .pm __DATA__ config Revision Changes Path 1.4 +1 -1 modperl-2.0/Apache-Test/lib/Apache/TestConfig.pm Index: TestConfig.pm =================================================================== RCS file: /home/cvs/modperl-2.0/Apache-Test/lib/Apache/TestConfig.pm,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- TestConfig.pm 2001/04/02 20:07:38 1.3 +++ TestConfig.pm 2001/04/03 00:26:58 1.4 @@ -221,7 +221,7 @@ } else { $args = "$directive " . - (ref($arg) && (ref($arg) eq 'ARRAY') ? "@$arg" : $arg); + (ref($arg) && (ref($arg) eq 'ARRAY') ? "@$arg" : $arg || ""); } push @{ $self->{$where} }, $args; 1.4 +20 -1 modperl-2.0/Apache-Test/lib/Apache/TestConfigPerl.pm Index: TestConfigPerl.pm =================================================================== RCS file: /home/cvs/modperl-2.0/Apache-Test/lib/Apache/TestConfigPerl.pm,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- TestConfigPerl.pm 2001/04/02 23:45:55 1.3 +++ TestConfigPerl.pm 2001/04/03 00:26:58 1.4 @@ -158,6 +158,10 @@ $port; } +my %outside_container = map { $_, 1 } qw{ +Alias AliasMatch AddType +}; + #test .pm's can have configuration after the __DATA__ token sub add_module_config { my($self, $module, $args) = @_; @@ -170,7 +174,22 @@ while (<$fh>) { next unless /\S+/; $self->replace; - push @$args, split /\s+/, $_, 2; + my($directive, $rest) = split /\s+/, $_, 2; + if ($outside_container{$directive}) { + $self->postamble($directive => $rest); + } + elsif ($directive =~ m/^<(\w+)/) { + $self->postamble($directive => $rest); + my $end = "</$1>"; + while (<$fh>) { + $self->replace; + $self->postamble($_); + last if m:^\Q$end:; + } + } + else { + push @$args, $directive, $rest; + } } }