You are viewing a plain text version of this content. The canonical link for it is here.
Posted to embperl-cvs@perl.apache.org by ri...@apache.org on 2001/11/02 12:34:28 UTC
cvs commit: embperl/test/html escape.htm
richter 01/11/02 03:34:28
Modified: . Tag: Embperl2c Changes.pod DOM.xs Embperl.pm
Embperl.pod EmbperlD.pod MANIFEST Makefile.PL
README.v2 TODO embperl.h ep.h epchar.c epcomp.c
epdom.c epdom.h epmain.c eputil.c
test/cmp Tag: Embperl2c epobase.htm escape.htm
test/html Tag: Embperl2c escape.htm
Added: . Tag: Embperl2c embpfastcgi.pl.templ
Log:
Embperl 2 - embpfastcgi & xml escmode & bug fixes
Revision Changes Path
No revision
No revision
1.129.4.34 +18 -10 embperl/Changes.pod
Index: Changes.pod
===================================================================
RCS file: /home/cvs/embperl/Changes.pod,v
retrieving revision 1.129.4.33
retrieving revision 1.129.4.34
diff -u -r1.129.4.33 -r1.129.4.34
--- Changes.pod 2001/10/31 13:47:41 1.129.4.33
+++ Changes.pod 2001/11/02 11:34:25 1.129.4.34
@@ -6,7 +6,7 @@
thru any unkown fields.
- Fixed problem when loading syntax. Spotted by Michael Stevens.
- Allow Perl code inside of HTML attributes in ASP syntax, together with
- EmbperlHTML syntax. SPotted by Ivan G. Shevchenko.
+ EmbperlHTML syntax. Spotted by Ivan G. Shevchenko.
- Added POD syntax, which converts POD to XML, which can transformed to
any other output format using XSLT.
- Enhanced Makefile.PL to support plugins for linking of extra libraries.
@@ -20,17 +20,12 @@
- Add new debug flags dbgOutput, dbgRun, dbgCache, dbgCompile, dbgXML,
dbgXSLT, dbgCheckpoint, dbgDOM to have a more fine control what's
going into the log file
- - Removed obsolete debug flags dbgDisableCache, dbgWatchScalar,
- dbgEarlyHttpHeader
- - Chnages in Embperl's internal tree representation, to fix serveral
+ - Changes in Embperl's internal tree representation, to fix serveral
small problems and in preparation for proper XML handling.
- print OUT inside loop works now correctly
+ - Added new escmode 8/15 which generates correct XML escaping.
+ - $row_foo will no longer treated as $row. Bug reported by Dave Fischer.
- - 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.
=head1 2.0b3 (BETA) 9. July 2001
@@ -142,7 +137,8 @@
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
+ - 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.
@@ -155,6 +151,8 @@
- 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
@@ -163,6 +161,16 @@
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
1.1.2.19 +4 -4 embperl/DOM.xs
Index: DOM.xs
===================================================================
RCS file: /home/cvs/embperl/DOM.xs,v
retrieving revision 1.1.2.18
retrieving revision 1.1.2.19
diff -u -r1.1.2.18 -r1.1.2.19
--- DOM.xs 2001/10/29 20:07:12 1.1.2.18
+++ DOM.xs 2001/11/02 11:34:25 1.1.2.19
@@ -10,7 +10,7 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
-# $Id: DOM.xs,v 1.1.2.18 2001/10/29 20:07:12 richter Exp $
+# $Id: DOM.xs,v 1.1.2.19 2001/11/02 11:34:25 richter Exp $
#
###################################################################################
@@ -63,7 +63,7 @@
PPCODE:
SvGETMAGIC_P4(sText) ;
s = SV2String (sText, l) ;
- Node_replaceChildWithCDATA (DomTree_self(pDomNode -> xDomTree), pDomNode -> xNode, pCurrReq -> nCurrRepeatLevel, s, l, (pCurrReq -> nCurrEscMode & 3)== 3?1 + (pCurrReq -> nCurrEscMode & 4):pCurrReq -> nCurrEscMode, 0) ;
+ Node_replaceChildWithCDATA (DomTree_self(pDomNode -> xDomTree), pDomNode -> xNode, pCurrReq -> nCurrRepeatLevel, s, l, (pCurrReq -> nCurrEscMode & 11)== 3?1 + (pCurrReq -> nCurrEscMode & 4):pCurrReq -> nCurrEscMode, 0) ;
pCurrReq -> nCurrEscMode = pCurrReq -> nEscMode ;
pCurrReq -> bEscModeSet = -1 ;
/*SvREFCNT_inc (sText) ;*/
@@ -82,7 +82,7 @@
PPCODE:
SvGETMAGIC_P4(sText) ;
s = SV2String (sText, l) ;
- Node_replaceChildWithCDATA (DomTree_self(xDomTree), xOldChild, pCurrReq -> nCurrRepeatLevel, s, l, (pCurrReq -> nCurrEscMode & 3)== 3?1 + (pCurrReq -> nCurrEscMode & 4):pCurrReq -> nCurrEscMode, 0) ;
+ Node_replaceChildWithCDATA (DomTree_self(xDomTree), xOldChild, pCurrReq -> nCurrRepeatLevel, s, l, (pCurrReq -> nCurrEscMode & 11)== 3?1 + (pCurrReq -> nCurrEscMode & 4):pCurrReq -> nCurrEscMode, 0) ;
pCurrReq -> nCurrEscMode = pCurrReq -> nEscMode ;
pCurrReq -> bEscModeSet = -1 ;
/*SvREFCNT_inc (sText) ;*/
@@ -100,7 +100,7 @@
PPCODE:
SvGETMAGIC_P4(sText) ;
s = SV2String (sText, l) ;
- Node_replaceChildWithCDATA (DomTree_self(pCurrReq -> xCurrDomTree), xOldChild, pCurrReq -> nCurrRepeatLevel, s, l, (pCurrReq -> nCurrEscMode & 3)== 3?1 + (pCurrReq -> nCurrEscMode & 4):pCurrReq -> nCurrEscMode, 0) ;
+ Node_replaceChildWithCDATA (DomTree_self(pCurrReq -> xCurrDomTree), xOldChild, pCurrReq -> nCurrRepeatLevel, s, l, (pCurrReq -> nCurrEscMode & 11)== 3?1 + (pCurrReq -> nCurrEscMode & 4):pCurrReq -> nCurrEscMode, 0) ;
pCurrReq -> nCurrEscMode = pCurrReq -> nEscMode ;
pCurrReq -> bEscModeSet = -1 ;
/*SvREFCNT_inc (sText) ;*/
1.118.4.55 +4 -3 embperl/Embperl.pm
Index: Embperl.pm
===================================================================
RCS file: /home/cvs/embperl/Embperl.pm,v
retrieving revision 1.118.4.54
retrieving revision 1.118.4.55
diff -u -r1.118.4.54 -r1.118.4.55
--- Embperl.pm 2001/10/31 13:47:41 1.118.4.54
+++ Embperl.pm 2001/11/02 11:34:25 1.118.4.55
@@ -10,7 +10,7 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
-# $Id: Embperl.pm,v 1.118.4.54 2001/10/31 13:47:41 richter Exp $
+# $Id: Embperl.pm,v 1.118.4.55 2001/11/02 11:34:25 richter Exp $
#
###################################################################################
@@ -151,6 +151,7 @@
use constant escStd => 3 ;
use constant escUrl => 2 ;
use constant escEscape => 4 ;
+use constant escXML => 8 ;
use constant optDisableChdir => 128 ;
@@ -390,7 +391,7 @@
create_unknown => 1,
) ;
my $session_handler = $ENV{EMBPERL_SESSION_HANDLER_CLASS} || 'Apache::SessionX' ;
-my $ver ;
+my $ver = '' ;
if (defined ($ENV{EMBPERL_SESSION_ARGS}))
{
@@ -445,7 +446,7 @@
if ($@)
{
warn "[$$]SES: Embperl Session management DISABLED beause of following error: $@\n" .
- "Set \$ENV{EMBPERL_SESSION_HANDLER_CLASS} to 'no' before loading Embperl to avoid this message" ;
+ "Set \$ENV{EMBPERL_SESSION_HANDLER_CLASS} to 'no' before loading Embperl to avoid this message" if ($ENV{GATEWAY_INTERFACE}) ;
$SessionMgnt = 0 ;
}
else
1.56.4.12 +13 -0 embperl/Embperl.pod
Index: Embperl.pod
===================================================================
RCS file: /home/cvs/embperl/Embperl.pod,v
retrieving revision 1.56.4.11
retrieving revision 1.56.4.12
diff -u -r1.56.4.11 -r1.56.4.12
--- Embperl.pod 2001/11/02 09:48:22 1.56.4.11
+++ Embperl.pod 2001/11/02 11:34:25 1.56.4.12
@@ -79,6 +79,8 @@
B<embpcgi.bat>
Use embpcgi.pl on Unix systems and embpcgi.bat on Win32 systems.
+You can also run Embperl with B<FastCGI>, in this case use embpfastcgi.pl
+as cgi script. You must have FCGI.pm installed.
If C<embpcgi.pl/embpcgi.bat> is invoked without any parameters and the
environment variable B<PATH_TRANSLATED> is set, it runs itself as a CGI
@@ -606,6 +608,12 @@
where C<$errors> is a array reference. (1.3b5+)
+=item optShowBacktrace = 0x8000000
+
+When set every error message not only show the sourcefiles, but all files
+from which this file was called by Execute.
+
+
=item optSafeNamespace = 4
Tells Embperl to execute the embedded code in a safe namespace so the
@@ -1798,6 +1806,11 @@
to zero. (only 1.3b6 and above)
=over 4
+
+=item B<$escmode = 8 (or 15)> (2.0b4 and above)
+
+The result of a Perl expression is always XML-escaped (e.g., `>'
+becomes `>' and ' become ').
=item B<$escmode = 3 (or 7)>
1.29.4.11 +12 -2 embperl/EmbperlD.pod
Index: EmbperlD.pod
===================================================================
RCS file: /home/cvs/embperl/EmbperlD.pod,v
retrieving revision 1.29.4.10
retrieving revision 1.29.4.11
diff -u -r1.29.4.10 -r1.29.4.11
--- EmbperlD.pod 2001/11/02 09:48:22 1.29.4.10
+++ EmbperlD.pod 2001/11/02 11:34:25 1.29.4.11
@@ -110,8 +110,9 @@
Um I<Embperl> als B<CGI Skript> zu nutzen, m�ssen Sie die Datei
C<embpcgi.pl> (bzw. C<embpcgi.bat> unter Windows) in Ihr CGI
-Verzeichnis kopieren (oft C</cgi-bin>). Zum Aufrufen verwenden Sie
-die URL
+Verzeichnis kopieren (oft C</cgi-bin>). Zur Benutzung mit FastCGI
+zusammen, verwenden Sie die Datei embpfastcgi.pl.
+Zum Aufrufen verwenden Sie die URL
http://www.domain.de/cgi-bin/embpcgi.pl/uri/ihres/embperl/dokuments
@@ -553,7 +554,11 @@
zu ermitteln, wobei C<$errors> eine Arrayreferenz ist. (1.3b5+)
+=item optShowBacktrace = 0x8000000
+Wenn gesetzt wird bei der Ausgabe von Fehlermeldungen zus�tzlich eine Liste
+aller Dateien ausgegeben diese die aktulle Sourcedatei aufgerufen haben.
+
=item optSafeNamespace = 4
Veranlasst I<Embperl> den Code in einem sicheren Namensraum auszuf�hren.
@@ -1712,6 +1717,11 @@
B<Hinweis 2:>Um bin�re Daten auszugeben mu� escmode auf Null gesetzt werden (ab 1.3b6)
=over 4
+
+=item B<$escmode = 8 (oder 15)> (2.0b4 und h�her)
+
+Das Resultat von Perlausdr�cken wird immer XML Kodiert
+(z.B. '>' wird zu '>' und ' zu ').
=item $escmode = 3 (oder 7)
1.50.4.32 +1 -0 embperl/MANIFEST
Index: MANIFEST
===================================================================
RCS file: /home/cvs/embperl/MANIFEST,v
retrieving revision 1.50.4.31
retrieving revision 1.50.4.32
diff -u -r1.50.4.31 -r1.50.4.32
--- MANIFEST 2001/10/31 13:26:42 1.50.4.31
+++ MANIFEST 2001/11/02 11:34:25 1.50.4.32
@@ -153,6 +153,7 @@
epocgi.pl.templ
epocgi.bat.templ
epocgi.test.pl.templ
+embpfastcgi.pl.templ
ep.h
epdat.h
epio.c
1.31.4.31 +2 -1 embperl/Makefile.PL
Index: Makefile.PL
===================================================================
RCS file: /home/cvs/embperl/Makefile.PL,v
retrieving revision 1.31.4.30
retrieving revision 1.31.4.31
diff -u -r1.31.4.30 -r1.31.4.31
--- Makefile.PL 2001/10/30 09:54:34 1.31.4.30
+++ Makefile.PL 2001/11/02 11:34:25 1.31.4.31
@@ -3,7 +3,7 @@
#
# (C) 1997-2001 G.Richter (richter@dev.ecos.de) / ECOS
#
-# $Id: Makefile.PL,v 1.31.4.30 2001/10/30 09:54:34 richter Exp $
+# $Id: Makefile.PL,v 1.31.4.31 2001/11/02 11:34:25 richter Exp $
#
@@ -1146,6 +1146,7 @@
@bins = ('embpexec.pl','embpexec.bat',
'embpcgi.pl', 'embpcgi.test.pl', 'embpcgi.bat',
+ 'embpfastcgi.pl',
'epocgi.pl', 'epocgi.test.pl', 'epocgi.bat') ;
1.1.4.14 +3 -2 embperl/Attic/README.v2
Index: README.v2
===================================================================
RCS file: /home/cvs/embperl/Attic/README.v2,v
retrieving revision 1.1.4.13
retrieving revision 1.1.4.14
diff -u -r1.1.4.13 -r1.1.4.14
--- README.v2 2001/09/20 20:02:02 1.1.4.13
+++ README.v2 2001/11/02 11:34:25 1.1.4.14
@@ -9,7 +9,7 @@
WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-$Id: README.v2,v 1.1.4.13 2001/09/20 20:02:02 richter Exp $
+$Id: README.v2,v 1.1.4.14 2001/11/02 11:34:25 richter Exp $
### !! IMPORTANT !! IMPORTANT !! IMPORTANT !! IMPORTANT !! IMPORTANT !!
@@ -315,7 +315,8 @@
file. You can also use the EMBPERL_XSLTSTYLESHEET configuration directive
to set it from your configuration file.
-
+By setting EMBPERL_ESCMODE (or $escmode) to 15 you get the correct escaping
+for XML.
-------------------
1.97.4.7 +0 -25 embperl/TODO
Index: TODO
===================================================================
RCS file: /home/cvs/embperl/TODO,v
retrieving revision 1.97.4.6
retrieving revision 1.97.4.7
diff -u -r1.97.4.6 -r1.97.4.7
--- TODO 2001/09/01 21:50:00 1.97.4.6
+++ TODO 2001/11/02 11:34:25 1.97.4.7
@@ -15,20 +15,14 @@
- optKeepSpaces in <pre>
-- BEGIN/END Blocks [Jason Bodnar 6.10.99]
-
- return value from sub
- remove \n in perl code? when and how?
-- url/html escaping [Eugene B. Byrganov 4.11.99]
-
- accpect unclosed html structs [Eugene B. Byrganov 9.11.99]
- use APXS for LIBEXECDIR etc. [Matthias Ulrichs 22.11.99]
-- url escape <input src>
-
- handle input image (add field.x/y to %idat) [Pierre Etchemaite 13.12.99]
- make multifiled delimiter \t configurabel [Jean-Philippe FAUVELLE 13.12.99]
@@ -54,18 +48,7 @@
Bugs
----
-- Embperl version number [Eric CHOLET]
-
-- errorright output
-
-- [* *] inside if [Vasco Chita 1.5.99] -> done in 2.0
-
-- StackFree in offline mode
-- SIG DIE missing message arg [Alex Schmelkin 24.8.99]
-
-- contrib from Ken Hinckley 2.12.99
-
- var cleanup of in imported subs [Lai Yiu Fai 14.3.00]
- using outputfile inside a outputfile crashs
@@ -117,18 +100,10 @@
- Execute inside html tags [Jonny Cavell 26.4.01]
-- print OUT inside loop [Michael Stevens 26.4.01]
-
-- add filename to error messages [ Michael Stevens 15.08.01]
Docs 2.0
--------
-
-optimazation
-------------
-
-- don't create new node for unmodified checkbox/option -> embperlCmd_SetRemove
1.19.4.10 +5 -3 embperl/embperl.h
Index: embperl.h
===================================================================
RCS file: /home/cvs/embperl/embperl.h,v
retrieving revision 1.19.4.9
retrieving revision 1.19.4.10
diff -u -r1.19.4.9 -r1.19.4.10
--- embperl.h 2001/10/31 13:47:41 1.19.4.9
+++ embperl.h 2001/11/02 11:34:25 1.19.4.10
@@ -10,7 +10,7 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
-# $Id: embperl.h,v 1.19.4.9 2001/10/31 13:47:41 richter Exp $
+# $Id: embperl.h,v 1.19.4.10 2001/11/02 11:34:25 richter Exp $
#
###################################################################################*/
@@ -154,7 +154,8 @@
optDisableSelectScan = 0x800000,
optAddUserSessionToLinks = 0x1000000,
optAddStateSessionToLinks = 0x2000000,
- optNoSessionCookies = 0x4000000
+ optNoSessionCookies = 0x4000000,
+ optShowBacktrace = 0x8000000
} ;
/*
@@ -198,7 +199,8 @@
escHtml = 1,
escUrl = 2,
escStd = 3,
- escEscape = 4
+ escEscape = 4,
+ escXML = 8
} ;
1.27.4.19 +1 -0 embperl/ep.h
Index: ep.h
===================================================================
RCS file: /home/cvs/embperl/ep.h,v
retrieving revision 1.27.4.18
retrieving revision 1.27.4.19
diff -u -r1.27.4.18 -r1.27.4.19
--- ep.h 2001/09/20 08:23:55 1.27.4.18
+++ ep.h 2001/11/02 11:34:26 1.27.4.19
@@ -373,6 +373,7 @@
extern struct tCharTrans Char2Html [] ;
extern struct tCharTrans Char2Url [] ;
+extern struct tCharTrans Char2XML [] ;
extern struct tCharTrans Html2Char [] ;
extern int sizeHtml2Char ;
1.12.4.6 +265 -1 embperl/epchar.c
Index: epchar.c
===================================================================
RCS file: /home/cvs/embperl/epchar.c,v
retrieving revision 1.12.4.5
retrieving revision 1.12.4.6
diff -u -r1.12.4.5 -r1.12.4.6
--- epchar.c 2001/09/11 17:45:08 1.12.4.5
+++ epchar.c 2001/11/02 11:34:26 1.12.4.6
@@ -10,7 +10,7 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
-# $Id: epchar.c,v 1.12.4.5 2001/09/11 17:45:08 richter Exp $
+# $Id: epchar.c,v 1.12.4.6 2001/11/02 11:34:26 richter Exp $
#
###################################################################################*/
@@ -552,6 +552,270 @@
{ '\255', "" }, /* Small y, di�resis / umlaut */
} ;
+struct tCharTrans Char2XML [] =
+
+ {
+ { ' ' , "" }, /* � Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /* 	 Horizontal tab */
+ { ' ' , "" }, /* Line feed */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /* Carriage Return */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*   Space */
+ { '!' , "" }, /* ! Exclamation mark */
+ { '"' , """ }, /* Quotation mark */
+ { '#' , "" }, /* # Number sign */
+ { '$' , "" }, /* $ Dollar sign */
+ { '%' , "" }, /* % Percent sign */
+ { '&' , "&" }, /* Ampersand */
+ { '\'' , "'" }, /* ' Apostrophe */
+ { '(' , "" }, /* ( Left parenthesis */
+ { ')' , "" }, /* ) Right parenthesis */
+ { '*' , "" }, /* * Asterisk */
+ { '+' , "" }, /* + Plus sign */
+ { ',' , "" }, /* , Comma */
+ { '-' , "" }, /* - Hyphen */
+ { '.' , "" }, /* . Period (fullstop) */
+ { '/' , "" }, /* / Solidus (slash) */
+ { '0' , "" }, /* 0 Digit 0 */
+ { '1' , "" }, /* 1 Digit 1 */
+ { '2' , "" }, /* 2 Digit 2 */
+ { '3' , "" }, /* 3 Digit 3 */
+ { '4' , "" }, /* 4 Digit 4 */
+ { '5' , "" }, /* 5 Digit 5 */
+ { '6' , "" }, /* 6 Digit 6 */
+ { '7' , "" }, /* 7 Digit 7 */
+ { '8' , "" }, /* 8 Digit 8 */
+ { '9' , "" }, /* 9 Digit 9 */
+ { ':' , "" }, /* : Colon */
+ { ';' , "" }, /* ; Semicolon */
+ { '<' , "<" }, /* Less than */
+ { '=' , "" }, /* = Equals sign */
+ { '>' , ">" }, /* Greater than */
+ { '?' , "" }, /* ? Question mark */
+ { '@' , "" }, /* @ Commercial at */
+ { 'A' , "" }, /* A Capital A */
+ { 'B' , "" }, /* B Capital B */
+ { 'C' , "" }, /* C Capital C */
+ { 'D' , "" }, /* D Capital D */
+ { 'E' , "" }, /* E Capital E */
+ { 'F' , "" }, /* F Capital F */
+ { 'G' , "" }, /* G Capital G */
+ { 'H' , "" }, /* H Capital H */
+ { 'I' , "" }, /* I Capital I */
+ { 'J' , "" }, /* J Capital J */
+ { 'K' , "" }, /* K Capital K */
+ { 'L' , "" }, /* L Capital L */
+ { 'M' , "" }, /* M Capital M */
+ { 'N' , "" }, /* N Capital N */
+ { 'O' , "" }, /* O Capital O */
+ { 'P' , "" }, /* P Capital P */
+ { 'Q' , "" }, /* Q Capital Q */
+ { 'R' , "" }, /* R Capital R */
+ { 'S' , "" }, /* S Capital S */
+ { 'T' , "" }, /* T Capital T */
+ { 'U' , "" }, /* U Capital U */
+ { 'V' , "" }, /* V Capital V */
+ { 'W' , "" }, /* W Capital W */
+ { 'X' , "" }, /* X Capital X */
+ { 'Y' , "" }, /* Y Capital Y */
+ { 'Z' , "" }, /* Z Capital Z */
+ { '[' , "" }, /* [ Left square bracket */
+ { '\\' , "" }, /* \ Reverse solidus (backslash) */
+ { ']' , "" }, /* ] Right square bracket */
+ { '^' , "" }, /* ^ Caret */
+ { '_' , "" }, /* _ Horizontal bar (underscore) */
+ { '`' , "" }, /* ` Acute accent */
+ { 'a' , "" }, /* a Small a */
+ { 'b' , "" }, /* b Small b */
+ { 'c' , "" }, /* c Small c */
+ { 'd' , "" }, /* d Small d */
+ { 'e' , "" }, /* e Small e */
+ { 'f' , "" }, /* f Small f */
+ { 'g' , "" }, /* g Small g */
+ { 'h' , "" }, /* h Small h */
+ { 'i' , "" }, /* i Small i */
+ { 'j' , "" }, /* j Small j */
+ { 'k' , "" }, /* k Small k */
+ { 'l' , "" }, /* l Small l */
+ { 'm' , "" }, /* m Small m */
+ { 'n' , "" }, /* n Small n */
+ { 'o' , "" }, /* o Small o */
+ { 'p' , "" }, /* p Small p */
+ { 'q' , "" }, /* q Small q */
+ { 'r' , "" }, /* r Small r */
+ { 's' , "" }, /* s Small s */
+ { 't' , "" }, /* t Small t */
+ { 'u' , "" }, /* u Small u */
+ { 'v' , "" }, /* v Small v */
+ { 'w' , "" }, /* w Small w */
+ { 'x' , "" }, /* x Small x */
+ { 'y' , "" }, /* y Small y */
+ { 'z' , "" }, /* z Small z */
+ { '{' , "" }, /* { Left curly brace */
+ { '|' , "" }, /* | Vertical bar */
+ { '}' , "" }, /* } Right curly brace */
+ { '~' , "" }, /* ~ Tilde */
+ { '' , "" }, /*  Unused */
+ { '�' , "" }, /* € Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /* ‚ Unused */
+ { ' ' , "" }, /* ƒ Unused */
+ { ' ' , "" }, /* „ Unused */
+ { ' ' , "" }, /* … Unused */
+ { ' ' , "" }, /* † Unused */
+ { ' ' , "" }, /* ‡ Unused */
+ { ' ' , "" }, /* ˆ Unused */
+ { ' ' , "" }, /* ‰ Unused */
+ { ' ' , "" }, /* Š Horizontal tab */
+ { ' ' , "" }, /* ‹ Line feed */
+ { ' ' , "" }, /* Œ Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /* Ž Carriage Return */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /* ‘ Unused */
+ { ' ' , "" }, /* ’ Unused */
+ { ' ' , "" }, /* “ Unused */
+ { ' ' , "" }, /* ” Unused */
+ { ' ' , "" }, /* • Unused */
+ { ' ' , "" }, /* – Unused */
+ { ' ' , "" }, /* — Unused */
+ { ' ' , "" }, /* ˜ Unused */
+ { ' ' , "" }, /* ™ Unused */
+ { ' ' , "" }, /* š Unused */
+ { ' ' , "" }, /* › Unused */
+ { ' ' , "" }, /* œ Unused */
+ { ' ' , "" }, /*  Unused */
+ { ' ' , "" }, /* ž Unused */
+ { ' ' , "" }, /* Ÿ Unused */
+ { ' ' , "" }, /* Non-breaking Space */
+ { '�' , "" }, /* Inverted exclamation */
+ { '�' , "" }, /* Cent sign */
+ { '�' , "" }, /* Pound sterling */
+ { '�' , "" }, /* General currency sign */
+ { '�' , "" }, /* Yen sign */
+/* { '�' , "" }, / * Broken vertical bar */
+ { '�' , "" }, /* Broken vertical bar */
+ { '�' , "" }, /* Section sign */
+/* { '�' , "" }, / * Di�resis / Umlaut */
+ { '�' , "" }, /* Di�resis / Umlaut */
+ { '�' , "" }, /* Copyright */
+ { '�' , "" }, /* Feminine ordinal */
+ { '�' , "" }, /* Left angle quote, guillemot left */
+ { '�' , "" }, /* Not sign */
+ { '�' , "" }, /* Soft hyphen */
+ { '�' , "" }, /* Registered trademark */
+/* { '�' , "" }, / * Macron accent */
+ { '�' , "" }, /* Macron accent */
+ { '�' , "" }, /* Degree sign */
+ { '�' , "" }, /* Plus or minus */
+ { '�' , "" }, /* Superscript two */
+ { '�' , "" }, /* Superscript three */
+ { '�' , "" }, /* Acute accent */
+ { '�' , "" }, /* Micro sign */
+ { '�' , "" }, /* Paragraph sign */
+ { '�' , "" }, /* Middle dot */
+ { '�' , "" }, /* Cedilla */
+ { '�' , "" }, /* Superscript one */
+ { '�' , "" }, /* Masculine ordinal */
+ { '�' , "" }, /* Right angle quote, guillemot right */
+ { '�' , "" }, /* Fraction one-fourth */
+ { '�' , "" }, /* Fraction one-half */
+ { '�' , "" }, /* Fraction three-fourths */
+ { '�' , "" }, /* Inverted question mark */
+ { '�' , "" }, /* Capital A, grave accent */
+ { '�' , "" }, /* Capital A, acute accent */
+ { '�' , "" }, /* Capital A, circumflex */
+ { '�' , "" }, /* Capital A, tilde */
+ { '�' , "" }, /* Capital A, di�resis / umlaut */
+ { '�' , "" }, /* Capital A, ring */
+ { '�' , "" }, /* Capital AE ligature */
+ { '�' , "" }, /* Capital C, cedilla */
+ { '�' , "" }, /* Capital E, grave accent */
+ { '�' , "" }, /* Capital E, acute accent */
+ { '�' , "" }, /* Capital E, circumflex */
+ { '�' , "" }, /* Capital E, di�resis / umlaut */
+ { '�' , "" }, /* Capital I, grave accent */
+ { '�' , "" }, /* Capital I, acute accent */
+ { '�' , "" }, /* Capital I, circumflex */
+ { '�' , "" }, /* Capital I, di�resis / umlaut */
+ { '�' , "" }, /* Capital Eth, Icelandic */
+ { '�' , "" }, /* Capital N, tilde */
+ { '�' , "" }, /* Capital O, grave accent */
+ { '�' , "" }, /* Capital O, acute accent */
+ { '�' , "" }, /* Capital O, circumflex */
+ { '�' , "" }, /* Capital O, tilde */
+ { '�' , "" }, /* Capital O, di�resis / umlaut */
+ { '�' , "" }, /* Multiply sign */
+ { '�' , "" }, /* Capital O, slash */
+ { '�' , "" }, /* Capital U, grave accent */
+ { '�' , "" }, /* Capital U, acute accent */
+ { '�' , "" }, /* Capital U, circumflex */
+ { '�' , "" }, /* Capital U, di�resis / umlaut */
+ { '�' , "" }, /* Capital Y, acute accent */
+ { '�' , "" }, /* Capital Thorn, Icelandic */
+ { '�' , "" }, /* Small sharp s, German sz */
+ { '�' , "" }, /* Small a, grave accent */
+ { '�' , "" }, /* Small a, acute accent */
+ { '�' , "" }, /* Small a, circumflex */
+ { '�' , "" }, /* Small a, tilde */
+ { '�' , "" }, /* Small a, di�resis / umlaut */
+ { '�' , "" }, /* Small a, ring */
+ { '�' , "" }, /* Small ae ligature */
+ { '�' , "" }, /* Small c, cedilla */
+ { '�' , "" }, /* Small e, grave accent */
+ { '�' , "" }, /* Small e, acute accent */
+ { '�' , "" }, /* Small e, circumflex */
+ { '�' , "" }, /* Small e, di�resis / umlaut */
+ { '�' , "" }, /* Small i, grave accent */
+ { '�' , "" }, /* Small i, acute accent */
+ { '�' , "" }, /* Small i, circumflex */
+ { '�' , "" }, /* Small i, di�resis / umlaut */
+ { '�' , "" }, /* Small eth, Icelandic */
+ { '�' , "" }, /* Small n, tilde */
+ { '�' , "" }, /* Small o, grave accent */
+ { '�' , "" }, /* Small o, acute accent */
+ { '�' , "" }, /* Small o, circumflex */
+ { '�' , "" }, /* Small o, tilde */
+ { '�' , "" }, /* Small o, di�resis / umlaut */
+ { '�' , "" }, /* Division sign */
+ { '�' , "" }, /* Small o, slash */
+ { '�' , "" }, /* Small u, grave accent */
+ { '�' , "" }, /* Small u, acute accent */
+ { '�' , "" }, /* Small u, circumflex */
+ { '�' , "" }, /* Small u, di�resis / umlaut */
+ { '�' , "" }, /* Small y, acute accent */
+ { '�' , "" }, /* Small thorn, Icelandic */
+ { '\255', "" }, /* Small y, di�resis / umlaut */
+ } ;
+
struct tCharTrans Html2Char [] =
1.4.2.67 +2 -5 embperl/Attic/epcomp.c
Index: epcomp.c
===================================================================
RCS file: /home/cvs/embperl/Attic/epcomp.c,v
retrieving revision 1.4.2.66
retrieving revision 1.4.2.67
diff -u -r1.4.2.66 -r1.4.2.67
--- epcomp.c 2001/10/31 14:53:31 1.4.2.66
+++ epcomp.c 2001/11/02 11:34:26 1.4.2.67
@@ -9,7 +9,7 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
-# $Id: epcomp.c,v 1.4.2.66 2001/10/31 14:53:31 richter Exp $
+# $Id: epcomp.c,v 1.4.2.67 2001/11/02 11:34:26 richter Exp $
#
###################################################################################*/
@@ -330,7 +330,7 @@
or = strchr (eq + 1, '|') ;
e = or?or:q ;
if (f = (char *)strstrn (sText, eq, e - eq))
- if (!isalnum (f[e - eq]))
+ if (!isalnum (f[e - eq]) && f[e - eq] != '_')
break ;
if (or == NULL)
return 0 ;
@@ -1061,9 +1061,6 @@
if (pCurrReq -> bDebug & dbgCompile)
lprintf (pCurrReq, "[%d]EPCOMP: #%d L%d Set Checkpoint pending\n", pCurrReq -> nPid, pNode -> xNdx, pNode -> nLinenumber) ;
}
-
- if (pCmd -> bCallReturn)
- pNode -> bFlags |= nflgSubCheckpoint ;
if (pCmd -> bRemoveNode & 1)
pNode -> bFlags = 0 ;
1.4.2.65 +6 -6 embperl/Attic/epdom.c
Index: epdom.c
===================================================================
RCS file: /home/cvs/embperl/Attic/epdom.c,v
retrieving revision 1.4.2.64
retrieving revision 1.4.2.65
diff -u -r1.4.2.64 -r1.4.2.65
--- epdom.c 2001/10/31 13:26:42 1.4.2.64
+++ epdom.c 2001/11/02 11:34:26 1.4.2.65
@@ -9,7 +9,7 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
-# $Id: epdom.c,v 1.4.2.64 2001/10/31 13:26:42 richter Exp $
+# $Id: epdom.c,v 1.4.2.65 2001/11/02 11:34:26 richter Exp $
#
###################################################################################*/
@@ -2590,8 +2590,8 @@
if (nEscMode != -1)
{
pNew -> nType = (nEscMode & 3)?ntypText:ntypCDATA ;
- pNew -> bFlags &= ~(nflgEscUrl + nflgEscChar) ;
- pNew -> bFlags |= (nEscMode ^ nflgEscChar) & (nflgEscUrl + nflgEscChar) ;
+ pNew -> bFlags &= ~(nflgEscXML + nflgEscUrl + nflgEscChar) ;
+ pNew -> bFlags |= (nEscMode ^ nflgEscChar) & (nflgEscXML + nflgEscUrl + nflgEscChar) ;
}
else
pNew -> nType = ntypCDATA ;
@@ -2653,8 +2653,8 @@
if (nEscMode != -1)
{
pOldChild -> nType = (nEscMode & 3)?ntypText:ntypCDATA ;
- pOldChild -> bFlags &= ~(nflgEscUrl + nflgEscChar) ;
- pOldChild -> bFlags |= (nEscMode ^ nflgEscChar) & (nflgEscUrl + nflgEscChar) ;
+ pOldChild -> bFlags &= ~(nflgEscXML + nflgEscUrl + nflgEscChar) ;
+ pOldChild -> bFlags |= (nEscMode ^ nflgEscChar) & (nflgEscXML + nflgEscUrl + nflgEscChar) ;
}
else
pOldChild -> nType = ntypCDATA ;
@@ -3082,7 +3082,7 @@
char * s ;
int l ;
Ndx2StringLen (pNode -> nText,s,l) ;
- OutputEscape (r, s, l, (pNode -> bFlags & nflgEscUrl)?Char2Url:Char2Html, (pNode -> bFlags & nflgEscChar)?'\\':0) ;
+ OutputEscape (r, s, l, (pNode -> bFlags & nflgEscXML)?Char2XML:(pNode -> bFlags & nflgEscUrl)?Char2Url:Char2Html, (pNode -> bFlags & nflgEscChar)?'\\':0) ;
}
else
{
1.4.2.40 +9 -9 embperl/Attic/epdom.h
Index: epdom.h
===================================================================
RCS file: /home/cvs/embperl/Attic/epdom.h,v
retrieving revision 1.4.2.39
retrieving revision 1.4.2.40
diff -u -r1.4.2.39 -r1.4.2.40
--- epdom.h 2001/10/30 14:40:15 1.4.2.39
+++ epdom.h 2001/11/02 11:34:26 1.4.2.40
@@ -9,7 +9,7 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
-# $Id: epdom.h,v 1.4.2.39 2001/10/30 14:40:15 richter Exp $
+# $Id: epdom.h,v 1.4.2.40 2001/11/02 11:34:26 richter Exp $
#
###################################################################################*/
@@ -131,14 +131,14 @@
enum tNodeFlags
{
- nflgDeleted = 0,
- nflgOK = 1,
- nflgEscUrl = 2,
- nflgEscChar = 4,
- nflgIgnore = 8, /**< Ignore this node */
- nflgNewLevelNext = 16, /**< Next sibling has new RepeatLevel */
- nflgNewLevelPrev = 32, /**< Previous sibling has new RepeatLevel */
- nflgSubCheckpoint= 128
+ nflgDeleted = 0,
+ nflgOK = 1,
+ nflgEscUrl = 2,
+ nflgEscChar = 4,
+ nflgEscXML = 8,
+ nflgIgnore = 16, /**< Ignore this node */
+ nflgNewLevelNext = 32, /**< Next sibling has new RepeatLevel */
+ nflgNewLevelPrev = 64, /**< Previous sibling has new RepeatLevel */
} ;
enum tAttrFlags
1.75.4.52 +15 -2 embperl/epmain.c
Index: epmain.c
===================================================================
RCS file: /home/cvs/embperl/epmain.c,v
retrieving revision 1.75.4.51
retrieving revision 1.75.4.52
diff -u -r1.75.4.51 -r1.75.4.52
--- epmain.c 2001/10/31 15:14:49 1.75.4.51
+++ epmain.c 2001/11/02 11:34:26 1.75.4.52
@@ -10,7 +10,7 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
-# $Id: epmain.c,v 1.75.4.51 2001/10/31 15:14:49 richter Exp $
+# $Id: epmain.c,v 1.75.4.52 2001/11/02 11:34:26 richter Exp $
#
###################################################################################*/
@@ -179,6 +179,17 @@
pSV = newSVpvf (msg, r -> nPid , rc, pSVLine?SvPV(pSVLine, l):"", r -> errdat1, r -> errdat2) ;
+ if (r -> bOptions & optShowBacktrace)
+ {
+ req * l = r ;
+ while (l && l != &InitialReq)
+ {
+ sv_catpvf(pSV, "\n * %s", (!l -> Buf.pFile || !l -> Buf.pFile -> sSourcefile)?"<no filename available>":l -> Buf.pFile -> sSourcefile) ;
+ l = l -> pLastReq ;
+ }
+ }
+
+
if (pSVLine)
SvREFCNT_dec(pSVLine) ;
@@ -340,7 +351,9 @@
SV * pSV)
{
- if (r -> nEscMode & escHtml && !r -> bEscInUrl)
+ if (r -> nEscMode & escXML && !r -> bEscInUrl)
+ r -> pNextEscape = Char2XML ;
+ else if (r -> nEscMode & escHtml && !r -> bEscInUrl)
r -> pNextEscape = Char2Html ;
else if (r -> nEscMode & escUrl)
r -> pNextEscape = Char2Url ;
1.15.4.17 +3 -1 embperl/eputil.c
Index: eputil.c
===================================================================
RCS file: /home/cvs/embperl/eputil.c,v
retrieving revision 1.15.4.16
retrieving revision 1.15.4.17
diff -u -r1.15.4.16 -r1.15.4.17
--- eputil.c 2001/10/17 10:52:54 1.15.4.16
+++ eputil.c 2001/11/02 11:34:26 1.15.4.17
@@ -10,7 +10,7 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
-# $Id: eputil.c,v 1.15.4.16 2001/10/17 10:52:54 richter Exp $
+# $Id: eputil.c,v 1.15.4.17 2001/11/02 11:34:26 richter Exp $
#
###################################################################################*/
@@ -158,6 +158,8 @@
if (nEscMode >= 0)
{
+ if (nEscMode & escXML && !r -> bEscInUrl)
+ pEscTab = Char2XML ;
if (nEscMode & escHtml && !r -> bEscInUrl)
pEscTab = Char2Html ;
else if (nEscMode & escUrl)
No revision
No revision
1.1.2.1 +0 -0 embperl/embpfastcgi.pl.templ
Index: embpfastcgi.pl.templ
===================================================================
RCS file: /home/cvs/embperl/embpfastcgi.pl.templ,v
retrieving revision 1.1
retrieving revision 1.1.2.1
diff -u -r1.1 -r1.1.2.1
--- embpfastcgi.pl.templ 2001/11/02 11:06:44 1.1
+++ embpfastcgi.pl.templ 2001/11/02 11:34:26 1.1.2.1
@@ -11,7 +11,7 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
-# $Id: embpfastcgi.pl.templ,v 1.1 2001/11/02 11:06:44 richter Exp $
+# $Id: embpfastcgi.pl.templ,v 1.1.2.1 2001/11/02 11:34:26 richter Exp $
#
###################################################################################
No revision
No revision
1.1.2.4 +1 -1 embperl/test/cmp/epobase.htm
Index: epobase.htm
===================================================================
RCS file: /home/cvs/embperl/test/cmp/epobase.htm,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -u -r1.1.2.3 -r1.1.2.4
--- epobase.htm 2001/10/31 15:14:49 1.1.2.3
+++ epobase.htm 2001/11/02 11:34:27 1.1.2.4
@@ -3,7 +3,7 @@
The server encountered an internal error or misconfiguration and was unable to complete your request.<P>
^Please contact the server administrator\,.*?and inform them of the time the error occurred\, and anything you might have done that may have caused the error
^\[.*?\]ERR\: 32\: Warning in Perl code\: Use of uninitialized value
-^\[.*?\]ERR\: 30\: epobase.htm\(1\): Not found <no filename><p>
+^\[.*?\]ERR\: 30\: epobase.htm\((1|6)\): Not found <no filename><p>
^ HTML\:\:Embperl.*?<P>
</BODY></HTML>
1.19.4.5 +8 -0 embperl/test/cmp/escape.htm
Index: escape.htm
===================================================================
RCS file: /home/cvs/embperl/test/cmp/escape.htm,v
retrieving revision 1.19.4.4
retrieving revision 1.19.4.5
diff -u -r1.19.4.4 -r1.19.4.5
--- escape.htm 2001/07/09 12:53:31 1.19.4.4
+++ escape.htm 2001/11/02 11:34:28 1.19.4.5
@@ -83,6 +83,14 @@
Now a Url: <A HREF="http://localhost/tests?id=abcdefghijklmnopqrstuvwxyz&text=This%20is%20a%20text%20%3F%20%26%20%2B%20-%20%2521">Here it goes</A>
What is the EscMode? 3
+15
+Now lets look what we are getting from this:<BR>
+(this is the value in $a) (this is the value in $a) ������???<&+ '"<><BR>
+
+What is the EscMode? 15
+Now a Url: <a href="http://localhost/tests?id=abcdefghijklmnopqrstuvwxyz&text=This%20is%20a%20text%20%3F%20%26%20%2B%20-%20%2521 %27%22%3C%3E">Here it goes</A>
+
+What is the EscMode? 15
file.html?name=abcd&data=xyz
Now we localy set $escmode:<BR>
(this is the value in $a) ������???<&+ \<a><BR>
No revision
No revision
1.13.4.6 +11 -0 embperl/test/html/escape.htm
Index: escape.htm
===================================================================
RCS file: /home/cvs/embperl/test/html/escape.htm,v
retrieving revision 1.13.4.5
retrieving revision 1.13.4.6
diff -u -r1.13.4.5 -r1.13.4.6
--- escape.htm 2001/07/09 12:53:34 1.13.4.5
+++ escape.htm 2001/11/02 11:34:28 1.13.4.6
@@ -103,6 +103,17 @@
What is the EscMode? [+ $escmode +]
+[+ $escmode = 15 +]
+
+Now lets look what we are getting from this:<BR>
+[+ $a +] [+ $b +] [+ q{'"<>} +]<BR>
+
+What is the EscMode? [+ $escmode +]
+
+Now a Url: <A HREF="http://localhost/tests?id=[+%20$id +]&text=[+$text+] [+ q{'"<>} +]">Here it goes</A>
+
+What is the EscMode? [+ $escmode +]
+
[!
sub foo($)
{
---------------------------------------------------------------------
To unsubscribe, e-mail: embperl-cvs-unsubscribe@perl.apache.org
For additional commands, e-mail: embperl-cvs-help@perl.apache.org