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/04/27 08:33:29 UTC
cvs commit: embperl/test/html inputjava.htm
richter 01/04/26 23:33:28
Modified: . Tag: Embperl2c Changes.pod epparse.c test.pl
Embperl/Syntax Tag: Embperl2c EmbperlBlocks.pm HTML.pm
test/cmp Tag: Embperl2c inputjava.htm
test/cmp2 Tag: Embperl2c if.htm
test/html Tag: Embperl2c inputjava.htm
Log:
- Embperl doesn't search for attributes inside of quotes inside of
html tags anymore. Spotted by Ian Van der Poel.
Revision Changes Path
No revision
No revision
1.129.4.16 +2 -0 embperl/Changes.pod
Index: Changes.pod
===================================================================
RCS file: /home/cvs/embperl/Changes.pod,v
retrieving revision 1.129.4.15
retrieving revision 1.129.4.16
diff -u -r1.129.4.15 -r1.129.4.16
--- Changes.pod 2001/04/27 05:01:13 1.129.4.15
+++ Changes.pod 2001/04/27 06:33:18 1.129.4.16
@@ -16,6 +16,8 @@
- fixed bug in Node_insertAfter which may cause a single Execute
on the second line of a file to loop endless. Spotted by
Janny Cavell.
+ - Embperl doesn't search for attributes inside of quotes inside of
+ html tags anymore. Spotted by Ian Van der Poel.
=head1 2.0b2 (BETA) 29. Mar 2001
1.4.2.18 +28 -10 embperl/Attic/epparse.c
Index: epparse.c
===================================================================
RCS file: /home/cvs/embperl/Attic/epparse.c,v
retrieving revision 1.4.2.17
retrieving revision 1.4.2.18
diff -u -r1.4.2.17 -r1.4.2.18
--- epparse.c 2001/04/26 13:12:51 1.4.2.17
+++ epparse.c 2001/04/27 06:33:18 1.4.2.18
@@ -9,7 +9,7 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
-# $Id: epparse.c,v 1.4.2.17 2001/04/26 13:12:51 richter Exp $
+# $Id: epparse.c,v 1.4.2.18 2001/04/27 06:33:18 richter Exp $
#
###################################################################################*/
@@ -515,14 +515,15 @@
int bUnescape,
const char * pParentNodeName,
tNode xParentNode,
- int level)
+ int level,
+ char * pCDATAStart)
{
unsigned char * pStartChars = pTokenTable -> cStartChars ;
struct tTokenCmp c ;
int nEndText = sEndText?strlen (sEndText):0 ;
char * pCurr = *ppCurr ;
- char * pCurrStart = pCurr ;
+ char * pCurrStart = pCDATAStart?pCDATAStart:pCurr ;
tNode xNewNode ;
int rc ;
tDomTree * pDomTree = DomTree_self (r -> xCurrDomTree) ;
@@ -663,16 +664,24 @@
xParentNode = Node_parentNode (pDomTree, xParentNode) ;
level-- ;
}
- /* add token as node */
- if (!(xNewNode = Node_appendChild (pDomTree, pToken -> nNodeType, (nCDataType == ntypAttrValue && pToken -> nNodeType != ntypAttr)?(pToken -> nForceType?2:1):0, pNodeName, strlen (pNodeName), xParentNode, level, GetLineNoOf (r, pCurrTokenStart))))
+ if (pToken -> nNodeType != ntypCDATA || pToken -> sNodeName)
{
- r -> Buf.pCurrPos = pCurrTokenStart ;
+ /* add token as node if not cdata*/
+ if (!(xNewNode = Node_appendChild (pDomTree, pToken -> nNodeType, (nCDataType == ntypAttrValue && pToken -> nNodeType != ntypAttr)?(pToken -> nForceType?2:1):0, pNodeName, strlen (pNodeName), xParentNode, level, GetLineNoOf (r, pCurrTokenStart))))
+ {
+ r -> Buf.pCurrPos = pCurrTokenStart ;
- return rc ;
+ return rc ;
+ }
}
+ else
+ {
+ xNewNode = xParentNode ;
+ }
+
if (pInside = pToken -> pInside)
{ /* parse for further tokens inside of this token */
- ParseTokens (r, &pCurr, pEnd, pInside, pToken -> sEndText, pToken -> pContains, pToken -> nCDataType == ntypCDATA?ntypAttrValue:pToken -> nCDataType, 0, pToken -> bUnescape, pNodeName, xNewNode, level+1) ;
+ ParseTokens (r, &pCurr, pEnd, pInside, pToken -> sEndText, pToken -> pContains, pToken -> nCDataType == ntypCDATA && !pToken -> sNodeName?ntypAttrValue:pToken -> nCDataType, 0, pToken -> bUnescape, pNodeName, xNewNode, level+1, pToken -> nNodeType == ntypCDATA?pCurrTokenStart:0) ;
}
else
{ /* nothing more inside of this token allowed, so search for the end of the token */
@@ -690,6 +699,12 @@
{
pEndCurr = strstr (pCurr, pToken -> sEndText) ;
nSkip = strlen (pToken -> sEndText) ;
+ if (pToken -> nNodeType == ntypCDATA && pEndCurr && !pToken -> sNodeName)
+ {
+ pEndCurr += nSkip ;
+ nSkip = 0 ;
+ pCurr = pCurrTokenStart ;
+ }
}
if (pEndCurr)
@@ -738,10 +753,13 @@
else if (sEndText == NULL ||
(*pCurr == *sEndText && strncmp (pCurr, sEndText, nEndText) == 0))
{
+ if (pCDATAStart)
+ pCurr += nEndText ;
if ((pCurr - pCurrStart != 0 || nCDataType == ntypAttrValue) && nCDataType)
if (!(xNewNode = Node_appendChild (pDomTree, nCDataType, 0, pCurrStart, pCurr - pCurrStart, xParentNode, level, GetLineNoOf (r, pCurr))))
return 1 ;
- pCurr += nEndText ;
+ if (!pCDATAStart)
+ pCurr += nEndText ;
*ppCurr = pCurr ;
return 0 ;
}
@@ -804,7 +822,7 @@
pTokenTableSave = r -> pTokenTable ;
- if ((rc = ParseTokens (r, &pStart, pEnd, r -> pTokenTable, "", NULL, ntypCDATA, 0, 0, "root", xDocNode, 0)) != ok)
+ if ((rc = ParseTokens (r, &pStart, pEnd, r -> pTokenTable, "", NULL, ntypCDATA, 0, 0, "root", xDocNode, 0, NULL)) != ok)
return rc ;
r -> pTokenTable = pTokenTableSave ;
1.70.4.48 +4 -1 embperl/test.pl
Index: test.pl
===================================================================
RCS file: /home/cvs/embperl/test.pl,v
retrieving revision 1.70.4.47
retrieving revision 1.70.4.48
diff -u -r1.70.4.47 -r1.70.4.48
--- test.pl 2001/04/27 05:01:14 1.70.4.47
+++ test.pl 2001/04/27 06:33:19 1.70.4.48
@@ -11,7 +11,7 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
-# $Id: test.pl,v 1.70.4.47 2001/04/27 05:01:14 richter Exp $
+# $Id: test.pl,v 1.70.4.48 2001/04/27 06:33:19 richter Exp $
#
###################################################################################
@@ -166,6 +166,9 @@
},
'java.htm' => { },
'inputjava.htm' => { },
+ 'inputjs2.htm' => {
+ 'version' => 2,
+ },
'heredoc.htm' => { },
'post.htm' => {
'offline' => 0,
No revision
No revision
1.1.2.16 +17 -1 embperl/Embperl/Syntax/Attic/EmbperlBlocks.pm
Index: EmbperlBlocks.pm
===================================================================
RCS file: /home/cvs/embperl/Embperl/Syntax/Attic/EmbperlBlocks.pm,v
retrieving revision 1.1.2.15
retrieving revision 1.1.2.16
diff -u -r1.1.2.15 -r1.1.2.16
--- EmbperlBlocks.pm 2001/04/26 13:13:05 1.1.2.15
+++ EmbperlBlocks.pm 2001/04/27 06:33:21 1.1.2.16
@@ -10,7 +10,7 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
-# $Id: EmbperlBlocks.pm,v 1.1.2.15 2001/04/26 13:13:05 richter Exp $
+# $Id: EmbperlBlocks.pm,v 1.1.2.16 2001/04/27 06:33:21 richter Exp $
#
###################################################################################
@@ -212,6 +212,22 @@
}
}
}
+ }
+
+ my $quotes = $self -> {"-htmlQuotes"} ;
+ my $blocks = $self -> {"-epbBlocks"} ;
+ while (my ($k2, $v2) = each %$quotes)
+ {
+ if (ref($v2) eq 'HASH')
+ {
+ $v2 -> {inside} ||= {} ;
+ my $inside = $v2 -> {inside} ;
+
+ while (my ($k, $v) = each (%$blocks))
+ {
+ $inside -> {$k} = $v ;
+ }
+ }
}
}
return $tag ;
1.1.2.11 +20 -3 embperl/Embperl/Syntax/Attic/HTML.pm
Index: HTML.pm
===================================================================
RCS file: /home/cvs/embperl/Embperl/Syntax/Attic/HTML.pm,v
retrieving revision 1.1.2.10
retrieving revision 1.1.2.11
diff -u -r1.1.2.10 -r1.1.2.11
--- HTML.pm 2001/03/28 19:15:32 1.1.2.10
+++ HTML.pm 2001/04/27 06:33:22 1.1.2.11
@@ -10,7 +10,7 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
-# $Id: HTML.pm,v 1.1.2.10 2001/03/28 19:15:32 richter Exp $
+# $Id: HTML.pm,v 1.1.2.11 2001/04/27 06:33:22 richter Exp $
#
###################################################################################
@@ -21,7 +21,7 @@
use HTML::Embperl::Syntax (':types') ;
use strict ;
-use vars qw{@ISA %Attr %AssignAttr %AssignAttrLink} ;
+use vars qw{@ISA %Attr %AssignAttr %AssignAttrLink %Quotes} ;
@ISA = qw(HTML::Embperl::Syntax) ;
@@ -50,6 +50,7 @@
{
$self -> {-htmlAssignAttr} = $self -> CloneHash (\%AssignAttr) ;
$self -> {-htmlAssignAttrLink} = $self -> CloneHash (\%AssignAttr) ;
+ $self -> {-htmlQuotes} = $self -> CloneHash (\%Quotes) ;
}
return $self ;
@@ -80,7 +81,7 @@
} ;
$tag -> {'procinfo'} = { $self -> {-procinfotype} => $procinfo } if ($procinfo) ;
- my %inside ;
+ my %inside = %{$self -> {-htmlQuotes}} ;
my $addinside = 0 ;
if ($attrs)
{
@@ -272,6 +273,22 @@
}
) ;
+%Quotes = (
+ 'Quote ""' =>
+ {
+ 'text' => '"',
+ 'end' => '"',
+ 'nodetype' => ntypCDATA,
+ 'cdatatype' => ntypAttrValue,
+ },
+ 'Quote \'\'' =>
+ {
+ 'text' => '\'',
+ 'end' => '\'',
+ 'nodetype' => ntypCDATA,
+ 'cdatatype' => ntypAttrValue,
+ },
+ ) ;
1;
No revision
No revision
1.3.6.3 +7 -0 embperl/test/cmp/inputjava.htm
Index: inputjava.htm
===================================================================
RCS file: /home/cvs/embperl/test/cmp/inputjava.htm,v
retrieving revision 1.3.6.2
retrieving revision 1.3.6.3
diff -u -r1.3.6.2 -r1.3.6.3
--- inputjava.htm 2001/04/27 05:01:16 1.3.6.2
+++ inputjava.htm 2001/04/27 06:33:23 1.3.6.3
@@ -16,7 +16,14 @@
<select bla="xxx" onChange="javascript:this.value=this.value.toUpperCase();" name="xxx"> </select>
<foo bla="xxx" onChange="javascript:this.value=this.value.toUpperCase();" name="xxx">
+ <input type="text" name="titleref" value="" SIZE="20"
+ MAXSIZE="20" onChange="javascript:this.value=this.value.toUpperCase();">
+^ <input type=("text"|'text') name="titleref" value="" SIZE='20'
+ MAXSIZE="20" onChange='javascript:this.value=this.value.toUpperCase();'>
+
+^ <input type=("text"|'text') name="titleref" value="" SIZE='20'
+ MAXSIZE="20" onChange='javascript:this.value=this.value.toUpperCase(1);'>
</body>
</html>
No revision
No revision
1.1.2.2 +7 -18 embperl/test/cmp2/Attic/if.htm
Index: if.htm
===================================================================
RCS file: /home/cvs/embperl/test/cmp2/Attic/if.htm,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -r1.1.2.1 -r1.1.2.2
--- if.htm 2000/09/14 05:10:43 1.1.2.1
+++ if.htm 2001/04/27 06:33:25 1.1.2.2
@@ -57,9 +57,7 @@
<TD ALIGN="LEFT">
<a href="/">
<img src="/icons/iiilogo_narrow.gif"
- WIDTH="" HEIGHT="" BORDER="0"
- ALT="iii logo"
- qqq >
+ WIDTH="" HEIGHT="" BORDER="0" ALT="iii logo" qqq >
</TD>
</tr>
@@ -70,27 +68,18 @@
<TD ALIGN="LEFT">
<a href="/">
<img src="/i/www.iii.co.uk/iiilogo_narrow.gif"
- WIDTH="1" HEIGHT="2" BORDER="0"
- ALT="iii logo"
- onload="window.open('/iit/leavingiit.epl','dis','status=no,scrollbars=no,resizable=yes,width=370,height=320,screenX=100,screenY=100,top=100,left=100'); return false"
- >
+ WIDTH="1" HEIGHT="2" BORDER="0" ALT="iii logo" onload="window.open('/iit/leavingiit.epl','dis','status=no,scrollbars=no,resizable=yes,width=370,height=320,screenX=100,screenY=100,top=100,left=100'); return false" >
</TD>
</tr>
</table>
-<img src="/icons/iiilogo_narrow_else.gif" WIDTH="5" HEIGHT="10" BORDER="0"
- ALT="iii logo"
- >
-
-<img src="/i/www.iii/iit.gif" WIDTH="6" HEIGHT="11" BORDER="0"
- ALT="iit logo"
- >
-
-<img src="/i/www.iii/iit.gif" WIDTH="6" HEIGHT="11" BORDER="0"
- ALT="iit logo"
- qqq>
+<img src="/icons/iiilogo_narrow_else.gif" WIDTH="5" HEIGHT="10" BORDER="0" ALT="iii logo" >
+
+<img src="/i/www.iii/iit.gif" WIDTH="6" HEIGHT="11" BORDER="0" ALT="iit logo" >
+
+<img src="/i/www.iii/iit.gif" WIDTH="6" HEIGHT="11" BORDER="0" ALT="iit logo" qqq>
No revision
No revision
1.1.2.1.6.2 +7 -0 embperl/test/html/inputjava.htm
Index: inputjava.htm
===================================================================
RCS file: /home/cvs/embperl/test/html/inputjava.htm,v
retrieving revision 1.1.2.1.6.1
retrieving revision 1.1.2.1.6.2
diff -u -r1.1.2.1.6.1 -r1.1.2.1.6.2
--- inputjava.htm 2001/04/27 05:01:17 1.1.2.1.6.1
+++ inputjava.htm 2001/04/27 06:33:27 1.1.2.1.6.2
@@ -28,7 +28,14 @@
<select bla="xxx" onChange="javascript:this.value=this.value.toUpperCase();" name="xxx"> </select>
<foo bla="xxx" onChange="javascript:this.value=this.value.toUpperCase();" name="xxx">
+ <INPUT TYPE="text" NAME="titleref" VALUE="" SIZE="20"
+ MAXSIZE="20" onChange="javascript:this.value=this.value.toUpperCase();">
+ <INPUT TYPE='text' NAME="titleref" VALUE="" SIZE='20'
+ MAXSIZE="20" onChange='javascript:this.value=this.value.toUpperCase();'>
+
+ <INPUT TYPE='text' NAME="titleref" VALUE="" SIZE='20'
+ MAXSIZE="20" onChange='javascript:this.value=this.value.toUpperCase([+ '1' +]);'>
</body>
</html>
---------------------------------------------------------------------
To unsubscribe, e-mail: embperl-cvs-unsubscribe@perl.apache.org
For additional commands, e-mail: embperl-cvs-help@perl.apache.org