richter     2004/02/02 11:29:57

  Modified:    .        Changes.pod MANIFEST epdom.c test.pl
  Log:
  fix endless loop with call sub inside table
  
  Revision  Changes    Path
  1.225     +2 -0      embperl/Changes.pod
  
  Index: Changes.pod
  ===================================================================
  RCS file: /home/cvs/embperl/Changes.pod,v
  retrieving revision 1.224
  retrieving revision 1.225
  diff -u -r1.224 -r1.225
  --- Changes.pod       2 Feb 2004 19:06:15 -0000       1.224
  +++ Changes.pod       2 Feb 2004 19:29:57 -0000       1.225
  @@ -4,6 +4,8 @@
   
      - Fix problem with JavaScript code in Form::Validate, when fields names
        are non JavaScript Identifier.
  +   - Fix endless loop with call sub inside table under some circumstances,
  +     reported by Neil Gunton.
   
   =head1 2.0b10 23. Jan 2004
   
  
  
  
  1.88      +2 -0      embperl/MANIFEST
  
  Index: MANIFEST
  ===================================================================
  RCS file: /home/cvs/embperl/MANIFEST,v
  retrieving revision 1.87
  retrieving revision 1.88
  diff -u -r1.87 -r1.88
  --- MANIFEST  23 Jan 2004 07:37:12 -0000      1.87
  +++ MANIFEST  2 Feb 2004 19:29:57 -0000       1.88
  @@ -205,6 +205,7 @@
   test/cmp/binary.htm
   test/cmp/callsub.htm
   test/cmp/sub2.htm
  +test/cmp/subouttab.htm
   test/cmp/changeattr.htm
   test/cmp/chdir.htm
   test/cmp/clearsess.htm
  @@ -409,6 +410,7 @@
   test/html/binary.htm
   test/html/callsub.htm
   test/html/sub2.htm
  +test/html/subouttab.htm
   test/html/changeattr.htm
   test/html/chdir.htm
   test/html/clearsess.htm
  
  
  
  1.15      +17 -4     embperl/epdom.c
  
  Index: epdom.c
  ===================================================================
  RCS file: /home/cvs/embperl/epdom.c,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- epdom.c   23 Jan 2004 06:50:55 -0000      1.14
  +++ epdom.c   2 Feb 2004 19:29:57 -0000       1.15
  @@ -2848,13 +2848,26 @@
       if (pNxtNode)
           pNxtNode  = Node_selfCondCloneNode (a, pRefNodeDomTree, pNxtNode, 
nRefRepeatLevel) ; 
       else
  -        pNxtNode = Node_selfLevel (a, pRefNodeDomTree, pRefNode -> xNext, 
nRefRepeatLevel) ; /* first one */
  +        {
  +        tNodeData * pParent  ;
  +
  +        if ((pParent = Node_selfLevel (a, pRefNodeDomTree, pRefNode -> xParent, 
nRefRepeatLevel)) == NULL ||
  +            pParent -> xChilds != pRefNode -> xNext)
  +            pNxtNode = Node_selfLevel (a, pRefNodeDomTree, pRefNode -> xNext, 
nRefRepeatLevel) ; /* first one */
  +        else
  +            pNxtNode = NULL ;
  +        }
   
       xOrgNode = pNewNode -> xNdx ;
  -    pNxtNode -> xPrev = pNewNode -> xNdx ;
  +    if (pNxtNode)
  +        {
  +        pNxtNode -> xPrev = pNewNode -> xNdx ;
  +        pNewNode -> xNext = pNxtNode -> xNdx ;
  +        }
  +    else
  +        pNewNode -> xNext = pRefNode -> xNext ;
       pRefNode -> xNext = pNewNode -> xNdx ;
       pNewNode -> xPrev = pRefNode -> xNdx ;
  -    pNewNode -> xNext = pNxtNode -> xNdx ;
   
       if (pNewNode -> nType == ntypDocument)
           {
  
  
  
  1.134     +4 -1      embperl/test.pl
  
  Index: test.pl
  ===================================================================
  RCS file: /home/cvs/embperl/test.pl,v
  retrieving revision 1.133
  retrieving revision 1.134
  diff -u -r1.133 -r1.134
  --- test.pl   23 Jan 2004 06:50:55 -0000      1.133
  +++ test.pl   2 Feb 2004 19:29:57 -0000       1.134
  @@ -342,6 +342,9 @@
       'sub2.htm' => { 
           'repeat'     => 2,
           },
  +    'subouttab.htm' => { 
  +        'repeat'     => 2,
  +        },
       'executesub.htm' => { 
           'version'    => 2,
           'repeat'     => 2,
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to