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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to