Revision history for Perl extension HTML::Embperl.
1.1b3_dev
- Added support for perl5.005 (currently only without threads!)
- Nesting of metacommands and html tags is now independend of
each other.
- Added examples in eg/x for do .. until, foreach, if,
DBI datbase access, DBIx::Recordset database access and a
input- / confirmation form.
- Added optUndefToEmptyValue which will cause Embperl to treat non
existent values in %fdat as empty string in input tags, as suggested
by Steve Willer.
- Catch "die" within EMBPERL_INPUT/OUTPUT_FUNC and write error
message to the logfile
- Write error message of LWP::UserAgent in ProxyInput to logfile
if any
- Added test for POST Requests
- Added support for tests when mod_perl is build with USE_DSO.
Spotted by Christian Oyarzun.
- Selects and checkboxes are setup correctly if state is set via %fdat.
Spotted by Todd Eigenschink and Steve Willer.
- Changes URL escaping than only space, '+', '&', '=' and chars < 0x20
will be escaped to avoid problems with older netscape browsers.
- Added missing documentation for req_rec parameter of the Execute
function. Spotted by Eric Cholet.
- Send correct http header for error page, spotted by Steve Willer
- Fixed a memory leak in foreach metacommand
- Removed limit of 2048 Bytes for GET requests data (there is no
limit anymore. Spotted by Steve Willer
- Read all POSTed data (not just the first 1024 Bytes). Patch from
Steve Willer.
- Removed some compiler warnings spotted by Tarang Kumar Patel
- Make sure all data is flushed to the logfile at the end of
each request
- Fixed a bug that causes Init to set DebugFlags to 1 instead of 0.
Spotted by Eric Cholet.
1.1b2 27 Jun 98
- Added an additional note for input- and output escaping
which is described in "Inside Embperl" section.
It's very imported to understand this, if you have any
problems with html tags or filehandles in your perl code.
- Embperl will recognize Apache::exit. If called, inside a
Embperl page or in a module called from a Embperl page,
the processing of the document is imediately aborted.
Everything processed so far is outputed/send to the browser.
Based on a patch from Steve Willer.
- When running under mod_perl exit is a alias for Apache::exit
in every document.
- Enhanced the format of the Errorpage. Thanks for the patch
from Steve Willer
- Added a [$ foreach $] and a [$ do $] ... [$ until $]
metacommand
- Now multiple checkboxes with the same name will be set
correctly, to the values posted to the document. Spotted
by Todd Eigenshink and Nathan Krislock.
- [+ local $escmode = 0 .... +] works now. The first setting
of $escmode in a [+ ... +] block will now applied to the
whole block. You cannot change $escmode inside a [+ ... +]
block. Spotted by Chris Thormann.
- Fixed the return path setting in MailFormFields
- ProxyInput now passes http headers, so authentification
will be passed thru.
- Removed the limit 2048 for the lenght of html tags when [+ ... +]
are included. Now there is no limit anymore. Spotted by Doug Bagley
1.1b1 14 Jun 98
- Now you can set custom input and/or output functions via
EMBPERL_INPUT_FUNC and EMBPERL_OUTPUT_FUNC. This can be
used to chain modules together or to get the input from/
put the output to non-standard locations.
- Added a function ProxyInput which can be used to fetch
the input from another URL instead of the disk. One possible
usage for this is, to let first mod_include parse the
document and the Embperl. Suggested by Steffen Geschke.
- Added a function LogOutput, which will write every generated
document to a unique file in addition to send it to the
browser. Suggested by Dan Peterson.
- EMBEPERL_FILESMATCH allows you to selected which files in
a Location should be processed by Embperl. The rest is handled
by the apache default handler. This gives you the chance to
have Embperl and non-Embperl documents (like gifs etc.) in
the same directory.
- Logfile was displayed at the wrong position, when requested via the
browser the first time after the httpd was started
1.0.0 12 Jun 98
- Make tests run with Apache 1.3.0, spotted by Eric Cholet
- Added a definition for MAX_PATH, which is not there on SunOS 4.1.4
spotted by Dan Peterson
- Fixed a bug that causes Makefile.PL interpret MakeMaker parameters
spotted by Jason Bodnar
- Fixed a bug that caused EMBPERL_PACKAGE not to be recognized
- Fixed a bug that caused optDisableFormData not to be recognized for
multipart formdata
0.28-beta 19 May 1998
- I have added a chapter "Inside Embperl" to the docs, I hope this
will make it clearer how escaping and unescaping works and how you
can get which result. Highly recommended! (Thanks for spell- and gramar-
checking to Todd Eigenshink)
- make test now runs under win32 (You need to install LWP and libwin32)
IMPORTANT: You need a mod_perl version > 1.11 or you get a deadlock
- Compiles with apache_1.3b6
- Added support for Stronghold and Apache_SSL to Makefile.PL and test.pl
- Changed dbgEarlyHttpHeader to optEarlyHttpHeader because it's not a
debugging option. dbgEarlyHttpHeader still persits, but will be removed
in one of the following versions
- Embperl does not change the current working directory when optDisableChdir
is set, this saves some milliseconds perl request, also the cwd is moved
to the c code, so it runs faster then Cwd::fastwd.
Thanks to Doug Bagley for the profile which has shown how much time
Cwd::fastcwd consumes
- You can set optDisableHtmlScan in EMBPERL_OPTIONS. If set, Embperl only
recongizes [+/-/$/! ... !/$/-/+], but will not do anything with html tags,
as suggested by Randy Harmon.
- optDisableInputScan, optDisableTableScan and optDisableMetaScan can be
used to disable only some of the html tag processing
- You can set optDisableFormData in EMBPERL_OPTIONS. If set, Embperl
will not setup the %fdat and @ffld, as suggested by Doug Bagley
- If you use Execute the explicit call to Init/Term isn't needed anymore,
because Embperl performs the Init automaticly when it is loaded. The
Init function can still be used to change the path of logfile. Suggested
by Honza Jirousek
- All options and debugging flags can now be read/set at runtime. For
example $optRawInput = 1 sets the optRawInputFlag. Some of the options
are readonly, because they must be known before the request.
- Added more tests
- Embperl discards all errors which occurs in an expression after the end
of an dynamic table, which are only evaled to detect the table end and
never displayed. This allows usage of objects methods in dynamic tables,
where the table end is caused by a undefined object. (see
test/html/object.htm for an example). Spotted by Jason Bodnar.
- Printing to filehandle OUT has the same effect as using [+ .. +]
(including html-escaping)
- Setting optRedirectStdout cause Embperl to tie STDOUT to the Embperl
output stream (same as print OUT ...), suggested by Jason Bodar
- Setting optAllFormData will make empty formfields occur in %fdat and @ffld
with an empty string value, suggested by Dan Peterson
- Embperl now handles SELECT MULTIPLE correct. All OPTIONs which are
posted to the document will now be selected by Embperl, spotted by
Todd Eigenschink
- Fixed a bug that cause a '>' inside a [$/! ... !/$] block to be
interpreted as end of html tag spotted by Todd Eigenschink.
- Fixed a bug that causes the SELECT/OPTIONS tag not insert their
values in %idat and therefor make [$hidden$] work incorrect, spotted by
Dave Paris [aka Spider]
- Fixed a bug that causes the INPUT CHECKBOX tag not insert their
values in %idat when value isn't in %fdat and therefor make [$hidden$]
work incorrect.
- Fixed a problem that causes magicaly variables to be handled as if they
were undefined, which caused a end of dynamic tables
- Closing html tags will be correctly removed form perl source again
(when optRawInput is not set)
- will be translated to space (0x20) instead of 0xf0
- When EMBPERL_DEBUG is set 0, only errors and warnings will be written to
the logfile
- MailFormTo will generate correct TO header and insert a Return-Path
from the posted email adress
- Changed detection of mod_perl to $ENV{MOD_PERL}. This makes sure that
it will correctly work, even if Apache.pm isn't loaded.
- Reentered the optDisableEmbperlErrorPage which was lost in one of the last
releases, spotted by Doug Bagley.
- The content_length of the apache request_rec will only be set when a http
header is send.
- If, Elsif and While metacommands now use SvTRUE instead of a != 0 to test the
evaled expression, so behave like the perl ones do. Spotted by Jason
Bondar
0.27-beta not available
0.26-beta 16 Mar 98
- Adapt include pass to compile with apache_1.3b5
- Applied patch from Dan Walters to make Embperl compile with
apache_1.3b3 and mod_perl on Win 32
- Changed the order of included c headers and undef some macros
inbetween (copied from mod_perl.c) to compile with apache on Win 32
- Embperl works with apache_1.3b5 on win nt (make test does not yet)
(You need the apache sources and must compile perl with the vc++)
- Added the 'param' parameter to the Execute function to pass parameters
from and to the Embperl document.
- Added the 'fdat' and 'ffld' parameter to the Execute function to
setup %fdat and @ffld
- Fix a problem which displays tables a second time after the end of
the document, if dbgEarly HttpHeaders is on, thanks to Ask Bjorn Hansen
for spotting this.
- Fix the return values of CheckFile, which was not correct after a change
from 0.24 to 0.25. Thanks to Todd Eigenschrink for spotting this.
- Fix an error causing Embperl to crash on an html input tag without
the type parameter. Thanks to Todd Eigenschrink for the hint.
- Fix a problem that causes Embperl to not correctly recognices an error
when reading the sourcefile
0.25-beta 17 Feb 1998
- Included the "translation" of the Embperl POD to a human readable
form done by Todd Eigenschink
- Started a FAQ file form the questions I answered per email
- Added a the function Execute, which can be call form perl programs
(or Apache::Registry scripts) and can take input from and/or
output to memory as suggested by Doug Bagley and Randy Harmon
(Look at test/html/registry/Execute.htm for an example)
- Changed the source that it will compile on aix, spotted by
Patrick McAuliffe
- Access sys_errlist via perl macro Strerror to avoid errors with
redeclaration, thanks for spotting this to Honza, Jirousek
- Changed the tab size from 4 to 8 in my editor to be compatible with
unix standard
- Added warning if dbgLogLink is set and EMBPERL_VIRTLOG not
- Change the delimter of metacommand from space to any non alpha char
to allow writing [$while(a==b)$] as suggested by Michael D. Dowling
- Added config variable EMBPERL_ESCMODE to set inital values of $escmode
as suggested by Todd Eigenschink
- Added [! ... !]. Does just the same as [- ... -] but will only executed
on the first request for that document. This can be used to do one time
initialisation and to define subroutines.
- Change push_handlers to register_cleanup, so PERL_STACKED_HANDLERS and
PREL_CLEANUP aren't necessary anymore, as suggested by Doug MacEachern
- If exists, the function CLEANUP of the processed document will be called
before variable cleanup, but after the connection to the client is closed
- Added a closing in logfile send to the browser, otherwise msie 4
can't handle it
- Changed perl constants in perl part form subroutines to "real" constants
- Does some rearangeing of code
- Fixed a memory leak which has caused Embperl to loose one sv per perl
block, when a document is reloaded
- Fixed a bug which causes [+... +] within the Textarea tag to be ignored
spotted by Todd Eigenschink
- Fixed a bug in sorting hidden fields
- Fixed an wrong argument to MakeMaker, which was the cause that Embperl
couldn't build static, spotted by Belomestnov, Anatolii (and added a
decription to the Faq how to link static to mod_perl)
- Fixed that the LOG filehandle was not imported in the documents package,
so printing to LOG just has gone to nowhere
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.
-