From e82a35e2244b715644001955516b23248a5d9e6f Mon Sep 17 00:00:00 2001 From: short <> Date: Sat, 4 Oct 2003 11:43:52 +0000 Subject: [PATCH] Fixed Id tracking. --- Web.pm | 58 ++++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 38 insertions(+), 20 deletions(-) diff --git a/Web.pm b/Web.pm index 4b8d6cb..ddd1f98 100644 --- a/Web.pm +++ b/Web.pm @@ -24,10 +24,43 @@ use strict; use warnings; use Exporter; -our @EXPORT=qw(&require &a_href &a_href_cz &vskip &img $W &top_dir); +sub Wrequire ($); +sub Wuse ($@); +our $W; +our @EXPORT=qw(&Wrequire &Wuse &a_href &a_href_cz &vskip &img $W &top_dir); our @ISA=qw(Exporter); -use WebConfig; # for %WebConfig +BEGIN +{ + sub Wrequire ($) + { + my($file)=@_; + +# print STDERR "Wrequire $file\n"; + $file=~s#/#::#g; + $file=~s/[.]pm$//; + my $class=$file; + $file=~s#::#/#g; + $file.=".pm"; + my $aref=($W->{"packages_used"}{$Apache::Registry::curstash}||=[]); + push @$aref,$class + if !{ map(($_=>1),@$aref) }->{$class}; # Prevent duplicated entries. + CORE::require $file; + 1; # Otherwise 'require' would already file above. + } + + sub Wuse ($@) + { + my($file,@list)=@_; + +# print STDERR "Wuse $file\n"; + Wrequire $file; + $file->import(@list); + 1; + } +} + +BEGIN { Wuse 'WebConfig'; } # for %WebConfig require CGI; # for &escapeHTML require Image::Size; # for &imgsize use File::Basename; # &basename @@ -44,7 +77,7 @@ delete $ENV{"PERLLIB"}; delete $ENV{"LD_LIBRARY_PATH"}; -our $W; +#our $W; # $W->{"title"} # $W->{"head"} # $W->{"head_css"} @@ -61,7 +94,9 @@ sub init ($%) { my($class,%args)=@_; + my $packages_used_save=$W->{"packages_used"}; $W={ %WebConfig,%args }; # override %WebConfig settings + $W->{"packages_used"}=$packages_used_save; $W->{"__PACKAGE__"}||="Apache::ROOT".$Apache::Registry::curstash; @@ -134,22 +169,6 @@ sub top_dir () return $INC[0]; # fallback } -sub require ($) -{ -my($file)=@_; - - $file=~s#/#::#g; - $file=~s/[.]pm$//; - my $class=$file; - $file=~s#::#/#g; - $file.=".pm"; - my $aref=($W->{"packages_used"}{$Apache::Registry::curstash}||=[]); - push @$aref,$class - if !{ map(($_=>1),@$aref) }->{$class}; # Prevent duplicated entries. - CORE::require $file; - 1; # Otherwise 'require' would already file above. -} - sub fatal (;$); sub args_check (%) @@ -243,7 +262,6 @@ sub footer (;$) } ( $W->{"__PACKAGE__"}, __PACKAGE__, - "WebConfig", @{$W->{"packages_used"}{$Apache::Registry::curstash}}, ))); print "

\n"; -- 1.8.3.1