[Expat-checkins] expat/lib xmlparse.c,1.142,1.143

Karl Waclawek kwaclaw at users.sourceforge.net
Fri Dec 24 19:25:35 CET 2004


Update of /cvsroot/expat/expat/lib
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21975

Modified Files:
	xmlparse.c 
Log Message:
"if (ns)" check in addBinding() is not necessary, since it is only
called when namespace processing is turned on.

Index: xmlparse.c
===================================================================
RCS file: /cvsroot/expat/expat/lib/xmlparse.c,v
retrieving revision 1.142
retrieving revision 1.143
diff -u -d -r1.142 -r1.143
--- xmlparse.c	24 Dec 2004 18:00:28 -0000	1.142
+++ xmlparse.c	24 Dec 2004 18:25:32 -0000	1.143
@@ -2927,6 +2927,26 @@
 addBinding(XML_Parser parser, PREFIX *prefix, const ATTRIBUTE_ID *attId,
            const XML_Char *uri, BINDING **bindingsPtr)
 {
+  static const XML_Char xmlNamespace[] = {
+    'h', 't', 't', 'p', ':', '/', '/',
+    'w', 'w', 'w', '.', 'w', '3', '.', 'o', 'r', 'g', '/',
+    'X', 'M', 'L', '/', '1', '9', '9', '8', '/',
+    'n', 'a', 'm', 'e', 's', 'p', 'a', 'c', 'e', '\0'
+  };
+  static const int xmlLen = 
+    (int)sizeof(xmlNamespace)/sizeof(XML_Char) - 1;
+  static const XML_Char xmlnsNamespace[] = {
+    'h', 't', 't', 'p', ':', '/', '/',
+    'w', 'w', 'w', '.', 'w', '3', '.', 'o', 'r', 'g', '/',
+    '2', '0', '0', '0', '/', 'x', 'm', 'l', 'n', 's', '/', '\0'
+  };
+  static const int xmlnsLen = 
+    (int)sizeof(xmlnsNamespace)/sizeof(XML_Char) - 1;
+
+  XML_Bool mustBeXML = XML_FALSE;
+  XML_Bool isXML = XML_TRUE;
+  XML_Bool isXMLNS = XML_TRUE;
+  
   BINDING *b;
   int len;
 
@@ -2934,63 +2954,38 @@
   if (*uri == XML_T('\0') && prefix->name)
     return XML_ERROR_UNDECLARING_PREFIX;
 
-  if (ns) {
-    static const XML_Char xmlNamespace[] = {
-      'h', 't', 't', 'p', ':', '/', '/',
-      'w', 'w', 'w', '.', 'w', '3', '.', 'o', 'r', 'g', '/',
-      'X', 'M', 'L', '/', '1', '9', '9', '8', '/',
-      'n', 'a', 'm', 'e', 's', 'p', 'a', 'c', 'e', '\0'
-    };
-    static const int xmlLen = 
-      (int)sizeof(xmlNamespace)/sizeof(XML_Char) - 1;
-    static const XML_Char xmlnsNamespace[] = {
-      'h', 't', 't', 'p', ':', '/', '/',
-      'w', 'w', 'w', '.', 'w', '3', '.', 'o', 'r', 'g', '/',
-      '2', '0', '0', '0', '/', 'x', 'm', 'l', 'n', 's', '/', '\0'
-    };
-    static const int xmlnsLen = 
-      (int)sizeof(xmlnsNamespace)/sizeof(XML_Char) - 1;
-
-    XML_Bool mustBeXML = XML_FALSE;
-    XML_Bool isXML = XML_TRUE;
-    XML_Bool isXMLNS = XML_TRUE;
-
-    if (prefix->name
-        && prefix->name[0] == XML_T('x')
-        && prefix->name[1] == XML_T('m')
-        && prefix->name[2] == XML_T('l')) {
+  if (prefix->name
+      && prefix->name[0] == XML_T('x')
+      && prefix->name[1] == XML_T('m')
+      && prefix->name[2] == XML_T('l')) {
 
-      /* Not allowed to bind xmlns */
-      if (prefix->name[3] == XML_T('n')
-          && prefix->name[4] == XML_T('s')
-          && prefix->name[5] == XML_T('\0'))
-        return XML_ERROR_RESERVED_PREFIX_XMLNS;
+    /* Not allowed to bind xmlns */
+    if (prefix->name[3] == XML_T('n')
+        && prefix->name[4] == XML_T('s')
+        && prefix->name[5] == XML_T('\0'))
+      return XML_ERROR_RESERVED_PREFIX_XMLNS;
 
-      if (prefix->name[3] == XML_T('\0'))
-        mustBeXML = XML_TRUE;
-    }
+    if (prefix->name[3] == XML_T('\0'))
+      mustBeXML = XML_TRUE;
+  }
 
-    for (len = 0; uri[len]; len++) {
-      if (isXML && (len > xmlLen || uri[len] != xmlNamespace[len]))
-        isXML = XML_FALSE;
+  for (len = 0; uri[len]; len++) {
+    if (isXML && (len > xmlLen || uri[len] != xmlNamespace[len]))
+      isXML = XML_FALSE;
 
-      if (!mustBeXML && isXMLNS 
-          && (len > xmlnsLen || uri[len] != xmlnsNamespace[len]))
-        isXMLNS = XML_FALSE;
-    }
-    isXML = isXML && len == xmlLen;
-    isXMLNS = isXMLNS && len == xmlnsLen;
+    if (!mustBeXML && isXMLNS 
+        && (len > xmlnsLen || uri[len] != xmlnsNamespace[len]))
+      isXMLNS = XML_FALSE;
+  }
+  isXML = isXML && len == xmlLen;
+  isXMLNS = isXMLNS && len == xmlnsLen;
 
-    if (mustBeXML != isXML)
-      return mustBeXML ? XML_ERROR_RESERVED_PREFIX_XML
-                       : XML_ERROR_RESERVED_NAMESPACE_URI;
+  if (mustBeXML != isXML)
+    return mustBeXML ? XML_ERROR_RESERVED_PREFIX_XML
+                     : XML_ERROR_RESERVED_NAMESPACE_URI;
 
-    if (isXMLNS)
-      return XML_ERROR_RESERVED_NAMESPACE_URI;
-  }
-  else
-    for (len = 0; uri[len]; len++)
-      ;
+  if (isXMLNS)
+    return XML_ERROR_RESERVED_NAMESPACE_URI;
 
   if (namespaceSeparator)
     len++;



More information about the Expat-checkins mailing list