=pod =head1 2.0b1_dev -- That's what currently under developement Last Update: <$localtime$> (MET) NOTE: This version is only available via L<"CVS"|CVS/"INTRO"> - "perl Makefile.PL debug" will build debugging information for gdb/ms-vc++ into Embperl library. - Output is 8Bit clean. Now you can output strings that contains binary zeros from Embperl. - Syntax of Embperl is now defined in module HTML::Embperl::Syntax - Processing of Embperl is now divided in smaller steps: 1 reading the source 2 parseing 3 compiling 4 executing 5 outputing Since steps 1-3 has only to take place for the first time a file is processed, Embperl is about 25-100% faster the Embperl 1.x. (Embperl 1.x has also precompiled the Perl code, but Embperl goes much further and stores also a precompiled structure of the document) This modularisation will also allow to replace single steps with other modules and to cascade multiple processors, that work on one document. - The following options can currently only set from the httpd.conf: optRawInput, optKeepSpaces - The following options are currently not supported: optDisableHtmlScan, optDisableTableScan, optDisableInputScan, optDisableMetaScan - Nesting must be properly. I.e. you cannot put a tag (for an dynamic table) inside an if and the
inside another if. (That still works for static tables) - optUndefToEmptyValue is always set and cannot be disabled. - make test works with Apache that has mod_jserv compiled in - [$ foreach $x (@x) $] requires now the bracket around the array (like Perl) - [* *] blocks works now as expected. =head1 1.3b4_dev -- That's what currently under developement NOTE: This version is only available via L<"CVS"|CVS/"INTRO"> - New $escmode (or EMBPERL_ESCMODE) to disable the possiblilty to turn off escaping with a leading backslash. Adding 4 to any escmode will cause Embperl to do no special processing on the backslash. This is mainly to avoid problems with cross site scripting issuse, where people are able to enter aribtary HTML. Spotted by Dirk Lutzebaeck. - Characters between 128 and 159 are all HTML escaped now to avoid problems with buggy browser, which were reported to treat the chars 139 and 141 as < and >. Spotted by Dirk Lutzebaeck. =head1 1.3b3 (BETA) 25.04.2000 - Fixed SIGSEGV which occurs in cleanup with Perl 5.6. Spotted by Aaron Johnson. - Changed make test so it works correctly with new error messages of Perl 5.6. - Fixed a bug that Execute will always fail when $@ was set before. Patch from Francis J. Lacoste. - Changed test so it accpects charset in Content-Type header from Apache 1.3.12 - The outputfile parameter now also works when running under mod_perl. Spotted by Ilia Lobsanov. - Makefile.PL warns if you build with a DSO mod_perl < 1.22 - make test checks that test files are readable by Apache. - Applied a patch from Jens-Uwe Magner to make Embperl work with mod_perl 1.22 on AIX. We now require mod_perl 1.22, but I should now work as DSO and staticly linked. - Applied a patch from Francis J. Lacoste that makes sure that when a package name is given the file is always compiled into this package. Note: This means that if you specify a packagename and the packagename differs from request to request, the page is compiled for every package and therfore consuming memory on every request. - Added EMBPERL_SESSION_HANDLER_CLASS which allows you to overwrite Embperl defaults session handling. Idea form Barrie Slaymaker. - Added EmbperlLogo.gif to the distribution, which contains "Powered by Embperl". - Added Patch from Randy Kobes that makes Embperl compile with Apache 1.3.12 and Perl 5.6 on Win32. - Removed some -w warnings form EmbperlObject - Added tests for EmbperlObject - Fixed a SIGSEGV that occured when Embperl found [*] inside a page. Spotted by Barrie Slaymaker. - Added epchar.c.min which contains translation tables which let's all chars above 128 untouched. This is usefull for processing two byte charsets. Patch from Sangmook Yi. - The searchpath (EMBPERL_PATH) now uses semikolons (';') instead of colons (':') to avoid problems with Windows drive letters. Colons still work on Unix. =head1 1.3b2 (BETA) 11. Feb 2000 - added new mod_perl handler EmbperlObject, which helps to build whole pages out of small objects, which can be overwritten in "derived" pages. EmbperlObject allows you to define the standard layout of your site just once and includes the neccessary components based on the uri. Your HTML documents just have to contain the unique stuff and not the common stuff like headers/footers or navigation bars. Also these common elements can be overwritten in each subdirectory. - added EMBPERL_PATH (and path parameter to Execute), which can contain a colon separated search path. Embperl uses it when a file, which does not contain a path, is executed. - added new module HTML::Embperl::Mail which sends a file processed via Embperl by email. - Fixed a bug, that the logfile if opened also EMBPERL_DEBUG is set to zero. Now if debug is zero, no logfile will be opened. Spotted by Jason Bodnar and Christian Gilmore. =head1 1.2.1 5. Jan 2000 - fdat parameter of Execute function isnīt honoured when call from CGI script which has received multipart/formdata. Spotted by NHan H. Trinh. - @ffld was not correctly setup, when only fdat parameter is given in calls to Execute. - if mtime parameter is undef or 0, now the pcode really isn't cached. Spotted by Neeme Vool. - EMBPERL_OPTIONS and EMBPERL_DEBUG (debug, options) accepts now decimal, binary, octal and hex values. - fix a SIGSEGV that could occur under rare conditions in cleanup. With help from Todd Eigenschink and Gary Shea. - fix a problem that $req_rec is not correctly setup inside imported subs. Reported by Cliff Rayman. - specify domain/hostname when sending mail via MailFormTo - add EMBPERL_MAILFROM config, to make sender used by MailFormTo configurable - add EMBPERL_MAILDEBUG config, to allow debugging of email problems in MailFormTo - ProxyInput now handles posted form data. Spotted by Neeme Vool. - EMBPERL_INPUT_FUNC now allows to also give the name under which the source should cached, to allow correct cacheing of data read via EMBPERL_INPUT_FUNC. Spotted by Neeme Vool. - Fixed a SIGSEGV in OPTION tag which occurs due to different integer sizes on 64Bit systems. With help from David Waldo. =head1 1.2.0 17 Nov 1999 - test script had failed in cgi mode on win32. Spotted by Randy Korbes. =head1 1.2b11 (BETA) 4 Nov 1999 - Added the "Status:" header and error message to embpcgi.pl to let Apache return the correct status line. Patch from Jason Holt. - Fixed problem that Apache SIGSEGVs when an error message contains a %x. Spotted by Ed Park. - Added missing BEGIN block in docs for Session handling. - Fixed an endless loop that occured when tainting is on and the same document is called two times via Execute. With help from Jason Holt. - Changed access to addtional upload fileinfo. The old syntax (${${$fdat{}}}) isn't available anymore, because it doesn't work with filenames that are not a vaild perl variable name. Now there is a second field which start with a dash that's holds a hash ref to the file info. Spotted by Huang-Ming Pan. - The Embperl specific part of Apache session (former Apache::Session::Embperl) is now part of the Embperl distribution (as HTML::Embperl::Session). This makes Embperl independ of new releases of Apache::Session. Embperl now works with Apache::Session version 1.00 and higher. Apache::Session 0.17 is still supported, but the documentation is removed, because it should no longer be used. - Apache::Session must not be preloaded prior to Embperl. It's enought to set EMBPERL_SESSION_CLASSES and Embperl will bring the right modules in memory for you. - Removed the call to mod_perl_sent_header, which was an workaround for an problem with (very) old mod_perl version, because it doesn't resolve on (every) IRIX. Spotted by Jearanai Vongsaard. - NOT_FOUND, FORBIDDEN now also logged thru Apache, so the LogLevel is honoured and log message in Apache error log get a time stamp. Spotted by Christian Gilmore. - Removed warings that apears when compiling with -Wall. - Added URL of better emacs mode for Embperl from Erik Arneson. - Added new paramter 'errors' to Execute function which takes an array ref, that returns any error messages. Suggested by James Elson. - Fixed that serveral options where not settable inside an Embperl page. Spotted by Ilya Ketris. =head1 1.2b10 (BETA) 7 Oct. 1999 - Fixed a great security whole in CGI mode. Because Apache passes anything after the first '?' to the cgi script as commandline arguments, embpexec.pl could be tricked into offline mode, where it returned any file that is readable by the httpd! So if you are using CGI mode, I strongly recommend to update to 1.2b10. Now you must use embpcgi.pl instead of embpexec.pl in CGI mode. Spotted by Jason Holt. - Added EMBPERL_ALLOW. If the file doesn't EMBPERL_ALLOW Embperl will return forbidden. This is primarly another security feature, because dependig on the way you use Embperl in CGI mode, it will not honour all Apache access restrictions. With EMBPERL_ALLOW, you can now force it to serve only certain files. Suggested by Jason Holt. - Fixed a problem that had occured with magic SVs (tied scalar) as source for the Execute function. Spotted by Todd Eigenschink. - Embperl works now with Apache::Session 0.17, 1.02 and 1.04 (1.03 is errornous) - Fixed a SIGSEGV that occurs when the req_rec parameter of the Execute functions gets a Apache::Request object instead of a Apache object, which occured due to the different ways the Apache internal request_rec is stored inside the object. Spotted by Francis J. Lacoste. - Fixed a SIGSEGV that occured when outputting to a scalar and optReturnError is set. Spotted by Francis J. Lacoste. - Added a ; after the begin block in startup.pl, which seems had cause a syntax error in some situations. Spotted by Oyvind Gjerstad. - exit now works the same in offline, mod_perl and cgi mode, it ends the execution of the page, but not the programm itself. - exit inside a sub will now really exit the page. (but exit inside a file called via Execute will only exit this file, not the whole request) Spotted by Cliff Rayman. - Added new hash %http_headers_out which could be used to set arbitary http header under mod_perl _and_ in cgi mode. "Location" header will automaticly set status to 301. - setting http headers and now works also in cgi mode. - Session Handling now also works in CGI mode (needs Apache::Session >= 1.04) - ACTION attribute of Formtag is now URL en/decoded. Spotted by Hartmut Palm. =head1 1.2b9 (BETA) 10. Sept 1999 - Fixed a problem with loading Apache::Session 1.01, when Apache::Session 0.17 is not installed. Spotted by Volker Hess. =head1 1.2b8 (BETA) 9. Sept 1999 - Fixed behaviour of . now does not overide VALUE="" with the value from %fdat. This seems to has been broken, since a couple of versions and the fix may break pages that depends on that wrong behaviour. Anyway I have to fix it before the release version is out! - Added a patch (and a FAQ) from Jens-Uwe Mager, so Embperl compiles and links on AIX. - Fixed error in URL unescaping, spotted by Hartmut Palm. - _WINSOCK2API_ gets defined on Win32, when compiling with Apache 1.3.9. Spotted by Randy Korbes. - Win32 test uses also embpexec.test.pl (instead of .bat), so cgi test runs also with Apache 1.3.9. Spotted by Randy Korbes. - Fixed problem with EMBPERL_SESSION_ARGS that splits the arguments wrong when, for example, the DataSource contains a '='. Spotted by Vince Galloway. - Fix a memory leak which eats one SV per