Revision history for Perl extension HTML::Embperl. 0.24-beta 13 Jan 1998 - Added the option optRawInput which causes Embperl not to preprocess the source for a perl expression (Only exceptions is that CR will be removed). This option should be set when you writing your code with an ascii editor. If you using a WYSIWYG editor, which insert unwanted html tags in your perl expressions and escapes special charcaters automaticly (i.e. < will occur as < in the source), you should not set this option, and Embperl will automaticly convert the html input back to the perl expression you written. (Thanks to Todd R. Eigenschink for a patch) - $0 is set to filename of html source - Change Current Working Directory to directory of html source - Warning messages now are also logged in logfile at the correct position next to the source line - Perl error and warning messages contains the filename and correct linenumber of the html source - Sourcelines in logfile contain linenumbers - Output via [+ ... +] of undefined values at the end of a dynamic table (which must be there to end the table) do not generate a warning anymore NOTE: If you use them in a expression (such like $a = $arr[$row] or simply inside " ", you will still get a warning) - Open html source in binary mode on Win32 to avoid overhead of crlf -> lf translation. - Use aplog_error for apache_1.3 to avoid senseless os errors written to httpd error log - Removed some uninitializied value messages when running with -w / PerlWarn on spotted by Todd R. Eigenschink - Fixed a bug which has caused nested while loop to exeute incorrect if the condition of the outer one if false 0.23-beta 31 Dec 1997 - Fixed a bug which causes $req_rec to be not defined anymore (Thanks to Todd R. Eigenschink for the hint and debugging) - Fixed a bug in escaping special html char to normal ascii (Thanks to Todd R. Eigenschink for the hint) - Makefile.PL now set the path to your perl binary in embpexec.pl and embpexec.test.pl, so it works regardless where your perl is located (Thanks to Randal Schwarz for the hint) - Added the SSLDisable to the test config when running an httpsd. (Thanks to David Scott for the hint and Ralf S. Engelschall for the Syntax) - Fixed a bug in tag interpreation causing random errors when not compiled for mod_perl 0.22-beta 28 Dec 1997 - Changed include path generated in Makefile.PL so Embperl also compiles with apache_1.3b3 (Thanks to Doug Bagley for the hint) 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 - 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.
) 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 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. - , this means that if a value for the select exists in %fdat, the corresponding option is automaticly selected. - Added support for table heading ( tag). If all cells in a row are surounded by / instead of / 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 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 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 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 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 embpexec.pl 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 -DEPDEBUGALL - 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 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 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 Embperl.pm 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 < ) - 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