diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2017-12-13 09:42:08 +0200 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2017-12-13 09:44:59 +0200 |
commit | 8bc0f681b3f416f3c3dcbcad6ba2010cbd77f4c6 (patch) | |
tree | 08eb462ff4dd0925f0cfd07467b35b244d1d1639 /lib/Apache | |
parent | 9c45310caac8c962d99a316a722d42874385a823 (diff) | |
download | acpp-8bc0f681b3f416f3c3dcbcad6ba2010cbd77f4c6.tar.gz acpp-8bc0f681b3f416f3c3dcbcad6ba2010cbd77f4c6.tar.bz2 |
Bugfixes
* lib/Apache/Config/Preproc/include.pm (new): Select included file
table implementation basing on the OS name.
Fix copy-paste error in NAME section.
* lib/Apache/Config/Preproc/ifdefine.pm: Fix copy-paste error in
NAME section.
* lib/Apache/Config/Preproc.pm: Raise version number.
* Changes: New release.
Diffstat (limited to 'lib/Apache')
-rw-r--r-- | lib/Apache/Config/Preproc.pm | 2 | ||||
-rw-r--r-- | lib/Apache/Config/Preproc/ifdefine.pm | 2 | ||||
-rw-r--r-- | lib/Apache/Config/Preproc/include.pm | 21 |
3 files changed, 22 insertions, 3 deletions
diff --git a/lib/Apache/Config/Preproc.pm b/lib/Apache/Config/Preproc.pm index 10bf4a3..03d2c9a 100644 --- a/lib/Apache/Config/Preproc.pm +++ b/lib/Apache/Config/Preproc.pm @@ -4,7 +4,7 @@ use strict; use warnings; use Carp; -our $VERSION = '1.0'; +our $VERSION = '1.01'; sub new { my $class = shift; diff --git a/lib/Apache/Config/Preproc/ifdefine.pm b/lib/Apache/Config/Preproc/ifdefine.pm index 834d602..5bf3a3f 100644 --- a/lib/Apache/Config/Preproc/ifdefine.pm +++ b/lib/Apache/Config/Preproc/ifdefine.pm @@ -115,7 +115,7 @@ __END__ =head1 NAME -Apache::Config::Preproc::ifmodule - expand IfDefine sections +Apache::Config::Preproc::ifdefine - expand IfDefine sections =head1 SYNOPSIS diff --git a/lib/Apache/Config/Preproc/include.pm b/lib/Apache/Config/Preproc/include.pm index 32b753d..f7c851c 100644 --- a/lib/Apache/Config/Preproc/include.pm +++ b/lib/Apache/Config/Preproc/include.pm @@ -4,6 +4,7 @@ use warnings; use Apache::Admin::Config; use Apache::Config::Preproc; use File::Spec; +use Cwd 'abs_path'; use Carp; sub new { @@ -13,6 +14,9 @@ sub new { local %_ = @_; $self->{server_root} = delete $_{server_root}; croak "unrecognized arguments" if keys(%_); + $self->{check_included} = $^O eq 'MSWin32' + ? \&_check_included_path + : \&_check_included_stat; return $self; } @@ -65,19 +69,34 @@ sub expand { sub check_included { my ($self, $file) = @_; + return $self->${ \ $self->{check_included} }($file); +} + +# Default included file table for unix-like OSes +sub _check_included_stat { + my ($self, $file) = @_; my ($dev,$ino) = stat($file) or return 0; return 1 if $self->{included}{$dev}{$ino}; $self->{included}{$dev}{$ino} = 1; return 0; } +# Path-bases file table, for defective OSes (MSWin32) +sub _check_included_path { + my ($self, $file) = @_; + my $path = abs_path($file); + return 1 if $self->{included}{$path}; + $self->{included}{$path} = 1; + return 0; +} + 1; __END__ =head1 NAME -Apache::Config::Preproc::ifmodule - expand Include statements +Apache::Config::Preproc::include - expand Include statements =head1 SYNOPSIS |