=pod =head1 1.3.4_dev -- That's what currently under developement Last Update: <$localtime$> (MET) NOTE: This version is only available via L<"CVS"|CVS/"INTRO"> - Added method $r -> Espace for html & url escaping - URL escpage # to %23 - use Content-Lenght HTTP Header instead of $ENV{CONTENT_LENGTH} when running under mod_perl and win32. This fixes a bug with POSTed data reported by Lukas Zapletal. - Display correct Apache module name in Makefile.PL when requesting path for Apache module. Patch from James Lee. - New session handling using Apache::SessionX. (This also fixes problem with MD5 and Perl 5.6.1) - Fixed a bug that cause file-uploads to fail for the first request to a file when running under EmbperlObject. Reported by Thoren Johne. - Added possibilities to add the session id as argument to any URL, instead of using cookies. - Added new hash %sdat which holds temporary sessins data. - Added options optAddUserSessionToLinks, optAddStatusSessionToLinks and optNoSessionCookies to control how the session id is passed. - Make sure the HTML::Embperl::Mail generates correct line endings - If Perl's STDOUT and/or STDIN are tied to any package, Embperl now calls the Perl methods PRINT and READ for doing I/O. This currently only works, when not running under mod_perl. - Embperl can now run under FastCGI. Use embpfastcgi.pl instead of embpcgi.pl. - Delete unnecessary PerlFixupHandler from httpd.conf.src for make test. Reported by David Merberg. - Add undef to %idat for select tag with nothing selected if optAllFormdata is set. - Cleanup of DBIx::Recordset objects now honors the setting in %CLEANUP. Problem reported by Kee Hinckley. - Embperl can now use encrypted sourcefiles. See crypto/README for details. - Embperl can now be installed as Apache and non Apache version on the same system. This is neccessary to work on Windows in- and outside of Apache. - Fixed a linkage problem with symbol embperl_module, first reported by GustavKristoffer Ek. - error message now always contain a filename. - Added optShowBacktrace to enable backtrace of filename in error messages - Removed obsolete debug flags dbgDisableCache, dbgWatchScalar, dbgEarlyHttpHeader =head1 1.3.3 (RELEASE) 6. Juni 2001 - fixes problem with cleanup and Perl 5.6.0+ which broke session management. Spotted by Lukas Zapletal and Andy Lim. - Improved Makefile.PL to catche more setup situation on Win 32. - Make $r -> Error settable to be able to reset Embperl's internal error flag. - workaround for $r -> chdir_file not working correctly inside of Apache::Registry with ActiveState Perl, which caused make test to fail. - fixed SIGSEGVs that could occur on rare situations when multiple file not found errors are reported. - fixed problem with wrong setup of Content-Length header when running in CGI mode, with escmode = 0. Spotted by Edwin Ramirez. - fixed problem with nested dynamic tables and Execute. - added correct errror message for rcNotCompiledForModPerl. Spotted by Scott Chapman. =head1 1.3.2 (RELEASE) 16 May. 2001 - 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. - adapted make test to Perl 5.6.1 and 5.7.1 so now it passes sucessfully. - fixed problem with cleanup in threaded Perl 5.6.1 and higher - added pod documentation to embperl.pl. Patch from Angus Lees. - %http_headers_out can take now array refs as elements to set multiple headers of the same value. Patch from Maxwell Krohn. - Non module-documenations (like Intro.pod Faq.pod etc) now gets copied under the correct directory and man pages are generated with the correct name (e.g. perldoc HTML::Embperl::Intro works now after installation). Based on an idea from Angus Lees. - Makefile.PL enhancements for Apache/ActiveState binary distribution - quote pathnames in Makefile to allow directories like "Program Files". Spotted by Lukas Zapletal. - Added epocgi.pl which allow use of EmbperlObject as CGI script. - Added a dTHR to function CmdVar to make Embperl compile with threaded Perl 5.005. Patch from Michael George III. - EMBPERL_SESSION_ARGS can now accept pathes with spaces inside by quoteing an argument e.g. PerlSetEnv EMBPERL_SESSION_ARGS "'Directory=/Session Files/'". Spotted by Lukas Zapletal. - Perl search path (@INC) in make test is set to abosulte paths to be independend of directory changes that Apache might issue. Spotted by Randy Korbes. =head1 1.3.1 (RELEASE) 13 Feb. 2001 - Added new Introduction to EmbperlObject written by Neil Gunton. See perldoc IntroEmbperlObject - Added new Tips and Tricks pod written by Neil Gunton. See perldoc TipsAndTricks. Anybody is invited to send me their own Tips and Tricks! - Added object and isa parameters to Execute, which allows to get an object reference for a certain file and set the Perl inherence hierachive. Ideas from Neil Gunton and Angus Lees. - Corrected a problem that leads to very strange errors when an Embperl sub is called from an in memory source (that is passed via the Execute input parameter). Spotted by Neil Gunton. - Make EmbperlObject work better with relative paths and drive letters on Windows. Based on a patch from Freddy Vulto. - Fixed a problem with the cache key, which could cause that the same file is compiled within different packages. - Fixed a problem that Embperl are in a wired state after an file upload has been interrupted. Spotted by Dirk Lutzebaeck. - Fixed a problem set @ISA is not correctly setup in case a file is compiled in the same package as the base file of EmbperlObject. Spotted by Neil Gunton. - Fixed problem with including ../foo.html in EmbperlObject. Spotted by Neil Gunton. - Added warning if @ISA is not correctly setup/corrupted. - Fixed a SIGSEGV that occurs when an reference to undef is returned from a [+ +] inside a URL. - Added warning to Makefile.PL, if File::Spec 0.82 isn't installed, which is required by EmbperlObject. - Fixed "use of undefined value" warning in make test =head1 1.3.0 (RELEASE) 4 Dec. 2000 - Corrected a wrong test, that let make test fail. Spotted by Eddie Lau. - Added a Line Feed at the end of epnames.h, which has caused some problems with on old SunOS compiler. Spotted by Roman Maeder. - Fixed a problem that Perl generated an error when $req_rec and [$ var $] was used. Spotted by Michael Stevens. =head1 1.3b7 (BETA) 15. Nov 2000 - Fixed problem that the call to close triggers error in Session.pm when using Store::File. Spotted by Alvar Freude. - Fixed problem that GetSession doesn't return a value for new session. Spotted by Angus Lees. - Added new function SetSessionCookie, which can be used to set the session cookie header in case you use Embperl session management, but don't use a Embperl page in that request. Suggested by Alex Schmelkin. - Fixed problem that DeleteSession does not work outside the base template, when used with EmbperlObject. Spotted by Angus Lees. - Fixed problem when use multiple nested ../foo.htm inside EmbperlObject. Spotted by Neil Gunton. - Included patch from Angus Lees to ease building on debian. - make test now works again with BEN-SSL httpsd. With help from Neil Gunton. - Included grammaticaly updated Embperl.pod. Many thanks to Ilia Lobsanov for doing the proof reading. - removed dbgDisableCache to avoid problems with this "feature" that isn't working anymore for a long time. - Added validaten for session cookie. If Apache::Session 1.53+ is installed it uses the validate method from Apache::Session::Generate::xxx. If a invalid session id is found a new one is generated. Spotted by Angus Lees. - If a not existing session id is received, Embperl generates now a new one. - Enhancements of Cookie resending logic. To make sure cookies are send when neccessary, but not more often. (Handles now write to session data, after a delete in the same request correctly). - Added more tests for Sessionhandling. - Fixed a bug that Content-Lenght was 2 to much, when escmode was set to zero. Spotted by Michael Smith. - Added patches from Randy Korbes for ActiveState Support. Most tests with Embperl under mod_perl nows passes. The few remaining ones that doesn't pass seems to be due to problems of mod_perl's enironment handling. - Droped support for Apache::Session 0.17. Embperl now support only Apache::Session 1.00 and higher. - Added new option: optDisableSelectScan, to allow processing of SELECT tags, while processing of TABLE tags is disabled. Suggested by Robert. - Carridge Returns are only removed for Perl 5.004. This makes using of HERE documents possible on Perl 5.005+, even if the documents has CRLF as lineendings. =head1 1.3b6 (BETA) 18. Oct 2000 - Embperl now runs on ActiveState Perl. (At least in offline mode, mod_perl mode seems to still have some problems). With a lot of help from Randy Korbes. - Changed EmbperlObject search order: * If EMBPERL_OBJECT_STOPDIR is set, this directory is taken as the last directory in the normal search path, instead of the directory where the base template (EMBPERL_OBJECT_BASE) is found. * EMBPERL_OBJECT_ADDPATH is _always_ added to the search path * Now Embperl also searches the path for files like ../foo.html, or bar/foo.html, which includes a relative path. - ../* is now a shortcut for the requested file, but in the parent directory (or upper depending on the search path) - Added access to Embperl session handling for modules and calling scripts (see SetupSession and GetSession) - Embperl is now able to output binary data if EMBPERL_ESCMODE and/or $escmode is zero. This also include that no CRLF is added at the end of the file, if escmode is zero. - Added method for deleting session data and cookie - Added method for triggering resend of session cookie. - Added Test for pnotes ('EMBPERL_ERRORS') - Added hash %CLEANUPFILE. All variables defined into the files given in this hash, are also cleanup at the end of the request. Patch from Todd Eigenschink. - Changed the way the C Requestobject is attached to the Perlobject, so it should now also work on 64Bit Processor like Alpha. Spotted by Andre Landwehr. - Fixed a problem with importing files that contains foreach and do until loops, which may caused a syntax error or endless loop. Spotted by Steffen Geschke. - embpcgi* and embpexec* are now geratated out of *.templ instead of editied in place to avoid problems with cvs conflicts and lower/uppercase on Win32. Suggest by Jens-Uwe Mager. - make test works with Apache that has mod_jserv compiled in - Embperl now cache same files with relative path, which are located in different directories correctly. =head1 1.3b5 (BETA) 20. Aug 2000 - Embperl now supports Apache::Session 1.52. See "Session handling" in the docs, how the setup has changed. - Fixed a problem with POSTed data, which had got lost for the first, request when using EmbperlObject handler. Spotted by Kaare Rasmussen. - Fixed a typo in HTML::Embperl::Mail, spotted by Robert. - changed require to use HTML::Embperl in EmbperlObject to avoid problems with dynamic loading. Spotted by Robert. - Embperl takes the cookie for session handling from the Apache request record to make it available in earlier phases then the content handler. Suggested by Jack Cushman. - added entity decoding for value attribute of radio/checkboxes. Spotted by Chris Thorman. - %fdat is not resetup when already done and formtype is multipart/formdata. Spotted by Michael Slade. - Embperl inserts & instead of a signle & inside query strings when expaned from array or hash refs. - Embperl now also accepts hashref inside a url and expand it to a query_string i.e. will become . - EMBPERL_COOKIE_EXPIRES now also supports relativ times like: +30s +10m +1h -1d +3M +10y - $req_rec -> pnotes ('EMBPERL_ERRORS') could be used to retrieve error message inside a error document - make Embperl compile and run with threaded Perl 5.6. With help from Jason Bodnar. NOTE: That doesn't mean that Embperl is threadsafe! =head1 1.3b4 (BETA) 17.07.2000 - 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. - If a requested file is not found when using EmbperlObject as handler, the file given by C is displayed instead. If C isn't set a staus 404, NOT_FOUND is returned as usual. - "perl Makefile.PL debug" will build debugging information for gdb/ms-vc++ into Embperl library. - test.pl can take a bunch of new options for debugging Embperl itself. See make test TESTARGS="--help". - Embperl 1.x and 2.x share now the same Makefile.PL and test.pl - Added new debug flag dbgObjectSerach which logs the EmbperlObjects work when searching the correct file. - If import parameter is given to Execute, Perl code is compiled, but only [! !] blocks are executed (to allow sub definitions on import) - Space is converted to %20 instead of +, because that is more generic. Suggested by Michael Blakely. - EmbperlObject now automaticly defines all subs that are declared inside the base template and inside the requested page, so it isn't neccessary anymore to call Execute with import => 0 for them. - Every Embperl Page now get passed a request object (which can be obtained from $_[0]). The request object is a hash reference which is blessed into the package HTML::Embperl::Req. Embperl itself don't uses the hash, so you are free to populate it and pass data between different pages of one request. - EmbperlObject now setup the inherence so that request page -ISA-> base template -ISA-> EMBPERL_OBJECT_HANDLER_CLASS (if defined) -ISA-> HTML::Embperl::Req and the Embperl request object is blessed into the packages of the requested page, so you can do methods calls to subs that are defined inside the requested page. - correct spelling error and renamed ScanEnvironement to ScanEnvironment. (ScanEnvironement still works). - EmbperlObject can now be used also offline (via HTML::EmbperlObject::Execute) - MailFormTo and HTML::Embperl::Mail::Execute now have a configuration directive EMBPERL_MAILHELO, can be used to specify the host/domain for the HELO/EHLO command. Suggested by Remco Brink. - Fixed a bug that caused the default drive to be incorrectly set on Win 32. =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 tag is changed from an HTML escape to a URL escape i.e. the 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 that PerlSetEnv can be used instead of SetEnv for configuration. In contrast to SetEnv, PerlSetEnv allows different 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 a Perl syntax error occurred - Fixed a bug so that a '>' inside of [+/- ... -/+] is not detected as the end of an HTML tag (Thanks to Todd R. Eigenschink) =head1 0.19-beta 29 Oct 97 - Rewrote the code for the LOG handle. Now the handle LOG is tied so that every print/printf is written to embperl.log at the right position. Use this to do logging from your embedded code or modules - Fixed a bug which caused garbage to be displayed in dynamic tables (or made parts of the table disappear) =head1 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. - , this means that if a value for the select exists in %fdat, the corresponding option is automatically selected. - Added support for table heading ( tag). If all cells in a row are surrounded by / instead of / the row is interpreted as column headings and printed only once. Row headings are not supported yet, but in one of the next versions... - Added support for multipart/formdata to support fileupload. Embperl automatically detects multipart/formdata and lets CGI.pm handle it. The results are also present in @ffld and %fdat like for normal formdata. See CGI.pm for more docs. (Thanks to eigenstr@mixi.net for the idea and material) - Now all the output is kept in memory and the http-header are sent when the processing is finish. This gives the ability to set http-headers (only under mod_perl) within the page. Also now the Content-Length can be sent in the http-header. (Thanks to eigenstr@mixi.net 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 didn'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 - Fixed two minor memory leaks. Now the Embperl test suite can run 1000 times and more without making the httpd grow! =head1 0.17-beta 30 Aug 97 - Removed some Compiler Warnings (Thanks to Ian Kallen for reporting them) =head1 0.16-beta 29 Aug 97 - Added more restrictive access check when running under mod_perl * Option ExecCGI must be set * must not be a directory - Added a (few) more docs about how to view the Embperl logfile with your browser - Added a declaration for error-dependent 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 work for body, table and tr tags in previous versions) - Will now preserve case of HTML tags - Do not interpret unknown HTML tags in any way, so as 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 built with its own regx library - Now Embperl shows which tags don't match in error message (table, dir, select etc.) - Fixed a bug which caused "[" characters to be printed even in a false if path =head1 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 compatible with compilers other than the gnu-c compiler - Inserted a missing return in oputc which caused a SIGSEV on Solaris (Thanks to Dan Peterson) - Checked return code of Logfile open, to prevent a SIGSEV when Embperl cannot write to the logfile (it now writes an error message in server's errorlog) (Thanks to Dan Peterson) - Errors will also be logged to the server's error log (written to stderr) =head1 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 - Added the possibility to handle multiple form fields with same name - chars which are a 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 tags for Perl code i.e. [- -] and [+ +] substitution takes place - Replaced carriage return in Perl expression with space to avoid Perl 5.004 error about carriage return - added $req_rec to access the Apache server api when running under mod_perl - Fixed a bug in Safe namespace handling which was always causing ERR: 17 Namespace unknown - Fixed a bug which caused dynamic tables to end, if a 'if', 'while' and etc. was included - Fixed a bug that caused [$cmd$] to be executed only in the first iteration of a 'while' or a table - Fixed some bugs in input tag interpretation - Fixed a bug which occurred when Embperl encountered an input tag with value="" and %ffld="" - Fixed a bug in embpexec.pl that caused the options to be ignored when running offline =head1 0.13-beta April 26 1997 - Moved EPENTRY (embperl_init) down to avoid crashing when compiled with -DEPDEBUGALL - Added #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 - Added pids (to distinguish between muliplite requests) and time to logfile output - Made 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 =head1 0.12-beta not publicly released - The mask has been removed from namespace option so it can be used with safe.pm > 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 which caused the Perl operator '<' to be interpreted as an HTML tag in tables or while loops after the first iteration - Added ffld array for mod_perl mode to get the order of form fields - Removed vsnprintf since its not available on all platforms - Corrected handling of empty dynamic tables - Fixed a bug which was causing a Segmentaion Fault when the first table is empty - Added a script for make test - Fixed Error with nested if - Log compilation errors of embedded Perl code - Avoid some warnings in Embperl.pm =head1 0.11-beta March 25 1997 - Name changed from Embperl to HTML::Embperl!!!!!!!! - FORM & ENV debug output now available in all modes - Output from [+ +] and INPUT fields are escaped (e.g. < is send as < ) - Added two-dimensional tables - Fixed a bug which caused an endless loop when using a \ - Fixed escaping of 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 =head1 0.10b-beta Jan 23 1997 - fixed some errors =head1 0.10beta Jan 18 1997 - first public beta release