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, "&") ;
}
- if ((i & 1) == 0)
- oputc (r, '=' ) ;
- else if (i < f)
- oputs (r, "&") ;
}
-
- }
- 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, "&") ;
- 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, "&") ;
+ 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&B=2">
Array in H <a href="http://localhost/tests?X=9&Y=8&Z=7">
+<a href="tst.html?par1=1&par2=2">1</a>
+<a href="tst.html?par1=1&par2=2&par3=3">2</a>
+<a href="tst.html?par1=1&par2=2">3</a>
+<a href="tst.html?par1=1&par2=2&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]