Geoffrey Young wrote:
>>   > this patch seems to have stalled:
>>
>>   > http://marc2.theaimsgroup.com/?l=apache-modperl-dev&m=114021879222434&w=2
>>
>>   > can you give it a whirl and see if it fixes things?
>>
>> Thanks!
>>
>> It doesn't fix the bug I reported.
>>
>> But it brings me closer to a workaround. It allows me to write the
>> pretty weird looking config file:
>>
>>    <Perl>
>>    @PerlConfig = split /\n/, <<EOC;
>>      Alias /ping/ /tmp/ping/
>>      <IfModule mod_asis.c>
>>      </IfModule>
>>    EOC
>>    </Perl>
>>
>> Before the patch I had no success with @PerlConfig, so apparently
>> Frank's patch fixes @PerlConfig.
>>
>> For the bug I am reporting, there's something missing to split config
>> lines into single directives.
> 
> ok, thanks for trying :)
> 
> I'm including gozer here, since he is the main PerlConfig guy - I
> wouldn't want to step on his toes trying to implement a fix for this
> issue.  but it we harp on him he will probably have an answer in a
> matter of seconds ;)

Slightly longer than a few seconds, but here is a patch that will probably
fix this issue as well as the the one linked to.

> separately, we're going to need to ping you for apml maint, um, now :)

Hu? What's that about ?

--------------------------------------------------------------------------------
Philippe M. Chiasson m/gozer\@(apache|cpan|ectoplasm)\.org/ GPG KeyID : 88C3A5A5
http://gozer.ectoplasm.org/     F9BF E0C2 480E 7680 1AE5 3631 CB32 A107 88C3A5A5
Index: t/conf/extra.last.conf.in
===================================================================
--- t/conf/extra.last.conf.in	(revision 420603)
+++ t/conf/extra.last.conf.in	(working copy)
@@ -111,3 +111,23 @@
    Perl 1
 </VirtualHost>
 </IfDefine>
+
+#Single-line $PerlConfig
+<Perl>
+  $PerlConfig = "Alias /perl_sections_perlconfig_scalar @DocumentRoot@";
+</Perl>
+
+#Multi-line $PerlConfig
+<Perl>
+  $PerlConfig = "Alias /perl_sections_perlconfig_scalar1 @DocumentRoot@
+                 Alias /perl_sections_perlconfig_scalar2 @DocumentRoot@
+                ";
+</Perl>
+
[EMAIL PROTECTED]
+<Perl>
+  @PerlConfig = ("Alias /perl_sections_perlconfig_array1 @DocumentRoot@",
+                 "Alias /perl_sections_perlconfig_array2 @DocumentRoot@",
+                );
+</Perl>
+
Index: t/response/TestDirective/perldo.pm
===================================================================
--- t/response/TestDirective/perldo.pm	(revision 420603)
+++ t/response/TestDirective/perldo.pm	(working copy)
@@ -4,6 +4,7 @@
 use warnings FATAL => 'all';
 
 use Apache::Test;
+use Apache::TestRequest;
 use Apache::TestUtil;
 use Apache2::Const -compile => 'OK';
 use Apache2::PerlSections;
@@ -11,7 +12,7 @@
 sub handler {
     my $r = shift;
 
-    plan $r, tests => 17;
+    plan $r, tests => 22;
 
     ok t_cmp('yes', $TestDirective::perl::worked);
 
@@ -58,6 +59,16 @@
     my $vport = $TestDirective::perl::vhost_server->port;
     ok defined $bport && defined $vport && $vport != $bport;
     
+    foreach my $url (qw(scalar scalar1 scalar2)) {
+        my $res = GET "/perl_sections_perlconfig_$url/";
+        ok t_cmp($res->is_success, 1, '$PerlConfig');
+    }
+    
+    foreach my $url (qw(array1 array2)) {
+        my $res = GET "/perl_sections_perlconfig_$url/";
+        ok t_cmp($res->is_success, 1, '@PerlConfig');
+    }
+    
     Apache2::Const::OK;
 }
 
Index: lib/Apache2/PerlSections.pm
===================================================================
--- lib/Apache2/PerlSections.pm	(revision 420603)
+++ lib/Apache2/PerlSections.pm	(working copy)
@@ -65,8 +65,11 @@
     {
         no strict 'refs';
         foreach my $package ($self->package) {
-            $self->dump_special(${"${package}::$special"},
-              @{"${package}::$special"} );
+            my @config = map { split /\n/ } 
+                            grep { defined } 
+                                (@{"${package}::$special"}, 
+                                 ${"${package}::$special"});
+            $self->dump_special(@config);
         }
     }
 
@@ -193,10 +196,12 @@
 }
 
 sub add_config {
-    my ($self, $config) = @_;
-    return unless defined $config;
-    chomp($config);
-    push @{ $self->directives }, $config;
+    my ($self, @config) = @_;
+    foreach my $config (@config) {
+        return unless defined $config;
+        chomp($config);
+        push @{ $self->directives }, $config;
+    }
 }
 
 sub post_config {

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to