Diff for /embedaddon/miniupnpd/minixml.c between versions 1.1.1.1 and 1.1.1.2

version 1.1.1.1, 2012/02/21 23:16:02 version 1.1.1.2, 2012/05/29 12:55:57
Line 4 Line 4
  * webpage: http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/   * webpage: http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
  * Author : Thomas Bernard   * Author : Thomas Bernard
   
Copyright (c) 2005-2009, Thomas BERNARD Copyright (c) 2005-2011, Thomas BERNARD 
 All rights reserved.  All rights reserved.
   
 Redistribution and use in source and binary forms, with or without  Redistribution and use in source and binary forms, with or without
Line 30  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGE Line 30  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGE
 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 POSSIBILITY OF SUCH DAMAGE.  POSSIBILITY OF SUCH DAMAGE.
 */  */
   #include <string.h>
 #include "minixml.h"  #include "minixml.h"
   
 /* parseatt : used to parse the argument list  /* parseatt : used to parse the argument list
Line 143  static void parseelt(struct xmlparser * p) Line 144  static void parseelt(struct xmlparser * p)
                                                 return;                                                  return;
                                         while( IS_WHITE_SPACE(*p->xml) )                                          while( IS_WHITE_SPACE(*p->xml) )
                                         {                                          {
                                                p->xml++;                                                i++; p->xml++;
                                                 if (p->xml >= p->xmlend)                                                  if (p->xml >= p->xmlend)
                                                         return;                                                          return;
                                         }                                          }
                                        while(*p->xml!='<')                                        if(memcmp(p->xml, "<![CDATA[", 9) == 0)
                                         { 
                                                 /* CDATA handling */
                                                 p->xml += 9;
                                                 data = p->xml;
                                                 i = 0;
                                                 while(memcmp(p->xml, "]]>", 3) != 0)
                                                 {
                                                         i++; p->xml++;
                                                         if ((p->xml + 3) >= p->xmlend)
                                                                 return;
                                                 }
                                                 if(i>0 && p->datafunc)
                                                         p->datafunc(p->data, data, i);
                                                 while(*p->xml!='<')
                                                 {
                                                         p->xml++;
                                                         if (p->xml >= p->xmlend)
                                                                 return;
                                                 }
                                         }
                                         else
                                         {                                          {
                                                i++; p->xml++;                                                while(*p->xml!='<')
                                                if (p->xml >= p->xmlend)                                                {
                                                        return;                                                        i++; p->xml++;
                                                         if ((p->xml + 1) >= p->xmlend)
                                                                 return;
                                                 }
                                                 if(i>0 && p->datafunc && *(p->xml + 1) == '/')
                                                         p->datafunc(p->data, data, i);
                                         }                                          }
                                         if(i>0 && p->datafunc)  
                                                 p->datafunc(p->data, data, i);  
                                 }                                  }
                         }                          }
                         else if(*p->xml == '/')                          else if(*p->xml == '/')

Removed from v.1.1.1.1  
changed lines
  Added in v.1.1.1.2


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>