- Fixed bug #50394 (Reference argument converted to value in __call). (Stas)
- Fixed bug #49851 (http wrapper breaks on 1024 char long headers). (Ilia)
- Fixed bug #49600 (imageTTFText text shifted right). (Takeshi Abe)
+- Fixed bug #49463 (setAttributeNS fails setting default namespace). (Rob)
- Fixed bug #48590 (SoapClient does not honor max_redirects). (Sriram)
- Fixed bug #48190 (Content-type parameter "boundary" is not case-insensitive
in HTTP uploads). (Ilia)
node_list_unlink(nodep->children TSRMLS_CC);
}
- if (xmlStrEqual((xmlChar *) prefix,"xmlns") && xmlStrEqual((xmlChar *) uri, DOM_XMLNS_NAMESPACE)) {
+ if ((xmlStrEqual((xmlChar *) prefix, (xmlChar *)"xmlns") ||
+ (prefix == NULL && xmlStrEqual((xmlChar *) localname, (xmlChar *)"xmlns"))) &&
+ xmlStrEqual((xmlChar *) uri, (xmlChar *)DOM_XMLNS_NAMESPACE)) {
is_xmlns = 1;
- nsptr = dom_get_nsdecl(elemp, localname);
+ if (prefix == NULL) {
+ nsptr = dom_get_nsdecl(elemp, NULL);
+ } else {
+ nsptr = dom_get_nsdecl(elemp, (xmlChar *)localname);
+ }
} else {
- nsptr = xmlSearchNsByHref(elemp->doc, elemp, uri);
+ nsptr = xmlSearchNsByHref(elemp->doc, elemp, (xmlChar *)uri);
if (nsptr && nsptr->prefix == NULL) {
xmlNsPtr tmpnsptr;
if (nsptr == NULL) {
if (prefix == NULL) {
- errorcode = NAMESPACE_ERR;
+ if (is_xmlns == 1) {
+ xmlNewNs(elemp, (xmlChar *)value, NULL);
+ xmlReconciliateNs(elemp->doc, elemp);
+ } else {
+ errorcode = NAMESPACE_ERR;
+ }
} else {
if (is_xmlns == 1) {
- xmlNewNs(elemp, value, localname);
+ xmlNewNs(elemp, (xmlChar *)value, (xmlChar *)localname);
} else {
nsptr = dom_get_ns(elemp, uri, &errorcode, prefix);
}
--- /dev/null
+--TEST--
+Bug #49463 (setAttributeNS fails setting default namespace).
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+
+$doc = new DOMDocument('1.0', 'utf-8');
+$root = $doc->createElementNS('http://purl.org/rss/1.0/','rdf:RDF');
+$doc->appendChild($root);
+$root->setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns","http://purl.org/rss/1.0/" );
+
+echo $doc->saveXML()."\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="utf-8"?>
+<rdf:RDF xmlns:rdf="http://purl.org/rss/1.0/" xmlns="http://purl.org/rss/1.0/"/>