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 2002/11/11 07:47:17 UTC

cvs commit: embperl/test/html hidden.htm input.htm

richter     2002/11/10 22:47:17

  Modified:    .        Tag: Embperl2c Changes.pod DOM.xs epcmd2.c epdom.c
               test/cmp2 Tag: Embperl2c hidden.htm input.htm
               test/html Tag: Embperl2c hidden.htm input.htm
  Log:
  fix escaping inside of html attributes
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.129.4.100 +5 -0      embperl/Changes.pod
  
  Index: Changes.pod
  ===================================================================
  RCS file: /home/cvs/embperl/Changes.pod,v
  retrieving revision 1.129.4.99
  retrieving revision 1.129.4.100
  diff -u -r1.129.4.99 -r1.129.4.100
  --- Changes.pod	16 Oct 2002 06:48:00 -0000	1.129.4.99
  +++ Changes.pod	11 Nov 2002 06:47:16 -0000	1.129.4.100
  @@ -36,6 +36,11 @@
        Bug reported by Saadiq Rodgers-King.
      - Added [$last$], [$next$], [$redo$] and documented [* next *] etc.
      - Readdeded missing MailFormTo and added test for it.
  +   - Fixed escaping inside of html attributes of Embperl generated tags like input
  +     and [$ hidden $]. 
  +   - checked and selected attributes are now correctly set when values contains
  +     entities (e.g. <)
  +      
   
   =head1 2.0b8  (BETA)  25. Juni 2002
   
  
  
  
  1.1.2.28  +10 -2     embperl/DOM.xs
  
  Index: DOM.xs
  ===================================================================
  RCS file: /home/cvs/embperl/DOM.xs,v
  retrieving revision 1.1.2.27
  retrieving revision 1.1.2.28
  diff -u -r1.1.2.27 -r1.1.2.28
  --- DOM.xs	21 May 2002 12:09:07 -0000	1.1.2.27
  +++ DOM.xs	11 Nov 2002 06:47:16 -0000	1.1.2.28
  @@ -270,10 +270,14 @@
       char * sA  ;
       tDomTree * pDomTree ;
       tReq * r = CurrReq ;
  +    SV * sEscapedText ;
   CODE:
       sT = SV2String (sText, nText) ;
       sA = SV2String (sAttr, nAttr) ;
   
  +    sEscapedText = Escape (r, sT, nText, r -> Component.nCurrEscMode, NULL, '\0') ;
  +    sT = SV2String (sEscapedText, nText) ;
  +
       pDomTree = DomTree_self (pDomNode -> xDomTree) ;
   
       Element_selfSetAttribut (r -> pApp, pDomTree, Node_self (pDomTree, pDomNode -> xNode), r -> Component.nCurrRepeatLevel, sA, nAttr, sT, nText) ;
  @@ -287,12 +291,16 @@
       SV * sText
   PREINIT:
       tReq * r = CurrReq ;
  +    SV * sEscapedText ;
  +    tDomTree * pDomTree ;
   CODE:
       STRLEN nAttr ;
       STRLEN nText ;
       char * sT = SV2String (sText, nText) ;
       char * sA = SV2String (sAttr, nAttr) ;
  -    tDomTree * pDomTree = DomTree_self (xDomTree) ;
  +    sEscapedText = Escape (r, sT, nText, r -> Component.nCurrEscMode, NULL, '\0') ;
  +    sT = SV2String (sEscapedText, nText) ;
  +    pDomTree = DomTree_self (xDomTree) ;
   
       Element_selfSetAttribut (r -> pApp, pDomTree, Node_self (pDomTree, xNode), r -> Component.nCurrRepeatLevel, sA, nAttr, sT, nText) ;
   
  
  
  
  1.4.2.23  +10 -2     embperl/epcmd2.c
  
  Index: epcmd2.c
  ===================================================================
  RCS file: /home/cvs/embperl/epcmd2.c,v
  retrieving revision 1.4.2.22
  retrieving revision 1.4.2.23
  diff -u -r1.4.2.22 -r1.4.2.23
  --- epcmd2.c	8 Oct 2002 20:11:40 -0000	1.4.2.22
  +++ epcmd2.c	11 Nov 2002 06:47:16 -0000	1.4.2.23
  @@ -108,7 +108,8 @@
   
   	if (SvTYPE (pSV) == SVt_PVHV)
   	    { /* -> Hash -> check if key exists */
  -	    if (hv_exists ((HV *)pSV, (char *)pVal, nValLen))
  +            nValLen = TransHtml (r, (char *)pVal, nValLen) ;
  +            if (hv_exists ((HV *)pSV, (char *)pVal, nValLen))
   		{
   		bEqual = 1 ;
   		hv_store (r -> pThread -> pInputHash, (char *)pName, nNameLen, newSVpv ((nValLen?((char *)pVal):""), nValLen), 0) ;
  @@ -118,6 +119,7 @@
   	    {
   	    STRLEN   dlen ;
   	    char * pData = SvPV (pSV, dlen) ;
  +            nValLen = TransHtml (r, (char *)pVal, nValLen) ;
   	    if ((int)dlen == nValLen && strncmp (pVal, pData, dlen) == 0)
   		{
   		bEqual = 1 ;
  @@ -318,6 +320,7 @@
                       {
                       char * s ;
   		    STRLEN     l ;
  +                    SV * sEscapedText ;
   		    tNode xInputNode = Node_appendChild (r -> pApp, pDomTree, pNewNode -> xNdx, nRepeatLevel, ntypTag, 0, "input", 5, 0, 0, NULL) ;
                       tNode xAttr      = Node_appendChild (r -> pApp, pDomTree, xInputNode, nRepeatLevel, ntypAttr, 0, "type", 4, 0, 0, NULL) ;
                                          Node_appendChild (r -> pApp, pDomTree, xAttr, nRepeatLevel, ntypAttrValue, 0, "hidden", 6, 0, 0, NULL) ;
  @@ -327,6 +330,8 @@
                             xAttr      = Node_appendChild (r -> pApp, pDomTree, xInputNode, nRepeatLevel, ntypAttr, 0, "value", 5, 0, 0, NULL) ;
   
   		    s = SvPV (*ppsv, l) ;			  
  +                    sEscapedText = Escape (r, s, l, r -> Component.nCurrEscMode, NULL, '\0') ;
  +                    s = SV2String (sEscapedText, l) ;
   			  
   			  Node_appendChild (r -> pApp, pDomTree, xAttr, nRepeatLevel, ntypAttrValue, 0, s, l, 0, 0, NULL) ;
                       }
  @@ -350,6 +355,7 @@
                       {
                       char * s ;
   		    STRLEN     l ;
  +                    SV * sEscapedText ;
   		    tNode xInputNode = Node_appendChild (r -> pApp, pDomTree, pNewNode -> xNdx, nRepeatLevel, ntypTag, 0, "input", 5, 0, 0, NULL) ;
                       tNode xAttr      = Node_appendChild (r -> pApp, pDomTree, xInputNode, nRepeatLevel, ntypAttr, 0, "type", 4, 0, 0, NULL) ;
                                          Node_appendChild (r -> pApp, pDomTree, xAttr, nRepeatLevel, ntypAttrValue, 0, "hidden", 6, 0, 0, NULL) ;
  @@ -359,6 +365,8 @@
                             xAttr      = Node_appendChild (r -> pApp, pDomTree, xInputNode, nRepeatLevel, ntypAttr, 0, "value", 5, 0, 0, NULL) ;
   
   		    s = SvPV (psv, l) ;			  
  +                    sEscapedText = Escape (r, s, l, r -> Component.nCurrEscMode, NULL, '\0') ;
  +                    s = SV2String (sEscapedText, l) ;
   			  
   			  Node_appendChild (r -> pApp, pDomTree, xAttr, nRepeatLevel, ntypAttrValue, 0, s, l, 0, 0, NULL) ;
                       }
  
  
  
  1.4.2.97  +3 -2      embperl/epdom.c
  
  Index: epdom.c
  ===================================================================
  RCS file: /home/cvs/embperl/epdom.c,v
  retrieving revision 1.4.2.96
  retrieving revision 1.4.2.97
  diff -u -r1.4.2.96 -r1.4.2.97
  --- epdom.c	27 Jun 2002 06:30:02 -0000	1.4.2.96
  +++ epdom.c	11 Nov 2002 06:47:16 -0000	1.4.2.97
  @@ -3414,7 +3414,8 @@
   				    Ndx2StringLen (pAttr -> xValue, s, l) ;
   				    while (isspace (*s) && l > 0)
   				        s++, l-- ;
  -				    owrite (r, s, l) ;
  +                                    /*OutputEscape (r, s, l, (pAttr -> bFlags & aflgEscXML)?Char2XML:(pAttr -> bFlags & aflgEscUrl)?Char2Url:Char2Html, (char)((pAttr -> bFlags & aflgEscChar)?'\\':0)) ;*/
  +                                    owrite (r, s, l) ;
   				    nLastLen += l ;
   				    }
   			        if (pAttr -> xName != xNoName)
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.3   +18 -18    embperl/test/cmp2/hidden.htm
  
  Index: hidden.htm
  ===================================================================
  RCS file: /home/cvs/embperl/test/cmp2/hidden.htm,v
  retrieving revision 1.1.2.2
  retrieving revision 1.1.2.3
  diff -u -r1.1.2.2 -r1.1.2.3
  --- hidden.htm	4 May 2001 06:08:18 -0000	1.1.2.2
  +++ hidden.htm	11 Nov 2002 06:47:17 -0000	1.1.2.3
  @@ -9,43 +9,43 @@
       <p>&nbsp;</p>
   
   	a1<input type="hidden" name="feld1" value="Wert1"><input type="hidden" name="feld2" value="Wert2"><input type="hidden" name="feld3" value="Wert3"><input type="hidden" name="feld4" value="Wert4">
  -	a2<input type="hidden" name="feld1" value="Pfalz"><input type="hidden" name="feld2" value="Rheinhessen">
  -	a3<input type="hidden" name="feld2" value="Rheinhessen">
  -	a4<input type="hidden" name="feld2" value="Rheinhessen">
  -	a5<input type="hidden" name="feld1" value="Pfalz"><input type="hidden" name="feld2" value="Rheinhessen">
  -	a6<input type="hidden" name="feld2" value="Rheinhessen">
  -	a7<input type="hidden" name="feld2" value="Rheinhessen">
  +	a2<input type="hidden" name="feld1" value="Pfalz"><input type="hidden" name="feld2" value="Rhein&quot;hessen&quot;&amp;Pfalz">
  +	a3<input type="hidden" name="feld2" value="Rhein&quot;hessen&quot;&amp;Pfalz">
  +	a4<input type="hidden" name="feld2" value="Rhein&quot;hessen&quot;&amp;Pfalz">
  +	a5<input type="hidden" name="feld1" value="Pfalz"><input type="hidden" name="feld2" value="Rhein&quot;hessen&quot;&amp;Pfalz">
  +	a6<input type="hidden" name="feld2" value="Rhein&quot;hessen&quot;&amp;Pfalz">
  +	a7<input type="hidden" name="feld2" value="Rhein&quot;hessen&quot;&amp;Pfalz">
   	a8<input type="hidden" name="feld4" value="Wert4"><input type="hidden" name="feld3" value="Wert3"><input type="hidden" name="feld2" value="Wert2"><input type="hidden" name="feld1" value="Wert1">
       
   	<input type="text" name="feld1" value="Wert1">
   
   	b1<input type="hidden" name="feld2" value="Wert2"><input type="hidden" name="feld3" value="Wert3"><input type="hidden" name="feld4" value="Wert4">
  -	b2<input type="hidden" name="feld2" value="Rheinhessen">
  -	b3<input type="hidden" name="feld2" value="Rheinhessen">
  -	b4<input type="hidden" name="feld2" value="Rheinhessen">
  -	b5<input type="hidden" name="feld2" value="Rheinhessen">
  -	b6<input type="hidden" name="feld2" value="Rheinhessen">
  +	b2<input type="hidden" name="feld2" value="Rhein&quot;hessen&quot;&amp;Pfalz">
  +	b3<input type="hidden" name="feld2" value="Rhein&quot;hessen&quot;&amp;Pfalz">
  +	b4<input type="hidden" name="feld2" value="Rhein&quot;hessen&quot;&amp;Pfalz">
  +	b5<input type="hidden" name="feld2" value="Rhein&quot;hessen&quot;&amp;Pfalz">
  +	b6<input type="hidden" name="feld2" value="Rhein&quot;hessen&quot;&amp;Pfalz">
   	
   
       <input type="text" name="feld2" value="Wert2">
       
   	c1<input type="hidden" name="feld3" value="Wert3"><input type="hidden" name="feld4" value="Wert4">
   	c2
  -	c3<input type="hidden" name="feld2" value="Rheinhessen">
  -	c4<input type="hidden" name="feld2" value="Rheinhessen">
  +	c3<input type="hidden" name="feld2" value="Rhein&quot;hessen&quot;&amp;Pfalz">
  +	c4<input type="hidden" name="feld2" value="Rhein&quot;hessen&quot;&amp;Pfalz">
   	c5
  -	c6<input type="hidden" name="feld2" value="Rheinhessen">
  +	c6<input type="hidden" name="feld2" value="Rhein&quot;hessen&quot;&amp;Pfalz">
   
   	<input type="text" name="feld3" value="Wert3">
       <input type="text" name="feld4" value="Wert4">
       
   	d1
   	d2
  -	d3<input type="hidden" name="feld2" value="Rheinhessen">
  -	d4<input type="hidden" name="feld2" value="Rheinhessen">
  +	d3<input type="hidden" name="feld2" value="Rhein&quot;hessen&quot;&amp;Pfalz">
  +	d4<input type="hidden" name="feld2" value="Rhein&quot;hessen&quot;&amp;Pfalz">
   	d5
  -	d6<input type="hidden" name="feld2" value="Rheinhessen">
  -	d7<input type="hidden" name="feld2" value="Rheinhessen">
  +	d6<input type="hidden" name="feld2" value="Rhein&quot;hessen&quot;&amp;Pfalz">
  +	d7<input type="hidden" name="feld2" value="Rhein&quot;hessen&quot;&amp;Pfalz">
   
   
   	e1<input type="hidden" name="empty1" value=""><input type="hidden" name="empty2" value="">
  
  
  
  1.1.2.12  +71 -5     embperl/test/cmp2/input.htm
  
  Index: input.htm
  ===================================================================
  RCS file: /home/cvs/embperl/test/cmp2/input.htm,v
  retrieving revision 1.1.2.11
  retrieving revision 1.1.2.12
  diff -u -r1.1.2.11 -r1.1.2.12
  --- input.htm	16 Oct 2002 06:48:02 -0000	1.1.2.11
  +++ input.htm	11 Nov 2002 06:47:17 -0000	1.1.2.12
  @@ -15,8 +15,10 @@
       <input name="feld5" value="Wert5">
       <input name="feld1" value="Wert1">
       <input name="feld5" value="Wert15">
  -    <input name="feld5a">
  -    <input name="feld5b">
  +    <input name="feld5a" value="a&quot;b">
  +    <input name="feld5b" value="a'b&amp;c">
  +    <input name="feld5a" value="Wert4'y'r">
  +    <input name="feld5b" value="&quot;Wert5&quot;">
       <input name="feld1" value="">
       <input name="feld5" value="">
       <input type="text">
  @@ -56,7 +58,7 @@
   
   
       <input type="checkbox" name="dec" checked value="a & b">
  -    <input type="checkbox" name="dec" value="a &amp; b">
  +    <input type="checkbox" name="dec" checked value="a &amp; b">
   
   
       <textarea name="feld1"></textarea>
  @@ -149,6 +151,30 @@
   		<option>Wert5\#\\'#''
   	</select>
   
  +	<select name="feld5b">
  +		<option value="1">1</option>
  +		<option value="2">2</option>
  +		<option value="&quot;Wert5&quot;" selected>3</option>
  +	</select>
  +
  +	<select name="feld5b">
  +		<option>Wert3'x</option>
  +		<option>Wert4'y'r</option>
  +		<option selected>&quot;Wert5&quot;</option>
  +		<option>Wert3'x</option>
  +		<option selected>"Wert5"</option>
  +		<option>Wert3'x</option>
  +	</select>
  +
  +	<select name="feld5b">
  +		<option>Wert3'x
  +		<option>Wert4'y'r
  +		<option>&quot;Wert5&quot;
  +		<option>Wert3'x
  +		<option>"Wert5"
  +		<option>Wert3'x
  +	</select>
  +
   	<select name="mult" multiple>
   		<option value="Wert1">Wert1</option>
   		<option value="Wert2">Wert2</option>
  @@ -171,8 +197,32 @@
   		<option value="Wert8">Wert8</option>
   	</select>
   
  +	<select name="escmult" multiple>
  +		<option value="Wert1">Wert1</option>
  +		<option value="Wert2">Wert2</option>
  +		<option value="Wert3" selected>Wert3</option>
  +		<option value="Wert4">Wert4</option>
  +		<option value="Wert5">Wert5</option>
  +		<option value="Wert6">Wert6</option>
  +		<option value="Wert7">Wert7</option>
  +		<option value="Wert8">Wert8</option>
  +		<option value="a&gt;b" selected>a>b</option>
  +	</select>
  +
  +	<select name="escmult" multiple>
  +		<option value="Wert1">Wert1</option>
  +		<option value="Wert2">Wert2</option>
  +		<option value="Wert3" selected>Wert3</option>
  +		<option value="Wert4">Wert4</option>
  +		<option value="Wert5">Wert5</option>
  +		<option value="Wert6">Wert6</option>
  +		<option value="Wert7">Wert7</option>
  +		<option value="Wert8">Wert8</option>
  +		<option value="a&gt;b" selected>a>b</option>
  +	</select>
  +
   	
  -	ks = cb1 cb2 cb5 cb6 cb7 cb8 dec feld1 feld2 feld3 feld4 feld5 feld5a feld6 feld7 feld8 mult neu1 neu2 neu3 undef<p>
  +	ks = cb1 cb2 cb5 cb6 cb7 cb8 dec escmult feld1 feld2 feld3 feld4 feld5 feld5a feld5b feld6 feld7 feld8 mult neu1 neu2 neu3 undef<p>
   
   	<table border=9>
   		<tr>
  @@ -204,6 +254,10 @@
   		</tr>
   	
   		<tr>
  +			<td>escmult</td><td>a&gt;b</td>
  +		</tr>
  +	
  +		<tr>
   			<td>feld1</td><td>text1</td>
   		</tr>
   	
  @@ -228,6 +282,10 @@
   		</tr>
   	
   		<tr>
  +			<td>feld5b</td><td>&quot;Wert5&quot;</td>
  +		</tr>
  +	
  +		<tr>
   			<td>feld6</td><td>Wert6</td>
   		</tr>
   	
  @@ -475,7 +533,7 @@
   		<input type="text" name="feld1" value="">
   		<input type="text" name="feld1" value="">
           </p>
  -	ks = cb1 cb2 cb5 cb6 cb7 cb8 dec feld1 feld2 feld3 feld4 feld5 feld5a feld6 feld7 feld8 mult neu1 neu2 neu3 ta undef<p>
  +	ks = cb1 cb2 cb5 cb6 cb7 cb8 dec escmult feld1 feld2 feld3 feld4 feld5 feld5a feld5b feld6 feld7 feld8 mult neu1 neu2 neu3 ta undef<p>
   
   	<table border=10>
   		<tr>
  @@ -507,6 +565,10 @@
   		</tr>
   	
   		<tr>
  +			<td>escmult</td><td>a&gt;b</td>
  +		</tr>
  +	
  +		<tr>
   			<td>feld1</td><td></td>
   		</tr>
   	
  @@ -528,6 +590,10 @@
   	
   		<tr>
   			<td>feld5a</td><td>Wert4'y'r</td>
  +		</tr>
  +	
  +		<tr>
  +			<td>feld5b</td><td>&quot;Wert5&quot;</td>
   		</tr>
   	
   		<tr>
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.3.6.2   +1 -1      embperl/test/html/hidden.htm
  
  Index: hidden.htm
  ===================================================================
  RCS file: /home/cvs/embperl/test/html/hidden.htm,v
  retrieving revision 1.3.6.1
  retrieving revision 1.3.6.2
  diff -u -r1.3.6.1 -r1.3.6.2
  --- hidden.htm	4 May 2001 06:08:19 -0000	1.3.6.1
  +++ hidden.htm	11 Nov 2002 06:47:17 -0000	1.3.6.2
  @@ -7,7 +7,7 @@
   
   [-
   $regs{feld1} = 'Pfalz' ;
  -$regs{feld2} = 'Rheinhessen' ;
  +$regs{feld2} = 'Rhein"hessen"&Pfalz' ;
   
   $kats{feld1} = 'Kultur' ;
   
  
  
  
  1.10.4.14 +49 -0     embperl/test/html/input.htm
  
  Index: input.htm
  ===================================================================
  RCS file: /home/cvs/embperl/test/html/input.htm,v
  retrieving revision 1.10.4.13
  retrieving revision 1.10.4.14
  diff -u -r1.10.4.13 -r1.10.4.14
  --- input.htm	16 Oct 2002 06:48:02 -0000	1.10.4.13
  +++ input.htm	11 Nov 2002 06:47:17 -0000	1.10.4.14
  @@ -157,6 +157,30 @@
   		<option>Wert5\#\\'#''
   	</select>
   
  +	<select name="feld5b">
  +		<option value="1">1</option>
  +		<option value="2">2</option>
  +		<option value="&quot;Wert5&quot;">3</option>
  +	</select>
  +
  +	<select name="feld5b">
  +		<option>Wert3'x</option>
  +		<option>Wert4'y'r</option>
  +		<option>&quot;Wert5&quot;</option>
  +		<option>Wert3'x</option>
  +		<option>"Wert5"</option>
  +		<option>Wert3'x</option>
  +	</select>
  +
  +	<select name="feld5b">
  +		<option>Wert3'x
  +		<option>Wert4'y'r
  +		<option>&quot;Wert5&quot;
  +		<option>Wert3'x
  +		<option>"Wert5"
  +		<option>Wert3'x
  +	</select>
  +
   	<select name="mult" multiple>
   		<option value="Wert1">Wert1</option>
   		<option value="Wert2">Wert2</option>
  @@ -179,6 +203,31 @@
   		<option value="Wert8" selected>Wert8</option>
   	</select>
   
  +	<select name="escmult" multiple>
  +		<option value="Wert1">Wert1</option>
  +		<option value="Wert2">Wert2</option>
  +		<option value="Wert3">Wert3</option>
  +		<option value="Wert4">Wert4</option>
  +		<option value="Wert5">Wert5</option>
  +		<option value="Wert6">Wert6</option>
  +		<option value="Wert7">Wert7</option>
  +		<option value="Wert8">Wert8</option>
  +		<option value="a&gt;b">a>b</option>
  +	</select>
  +
  +	<select name="escmult" multiple>
  +		<option value="Wert1" selected>Wert1</option>
  +		<option value="Wert2" selected>Wert2</option>
  +		<option value="Wert3" selected>Wert3</option>
  +		<option value="Wert4" selected>Wert4</option>
  +		<option value="Wert5" selected>Wert5</option>
  +		<option value="Wert6" selected>Wert6</option>
  +		<option value="Wert7" selected>Wert7</option>
  +		<option value="Wert8" selected>Wert8</option>
  +		<option value="a&gt;b" selected>a>b</option>
  +	</select>
  +
  +	
   	
   	ks = [+ do { @ks = sort keys %idat ; "@ks" } +]<p>
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: embperl-cvs-unsubscribe@perl.apache.org
For additional commands, e-mail: embperl-cvs-help@perl.apache.org