Blob Blame History Raw

Author: jorton
Date: Mon Mar 26 14:19:44 2007
New Revision: 522630

URL: http://svn.apache.org/viewvc?view=rev&rev=522630
Log:
* xml/apr_xml.c (elem_size, write_elem): Fix attribute namespace
handling; where applicable, use the mapped namespace index.

PR: 41908

--- apr-util-1.2.8/xml/apr_xml.c.xmlns
+++ apr-util-1.2.8/xml/apr_xml.c
@@ -666,7 +666,8 @@
 	    }
 	    else {
 		/* compute size of: ' ns%d:%s="%s"' */
-		size += 3 + APR_XML_NS_LEN(attr->ns) + 1 + strlen(attr->name) + 2 + strlen(attr->value) + 1;
+                int ns = ns_map ? ns_map[attr->ns] : attr->ns;
+                size += 3 + APR_XML_NS_LEN(ns) + 1 + strlen(attr->name) + 2 + strlen(attr->value) + 1;
 	    }
 	}
 
@@ -736,8 +737,10 @@
 	for (attr = elem->attr; attr; attr = attr->next) {
 	    if (attr->ns == APR_XML_NS_NONE)
 		len = sprintf(s, " %s=\"%s\"", attr->name, attr->value);
-	    else
-		len = sprintf(s, " ns%d:%s=\"%s\"", attr->ns, attr->name, attr->value);
+            else {
+                ns = ns_map ? ns_map[attr->ns] : attr->ns;
+                len = sprintf(s, " ns%d:%s=\"%s\"", ns, attr->name, attr->value);
+            }
 	    s += len;
 	}