You are viewing a plain text version of this content. The canonical link for it is here.
Posted to embperl-cvs@perl.apache.org by ri...@apache.org on 2001/04/27 08:38:16 UTC

cvs commit: embperl/test/html table.htm

richter     01/04/26 23:38:16

  Modified:    .        Changes.pod Embperl.pm Embperl.pod Embperl.xs
                        EmbperlD.pod MANIFEST Makefile.PL NEWS.pod README
                        ep.h epchar.c epchar.c.iso-latin-2 epchar.c.min
                        epdat.h epmain.c epnames.h eputil.c test.pl typemap
               test/html table.htm
  Added:       .        epapinit.c
  Log:
  Fix problem with magic variables for first call of a page
  
  Revision  Changes    Path
  1.158     +12 -3     embperl/Changes.pod
  
  Index: Changes.pod
  ===================================================================
  RCS file: /home/cvs/embperl/Changes.pod,v
  retrieving revision 1.157
  retrieving revision 1.158
  diff -u -r1.157 -r1.158
  --- Changes.pod	2001/03/27 04:26:41	1.157
  +++ Changes.pod	2001/04/27 06:37:50	1.158
  @@ -6,18 +6,27 @@
   
   NOTE: This version is only available via L<"CVS"|CVS/"INTRO">
   
  -   - Fixed bug in SetSessionCookie which had called undefined method 
  -     getinitalid.  Spotted by Sun Choi.
  -   - Additions to IntroEmbperlObject.pod by Neil Gunton.
      - Emulate the syntax => Text parameter of Embperl 2.0, which allows 
        to include pure text files any without interpretation. Requested
        by Kee Hinckley.
  +   - Fixed problem with corrupted @ISA, that had occured when a page was
  +     first requested without EmbperlObject and then with EmbperlObject.
      - Catch exceptions inside of Embperl.pm and correctly cleanup the
        request. This avoids problems in further request in case anything
        was really going wrong.
      - If the base template in an EmbperlObject request is requested
        directly the Execute ('*') does nothing, to avoid
        endless recursion.
  +   - Fixed bug in SetSessionCookie which had called undefined method 
  +     getinitalid.  Spotted by Sun Choi.
  +   - Removed wrong expire setting from SetSessionCookie, spotted 
  +     by Michael Stevens.
  +   - Additions to IntroEmbperlObject.pod by Neil Gunton.
  +   - ';' is now accepcted as separator for query strings addtionaly
  +     to the '&' character. Patch from Brent A. Ellingson.
  +   - ';' is now escaped to %3B when outputed inside a URL.
  +   - Embperl is now added to the Serversoftware identification when 
  +     preloaded under mod_perl.
   
   =head1 1.3.1 (RELEASE)   13 Feb. 2001
   
  
  
  
  1.146     +49 -86    embperl/Embperl.pm
  
  Index: Embperl.pm
  ===================================================================
  RCS file: /home/cvs/embperl/Embperl.pm,v
  retrieving revision 1.145
  retrieving revision 1.146
  diff -u -r1.145 -r1.146
  --- Embperl.pm	2001/03/27 12:27:49	1.145
  +++ Embperl.pm	2001/04/27 06:37:51	1.146
  @@ -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.145 2001/03/27 12:27:49 richter Exp $
  +#   $Id: Embperl.pm,v 1.146 2001/04/27 06:37:51 richter Exp $
   #
   ###################################################################################
   
  @@ -838,13 +838,12 @@
   
   
       my $package ;
  -    my $syntax ;
       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,
  +    my $r = SetupRequest ($ar, $Inputfile, $mtime, $filesize, ($$req{firstline} || 1), $Outputfile, $conf,
                             &epIOMod_Perl, $In, $Out, $Sub, 
   			   defined ($import)?scalar(caller ($import > 0?$import - 1:0)):'',
  -                          $SessionMgnt, $syntax) ;
  +                          $SessionMgnt, $req -> {'syntax'} || '') ;
       
       eval
           {
  @@ -942,25 +941,8 @@
   	        my $oldfh = select (OUT) if ($optRedirectStdout) ;
   	        my $saver = $r ;
           
  -
   	        $@ = undef ;
  -                if (exists ($req -> {'syntax'}) && $req -> {'syntax'} eq 'Text')
  -                    {
  -                    if (open FH, "<$Inputfile")
  -                        {
  -                        local $escmode = 0 ;
  -                        output ($_) while (<FH>) ;
  -			close FH ;
  -                        }
  -                    else
  -                        {
  -                        $r -> logerror (rcFileOpenErr, $Inputfile) ;
  -                        }
  -                    }
  -                else
  -                    {
  -                    $rc = CleanCallExecuteReq ($r, $$req{'param'}) ;
  -                    }
  +                $rc = CleanCallExecuteReq ($r, $$req{'param'}) ;
           
   	        $r = $saver ;
   	        select ($oldfh) if ($optRedirectStdout) ;
  @@ -1649,9 +1631,15 @@
   
   package HTML::Embperl::Req ; 
   
  +
   #######################################################################################
   
   use strict ;
  +use vars qw {
  +            @AliasScalar
  +            @AliasHash
  +            @AliasArray
  +            } ;
   
   
   if (defined ($ENV{MOD_PERL}))
  @@ -1830,7 +1818,6 @@
           my $domain = "; domain=$ENV{EMBPERL_COOKIE_DOMAIN}" if (exists ($ENV{EMBPERL_COOKIE_DOMAIN})) ;
           my $path   = "; path=$ENV{EMBPERL_COOKIE_PATH}" if (exists ($ENV{EMBPERL_COOKIE_PATH})) ;
           my $expires = "; expires=$ENV{EMBPERL_COOKIE_EXPIRES}" if (exists ($ENV{EMBPERL_COOKIE_EXPIRES})) ;
  -        $expires = "; expires=Thu, 1-Jan-1970 00:00:01 GMT" if ($id && !$initialid) ;
                           
           if ($id || $initialid)
               {    
  @@ -1844,12 +1831,32 @@
   
   #######################################################################################
   
  +@AliasScalar = qw{row col cnt maxrow maxcol tabmode escmode req_rec  
  +                    dbgAll            dbgAllCmds        dbgCmd            dbgDefEval        dbgEarlyHttpHeader
  +                    dbgEnv            dbgEval           dbgFlushLog       dbgFlushOutput    dbgForm           
  +                    dbgFunc           dbgHeadersIn      dbgImport         dbgInput          dbgLogLink        
  +                    dbgMem            dbgProfile        dbgShowCleanup    dbgSource         dbgStd            
  +                    dbgSession        dbgTab            dbgWatchScalar    dbgParse          dbgObjectSearch   
  +                    optDisableChdir           optDisableEmbperlErrorPage    optReturnError	       optDisableFormData        
  +                    optDisableHtmlScan        optDisableInputScan       optDisableMetaScan        optDisableTableScan       
  +                    optDisableSelectScan      optDisableVarCleanup      optEarlyHttpHeader        optOpcodeMask             
  +                    optRawInput               optSafeNamespace          optSendHttpHeader         optAllFormData            
  +                    optRedirectStdout         optUndefToEmptyValue      optNoHiddenEmptyValue     optAllowZeroFilesize      
  +                    optKeepSrcInMemory        optKeepSpaces	       optOpenLogEarly           optNoUncloseWarn	       
  +                    } ;
  +@AliasHash   = qw{fdat udat mdat idat http_headers_out fsplitfdat} ;
  +@AliasArray  = qw{ffld} ;
  +
  +#######################################################################################
  +
   sub CreateAliases
   
       {
       my ($self) = @_ ;
       
       my $package = $self -> CurrPackage ;
  +
  +    my $dummy ;
       
       no strict ;
   
  @@ -1857,21 +1864,23 @@
       if (!defined(${"$package\:\:row"}))
           { # create new aliases for Embperl magic vars
   
  -        *{"$package\:\:fdat"}    = \%HTML::Embperl::fdat ;
  -        *{"$package\:\:udat"}    = \%HTML::Embperl::udat ;
  -        *{"$package\:\:mdat"}    = \%HTML::Embperl::mdat ;
  -        *{"$package\:\:fsplitdat"}    = \%HTML::Embperl::fsplitdat ;
  -        *{"$package\:\:ffld"}    = \@HTML::Embperl::ffld ;
  -        *{"$package\:\:idat"}    = \%HTML::Embperl::idat ;
  -        *{"$package\:\:cnt"}     = \$HTML::Embperl::cnt ;
  -        *{"$package\:\:row"}     = \$HTML::Embperl::row ;
  -        *{"$package\:\:col"}     = \$HTML::Embperl::col ;
  -        *{"$package\:\:maxrow"}  = \$HTML::Embperl::maxrow ;
  -        *{"$package\:\:maxcol"}  = \$HTML::Embperl::maxcol ;
  -        *{"$package\:\:tabmode"} = \$HTML::Embperl::tabmode ;
  -        *{"$package\:\:escmode"} = \$HTML::Embperl::escmode ;
  -        *{"$package\:\:http_headers_out"} = \%HTML::Embperl::http_headers_out ;
  -    	*{"$package\:\:req_rec"} = \$HTML::Embperl::req_rec ; 
  +        foreach (@AliasScalar)
  +            {
  +            *{"$package\:\:$_"}    = \${"HTML::Embperl\:\:$_"} ;
  +            $dummy = ${"$package\:\:$_"} ; # necessary to make sure variable exists!
  +            $dummy = ${"HTML::Embperl\:\:$_"} ; # necessary to make sure variable exists!
  +            $dummy = ${"HTML::Embperl\:\:$_"} ; # necessary to make sure variable exists!
  +            }
  +
  +        foreach (@AliasHash)
  +            {
  +            *{"$package\:\:$_"}    = \%{"HTML::Embperl\:\:$_"} ;
  +            }
  +        foreach (@AliasArray)
  +            {
  +            *{"$package\:\:$_"}    = \@{"HTML::Embperl\:\:$_"} ;
  +            }
  +
       	if (defined (&Apache::exit))
               {
               *{"$package\:\:exit"}    = \&Apache::exit 
  @@ -1887,58 +1896,12 @@
   
           tie *{"$package\:\:LOG"}, 'HTML::Embperl::Log' ;
           tie *{"$package\:\:OUT"}, 'HTML::Embperl::Out' ;
  -
  -        *{"$package\:\:optDisableChdir"}                = \$HTML::Embperl::optDisableChdir                   ;
  -        *{"$package\:\:optDisableEmbperlErrorPage"}     = \$HTML::Embperl::optDisableEmbperlErrorPage ;
  -        *{"$package\:\:optDisableFormData"}             = \$HTML::Embperl::optDisableFormData         ;
  -        *{"$package\:\:optDisableHtmlScan"}             = \$HTML::Embperl::optDisableHtmlScan         ;
  -        *{"$package\:\:optDisableInputScan"}            = \$HTML::Embperl::optDisableInputScan        ;
  -        *{"$package\:\:optDisableMetaScan"}             = \$HTML::Embperl::optDisableMetaScan         ;
  -        *{"$package\:\:optDisableTableScan"}            = \$HTML::Embperl::optDisableTableScan        ;
  -        *{"$package\:\:optDisableVarCleanup"}           = \$HTML::Embperl::optDisableVarCleanup       ;
  -        *{"$package\:\:optEarlyHttpHeader"}             = \$HTML::Embperl::optEarlyHttpHeader         ;
  -        *{"$package\:\:optOpcodeMask"}                  = \$HTML::Embperl::optOpcodeMask              ;
  -        *{"$package\:\:optRawInput"}                    = \$HTML::Embperl::optRawInput                ;
  -        *{"$package\:\:optSafeNamespace"}               = \$HTML::Embperl::optSafeNamespace           ;
  -        *{"$package\:\:optSendHttpHeader"}              = \$HTML::Embperl::optSendHttpHeader          ;
  -        *{"$package\:\:optAllFormData"}                 = \$HTML::Embperl::optAllFormData ;
  -        *{"$package\:\:optRedirectStdout"}              = \$HTML::Embperl::optRedirectStdout ;
  -        *{"$package\:\:optUndefToEmptyValue"}           = \$HTML::Embperl::optUndefToEmptyValue ;
  -        *{"$package\:\:optNoHiddenEmptyValue"}          = \$HTML::Embperl::optNoHiddenEmptyValue ;
  -        *{"$package\:\:optAllowZeroFilesize"}           = \$HTML::Embperl::optAllowZeroFilesize ;
  -        *{"$package\:\:optKeepSrcInMemory"}             = \$HTML::Embperl::optKeepSrcInMemory ;
  -        *{"$package\:\:optKeepSpaces"}                  = \$HTML::Embperl::optKeepSpaces ;
  -        *{"$package\:\:optOpenLogEarly"}                = \$HTML::Embperl::optOpenLogEarly ;
  -        *{"$package\:\:optNoUncloseWarn"}               = \$HTML::Embperl::optNoUncloseWarn ;
  -
  -
  -        *{"$package\:\:dbgAllCmds"}               = \$HTML::Embperl::dbgAllCmds           ;
  -        *{"$package\:\:dbgCmd"}                   = \$HTML::Embperl::dbgCmd               ;
  -        *{"$package\:\:dbgDefEval"}               = \$HTML::Embperl::dbgDefEval           ;
  -        *{"$package\:\:dbgEarlyHttpHeader"}       = \$HTML::Embperl::dbgEarlyHttpHeader   ;
  -        *{"$package\:\:dbgEnv"}                   = \$HTML::Embperl::dbgEnv               ;
  -        *{"$package\:\:dbgEval"}                  = \$HTML::Embperl::dbgEval              ;
  -        *{"$package\:\:dbgFlushLog"}              = \$HTML::Embperl::dbgFlushLog          ;
  -        *{"$package\:\:dbgFlushOutput"}           = \$HTML::Embperl::dbgFlushOutput       ;
  -        *{"$package\:\:dbgForm"}                  = \$HTML::Embperl::dbgForm              ;
  -        *{"$package\:\:dbgFunc"}                  = \$HTML::Embperl::dbgFunc              ;
  -        *{"$package\:\:dbgHeadersIn"}             = \$HTML::Embperl::dbgHeadersIn         ;
  -        *{"$package\:\:dbgInput"}                 = \$HTML::Embperl::dbgInput             ;
  -        *{"$package\:\:dbgLogLink"}               = \$HTML::Embperl::dbgLogLink           ;
  -        *{"$package\:\:dbgMem"}                   = \$HTML::Embperl::dbgMem               ;
  -        *{"$package\:\:dbgProfile"}               = \$HTML::Embperl::dbgProfile           ;
  -        *{"$package\:\:dbgShowCleanup"}           = \$HTML::Embperl::dbgShowCleanup       ;
  -        *{"$package\:\:dbgSource"}                = \$HTML::Embperl::dbgSource            ;
  -        *{"$package\:\:dbgStd"}                   = \$HTML::Embperl::dbgStd               ;
  -        *{"$package\:\:dbgTab"}                   = \$HTML::Embperl::dbgTab               ;
  -        *{"$package\:\:dbgWatchScalar"}           = \$HTML::Embperl::dbgWatchScalar       ;
  -
  -        #print LOG  "[$$]MEM:  Created Aliases for $package\n" ;
   
  +        #warn  "[$$]MEM:  Created Aliases for $package\n" ;
           }
   
   
  -    ${"$package\:\:req_rec"} = $self -> ApacheReq ;
  +     ${"$package\:\:req_rec"} = $self -> ApacheReq ;
   #    print HTML::Embperl::LOG  "[$$]MEM:  " . $self -> ApacheReq . "\n" ;
   
       use strict ;
  
  
  
  1.69      +5 -0      embperl/Embperl.pod
  
  Index: Embperl.pod
  ===================================================================
  RCS file: /home/cvs/embperl/Embperl.pod,v
  retrieving revision 1.68
  retrieving revision 1.69
  diff -u -r1.68 -r1.69
  --- Embperl.pod	2001/02/13 05:48:54	1.68
  +++ Embperl.pod	2001/04/27 06:37:52	1.69
  @@ -412,6 +412,11 @@
   
       [! Execute ({'isa' => '../eposubs.htm'}) !]
   
  +=item B<syntax>  (1.3.2 and above)
  +
  +In 1.3.x the only value that is accepted is 'Text', this emulates the
  +Embperl 2.0 behaviour of simply passing the whole text thru, without
  +doing any processing.
   
   =back
   
  
  
  
  1.40      +17 -14    embperl/Embperl.xs
  
  Index: Embperl.xs
  ===================================================================
  RCS file: /home/cvs/embperl/Embperl.xs,v
  retrieving revision 1.39
  retrieving revision 1.40
  diff -u -r1.39 -r1.40
  --- Embperl.xs	2001/03/27 12:27:49	1.39
  +++ Embperl.xs	2001/04/27 06:37:53	1.40
  @@ -396,19 +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
  -
  -
  +
  +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
  @@ -746,8 +746,11 @@
   
   #endif
   
  -# Reste Module, so we get the correct boot function
  +# Reset Module, so we get the correct boot function
   
   MODULE = HTML::Embperl      PACKAGE = HTML::Embperl     PREFIX = embperl_
  +
  +
  +
   
   
  
  
  
  1.41      +6 -0      embperl/EmbperlD.pod
  
  Index: EmbperlD.pod
  ===================================================================
  RCS file: /home/cvs/embperl/EmbperlD.pod,v
  retrieving revision 1.40
  retrieving revision 1.41
  diff -u -r1.40 -r1.41
  --- EmbperlD.pod	2001/02/13 05:50:02	1.40
  +++ EmbperlD.pod	2001/04/27 06:37:53	1.41
  @@ -364,6 +364,12 @@
   
       [! Execute ({'isa' => '../eposubs.htm'}) !]
   
  +=item B<syntax>  (ab 1.3.2)
  +
  +In der Version 1.3.x wird lediglich der Wert 'Text' akzetiert, dieser
  +f�hrt dazu, dass das Verhalten von Embperl 2.0 emuliert wird und 
  +der Text lediglich durchgereicht wird und keine Verarbeitung
  +stattfindet.
   
   =back
   
  
  
  
  1.65      +1 -1      embperl/MANIFEST
  
  Index: MANIFEST
  ===================================================================
  RCS file: /home/cvs/embperl/MANIFEST,v
  retrieving revision 1.64
  retrieving revision 1.65
  diff -u -r1.64 -r1.65
  --- MANIFEST	2001/03/27 12:27:49	1.64
  +++ MANIFEST	2001/04/27 06:37:54	1.65
  @@ -54,7 +54,7 @@
   eputil.c
   epnames.h
   epmacro.h
  -epdbg.c
  +epapinit.c
   test.pl
   test/html/ascii
   test/html/binary.htm
  
  
  
  1.42      +6 -6      embperl/Makefile.PL
  
  Index: Makefile.PL
  ===================================================================
  RCS file: /home/cvs/embperl/Makefile.PL,v
  retrieving revision 1.41
  retrieving revision 1.42
  diff -u -r1.41 -r1.42
  --- Makefile.PL	2001/03/27 12:27:49	1.41
  +++ Makefile.PL	2001/04/27 06:37:55	1.42
  @@ -792,11 +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" ;
  -        }
  -        
  +    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 ###
  @@ -907,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) ' . 
  +    'OBJECT'       => 'Embperl$(OBJ_EXT) epmain$(OBJ_EXT) epio$(OBJ_EXT) epchar$(OBJ_EXT) epcmd$(OBJ_EXT) eputil$(OBJ_EXT) epeval$(OBJ_EXT) epapinit$(OBJ_EXT)' . 
                          ($EP2?'epcmd2$(OBJ_EXT) epparse$(OBJ_EXT) epdom$(OBJ_EXT) epcomp$(OBJ_EXT)':'') . $o,
       'LIBS'	   => [''],   			 
       'DEFINE'	   => "$d \$(DEFS)", 			 
  
  
  
  1.4       +32 -0     embperl/NEWS.pod
  
  Index: NEWS.pod
  ===================================================================
  RCS file: /home/cvs/embperl/NEWS.pod,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- NEWS.pod	2000/12/23 20:13:20	1.3
  +++ NEWS.pod	2001/04/27 06:37:55	1.4
  @@ -3,6 +3,38 @@
   
   =over 4
   
  +=item * 29. Mar 2001
  +
  +Embperl 2.0b2 released. The main news are the support for interactive
  +debuggers and the possibility to use different syntaxes. 
  +
  +ftp://ftp.dev.ecos.de/pub/perl/embperl/HTML-Embperl-2.0b2.tar.gz
  +
  +=item * 25. Mar 2001
  +
  +My talk from the 3. German Perl-Workshop (http://www.perlworkshop.de)
  +is available at http://www.ecos.de/ep/pod/conf/ApCon2001.Embperl.zip .
  +It also contains a good introduction to the new features in Embperl 2.0 . 
  +
  +=item * 1. Mar 2001
  +
  +I will give a talk on the ApacheCon 2001 (http://www.apachecon.com/) about 
  +"Embperl - Building dynamic Websites with Perl" 
  +
  +=item * 13. Feb 2001
  +
  +Embperl 1.3.1 released 
  +
  +=item * 12. Feb 2001
  +
  +New tutorial from Neil Gunton for EmbperlObject is available online. 
  +Also now the full documentation of DBIx::Recordset is available online 
  +and a new section about Tips & Tricks. Everybody is welcome to 
  +contribute their own Tips & Tricks!. See
  +
  +perldoc IntroEmbperlObject.pod
  +perldoc TipsAndTricks.pod
  +
   =item * 22. Dec 2000 
   
   After long time of talking, designing, developing, codeing and testing I am
  
  
  
  1.26      +14 -14    embperl/README
  
  Index: README
  ===================================================================
  RCS file: /home/cvs/embperl/README,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- README	2001/02/13 05:48:54	1.25
  +++ README	2001/04/27 06:37:56	1.26
  @@ -9,22 +9,22 @@
   WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF 
   MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   
  -$Id: README,v 1.25 2001/02/13 05:48:54 richter Exp $
  -
  +$Id: README,v 1.26 2001/04/27 06:37:56 richter Exp $
   
  +
   OVERVIEW
   ========
  +
  +Embperl gives you the power to embed Perl code in your HTML documents
  +and the ability to build your Web site out of small reusable objects in
  +an object-oriented style. You can also take advantage of all the
  +usual Perl modules, (including DBI for database access) use their
  +functionality and easily include their output in your web pages.
  +
  +Embperl has several features which are especially useful for creating
  +HTML, including dynamic tables, form field processing, URL
  +escaping/unescaping, session handling, and more.
   
  -Embperl gives you the power to embed Perl code in your HTML documents
  -and the ability to build your Web site out of small reusable objects in
  -an object-oriented style. You can also take advantage of all the
  -usual Perl modules, (including DBI for database access) use their
  -functionality and easily include their output in your web pages.
  -
  -Embperl has several features which are especially useful for creating
  -HTML, including dynamic tables, form field processing, URL
  -escaping/unescaping, session handling, and more.
  -
   Embperl is a server-side tool, which means that it's browser-independent. 
   It can run in various ways: under mod_perl, as a CGI script, or offline.
   
  @@ -39,13 +39,13 @@
   The following documentation is available within the distribution
   
   Features of Embperl:            perldoc Features.pod
  -Introduction to Embperl:        perldoc Intro.pod
  +Introduction to Embperl:        perldoc Intro.pod
   Introduction to EmbperlObject:  perldoc IntroEmbperlObject.pod
   Installation of Embperl:        perldoc INSTALL.pod
   Full documentation:             perldoc Embperl.pod
                                   perldoc EmbperlObject.pm
                                   perldoc Embperl/Mail.pm
  -Frequent Asked Questions:       perldoc Faq.pod
  +Frequent Asked Questions:       perldoc Faq.pod
   Tips and Tricks:                perldoc TipsAndTricks.pod
   Changes:                        perldoc Changes.pod
   Examples:		        eg/x/README
  
  
  
  1.35      +5 -0      embperl/ep.h
  
  Index: ep.h
  ===================================================================
  RCS file: /home/cvs/embperl/ep.h,v
  retrieving revision 1.34
  retrieving revision 1.35
  diff -u -r1.34 -r1.35
  --- ep.h	2001/03/27 12:27:49	1.34
  +++ ep.h	2001/04/27 06:37:57	1.35
  @@ -142,6 +142,11 @@
   #elif MODULE_MAGIC_NUMBER >= 19980413
   #include "compat.h"
   #endif
  +
  +
  +module MODULE_VAR_EXPORT embperl_module;
  +
  +
   #endif
   
   struct tReq ;
  
  
  
  1.14      +2 -2      embperl/epchar.c
  
  Index: epchar.c
  ===================================================================
  RCS file: /home/cvs/embperl/epchar.c,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- epchar.c	2001/02/13 05:39:18	1.13
  +++ epchar.c	2001/04/27 06:37:58	1.14
  @@ -10,7 +10,7 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: epchar.c,v 1.13 2001/02/13 05:39:18 richter Exp $
  +#   $Id: epchar.c,v 1.14 2001/04/27 06:37:58 richter Exp $
   #
   ###################################################################################*/
   
  @@ -352,7 +352,7 @@
           { '8' ,   ""         },    /* 	&#56;		Digit 8  */
           { '9' ,   ""         },    /* 	&#57;		Digit 9  */
           { ':' ,   ""         },    /* 	&#58;		Colon  */
  -        { ';' ,   ""      },    /* 	&#59;		Semicolon  */
  +        { ';' ,   "%3B"      },    /* 	&#59;		Semicolon  */
           { '<' ,   "%3C"      },    /* 	Less than  */
           { '=' ,   "%3D"      },    /* 	&#61;		Equals sign  */
           { '>' ,   "%3E"      },    /* 	Greater than  */
  
  
  
  1.4       +65 -65    embperl/epchar.c.iso-latin-2
  
  Index: epchar.c.iso-latin-2
  ===================================================================
  RCS file: /home/cvs/embperl/epchar.c.iso-latin-2,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- epchar.c.iso-latin-2	1999/08/10 13:36:55	1.3
  +++ epchar.c.iso-latin-2	2001/04/27 06:37:59	1.4
  @@ -291,71 +291,71 @@
   struct tCharTrans Char2Url [] = 
   
       {
  -        { ' ' ,   "%00"         },    /* &#00;		Unused */ 
  -        { ' ' ,   "%01"         },    /* &#01;		Unused */
  -        { ' ' ,   "%02"         },    /* &#02;		Unused  */
  -        { ' ' ,   "%03"         },    /* &#03;		Unused  */
  -        { ' ' ,   "%04"         },    /* &#04;		Unused  */
  -        { ' ' ,   "%05"         },    /* &#05;		Unused  */
  -        { ' ' ,   "%06"         },    /* &#06;		Unused  */
  -        { ' ' ,   "%07"         },    /* &#07;		Unused  */
  -        { ' ' ,   "%08"         },    /* &#08;		Unused  */
  -        { ' ' ,   "%09"         },    /* &#09;		Horizontal tab  */
  -        { ' ' ,   "%0A"         },    /* &#10;		Line feed  */
  -        { ' ' ,   "%0B"         },    /* &#11;		Unused  */
  -        { ' ' ,   "%0C"         },    /* &#12;		Unused  */
  -        { ' ' ,   "%0D"         },    /* &#13;		Carriage Return  */
  -        { ' ' ,   "%0E"         },    /* &#14;		Unused  */
  -        { ' ' ,   "%0F"         },    /* &#15;		Unused  */
  -        { ' ' ,   "%10"         },    /* &#16;		Unused  */
  -        { ' ' ,   "%11"         },    /* &#17;		Unused  */
  -        { ' ' ,   "%12"         },    /* &#18;		Unused  */
  -        { ' ' ,   "%13"         },    /* &#19;		Unused  */
  -        { ' ' ,   "%14"         },    /* &#20;		Unused  */
  -        { ' ' ,   "%15"         },    /* &#21;		Unused  */
  -        { ' ' ,   "%16"         },    /* &#22;		Unused  */
  -        { ' ' ,   "%17"         },    /* &#23;		Unused  */
  -        { ' ' ,   "%18"         },    /* &#24;		Unused  */
  -        { ' ' ,   "%19"         },    /* &#25;		Unused  */
  -        { ' ' ,   "%1A"         },    /* &#26;		Unused  */
  -        { ' ' ,   "%1B"         },    /* &#27;		Unused  */
  -        { ' ' ,   "%1C"         },    /* &#28;		Unused  */
  -        { ' ' ,   "%1D"         },    /* &#29;		Unused  */
  -        { ' ' ,   "%1E"         },    /* &#30;		Unused  */
  -        { ' ' ,   "%1F"         },    /* &#31;		Unused  */
  -        { ' ' ,   "+"           },    /* 	&#32;		Space  */
  -        { '!' ,   ""         },    /* 	&#33;		Exclamation mark  */
  -        { '"' ,   "%22"   },    /* 	Quotation mark  */
  -        { '#' ,   ""         },    /* 	&#35;		Number sign  */
  -        { '$' ,   ""         },    /* 	&#36;		Dollar sign  */
  -        { '%' ,   "%25"      },    /* 	&#37;		Percent sign  */
  -        { '&' ,   "%26"    },    /* 	Ampersand  */
  -        { '\'' ,  ""         },    /* 	&#39;		Apostrophe  */
  -        { '(' ,   ""         },    /* 	&#40;		Left parenthesis  */
  -        { ')' ,   ""         },    /* 	&#41;		Right parenthesis  */
  -        { '*' ,   ""         },    /* 	&#42;		Asterisk  */
  -        { '+' ,   "%2B"         },    /* 	&#43;		Plus sign  */
  -        { ',' ,   ""         },    /* 	&#44;		Comma  */
  -        { '-' ,   ""         },    /* 	&#45;		Hyphen  */
  -        { '.' ,   ""         },    /* 	&#46;		Period (fullstop)  */
  -        { '/' ,   ""         },    /* 	&#47;		Solidus (slash)  */
  -        { '0' ,   ""         },    /* 	&#48;		Digit 0  */
  -        { '1' ,   ""         },    /* 	&#49;		Digit 1  */
  -        { '2' ,   ""         },    /* 	&#50;		Digit 2  */
  -        { '3' ,   ""         },    /* 	&#51;		Digit 3  */
  -        { '4' ,   ""         },    /* 	&#52;		Digit 4  */
  -        { '5' ,   ""         },    /* 	&#53;		Digit 5  */
  -        { '6' ,   ""         },    /* 	&#54;		Digit 6  */
  -        { '7' ,   ""         },    /* 	&#55;		Digit 7  */
  -        { '8' ,   ""         },    /* 	&#56;		Digit 8  */
  -        { '9' ,   ""         },    /* 	&#57;		Digit 9  */
  -        { ':' ,   ""         },    /* 	&#58;		Colon  */
  -        { ';' ,   ""      },    /* 	&#59;		Semicolon  */
  -        { '<' ,   ""      },    /* 	Less than  */
  -        { '=' ,   "%3D"      },    /* 	&#61;		Equals sign  */
  -        { '>' ,   ""      },    /* 	Greater than  */
  -        { '?' ,   "%3F"      },    /* 	&#63;		Question mark  */
  -        { '@' ,   ""      },    /* 	&#64;		Commercial at  */
  +        { ' ' ,   "%00"         },    /* &#00;		Unused */ 
  +        { ' ' ,   "%01"         },    /* &#01;		Unused */
  +        { ' ' ,   "%02"         },    /* &#02;		Unused  */
  +        { ' ' ,   "%03"         },    /* &#03;		Unused  */
  +        { ' ' ,   "%04"         },    /* &#04;		Unused  */
  +        { ' ' ,   "%05"         },    /* &#05;		Unused  */
  +        { ' ' ,   "%06"         },    /* &#06;		Unused  */
  +        { ' ' ,   "%07"         },    /* &#07;		Unused  */
  +        { ' ' ,   "%08"         },    /* &#08;		Unused  */
  +        { ' ' ,   "%09"         },    /* &#09;		Horizontal tab  */
  +        { ' ' ,   "%0A"         },    /* &#10;		Line feed  */
  +        { ' ' ,   "%0B"         },    /* &#11;		Unused  */
  +        { ' ' ,   "%0C"         },    /* &#12;		Unused  */
  +        { ' ' ,   "%0D"         },    /* &#13;		Carriage Return  */
  +        { ' ' ,   "%0E"         },    /* &#14;		Unused  */
  +        { ' ' ,   "%0F"         },    /* &#15;		Unused  */
  +        { ' ' ,   "%10"         },    /* &#16;		Unused  */
  +        { ' ' ,   "%11"         },    /* &#17;		Unused  */
  +        { ' ' ,   "%12"         },    /* &#18;		Unused  */
  +        { ' ' ,   "%13"         },    /* &#19;		Unused  */
  +        { ' ' ,   "%14"         },    /* &#20;		Unused  */
  +        { ' ' ,   "%15"         },    /* &#21;		Unused  */
  +        { ' ' ,   "%16"         },    /* &#22;		Unused  */
  +        { ' ' ,   "%17"         },    /* &#23;		Unused  */
  +        { ' ' ,   "%18"         },    /* &#24;		Unused  */
  +        { ' ' ,   "%19"         },    /* &#25;		Unused  */
  +        { ' ' ,   "%1A"         },    /* &#26;		Unused  */
  +        { ' ' ,   "%1B"         },    /* &#27;		Unused  */
  +        { ' ' ,   "%1C"         },    /* &#28;		Unused  */
  +        { ' ' ,   "%1D"         },    /* &#29;		Unused  */
  +        { ' ' ,   "%1E"         },    /* &#30;		Unused  */
  +        { ' ' ,   "%1F"         },    /* &#31;		Unused  */
  +        { ' ' ,   "%20"           },    /* 	&#32;		Space  */
  +        { '!' ,   ""         },    /* 	&#33;		Exclamation mark  */
  +        { '"' ,   "%22"   },    /* 	Quotation mark  */
  +        { '#' ,   ""         },    /* 	&#35;		Number sign  */
  +        { '$' ,   ""         },    /* 	&#36;		Dollar sign  */
  +        { '%' ,   "%25"      },    /* 	&#37;		Percent sign  */
  +        { '&' ,   "%26"    },    /* 	Ampersand  */
  +        { '\'' ,  "%27"       },    /* 	&#39;		Apostrophe  */
  +        { '(' ,   ""         },    /* 	&#40;		Left parenthesis  */
  +        { ')' ,   ""         },    /* 	&#41;		Right parenthesis  */
  +        { '*' ,   ""         },    /* 	&#42;		Asterisk  */
  +        { '+' ,   "%2B"         },    /* 	&#43;		Plus sign  */
  +        { ',' ,   ""         },    /* 	&#44;		Comma  */
  +        { '-' ,   ""         },    /* 	&#45;		Hyphen  */
  +        { '.' ,   ""         },    /* 	&#46;		Period (fullstop)  */
  +        { '/' ,   ""         },    /* 	&#47;		Solidus (slash)  */
  +        { '0' ,   ""         },    /* 	&#48;		Digit 0  */
  +        { '1' ,   ""         },    /* 	&#49;		Digit 1  */
  +        { '2' ,   ""         },    /* 	&#50;		Digit 2  */
  +        { '3' ,   ""         },    /* 	&#51;		Digit 3  */
  +        { '4' ,   ""         },    /* 	&#52;		Digit 4  */
  +        { '5' ,   ""         },    /* 	&#53;		Digit 5  */
  +        { '6' ,   ""         },    /* 	&#54;		Digit 6  */
  +        { '7' ,   ""         },    /* 	&#55;		Digit 7  */
  +        { '8' ,   ""         },    /* 	&#56;		Digit 8  */
  +        { '9' ,   ""         },    /* 	&#57;		Digit 9  */
  +        { ':' ,   ""         },    /* 	&#58;		Colon  */
  +        { ';' ,   "%3B"      },    /* 	&#59;		Semicolon  */
  +        { '<' ,   "%3C"      },    /* 	Less than  */
  +        { '=' ,   "%3D"      },    /* 	&#61;		Equals sign  */
  +        { '>' ,   "%3E"      },    /* 	Greater than  */
  +        { '?' ,   "%3F"      },    /* 	&#63;		Question mark  */
  +        { '@' ,   ""      },    /* 	&#64;		Commercial at  */
           { 'A' ,   ""         },    /* 	&#65;		Capital A  */
           { 'B' ,   ""         },    /* 	&#66;		Capital B  */
           { 'C' ,   ""         },    /* 	&#67;		Capital C  */
  
  
  
  1.3       +65 -65    embperl/epchar.c.min
  
  Index: epchar.c.min
  ===================================================================
  RCS file: /home/cvs/embperl/epchar.c.min,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- epchar.c.min	2000/07/17 05:16:08	1.2
  +++ epchar.c.min	2001/04/27 06:37:59	1.3
  @@ -295,71 +295,71 @@
   struct tCharTrans Char2Url [] = 
   
       {
  -        { ' ' ,   "%00"         },    /* &#00;		Unused */ 
  -        { ' ' ,   "%01"         },    /* &#01;		Unused */
  -        { ' ' ,   "%02"         },    /* &#02;		Unused  */
  -        { ' ' ,   "%03"         },    /* &#03;		Unused  */
  -        { ' ' ,   "%04"         },    /* &#04;		Unused  */
  -        { ' ' ,   "%05"         },    /* &#05;		Unused  */
  -        { ' ' ,   "%06"         },    /* &#06;		Unused  */
  -        { ' ' ,   "%07"         },    /* &#07;		Unused  */
  -        { ' ' ,   "%08"         },    /* &#08;		Unused  */
  -        { ' ' ,   "%09"         },    /* &#09;		Horizontal tab  */
  -        { ' ' ,   "%0A"         },    /* &#10;		Line feed  */
  -        { ' ' ,   "%0B"         },    /* &#11;		Unused  */
  -        { ' ' ,   "%0C"         },    /* &#12;		Unused  */
  -        { ' ' ,   "%0D"         },    /* &#13;		Carriage Return  */
  -        { ' ' ,   "%0E"         },    /* &#14;		Unused  */
  -        { ' ' ,   "%0F"         },    /* &#15;		Unused  */
  -        { ' ' ,   "%10"         },    /* &#16;		Unused  */
  -        { ' ' ,   "%11"         },    /* &#17;		Unused  */
  -        { ' ' ,   "%12"         },    /* &#18;		Unused  */
  -        { ' ' ,   "%13"         },    /* &#19;		Unused  */
  -        { ' ' ,   "%14"         },    /* &#20;		Unused  */
  -        { ' ' ,   "%15"         },    /* &#21;		Unused  */
  -        { ' ' ,   "%16"         },    /* &#22;		Unused  */
  -        { ' ' ,   "%17"         },    /* &#23;		Unused  */
  -        { ' ' ,   "%18"         },    /* &#24;		Unused  */
  -        { ' ' ,   "%19"         },    /* &#25;		Unused  */
  -        { ' ' ,   "%1A"         },    /* &#26;		Unused  */
  -        { ' ' ,   "%1B"         },    /* &#27;		Unused  */
  -        { ' ' ,   "%1C"         },    /* &#28;		Unused  */
  -        { ' ' ,   "%1D"         },    /* &#29;		Unused  */
  -        { ' ' ,   "%1E"         },    /* &#30;		Unused  */
  -        { ' ' ,   "%1F"         },    /* &#31;		Unused  */
  -        { ' ' ,   "+"           },    /* &#32;		Space  */
  -        { '!' ,   ""         },    /* 	&#33;		Exclamation mark  */
  -        { '"' ,   "%22"   },    /* 	Quotation mark  */
  -        { '#' ,   ""         },    /* 	&#35;		Number sign  */
  -        { '$' ,   ""         },    /* 	&#36;		Dollar sign  */
  -        { '%' ,   "%25"      },    /* 	&#37;		Percent sign  */
  -        { '&' ,   "%26"    },    /* 	Ampersand  */
  -        { '\'' ,  ""         },    /* 	&#39;		Apostrophe  */
  -        { '(' ,   ""         },    /* 	&#40;		Left parenthesis  */
  -        { ')' ,   ""         },    /* 	&#41;		Right parenthesis  */
  -        { '*' ,   ""         },    /* 	&#42;		Asterisk  */
  -        { '+' ,   "%2B"         },    /* 	&#43;		Plus sign  */
  -        { ',' ,   ""         },    /* 	&#44;		Comma  */
  -        { '-' ,   ""         },    /* 	&#45;		Hyphen  */
  -        { '.' ,   ""         },    /* 	&#46;		Period (fullstop)  */
  -        { '/' ,   ""         },    /* 	&#47;		Solidus (slash)  */
  -        { '0' ,   ""         },    /* 	&#48;		Digit 0  */
  -        { '1' ,   ""         },    /* 	&#49;		Digit 1  */
  -        { '2' ,   ""         },    /* 	&#50;		Digit 2  */
  -        { '3' ,   ""         },    /* 	&#51;		Digit 3  */
  -        { '4' ,   ""         },    /* 	&#52;		Digit 4  */
  -        { '5' ,   ""         },    /* 	&#53;		Digit 5  */
  -        { '6' ,   ""         },    /* 	&#54;		Digit 6  */
  -        { '7' ,   ""         },    /* 	&#55;		Digit 7  */
  -        { '8' ,   ""         },    /* 	&#56;		Digit 8  */
  -        { '9' ,   ""         },    /* 	&#57;		Digit 9  */
  -        { ':' ,   ""         },    /* 	&#58;		Colon  */
  -        { ';' ,   ""      },    /* 	&#59;		Semicolon  */
  -        { '<' ,   ""      },    /* 	Less than  */
  -        { '=' ,   "%3D"      },    /* 	&#61;		Equals sign  */
  -        { '>' ,   ""      },    /* 	Greater than  */
  -        { '?' ,   "%3F"      },    /* 	&#63;		Question mark  */
  -        { '@' ,   ""      },    /* 	&#64;		Commercial at  */
  +        { ' ' ,   "%00"         },    /* &#00;		Unused */ 
  +        { ' ' ,   "%01"         },    /* &#01;		Unused */
  +        { ' ' ,   "%02"         },    /* &#02;		Unused  */
  +        { ' ' ,   "%03"         },    /* &#03;		Unused  */
  +        { ' ' ,   "%04"         },    /* &#04;		Unused  */
  +        { ' ' ,   "%05"         },    /* &#05;		Unused  */
  +        { ' ' ,   "%06"         },    /* &#06;		Unused  */
  +        { ' ' ,   "%07"         },    /* &#07;		Unused  */
  +        { ' ' ,   "%08"         },    /* &#08;		Unused  */
  +        { ' ' ,   "%09"         },    /* &#09;		Horizontal tab  */
  +        { ' ' ,   "%0A"         },    /* &#10;		Line feed  */
  +        { ' ' ,   "%0B"         },    /* &#11;		Unused  */
  +        { ' ' ,   "%0C"         },    /* &#12;		Unused  */
  +        { ' ' ,   "%0D"         },    /* &#13;		Carriage Return  */
  +        { ' ' ,   "%0E"         },    /* &#14;		Unused  */
  +        { ' ' ,   "%0F"         },    /* &#15;		Unused  */
  +        { ' ' ,   "%10"         },    /* &#16;		Unused  */
  +        { ' ' ,   "%11"         },    /* &#17;		Unused  */
  +        { ' ' ,   "%12"         },    /* &#18;		Unused  */
  +        { ' ' ,   "%13"         },    /* &#19;		Unused  */
  +        { ' ' ,   "%14"         },    /* &#20;		Unused  */
  +        { ' ' ,   "%15"         },    /* &#21;		Unused  */
  +        { ' ' ,   "%16"         },    /* &#22;		Unused  */
  +        { ' ' ,   "%17"         },    /* &#23;		Unused  */
  +        { ' ' ,   "%18"         },    /* &#24;		Unused  */
  +        { ' ' ,   "%19"         },    /* &#25;		Unused  */
  +        { ' ' ,   "%1A"         },    /* &#26;		Unused  */
  +        { ' ' ,   "%1B"         },    /* &#27;		Unused  */
  +        { ' ' ,   "%1C"         },    /* &#28;		Unused  */
  +        { ' ' ,   "%1D"         },    /* &#29;		Unused  */
  +        { ' ' ,   "%1E"         },    /* &#30;		Unused  */
  +        { ' ' ,   "%1F"         },    /* &#31;		Unused  */
  +        { ' ' ,   "%20"           },    /* 	&#32;		Space  */
  +        { '!' ,   ""         },    /* 	&#33;		Exclamation mark  */
  +        { '"' ,   "%22"   },    /* 	Quotation mark  */
  +        { '#' ,   ""         },    /* 	&#35;		Number sign  */
  +        { '$' ,   ""         },    /* 	&#36;		Dollar sign  */
  +        { '%' ,   "%25"      },    /* 	&#37;		Percent sign  */
  +        { '&' ,   "%26"    },    /* 	Ampersand  */
  +        { '\'' ,  "%27"       },    /* 	&#39;		Apostrophe  */
  +        { '(' ,   ""         },    /* 	&#40;		Left parenthesis  */
  +        { ')' ,   ""         },    /* 	&#41;		Right parenthesis  */
  +        { '*' ,   ""         },    /* 	&#42;		Asterisk  */
  +        { '+' ,   "%2B"         },    /* 	&#43;		Plus sign  */
  +        { ',' ,   ""         },    /* 	&#44;		Comma  */
  +        { '-' ,   ""         },    /* 	&#45;		Hyphen  */
  +        { '.' ,   ""         },    /* 	&#46;		Period (fullstop)  */
  +        { '/' ,   ""         },    /* 	&#47;		Solidus (slash)  */
  +        { '0' ,   ""         },    /* 	&#48;		Digit 0  */
  +        { '1' ,   ""         },    /* 	&#49;		Digit 1  */
  +        { '2' ,   ""         },    /* 	&#50;		Digit 2  */
  +        { '3' ,   ""         },    /* 	&#51;		Digit 3  */
  +        { '4' ,   ""         },    /* 	&#52;		Digit 4  */
  +        { '5' ,   ""         },    /* 	&#53;		Digit 5  */
  +        { '6' ,   ""         },    /* 	&#54;		Digit 6  */
  +        { '7' ,   ""         },    /* 	&#55;		Digit 7  */
  +        { '8' ,   ""         },    /* 	&#56;		Digit 8  */
  +        { '9' ,   ""         },    /* 	&#57;		Digit 9  */
  +        { ':' ,   ""         },    /* 	&#58;		Colon  */
  +        { ';' ,   "%3B"      },    /* 	&#59;		Semicolon  */
  +        { '<' ,   "%3C"      },    /* 	Less than  */
  +        { '=' ,   "%3D"      },    /* 	&#61;		Equals sign  */
  +        { '>' ,   "%3E"      },    /* 	Greater than  */
  +        { '?' ,   "%3F"      },    /* 	&#63;		Question mark  */
  +        { '@' ,   ""      },    /* 	&#64;		Commercial at  */
           { 'A' ,   ""         },    /* 	&#65;		Capital A  */
           { 'B' ,   ""         },    /* 	&#66;		Capital B  */
           { 'C' ,   ""         },    /* 	&#67;		Capital C  */
  
  
  
  1.30      +3 -3      embperl/epdat.h
  
  Index: epdat.h
  ===================================================================
  RCS file: /home/cvs/embperl/epdat.h,v
  retrieving revision 1.29
  retrieving revision 1.30
  diff -u -r1.29 -r1.30
  --- epdat.h	2001/03/27 12:27:49	1.29
  +++ epdat.h	2001/04/27 06:38:00	1.30
  @@ -396,7 +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 */
  +    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 */
  @@ -409,9 +409,9 @@
       tNode	xDocument ;
       tNode	xCurrNode ;
       tIndex	xCurrDomTree ;
  -    struct tTokenTable *  pTokenTable ;
  -
   #endif
  +    tTokenTable *  pTokenTable ;
  +
   
       /* --- Source in memory --- */
   
  
  
  
  1.97      +50 -39    embperl/epmain.c
  
  Index: epmain.c
  ===================================================================
  RCS file: /home/cvs/embperl/epmain.c,v
  retrieving revision 1.96
  retrieving revision 1.97
  diff -u -r1.96 -r1.97
  --- epmain.c	2001/03/27 12:27:49	1.96
  +++ epmain.c	2001/04/27 06:38:01	1.97
  @@ -10,8 +10,8 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: epmain.c,v 1.96 2001/03/27 12:27:49 richter Exp $
  -#
  +#   $Id: epmain.c,v 1.97 2001/04/27 06:38:01 richter Exp $
  +#
   ###################################################################################*/
   
   
  @@ -467,6 +467,7 @@
                   pQueryString++ ;
                   nLen-- ;
                   break ;
  +            case ';':
               case '&':
                   pQueryString++ ;
                   nLen-- ;
  @@ -835,9 +836,9 @@
   
                   if (pRet)
                       {
  -		    if (r -> bEscInUrl && SvTYPE(pRet) == SVt_RV && (pAV = (AV *)SvRV(pRet)))
  -			{			    
  -			if (SvTYPE(pAV) == SVt_PVAV)
  +		    if (r -> bEscInUrl && SvTYPE(pRet) == SVt_RV && (pAV = (AV *)SvRV(pRet)))
  +			{			    
  +			if (SvTYPE(pAV) == SVt_PVAV)
   			    { /* Array reference inside URL */
   			    SV ** ppSV ;
   			    int i ;
  @@ -853,15 +854,15 @@
   				    oputc (r, '=' ) ;
   				else if (i < f)
   				    oputs (r, "&amp;") ;
  -				}
  +				}
   			    }
  -			else if (SvTYPE(pAV) == SVt_PVHV)
  +			else if (SvTYPE(pAV) == SVt_PVHV)
   			    { /* Hash reference inside URL */
   			    int         i = 0 ;
   			    HE *	    pEntry ;
   			    char *	    pKey ;
   			    SV * 	    pSVValue ;
  -			    pHV = (HV *)pAV ;
  +			    pHV = (HV *)pAV ;
   
   			    hv_iterinit (pHV) ;
   			    while (pEntry = hv_iternext (pHV))
  @@ -876,7 +877,7 @@
   				if (pSVValue)
   				    OutputToHtml (r, SvPV (pSVValue, l)) ;
   				}
  -			    }
  +			    }
   			}
   		    else
   			{
  @@ -1361,6 +1362,10 @@
   
   #ifdef APACHE
       r -> pApacheReq = NULL ;
  +    if (_nIOType == epIOMod_Perl)
  +	{
  +	ap_add_module (&embperl_module) ;
  +	}
   #endif
       r -> bReqRunning = 0 ;
       
  @@ -1596,7 +1601,6 @@
       DomInit () ;
   #endif    
       
  -
       bInitDone = 1 ;
   
       return rc ;
  @@ -1828,7 +1832,7 @@
       char *	cache_key;
       int		cache_key_len;
       char olddir[PATH_MAX] = "" ;
  -    char *      pNew ;
  +    char *      pNew ;
   
       EPENTRY (SetupFileData) ;
   
  @@ -1838,11 +1842,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] == '/')) ||
  -	    (r -> pInData && SvROK(r -> pInData))))
  +    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] )
  @@ -1891,7 +1895,7 @@
   		f -> pExportHash = NULL ;
   		}
   	    }
  -        pNew = "Found" ;
  +        pNew = "Found" ;
           }
       else
           { /* create new file structure */
  @@ -1925,11 +1929,11 @@
       
           if (r -> bDebug)
               lprintf (r, "[%d]MEM: Load %s in %s\n", r -> nPid,  sSourcefile, f -> sCurrPackage) ;
  -        pNew = "New" ;
  +        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) ;
  -    
  +    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 ;
  @@ -1953,7 +1957,7 @@
       char *	cache_key;
       int		cache_key_len;
       char olddir[PATH_MAX] = "" ;
  -    char *      pNew ;
  +    char *      pNew ;
       
       EPENTRY (GetFileData) ;
   
  @@ -1963,10 +1967,10 @@
   	cache_key_len += strlen( 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] == '/'))))
           getcwd (olddir, sizeof (olddir) - 1) ;
   
       if ( olddir[0] )
  @@ -2009,7 +2013,7 @@
   		f -> pExportHash = NULL ;
   		}
   	    }
  -        pNew = "Found " ;
  +        pNew = "Found " ;
           }
       else
           { /* create new file structure */
  @@ -2041,12 +2045,12 @@
   
           hv_store(pCacheHash, cache_key, cache_key_len, newRV_noinc (newSViv ((IV)f)), 0) ;  
       
  -        pNew = "New " ;
  +        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) ;
  -    
  +
  +    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 ;
  @@ -2181,8 +2185,8 @@
       ppSV = hv_fetch(r -> pEnvHash, "PATH_INFO", sizeof ("PATH_INFO") - 1, 0) ;  
       if (ppSV)
           r -> sPathInfo = SvPV (*ppSV ,len) ;
  -    r -> pTokenTable = pTokenTable ;    
   #endif
  +    r -> pTokenTable = pTokenTable ;    
       if (rc != ok)
           r -> bDebug = 0 ; /* Turn debbuging off, only errors will go to stderr if logfile not open */
       r -> bOptions        = pConf -> bOptions ;
  @@ -2194,9 +2198,9 @@
       r -> nInsideSub	 = 0 ;
       r -> bExit  	 = 0 ;
       
  -    r -> pOutData        = pOut ;
  -    r -> pInData         = pIn ;
  -
  +    r -> pOutData        = pOut ;
  +    r -> pInData         = pIn ;
  +
       r -> pFiles2Free	 = NULL ;
       if (r -> bSubReq && sSourcefile[0] == '?' && sSubName && sSubName[0] != '\0')
   	{
  @@ -3063,6 +3067,13 @@
       r -> Buf.pEndPos  = r -> Buf.pCurrPos + nBlockSize ;
       r -> Buf.nBlockNo = nBlockNo ;
   
  +
  +    if (r -> pTokenTable && strcmp ((char *)r -> pTokenTable, "Text") == 0)
  +	{ /* --- emulate Embperl 2  syntax => 'Text' --- */	    
  +	owrite (r, r -> Buf.pCurrPos, r -> Buf.pEndPos - r -> Buf.pCurrPos) ;
  +	return r -> Buf.nBlockNo ;
  +	}
  +
       rc = ok ;
       p = r -> Buf.pCurrPos ;
       while (p && *p && p < r -> Buf.pEndPos && rc == ok)
  @@ -3252,7 +3263,7 @@
       tSrcBuf Buf ;
       char *  sEvalPackage = r -> Buf.sEvalPackage ; 
       STRLEN  nEvalPackage = r -> Buf.nEvalPackage ;  
  -    SV *    pInData      = r -> pInData  ;  
  +    SV *    pInData      = r -> pInData  ;  
   
   
       /*av_unshift (GvAV (PL_defgv), 1) ;
  @@ -3264,7 +3275,7 @@
       if (pFile != r -> Buf.pFile)
   	{ /* get other file */
   	r -> Buf.pFile = pFile ;
  -	r -> pInData = &sv_undef ;
  +	r -> pInData = &sv_undef ;
   
   	if ((rc = ReadInputFile (r)) != ok)
   	    {
  @@ -3286,7 +3297,7 @@
       memcpy (&r -> Buf, &Buf, sizeof (Buf)) ;
       r -> Buf.sEvalPackage = sEvalPackage ; 
       r -> Buf.nEvalPackage = nEvalPackage ; 
  -    r -> pInData          = pInData ;  
  +    r -> pInData          = pInData ;  
   
       if (rc != ok)
   	LogError (r, rc) ;
  
  
  
  1.26      +5 -5      embperl/epnames.h
  
  Index: epnames.h
  ===================================================================
  RCS file: /home/cvs/embperl/epnames.h,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- epnames.h	2001/03/27 12:27:49	1.25
  +++ epnames.h	2001/04/27 06:38:02	1.26
  @@ -1,6 +1,6 @@
   /*###################################################################################
   #
  -#   Embperl - Copyright (c) 1997-2001 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,8 +10,8 @@
   #   IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
   #   WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
   #
  -#   $Id: epnames.h,v 1.25 2001/03/27 12:27:49 richter Exp $
  -#
  +#   $Id: epnames.h,v 1.26 2001/04/27 06:38:02 richter Exp $
  +#
   ###################################################################################*/
   
   /*
  @@ -26,7 +26,7 @@
   #define oCommitToMem           EMBPERL_oCommitToMem
   #define OpenInput              EMBPERL_OpenInput         
   #define CloseInput             EMBPERL_CloseInput        
  -#define ReadInputFile          EMBPERL_ReadInputFile        
  +#define ReadInputFile          EMBPERL_ReadInputFile        
   #define iread                  EMBPERL_iread             
   #define igets                  EMBPERL_igets             
   #define OpenOutput             EMBPERL_OpenOutput        
  @@ -47,7 +47,7 @@
   #define Eval                   EMBPERL_Eval              
   #define EvalNum                EMBPERL_EvalNum           
   #define EvalBool               EMBPERL_EvalBool           
  -#define EvalConfig             EMBPERL_EvalConfig
  +#define EvalConfig             EMBPERL_EvalConfig
   #define stristr                EMBPERL_stristr           
   #define strlower               EMBPERL_strlower          
   #define TransHtml              EMBPERL_TransHtml         
  
  
  
  1.19      +2 -2      embperl/eputil.c
  
  Index: eputil.c
  ===================================================================
  RCS file: /home/cvs/embperl/eputil.c,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- eputil.c	2001/03/27 12:27:49	1.18
  +++ eputil.c	2001/04/27 06:38:03	1.19
  @@ -1010,8 +1010,8 @@
   	    {
   	    if (bDebug)
   	        lprintf (r, "[%d]CUP: IO %s = ...\n", r -> nPid, s) ;
  -	    //sv_unmagic ((SV *)io, 'q') ; /* untie */
  -	    //do_close((GV *)val, 0);
  +	    /* sv_unmagic ((SV *)io, 'q') ; */ /* untie */
  +	    /* do_close((GV *)val, 0); */
   	    }
   	}
       }
  
  
  
  1.98      +2 -2      embperl/test.pl
  
  Index: test.pl
  ===================================================================
  RCS file: /home/cvs/embperl/test.pl,v
  retrieving revision 1.97
  retrieving revision 1.98
  diff -u -r1.97 -r1.98
  --- test.pl	2001/03/27 12:27:49	1.97
  +++ test.pl	2001/04/27 06:38:03	1.98
  @@ -498,7 +498,7 @@
           },
       'inctext.htm' => { 
           'ep1compat'    => 0,
  -	'version'      => 2,
  +#	'version'      => 2,
           },
       'incperl.htm' => { 
           'version'    => 2,
  @@ -1184,7 +1184,7 @@
   
   $ENV{EMBPERL_ALLOW} = 'asc|\\.htm$|\\.htm-1$' ;
   
  -HTML::Embperl::log ("Start testing...\n") ; # force logfile open
  +#HTML::Embperl::log ("Start testing...\n") ; # force logfile open
   
   do  
       {
  
  
  
  1.9       +2 -1      embperl/typemap
  
  Index: typemap
  ===================================================================
  RCS file: /home/cvs/embperl/typemap,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- typemap	2001/03/27 12:27:49	1.8
  +++ typemap	2001/04/27 06:38:04	1.9
  @@ -54,7 +54,8 @@
   #    else
   #        croak (\"$var is not of type HTML::Embperl::Syntax\") ;
   #else
  -    $var = NULL ;
  +    STRLEN l ;
  +    $var = (tTokenTable *)SvPV($arg,l) ;
   #endif
       }
   
  
  
  
  1.2       +71 -0     embperl/epapinit.c
  
  
  
  
  1.7       +0 -1      embperl/test/html/table.htm
  
  Index: table.htm
  ===================================================================
  RCS file: /home/cvs/embperl/test/html/table.htm,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- table.htm	2001/03/27 12:27:54	1.6
  +++ table.htm	2001/04/27 06:38:15	1.7
  @@ -5,7 +5,6 @@
   
   <body>
   
  -
   <p> $tabmode = default <p>
   
   <hr><p>Display an two dimensional array with one, two and three columns !<BR>
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: embperl-cvs-unsubscribe@perl.apache.org
For additional commands, e-mail: embperl-cvs-help@perl.apache.org