Revision history for Perl extension HTML::Embperl.

0.21-beta 25 Dec 1997
    - Embperl offline mode now works under win 32 (mod_perl and cgi mode
      not tested under win 32 yet, but maybe it works too)
    - Totaly reworked safenamespace and operatormask handling. Works now
      without memory leak, is fully configurable and does also a p-code
      caching. If you use it, please look at the documentation, because
      configuration has changed.
    - Embperl now sends it's own error document if it detects an error.
      The page contains all the error messages and if you have the
      dbgLogLink enabled, all errors are links to the corresponding
      line in the logfile. (Could be disabled with optDisableEmbperlErrorPage)
    - Added new Metacommand [$VAR ... $], which can be used to declare
      variables and apply the strict pragma (same as use strict ; use vars )  
    - Added debug flag dbgHeadersIn which causes Embperl to log all http 
      headers which are received from the client
    - Don't change any unknown HTML Escapes (i.e. && has been translated
      to ? in versions < 0.21)
    - dbgShowCleanup logs all variables which are automatily undefed at the
      end of a request (for scalars also the value is shown)
    - Error messages will also be cached, so that the compiling of the code
      only takes place once, because errornous perl code, will cause memory
      leaks in perl itself, if it's compiled on and on.
    - Optimized the compiling of the embbeded perl code
    - Changed use Apache::Constants to be conform with new default exports
      introduced in mod_perl-1.07_01
    - Output of hidden metacommand is sorted in the same order as the input
      from the formfields or sorting order can be supplied as third argument  
    - <meta http-equiv= ... > will override the correspondig http header
      this avoids netscape from asking the user to reload the document
      when the content-type differs between the http header and the
      meta http-equiv
      This can also be used to set http headers
    - Fixed a problem that Embperl magicaly variables does not work when
      the package exists before the first call to Embperl
    - Fixed a problem that causes a SIGSEGV when retrieving a document,
      which contains a perl error, a second time from the same child
    - Fixed a problem that cause Embperl to terminate in offline/cgi-mode
      when file was not found or access was forbidden
    - Fixed a problem with the hidden metacommand when arguments supplied
      with surounding spaces
    - Fixed a problem that Embperl does not handle metacommand correctly
      when HTML tags (e.g. <br>) are embbeded
0.20-beta 15 Nov 97
    - Every file is executed in a separate package (don't confuse this 
      with safe namespace) to reduce of unwanted effects for each other
    - Added configuration directive EMBPERL_PACKAGE which can be used to override
      the automatic genrated package name
    - The namespace (package) used by a request is cleanup afterwards.
      That means that every scalar, hash or array is undef'ed, after the 
      request to make sure nothing is lying arround an will the next request
      (maybe) make misbehave.
      This reqire mod_perl with PERL_CLEANUP=1 and PERL_STACKED_HANDLER=1!
      NOTE: To get persitent variables place them in another namespace i.e.
      write $persitent::x instead of $x 
    - Added configuration directive EMBPERL_OPTIONS to configure various runtime
      options. Now only the scalar cleanup can be disabled.
    - use log_error for writing to apache error log to get timestamp
    - Escaping inside a <A> tag is change from html escape to url escape
      i.e. space is translated to + and & is translated to %26 and so on
    - Escaping can now be turned on and off via $escmode
    - Concats ENV and cgi_env under mod_perl so the PerlSetEnv can be used
      instead of SetEnv for configuration. In contrast to SetEnv, PerlSetEnv
      allows differnet values per directory/virtual host
    - Added two links to show source-loglines and eval-loglines when dbgLogLink
      is enabled to have a quick jump to the logfile
    - Reget pid for every request, so the correct one will be written to the
      logfile, also when Embperl is loaded at server startup
    - Check error log in make test, added test for error output

    - Fixed a bug which causes Embperl to cause a SIGSEGV when an perl syntax
      error occured
    - Fixed a bug so that a '>' inside of [+/- ... -/+] is not detected as the end
      of an html tag (Thanks to Todd R. Eigenschink)

0.19-beta 29 Oct 97
    - rewritten the code for the LOG handle. Now the handle LOG is tied so every
      print/printf is written to embperl.log at the right position. Use this to 
      do logging from your embeded code or modules
    - Fixed a bug which causes garbage displayed in dynamic tables or make parts
      of the table lost at all  

0.18-beta 25 Oct 97
   - Added caching of p-code. Now all perl-code is compiled only once. On the
     second request the compiled p-code is used. This makes, for example, the 
     table.htm from the test about 4 times faster on the second run then it was in
     previous versions of Embperl. Also tables and loops are faster in the first
     request, because the code is only compiled in the first iteration.  
   - <Select>/<option> is now handeld like <input>, this means that if a value
     for the select exists in %fdat, the corresponding option is automaticly
   - Added support for table heading (<th> tag). If all cells in a row are surounded
     by <th>/</th> instead of <td>/</td> the row is interpreted as column headings and
     printed only once. row headings not support yet, but in one of the next versions... 
   - Added support for multipart/formdata to support fileupload. Embperl detects
     automaticly multipart/formdata and let handle it. The results are also
     present in @ffld and %fdat like for normal formdata. See for more docs.
     (Thanks to for the idea and material)
   - Now all the output is kept in memory and the http-header are send when the
     processing is finish. This gives the ability to set http-header (only under mod_perl)
     within the page. Also now the Content-Length could be send in the http-header.
     (Thanks to for the idea and material)
   - Added tests for mod_perl mode and running as cgi-script, if compilation
     for mod_perl is enabled (Thanks to Doug MacEachern for lots of ideas
     and code I have borrowed from his mod_perl)
   - Removed "= true" in MailFormTo which caused a warning and don't declare
     syserr_list in ep.h on FreeBSD (Thanks to Michael Fuhr for the hints)
   - Added SYSNOPSIS section to docs to avoid pod2man warning and changed
     apache/src/regx to apache/src/regex in Makefile.PL (Thanks to Bob Wilkinson)
   - Splitted C-sources in some more source files

   - Fix two minor memory leaks. Now the Embperl test suite can run 1000 times and
     more without makeing the httpd grow!

0.17-beta  30 Aug 97
   - Removed some Compiler Warnings (Thanks to Ian Kallen for reporting them)

0.16-beta  29 Aug 97
   - Added more restrictive access check when running under mod_perl 
     * Option ExecCGI must be set
     * must not a directory
   - Added a little bit more docs about how to view Embperl lofile with
     your browser
   - Added declaration for error dependend stuff to compile on solaris, check errno before
     accessing sys_errlist to avoid SIGSEVs, Fixed another warning from Sun Pro C Compiler
     (Thanks to Dan Peterson)
   - Switched I/O to PerlIO if supported by installed Perl version.
     Should now work with sfio (not tested yet)
   - Added possibilty to include Embperl commands in all html tags 
     (did not works for body, table and tr tags in previous versions)
   - Preserve case of HTML tags
   - Do not interpret unknown html tags anyhow, to handle "<" characters
     which do not start a html tag better 
   - Do not display the time needed for the request if CLOCKS_PER_SEC not
     defined (e.g. SunOS - Thanks to Dan Peterson)
   - Added apache_xx/src/regx to include path, to avoid problems when
     apache was build with it's own regx library
   - Show which tags mismatch in error message (table, dir, select etc.)
   - Fixed a bug which caused "[" character even printed when in a false
     if path   

0.15-beta  11 July 1997
    - Added interpretation of SELECT Tag to generate dynamic listboxes
      from an arrary 
    - Fixed a problem with dynamic lists
    - Fixed some warnings displayed by the Sun Pro C Compiler (Thanks to Dan Peterson)
    - Fixed an error message about missing IO::Handle 
    - Changed all // comments to /* */ to be more compatiple with others
      than gnu-c compiler
    - Insert a missing return in oputc caused a SIGSEV on Solaris  (Thanks to Dan Peterson) 
    - Checked return code of Logfile open, to prevent a SIGSEV when cannot
      write to logfile and write an errormessage in servers errorlog  (Thanks to Dan Peterson)
    - Errors will also be logged to the servers error log (written to stderr)

0.14-beta 30 Juni 1997  
    - adding 8192 to EMBPERL_DEBUG and setting EMBPERL_VIRTLOG will add a link
      to Embperl output, so you can directly view the right part of the logfile
      with your browser
    - added the LOG filehandle to print to the embperl logfile
    - Add the possibility of handling multiple form fields with same name
    - chars which are result of a perl expression will not be escaped to html if
      they are prefixed with a backslash
    - Added support for scanning the parameters of input tag for perl code i.e.
      [- -] and [+ +] substituions takes place
    - Replace carridge return in perl expression with space to avoid perl 5.004 error
      about carridge return
    - added $req_rec to access the apache server api when running under mod_perl

    - Fixed a bug in Safe namespace handling causing always ERR: 17 Namespace unknown
    - Fixed a bug which caused dynamic tables to end, if a if, while etc. is included 
    - Fixed a bug that caused [$cmd$] executed only in the first iteration of while or table
    - Fixed some bugs in input tag interpretation
    - Fixed a bug occured when have a input tag with value="" and %ffld=""
    - Fixed a bug in that caused the options to be ignored when running offline

0.13-beta   April 26 1997	
    - Move EPENTRY (embperl_init) down to avoid crash when compiled with
    - Add #undefs for stdio function to compile with perl > 5.003
      Note: This is a quick hack, and will be changed to use PerlIO in
      one of the next releases, so we can tie stdout of Embperl
    - Add pids (to distinguish between muliplite requests) and time to
      logfile output
    - Make many functions static and names of externals more unique to
      avoid conflicts of symbolnames with other modules
    - If file not found return status 404 instead of 500
    - Add Apache::Embperl so the module shows at CPAN also under 
      module/by-module/Apache/ as suggested by Doug MacEachern

0.12-beta not publicly released
    - The mask has been removed from namespace option so it can be used
      with > 2
    - Embperl works with -T / PerlTaintCheck on
    - Add function MailFormTo to send form contents via email
    - the dbgSource option displays only one line for better overview
    - fixed a bug caused perl operator '<' interpreted as html tag
      in tables or while loop after the first iteration
    - add ffld array for mod_perl mode to get the order of form fields
    - removed vsnprintf, since it's not available on all platforms
    - Correct handling of empty dynamic tables
    - Fix Bug causes a Segmentaion Fault when first table is empty
    - Add script for make test
    - Fixed Error with nested if
    - Log compilation errors of embedded perl code
    - Avoid some warnings in

0.11-beta      March 25 1997
    - Name changed from Embperl to HTML::Embperl!!!!!!!!
    - FORM & ENV debug output now available in all modes
    - Ouput from [+  +] and INPUT fields are escaped
      (e.g. < is send as &lt; )
    - two dimensional tables
    - bug whiches causes an endless loop when using a \ fixed
    - fixed escaping special html chars above ascii code 128
    - added support for list tags (dir, menu, ol, ul, dl)
    - added support for textarea tag
    - fixed some errors

0.10b-beta	Jan 23 1997
    - fixed some errors

0.10beta 	Jan 18 1997
    - first public beta release