rrichards Mon Oct 6 17:28:01 2003 EDT
Modified files:
/php-src/ext/dom php_dom.c element.c document.c
Log:
some namespace fixes
fix compiler warning
Index: php-src/ext/dom/php_dom.c
diff -u php-src/ext/dom/php_dom.c:1.35 php-src/ext/dom/php_dom.c:1.36
--- php-src/ext/dom/php_dom.c:1.35 Sun Oct 5 07:52:22 2003
+++ php-src/ext/dom/php_dom.c Mon Oct 6 17:28:01 2003
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_dom.c,v 1.35 2003/10/05 11:52:22 rrichards Exp $ */
+/* $Id: php_dom.c,v 1.36 2003/10/06 21:28:01 rrichards Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -1276,12 +1276,15 @@
int dom_check_qname(char *qname, char **localname, char **prefix, int uri_len, int
name_len) {
int errorcode = 0;
- if (uri_len > 0 && name_len > 0) {
+ if (name_len > 0) {
*localname = xmlSplitQName2(qname, (xmlChar **) prefix);
if (*localname == NULL) {
*localname = xmlStrdup(qname);
+ if (*prefix == NULL && uri_len == 0) {
+ return errorcode;
+ }
}
- if (*localname == NULL || (xmlStrchr(*localname, (xmlChar) ':') !=
NULL)) {
+ if (uri_len == 0 || *localname == NULL || (xmlStrchr(*localname,
(xmlChar) ':') != NULL)) {
errorcode = NAMESPACE_ERR;
}
} else {
Index: php-src/ext/dom/element.c
diff -u php-src/ext/dom/element.c:1.16 php-src/ext/dom/element.c:1.17
--- php-src/ext/dom/element.c:1.16 Sun Oct 5 17:49:47 2003
+++ php-src/ext/dom/element.c Mon Oct 6 17:28:01 2003
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: element.c,v 1.16 2003/10/05 21:49:47 shane Exp $ */
+/* $Id: element.c,v 1.17 2003/10/06 21:28:01 rrichards Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -120,7 +120,7 @@
ZVAL_STRING(*retval, qname, 1);
xmlFree(qname);
} else {
- ZVAL_STRING(*retval, nodep->name, 1);
+ ZVAL_STRING(*retval, (char *) nodep->name, 1);
}
return SUCCESS;
@@ -508,7 +508,7 @@
DOM_GET_THIS_OBJ(elemp, id, xmlNodePtr, intern);
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sss", &uri, &uri_len,
&name, &name_len, &value, &value_len) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s!ss", &uri, &uri_len,
&name, &name_len, &value, &value_len) == FAILURE) {
return;
}
@@ -522,30 +522,32 @@
errorcode = dom_check_qname(name, &localname, &prefix, uri_len, name_len);
if (errorcode == 0) {
- nodep = (xmlNodePtr) xmlHasNsProp(elemp, localname, uri);
- if (nodep != NULL) {
- node_list_unlink(nodep->children TSRMLS_CC);
- }
- nsptr = xmlSearchNsByHref(elemp->doc, elemp, uri);
- while (nsptr && nsptr->prefix == NULL) {
- nsptr = nsptr->next;
- }
- if (nsptr == NULL) {
- if (prefix == NULL) {
- errorcode = NAMESPACE_ERR;
- } else {
- nsptr = dom_get_ns(elemp, uri, &errorcode, prefix);
+ if (uri_len > 0) {
+ nodep = (xmlNodePtr) xmlHasNsProp(elemp, localname, uri);
+ if (nodep != NULL) {
+ node_list_unlink(nodep->children TSRMLS_CC);
+ }
+ nsptr = xmlSearchNsByHref(elemp->doc, elemp, uri);
+ while (nsptr && nsptr->prefix == NULL) {
+ nsptr = nsptr->next;
+ }
+ if (nsptr == NULL) {
+ if (prefix == NULL) {
+ errorcode = NAMESPACE_ERR;
+ } else {
+ nsptr = dom_get_ns(elemp, uri, &errorcode,
prefix);
+ }
}
- }
-
- if (errorcode == 0) {
- nodep = (xmlNodePtr) xmlSetNsProp(elemp, nsptr, localname,
NULL);
- }
- attr = xmlSetProp(nodep, localname, value);
- if (!attr) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "No such attribute
'%s'", localname);
- RETURN_FALSE;
+ if (errorcode == 0) {
+ attr = xmlSetNsProp(elemp, nsptr, localname, value);
+ }
+ } else {
+ attr = xmlHasProp(elemp, localname);
+ if (attr != NULL) {
+ node_list_unlink(attr->children TSRMLS_CC);
+ }
+ attr = xmlSetProp(elemp, localname, value);
}
}
Index: php-src/ext/dom/document.c
diff -u php-src/ext/dom/document.c:1.29 php-src/ext/dom/document.c:1.30
--- php-src/ext/dom/document.c:1.29 Sun Oct 5 16:45:26 2003
+++ php-src/ext/dom/document.c Mon Oct 6 17:28:01 2003
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: document.c,v 1.29 2003/10/05 20:45:26 shane Exp $ */
+/* $Id: document.c,v 1.30 2003/10/06 21:28:01 rrichards Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -968,7 +968,7 @@
DOM_GET_THIS_OBJ(docp, id, xmlDocPtr, intern);
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss", &uri, &uri_len,
&name, &name_len) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s!s", &uri, &uri_len,
&name, &name_len) == FAILURE) {
return;
}
@@ -976,7 +976,7 @@
if (errorcode == 0) {
nodep = xmlNewDocNode (docp, NULL, localname, NULL);
- if (nodep != NULL) {
+ if (nodep != NULL && uri != NULL) {
nsptr = xmlSearchNsByHref (nodep->doc, nodep, uri);
if (nsptr == NULL) {
nsptr = dom_get_ns(nodep, uri, &errorcode, prefix);
@@ -1028,7 +1028,7 @@
DOM_GET_THIS_OBJ(docp, id, xmlDocPtr, intern);
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss", &uri, &uri_len,
&name, &name_len) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s!s", &uri, &uri_len,
&name, &name_len) == FAILURE) {
return;
}
@@ -1037,7 +1037,7 @@
errorcode = dom_check_qname(name, &localname, &prefix, uri_len,
name_len);
if (errorcode == 0) {
nodep = (xmlNodePtr) xmlNewDocProp(docp, localname, NULL);
- if (nodep != NULL) {
+ if (nodep != NULL && uri_len > 0) {
nsptr = xmlSearchNsByHref (nodep->doc, root, uri);
if (nsptr == NULL) {
nsptr = dom_get_ns(root, uri, &errorcode,
prefix);
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php