richter 00/05/23 00:05:15
Modified: . Tag: Embperl2 Embperl.xs epcomp.c epdom.c epdom.h
epmain.c epparse.c test.pl
Embperl Tag: Embperl2 Syntax.pm
test/cmp Tag: Embperl2 error.htm
test/html Tag: Embperl2 loop.htm var.htm
Log:
Embperl 2 - loops
Revision Changes Path
No revision
No revision
1.26.2.6 +1 -1 embperl/Embperl.xs
Index: Embperl.xs
===================================================================
RCS file: /home/cvs/embperl/Embperl.xs,v
retrieving revision 1.26.2.5
retrieving revision 1.26.2.6
diff -u -r1.26.2.5 -r1.26.2.6
--- Embperl.xs 2000/05/22 14:37:09 1.26.2.5
+++ Embperl.xs 2000/05/23 07:04:55 1.26.2.6
@@ -614,7 +614,7 @@
CODE:
IV l ;
char * s = SvPV (sText, l) ;
- Node_replaceChildWithCDATA (DomTree_self(xDomTree), -1, xOldChild, s, l, 5) ;
+ Node_replaceChildWithCDATA (DomTree_self(xDomTree), -1, xOldChild, s, l, 5,
nflgModified | nflgReturn) ;
void
1.1.2.10 +44 -36 embperl/Attic/epcomp.c
Index: epcomp.c
===================================================================
RCS file: /home/cvs/embperl/Attic/epcomp.c,v
retrieving revision 1.1.2.9
retrieving revision 1.1.2.10
diff -u -r1.1.2.9 -r1.1.2.10
--- epcomp.c 2000/05/22 14:37:09 1.1.2.9
+++ epcomp.c 2000/05/23 07:04:55 1.1.2.10
@@ -203,25 +203,29 @@
if (pCmd -> bRemoveNode & 6)
{
tNodeData * pNextNode = Node_selfNextSibling (pDomTree, pNode) ;
- const char * sText = Node_selfNodeName (pNextNode) ;
- const char * p = sText ;
+ if (pNextNode)
+ {
+ const char * sText = Node_selfNodeName (pNextNode) ;
+ const char * p = sText ;
+
+ while (*p && isspace (*p++))
+ ;
+
+ if (*p)
+ p-- ;
+ if (p > sText && (pCmd -> bRemoveNode & 4))
+ p-- ;
+
+ if (p > sText)
+ { /* remove spaces */
+ if (*p)
+ Node_replaceChildWithCDATA(pDomTree, -1, pNextNode ->
xNdx, p, strlen (p), -1, 0) ;
+ else
+ Node_selfRemoveChild(pDomTree, -1, pNextNode) ;
+ }
- while (*p && isspace (*p++))
- ;
-
- if (*p)
- p-- ;
- if (p > sText && (pCmd -> bRemoveNode & 4))
- p-- ;
-
- if (p > sText)
- { /* remove spaces */
- if (*p)
- Node_replaceChildWithCDATA(pDomTree, -1, pNextNode -> xNdx, p,
strlen (p), -1) ;
- else
- Node_selfRemoveChild(pDomTree, -1, pNextNode) ;
- }
- }
+ }
+ }
*bCheckpointPending = 1 ;
if (pCmd -> bRemoveNode & 1)
Node_selfRemoveChild(pDomTree, -1, pNode) ;
@@ -348,29 +352,33 @@
}
- cl1 = clock () ;
-
- if (!(r -> xCurrDomTree = DomTree_clone (pDomTree, &(r -> pCurrDomTree))))
- return 1 ;
- if (pSV)
+ if (!r -> bError)
{
- SV * args[2] ;
- args[0] = r -> pReqSV ;
- args[1] = newSViv (r -> xCurrDomTree) ;
- CallStoredCV (r, pProg, (CV *)pSV, 2, args, 0, &pSV) ;
- SvREFCNT_dec (args[1]) ;
- }
+ cl1 = clock () ;
+
+ if (!(r -> xCurrDomTree = DomTree_clone (pDomTree, &(r -> pCurrDomTree))))
+ return 1 ;
- cl2 = clock () ;
-#ifdef CLOCKS_PER_SEC
- if (r -> bDebug)
+ if (pSV)
{
- lprintf (r, "[%d]PERF: Run Start Time: %d ms \n", r -> nPid, ((cl1 - r ->
startclock) * 1000 / CLOCKS_PER_SEC)) ;
- lprintf (r, "[%d]PERF: Run End Time: %d ms \n", r -> nPid, ((cl2 - r ->
startclock) * 1000 / CLOCKS_PER_SEC)) ;
- lprintf (r, "[%d]PERF: Run Time: %d ms \n", r -> nPid, ((cl2 - cl1)
* 1000 / CLOCKS_PER_SEC)) ;
+ SV * args[2] ;
+ args[0] = r -> pReqSV ;
+ args[1] = newSViv (r -> xCurrDomTree) ;
+ CallStoredCV (r, pProg, (CV *)pSV, 2, args, 0, &pSV) ;
+ SvREFCNT_dec (args[1]) ;
}
-#endif
+
+ cl2 = clock () ;
+ #ifdef CLOCKS_PER_SEC
+ if (r -> bDebug)
+ {
+ lprintf (r, "[%d]PERF: Run Start Time: %d ms \n", r -> nPid, ((cl1 - r
-> startclock) * 1000 / CLOCKS_PER_SEC)) ;
+ lprintf (r, "[%d]PERF: Run End Time: %d ms \n", r -> nPid, ((cl2 - r
-> startclock) * 1000 / CLOCKS_PER_SEC)) ;
+ lprintf (r, "[%d]PERF: Run Time: %d ms \n", r -> nPid, ((cl2 -
cl1) * 1000 / CLOCKS_PER_SEC)) ;
+ }
+ #endif
+ }
return ok ;
}
1.1.2.15 +60 -8 embperl/Attic/epdom.c
Index: epdom.c
===================================================================
RCS file: /home/cvs/embperl/Attic/epdom.c,v
retrieving revision 1.1.2.14
retrieving revision 1.1.2.15
diff -u -r1.1.2.14 -r1.1.2.15
--- epdom.c 2000/05/22 14:37:10 1.1.2.14
+++ epdom.c 2000/05/23 07:04:55 1.1.2.15
@@ -386,7 +386,16 @@
}
+void DomTree_selfCheckpoint (tDomTree * pDomTree, tNode xChild)
+
+ {
+ int n = ArrayAdd (&pDomTree -> pOrder, 1) ;
+ (pDomTree -> pOrder)[n] = xChild ;
+ }
+
+
+
int mydie (char * msg)
{
puts (msg) ;
@@ -715,16 +724,40 @@
-tNode Node_replaceChildWithCDATA (/*in*/ tDomTree * pDomTree,
+tNode Node_replaceChildWithCDATA (/*in*/ tDomTree * pDomTree,
/*in*/ tNode xNode,
/*in*/ tNode xOldChild,
/*in*/ const char * sText,
/*in*/ int nTextLen,
- /*in*/ int nEscMode)
+ /*in*/ int nEscMode,
+ /*in*/ int bFlags)
{
struct tNodeData * pOldChild = Node_self (pDomTree, xOldChild) ;
+
+ if (pOldChild -> bFlags & nflgModified)
+ {
+ tNodePad * pPad = NewPad (pDomTree, Node_parentNode (pDomTree, xOldChild)) ;
+
+ tNodeData * pNew = (struct tNodeData *)(pPad + 1) ;
+
+ pOldChild -> bFlags |= bFlags ;
+ memcpy (pNew, pOldChild, sizeof (*pNew)) ;
+
+ xOldChild = ArrayAdd (&pDomTree -> pLookup, 1) ;
+ pDomTree -> pLookup[xOldChild] = pNew ;
+ pNew -> xNdx = xOldChild ;
+ pNew -> nPadOffset = pPad -> nFill ;
+
+ pPad -> numChilds++ ;
+ pPad -> nFill += sizeof (tNodeData) + pNew -> numAttr * sizeof (tAttrData) ;
+ numNodes++ ;
+ pOldChild = pNew ;
+ }
+
+ DomTree_selfCheckpoint (pDomTree, xOldChild) ;
+
if (nEscMode != -1)
{
pOldChild -> nType = (nEscMode & 3)?ntypText:ntypCDATA ;
@@ -736,6 +769,7 @@
pOldChild -> nText = String2Ndx(sText, nTextLen) ;
pOldChild -> xChilds = 0 ;
+ pOldChild -> bFlags |= bFlags ;
return xOldChild ;
}
@@ -945,6 +979,7 @@
tNode xNextNode ;
int nOrderNdx = 0 ;
tNodeData * pNextNode ;
+ tNodeData * pSavedNode = NULL ;
struct tNodeData * pNode = Node_self (pDomTree, xNode) ;
@@ -952,21 +987,34 @@
while (pNode)
{
- if (pNode -> bFlags & nflgCheckpoint)
- {
+ if (pNode -> bFlags & nflgReturn)
+ { /* we should use another node to replace this one */
if ((xNextNode = pDomTree -> pOrder[nOrderNdx]) != pNode -> xNdx)
{
if (pCurrReq -> bDebug & dbgParse)
- lprintf (r, "[%d]toString: Skip Node=%d type=%d flags=%x
text=>%s<= (#%d)\n", r, pNode -> xNdx, pNode -> nType, pNode -> bFlags, Ndx2String
(pNode -> nText), pNode -> nText) ;
- xNode = xNextNode ;
- pNode = Node_self (pDomTree, xNode) ;
+ lprintf (r, "[%d]toString: Replace Node=%d with Node=%d\n", r ->
nPid, pNode -> xNdx, xNextNode) ;
+ pSavedNode = pNode ;
+ pNextNode = Node_self (pDomTree, xNextNode) ;
}
nOrderNdx++ ;
}
+ if (pNode -> bFlags & nflgCheckpoint)
+ { /* see how the control flow contiounes */
+ if ((xNextNode = pDomTree -> pOrder[nOrderNdx]) != pNode -> xNdx)
+ {
+ if (pCurrReq -> bDebug & dbgParse)
+ lprintf (r, "[%d]toString: Skip Node=%d to Node=%d\n", r -> nPid,
pNode -> xNdx, xNextNode) ;
+ pSavedNode = NULL ;
+ pNode = Node_self (pDomTree, xNextNode) ;
+ }
+ nOrderNdx++ ;
+ }
+ if (pSavedNode)
+ pNode = pNextNode ;
if (pCurrReq -> bDebug & dbgParse)
- lprintf (r, "[%d]toString: Node=%d type=%d flags=%x text=>%s<= (#%d)\n",
r, pNode -> xNdx, pNode -> nType, pNode -> bFlags, Ndx2String (pNode -> nText), pNode
-> nText) ;
+ lprintf (r, "[%d]toString: Node=%d type=%d flags=%x text=>%s<= (#%d)\n", r
-> nPid, pNode -> xNdx, pNode -> nType, pNode -> bFlags, Ndx2String (pNode -> nText),
pNode -> nText) ;
if (pNode -> bFlags & nflgIgnore)
;
@@ -1015,6 +1063,9 @@
pNextNode = Node_selfFirstChild (pDomTree, pNode) ;
if (pNextNode == NULL)
{
+ if (pSavedNode)
+ pNode = pSavedNode ;
+
pNextNode = Node_selfNextSibling (pDomTree, pNode) ;
while (pNextNode == NULL)
{
@@ -1032,6 +1083,7 @@
pNextNode = Node_selfNextSibling (pDomTree, pNextNode) ;
}
}
+ pSavedNode = NULL ;
pNode = pNextNode ;
}
1.1.2.11 +3 -3 embperl/Attic/epdom.h
Index: epdom.h
===================================================================
RCS file: /home/cvs/embperl/Attic/epdom.h,v
retrieving revision 1.1.2.10
retrieving revision 1.1.2.11
diff -u -r1.1.2.10 -r1.1.2.11
--- epdom.h 2000/05/22 14:37:10 1.1.2.10
+++ epdom.h 2000/05/23 07:04:55 1.1.2.11
@@ -124,6 +124,7 @@
nflgIgnore = 8,
nflgModified = 16,
nflgCheckpoint = 32,
+ nflgReturn = 64,
} ;
@@ -224,9 +225,8 @@
/*in*/ tNode xOldChild,
/*in*/ const char * sText,
/*in*/ int nTextLen,
- /*in*/ int nEscMode) ;
-
-
+ /*in*/ int nEscMode,
+ /*in*/ int bFlags) ;
1.65.2.6 +16 -7 embperl/epmain.c
Index: epmain.c
===================================================================
RCS file: /home/cvs/embperl/epmain.c,v
retrieving revision 1.65.2.5
retrieving revision 1.65.2.6
diff -u -r1.65.2.5 -r1.65.2.6
--- epmain.c 2000/05/22 14:37:12 1.65.2.5
+++ epmain.c 2000/05/23 07:04:55 1.65.2.6
@@ -2214,6 +2214,7 @@
SV * pOut = NULL ;
int bOutToMem = SvROK (pOutData) ;
SV * pCookie = NULL ;
+ int bError = 0 ;
if (rc != ok || r -> bError)
{ /* --- generate error page if necessary --- */
@@ -2225,7 +2226,6 @@
PUTBACK;
perl_call_method ("MailErrorsTo", G_DISCARD) ; /* call the function
*/
-
if (r -> bOptions & optReturnError)
{
r -> bError = 1 ;
@@ -2253,7 +2253,9 @@
if (r -> pApacheReq)
r -> pApacheReq -> status = 500 ;
#endif
+
}
+ bError = 1 ;
}
if (!r -> bAppendToMainReq)
r -> bError = 0 ; /* error already handled */
@@ -2436,15 +2438,18 @@
if (!(r -> bOptions & optEarlyHttpHeader) || r -> bAppendToMainReq)
#endif
{
- #ifdef EP2
- oCommit (r, NULL) ;
- Node_toString (r -> pCurrDomTree, r, r -> xDocument) ;
- #endif
- oputs (r, "\r\n") ;
if (bOutToMem)
{
char * pData ;
- int l = GetContentLength (r) + 1 ;
+ int l ;
+
+ #ifdef EP2
+ if (!bError)
+ Node_toString (r -> pCurrDomTree, r, r -> xDocument) ;
+ #endif
+ oputs (r, "\r\n") ;
+
+ l = GetContentLength (r) + 1 ;
sv_setpv (pOut, "") ;
SvGROW (pOut, l) ;
@@ -2466,6 +2471,10 @@
else
{
oCommit (r, NULL) ;
+ #ifdef EP2
+ if (!bError)
+ Node_toString (r -> pCurrDomTree, r, r -> xDocument) ;
+ #endif
}
}
}
1.1.2.13 +12 -1 embperl/Attic/epparse.c
Index: epparse.c
===================================================================
RCS file: /home/cvs/embperl/Attic/epparse.c,v
retrieving revision 1.1.2.12
retrieving revision 1.1.2.13
diff -u -r1.1.2.12 -r1.1.2.13
--- epparse.c 2000/05/19 13:35:26 1.1.2.12
+++ epparse.c 2000/05/23 07:04:55 1.1.2.13
@@ -526,7 +526,18 @@
{
char * pEndCurr = strstr (pCurr, pToken -> sEndText) ;
if (pEndCurr)
- pCurr = pEndCurr + strlen (pToken -> sEndText) ;
+ {
+ tNode xNewAttrNode ;
+ if (pEndCurr - pCurr && pToken -> nCDataType && pToken ->
nCDataType != ntypCDATA)
+ {
+ if (pToken -> bUnescape)
+ TransHtml (r, pCurr, pEndCurr - pCurr) ;
+
+ if (!(xNewAttrNode = Node_appendChild (r -> pCurrDomTree,
pToken -> nCDataType, pCurr, pEndCurr - pCurr, xParentNode, level+1)))
+ return 1 ;
+ }
+ pCurr = pEndCurr + strlen (pToken -> sEndText) ;
+ }
level-- ;
xParentNode = Node_parentNode (r -> pCurrDomTree, xParentNode) ;
}
1.57.2.8 +21 -22 embperl/test.pl
Index: test.pl
===================================================================
RCS file: /home/cvs/embperl/test.pl,v
retrieving revision 1.57.2.7
retrieving revision 1.57.2.8
diff -u -r1.57.2.7 -r1.57.2.8
--- test.pl 2000/05/22 14:37:12 1.57.2.7
+++ test.pl 2000/05/23 07:04:55 1.57.2.8
@@ -4,36 +4,35 @@
@tests = (
-##
'input.htm?feld5=Wert5&feld6=Wert6&feld7=Wert7&feld8=Wert8&cb5=cbv5&cb6=cbv6&cb7=cbv7&cb8=cbv8&cb9=ncbv9&cb10=ncbv10&cb11=ncbv11&mult=Wert3&mult=Wert6&esc=a<b&escmult=a>b&escmult=Wert3',
-## 'ascii',
-## 'pure.htm',
+ 'ascii',
+ 'pure.htm',
## 'plainlong.htm',
## 'plainlong.htm',
## 'plainlong.htm',
## 'plainlong.htm',
-## 'plain.htm',
-## 'plain.htm',
-## 'plain.htm',
+ 'plain.htm',
+ 'plain.htm',
+ 'plain.htm',
## 'plainblock.htm',
## 'plainblock.htm',
-## 'error.htm???8',
-## 'error.htm???8',
-## 'error.htm???8',
+ 'error.htm???6',
+ 'error.htm???6',
+ 'error.htm???6',
## 'unclosed.htm???1',
# 'errorright.htm???1',
-## 'notfound.htm???1',
-## 'notallow.xhtm???1',
-## 'noerr/noerrpage.htm???8?2',
-## 'errdoc/errdoc.htm???8?262144',
+ 'notfound.htm???1',
+ 'notallow.xhtm???1',
+## 'noerr/noerrpage.htm???6?2',
+ 'errdoc/errdoc.htm???6?262144',
## 'rawinput/rawinput.htm????16',
-## 'var.htm',
-## 'varerr.htm???-1',
-## 'varerr.htm???2',
-## 'escape.htm',
-## 'spaces.htm',
-## 'tagscan.htm',
-## 'tagscan.htm??1',
-## 'if.htm',
+ 'var.htm',
+ 'varerr.htm???-1',
+ 'varerr.htm???2',
+ 'escape.htm',
+ 'spaces.htm',
+ 'tagscan.htm',
+ 'tagscan.htm??1',
+ 'if.htm',
## 'ifperl.htm',
'loop.htm?erstes=Hallo&zweites=Leer+zeichen&drittes=%21%22%23%2a%2B&erstes=Wert2',
'loop.htm?erstes=Hallo&zweites=Leer+zeichen&drittes=%21%22%23%2a%2B&erstes=Wert2',
@@ -145,7 +144,7 @@
$defaultdebug = 0x1f85ffd ;
- $defaultdebug = 1 ;
+ #$defaultdebug = 1 ;
#### setup paths #####
No revision
No revision
1.1.2.4 +13 -2 embperl/Embperl/Attic/Syntax.pm
Index: Syntax.pm
===================================================================
RCS file: /home/cvs/embperl/Embperl/Attic/Syntax.pm,v
retrieving revision 1.1.2.3
retrieving revision 1.1.2.4
diff -u -r1.1.2.3 -r1.1.2.4
--- Syntax.pm 2000/05/22 14:37:28 1.1.2.3
+++ Syntax.pm 2000/05/23 07:05:06 1.1.2.4
@@ -10,7 +10,7 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
-# $Id: Syntax.pm,v 1.1.2.3 2000/05/22 14:37:28 richter Exp $
+# $Id: Syntax.pm,v 1.1.2.4 2000/05/23 07:05:06 richter Exp $
#
###################################################################################
@@ -242,7 +242,7 @@
'procinfo' => {
embperl => {
perlcode => 'do { ',
- perlcodeend => '} until (1) ; ',
+ perlcodeend => '} until (%a0%) ; ',
removenode => 10,
}
},
@@ -254,6 +254,17 @@
'unescape' => 1,
'procinfo' => {
embperl => { perlcode => '} until (%#0%) ; ' }
+ },
+ },
+ 'var' => {
+ 'text' => 'var',
+ 'cdatatype' => ntypAttrValue,
+ 'unescape' => 1,
+ 'procinfo' => {
+ embperl => {
+ perlcode => 'use strict ; use vars qw {%a0%} ;',
+ removenode => 3,
+ }
},
},
No revision
No revision
1.5.2.1 +10 -17 embperl/test/cmp/error.htm
Index: error.htm
===================================================================
RCS file: /home/cvs/embperl/test/cmp/error.htm,v
retrieving revision 1.5
retrieving revision 1.5.2.1
diff -u -r1.5 -r1.5.2.1
--- error.htm 2000/03/28 19:14:11 1.5
+++ error.htm 2000/05/23 07:05:08 1.5.2.1
@@ -2,23 +2,16 @@
<H1>Internal Server Error</H1>
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\: Line 13\: Warning in Perl code\: Use of uninitialized value
-^\[.*?\]ERR\: 32\: Line 14\: Warning in Perl code\: Use of uninitialized value
-^\[.*?\]ERR\: 32\: Line 15\: Warning in Perl code\: Use of uninitialized value
-^\[.*?\]ERR\: 32\: Line 16\: Warning in Perl code\: Use of uninitialized value
-^\[.*?\]ERR\: 32\: Line 17\: Warning in Perl code\: Use of uninitialized value
-^^\[.*?\]ERR\: 32\: Line 21\: Warning in Perl code\: Unquoted string
"qqqqqqqqqqqqqq" may clash with future reserved word at .*? line \d*\.
-^\[.*?\]ERR\: 24\: Line 21\: Error in Perl code\: syntax error at .*? line \d*\,
at EOF
-^\[.*?\]ERR\: 24\: Line 32\: Error in Perl code\: syntax error at .*? line \d*\,
at EOF
-^\[.*?\]ERR\: 24\: Line 32\: Error in Perl code\: Can.*?
-^\[.*?\]ERR\: 32\: Line 32\: Warning in Perl code\: Use of uninitialized value
-^^\[.*?\]ERR\: 32\: Line 46\: Warning in Perl code\: Bareword found where operator
expected at .*?
-^^\[.*?\]ERR\: 32\: Line 46\: Warning in Perl code\: \(Missing operator
before is\?\)
-^\[.*?\]ERR\: 24\: Line 46\: Error in Perl code\: syntax error at .*? line \d*\,
near \"\;\$error is here \"\;
-^<br> Missing right .*?bracket at .*? line \d*\, at end of
line
-^<br> syntax error at .*? line \d*\, at EOF
-^\[.*?\]ERR\: 20\: Line 58\: \<\;\/tr\>\; without \<\;tr\>\;
-^\[.*?\]ERR\: 45\: Line 58\: Unclosed HTML tag <table> at end of file
+^^\[.*?\]ERR: 32: Line \d+: Warning in Perl code: Unquoted string
"qqqqqqqqqqqqqq" may clash with future reserved word at test/html/error.htm
line \d+.<p>
+^^\[.*?\]ERR: 32: Line \d+: Warning in Perl code: Use of uninitialized value at
test/html/error.htm line \d+.<p>
+^^\[.*?\]ERR: 32: Line \d+: Warning in Perl code: Bareword found where operator
expected at test/html/error.htm line \d+, near "\$error is"<p>
+^^\[.*?\]ERR: 32: Line \d+: Warning in Perl code: \(Missing operator before
is\?\)<p>
+^\[.*?\]ERR: 24: Line \d+: Error in Perl code: syntax error at test/html/error.htm
line \d+, at EOF
+^<br> syntax error at test/html/error.htm line \d+, at EOF
+^<br> syntax error at test/html/error.htm line \d+, near
"\$error is here "
+^<br> syntax error at test/html/error.htm line \d+, near
"}
+^<br> _ep_cp"<p>
+^\[.*?\]ERR: 24: Line \d+: Error in Perl code: <p>
^ HTML\:\:Embperl.*?<P>
</BODY></HTML>
No revision
No revision
1.4.2.2 +5 -5 embperl/test/html/loop.htm
Index: loop.htm
===================================================================
RCS file: /home/cvs/embperl/test/html/loop.htm,v
retrieving revision 1.4.2.1
retrieving revision 1.4.2.2
diff -u -r1.4.2.1 -r1.4.2.2
--- loop.htm 2000/05/22 14:37:35 1.4.2.1
+++ loop.htm 2000/05/23 07:05:11 1.4.2.2
@@ -7,6 +7,11 @@
<body>
[- $i = 0 -]
+[$ while($i <= 2)$]
+ [+ $i++ +]
+[$ endwhile $]
+
+[- $i = 0 -]
[$ while $i <= $#ffld $]
[+ $ffld[$i] +] = [+ $fdat{$ffld[$i]} +]
[- $j = 0 -]
@@ -15,11 +20,6 @@
[$ endwhile $]
<BR>
[- $i++ -]
-[$ endwhile $]
-
-[- $i = 0 -]
-[$ while($i <= 2)$]
- [+ $i++ +]
[$ endwhile $]
1.3.2.1 +1 -1 embperl/test/html/var.htm
Index: var.htm
===================================================================
RCS file: /home/cvs/embperl/test/html/var.htm,v
retrieving revision 1.3
retrieving revision 1.3.2.1
diff -u -r1.3 -r1.3.2.1
--- var.htm 1999/10/05 06:03:48 1.3
+++ var.htm 2000/05/23 07:05:11 1.3.2.1
@@ -6,7 +6,7 @@
<body>
-[$VAR $a $b $c $d $e $]
+[$var $a $b $c $d $e $]
Here it starts with some HTML Text<P>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]