richter 00/05/31 23:38:16
Modified: . Tag: Embperl2 Changes.pod Embperl.xs TODO epcomp.c
epdom.c epdom.h test.pl
Embperl Tag: Embperl2 Syntax.pm
test/cmp Tag: Embperl2 input.htm mix.htm object.htm
table.htm
test/html Tag: Embperl2 input.htm object.htm table.htm
Log:
- Embperl 2
Revision Changes Path
No revision
No revision
1.115.2.4 +4 -0 embperl/Changes.pod
Index: Changes.pod
===================================================================
RCS file: /home/cvs/embperl/Changes.pod,v
retrieving revision 1.115.2.3
retrieving revision 1.115.2.4
diff -u -r1.115.2.3 -r1.115.2.4
--- Changes.pod 2000/05/24 08:47:31 1.115.2.3
+++ Changes.pod 2000/06/01 06:38:12 1.115.2.4
@@ -31,6 +31,10 @@
optRawInput, optKeepSpaces, 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)
+
=head1 1.3b4_dev -- That's what currently under developement
1.26.2.13 +15 -0 embperl/Embperl.xs
Index: Embperl.xs
===================================================================
RCS file: /home/cvs/embperl/Embperl.xs,v
retrieving revision 1.26.2.12
retrieving revision 1.26.2.13
diff -u -r1.26.2.12 -r1.26.2.13
--- Embperl.xs 2000/05/31 06:21:49 1.26.2.12
+++ Embperl.xs 2000/06/01 06:38:13 1.26.2.13
@@ -771,3 +771,18 @@
tDomTree * pDomTree = DomTree_self (xDomTree) ;
Element_selfRemoveAttribut (pDomTree, Node_self (pDomTree, xNode), sA, nAttr) ;
+
+
+SV *
+embperl_Attr_value (xDomTree, xAttr)
+ int xDomTree
+ int xAttr
+CODE:
+ tDomTree * pDomTree = DomTree_self (xDomTree) ;
+ char * sAttrText = NULL ;
+
+ Attr_selfValue (pDomTree, Attr_self(pDomTree, xAttr), &sAttrText) ;
+ RETVAL = newSVpvn (sAttrText, ArrayGetSize (sAttrText)) ;
+OUTPUT:
+ RETVAL
+
1.90.2.4 +4 -0 embperl/TODO
Index: TODO
===================================================================
RCS file: /home/cvs/embperl/TODO,v
retrieving revision 1.90.2.3
retrieving revision 1.90.2.4
diff -u -r1.90.2.3 -r1.90.2.4
--- TODO 2000/05/31 20:03:50 1.90.2.3
+++ TODO 2000/06/01 06:38:13 1.90.2.4
@@ -135,3 +135,7 @@
- <th>, $cnt -> table.htm
- $row etc. ende checken
+
+- discard.htm
+
+
1.1.2.21 +21 -2 embperl/Attic/epcomp.c
Index: epcomp.c
===================================================================
RCS file: /home/cvs/embperl/Attic/epcomp.c,v
retrieving revision 1.1.2.20
retrieving revision 1.1.2.21
diff -u -r1.1.2.20 -r1.1.2.21
--- epcomp.c 2000/05/31 20:03:51 1.1.2.20
+++ epcomp.c 2000/06/01 06:38:13 1.1.2.21
@@ -215,7 +215,16 @@
}
if (out)
- StringAdd (ppCode, sText, 0) ;
+ {
+ if (out == 2)
+ {
+ StringAdd (ppCode, "'", 1) ;
+ StringAdd (ppCode, sText, 0) ;
+ StringAdd (ppCode, "'", 1) ;
+ }
+ else
+ StringAdd (ppCode, sText, 0) ;
+ }
}
else
{
@@ -390,14 +399,22 @@
const char * e = eq && eq < q?eq:q;
tAttrData * pChildNode = Element_selfGetAttribut (pDomTree, pNode, p, e - p) ;
const char * sText = NULL ;
+ char buf [128] ;
if (pChildNode)
{
if (pChildNode -> bFlags & aflgAttrChilds)
- sText = Node_selfNodeName (Node_selfFirstChild (pDomTree, (tNodeData
*)pChildNode)) ;
+ {
+ int l = sprintf (buf, "XML::Embperl::DOM::Attr_value ($_ep_DomTree,%d)",
pChildNode -> xNdx) ;
+ sText = buf ;
+ if (out == 2)
+ out = 1 ;
+ }
else
+ {
sText = Ndx2String (pChildNode -> xValue) ;
+ }
}
@@ -451,6 +468,8 @@
if (*p == '-')
out = 0, p++ ;
+ else if (*p == '\'')
+ out = 2, p++ ;
if (type == '#')
1.1.2.25 +72 -6 embperl/Attic/epdom.c
Index: epdom.c
===================================================================
RCS file: /home/cvs/embperl/Attic/epdom.c,v
retrieving revision 1.1.2.24
retrieving revision 1.1.2.25
diff -u -r1.1.2.24 -r1.1.2.25
--- epdom.c 2000/05/31 20:03:52 1.1.2.24
+++ epdom.c 2000/06/01 06:38:13 1.1.2.25
@@ -516,22 +516,31 @@
/* ------------------------------------------------------------------------ */
int DomTree_selfDiscardAfterCheckpoint (/*in*/ tDomTree * pDomTree,
- /*in*/ tNodeData * pNode)
+ /*in*/ tNodeData * pNode,
+ /*in*/ tNodeData * pArgNode)
{
- tNodeData * pArgNode = pNode ;
tNode xNode ;
tNodeData * pChild ;
tNode * pOrder ;
int n ;
int o ;
+
+ if (!pArgNode)
+ {
+ pArgNode = pNode ;
+ pNode = Node_selfFirstChild (pDomTree, pNode) ;
+ if (!pNode)
+ pNode = Node_selfNextSibling (pDomTree, pNode) ;
+ }
+
while (pNode && (pNode -> bFlags & nflgCheckpoint) == 0)
{
pChild = Node_selfFirstChild (pDomTree, pNode) ;
if (pChild)
- if (DomTree_selfDiscardAfterCheckpoint (pDomTree, pChild))
+ if (DomTree_selfDiscardAfterCheckpoint (pDomTree, pChild, pArgNode))
return 1 ;
pNode = Node_selfNextSibling (pDomTree, pNode) ;
@@ -567,7 +576,7 @@
tDomTree * pDomTree = DomTree_self (xDomTree) ;
tNodeData * pNode = Node_self (pDomTree, xNode) ;
- return DomTree_selfDiscardAfterCheckpoint (pDomTree, pNode) ;
+ return DomTree_selfDiscardAfterCheckpoint (pDomTree, pNode, NULL) ;
}
/* ------------------------------------------------------------------------
@@ -1408,12 +1417,12 @@
pNode = pNextNode ;
pNextNode = Node_selfNextSibling (pDomTree, pNextNode) ;
if (pNode -> nType == ntypStartTag && (pNode -> bFlags & nflgIgnore)
== 0 &&
- ((pNextNode -> bFlags & nflgCheckpoint) == 0 || pDomTree ->
pOrder[nOrderNdx] == pNextNode -> xNdx))
+ (pNextNode == NULL || (pNextNode -> bFlags & nflgCheckpoint) == 0
|| pDomTree -> pOrder[nOrderNdx] == pNextNode -> xNdx))
{
oputs (r, "</") ;
oputs (r, Node_selfNodeName (pNode)) ;
oputc (r, '>') ;
- pLastStartTag = Node_selfParentNode (pDomTree, pNextNode) ;
+ pLastStartTag = Node_selfParentNode (pDomTree,
pNextNode?pNextNode:pNode) ;
}
}
}
@@ -1639,6 +1648,63 @@
*/
return pAttr ;
+ }
+
+
+/* ------------------------------------------------------------------------
+
+
+interface Attr : Node {
+ readonly attribute DOMString name;
+ readonly attribute boolean specified;
+ attribute DOMString value;
+ // raises(DOMException) on setting
+
+ // Introduced in DOM Level 2:
+ readonly attribute Element ownerElement;
+};
+
+------------------------------------------------------------------------ */
+
+
+
+/* ------------------------------------------------------------------------ */
+/* */
+/* Attr_selfValue */
+/* */
+/* */
+/* */
+/* ------------------------------------------------------------------------ */
+
+
+
+char * Attr_selfValue (/*in*/ tDomTree * pDomTree,
+ /*in*/ struct tAttrData * pAttr,
+ /*out*/ char * * ppAttr)
+
+ {
+ struct tNodeData * pNode ;
+
+ if (!pAttr)
+ return NULL ;
+
+ if (!(pAttr -> bFlags & aflgAttrChilds))
+ return Ndx2String (pAttr -> xValue) ;
+
+ pNode = NodePad_selfFirstChild (pDomTree, NodePad_self(pDomTree, pAttr ->
xValue)) ;
+
+ StringNew (ppAttr, 512) ;
+
+ while (pNode)
+ {
+ char * s ;
+ int l ;
+ Ndx2StringLen (pNode -> nText,s,l) ;
+ StringAdd (ppAttr, s, l) ;
+ pNode = Node_selfNextSibling (pDomTree, pNode) ;
+ }
+
+ return *ppAttr ;
}
1.1.2.20 +8 -1 embperl/Attic/epdom.h
Index: epdom.h
===================================================================
RCS file: /home/cvs/embperl/Attic/epdom.h,v
retrieving revision 1.1.2.19
retrieving revision 1.1.2.20
diff -u -r1.1.2.19 -r1.1.2.20
--- epdom.h 2000/05/31 06:21:49 1.1.2.19
+++ epdom.h 2000/06/01 06:38:13 1.1.2.20
@@ -199,7 +199,8 @@
void DomTree_checkpoint (tIndex xDomTree, tNode xChild) ;
int DomTree_selfDiscardAfterCheckpoint (/*in*/ tDomTree * pDomTree,
- /*in*/ tNodeData * pNode) ;
+ /*in*/ tNodeData * pNode,
+ /*in*/ tNodeData * pArgNode) ;
int DomTree_discardAfterCheckpoint (/*in*/ tIndex xDomTree,
/*in*/ tNode xNode) ;
@@ -294,3 +295,9 @@
/*in*/ const char * sAttrName,
/*in*/ int nAttrNameLen) ;
+#define Attr_self(pDomTree,xAttr) ((struct tAttrData *)(pDomTree ->
pLookup[xAttr]))
+
+
+char * Attr_selfValue (/*in*/ tDomTree * pDomTree,
+ /*in*/ struct tAttrData * pAttr,
+ /*out*/ char * * ppAttr) ;
1.57.2.14 +4 -4 embperl/test.pl
Index: test.pl
===================================================================
RCS file: /home/cvs/embperl/test.pl,v
retrieving revision 1.57.2.13
retrieving revision 1.57.2.14
diff -u -r1.57.2.13 -r1.57.2.14
--- test.pl 2000/05/29 14:22:11 1.57.2.13
+++ test.pl 2000/06/01 06:38:13 1.57.2.14
@@ -39,11 +39,11 @@
##
'loopperl.htm?erstes=Hallo&zweites=Leer+zeichen&drittes=%21%22%23&erstes=Wert2',
'table.htm',
'table.htm??1',
- 'lists.htm?sel=2&SEL1=B&SEL3=D&SEL4=cc',
+## 'lists.htm?sel=2&SEL1=B&SEL3=D&SEL4=cc',
'mix.htm',
- 'nesting.htm',
- 'object.htm???2',
- 'discard.htm???12',
+## 'nesting.htm',
+ 'object.htm',
+## 'discard.htm???12',
'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',
'hidden.htm?feld1=Wert1&feld2=Wert2&feld3=Wert3&feld4=Wert4',
'java.htm',
No revision
No revision
1.1.2.15 +10 -9 embperl/Embperl/Attic/Syntax.pm
Index: Syntax.pm
===================================================================
RCS file: /home/cvs/embperl/Embperl/Attic/Syntax.pm,v
retrieving revision 1.1.2.14
retrieving revision 1.1.2.15
diff -u -r1.1.2.14 -r1.1.2.15
--- Syntax.pm 2000/05/31 20:03:56 1.1.2.14
+++ Syntax.pm 2000/06/01 06:38:14 1.1.2.15
@@ -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.14 2000/05/31 20:03:56 richter Exp $
+# $Id: Syntax.pm,v 1.1.2.15 2000/06/01 06:38:14 richter Exp $
#
###################################################################################
@@ -273,9 +273,9 @@
embperl => {
perlcode =>
[
- 'if ($fdat{\'%&*name%\'} eq \'%&*value%\') {
XML::Embperl::DOM::Element_setAttribut (%$n%, \'checked\', undef) } else
{XML::Embperl::DOM::Element_removeAttribut (%$n%, \'checked\') };
%&=-type:radio|checkbox% ',
- 'XML::Embperl::DOM::Element_setAttribut (%$n%, \'value\',
$fdat{\'%&*name%\'} || \'\') ; %&!value%',
- '$idat{\'%&*name%\'} = \'%&*value%\' ; ',
+ 'if ($fdat{%&*\'name%} eq %&*\'value%) {
XML::Embperl::DOM::Element_setAttribut (%$n%, \'checked\', undef) } else
{XML::Embperl::DOM::Element_removeAttribut (%$n%, \'checked\') };
%&=-type:radio|checkbox% ',
+ 'XML::Embperl::DOM::Element_setAttribut (%$n%, \'value\',
$fdat{%&*\'name%} || \'\') ; %&!value%',
+ '$idat{%&*\'name%} = %&*\'value% ; ',
]
}
},
@@ -294,8 +294,8 @@
embperl => {
perlcode =>
[
- 'XML::Embperl::DOM::Node_appendChild (%$n%,
HTML::Embperl::Syntax::ntypText, $fdat{\'%&*name%\'}) ; %#!-0%',
- '$idat{\'%&*name%\'} = \'%#*0%\' ; ',
+ 'XML::Embperl::DOM::Node_appendChild (%$n%,
HTML::Embperl::Syntax::ntypText, $fdat{%&*\'name%}) ; %#!-0%',
+ '$idat{%&*\'name%} = \'%#*0%\' ; ',
]
}
},
@@ -448,8 +448,8 @@
embperl => {
perlcode =>
[
- 'if ($fdat{\'%^*htmlselect%\'} eq \'%&*value%\') {
XML::Embperl::DOM::Element_setAttribut (%$n%, \'selected\', undef) } else
{XML::Embperl::DOM::Element_removeAttribut (%$n%, \'selected\') }; %&*-value% ',
- 'if ($fdat{\'%^*htmlselect%\'} eq \'%#*0%\') {
XML::Embperl::DOM::Element_setAttribut (%$n%, \'selected\', undef) } else
{XML::Embperl::DOM::Element_removeAttribut (%$n%, \'selected\') }; %&*-value% ',
+ 'if ($fdat{\'%^*htmlselect%\'} eq %&*\'value%) {
XML::Embperl::DOM::Element_setAttribut (%$n%, \'selected\', undef) } else
{XML::Embperl::DOM::Element_removeAttribut (%$n%, \'selected\') }; %&*-value% ',
+ 'if ($fdat{\'%^*htmlselect%\'} eq %#*\'0%) {
XML::Embperl::DOM::Element_setAttribut (%$n%, \'selected\', undef) } else
{XML::Embperl::DOM::Element_removeAttribut (%$n%, \'selected\') }; %&*-value% ',
]
}
},
@@ -808,7 +808,8 @@
=back
writing a minus sign (-) after * ! = or ~ will cause the child/attribute
-not to be included, but the condition is evaluated.
+not to be included, but the condition is evaluated. Writing an ' will cause
+the value to be quoted.
=item perlcodeend => <string>
No revision
No revision
1.10.2.1 +7 -2 embperl/test/cmp/input.htm
Index: input.htm
===================================================================
RCS file: /home/cvs/embperl/test/cmp/input.htm,v
retrieving revision 1.10
retrieving revision 1.10.2.1
diff -u -r1.10 -r1.10.2.1
--- input.htm 1999/10/05 06:02:11 1.10
+++ input.htm 2000/06/01 06:38:15 1.10.2.1
@@ -1,5 +1,4 @@
<html>
-
<head>
<title>Test for interpretation of input tag</title>
</head>
@@ -7,9 +6,12 @@
<form action="inhalt.htm" method="POST">
<p> </p>
+ <input name="neu1" value="no">
+ <input name="undef" value="">
+
<input>
<input >
- <input name="feld1">
+ <input name="feld1" value="">
<INPUT name="feld5" VALUE="Wert5">
<input name="feld1" value="Wert1">
<input name="feld5" value="Wert15">
@@ -21,6 +23,9 @@
<input typo = "text2" >
<input foo>
<input foo >
+
+ <input name="neu1" value="">
+ <input name="neu2" value=">>">
<input type="text" name="feld1" value="Wert1">
<input type="text" name="feld2">
1.2.2.1 +12 -15 embperl/test/cmp/mix.htm
Index: mix.htm
===================================================================
RCS file: /home/cvs/embperl/test/cmp/mix.htm,v
retrieving revision 1.2
retrieving revision 1.2.2.1
diff -u -r1.2 -r1.2.2.1
--- mix.htm 1999/10/05 06:02:15 1.2
+++ mix.htm 2000/06/01 06:38:15 1.2.2.1
@@ -23,23 +23,21 @@
again global value: $a = global value <BR>
0 = 1 <br>
- 0 <BR>
-
- 1 = 4 <br>
0
- 1 <BR>
-
+ <BR>
+ 1 = 4 <br>
+ 0 1
+ <BR>
2 = 8 <br>
- 0
- 1
- 2 <BR>
-
+ 0 1 2
+ <BR>
3 = 17 <br>
- 0
- 1
- 2
- 3 <BR>
- <table>
+ 0 1 2 3
+ <BR>
+
+
+
+<table>
<tr>
<td>0</td><td>b1/1 </td>
</tr>
@@ -63,4 +61,3 @@
</body>
</html>
-
1.3.2.1 +1 -2 embperl/test/cmp/object.htm
Index: object.htm
===================================================================
RCS file: /home/cvs/embperl/test/cmp/object.htm,v
retrieving revision 1.3
retrieving revision 1.3.2.1
diff -u -r1.3 -r1.3.2.1
--- object.htm 1999/10/05 06:02:17 1.3
+++ object.htm 2000/06/01 06:38:15 1.3.2.1
@@ -7,8 +7,7 @@
<body>
<TABLE BORDER=0 WIDTH=90%>
- <TR><TH COLSPAN=2><H2>Objects</H2></TH></TR>
- <TR>
+ <TR><TH COLSPAN=2><H2>Objects</H2></TH></TR><TR>
<TD>
<A HREF="index.html?id=id+0">name 0</A>
</TD>
1.5.2.2 +10 -1 embperl/test/cmp/table.htm
Index: table.htm
===================================================================
RCS file: /home/cvs/embperl/test/cmp/table.htm,v
retrieving revision 1.5.2.1
retrieving revision 1.5.2.2
diff -u -r1.5.2.1 -r1.5.2.2
--- table.htm 2000/05/31 20:03:58 1.5.2.1
+++ table.htm 2000/06/01 06:38:15 1.5.2.2
@@ -340,7 +340,16 @@
</table>
-
+<table border="8">
+ <tr>
+ <TD BGCOLOR="#F4A460">a1/1 </td>
+ <TD BGCOLOR="#FFFF00">a1/2 </td>
+ </tr>
+ <tr>
+ <TD BGCOLOR="#A4A4B4">a2/1 </td>
+ <TD BGCOLOR="#7CFC00">a2/2 </td>
+ </tr>
+</table>
<table border="9" width="100%">
<tr>
No revision
No revision
1.9.2.6 +5 -12 embperl/test/html/input.htm
Index: input.htm
===================================================================
RCS file: /home/cvs/embperl/test/html/input.htm,v
retrieving revision 1.9.2.5
retrieving revision 1.9.2.6
diff -u -r1.9.2.5 -r1.9.2.6
--- input.htm 2000/05/29 14:23:43 1.9.2.5
+++ input.htm 2000/06/01 06:38:16 1.9.2.6
@@ -1,10 +1,3 @@
- <textarea Name=feld1></textarea>
- <textarea Name=feld5></textarea>
-
- <textarea Name=feld1>text1</textarea>
- <textarea Name=feld5>text5</textarea>
-
-
<html>
<head>
<title>Test for interpretation of input tag</title>
@@ -26,7 +19,7 @@
<p> </p>
<input name=neu1 value="[+ 1 > 2?'yes':'no' +]" >
- <input name=[+ $name || 'undef' +] value="[+ 1 > 2 +]">
+ <input name=[+ $name || 'undef' +] value="[+ 1 > 2?'yes':'no' +]">
<input>
<input >
@@ -43,8 +36,8 @@
<input foo>
<input foo >
- <input name=neu1 value="[+ 1 > 2 +]">
- <input name='neu2' value=">>">
+ <input name=neu2 value="[+ 1 > 2 +]">
+ <input name='neu3' value=">>">
<input type="text" name="feld1" value="Wert1">
<input type="text" name="feld2">
@@ -156,8 +149,8 @@
</tr>
</table>
+[#
-
optDisableInputScan is now: [+ $optDisableInputScan +] <BR>
optDisableInputScan is set now to: [+ $optDisableInputScan = 1 +] <BR>
optDisableInputScan is now: [+ $optDisableInputScan +] <BR>
@@ -375,6 +368,6 @@
<p><input type="submit" name="Search" value="Absenden"></p>
</form>
-
+#]
</body>
</html>
1.4.2.1 +1 -1 embperl/test/html/object.htm
Index: object.htm
===================================================================
RCS file: /home/cvs/embperl/test/html/object.htm,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -u -r1.4 -r1.4.2.1
--- object.htm 1999/10/05 06:03:46 1.4
+++ object.htm 2000/06/01 06:38:16 1.4.2.1
@@ -55,7 +55,7 @@
-]
<TABLE BORDER=0 WIDTH=90%>
- <TR><TH COLSPAN=2><H2>Objects</H2></TH></TR>
+ [$ if $row == 0 $]<TR><TH COLSPAN=2><H2>Objects</H2></TH></TR>[$endif$]
<TR>
[- $o = $obj[$row] -]
<TD>
1.4.2.5 +1 -1 embperl/test/html/table.htm
Index: table.htm
===================================================================
RCS file: /home/cvs/embperl/test/html/table.htm,v
retrieving revision 1.4.2.4
retrieving revision 1.4.2.5
diff -u -r1.4.2.4 -r1.4.2.5
--- table.htm 2000/05/31 20:04:01 1.4.2.4
+++ table.htm 2000/06/01 06:38:16 1.4.2.5
@@ -226,7 +226,7 @@
<tr>
<td valign="top">
[- print LOG "row= $row regs=$regs[0]{Id}\n" ; 1 ; -]
- [- print LOG "1row= $row regs=$regs[0]{Id}\n"
; $c = $regs[0]->{Id} ; print LOG "2row= $row regs=$regs[0]{Id}\n" ; 1 ; -]
+ [- print LOG "1row= $row regs=$regs[0]{Id}\n"
; $cmp = $regs[0]->{Id} ; print LOG "2row= $row regs=$regs[0]{Id}\n" ; 1 ; -]
[- while (($k, $v) = each (%{$regs[0]})) { print LOG "$v=$k;\n"
; } -]
[$if ($cmp || '') ne '' $]
<a href="inhalt.htm?Region=[+print LOG "row= $row
regs=$regs[0]{Id}\n" ; $regs[$row]{Id}+]">[+$regs[$row]{Id}+]</a></td>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]