richter     01/03/27 03:52:41

  Modified:    .        Tag: Embperl2c Embperl.pm Embperl.pod Embperl.xs
                        EmbperlD.pod EmbperlObject.pm Faq.pod INSTALL.pod
                        Makefile.PL embpcgi.bat.templ embpcgi.pl.templ
                        embpcgi.test.pl.templ embperl.h embpexec.bat.templ
                        embpexec.pl.templ epchar.c epcmd.c epdat.h epdbg.c
                        epeval.c epio.c epmain.c epnames.h test.pl
               Embperl  Tag: Embperl2c Mail.pm Module.pm
               test/cmp Tag: Embperl2c escape.htm opmask.htm
               test/html Tag: Embperl2c escape.htm
               test/html/opmask Tag: Embperl2c opmask.htm
  Log:
  Embperl 2 - source sync with 1.3.2
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.118.4.26 +182 -136  embperl/Embperl.pm
  
  Index: Embperl.pm
  ===================================================================
  RCS file: /home/cvs/embperl/Embperl.pm,v
  retrieving revision 1.118.4.25
  retrieving revision 1.118.4.26
  diff -u -r1.118.4.25 -r1.118.4.26
  --- Embperl.pm        2001/03/07 14:23:39     1.118.4.25
  +++ Embperl.pm        2001/03/27 11:51:56     1.118.4.26
  @@ -1,7 +1,7 @@
   
   ###################################################################################
   #
  -#   Embperl - Copyright (c) 1997-2000 Gerald Richter / ECOS
  +#   Embperl - Copyright (c) 1997-2001 Gerald Richter / ECOS
   #
   #   You may distribute under the terms of either the GNU General Public
   #   License or the Artistic License, as specified in the Perl README file.
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: Embperl.pm,v 1.118.4.25 2001/03/07 14:23:39 richter Exp $
  +#   $Id: Embperl.pm,v 1.118.4.26 2001/03/27 11:51:56 richter Exp $
   #
   ###################################################################################
   
  @@ -86,9 +86,9 @@
   
   
   ##ep2##
  -$VERSION = '2.0b1' ;
  +$VERSION = '2.0b2_dev' ;
   ##/ep2##
  -##ep1##$VERSION = '1.3.0';
  +##ep1##$VERSION = '1.3.2';
   
   # HTML::Embperl cannot be bootstrapped in nonlazy mode except
   # under mod_perl, because its dependencies import symbols like ap_palloc
  @@ -466,8 +466,6 @@
       
       $NameSpace{$sName} = $cp ;
   
  -    $cp -> share ('&_evalsub_', '&_eval_') ;
  -
       return $cp ;
       }
   
  @@ -565,9 +563,10 @@
   sub CheckFile
   
       {
  -    my ($filename, $req_rec, $AllowZeroFilesize, $allow, $pathref, $debug) = @_ ;
  +    my ($filename, $req_rec, $AllowZeroFilesize, $allow, $pathref, $pathndxref, 
$debug) = @_ ;
   
       my $path = $$pathref ;
  +    my $pathndx = $$pathndxref ;
   
       if (-d $filename)
           {
  @@ -593,14 +592,16 @@
           if ($filename =~ m{^(\.\./|\.\.\\)+?.*?(/|\\)*?(.*?)$}) 
               {
               $filename = $3 ;
  -            $skip = length ($1) / 3 ;
  +            $skip = length ($1) / 3  ;
               }
  +        my $pathskip = $skip ;
  +        $skip += $pathndx if ($skip) ;
           my @path = split /$pathsplit/o, $path ;
           shift @path while (!$path[0]) ;
           shift @path while ($skip--) ;
           my $fn = '' ;
           print LOG "[$$]Embperl path search Path: " . join (';',@path) . " Filename: 
$filename\n" if ($debug);
  -        $$pathref = join (';', @path) ;
  +        #$$pathref = join (';', @path) ;
   
           foreach (@path)
               {
  @@ -609,6 +610,7 @@
               print LOG "[$$]Embperl path search Check: $fn\n" if ($debug);
               if (-r $fn && (-s _ || $AllowZeroFilesize))
                   {
  +                $$pathndxref = $pathndx + $pathskip ;
                   if (defined ($allow) && !($fn =~ /$allow/))
                       {
                    logerror (rcNotAllowed, $fn, $req_rec);
  @@ -617,6 +619,7 @@
                   $_[0] = $fn ;
                   return ok ;
                   }
  +            $pathndx++  ;
               }
   
           -r $filename ;
  @@ -632,6 +635,7 @@
       }
   
   
  +
   
##########################################################################################
   
   sub ScanEnvironment
  @@ -759,6 +763,7 @@
       my $mtime ;
       my $OutData ;
       my $InData ;
  +    my $import     = exists ($req -> {'import'})?$req -> {'import'}:($$req{'isa'} 
|| $$req{'object'})?0:undef ;
   
       if (exists $$req{'input_func'})  
           {
  @@ -803,9 +808,10 @@
   
       $Out = \$OutData if (exists $$req{'output_func'}) ;
   
  -    my $Inputfile    = $$req{'inputfile'} || '?' ;
  +    my $Inputfile    = $$req{'inputfile'} || $$req{'isa'} || $$req{'object'} || '?' 
;
       my $Sub          = $$req{'sub'} || '' ;
       my $lastreq      = CurrReq () ;
  +    my $pathndx      = 0 ;
       
       if ($lastreq)
           {
  @@ -833,7 +839,7 @@
           #my ($k, $v) ;
           #while (($k, $v) = each (%$req))
           #    { warn "$k = $v" ; }
  -        if ($rc = CheckFile ($Inputfile, $req_rec, (($$req{options} || 0) & 
optAllowZeroFilesize), $$req{'allow'}, \$req -> {path}, (($$req{debug} || 0) & 
dbgObjectSearch))) 
  +        if ($rc = CheckFile ($Inputfile, $req_rec, (($$req{options} || 0) & 
optAllowZeroFilesize), $$req{'allow'}, \$req -> {path}, \$pathndx, (($$req{debug} || 
0) & dbgObjectSearch))) 
               {
            FreeConfData ($conf) ;
               return $rc ;
  @@ -847,167 +853,208 @@
           $mtime = 0 ;
        }
   
  +    #ep2#
       my $syntax = HTML::Embperl::Syntax::GetSyntax ($req -> {syntax} || 'Embperl') ;
  +    #ep2#
           
  +    my $package ;
       my $ar  ;
       $ar = Apache->request if (defined ($req_rec)) ; # workaround that 
Apache::Request has another C Interface, than Apache
       my $r = SetupRequest ($ar, $Inputfile, $mtime, $filesize, ($$req{firstline} || 
1), $Outputfile, $conf,
  -                          &epIOMod_Perl, $In, $Out, $Sub, exists 
($$req{import})?scalar(caller ($$req{import} > 0?$$req{import} - 1:0)):'',
  +                          &epIOMod_Perl, $In, $Out, $Sub,
  +                        defined ($import)?scalar(caller ($import > 0?$import - 
1:0)):'', 
                             $SessionMgnt, $syntax) ;
       
  -    bless $r, $$req{'bless'} if (exists ($$req{'bless'})) ;
  +    eval
  +        {
  +        if (exists ($$req{'bless'})) 
  +            {
  +            bless $r, $$req{'bless'} ;
  +            warn "\@ISA corrupted HTML::Embperl::Req must be a base class of 
$$req{'bless'}" if (!$r -> isa ('HTML::Embperl::Req')) ; 
  +            }
   
  -    $r -> Path ($req->{path}) if ($req->{path}) ;
   
  -    my $package = $r -> CurrPackage ;
  -    $evalpackage = $package ;   
  -    my $exports ;
  +        $r -> Path ($req->{path}) if ($req->{path}) ;
  +        $r -> PathNdx ($pathndx) ;
   
  -    $r -> CreateAliases () ;
  +        $package = $r -> CurrPackage ;
  +        $evalpackage = $package ;   
  +        my $exports ;
   
  -    if (exists ($$req{import}) && ($exports = $r -> ExportHash))
  -     {
  -        $r -> Export ($exports, caller ($$req{import} - 1)) if ($$req{import}) ;
  -     $rc = 0 ;
  -     }
  -    else
  -     {
  -     #local $^W = 0 ;
  -     @ffld = @{$$req{'ffld'}} if (defined ($$req{'ffld'})) ;
  -     if (defined ($$req{'fdat'})) 
  -         {
  -         %fdat = %{$$req{'fdat'}} ;
  -         @ffld = keys %fdat if (!defined ($$req{'ffld'})) ;
  +        $r -> CreateAliases () ;
  +
  +        if (defined ($import) && ($exports = $r -> ExportHash))
  +         {
  +            $r -> Export ($exports, caller ($import - 0)) if ($import) ;
  +         $rc = 0 ;
            }
  -     elsif (!($optDisableFormData) &&
  -            !($r -> SubReq) &&
  -            defined($ENV{'CONTENT_TYPE'}) &&
  -            $ENV{'CONTENT_TYPE'}=~m|^multipart/form-data|)
  -         { # just let CGI.pm read the multipart form data, see cgi docu
  -         #eval 'require CGI' ;
  -         #die "require CGI failed: $@" if ($@); 
  -         require CGI ;
  -
  -         my $cgi ;
  -         $cgi = new CGI  ;
  -         #eval { $cgi = new CGI } ;
  -         #$r -> logerror (rcCGIError, $@) if ($@) ;
  -             
  -         @ffld = $cgi->param;
  +        else
  +         {
  +         #local $^W = 0 ;
  +         @ffld = @{$$req{'ffld'}} if (defined ($$req{'ffld'})) ;
  +         if (defined ($$req{'fdat'})) 
  +             {
  +             %fdat = %{$$req{'fdat'}} ;
  +             @ffld = keys %fdat if (!defined ($$req{'ffld'})) ;
  +             }
  +         elsif (!($optDisableFormData) &&
  +                !($r -> SubReq) &&
  +                defined($ENV{'CONTENT_TYPE'}) &&
  +                $ENV{'CONTENT_TYPE'}=~m|^multipart/form-data|)
  +             { # just let CGI.pm read the multipart form data, see cgi docu
  +             #eval 'require CGI' ;
  +             #die "require CGI failed: $@" if ($@); 
  +             require CGI ;
  +
  +             my $cgi ;
  +             eval { $cgi = new CGI } ;
  +             if ($@ || !$cgi)
  +                    {
  +                    $r -> logerror (rcCGIError, $@)  ;
  +                    $@ = '' ;
  +                    }
  +                else
  +                    {
  +                 @ffld = $cgi->param;
       
  -         my $params ;
  -         foreach ( @ffld )
  -             {
  -             # the param_fetch needs CGI.pm 2.43
  -             #$params = $cgi->param_fetch( $_ ) ;
  -             $params = $cgi->{$_} ;
  -             if ($#$params > 0)
  -                 {
  -                 $fdat{ $_ } = join ("\t", @$params) ;
  -                 }
  -             else
  -                 {
  -                 $fdat{ $_ } = $params -> [0] ;
  -                 }
  -             
  -             ##print LOG "[$$]FORM: $_=" . (ref ($fdat{$_})?ref 
($fdat{$_}):$fdat{$_}) . "\n" if ($dbgForm) ; 
  -             print LOG "[$$]FORM: $_=$fdat{$_}\n" if ($dbgForm) ; 
  -
  -             if (ref($fdat{$_}) eq 'Fh') 
  -                 {
  -                 $fdat{"-$_"} = $cgi -> uploadInfo($fdat{$_}) ;
  +                 my $params ;
  +                 foreach ( @ffld )
  +                     {
  +                     # the param_fetch needs CGI.pm 2.43
  +                     #$params = $cgi->param_fetch( $_ ) ;
  +                     $params = $cgi->{$_} ;
  +                     if ($#$params > 0)
  +                         {
  +                         $fdat{ $_ } = join ("\t", @$params) ;
  +                         }
  +                     else
  +                         {
  +                         $fdat{ $_ } = $params -> [0] ;
  +                         }
  +                     
  +                     ##print LOG "[$$]FORM: $_=" . (ref ($fdat{$_})?ref 
($fdat{$_}):$fdat{$_}) . "\n" if ($dbgForm) ; 
  +                     print LOG "[$$]FORM: $_=$fdat{$_}\n" if ($dbgForm) ; 
  +
  +                     if (ref($fdat{$_}) eq 'Fh') 
  +                         {
  +                         $fdat{"-$_"} = $cgi -> uploadInfo($fdat{$_}) ;
  +                         }
  +                        }
                    }
  -             }
  +             }
   
  +         my $saved_param = undef;
  +         if ( ref $$req{'param'} eq 'ARRAY') {
  +             no strict 'refs';
  +             # pass parameters via @param
  +             $saved_param = \@{"$package\:\:param"} 
  +                 if defined @{"$package\:\:param"};
  +             *{"$package\:\:param"}   = $$req{'param'};
            }
   
  -     my $saved_param = undef;
  -     if ( ref $$req{'param'} eq 'ARRAY') {
  -         no strict 'refs';
  -         # pass parameters via @param
  -         $saved_param = \@{"$package\:\:param"} 
  -             if defined @{"$package\:\:param"};
  -         *{"$package\:\:param"}   = $$req{'param'};
  -     }
  -
   
  -        $r -> SetupSession ($req_rec, $Inputfile) ;
  +            $r -> SetupSession ($req_rec, $Inputfile) ;
   
  -         {
  -         local $SIG{__WARN__} = \&Warn ;
  -         local *0 = \$Inputfile;
  -         my $oldfh = select (OUT) if ($optRedirectStdout) ;
  -         my $saver = $r ;
  +             {
  +             local $SIG{__WARN__} = \&Warn ;
  +             local *0 = \$Inputfile;
  +             my $oldfh = select (OUT) if ($optRedirectStdout) ;
  +             my $saver = $r ;
           
   
  -         $@ = undef ;
  -            $rc = CleanCallExecuteReq ($r, $$req{'param'}) ;
  -         #$rc = $r -> ExecuteReq ($$req{'param'}) ;
  +             $@ = undef ;
  +                $rc = CleanCallExecuteReq ($r, $$req{'param'}) ;
  +             #$rc = $r -> ExecuteReq ($$req{'param'}) ;
           
  -         $r = $saver ;
  -         select ($oldfh) if ($optRedirectStdout) ;
  +             $r = $saver ;
  +             select ($oldfh) if ($optRedirectStdout) ;
           
  -         if (exists $$req{'output_func'}) 
  -             {
  -             my @p ;
  -                my $ofreq = $$req{'output_func'} ;
  -                if (ref $ofreq)
  -                    {
  -                    @p = (ref ($ofreq) eq 'ARRAY')?@$ofreq:($$ofreq) ;
  -                    }
  -                else
  -                    {
  -                    @p = split (/\s*\,\s*/, $ofreq) ;
  -                    }
  +             if (exists $$req{'output_func'}) 
  +                 {
  +                 my @p ;
  +                    my $ofreq = $$req{'output_func'} ;
  +                    if (ref $ofreq)
  +                        {
  +                        @p = (ref ($ofreq) eq 'ARRAY')?@$ofreq:($$ofreq) ;
  +                        }
  +                    else
  +                        {
  +                        @p = split (/\s*\,\s*/, $ofreq) ;
  +                        }
   
  -                my $OutFunc = shift @p ;
  -    no strict ;
  -             eval { &$OutFunc ($req_rec, $Out,@p) } ;
  -    use strict ;
  -             $r -> logerror (rcCallOutputFuncFailed, $@) if ($@) ;
  -             }
  -         }
  +                    my $OutFunc = shift @p ;
  +        no strict ;
  +                 eval { &$OutFunc ($req_rec, $Out,@p) } ;
  +        use strict ;
  +                 $r -> logerror (rcCallOutputFuncFailed, $@) if ($@) ;
  +                 }
  +             }
   
   
   
  -     if ( defined $saved_param ) {
  -         no strict 'refs';
  -         *{"$package\:\:param"} = $saved_param;
  -     }
  +         if ( defined $saved_param ) {
  +             no strict 'refs';
  +             *{"$package\:\:param"} = $saved_param;
  +         }
   
   
  -        $r -> CleanupSession ;
  +            $r -> CleanupSession ;
   
  -        $r -> Export ($exports, caller ($$req{import} - 1)) if ($$req{import} && 
($exports = $r -> ExportHash)) ;
  +            $r -> Export ($exports, caller ($import - 0)) if ($import && ($exports 
= $r -> ExportHash)) ;
   
  -     my $cleanup    = $$req{'cleanup'}    || ($optDisableVarCleanup?-1:0) ;
  +         my $cleanup    = $$req{'cleanup'}    || ($optDisableVarCleanup?-1:0) ;
   
  -     if ($cleanup == -1)
  -         { ; } 
  -     elsif ($cleanup == 0)
  -         {
  -         if ($#cleanups == -1) 
  -             {
  -             push @cleanups, 'dbgShowCleanup' if ($dbgShowCleanup) ;
  -             $req_rec -> register_cleanup(\&HTML::Embperl::cleanup) if (defined 
($req_rec)) ;
  -             }
  -         push @cleanups, $package ;
  +         if ($cleanup == -1)
  +             { ; } 
  +         elsif ($cleanup == 0)
  +             {
  +             if ($#cleanups == -1) 
  +                 {
  +                 push @cleanups, 'dbgShowCleanup' if ($dbgShowCleanup) ;
  +                 $req_rec -> register_cleanup(\&HTML::Embperl::cleanup) if (defined 
($req_rec)) ;
  +                 }
  +             push @cleanups, $package ;
           
  -         cleanup () if (!$r -> SubReq () && !$req_rec) ;
  -         }
  -     else
  -         {
  -         push @cleanups, 'dbgShowCleanup' if ($dbgShowCleanup) ;
  -         push @cleanups, $package ;
  -         cleanup () ;
  +             cleanup () if (!$r -> SubReq () && !$req_rec) ;
  +             }
  +         else
  +             {
  +             push @cleanups, 'dbgShowCleanup' if ($dbgShowCleanup) ;
  +             push @cleanups, $package ;
  +             cleanup () ;
  +             }
  +
  +         $rc = $r -> Error?500:0 ;
            }
   
  -     $rc = $r -> Error?500:0 ;
  -     }
  +        if ($req -> {'isa'})
  +            {
  +            no strict ;
  +            my $callerisa = \@{caller (1) . '::ISA'} ;
  +            push @$callerisa, $package  if (!grep ($_ eq $package, @$callerisa)) ;
  +            use strict ;
  +            }
   
  -    @{$req -> {errors}} = @{$r -> ErrArray()} if (ref ($req -> {errors}) eq 
'ARRAY')  ;
  +        @{$req -> {errors}} = @{$r -> ErrArray()} if (ref ($req -> {errors}) eq 
'ARRAY')  ;
  +        } ; # eval
  +    if ($@)
  +     {
  +     my $err = $@ ;
  +        #require Devel::Symdump ;
  +     #warn "[$$] " . scalar (localtime) .  Devel::Symdump -> isa_tree ;
  +     HTML::Embperl::Req::FreeRequest ($r) ; # try to Free the Request data ($r may 
not be an objectref!)
  +     die $err ;
  +     }
   
       $r -> FreeRequest () ;
  +
  +    if ($rc == 0 && $req -> {'object'})
  +        {
  +        my $object = {} ;
  +        bless $object, $package ;
  +        return $object ;
  +        }
  +
       
       return $rc ;
       }
  @@ -1801,8 +1848,7 @@
       if ($HTML::Embperl::SessionMgnt)
           {
           my $udat   = tied (%HTML::Embperl::udat) ;
  -        my $id     = $udat -> getid ;
  -        my $initialid     = $udat -> getinitialid ;
  +        my ($initialid, $id, $modified)  = $udat -> getids ;
           
           my $name   = $ENV{EMBPERL_COOKIE_NAME} || 'EMBPERL_UID' ;
           my $domain = "; domain=$ENV{EMBPERL_COOKIE_DOMAIN}" if (exists 
($ENV{EMBPERL_COOKIE_DOMAIN})) ;
  
  
  
  1.56.4.4  +62 -32    embperl/Embperl.pod
  
  Index: Embperl.pod
  ===================================================================
  RCS file: /home/cvs/embperl/Embperl.pod,v
  retrieving revision 1.56.4.3
  retrieving revision 1.56.4.4
  diff -u -r1.56.4.3 -r1.56.4.4
  --- Embperl.pod       2000/12/04 09:17:33     1.56.4.3
  +++ Embperl.pod       2001/03/27 11:51:57     1.56.4.4
  @@ -382,6 +382,37 @@
   all errormessages, if any.
   
   
  +=item B<object> (1.3.1b1 and above)
  +
  +Takes a filename and returns an hashref that is blessed into the package of 
  +the given file. That's usefull, if you want to call the subs inside the 
  +given file, as methods. By using the C<isa> parameter (see below) you
  +are able to provide an inherence tree. Additionaly you can use the returned
  +hashref to store data for that obeject.
  +
  +  Example:
  +
  +  [# the file eposubs.htm defines two subs: txt1 and txt2 #]
  +  [# first we create a new object #]
  +  [- $subs = Execute ({'object' => 'eposubs.htm'}) -]
  +
  +  [# then we call methods inside the object #]
  +  txt1: [+ $subs -> txt1 +] <br>
  +
  +  txt2: [+ $subs -> txt2 +] <br>
  +
  +
  +=item B<isa>  (1.3.1b1 and above)
  +
  +Takes a name of a file and pushes the package of that file into the @ISA
  +array of the current file. By using this you can setup an inherence tree
  +between Embperl documents. Is is also usefull within I<EmbperlObject>.
  +
  +  Example:
  +
  +    [! Execute ({'isa' => '../eposubs.htm'}) !]
  +
  +
   =back
   
   
  @@ -2504,38 +2535,16 @@
   =item perl5.005_03
   
   =item perl5.6.0
  -
  -=item apache_1.2.5
  -
  -=item apache_1.2.6
  -
  -=item apache_1.3.0
  -
  -=item apache_1.3.1
  -
  -=item apache_1.3.2
  -
  -=item apache_1.3.3
  -
  -=item apache_1.3.4
  -
  -=item apache_1.3.5
   
  -=item apache_1.3.6
  +=item apache_1.3.0 - apache_1.3.17
   
  -=item apache_1.3.9
  -
  -=item apache_1.3.12
  -
   =item apache_ssl (Ben SSL)
   
   =item Stronghold 2.2
   
   =item Stronghold 2.4.1
  -
  -=item Apache_1.3.3 with mod_ssl 2.0.13
   
  -=item Apache_1.3.6 with mod_ssl 2.3.5
  +=item Apache_1.3.x with mod_ssl 2.x.x
   
   =back
   
  @@ -2550,14 +2559,8 @@
   =item perl5.005
   
   =item perl5.6.0
  -
  -=item apache_1.3.1
  -
  -=item apache_1.3.6
  -
  -=item apache_1.3.9
   
  -=item apache_1.3.12
  +=item apache_1.3.0 - apache_1.3.17
   
   =back
   
  @@ -2615,8 +2618,33 @@
   =back
   
   You can reach us via http://www.ecos.de or [EMAIL PROTECTED] 
  +For more information about our support see 
   
  +http://www.ecos.de/x/index.htm/support/eng_r_support.htm
  +
  +
  +=head2 How to Support the Developement of Embperl
  +
  +If you use and like Embperl and want to support it's ongoing developement
  +you have two possibilities:
  +
  +=over 4
   
  +=item 1 
  +
  +Send me patches for things you like to see in Embperl
  +
  +=item 2
  +
  +Buy commercial support (see above). Also you B<may> get the same answers
  +to your questions on the mailing list, by buying the commercial support
  +you not only buy support for yourself and can be sure you get an answer,
  +you also give us the possibility to put more power in the further
  +developement of Embperl.
  +
  +=back
  +
  +
   =head1 References
   
   =head2 Information
  @@ -2648,8 +2676,10 @@
       binary redhat 6.0   ftp://ftp.akopia.com/pub/support/6.0/
       binary redhat 6.1   ftp://ftp.akopia.com/pub/support/6.1/
   
  + Debian packages        http://www.cse.unsw.edu.au/~gusl/embperl
  + 
    PPM for ActiveState    http://theoryx5.uwinnipeg.ca/ppmpackages/
  -    
  +     
   
   
   =head2 CVS
  
  
  
  1.29.4.12 +13 -0     embperl/Embperl.xs
  
  Index: Embperl.xs
  ===================================================================
  RCS file: /home/cvs/embperl/Embperl.xs,v
  retrieving revision 1.29.4.11
  retrieving revision 1.29.4.12
  diff -u -r1.29.4.11 -r1.29.4.12
  --- Embperl.xs        2001/03/23 09:28:10     1.29.4.11
  +++ Embperl.xs        2001/03/27 11:51:57     1.29.4.12
  @@ -396,6 +396,19 @@
   OUTPUT:
       RETVAL
   
  +
  +int
  +embperl_PathNdx(r,nNdx=-1)
  +    tReq * r
  +    int    nNdx
  +CODE:
  +    if (nNdx >= 0)
  +        r -> nPathNdx = nNdx ;
  +    RETVAL = r -> nPathNdx ;
  +OUTPUT:
  +    RETVAL
  +
  +
   char *
   embperl_ReqFilename(r)
       tReq * r
  
  
  
  1.29.4.4  +64 -32    embperl/EmbperlD.pod
  
  Index: EmbperlD.pod
  ===================================================================
  RCS file: /home/cvs/embperl/EmbperlD.pod,v
  retrieving revision 1.29.4.3
  retrieving revision 1.29.4.4
  diff -u -r1.29.4.3 -r1.29.4.4
  --- EmbperlD.pod      2000/12/04 09:17:33     1.29.4.3
  +++ EmbperlD.pod      2001/03/27 11:51:58     1.29.4.4
  @@ -332,6 +332,39 @@
   Erwartet eine Referenz auf ein Array. Nach der R�ckkehr der Funktion enth�lt das 
Array
   alle Fehlermeldungen der aufgerufenen Seite, soweit welche aufgetreten sind.
   
  +=item B<object> (ab 1.3.1b1)
  +
  +Erwartet einen Dateinamen und liefert eine Hashreferenz zur�ck, die in das 
  +Package der Datei "geblessed" ist, d.h. die Hashreferenze kann dazu genutzt
  +werden, um Funktionen die in der Datei definiert sind, also Methoden
  +aufzurufen. Zus�tzlich kann durch den C<isa> Parameter (siehe unten) eine
  +Vererbungshierachie zwischen Embperlseiten aufgebaut werden. Au�erdem ist
  +es m�glich in dem Hash Objektdaten zu speichern.
  +
  +  Beispiel:
  +
  +  [# Die Datei eposubs.htm definiert zwei Funktionen: txt1 und txt2 #]
  +  [# Als erstes erstellen wir ein neues Objekt #]
  +  [- $subs = Execute ({'object' => 'eposubs.htm'}) -]
  +
  +  [# Nun kann man Methoden aufrufen #]
  +  txt1: [+ $subs -> txt1 +] <br>
  +
  +  txt2: [+ $subs -> txt2 +] <br>
  +
  +
  +=item B<isa>  (ab 1.3.1b1)
  +
  +Erwarten den Namen einer Datei und schiebt den Packagename der Datei
  +auf das @ISA Array der aktuellen Seite. Dadurch wird es m�glich eine
  +Vererbung zwischen Embperlseiten aufzubauen. Dies ist auch innerhalb
  +von I<EmbperlObject> hilfreich.
  +
  +  Beispiel:
  +
  +    [! Execute ({'isa' => '../eposubs.htm'}) !]
  +
  +
   =back
   
   
  @@ -2470,40 +2503,17 @@
   =item perl5.005_03
   
   =item perl 5.6.0
  -
  -=item apache_1.2.5
  -
  -=item apache_1.2.6
  -
  -=item apache_1.3.0
  -
  -=item apache_1.3.1
  -
  -=item apache_1.3.2
  -
  -=item apache_1.3.3
  -
  -=item apache_1.3.4
   
  -=item apache_1.3.5
  +=item apache_1.3.0 - apache_1.3.17
   
  -=item apache_1.3.6
  -
  -=item Apache_1.3.9
  -
  -=item Apache_1.3.12
  -
   =item apache_ssl (Ben SSL)
   
   =item Stronghold 2.2
   
   =item Stronghold 2.4.1
   
  -=item Apache_1.3.3 with mod_ssl 2.0.13
  +=item Apache_1.3.x with mod_ssl 2.x.x
   
  -=item Apache_1.3.6 with mod_ssl 2.3.5
  -
  -
   =back
   
   R�ckmeldungen best�tigen, dass es ebenfalls auf fast allen anderen Unix Varianten
  @@ -2518,15 +2528,9 @@
   =item perl5.005
   
   =item perl 5.6.0
  -
  -=item apache_1.3.1
   
  -=item apache_1.3.6
  +=item apache_1.3.0 - apache_1.3.17
   
  -=item Apache_1.3.9
  -
  -=item Apache_1.3.12
  -
   =back
   
   =head2 unter Windows 95/98 mit
  @@ -2585,8 +2589,34 @@
   =back
   
   Sie erreichen uns via http://www.ecos.de oder [EMAIL PROTECTED]
  +F�r weiter Informationen zu unserem Supportangebot, siehe
  +
  +http://www.ecos.de/x/index.htm/support/r_support.htm
  +
  +
  +=head2 Wie kann ich die Entwicklung von Embperl unterst�tzen
   
  +Wenn Sie I<Embperl> einsetzen und dessen weitere Entwicklung unterst�tzen
  +m�chten, gibt es zwei M�glichkeiten:
   
  +=over 4
  +
  +=item 1 
  +
  +Sie implementieren ihr Wunschfeature selbst und senden uns einen Patch.
  +
  +=item 2
  +
  +Sie kaufen kommerziellen Support (siehe oben). Auch wenn sie B<vielleicht>
  +die selben Antworten auf ihre Fragen auf der Mailingliste bekommen w�rden,
  +macht es Sinn Support zu kaufen. Zum einen k�nnen sie sich dann sicher sein,
  +B<immer> eine Antwort auf ihre Fragen zu bekommen, zum anderen unterst�tzen
  +sie damit die weitere Entwicklung von I<Embperl> und erm�glichen uns
  +mehr Zeit und Resourcen daf�r aufzubringen.
  +
  +=back
  +
  +
   =head1 Links
   
   =head2 Informationen
  @@ -2619,6 +2649,8 @@
       binary redhat 6.0   ftp://ftp.akopia.com/pub/support/6.0/
       binary redhat 6.1   ftp://ftp.akopia.com/pub/support/6.1/
   
  + Debian packages        http://www.cse.unsw.edu.au/~gusl/embperl
  + 
    PPM f�r ActiveState    http://theoryx5.uwinnipeg.ca/ppmpackages/
   
   =head2 CVS
  
  
  
  1.36.4.4  +58 -18    embperl/EmbperlObject.pm
  
  Index: EmbperlObject.pm
  ===================================================================
  RCS file: /home/cvs/embperl/EmbperlObject.pm,v
  retrieving revision 1.36.4.3
  retrieving revision 1.36.4.4
  diff -u -r1.36.4.3 -r1.36.4.4
  --- EmbperlObject.pm  2000/11/10 08:52:26     1.36.4.3
  +++ EmbperlObject.pm  2001/03/27 11:51:58     1.36.4.4
  @@ -1,7 +1,7 @@
   
   ###################################################################################
   #
  -#   Embperl - Copyright (c) 1997-2000 Gerald Richter / ECOS
  +#   Embperl - Copyright (c) 1997-2001 Gerald Richter / ECOS
   #
   #   You may distribute under the terms of either the GNU General Public
   #   License or the Artistic License, as specified in the Perl README file.
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: EmbperlObject.pm,v 1.36.4.3 2000/11/10 08:52:26 richter Exp $
  +#   $Id: EmbperlObject.pm,v 1.36.4.4 2001/03/27 11:51:58 richter Exp $
   #
   ###################################################################################
   
  @@ -46,15 +46,22 @@
   use vars qw(
       @ISA
       $VERSION
  +    $volume
  +    $fsignorecase
       ) ;
   
   
   @ISA = qw(Exporter DynaLoader);
   
   
  -$VERSION = '1.3b4';
  +$VERSION = '1.3.1';
   
   
  +$volume = (File::Spec -> splitpath ($HTML::Embperl::cwd))[0] ;
  +$fsignorecase = File::Spec->case_tolerant ;
  +
  +1 ;
  +
   #############################################################################
   #
   # Normalize path into filesystem
  @@ -67,12 +74,29 @@
   sub norm_path
   
       {
  -    return '' if (!$_[0]) ;
  +    my $path = shift ;
  +    return '' if (!$path) ;
   
  -    my $path = File::Spec -> canonpath (shift) ;
  -    $path =~ s/\\/\//g ;
  +    # remove spaces
       $path = $1 if ($path =~ /^\s*(.*?)\s*$/) ;
       
  +    if (File::Spec->file_name_is_absolute ($path))
  +        {
  +        $path = File::Spec -> canonpath ($path) ;
  +        }
  +    else
  +        {            
  +        $_[0] ||= Cwd::fastcwd ;
  +        # make absolute path
  +        $path = File::Spec -> rel2abs ($path, $_[0]) ;
  +        }
  +    # Use always forward slashes
  +    $path =~ s/\\/\//g ;
  +    # Add volume (i.e. drive on Windows) if not exists
  +    $path = $volume . $path if ($path =~ /^\//) ;
  +    # Make lower case if filesystem doesn't cares about case 
  +    $path = lc ($path) if ($fsignorecase) ;
  +
       return $path ;
       }
   
  @@ -102,13 +126,12 @@
       my $mod ;
       if ($filename =~ /^(.*)__(.*?)$/)
        {
  -        $filename  = norm_path ($1) ;
  +        $filename  = $1 ;
        $mod       = $2 ;
        $mod       =~ s/[^a-zA-Z0-9]/_/g ;
        }
       else
        {       
  -        $filename  = norm_path ($filename) ;
        $mod = '' ;
        }
   
  @@ -136,7 +159,8 @@
       {
       my $req = shift ;
       
  -    my $filename = $req -> {inputfile} ;
  +    my $cwd ;
  +    my $filename = norm_path ($req -> {inputfile}, $cwd) ;
       my $r        ;
       $r = $req -> {req_rec} if ($req -> {req_rec}) ;
   
  @@ -156,10 +180,10 @@
       my $basename  = $req -> {object_base} ;
       $basename     =~ s/%modifier%/$req->{object_base_modifier}/ ;
       my $addpath   =  $req -> {object_addpath}  ;
  -    my @addpath   = $addpath?split (/:/, $addpath):() ;
  +    my @addpath   = $addpath?split (/$HTML::Embperl::pathsplit:/, $addpath):() ;
       my $directory ;
  -    my $rootdir   = $r?norm_path ($r -> document_root):'/' ;
  -    my $stopdir   = norm_path ($req -> {object_stopdir}) ;
  +    my $rootdir   = $r?norm_path ($r -> document_root, $cwd):"$volume/" ;
  +    my $stopdir   = norm_path ($req -> {object_stopdir}, $cwd) ;
       my $debug     = $req -> {debug} & HTML::Embperl::dbgObjectSearch ;
       
       if (-d $filename)
  @@ -192,7 +216,6 @@
           if (-e $fn)
               {
               $r -> filename ($fn) if ($r) ;
  -            $r -> notes ('EMBPERL_searchpath',  $searchpath) if ($r) ;
               $found = 1 ;
               }
           else
  @@ -221,7 +244,6 @@
               if (-e $fn)
                   {
                   $r -> filename ($fn) if ($r) ;
  -                $r -> notes ('EMBPERL_searchpath',  $searchpath) if ($r) ;
                   $found = 1 ;
                   last ;
                   }
  @@ -270,16 +292,19 @@
                   $package = $HTML::Embperl::evalpackage ;
                   print HTML::Embperl::LOG "[$$]EmbperlObject new file: $filename, 
package = $package\n"  if ($debug);
                   }
  +            }
   
  -            no strict ;
  -            @{"$package\:\:ISA"} = ($basepackage) ;
  -            use strict ;
  +        no strict ;
  +        if (!@{"$package\:\:ISA"})
  +            {
  +            @{"$package\:\:ISA"} = ($basepackage) if ($package ne $basepackage) ;
               }
  +        use strict ;
   
           $req -> {'inputfile'} = $ENV{PATH_TRANSLATED} = $fn ;
           $req -> {'bless'}     = $package ;
           $req -> {'path'}      = $searchpath ;
  -        $req -> {'reqfilename'} = $filename ;
  +        $req -> {'reqfilename'} = $filename if ($filename ne $fn) ;
           return HTML::Embperl::Execute ($req) ;
           }
   
  @@ -312,6 +337,19 @@
   
   =head1 DESCRIPTION
   
  +I<HTML::EmbperlObject> allows you to build object-oriented (OO) websites using
  +HTML components which implement inheritance via subdirectories. This
  +enables elegant architectures and encourages code reuse. The use of
  +inheritance also enables a website-wide "look and feel" to be specified
  +in a single HTML file, which is then used as a template for every other
  +page on the site. This template can include other modules which can be
  +overridden in subdirectories; even the template itself can be
  +overridden. In a nutshell, I<EmbperlObject> makes
  +the design of large websites much more intuitive, allowing
  +object-oriented concepts to be utilised to the fullest while staying
  +within the "rapid application development" model of Perl and HTML.
  +
  +
   I<HTML::EmbperlObject> is basicly a I<mod_perl> handler or could be invoked
   offline and helps you to
   build a whole page out of smaller parts. Basicly it does the following:
  @@ -422,6 +460,8 @@
   
   =back
   
  +See also the C<object> and C<isa> parameters in Embperl's Execute function, on how
  +to setup additional inherence and how to create Perl objects out of Embperl pages.
   
   =head1 Basic Example
   
  
  
  
  1.16.4.3  +11 -1     embperl/Faq.pod
  
  Index: Faq.pod
  ===================================================================
  RCS file: /home/cvs/embperl/Faq.pod,v
  retrieving revision 1.16.4.2
  retrieving revision 1.16.4.3
  diff -u -r1.16.4.2 -r1.16.4.3
  --- Faq.pod   2000/12/04 09:17:33     1.16.4.2
  +++ Faq.pod   2001/03/27 11:51:59     1.16.4.3
  @@ -103,6 +103,10 @@
   =head2 Running 'make test' fails with an error message at loading of Embperl 
   (even though mod_perl compiled and tested cleanly!)
   
  +see "I get symbol ap_* undefined/cannot resolve ap_*"
  +
  +=head2 I get symbol ap_* undefined/cannot resolve ap_*
  +
   This can happen when symbols in the Apache binary can not be found or
   are not being resolved correctly.
   
  @@ -129,6 +133,10 @@
   Try rebuilding Apache and mod_perl from scratch, and make sure
   you do not strip symbols out of either.
   
  +On some systems/linker you need to tell the linker explicitly to
  +export such symbols. For example FreeBSD linker needs the 
  +C<-export-dynamic> option.
  +
   If you don't succeed with this approach, try statically linking
   Embperl to Apache/mod_perl (please see the next question for
   step-by-step instructions on how to do this).
  @@ -322,7 +330,9 @@
   =head2 Embperl and mod_perl on AIX 
   
   You need at least mod_perl 1.22. For mod_perl 1.22 and higher Embperl
  -should compile out of the box on AIX.
  +should compile out of the box on AIX. If you run into problems with
  +undefined symbols (like C<ap_*>) make sure you have the newest 
  +mod_perl version (as of this writing this is mod_perl 1.24_01).
   
   
   =head2 Embperl does not write to the logfile, because of missing permissions
  
  
  
  1.12.4.3  +42 -2     embperl/INSTALL.pod
  
  Index: INSTALL.pod
  ===================================================================
  RCS file: /home/cvs/embperl/INSTALL.pod,v
  retrieving revision 1.12.4.2
  retrieving revision 1.12.4.3
  diff -u -r1.12.4.2 -r1.12.4.3
  --- INSTALL.pod       2000/12/04 09:17:34     1.12.4.2
  +++ INSTALL.pod       2001/03/27 11:51:59     1.12.4.3
  @@ -52,7 +52,7 @@
   
   =over 4
   
  -=item * File::Spec
  +=item * File::Spec 0.82 or higher
   
   =back
   
  @@ -70,6 +70,40 @@
   they are mainly nesseccary for debugging I<Embperl> itself.
   
   
  +=head2 Debian packages
  +
  +The Debian packages are maintained by Angus Lees. Here are his
  +installation hints:
  +
  +i've also setup an apt repository for those using stable (potato). to
  +use it, just add these lines to /etc/apt/sources.list (deb-src line is
  +only necessary if you want to download the source at some point):
  +
  +  deb http://www.cse.unsw.edu.au/~gusl/embperl stable/binary-$(ARCH)/
  +  deb-src http://www.cse.unsw.edu.au/~gusl/embperl stable/source/
  +
  +then run "apt-get update" followed by either
  +"apt-get install libhtml-embperl-perl" or just "apt-get upgrade" if
  +you already have embperl installed.
  +
  +if you don't like apt, and want to do it the old fashioned way, i'm
  +sure you can work out how to download the .deb manually.
  +
  +
  +notes:
  +
  +currently i only have i386 packages built for stable. if anyone wants
  +to build other archs and let me know, i can add them in (else, i can
  +probably get a sparc and alpha version compiled)
  +
  +
  +the package for unstable is compiled against perl5.6, so it has to
  +conflict with earlier mod_perl packages that are compiled against
  +perl5.5. unfortunately, there is no perl5.6 apache-perl package yet
  +(drow assures me he's uploading one soon), so you have to make do with
  +a DSO mod-perl (ie: apache + libapache-mod-perl) for now.
  +
  +
   =head2 WIN 32
   
   I have tested the offline mode on Windows 95 with a Microsoft Visual C++ 4.2
  @@ -138,7 +172,7 @@
   
   =over 4
   
  -=item * File::Spec
  +=item * File::Spec 0.82 or higher
   
   =back
   
  @@ -154,11 +188,17 @@
   See L<"perldoc Intro"|"Intro.pod"> for an step by step 
   introduction to Embperl.
   
  +See L<"perldoc IntroEmbperlObject"|"IntroEmbperlObject.pod"> for an step by step 
  +introduction to the OO features of Embperl.
  +
   See L<"perldoc Embperl"|"Embperl.pod"> for complete documentation.
   
   See the L<"eg/"|"Examples.pod"> directory for examples.
   
   See L<"perldoc Faq"|"Faq.pod"> for Frequently Asked Questions.
  +
  +See L<"perldoc TipsAndTricks"|"TipsAndTricks.pod"> for Tips and Tricks 
  +around Embperl.
   
   or you can view it online on http://perl.apache.org/embperl/
   
  
  
  
  1.31.4.8  +7 -2      embperl/Makefile.PL
  
  Index: Makefile.PL
  ===================================================================
  RCS file: /home/cvs/embperl/Makefile.PL,v
  retrieving revision 1.31.4.7
  retrieving revision 1.31.4.8
  diff -u -r1.31.4.7 -r1.31.4.8
  --- Makefile.PL       2001/03/23 13:51:44     1.31.4.7
  +++ Makefile.PL       2001/03/27 11:52:00     1.31.4.8
  @@ -792,6 +792,11 @@
   
       $SessVer ||= 0 ;
   
  +    if (($FSVer = CheckModule ("File::Spec", "-> Required for EmbperlObject, make 
test will fail whithout File::Spec")) < 0.82)
  +        {
  +        print "-> EmbperlObject requires File::Spec 0.82 or higher, found $FSVer, 
please upgrade!\n" ;
  +        }
  +        
       CheckModule ("CGI", "-> File Upload will not work without CGI.pm installed") ;
   
       ### write out test configuration file ###
  @@ -902,7 +907,7 @@
   WriteMakefile(
       'NAME'      => 'HTML::Embperl',
       'VERSION_FROM' => 'Embperl.pm',          # finds $VERSION
  -    'OBJECT'       => 'Embperl$(OBJ_EXT) epmain$(OBJ_EXT) epio$(OBJ_EXT) 
epchar$(OBJ_EXT) epcmd$(OBJ_EXT) eputil$(OBJ_EXT) epeval$(OBJ_EXT) epdbg$(OBJ_EXT) ' . 
  +    'OBJECT'       => 'Embperl$(OBJ_EXT) epmain$(OBJ_EXT) epio$(OBJ_EXT) 
epchar$(OBJ_EXT) epcmd$(OBJ_EXT) eputil$(OBJ_EXT) epeval$(OBJ_EXT) ' . 
                          ($EP2?'epcmd2$(OBJ_EXT) epparse$(OBJ_EXT) epdom$(OBJ_EXT) 
epcomp$(OBJ_EXT)':'') . $o,
       'LIBS'      => [''],                      
       'DEFINE'    => "$d \$(DEFS)",                     
  @@ -916,7 +921,7 @@
       'realclean'    => { FILES => 'embpexec.pl embpexec.bat embpcgi.pl 
embpcgi.test.pl embpcgi.bat test/conf/config.pl' },
       'dist'         => { COMPRESS => 'gzip', SUFFIX => 'gz'},
       'dynamic_lib'  => $dynlib,
  -    'PREREQ_PM'    => { 'File::Spec' => 0 },
  +    'PREREQ_PM'    => { 'File::Spec' => 0.82 },
       'ABSTRACT'     => 'Embed Perl code in HTML documents',
       'AUTHOR'       => 'Gerald Richter <[EMAIL PROTECTED]>',
   
  
  
  
  1.1.4.1   +3 -1      embperl/embpcgi.bat.templ
  
  Index: embpcgi.bat.templ
  ===================================================================
  RCS file: /home/cvs/embperl/embpcgi.bat.templ,v
  retrieving revision 1.1
  retrieving revision 1.1.4.1
  diff -u -r1.1 -r1.1.4.1
  --- embpcgi.bat.templ 2000/09/11 09:53:28     1.1
  +++ embpcgi.bat.templ 2001/03/27 11:52:01     1.1.4.1
  @@ -7,7 +7,7 @@
   #line 8
   ###################################################################################
   #
  -#   Embperl - Copyright (c) 1997-1999 Gerald Richter / ECOS
  +#   Embperl - Copyright (c) 1997-2001 Gerald Richter / ECOS
   #
   #   You may distribute under the terms of either the GNU General Public
   #   License or the Artistic License, as specified in the Perl README file.
  @@ -17,6 +17,8 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  +#   $Id: embpcgi.bat.templ,v 1.1.4.1 2001/03/27 11:52:01 richter Exp $
  +#
   ###################################################################################
   
   use HTML::Embperl;
  
  
  
  1.1.4.1   +3 -1      embperl/embpcgi.pl.templ
  
  Index: embpcgi.pl.templ
  ===================================================================
  RCS file: /home/cvs/embperl/embpcgi.pl.templ,v
  retrieving revision 1.1
  retrieving revision 1.1.4.1
  diff -u -r1.1 -r1.1.4.1
  --- embpcgi.pl.templ  2000/09/11 09:53:29     1.1
  +++ embpcgi.pl.templ  2001/03/27 11:52:02     1.1.4.1
  @@ -1,7 +1,7 @@
   #!/usr/bin/perl 
   ###################################################################################
   #
  -#   Embperl - Copyright (c) 1997-1999 Gerald Richter / ECOS
  +#   Embperl - Copyright (c) 1997-2001 Gerald Richter / ECOS
   #
   #   You may distribute under the terms of either the GNU General Public
   #   License or the Artistic License, as specified in the Perl README file.
  @@ -11,6 +11,8 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  +#   $Id: embpcgi.pl.templ,v 1.1.4.1 2001/03/27 11:52:02 richter Exp $
  +#
   ###################################################################################
   
   use HTML::Embperl;
  
  
  
  1.1.4.1   +3 -1      embperl/embpcgi.test.pl.templ
  
  Index: embpcgi.test.pl.templ
  ===================================================================
  RCS file: /home/cvs/embperl/embpcgi.test.pl.templ,v
  retrieving revision 1.1
  retrieving revision 1.1.4.1
  diff -u -r1.1 -r1.1.4.1
  --- embpcgi.test.pl.templ     2000/09/11 09:53:29     1.1
  +++ embpcgi.test.pl.templ     2001/03/27 11:52:02     1.1.4.1
  @@ -1,7 +1,7 @@
   #!/usr/bin/perl 
   ###################################################################################
   #
  -#   Embperl - Copyright (c) 1997-1999 Gerald Richter / ECOS
  +#   Embperl - Copyright (c) 1997-2001 Gerald Richter / ECOS
   #
   #   You may distribute under the terms of either the GNU General Public
   #   License or the Artistic License, as specified in the Perl README file.
  @@ -11,6 +11,8 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  +#   $Id: embpcgi.test.pl.templ,v 1.1.4.1 2001/03/27 11:52:02 richter Exp $
  +#
   ###################################################################################
   
   
  
  
  
  1.19.4.4  +3 -1      embperl/embperl.h
  
  Index: embperl.h
  ===================================================================
  RCS file: /home/cvs/embperl/embperl.h,v
  retrieving revision 1.19.4.3
  retrieving revision 1.19.4.4
  diff -u -r1.19.4.3 -r1.19.4.4
  --- embperl.h 2000/12/04 09:17:34     1.19.4.3
  +++ embperl.h 2001/03/27 11:52:03     1.19.4.4
  @@ -1,6 +1,6 @@
   
/*###################################################################################
   #
  -#   Embperl - Copyright (c) 1997-1999 Gerald Richter / ECOS
  +#   Embperl - Copyright (c) 1997-2001 Gerald Richter / ECOS
   #
   #   You may distribute under the terms of either the GNU General Public
   #   License or the Artistic License, as specified in the Perl README file.
  @@ -9,6 +9,8 @@
   #   THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  +#
  +#   $Id: embperl.h,v 1.19.4.4 2001/03/27 11:52:03 richter Exp $
   #
   
###################################################################################*/
   
  
  
  
  1.1.4.1   +4 -1      embperl/embpexec.bat.templ
  
  Index: embpexec.bat.templ
  ===================================================================
  RCS file: /home/cvs/embperl/embpexec.bat.templ,v
  retrieving revision 1.1
  retrieving revision 1.1.4.1
  diff -u -r1.1 -r1.1.4.1
  --- embpexec.bat.templ        2000/09/11 09:53:29     1.1
  +++ embpexec.bat.templ        2001/03/27 11:52:03     1.1.4.1
  @@ -7,7 +7,7 @@
   #line 8
   ###################################################################################
   #
  -#   Embperl - Copyright (c) 1997-1999 Gerald Richter / ECOS
  +#   Embperl - Copyright (c) 1997-2001 Gerald Richter / ECOS
   #
   #   You may distribute under the terms of either the GNU General Public
   #   License or the Artistic License, as specified in the Perl README file.
  @@ -17,6 +17,9 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  +#
  +#   $Id: embpexec.bat.templ,v 1.1.4.1 2001/03/27 11:52:03 richter Exp $
  +#
   ###################################################################################
   
   use HTML::Embperl;
  
  
  
  1.1.4.1   +3 -1      embperl/embpexec.pl.templ
  
  Index: embpexec.pl.templ
  ===================================================================
  RCS file: /home/cvs/embperl/embpexec.pl.templ,v
  retrieving revision 1.1
  retrieving revision 1.1.4.1
  diff -u -r1.1 -r1.1.4.1
  --- embpexec.pl.templ 2000/09/11 09:53:30     1.1
  +++ embpexec.pl.templ 2001/03/27 11:52:04     1.1.4.1
  @@ -1,7 +1,7 @@
   #!/usr/bin/perl 
   ###################################################################################
   #
  -#   Embperl - Copyright (c) 1997-1999 Gerald Richter / ECOS
  +#   Embperl - Copyright (c) 1997-2001 Gerald Richter / ECOS
   #
   #   You may distribute under the terms of either the GNU General Public
   #   License or the Artistic License, as specified in the Perl README file.
  @@ -11,6 +11,8 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  +#   $Id: embpexec.pl.templ,v 1.1.4.1 2001/03/27 11:52:04 richter Exp $
  +#
   ###################################################################################
   
   
  
  
  
  1.12.4.1  +3 -1      embperl/epchar.c
  
  Index: epchar.c
  ===================================================================
  RCS file: /home/cvs/embperl/epchar.c,v
  retrieving revision 1.12
  retrieving revision 1.12.4.1
  diff -u -r1.12 -r1.12.4.1
  --- epchar.c  2000/07/08 17:09:39     1.12
  +++ epchar.c  2001/03/27 11:52:05     1.12.4.1
  @@ -1,6 +1,6 @@
   
/*###################################################################################
   #
  -#   Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
  +#   Embperl - Copyright (c) 1997-2001 Gerald Richter / ECOS
   #
   #   You may distribute under the terms of either the GNU General Public
   #   License or the Artistic License, as specified in the Perl README file.
  @@ -9,6 +9,8 @@
   #   THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  +#
  +#   $Id: epchar.c,v 1.12.4.1 2001/03/27 11:52:05 richter Exp $
   #
   
###################################################################################*/
   
  
  
  
  1.37.4.3  +3 -1      embperl/epcmd.c
  
  Index: epcmd.c
  ===================================================================
  RCS file: /home/cvs/embperl/epcmd.c,v
  retrieving revision 1.37.4.2
  retrieving revision 1.37.4.3
  diff -u -r1.37.4.2 -r1.37.4.3
  --- epcmd.c   2000/12/04 09:17:34     1.37.4.2
  +++ epcmd.c   2001/03/27 11:52:05     1.37.4.3
  @@ -1,6 +1,6 @@
   
/*###################################################################################
   #
  -#   Embperl - Copyright (c) 1997-1999 Gerald Richter / ECOS
  +#   Embperl - Copyright (c) 1997-2001 Gerald Richter / ECOS
   #
   #   You may distribute under the terms of either the GNU General Public
   #   License or the Artistic License, as specified in the Perl README file.
  @@ -9,6 +9,8 @@
   #   THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  +#
  +#   $Id: epcmd.c,v 1.37.4.3 2001/03/27 11:52:05 richter Exp $
   #
   
###################################################################################*/
   
  
  
  
  1.20.4.14 +6 -0      embperl/epdat.h
  
  Index: epdat.h
  ===================================================================
  RCS file: /home/cvs/embperl/epdat.h,v
  retrieving revision 1.20.4.13
  retrieving revision 1.20.4.14
  diff -u -r1.20.4.13 -r1.20.4.14
  --- epdat.h   2001/03/23 09:28:11     1.20.4.13
  +++ epdat.h   2001/03/27 11:52:06     1.20.4.14
  @@ -132,6 +132,11 @@
   
   typedef struct tTokenTable tTokenTable ;
       
  +#else
  +
  +typedef void * tTokenTable ;
  +
  +
   #endif
   
   
  @@ -391,6 +396,7 @@
       int          nSessionMgnt ;      /* how to retrieve the session id */
       int          nInsideSub ;        /* Are we inside of a sub? */
       int          bExit ;             /* We should exit the page */
  +    int          nPathNdx ;          /* gives the index in the path where the 
current file is found */
   #ifdef EP2
       bool    bEP1Compat ;     /* run in Embperl 1.x compatible mode */    
       tPhase  nPhase ;         /* which phase of the request we are in */
  
  
  
  1.3.6.1   +3 -1      embperl/epdbg.c
  
  Index: epdbg.c
  ===================================================================
  RCS file: /home/cvs/embperl/epdbg.c,v
  retrieving revision 1.3
  retrieving revision 1.3.6.1
  diff -u -r1.3 -r1.3.6.1
  --- epdbg.c   1999/11/02 08:32:49     1.3
  +++ epdbg.c   2001/03/27 11:52:06     1.3.6.1
  @@ -1,6 +1,6 @@
   
/*###################################################################################
   #
  -#   Embperl - Copyright (c) 1997-1999 Gerald Richter / ECOS
  +#   Embperl - Copyright (c) 1997-2001 Gerald Richter / ECOS
   #
   #   You may distribute under the terms of either the GNU General Public
   #   License or the Artistic License, as specified in the Perl README file.
  @@ -9,6 +9,8 @@
   #   THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  +#
  +#   $Id: epdbg.c,v 1.3.6.1 2001/03/27 11:52:06 richter Exp $
   #
   
###################################################################################*/
   
  
  
  
  1.23.4.8  +4 -6      embperl/epeval.c
  
  Index: epeval.c
  ===================================================================
  RCS file: /home/cvs/embperl/epeval.c,v
  retrieving revision 1.23.4.7
  retrieving revision 1.23.4.8
  diff -u -r1.23.4.7 -r1.23.4.8
  --- epeval.c  2001/02/05 11:18:54     1.23.4.7
  +++ epeval.c  2001/03/27 11:52:07     1.23.4.8
  @@ -1,6 +1,6 @@
   
/*###################################################################################
   #
  -#   Embperl - Copyright (c) 1997-1999 Gerald Richter / ECOS
  +#   Embperl - Copyright (c) 1997-2001 Gerald Richter / ECOS
   #
   #   You may distribute under the terms of either the GNU General Public
   #   License or the Artistic License, as specified in the Perl README file.
  @@ -10,6 +10,8 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  +#   $Id: epeval.c,v 1.23.4.8 2001/03/27 11:52:07 richter Exp $
  +#
   
###################################################################################*/
   
   
  @@ -853,16 +855,12 @@
       lprintf (r, "CV ppSV=%s type=%d\n", *ppSV?"ok":"NULL", *ppSV?SvTYPE (*ppSV):0) 
;               
       if (*ppSV == NULL || SvTYPE (*ppSV) != SVt_PVCV)
        {
  -     
        if ((rc = EvalOnly (r, sArg, ppSV, G_SCALAR, "")) != ok)
            {
            *pRet = NULL ;
            return rc ;
            }
  -
  -
  -     
  -     *pRet = *ppSV  ;
  +        *pRet = *ppSV  ;
        return ok ;
        }
   
  
  
  
  1.16.4.1  +3 -1      embperl/epio.c
  
  Index: epio.c
  ===================================================================
  RCS file: /home/cvs/embperl/epio.c,v
  retrieving revision 1.16
  retrieving revision 1.16.4.1
  diff -u -r1.16 -r1.16.4.1
  --- epio.c    2000/09/12 12:49:49     1.16
  +++ epio.c    2001/03/27 11:52:08     1.16.4.1
  @@ -1,6 +1,6 @@
   
/*###################################################################################
   #
  -#   Embperl - Copyright (c) 1997-1999 Gerald Richter / ECOS
  +#   Embperl - Copyright (c) 1997-2001 Gerald Richter / ECOS
   #
   #   You may distribute under the terms of either the GNU General Public
   #   License or the Artistic License, as specified in the Perl README file.
  @@ -9,6 +9,8 @@
   #   THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  +#
  +#   $Id: epio.c,v 1.16.4.1 2001/03/27 11:52:08 richter Exp $
   #
   
###################################################################################*/
   
  
  
  
  1.75.4.28 +68 -63    embperl/epmain.c
  
  Index: epmain.c
  ===================================================================
  RCS file: /home/cvs/embperl/epmain.c,v
  retrieving revision 1.75.4.27
  retrieving revision 1.75.4.28
  diff -u -r1.75.4.27 -r1.75.4.28
  --- epmain.c  2001/03/27 06:42:10     1.75.4.27
  +++ epmain.c  2001/03/27 11:52:09     1.75.4.28
  @@ -1,6 +1,6 @@
   
/*###################################################################################
   #
  -#   Embperl - Copyright (c) 1997-1999 Gerald Richter / ECOS
  +#   Embperl - Copyright (c) 1997-2001 Gerald Richter / ECOS
   #
   #   You may distribute under the terms of either the GNU General Public
   #   License or the Artistic License, as specified in the Perl README file.
  @@ -10,6 +10,8 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  +#   $Id: epmain.c,v 1.75.4.28 2001/03/27 11:52:09 richter Exp $
  +#
   
###################################################################################*/
   
   
  @@ -41,8 +43,6 @@
   static char sEscModeName   [] = "HTML::Embperl::escmode" ;
   #ifdef EP2
   static char sCurrNodeName   [] = "HTML::Embperl::_ep_node" ;
  -//static char sCheckpointNodeName   [] = "HTML::Embperl::_ep_cp" ;
  -//static char sOutputVarName   [] = "HTML::Embperl::_ep_rp" ;
   static char sTokenHashName [] = "HTML::Embperl::Syntax::Default" ;
   #endif
   
  @@ -331,8 +331,6 @@
   INTMG (EscMode, pCurrReq -> nEscMode, notused, NewEscMode (pCurrReq, pSV)) 
   #ifdef EP2
   INTMGshort (CurrNode, pCurrReq -> xCurrNode) 
  -//INTMGcall  (CheckpointNode, pCurrReq -> xCurrNode, pCurrReq -> nCurrEscMode = 
pCurrReq -> nEscMode ; pCurrReq -> bEscModeSet = -1 ;  DomTree_checkpoint (pCurrReq -> 
xCurrDomTree, pCurrReq -> xCurrNode)) 
  -//INTMGcall  (OutputVar, pCurrReq -> xCurrNode, Node_replaceWithCDATA (pCurrReq -> 
xCurrDomTree, pCurrReq -> xCurrNode)) 
   #endif
   
   OPTMGRD (optDisableVarCleanup      , pCurrReq -> bOptions) ;
  @@ -837,46 +835,49 @@
   
                   if (pRet)
                       {
  -                    if (r -> bEscInUrl && SvTYPE(pRet) == SVt_RV && SvTYPE((pAV = 
(AV *)SvRV(pRet))) == SVt_PVAV)
  -                     { /* Array reference inside URL */
  -                     SV ** ppSV ;
  -                     int i ;
  -                     int f = AvFILL(pAV)  ;
  -                     for (i = 0; i <= f; i++)
  -                         {
  -                         ppSV = av_fetch (pAV, i, 0) ;
  -                         if (ppSV && *ppSV)
  +                 if (r -> bEscInUrl && SvTYPE(pRet) == SVt_RV && (pAV = (AV 
*)SvRV(pRet)))
  +                     {                           
  +                     if (SvTYPE(pAV) == SVt_PVAV)
  +                         { /* Array reference inside URL */
  +                         SV ** ppSV ;
  +                         int i ;
  +                         int f = AvFILL(pAV)  ;
  +                         for (i = 0; i <= f; i++)
                                {
  -                             OutputToHtml (r, SvPV (*ppSV, l)) ;
  +                             ppSV = av_fetch (pAV, i, 0) ;
  +                             if (ppSV && *ppSV)
  +                                 {
  +                                 OutputToHtml (r, SvPV (*ppSV, l)) ;
  +                                 }
  +                             if ((i & 1) == 0)
  +                                 oputc (r, '=' ) ;
  +                             else if (i < f)
  +                                 oputs (r, "&amp;") ;
                                }
  -                         if ((i & 1) == 0)
  -                             oputc (r, '=' ) ;
  -                         else if (i < f)
  -                             oputs (r, "&amp;") ;
                            }
  -                 
  -                     }
  -                 else if (r -> bEscInUrl && SvTYPE(pRet) == SVt_RV && SvTYPE((pHV = 
(HV *)SvRV(pRet))) == SVt_PVHV)
  -                     { /* Hash reference inside URL */
  -                     int         i = 0 ;
  -                     HE *        pEntry ;
  -                     char *      pKey ;
  -                     SV *        pSVValue ;
  +                     else if (SvTYPE(pAV) == SVt_PVHV)
  +                         { /* Hash reference inside URL */
  +                         int         i = 0 ;
  +                         HE *            pEntry ;
  +                         char *          pKey ;
  +                         SV *            pSVValue ;
  +                         pHV = (HV *)pAV ;
   
  -                     hv_iterinit (pHV) ;
  -                     while (pEntry = hv_iternext (pHV))
  -                         {
  -                         if (i++ > 0)
  -                             oputs (r, "&amp;") ;
  -                         pKey     = hv_iterkey (pEntry, &li) ;
  -                         OutputToHtml (r, pKey) ;
  -                         oputc (r, '=' ) ;
  -
  -                         pSVValue = hv_iterval (pHV , pEntry) ;
  -                         if (pSVValue)
  -                             OutputToHtml (r, SvPV (pSVValue, l)) ;
  +                         hv_iterinit (pHV) ;
  +                         while (pEntry = hv_iternext (pHV))
  +                             {
  +                             if (i++ > 0)
  +                                 oputs (r, "&amp;") ;
  +                             pKey     = hv_iterkey (pEntry, &li) ;
  +                             OutputToHtml (r, pKey) ;
  +                             oputc (r, '=' ) ;
  +
  +                             pSVValue = hv_iterval (pHV , pEntry) ;
  +                             if (pSVValue)
  +                                 OutputToHtml (r, SvPV (pSVValue, l)) ;
  +                             }
                            }
  -                     }       
  +                     }
                    else
                        {
                        if (r -> pCurrEscape == NULL)
  @@ -1592,22 +1593,7 @@
       ADDOPTMG   (dbgImport      ) ;
      
   #ifdef EP2
  -
       DomInit () ;
  -    //embperl_CompileInit () ;
  -
  -#if 0
  -    if ((pTokenHash = perl_get_hv (sTokenHashName, TRUE)) == NULL)
  -        {
  -        return rcHashError ;
  -        }
  -    r -> pTokenTable = &DefaultTokenTable ;
  -    if (rc = BuildTokenTable (r, pTokenHash , "", r -> pTokenTable))
  -     {
  -     LogError (r, rc) ;
  -     return rc ;
  -     }
  -#endif
   #endif    
       
   
  @@ -1842,7 +1828,8 @@
       char *   cache_key;
       int              cache_key_len;
       char olddir[PATH_MAX] = "" ;
  -    
  +    char *      pNew ;
  +
       EPENTRY (SetupFileData) ;
   
       /* Have we seen this sourcefile/package already ? */
  @@ -1851,10 +1838,11 @@
        cache_key_len += strlen( pConf->sPackage );
       
       /* is it a relativ filename? -> append path */
  -    if (sSourcefile[0] == '/' || 
  -        sSourcefile[0] == '\\' || 
  -        (isalpha(sSourcefile[0]) && sSourcefile[1] == ':' && 
  -            (sSourcefile[2] == '\\' || sSourcefile[2] == '/')))
  +    if (!(sSourcefile[0] == '/' || 
  +          sSourcefile[0] == '\\' || 
  +          (isalpha(sSourcefile[0]) && sSourcefile[1] == ':' && 
  +               (sSourcefile[2] == '\\' || sSourcefile[2] == '/')) ||
  +         (r -> pInData && SvROK(r -> pInData))))
           getcwd (olddir, sizeof (olddir) - 1) ;
   
       if ( olddir[0] )
  @@ -1903,6 +1891,7 @@
                f -> pExportHash = NULL ;
                }
            }
  +        pNew = "Found" ;
           }
       else
           { /* create new file structure */
  @@ -1936,7 +1925,11 @@
       
           if (r -> bDebug)
               lprintf (r, "[%d]MEM: Load %s in %s\n", r -> nPid,  sSourcefile, f -> 
sCurrPackage) ;
  +        pNew = "New" ;
           }
  +    if (r -> bDebug)
  +        lprintf (r, "[%d]CACHE: %s File for '%s' (%x) in '%s' hash cache-key 
'%s'\n", r -> nPid,  pNew, f -> sSourcefile, f, f -> sCurrPackage, cache_key) ;
  +    
       _free(r,cache_key);
   
       return f ;
  @@ -1960,6 +1953,7 @@
       char *   cache_key;
       int              cache_key_len;
       char olddir[PATH_MAX] = "" ;
  +    char *      pNew ;
       
       EPENTRY (GetFileData) ;
   
  @@ -1969,10 +1963,10 @@
        cache_key_len += strlen( sPackage );
       
       /* is it a relativ filename? -> append path */
  -    if (sSourcefile[0] == '/' || 
  +    if (!(sSourcefile[0] == '/' || 
           sSourcefile[0] == '\\' || 
           (isalpha(sSourcefile[0]) && sSourcefile[1] == ':' && 
  -            (sSourcefile[2] == '\\' || sSourcefile[2] == '/')))
  +            (sSourcefile[2] == '\\' || sSourcefile[2] == '/'))))
           getcwd (olddir, sizeof (olddir) - 1) ;
   
       if ( olddir[0] )
  @@ -2015,6 +2009,7 @@
                f -> pExportHash = NULL ;
                }
            }
  +        pNew = "Found " ;
           }
       else
           { /* create new file structure */
  @@ -2046,7 +2041,12 @@
   
           hv_store(pCacheHash, cache_key, cache_key_len, newRV_noinc (newSViv 
((IV)f)), 0) ;  
       
  +        pNew = "New " ;
           }
  +
  +    if (pCurrReq -> bDebug)
  +        lprintf (pCurrReq, "[%d]CACHE: %s File for %s (%x) in %s hash cache-key 
%s\n", pCurrReq -> nPid,  pNew, f -> sSourcefile, f, f -> sCurrPackage, cache_key) ;
  +    
       free(cache_key);
   
       return f ;
  @@ -2194,6 +2194,9 @@
       r -> nInsideSub   = 0 ;
       r -> bExit        = 0 ;
       
  +    r -> pOutData        = pOut ;
  +    r -> pInData         = pIn ;
  +
       r -> pFiles2Free  = NULL ;
       if (r -> bSubReq && sSourcefile[0] == '?' && sSubName && sSubName[0] != '\0')
        {
  @@ -2857,7 +2860,6 @@
                    if (!bError && !r -> pImportStash)
                        {
                        tDomTree * pDomTree = DomTree_self (r -> xCurrDomTree) ;
  -                     //Node_replaceChildWithNode (pDomTree, pDomTree -> xDocument, 
DomTree_self (l -> xCurrDomTree), l -> xCurrNode) ;
                        l -> xCurrNode = Node_insertAfter (pDomTree, pDomTree -> 
xDocument, DomTree_self (l -> xCurrDomTree), l -> xCurrNode) ;
                        }
                    }
  @@ -3250,6 +3252,7 @@
       tSrcBuf Buf ;
       char *  sEvalPackage = r -> Buf.sEvalPackage ; 
       STRLEN  nEvalPackage = r -> Buf.nEvalPackage ;  
  +    SV *    pInData      = r -> pInData  ;  
   
   
       /*av_unshift (GvAV (PL_defgv), 1) ;
  @@ -3261,6 +3264,7 @@
       if (pFile != r -> Buf.pFile)
        { /* get other file */
        r -> Buf.pFile = pFile ;
  +     r -> pInData = &sv_undef ;
   
        if ((rc = ReadInputFile (r)) != ok)
            {
  @@ -3282,6 +3286,7 @@
       memcpy (&r -> Buf, &Buf, sizeof (Buf)) ;
       r -> Buf.sEvalPackage = sEvalPackage ; 
       r -> Buf.nEvalPackage = nEvalPackage ; 
  +    r -> pInData          = pInData ;  
   
       if (rc != ok)
        LogError (r, rc) ;
  
  
  
  1.19.4.4  +5 -1      embperl/epnames.h
  
  Index: epnames.h
  ===================================================================
  RCS file: /home/cvs/embperl/epnames.h,v
  retrieving revision 1.19.4.3
  retrieving revision 1.19.4.4
  diff -u -r1.19.4.3 -r1.19.4.4
  --- epnames.h 2000/12/21 07:41:16     1.19.4.3
  +++ epnames.h 2001/03/27 11:52:12     1.19.4.4
  @@ -1,6 +1,6 @@
   
/*###################################################################################
   #
  -#   Embperl - Copyright (c) 1997-1999 Gerald Richter / ECOS
  +#   Embperl - Copyright (c) 1997-2001 Gerald Richter / ECOS
   #
   #   You may distribute under the terms of either the GNU General Public
   #   License or the Artistic License, as specified in the Perl README file.
  @@ -10,6 +10,8 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  +#   $Id: epnames.h,v 1.19.4.4 2001/03/27 11:52:12 richter Exp $
  +#
   
###################################################################################*/
   
   /*
  @@ -24,6 +26,7 @@
   #define oCommitToMem           EMBPERL_oCommitToMem
   #define OpenInput              EMBPERL_OpenInput         
   #define CloseInput             EMBPERL_CloseInput        
  +#define ReadInputFile          EMBPERL_ReadInputFile        
   #define iread                  EMBPERL_iread             
   #define igets                  EMBPERL_igets             
   #define OpenOutput             EMBPERL_OpenOutput        
  @@ -44,6 +47,7 @@
   #define Eval                   EMBPERL_Eval              
   #define EvalNum                EMBPERL_EvalNum           
   #define EvalBool               EMBPERL_EvalBool           
  +#define EvalConfig             EMBPERL_EvalConfig
   #define stristr                EMBPERL_stristr           
   #define strlower               EMBPERL_strlower          
   #define TransHtml              EMBPERL_TransHtml         
  
  
  
  1.70.4.38 +43 -4     embperl/test.pl
  
  Index: test.pl
  ===================================================================
  RCS file: /home/cvs/embperl/test.pl,v
  retrieving revision 1.70.4.37
  retrieving revision 1.70.4.38
  diff -u -r1.70.4.37 -r1.70.4.38
  --- test.pl   2001/03/27 07:09:27     1.70.4.37
  +++ test.pl   2001/03/27 11:52:13     1.70.4.38
  @@ -305,6 +305,7 @@
           'option'     => '12',
           'errors'     => '-1',
           'compartment'=> 'TEST',
  +        'package'    => 'TEST',
           'version'    => 1,
           'cgi'        => 0,
           },
  @@ -408,6 +409,11 @@
       'EmbperlObject/epopage1.htm' => {
           'offline'    => 0,
           'cgi'        => 0,
  +        'repeat'     => 2,
  +        },
  +    'EmbperlObject/epoincdiv.htm' => { 
  +        'offline'    => 0,
  +        'cgi'        => 0,
           },
       'EmbperlObject/epodiv.htm' => { 
           'offline'    => 0,
  @@ -430,10 +436,29 @@
           'cgi'        => 0,
           'cmpext'     => '3',      
           },
  +    'EmbperlObject/sub/subsub/subsubsub/eposubsub2.htm' => { 
  +        'offline'    => 0,
  +        'cgi'        => 0,
  +        },
       'EmbperlObject/sub/eponotfound.htm' => { 
           'offline'    => 0,
           'cgi'        => 0,
           },
  +    'EmbperlObject/sub/epobless.htm' => { 
  +        'offline'    => 0,
  +        'cgi'        => 0,
  +        'repeat'     => 2,
  +        },
  +    'EmbperlObject/sub/epobless2.htm' => { 
  +        'offline'    => 0,
  +        'cgi'        => 0,
  +        'repeat'     => 2,
  +        },
  +    'EmbperlObject/sub/epobless3.htm' => { 
  +        'offline'    => 0,
  +        'cgi'        => 0,
  +        'repeat'     => 2,
  +        },
       'EmbperlObject/obj/epoobj1.htm' => { 
           'offline'    => 0,
           'cgi'        => 0,
  @@ -459,6 +484,10 @@
           'offline'    => 0,
           'cgi'        => 0,
           },
  +    'EmbperlObject/epobase.htm' => {
  +        'offline'    => 0,
  +        'cgi'        => 0,
  +        },
       'SSI/ssibasic.htm' => { 
           'version'    => 2,
           'syntax'     => 'SSI',
  @@ -468,7 +497,7 @@
           'syntax'     => 'Embperl SSI',
           },
       'inctext.htm' => { 
  -        'version'    => 2,
  +        'ep1compat'    => 0,
           },
       'incperl.htm' => { 
           'version'    => 2,
  @@ -490,10 +519,11 @@
   # avoid some warnings:
   
   use vars qw ($httpconfsrc $httpconf $EPPORT $EPPORT2 *SAVEERR *ERR $EPHTTPDDLL 
$EPSTARTUP $EPDEBUG
  -             $EPSESSIONDS $EPSESSIONCLASS $EPSESSIONVERSION $EP1COMPAT
  +             $testshare
  +            $EPSESSIONDS $EPSESSIONCLASS $EPSESSIONVERSION $EP1COMPAT
               $opt_offline $opt_ep1 $opt_cgi $opt_modperl $opt_execute $opt_nokill 
$opt_loop
               $opt_multchild $opt_memcheck $opt_exitonmem $opt_exitonsv $opt_config 
$opt_nostart $opt_uniquefn
  -            $opt_quite $opt_ignoreerror $opt_tests $opt_blib $opt_help 
$opt_dbgbreak $opt_finderr
  +            $opt_quite $opt_qq $opt_ignoreerror $opt_tests $opt_blib $opt_help 
$opt_dbgbreak $opt_finderr
               $opt_ddd $opt_gdb $opt_ab $opt_abpre $opt_abverbose $opt_start 
$opt_startinter $opt_kill $opt_showcookie $opt_cache) ;
   
       {
  @@ -579,7 +609,7 @@
   $@ = "" ;
   $ret = GetOptions ("offline|o", "ep1|1", "cgi|c", "cache|a", "modperl|httpd|h", 
"execute|e", "nokill|r", "loop|l:i",
               "multchild|m", "memcheck|v", "exitonmem|g", "exitonsv", "config|f=s", 
"nostart|x", "uniquefn|u",
  -            "quite|q", "ignoreerror|i", "tests|t", "blib|b", "help", "dbgbreak", 
"finderr",
  +            "quite|q",  "qq", "ignoreerror|i", "tests|t", "blib|b", "help", 
"dbgbreak", "finderr",
            "ddd", "gdb", "ab:s", "abverbose", "abpre", "start", "startinter", "kill", 
"showcookie") ;
   
   $opt_help = 1 if ($ret == 0) ;
  @@ -1073,6 +1103,7 @@
   
   $outfile .= ".$$" if ($opt_uniquefn) ;
   $defaultdebug = 1 if ($opt_quite) ;
  +$defaultdebug = 0 if ($opt_qq) ;
   $opt_ep1 = 0 if (!$EP2) ;
   $EP1COMPAT = 1 if ($opt_ep1) ;
   
  @@ -1143,9 +1174,12 @@
   $version = $EP2?2:1 ;
   $frommem = 0 ;
        
  +$testshare = "Shared Data" ; 
  +
   $cp = HTML::Embperl::AddCompartment ('TEST') ;
   
   $cp -> deny (':base_loop') ;
  +$cp -> share ('$testshare') ;
   
   $ENV{EMBPERL_ALLOW} = 'asc|\\.htm$|\\.htm-1$' ;
   
  @@ -1192,6 +1226,7 @@
                   next if ($test->{version} && $testversion != $test->{version}) ;
                   next if ((defined ($test -> {offline}) && $test -> {offline} == 0) 
||
                                 (!$test -> {offline} && ($test -> {modperl} || $test 
-> {cgi} || $test -> {http}))) ;
  +                next if ($version == 2 && $ep1compat && defined ($test -> 
{ep1compat}) && !$test -> {ep1compat}) ;
   
                next if ($DProf && ($file =~ /safe/)) ;
                next if ($DProf && ($file =~ /opmask/)) ;
  @@ -1200,6 +1235,7 @@
                   $errcnt = 7 if ($file eq 'varerr.htm' && $^V && $^V ge v5.6.0) ;
   
                   $debug = $test -> {debug} || $defaultdebug ;  
  +             $debug = 0 if ($opt_qq) ;
                $page = "$inpath/$file" ;
                $page = "$inpath$testversion/$file" if (-e 
"$inpath$testversion/$file") ;
                   #$page .= '-1' if ($ep1compat && -e "$page-1") ;
  @@ -1211,7 +1247,10 @@
                $ENV{EMBPERL_OPTIONS} = $test -> {option} if (defined ($test -> 
{option})) ;
                delete $ENV{EMBPERL_SYNTAX} ;
                   $ENV{EMBPERL_SYNTAX} = $test -> {syntax} if (defined ($test -> 
{syntax})) ;
  +             delete $ENV{EMBPERL_COMPARTMENT} if (defined 
($ENV{EMBPERL_COMPARTMENT})) ;
                $ENV{EMBPERL_COMPARTMENT} = $test -> {compartment} if (defined ($test 
-> {compartment})) ;
  +             delete $ENV{EMBPERL_PACKAGE}  if (defined (delete 
$ENV{EMBPERL_PACKAGE})) ;
  +             $ENV{EMBPERL_PACKAGE}     = $test -> {'package'} if (defined ($test -> 
{'package'})) ;
                @testargs = ( '-o', $outfile ,
                              '-l', $logfile,
                              '-d', $debug,
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.29.4.1  +2 -2      embperl/Embperl/Mail.pm
  
  Index: Mail.pm
  ===================================================================
  RCS file: /home/cvs/embperl/Embperl/Mail.pm,v
  retrieving revision 1.29
  retrieving revision 1.29.4.1
  diff -u -r1.29 -r1.29.4.1
  --- Mail.pm   2000/09/11 09:53:33     1.29
  +++ Mail.pm   2001/03/27 11:52:29     1.29.4.1
  @@ -9,7 +9,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: Mail.pm,v 1.29 2000/09/11 09:53:33 richter Exp $
  +#   $Id: Mail.pm,v 1.29.4.1 2001/03/27 11:52:29 richter Exp $
   #
   ###################################################################################
   
  @@ -32,7 +32,7 @@
   @ISA = qw(HTML::Embperl);
   
   
  -$VERSION = '1.3b4';
  +$VERSION = '1.3.1';
   
   
   
  
  
  
  1.28.6.1  +2 -17     embperl/Embperl/Module.pm
  
  Index: Module.pm
  ===================================================================
  RCS file: /home/cvs/embperl/Embperl/Module.pm,v
  retrieving revision 1.28
  retrieving revision 1.28.6.1
  diff -u -r1.28 -r1.28.6.1
  --- Module.pm 2000/05/02 06:43:27     1.28
  +++ Module.pm 2001/03/27 11:52:30     1.28.6.1
  @@ -1,6 +1,6 @@
   ###################################################################################
   #
  -#   Embperl - Copyright (c) 1997-2000 Gerald Richter / ECOS
  +#   Embperl - Copyright (c) 1997-2001 Gerald Richter / ECOS
   #
   #   You may distribute under the terms of either the GNU General Public
   #   License or the Artistic License, as specified in the Perl README file.
  @@ -9,25 +9,10 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: Module.pm,v 1.28 2000/05/02 06:43:27 richter Exp $
  +#   $Id: Module.pm,v 1.28.6.1 2001/03/27 11:52:30 richter Exp $
   #
   ###################################################################################
   
  -
  -###################################################################################
  -#
  -#   Embperl - Copyright (c) 1997-2000 Gerald Richter / ECOS
  -#
  -#   You may distribute under the terms of either the GNU General Public
  -#   License or the Artistic License, as specified in the Perl README file.
  -#
  -#   THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
  -#   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  -#   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  -#
  -#   $Id: Module.pm,v 1.28 2000/05/02 06:43:27 richter Exp $
  -#
  -###################################################################################
   
   
   package HTML::Embperl::Module ;
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.19.4.3  +7 -0      embperl/test/cmp/escape.htm
  
  Index: escape.htm
  ===================================================================
  RCS file: /home/cvs/embperl/test/cmp/escape.htm,v
  retrieving revision 1.19.4.2
  retrieving revision 1.19.4.3
  diff -u -r1.19.4.2 -r1.19.4.3
  --- escape.htm        2000/09/14 05:08:29     1.19.4.2
  +++ escape.htm        2001/03/27 11:52:32     1.19.4.3
  @@ -46,6 +46,13 @@
   Hash in  H <a href="http://localhost/tests?A=1&amp;B=2">
   Array in H <a href="http://localhost/tests?X=9&amp;Y=8&amp;Z=7">
   
  +<a href="tst.html?par1=1&amp;par2=2">1</a>
  +<a href="tst.html?par1=1&amp;par2=2&amp;par3=3">2</a>
  +<a href="tst.html?par1=1&amp;par2=2">3</a>
  +<a href="tst.html?par1=1&amp;par2=2&amp;par3=3">4</a>
  +
  +
  +
                        
   1
   Now lets look what we are getting from this:<BR>
  
  
  
  1.3.6.1   +3 -0      embperl/test/cmp/opmask.htm
  
  Index: opmask.htm
  ===================================================================
  RCS file: /home/cvs/embperl/test/cmp/opmask.htm,v
  retrieving revision 1.3
  retrieving revision 1.3.6.1
  diff -u -r1.3 -r1.3.6.1
  --- opmask.htm        1999/10/05 06:02:18     1.3
  +++ opmask.htm        2001/03/27 11:52:33     1.3.6.1
  @@ -285,6 +285,9 @@
       </tr> 
   </table>
   
  +    Shared data: Shared Data <br>
  +Not Shared data:  <br>
  +
   <P><P>
   
   <P>17<P>
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.13.4.4  +12 -0     embperl/test/html/escape.htm
  
  Index: escape.htm
  ===================================================================
  RCS file: /home/cvs/embperl/test/html/escape.htm,v
  retrieving revision 1.13.4.3
  retrieving revision 1.13.4.4
  diff -u -r1.13.4.3 -r1.13.4.4
  --- escape.htm        2000/12/18 11:38:55     1.13.4.3
  +++ escape.htm        2001/03/27 11:52:36     1.13.4.4
  @@ -52,6 +52,18 @@
   Hash in  H <A HREF="http://localhost/tests?[+ \\%H +]">
   Array in H <A HREF="http://localhost/tests?[+ scalar { @H } +]">
   
  +
  +[-
  +%fdat = ( par1 => 1, par2 => 2 );
  +-]
  +
  +
  +<a href="tst.html?[+ \\%fdat +]">1</a>
  +<a href="tst.html?[+ scalar ({ par3 => 3, %fdat }) +]">2</a>
  +<a href="tst.html?[+ scalar ({ %fdat }) +]">3</a>
  +<a href="tst.html?[+ scalar ({ %fdat, par3 => 3 }) +]">4</a>
  +
  +
                
   [+ $escmode = 1 +]
   
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.1.6.1 +3 -0      embperl/test/html/opmask/opmask.htm
  
  Index: opmask.htm
  ===================================================================
  RCS file: /home/cvs/embperl/test/html/opmask/opmask.htm,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.1.6.1
  diff -u -r1.1.2.1 -r1.1.2.1.6.1
  --- opmask.htm        1998/07/14 20:11:24     1.1.2.1
  +++ opmask.htm        2001/03/27 11:52:39     1.1.2.1.6.1
  @@ -201,6 +201,9 @@
       </tr> 
   </table>
   
  +    Shared data: [+ $testshare +] <br>
  +Not Shared data: [+ $testshareX +] <br>
  +
   <P>[+ $HTML::Embperl::VERSION +]<P>
   
   <P>[+ $tabmode +]<P>
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to