richter 00/10/25 23:36:00
Modified: . Tag: Embperl2c Changes.pod epcomp.c epdom.c
Log:
- Embperl 2 - sub inside same page works
Revision Changes Path
No revision
No revision
1.129.4.2 +38 -1 embperl/Changes.pod
Index: Changes.pod
===================================================================
RCS file: /home/cvs/embperl/Changes.pod,v
retrieving revision 1.129.4.1
retrieving revision 1.129.4.2
diff -u -r1.129.4.1 -r1.129.4.2
--- Changes.pod 2000/10/17 12:55:42 1.129.4.1
+++ Changes.pod 2000/10/26 06:35:57 1.129.4.2
@@ -1,10 +1,47 @@
=pod
-=head1 1.3b6_dev -- That's what currently under developement
+=head1 2.0b1_dev -- That's what currently under developement
Last Update: <$localtime$> (MET)
NOTE: This version is only available via L<"CVS"|CVS/"INTRO">
+You need to use the CVS tag "Embperl2c" to check it out.
+
+
+ - Output is 8Bit clean. Now you can output strings that contains
+ binary zeros from Embperl.
+ - Syntax of Embperl is now defined in module HTML::Embperl::Syntax
+ - Processing of Embperl is now divided in smaller steps:
+ 1 reading the source
+ 2 parseing
+ 3 compiling
+ 4 executing
+ 5 outputing
+ Since steps 1-3 has only to take place for the first time a file
+ is processed, Embperl is about 25-50% faster the Embperl 1.x.
+ (Embperl 1.x has also precompiled the Perl code, but Embperl
+ goes much further and stores also a precompiled structure of
+ the document)
+ This modularisation will also allow to replace single steps
+ with other modules and to cascade multiple processors, that
+ work on one document.
+ - The following options can currently only set from the httpd.conf:
+ optRawInput, optKeepSpaces
+ - The following options are currently not supported:
+ optDisableHtmlScan, optDisableTableScan,
+ optDisableInputScan, optDisableMetaScan
+ - Nesting must be properly. I.e. you cannot put a <table> tag (for an
+ dynamic table) inside an if and the </table> inside another if.
+ (That still works for static tables)
+ - optUndefToEmptyValue is always set and cannot be disabled.
+ - [$ foreach $x (@x) $] requires now the bracket around the
+ array (like Perl)
+ - [* *] blocks works now as expected.
+ - option tag can take value optional from html text, so
+ <option value="foo"> and <option>foo</option> are the same
+
+
+=head1 1.3b6 (BETA) 18. Oct 2000
- Embperl now runs on ActiveState Perl. (At least in offline mode,
mod_perl mode seems to still have some problems). With a lot of help
1.4.2.11 +21 -19 embperl/Attic/epcomp.c
Index: epcomp.c
===================================================================
RCS file: /home/cvs/embperl/Attic/epcomp.c,v
retrieving revision 1.4.2.10
retrieving revision 1.4.2.11
diff -u -r1.4.2.10 -r1.4.2.11
--- epcomp.c 2000/10/25 14:27:09 1.4.2.10
+++ epcomp.c 2000/10/26 06:35:58 1.4.2.11
@@ -928,7 +928,8 @@
char buf [80] ;
pNode -> bFlags |= nflgCheckpoint ;
- l = sprintf (buf, " _ep_cp($_ep_DomTree,%d) ;\n", *bCheckpointPending<0?pNode
-> xNdx:*bCheckpointPending) ;
+ //l = sprintf (buf, " _ep_cp($_ep_DomTree,%d) ;\n",
*bCheckpointPending<0?pNode -> xNdx:*bCheckpointPending) ;
+ l = sprintf (buf, " _ep_cp($_ep_DomTree,%d) ;\n", pNode -> xNdx) ;
nCheckpointCodeOffset = StringAdd (pProg, buf, l) ;
*bCheckpointPending = 0 ;
@@ -1100,24 +1101,6 @@
lprintf (pCurrReq, "[%d]EPCOMP: #%d L%d -------> parent=%d node=%d type=%d
text=%s\n", pCurrReq -> nPid, pNode -> xNdx, pNode -> nLinenumber, 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 ||
- (pCmd && pCmd -> nSwitchCodeType == 2 && pProg != &pProgDef)) &&
- 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) ;
- nCheckpointCodeOffset = StringAdd (pProg, buf, l) ;
- *bCheckpointPending = 0 ;
-
- if (pCurrReq -> bDebug & dbgParse)
- lprintf (pCurrReq, "[%d]EPCOMP: #%d L%d Checkpoint\n", pCurrReq -> nPid,
pNode -> xNdx, pNode -> nLinenumber) ;
-
- }
-
pCmd = NULL ;
nNdx = Node_selfNodeNameNdx (pNode) ;
@@ -1131,6 +1114,25 @@
else
pCmd = pCmdHead = NULL ;
+
+// if (*bCheckpointPending && (pNode -> nType == ntypText || pNode -> nType ==
ntypCDATA) && pNode -> bFlags && (pNode -> bFlags & nflgIgnore) == 0)
+// if (*bCheckpointPending && pNode -> bFlags && (pNode -> bFlags &
nflgIgnore) == 0)
+ if (*bCheckpointPending && !(pCmd && pCmd -> nSwitchCodeType == 2) &&
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) ;
+ l = sprintf (buf, " _ep_cp($_ep_DomTree,%d) ;\n", pNode -> xNdx) ;
+ nCheckpointCodeOffset = StringAdd (pProg, buf, l) ;
+ *bCheckpointPending = 0 ;
+
+ if (pCurrReq -> bDebug & dbgParse)
+ lprintf (pCurrReq, "[%d]EPCOMP: #%d L%d Checkpoint\n", pCurrReq -> nPid,
pNode -> xNdx, pNode -> nLinenumber) ;
+
+ }
+
if (pCmd && pCmd -> nSwitchCodeType == 2)
{
pProg = &pProgDef ;
1.4.2.4 +2 -2 embperl/Attic/epdom.c
Index: epdom.c
===================================================================
RCS file: /home/cvs/embperl/Attic/epdom.c,v
retrieving revision 1.4.2.3
retrieving revision 1.4.2.4
diff -u -r1.4.2.3 -r1.4.2.4
--- epdom.c 2000/09/26 19:31:59 1.4.2.3
+++ epdom.c 2000/10/26 06:35:58 1.4.2.4
@@ -2008,7 +2008,7 @@
tNodeData * pParent ;
if (pCurrReq -> bDebug & dbgParse)
- lprintf (r, "[%d]toString: Skip Node=%d to Node=%d\n", r -> nPid,
pNode -> xNdx, xNextNode) ;
+ lprintf (r, "[%d]toString: ** Skip Node=%d to Node=%d (OrderIndex
%d)\n", r -> nPid, pNode -> xNdx, xNextNode, nOrderNdx) ;
if (xNextNode == -1)
return NULL ; /* end of flow */
@@ -2055,7 +2055,7 @@
if ((xNextNode = pOrder[i].xToNode) != pNode -> xNdx && xNextNode)
{
if (pCurrReq -> bDebug & dbgParse)
- lprintf (r, "[%d]toString: Replace Node=%d with Node=%d\n", r
-> nPid, pNode -> xNdx, xNextNode) ;
+ lprintf (r, "[%d]toString: ** Replace Node=%d with Node=%d
(OrderIndex %d, initial %d)\n", r -> nPid, pNode -> xNdx, xNextNode, i, nOrderNdx) ;
pSavedNode = pNode ;
pNode = Node_self (pDomTree, xNextNode) ;
pSavedNodeFrom = pNode ;
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]