richter 00/05/30 23:21:52
Modified: . Tag: Embperl2 Embperl.xs TODO ep.h epcomp.c epdom.c
epdom.h epparse.c
Embperl Tag: Embperl2 Syntax.pm
test/cmp Tag: Embperl2 error.htm if.htm
test/html Tag: Embperl2 table.htm
Log:
Embperl 2 - Tables
Revision Changes Path
No revision
No revision
1.26.2.12 +7 -0 embperl/Embperl.xs
Index: Embperl.xs
===================================================================
RCS file: /home/cvs/embperl/Embperl.xs,v
retrieving revision 1.26.2.11
retrieving revision 1.26.2.12
diff -u -r1.26.2.11 -r1.26.2.12
--- Embperl.xs 2000/05/29 07:34:29 1.26.2.11
+++ Embperl.xs 2000/05/31 06:21:49 1.26.2.12
@@ -725,6 +725,13 @@
pCurrReq -> bEscModeSet = -1 ;
DomTree_checkpoint (xDomTree, xChild) ;
+void
+embperl_DomTree_discardAfterCheckpoint (xDomTree, xNode)
+ int xDomTree
+ int xNode
+CODE:
+ DomTree_discardAfterCheckpoint (xDomTree, xNode) ;
+
#void
#Node_parentNode (xChild)
# int xChild
1.90.2.2 +5 -0 embperl/TODO
Index: TODO
===================================================================
RCS file: /home/cvs/embperl/TODO,v
retrieving revision 1.90.2.1
retrieving revision 1.90.2.2
diff -u -r1.90.2.1 -r1.90.2.2
--- TODO 2000/05/24 21:08:16 1.90.2.1
+++ TODO 2000/05/31 06:21:49 1.90.2.2
@@ -130,3 +130,8 @@
- <body [$if ... endif$]> -> tagscan.htm
+- <xxxx> -> empty loop -> loop.htm
+
+- <th>, $cnt -> table.htm
+
+
1.23.2.4 +29 -0 embperl/ep.h
Index: ep.h
===================================================================
RCS file: /home/cvs/embperl/ep.h,v
retrieving revision 1.23.2.3
retrieving revision 1.23.2.4
diff -u -r1.23.2.3 -r1.23.2.4
--- ep.h 2000/05/19 13:35:26 1.23.2.3
+++ ep.h 2000/05/31 06:21:49 1.23.2.4
@@ -485,10 +485,39 @@
int EvalMain (/*i/o*/ register req * r) ;
+int CallStoredCV (/*i/o*/ register req * r,
+ /*in*/ const char * sArg,
+ /*in*/ CV * pSub,
+ /*in*/ int numArgs,
+ /*in*/ SV ** pArgs,
+ /*in*/ int flags,
+ /*out*/ SV ** pRet) ;
+
+
/* ---- from epdbg.c ----- */
int SetupDebugger (/*i/o*/ register req * r) ;
+/* ---- from epparse.c ----- */
extern struct tTokenTable DefaultTokenTable ;
+
+int BuildTokenTable (/*i/o*/ register req * r,
+ /*in*/ HV * pTokenHash,
+ /*in*/ const char * pDefEnd,
+ /*out*/ struct tTokenTable * pTokenTable) ;
+
+int ParseFile (/*i/o*/ register req * r) ;
+
+
+/* ---- from epcomp.c ----- */
+
+int embperl_CompileInit (void) ;
+
+int embperl_CompileInitItem (/*i/o*/ register req * r,
+ /*in*/ HV * pHash,
+ /*in*/ int nNodeName) ;
+
+embperl_CompileDocument (/*i/o*/ register req * r) ;
+
1.1.2.19 +53 -14 embperl/Attic/epcomp.c
Index: epcomp.c
===================================================================
RCS file: /home/cvs/embperl/Attic/epcomp.c,v
retrieving revision 1.1.2.18
retrieving revision 1.1.2.19
diff -u -r1.1.2.18 -r1.1.2.19
--- epcomp.c 2000/05/30 14:12:32 1.1.2.18
+++ epcomp.c 2000/05/31 06:21:49 1.1.2.19
@@ -25,6 +25,7 @@
int numPerlCode ;
int bRemoveNode ;
int bPerlCodeRemove ;
+ int bCompileChilds ;
const char * sMayJump ;
} ;
@@ -47,7 +48,7 @@
/* ------------------------------------------------------------------------ */
-int embperl_CompileInit ()
+int embperl_CompileInit (void)
{
ArrayNew (&pEmbperlCmds, 256, sizeof (struct tEmbperlCmd)) ;
@@ -117,6 +118,7 @@
pEmbperlCmds[nNodeName].sMayJump = GetHashValueStr (pHash, "mayjump", NULL)
;
pEmbperlCmds[nNodeName].bPopStack = GetHashValueInt (pHash, "pop", 0) ;
pEmbperlCmds[nNodeName].bPerlCodeRemove = GetHashValueInt (pHash,
"perlcoderemove", 0) ;
+ pEmbperlCmds[nNodeName].bCompileChilds = GetHashValueInt (pHash,
"compilechilds", 1) ;
if (r -> bDebug & dbgParse)
@@ -489,6 +491,10 @@
int l = sprintf (s, "$_ep_DomTree,%u", pNode -> xNdx) ;
StringAdd (ppCode, s, l) ;
}
+ else if (*p == 't')
+ {
+ StringAdd (ppCode, "$_ep_DomTree", 0) ;
+ }
else if (*p == 'l')
{
char s [20] ;
@@ -537,16 +543,26 @@
char * pCode = NULL ;
char * sStackValue = NULL ;
int nStartCodeOffset = 0 ;
+ int nCheckpointCodeOffset = 0 ;
+
- if (*bCheckpointPending && (pNode -> nType == ntypText || pNode -> nType ==
ntypCDATA) && pNode -> bFlags && (pNode -> bFlags & nflgIgnore) == 0)
+ if (pCurrReq -> bDebug & dbgParse)
+ lprintf (pCurrReq, "[%d]EPCOMP: #%d -------> parent=%d node=%d type=%d
text=%s\n", pCurrReq -> nPid, pNode -> xNdx, Node_parentNode (pDomTree, pNode ->
xNdx), pNode -> xNdx, pNode -> nType, Node_selfNodeName(pNode)) ;
+
+ //if (*bCheckpointPending && (pNode -> nType == ntypText || pNode -> nType ==
ntypCDATA) && pNode -> bFlags && (pNode -> bFlags & nflgIgnore) == 0)
+ if (*bCheckpointPending && pNode -> bFlags && (pNode -> bFlags & nflgIgnore) ==
0)
{
int l ;
char buf [80] ;
pNode -> bFlags |= nflgCheckpoint ;
- l = sprintf (buf, "_ep_cp($_ep_DomTree,%d) ;\n", *bCheckpointPending<0?pNode
-> xNdx:*bCheckpointPending) ;
- StringAdd (&pProg, buf, l) ;
+ l = sprintf (buf, " _ep_cp($_ep_DomTree,%d) ;\n", *bCheckpointPending<0?pNode
-> xNdx:*bCheckpointPending) ;
+ nCheckpointCodeOffset = StringAdd (&pProg, buf, l) ;
*bCheckpointPending = 0 ;
+
+ if (pCurrReq -> bDebug & dbgParse)
+ lprintf (pCurrReq, "[%d]EPCOMP: #%d Checkpoint\n", pCurrReq -> nPid, pNode
-> xNdx) ;
+
}
while (pAttr = Element_selfGetNthAttribut (pDomTree, pNode, nAttr++))
@@ -586,6 +602,8 @@
if (l)
StringAdd (&pProg, pCode, l) ;
StringAdd (&pProg, "\n", 1) ;
+ if (pCurrReq -> bDebug & dbgParse)
+ lprintf (pCurrReq, "[%d]EPCOMP: #%d Code: %*.*s\n",
pCurrReq -> nPid, pNode -> xNdx, l, l, pCode) ;
}
break ;
}
@@ -620,6 +638,8 @@
if (embperl_CompileToPerlCode (pDomTree, pNode, pCmd -> sMayJump,
&sStackValue))
{
*bCheckpointPending = -1 ;
+ if (pCurrReq -> bDebug & dbgParse)
+ lprintf (pCurrReq, "[%d]EPCOMP: #%d Set Checkpoint pending\n",
pCurrReq -> nPid, pNode -> xNdx) ;
}
if (pCmd -> bRemoveNode & 1)
@@ -627,7 +647,15 @@
else if (pCmd -> bRemoveNode & 8)
pNode -> bFlags |= nflgIgnore ;
- if (pCmd -> sStackName && pCmd -> sPushStack)
+ if (nCheckpointCodeOffset && (pNode -> bFlags == 0 || (pNode -> bFlags &
nflgIgnore)))
+ {
+ pProg[nCheckpointCodeOffset] = '#' ;
+ if (pCurrReq -> bDebug & dbgParse)
+ lprintf (pCurrReq, "[%d]EPCOMP: #%d Remove Checkpoint\n", pCurrReq
-> nPid, pNode -> xNdx) ;
+ nCheckpointCodeOffset = 0 ;
+ }
+
+ if (pCmd -> sStackName && pCmd -> sPushStack)
{
if (embperl_CompileToPerlCode (pDomTree, pNode, pCmd -> sPushStack,
&sStackValue))
{
@@ -640,15 +668,18 @@
else
pCmd = NULL ;
- xChildNode = pNode -> bFlags?Node_firstChild (pDomTree, xNode):0 ;
-
- while (xChildNode)
+ if (pCmd == NULL || pCmd -> bCompileChilds)
{
- embperl_CompileNode (pDomTree, xChildNode, bCheckpointPending) ;
+ xChildNode = pNode -> bFlags?Node_firstChild (pDomTree, xNode):0 ;
- xChildNode = Node_nextSibling (pDomTree, xChildNode) ;
- }
+ while (xChildNode)
+ {
+ embperl_CompileNode (pDomTree, xChildNode, bCheckpointPending) ;
+ xChildNode = Node_nextSibling (pDomTree, xChildNode) ;
+ }
+ }
+
if (pCmd)
{
if (embperl_CompileToPerlCode (pDomTree, pNode, pCmd -> sPerlCodeEnd,
&pCode))
@@ -657,21 +688,29 @@
{
int l = ArrayGetSize (pCode) ;
if (l)
- StringAdd (&pProg, pCode, l) ;
- StringAdd (&pProg, "\n", 1) ;
- }
+ {
+ StringAdd (&pProg, pCode, l) ;
+ StringAdd (&pProg, "\n", 1) ;
+ if (pCurrReq -> bDebug & dbgParse)
+ lprintf (pCurrReq, "[%d]EPCOMP: #%d Codeend: %*.*s\n",
pCurrReq -> nPid, pNode -> xNdx, l, l, pCode) ;
+ }
+ }
}
else
{
if (pCmd -> bPerlCodeRemove && nStartCodeOffset)
{
pProg[nStartCodeOffset] = '#' ;
+ if (pCurrReq -> bDebug & dbgParse)
+ lprintf (pCurrReq, "[%d]EPCOMP: #%d Remove Codeblock\n", pCurrReq
-> nPid, pNode -> xNdx) ;
}
}
if (pCmd -> sPerlCodeEnd && pCmd -> sMayJump)
if (embperl_CompileToPerlCode (pDomTree, pNode, pCmd -> sMayJump,
&sStackValue))
{
*bCheckpointPending = -1 ;
+ if (pCurrReq -> bDebug & dbgParse)
+ lprintf (pCurrReq, "[%d]EPCOMP: #%d Set Checkpoint pending\n",
pCurrReq -> nPid, pNode -> xNdx) ;
}
if (pCmd -> sStackName && pCmd -> sPushStack)
{
1.1.2.23 +110 -19 embperl/Attic/epdom.c
Index: epdom.c
===================================================================
RCS file: /home/cvs/embperl/Attic/epdom.c,v
retrieving revision 1.1.2.22
retrieving revision 1.1.2.23
diff -u -r1.1.2.22 -r1.1.2.23
--- epdom.c 2000/05/30 14:12:33 1.1.2.22
+++ epdom.c 2000/05/31 06:21:49 1.1.2.23
@@ -34,8 +34,27 @@
#define dom_malloc(s) (nMemUsage += s, malloc(s))
#define dom_free(s) (free(s))
+
/* ------------------------------------------------------------------------ */
/* */
+/* mydie */
+/* */
+/* Fatal Error */
+/* */
+/* ------------------------------------------------------------------------ */
+
+int mydie (char * msg)
+ {
+ strncpy (pCurrReq -> errdat1, msg, sizeof (pCurrReq -> errdat1)) ;
+ LogError (pCurrReq, 9999) ;
+ puts (msg) ;
+ exit (1) ;
+ }
+
+
+
+/* ------------------------------------------------------------------------ */
+/* */
/* ArrayNew */
/* */
/* Create a new dynamic array */
@@ -448,6 +467,13 @@
return n ;
}
+/* ------------------------------------------------------------------------ */
+/* */
+/* DomTree_checkpoint */
+/* */
+/* Add a new checkpoint to sync the programm execution with the DOM tree */
+/* */
+/* ------------------------------------------------------------------------ */
void DomTree_checkpoint (tIndex xDomTree, tNode xChild)
@@ -456,28 +482,94 @@
tDomTree * pDomTree = DomTree_self (xDomTree) ;
int n = ArrayAdd (&pDomTree -> pOrder, 1) ;
(pDomTree -> pOrder)[n] = xChild ;
+ if (pCurrReq -> bDebug & dbgParse)
+ lprintf (pCurrReq, "[%d]Checkpoint: Node=%d OrderIndex %d\n", pCurrReq ->
nPid, xChild, n) ;
}
+/* ------------------------------------------------------------------------ */
+/* */
+/* DomTree_selfCheckpoint */
+/* */
+/* Add a new checkpoint to sync the programm execution with the DOM tree */
+/* */
+/* ------------------------------------------------------------------------ */
+
void DomTree_selfCheckpoint (tDomTree * pDomTree, tNode xChild)
{
int n = ArrayAdd (&pDomTree -> pOrder, 1) ;
(pDomTree -> pOrder)[n] = xChild ;
+ if (pCurrReq -> bDebug & dbgParse)
+ lprintf (pCurrReq, "[%d]Checkpoint: Node=%d OrderIndex %d\n", pCurrReq ->
nPid, xChild, n) ;
}
+/* ------------------------------------------------------------------------ */
+/* */
+/* DomTree_discardAfterCheckpoint */
+/* */
+/* Search for the next checkpoint after xNode and discard all checkpoints */
+/* set after and including that one */
+/* */
+/* ------------------------------------------------------------------------ */
-int mydie (char * msg)
+int DomTree_selfDiscardAfterCheckpoint (/*in*/ tDomTree * pDomTree,
+ /*in*/ tNodeData * pNode)
+
+
{
- strncpy (pCurrReq -> errdat1, msg, sizeof (pCurrReq -> errdat1)) ;
- LogError (pCurrReq, 9999) ;
- puts (msg) ;
- exit (1) ;
+ tNodeData * pArgNode = pNode ;
+ tNode xNode ;
+ tNodeData * pChild ;
+ tNode * pOrder ;
+ int n ;
+ int o ;
+
+ while (pNode && (pNode -> bFlags & nflgCheckpoint) == 0)
+ {
+ pChild = Node_selfFirstChild (pDomTree, pNode) ;
+ if (pChild)
+ if (DomTree_selfDiscardAfterCheckpoint (pDomTree, pChild))
+ return 1 ;
+
+ pNode = Node_selfNextSibling (pDomTree, pNode) ;
+ }
+
+ if (pNode == NULL)
+ return 0 ;
+
+ xNode = pNode -> xNdx ;
+
+ pOrder = pDomTree -> pOrder ;
+ o = n = ArrayGetSize (pOrder) ;
+ while (--n >= 0)
+ {
+ if (pOrder[n] == xNode)
+ break ;
+ }
+ ArraySetSize (&pDomTree -> pOrder, n) ;
+
+ if (pCurrReq -> bDebug & dbgParse)
+ lprintf (pCurrReq, "[%d]Checkpoint Discard: Node=%d Checkpoint=%d OrderIndex
%d -> %d\n", pCurrReq -> nPid, pArgNode -> xNdx, xNode, o, n) ;
+
+ return 1 ;
}
+
+int DomTree_discardAfterCheckpoint (/*in*/ tIndex xDomTree,
+ /*in*/ tNode xNode)
+
+
+ {
+ tDomTree * pDomTree = DomTree_self (xDomTree) ;
+ tNodeData * pNode = Node_self (pDomTree, xNode) ;
+
+ return DomTree_selfDiscardAfterCheckpoint (pDomTree, pNode) ;
+ }
+
/* ------------------------------------------------------------------------
interface Node {
@@ -1178,18 +1270,6 @@
while (pNode)
{
- 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: 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)
@@ -1226,8 +1306,19 @@
}
nOrderNdx++ ;
}
- if (pSavedNode)
- pNode = pNextNode ;
+
+ 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: Replace Node=%d with Node=%d\n", r ->
nPid, pNode -> xNdx, xNextNode) ;
+ pSavedNode = pNode ;
+ pNode = Node_self (pDomTree, xNextNode) ;
+ }
+ nOrderNdx++ ;
+ }
+
if (pCurrReq -> bDebug & dbgParse)
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) ;
1.1.2.19 +13 -0 embperl/Attic/epdom.h
Index: epdom.h
===================================================================
RCS file: /home/cvs/embperl/Attic/epdom.h,v
retrieving revision 1.1.2.18
retrieving revision 1.1.2.19
diff -u -r1.1.2.18 -r1.1.2.19
--- epdom.h 2000/05/30 14:12:33 1.1.2.18
+++ epdom.h 2000/05/31 06:21:49 1.1.2.19
@@ -189,7 +189,20 @@
/*in*/ const char * sAdd,
/*in*/ int nLen) ;
+int DomInit (void) ;
+int DomTree_clone (/*in*/ tDomTree * pOrgDomTree,
+ /*out*/tDomTree * * pNewDomTree) ;
+
+int DomTree_new (tDomTree * * pNewLookup) ;
+
+void DomTree_checkpoint (tIndex xDomTree, tNode xChild) ;
+
+int DomTree_selfDiscardAfterCheckpoint (/*in*/ tDomTree * pDomTree,
+ /*in*/ tNodeData * pNode) ;
+
+int DomTree_discardAfterCheckpoint (/*in*/ tIndex xDomTree,
+ /*in*/ tNode xNode) ;
tNode Node_appendChild (/*in*/ tDomTree * pDomTree,
/*in*/ tNodeType nType,
1.1.2.18 +3 -3 embperl/Attic/epparse.c
Index: epparse.c
===================================================================
RCS file: /home/cvs/embperl/Attic/epparse.c,v
retrieving revision 1.1.2.17
retrieving revision 1.1.2.18
diff -u -r1.1.2.17 -r1.1.2.18
--- epparse.c 2000/05/29 07:34:30 1.1.2.17
+++ epparse.c 2000/05/31 06:21:49 1.1.2.18
@@ -133,7 +133,7 @@
}
if (strcmp (pKey, "embperl") == 0)
- embperl_CompileInitItem (r, SvRV (pSVValue), pToken -> nNodeName) ;
+ embperl_CompileInitItem (r, (HV *)(SvRV (pSVValue)), pToken ->
nNodeName) ;
}
}
@@ -219,7 +219,7 @@
int BuildTokenTable (/*i/o*/ register req * r,
/*in*/ HV * pTokenHash,
- /*in*/ char * pDefEnd,
+ /*in*/ const char * pDefEnd,
/*out*/ struct tTokenTable * pTokenTable)
@@ -288,7 +288,7 @@
p -> sName = pKey ;
p -> sText = GetHashValueStr (pHash, "text", "") ;
p -> nTextLen = strlen (p -> sText) ;
- p -> sEndText = GetHashValueStr (pHash, "end", pDefEnd) ;
+ p -> sEndText = GetHashValueStr (pHash, "end", (char *)pDefEnd) ;
p -> sNodeName = GetHashValueStr (pHash, "nodename", NULL) ;
p -> nNodeType = GetHashValueInt (pHash, "nodetype", ntypTag) ;
p -> bUnescape = GetHashValueInt (pHash, "unescape", 0) ;
No revision
No revision
1.1.2.13 +19 -7 embperl/Embperl/Attic/Syntax.pm
Index: Syntax.pm
===================================================================
RCS file: /home/cvs/embperl/Embperl/Attic/Syntax.pm,v
retrieving revision 1.1.2.12
retrieving revision 1.1.2.13
diff -u -r1.1.2.12 -r1.1.2.13
--- Syntax.pm 2000/05/30 14:12:33 1.1.2.12
+++ Syntax.pm 2000/05/31 06:21:51 1.1.2.13
@@ -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.12 2000/05/30 14:12:33 richter Exp $
+# $Id: Syntax.pm,v 1.1.2.13 2000/05/31 06:21:51 richter Exp $
#
###################################################################################
@@ -92,12 +92,14 @@
embperl => {
perlcode =>
[
- 'if (!defined (_ep_rp(%$n%,scalar(do{%#~0:$col%})))) { last
l%^*htmlrow% ; }',
- 'if (!defined (_ep_rp(%$n%,scalar(do{%#~0:$row%})))) { last
l%^*htmltable% ; }',
+ 'if (!defined (_ep_rp(%$n%,scalar(do{%#~0:$col%}))))
%#~-0:$row% { if ($col == 0) { XML::Embperl::DOM::DomTree_discardAfterCheckpoint
(%$t%,%^*htmltable%) ; last l%^*htmltable% ; } else {
XML::Embperl::DOM::DomTree_discardAfterCheckpoint (%$t%,%^*htmlrow%) ; last
l%^*htmlrow% ; }}',
+ 'if (!defined (_ep_rp(%$n%,scalar(do{%#~0:$col%})))) {
XML::Embperl::DOM::DomTree_discardAfterCheckpoint (%$t%,%^*htmlrow%) ; last
l%^*htmlrow% ; }',
+ 'if (!defined (_ep_rp(%$n%,scalar(do{%#~0:$row%})))) {
XML::Embperl::DOM::DomTree_discardAfterCheckpoint (%$t%,%^*htmltable%) ; last
l%^*htmltable% ; }',
'_ep_rp(%$n%,scalar(do{%#0%}));',
],
removenode => 4,
- mayjump => '%#~0:$col|$row|$cnt% %?*htmlrow% %?*htmltable%'
+ mayjump => '%#~0:$col|$row|$cnt% %?*htmlrow% %?*htmltable%',
+ compilechilds => 0,
}
},
},
@@ -108,11 +110,14 @@
'procinfo' => {
embperl => {
perlcode => [
- 'if (!defined (scalar (do {%#~0:$row|$col|$cnt%})))
{ last ; } %^*-htmltable%',
+ 'if (!defined (scalar(do{%#~0:$col%}))) %#~-0:$row%
{ if ($col == 0) { XML::Embperl::DOM::DomTree_discardAfterCheckpoint
(%$t%,%^*htmltable%) ; last l%^*htmltable% ; } else {
XML::Embperl::DOM::DomTree_discardAfterCheckpoint (%$t%,%^*htmlrow%) ; last
l%^*htmlrow% ; }}',
+ 'if (!defined (scalar(do{%#~0:$col%}))) {
XML::Embperl::DOM::DomTree_discardAfterCheckpoint (%$t%,%^*htmlrow%) ; last
l%^*htmlrow% ; }',
+ 'if (!defined (scalar(do{%#~0:$row%}))) {
XML::Embperl::DOM::DomTree_discardAfterCheckpoint (%$t%,%^*htmltable%) ; last
l%^*htmltable% ; }',
'{%#0%;}',
],
removenode => 3,
mayjump => 1,
+ compilechilds => 0,
},
},
},
@@ -125,6 +130,7 @@
perlcode => '%#0%',
removenode => 3,
mayjump => 1,
+ compilechilds => 0,
},
},
},
@@ -136,6 +142,7 @@
embperl => {
perlcode => 'if (!$first++) { %#0% } ;',
removenode => 3,
+ compilechilds => 0,
}
},
},
@@ -143,7 +150,10 @@
'text' => '[#',
'end' => '#]',
'procinfo' => {
- embperl => { removenode => 3, },
+ embperl => {
+ compilechilds => 0,
+ removenode => 3,
+ },
},
},
) ;
@@ -154,7 +164,9 @@
$CmdsLink{'Embperl output code'}{'nodename'} = '[+url' ;
$CmdsLink{'Embperl output code'}{'procinfo'}{'embperl'}{'perlcode'} =
[
- 'if (!defined
(_ep_rpurl(%$n%,scalar(do{%#~0:$row|$col|$cnt%})))) { last ; } %^*-htmltable%',
+ 'if (!defined (_ep_rpurl(%$n%,scalar(do{%#~0:$col%}))))
%#~-0:$row% { if ($col == 0) { XML::Embperl::DOM::DomTree_discardAfterCheckpoint
(%$t%,%^*htmltable%) ; last l%^*htmltable% ; } else {
XML::Embperl::DOM::DomTree_discardAfterCheckpoint (%$t%,%^*htmlrow%) ; last
l%^*htmlrow% ; }}',
+ 'if (!defined (_ep_rpurl(%$n%,scalar(do{%#~0:$col%})))) {
XML::Embperl::DOM::DomTree_discardAfterCheckpoint (%$t%,%^*htmlrow%) ; last
l%^*htmlrow% ; }',
+ 'if (!defined (_ep_rpurl(%$n%,scalar(do{%#~0:$row%})))) {
XML::Embperl::DOM::DomTree_discardAfterCheckpoint (%$t%,%^*htmltable%) ; last
l%^*htmltable% ; }',
'_ep_rpurl(%$n%,scalar(do{%#0%}));',
] ;
No revision
No revision
1.5.2.4 +1 -1 embperl/test/cmp/error.htm
Index: error.htm
===================================================================
RCS file: /home/cvs/embperl/test/cmp/error.htm,v
retrieving revision 1.5.2.3
retrieving revision 1.5.2.4
diff -u -r1.5.2.3 -r1.5.2.4
--- error.htm 2000/05/30 14:12:34 1.5.2.3
+++ error.htm 2000/05/31 06:21:51 1.5.2.4
@@ -10,7 +10,7 @@
^<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"
+^<br> _ep_cp"
^<br> syntax error at test/html/error.htm line \d+, near
"
^<br>
^<br> }"<p>
1.4.2.2 +1 -1 embperl/test/cmp/if.htm
Index: if.htm
===================================================================
RCS file: /home/cvs/embperl/test/cmp/if.htm,v
retrieving revision 1.4.2.1
retrieving revision 1.4.2.2
diff -u -r1.4.2.1 -r1.4.2.2
--- if.htm 2000/05/24 21:08:29 1.4.2.1
+++ if.htm 2000/05/31 06:21:51 1.4.2.2
@@ -16,7 +16,7 @@
a3
a <br>
- a4
+a4
a5
a <br>
b is null <br>
No revision
No revision
1.4.2.3 +20 -16 embperl/test/html/table.htm
Index: table.htm
===================================================================
RCS file: /home/cvs/embperl/test/html/table.htm,v
retrieving revision 1.4.2.2
retrieving revision 1.4.2.3
diff -u -r1.4.2.2 -r1.4.2.3
--- table.htm 2000/05/30 14:12:35 1.4.2.2
+++ table.htm 2000/05/31 06:21:52 1.4.2.3
@@ -30,7 +30,7 @@
$b[2][2] = 'b3/3' ;
$maxcol=99 ;
--]
+-][###
$a[0][[0] = '1/1' ;<BR>
$a[1][[0] = '2/1' ;<BR>
$a[1][[1] = '2/2' ;<BR>
@@ -96,14 +96,16 @@
</tr>
</table>
-[#
+###]
-<table border="2" width="100%">
+<table border="1" width="100%">
<tr>
<td>[+ $a[$row][$col] +] </td>
</tr>
</table>
+[#
+
<table border="2" width="100%">
<tr>
<th>1</th>
@@ -115,7 +117,7 @@
</tr>
</table>
-<table border="2" width="100%">
+<table border="3" width="100%">
<tr>
<th>[+ $b[2][$col] +]</th>
</tr>
@@ -124,7 +126,9 @@
</tr>
</table>
-<table>
+#]
+
+<table border="4">
<tr>
<td>
<table>
@@ -137,7 +141,7 @@
</tr>
</table>
-<table border="3" width="100%">
+<table border="5" width="100%">
<tr>
<td>[+ $b[2][$col] +]</td>
</tr>
@@ -146,7 +150,7 @@
</tr>
</table>
-<table border="4" width="100%">
+<table border="6" width="100%">
<tr>
<td>[+ $a[$row+1][0] +]</td>
</tr>
@@ -155,7 +159,7 @@
</tr>
</table>
-<table>
+<table border="7">
<tr>
<TD BGCOLOR="[+ ($row &
1)?(($col&1)?'#7CFC00':'#A4A4B4'):(($col&1)?'#FFFF00':'#F4A460') +]">[+ $a[$row][$col]
+] </td>
</tr>
@@ -164,7 +168,7 @@
[- $a[0][1] = 'a1/2' ; -]
-<table>
+<table border="8">
<tr>
<TD BGCOLOR="#F4A460">[+ $a[$row*2][$col*2] +] </td>
<TD BGCOLOR="#FFFF00">[+ $a[$row*2][$col*2+1] +] </td>
@@ -190,16 +194,16 @@
-]
- <table border="0" width="100%">
+ <table border="9" width="100%">
<tr>
- <td><table border="0">
+ <td><table border="10">
<tr>
<td valign="top">
<a
href="inhalt.htm?Region=[+$regs[$row]{Id}+]">[+$regs[$row]{Id}+]</a></td>
</tr>
</table>
</td>
- <td><table border="0">
+ <td><table border="11">
<tr>
<td valign="top"><p align="left">
<a
href="inhalt.htm?Kategorie=[+$kats[$row]{Id}+]">[+$kats[$row]{Id}+]</a></p>
@@ -218,9 +222,9 @@
-]
- <table border="0" width="100%">
+ <table border="12" width="100%">
<tr>
- <td><table border="0">
+ <td><table border="13">
<tr>
<td valign="top">
[- $cmp = $regs[$row]{Id} -]
@@ -230,7 +234,7 @@
</tr>
</table>
</td>
- <td><table border="0">
+ <td><table border="14">
<tr>
<td valign="top"><p align="left">
[- $cmp = $kats[$row]{Id} -]
@@ -243,7 +247,7 @@
</td>
</tr>
</table>
-
+[#
<hr><P>$tabmode=3 + 48 ; $maxcol = 4; $maxrow = 4 <P>
[- $tabmode=3 + 48 ; $maxcol = 4; $maxrow = 4 -]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]