Following patch renames Apache::PerlSection to Apache::PerlSections to
fix the existing ambiguity between singular and plural PerlSection(s)

Index: STATUS
===================================================================
RCS file: /home/cvs/modperl-2.0/STATUS,v
retrieving revision 1.67
diff -u -I$Id: -r1.67 STATUS
--- STATUS      9 Oct 2003 05:34:02 -0000       1.67
+++ STATUS      17 Oct 2003 18:53:24 -0000
@@ -90,14 +90,6 @@
 Needs Patch or Further Investigation:
 -------------------------------------
 
-* <Perl> section package name:
-  Looks like the package name is Apache::PerlSection, but inside of it
-  we have Apache::PerlSections. And the docs manpage is
-  Apache/PerlSections.pod (notices the trailing 's'), so it doesn't get
-  its pod glued to Apache/PerlSection.pm on install. Inside the
-  package there are variables whose name is PerlSections. Need to
-  decide on one and stick to it.
-
 * <Perl> sections:
   A few issues with <Perl> sections:
   http://marc.theaimsgroup.com/?l=apache-modperl-dev&m=106074969831522&w=2
Index: lib/Apache/PerlSection.pm
===================================================================
RCS file: lib/Apache/PerlSection.pm
diff -N lib/Apache/PerlSection.pm
--- lib/Apache/PerlSection.pm   20 May 2003 01:20:09 -0000      1.4
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,176 +0,0 @@
-package Apache::PerlSection;
-
-use strict;
-use warnings FATAL => 'all';
-
-our $VERSION = '0.01';
-
-use Apache::CmdParms ();
-use Apache::Directive ();
-use APR::Table ();
-use Apache::Server ();
-use Apache::ServerUtil ();
-use Apache::Const -compile => qw(OK);
-
-use constant SPECIAL_NAME => 'PerlConfig';
-
-sub new {
-    my($package, @args) = @_;
-    return bless { @args }, ref($package) || $package;
-}
-
-sub server     { return shift->{'parms'}->server() }
-sub directives { return shift->{'directives'} ||= [] }
-sub package    { return shift->{'args'}->{'package'} }
-
-sub handler : method {
-    my($self, $parms, $args) = @_;
-
-    unless (ref $self) {
-        $self = $self->new('parms' => $parms, 'args' => $args);
-    }
-
-    my $special = $self->SPECIAL_NAME;
-
-    for my $entry ($self->symdump()) {
-        if ($entry->[0] !~ /$special/) {
-            $self->dump(@$entry);
-        }
-    }
-
-    {
-        no strict 'refs';
-        my $package = $self->package;
-
-        $self->dump_special(${"${package}::$special"},
-          @{"${package}::$special"} );
-    }
-
-    $self->post_config();
-
-    Apache::OK;
-}
-
-sub symdump {
-    my($self) = @_;
-
-    my $pack = $self->package;
-
-    unless ($self->{symbols}) {
-        $self->{symbols} = [];
-
-        no strict;
-
-        #XXX: Shamelessly borrowed from Devel::Symdump;
-        while (my ($key, $val) = each(%{ *{"$pack\::"} })) {
-            local (*ENTRY) = $val;
-            if (defined $val && defined *ENTRY{SCALAR}) {
-                push @{$self->{symbols}}, [$key, $ENTRY];
-            }
-            if (defined $val && defined *ENTRY{ARRAY}) {
-                push @{$self->{symbols}}, [$key, [EMAIL PROTECTED];
-            }
-            if (defined $val && defined *ENTRY{HASH} && $key !~ /::/) {
-                push @{$self->{symbols}}, [$key, \%ENTRY];
-            }
-        }
-    }
-
-    return @{$self->{symbols}};
-}
-
-sub dump_special {
-    my($self, @data) = @_;
-    $self->add_config(@data);
-}
-
-sub dump {
-    my($self, $name, $entry) = @_;
-    my $type = ref $entry;
-
-    if ($type eq 'ARRAY') {
-        $self->dump_array($name, $entry);
-    }
-    elsif ($type eq 'HASH') {
-        $self->dump_hash($name, $entry);
-    }
-    else {
-        $self->dump_entry($name, $entry);
-    }
-}
-
-sub dump_hash {
-    my($self, $name, $hash) = @_;
-
-    for my $entry (sort keys %{ $hash || {} }) {
-        my $item = $hash->{$entry};
-        my $type = ref($item);
-
-        if ($type eq 'HASH') {
-            $self->dump_section($name, $entry, $item);
-        }
-        elsif ($type eq 'ARRAY') {
-            for my $e (@$item) {
-                $self->dump_section($name, $entry, $e);
-            }
-        }
-    }
-}
-
-sub dump_section {
-    my($self, $name, $loc, $hash) = @_;
-
-    $self->add_config("<$name $loc>\n");
-
-    for my $entry (sort keys %{ $hash || {} }) {
-        $self->dump_entry($entry, $hash->{$entry});
-    }
-
-    $self->add_config("</$name>\n");
-}
-
-sub dump_array {
-    my($self, $name, $entries) = @_;
-
-    for my $entry (@$entries) {
-        $self->dump_entry($name, $entry);
-    }
-}
-
-sub dump_entry {
-    my($self, $name, $entry) = @_;
-    my $type = ref $entry;
-
-    if ($type eq 'SCALAR') {
-        $self->add_config("$name $$entry\n");
-    }
-    elsif ($type eq 'ARRAY') {
-        $self->add_config("$name @$entry\n");
-    }
-    elsif ($type eq 'HASH') {
-        $self->dump_hash($name, $entry);
-    }
-    elsif ($type) {
-        #XXX: Could do $type->can('httpd_config') here on objects ???
-        die "Unknown type '$type' for directive $name";
-    }
-    elsif (defined $entry) {
-        $self->add_config("$name $entry\n");
-    }
-}
-
-sub add_config {
-    my($self, $config) = @_;
-    return unless defined $config;
-    chomp($config);
-    push @{ $self->directives }, $config;
-}
-
-sub post_config {
-    my($self) = @_;
-    my $errmsg = $self->server->add_config($self->directives);
-    die $errmsg if $errmsg;
-}
-
-1;
-__END__
Index: lib/Apache/PerlSections.pm
===================================================================
RCS file: lib/Apache/PerlSections.pm
diff -N lib/Apache/PerlSections.pm
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ lib/Apache/PerlSections.pm  17 Oct 2003 18:53:24 -0000
@@ -0,0 +1,176 @@
+package Apache::PerlSections;
+
+use strict;
+use warnings FATAL => 'all';
+
+our $VERSION = '0.01';
+
+use Apache::CmdParms ();
+use Apache::Directive ();
+use APR::Table ();
+use Apache::Server ();
+use Apache::ServerUtil ();
+use Apache::Const -compile => qw(OK);
+
+use constant SPECIAL_NAME => 'PerlConfig';
+
+sub new {
+    my($package, @args) = @_;
+    return bless { @args }, ref($package) || $package;
+}
+
+sub server     { return shift->{'parms'}->server() }
+sub directives { return shift->{'directives'} ||= [] }
+sub package    { return shift->{'args'}->{'package'} }
+
+sub handler : method {
+    my($self, $parms, $args) = @_;
+
+    unless (ref $self) {
+        $self = $self->new('parms' => $parms, 'args' => $args);
+    }
+
+    my $special = $self->SPECIAL_NAME;
+
+    for my $entry ($self->symdump()) {
+        if ($entry->[0] !~ /$special/) {
+            $self->dump(@$entry);
+        }
+    }
+
+    {
+        no strict 'refs';
+        my $package = $self->package;
+
+        $self->dump_special(${"${package}::$special"},
+          @{"${package}::$special"} );
+    }
+
+    $self->post_config();
+
+    Apache::OK;
+}
+
+sub symdump {
+    my($self) = @_;
+
+    my $pack = $self->package;
+
+    unless ($self->{symbols}) {
+        $self->{symbols} = [];
+
+        no strict;
+
+        #XXX: Shamelessly borrowed from Devel::Symdump;
+        while (my ($key, $val) = each(%{ *{"$pack\::"} })) {
+            local (*ENTRY) = $val;
+            if (defined $val && defined *ENTRY{SCALAR}) {
+                push @{$self->{symbols}}, [$key, $ENTRY];
+            }
+            if (defined $val && defined *ENTRY{ARRAY}) {
+                push @{$self->{symbols}}, [$key, [EMAIL PROTECTED];
+            }
+            if (defined $val && defined *ENTRY{HASH} && $key !~ /::/) {
+                push @{$self->{symbols}}, [$key, \%ENTRY];
+            }
+        }
+    }
+
+    return @{$self->{symbols}};
+}
+
+sub dump_special {
+    my($self, @data) = @_;
+    $self->add_config(@data);
+}
+
+sub dump {
+    my($self, $name, $entry) = @_;
+    my $type = ref $entry;
+
+    if ($type eq 'ARRAY') {
+        $self->dump_array($name, $entry);
+    }
+    elsif ($type eq 'HASH') {
+        $self->dump_hash($name, $entry);
+    }
+    else {
+        $self->dump_entry($name, $entry);
+    }
+}
+
+sub dump_hash {
+    my($self, $name, $hash) = @_;
+
+    for my $entry (sort keys %{ $hash || {} }) {
+        my $item = $hash->{$entry};
+        my $type = ref($item);
+
+        if ($type eq 'HASH') {
+            $self->dump_section($name, $entry, $item);
+        }
+        elsif ($type eq 'ARRAY') {
+            for my $e (@$item) {
+                $self->dump_section($name, $entry, $e);
+            }
+        }
+    }
+}
+
+sub dump_section {
+    my($self, $name, $loc, $hash) = @_;
+
+    $self->add_config("<$name $loc>\n");
+
+    for my $entry (sort keys %{ $hash || {} }) {
+        $self->dump_entry($entry, $hash->{$entry});
+    }
+
+    $self->add_config("</$name>\n");
+}
+
+sub dump_array {
+    my($self, $name, $entries) = @_;
+
+    for my $entry (@$entries) {
+        $self->dump_entry($name, $entry);
+    }
+}
+
+sub dump_entry {
+    my($self, $name, $entry) = @_;
+    my $type = ref $entry;
+
+    if ($type eq 'SCALAR') {
+        $self->add_config("$name $$entry\n");
+    }
+    elsif ($type eq 'ARRAY') {
+        $self->add_config("$name @$entry\n");
+    }
+    elsif ($type eq 'HASH') {
+        $self->dump_hash($name, $entry);
+    }
+    elsif ($type) {
+        #XXX: Could do $type->can('httpd_config') here on objects ???
+        die "Unknown type '$type' for directive $name";
+    }
+    elsif (defined $entry) {
+        $self->add_config("$name $entry\n");
+    }
+}
+
+sub add_config {
+    my($self, $config) = @_;
+    return unless defined $config;
+    chomp($config);
+    push @{ $self->directives }, $config;
+}
+
+sub post_config {
+    my($self) = @_;
+    my $errmsg = $self->server->add_config($self->directives);
+    die $errmsg if $errmsg;
+}
+
+1;
+__END__
Index: src/modules/perl/modperl_cmd.c
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_cmd.c,v
retrieving revision 1.48
diff -u -I$Id: -r1.48 modperl_cmd.c
--- src/modules/perl/modperl_cmd.c      16 Sep 2003 01:57:27 -0000      1.48
+++ src/modules/perl/modperl_cmd.c      17 Oct 2003 18:53:24 -0000
@@ -345,7 +345,7 @@
     return NULL;
 }
 
-#define MP_DEFAULT_PERLSECTION_HANDLER "Apache::PerlSection"
+#define MP_DEFAULT_PERLSECTION_HANDLER "Apache::PerlSections"
 #define MP_DEFAULT_PERLSECTION_PACKAGE "Apache::ReadConfig"
 #define MP_STRICT_PERLSECTIONS_SV \
     get_sv("Apache::Server::StrictPerlSections", FALSE)

-- 
--------------------------------------------------------------------------------
Philippe M. Chiasson /gozer\@(cpan|ectoplasm)\.org/ 88C3A5A5 (122FF51B/C634E37B)
http://gozer.ectoplasm.org/    F9BF E0C2 480E 7680 1AE5 3631 CB32 A107 88C3 A5A5
Q: It is impossible to make anything foolproof because fools are so ingenious.
perl -e'$$=\${gozer};{$_=unpack(P7,pack(L,$$));/^JAm_pH\n$/&&print||$$++&&redo}'

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to