Fixed Id tracking.
authorshort <>
Sat, 4 Oct 2003 11:43:52 +0000 (11:43 +0000)
committershort <>
Sat, 4 Oct 2003 11:43:52 +0000 (11:43 +0000)
Web.pm

diff --git a/Web.pm b/Web.pm
index 4b8d6cb..ddd1f98 100644 (file)
--- 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 "</p>\n";