=pod =head1 2.0b11 15. March 2004 - Fixed problem with JavaScript code in Form::Validate, when fields names are non JavaScript Identifier. - Fixed endless loop with call sub inside table under some circumstances, reported by Neil Gunton. - Fixed problem with select and dynamic options when no name attribute is given in select tag. Reported by Michael Stepanov. - Fixed problem with nesting of dynamic table and dynamic select. Reported by Doug Rayner. - Fixed problem with CGI.pm 3.01+, which deletes uploaded files, when CGI object is destroyed. - Fixed problem with encrypted source files and Perl 5.8.3 IO layers. Reported by Edwin Ramirez. - Fixed problem with encrypted source files and set key length. Reported by Edwin Ramirez. - Fixed problem with ,
and tag without href attribute when session ids are embedded into the url. Reported by Torsten Luettgert. - Added sanity checks to epcrypto.c - Added posibility to pass fdat&ffld parameter to Embperl::Object::Execute. - Fixed problem with print OUT and call of subroutines as first statement of a subroutine. Reported by various people. =head1 2.0b10 23. Jan 2004 - Added -break parameter for haveing precondition to Embperl::Form::Validate - Added $epreq and $epapp for the request and application object, so $r = shift isn't needed anymore on every page. - Default for EMBPERL_DEBUG is now zero, which mean, that Embperl does not write anymore to /tmp/embperl.log unless requested. Suggested by Angus Lees and others. - Added Embperl_Top_Include configuratin directive, which allows to add Perl code to the top of every file, for example for doing a use Module. - fixed various compiler warnings reported by Angus Lees. - Added missing Form/Validate modules to distribution. - fixed missing $req_rec in base template call from Embperl::Object. Reported by Neil Gunton. - Fixed include path for non standart apr directories. - Fixed epchar.c.min and epchar.c.iso-latin-2 to conatin char2xml table - Fixed problem with mod_perl 1.99_12 which reports wrong return value from handler when some variable inside them Embperl page get tainted. - Fixed tests for Perl 5.8.2 & 5.8.3 - Fixed a bug with print OUT at the end of a nested tag inside a loop reported by Neil Gunton - Documented exit with argument behaviour. - Remved use Apache::Constats from Embperl::Mail so it works without mod_perl installed. =head1 2.0b9 10. Juni 2003 - libxml now searchs through Embperl search path when includeing external entities, so for example directives searchs files the same way as Execute does under Embperl::Object. - fixed typo in JavaScript code for Form::Validate reported by Axel Beckert - fixed typo in Embperl::Mail reported by Axel Beckert. - fixed small bugs in Embperl::Form::Validate test code reported by Axel Beckert. - charcters 128-160 are now escaped in URLs to avoid problems with Mozilla. - fixed missing escaping of '/' in Embperl::Form::Validate JS routines. Patch from Axel Beckert. - fixed spelling: CACKE_KEY -> CACHE_KEY. Reported by Andre Landwehr. - URL escaping now fully conforms to RFC 2396. This mainly solves some problems where IE interpreted characters in URLs as UTF8. - Embperl::Form::Validate JavaScript code can now handle fieldnames that aren't correct JavaScript identifier. - Fix SIGSEGV when printing to Embperl::LOG before Embperl log file is setup. - Fix problem when session id is given to Embperl, but session management was not setup - Added 'same' validation to check if two fileds have the same input enterd - Fixed memory leak. Patch from Joshua Chamas. - Use MP_AP_PREFIX as source for APache 2. Patch from Paul Dyer. - Fixed a initialisation bug which caused under special conditions a segfault when compiling a select tag. - Fixed compiler warnings and errors when compiling with Perl 5.8.0. - Replaced PL_sv_undef with ep_sv_undef (which is a copy of PL_sv_undef), because storing PL_sv_undef in a Perl 5.8.0 hash is treated as a placeholder and doesn't work as before. - Fixed problem with [$ sub $] when running under Perl 5.8.0. - Fixed problem when STDOUT is tied, because storage has changed in Perl 5.8.0. - Fixed problem when single quote or backslash is inside of option or input value. Bug reported by Saadiq Rodgers-King. - Added [$last$], [$next$], [$redo$] and documented [* next *] etc. - Readdeded missing MailFormTo and added test for it. - Fixed escaping inside of html attributes of Embperl generated tags like input and [$ hidden $]. Reported by Axel Beckert. - checked and selected attributes are now correctly set when values contains entities (e.g. <) - Fixed segfault when cleanup is called to early. Reported by Neil Gunton. - If no name is given for a key, Form::Validate now tries to lookup the correct text via Embperl's gettext method. - Fixed problem with message ids that are Perl keywords. Reported by Jaak. - Added EMBPERL_COOKIE_SECURE option to transfer cookie only over a secure connection. - Added EMBPERL_OUTPUT_MODE that allows to change to XML output, which cause generated tags to contains a closing slash, so they are valid XML/XHTML. - Fixed make test to ignore different idention of newer versions of libxslt. - Added server_addr to the request param object. - Keep spaces and newlines in tag. - Embperl::Mail now encodes all header fields that contains characters between 128 and 255. Use headerencoding parameter to turn of or tell Embperl your charset. - Fixed mod_perl 2 detection when mod_perl is build with MP_INST_APACHE2. - Fixed problem with reseting $escmode, when using print OUT. Reported by David Hull. - Fixed compiling problem on FreeBSD. - Added function XML::Embperl::DOM::iSetText to change name of Tag. Requested by Yatin Chawathe. - EMBPERL_COOKIE_EXPIRES now again accepts relatives times like +2h. - embpexec.pl now correctly takes config values from environment for application object. - Added -type => Integer, IPAddr, IPAddr_Net, FQDN_IPAddr, TimeHHMM, TimeHHMMSS, EMail and EMailRFC to Embperl::Form::Validate. - Fixed problem with [$var$] and select reported by Joshua Spoerri. - Embperl compiles and tests now correctly if mod_perl installed under Apache2 namespace. - Added tests for epform and subreq. - Added patch from David Hull, which let you specify the status-code when doing a redirect via %http_headers_out. - Fix SIGSEGV on sparc in cleanup. Patch from Angus Lees. - Apply patch from Angus Lees which avoids a lot of (harmless) compiler warnings. - %idat is now also populated for checkboxes and radiobuttons where no matching value in %fdat is found. This avoid duplicate submission of formdata when using [$ hidden $]. - fixed memory allocation problem that had occured when mod_perl was staticly linked into Apache. - removed old Embperl 1 test files from distribution - corrected initialization of ap_filter_rec structure which had lead to random segfaults when using the subreq parameter. =head1 2.0b8 (BETA) 25. Juni 2002 - exit can now exit the whole request. When called without argument it exits the current component, like before, when called with argument it exits the whole request. - Added support for Apache 2.0 / mod_perl 2.0 (prefork MPM). - Added the possibility to catch the output of a sub-request (e.g. a CGI script, Java or PHP output) when running under Apache 2.0 - when setting $r -> param -> filename in an application object to a relativ path it is interpreted relativ to original request - Start to catch up with new features of Embperl 2 in the docs. Added Config.pod for configuration and calling. - Lots of improvments in the new Embperl website, which serves as best example for using the new Embperl 2 features. It's part of the distribution and can be found under eg/web. See eg/web/README. - fixed bug with setting of escmode and print Out reported by Eric-Olivier Le Bigot. - fixed incorrected escaping inside of an URL when expanding an hash or array reference. Reported by Axel Beckert. - fixed possible endless loop when expanding hash or array inside of an URL. - fixed a segfault that occured when source file encryption was enabled. Reported by Edwin Ramirez. - fixed a segfault that occured when no input file is given. Reported by Edwin Ramirez. - fixed a segfault that occured on solaris when input comes from memory. Reported by Mike Wesemann. - readd possibility to build version with and without Apache support on windows. - Remove Content-Length: 0 HTTP-Header in CGI Mode - Fixed segfault when replacing an attribute. Reported by Michael Stevens. - Fixed random segfaults, that had occured when Perl had reallocated it's internal Stack. - When apache is started with -D EMBPERL_APDEBUG, it outputs a configuration trace. - When file is not found, Embperl::Object now returns status 404, instead of 500. Reported by Cameron McBride. - When optReturnError is set, Embperl::Object now really returns the error code. Reported by Cameron McBride. - Fixed a reference count error when using the import parameter. Reported by Michael Smith. - Fixed string reference counting problem in RTF&POD syntax. - Fixed a segfault that had occured when a file with a syntax error is compiled the second time within the same process. Reported by Michael Smith. - removed do { } around expressions of [+ +] blocks inside urls, because this cost performance and now all [+ +] behaves the same. Reported by Michael Smith. - make stop now works also on windows. - make start, which can be used to view/test the Embperl website localy, now displays the URL how to request the site. - libxslt does correct error reporting now. - libxslt output encoding is now recognized correctly. - set Content-Length when sending error page, so Internet Explorer won't show his own error page. =head1 2.0b7 (BETA) 21. Mar. 2002 - Changed default for EMBPERL_ESCMODE from 3 to 7. This disables by default the possibilty use the backslash to not escape a piece of output. This increases the security, because it by default avoids the interpretation of the backslash in any user input that is redisplayed. - Fixed bug in mail syntax and Embperl::Mail reported by Jan Kyncl. - Removed LogFormat and CustsomLog from test config, so mod_log_config is not required for make test. Reported by Jochen Topf. - Removed EmbperlObject.pm from MANIFEST, since it was replaced by Embperl/Object.pm. - Make symbolsnames unique so they don't clash with 1.3.4. Reported by Kee Hinckley. - Fixed a problem that ocurred when a reference to some of the Embperl objects was kept after the end of it's lifetime, which caused a segfault. - Don't do a path search when the filename starts with './'. - Fixed a segfault that occured when many nested sub's are used, but only a low number of strings. - Fixed a problem that 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