cvs: php4 /ext/domxml php_domxml.c php_domxml.h
| From: | Christian Stocker | Date: | Sat, 13 Apr 2002 10:23:46 +0000 |
| Subject: | cvs: php4 /ext/domxml php_domxml.c php_domxml.h | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-11113@lists.php.net to get a copy of this message | ||
chregu Sat Apr 13 06:23:46 2002 EDT
Modified files:
/php4/ext/domxml php_domxml.c php_domxml.h
Log:
@- old $node->append_child() is now $node->append_sibling(), since
@ new append_child() now behaves like excepted (= W3C standard) (chregu, uwe)
Index: php4/ext/domxml/php_domxml.c
diff -u php4/ext/domxml/php_domxml.c:1.138 php4/ext/domxml/php_domxml.c:1.139
--- php4/ext/domxml/php_domxml.c:1.138 Fri Apr 12 09:23:02 2002
+++ php4/ext/domxml/php_domxml.c Sat Apr 13 06:23:46 2002
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_domxml.c,v 1.138 2002/04/12 13:23:02 steinm Exp $ */
+/* $Id: php_domxml.c,v 1.139 2002/04/13 10:23:46 chregu Exp $ */
/* TODO
* - Support Notation Nodes
@@ -326,6 +326,7 @@
PHP_FALIAS(parent, domxml_node_parent, NULL)
PHP_FALIAS(parent_node, domxml_node_parent, NULL)
PHP_FALIAS(insert_before, domxml_node_insert_before, NULL)
+ PHP_FALIAS(append_sibling, domxml_node_append_sibling, NULL)
PHP_FALIAS(append_child, domxml_node_append_child, NULL)
PHP_FALIAS(remove_child, domxml_node_remove_child, NULL)
PHP_FALIAS(owner_document, domxml_node_owner_document, NULL)
@@ -2048,6 +2049,44 @@
*/
// child = xmlAddSibling(nodep, new_child);
child = xmlAddChild(nodep, new_child);
+
+ if (NULL == child) {
+ php_error(E_WARNING, "%s(): couldn't append node",
get_active_function_name(TSRMLS_C));
+ RETURN_FALSE;
+ }
+
+ DOMXML_RET_OBJ(rv, child, &ret);
+}
+/* }}} */
+
+/* {{{ proto object domxml_node_append_sibling(object domnode)
+ Adds node to list of siblings */
+PHP_FUNCTION(domxml_node_append_sibling)
+{
+ zval *id, *rv, *node;
+ xmlNodePtr child, nodep, new_child;
+ int ret;
+
+ DOMXML_GET_THIS_OBJ(nodep, id, le_domxmlnodep);
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "o", &node) == FAILURE) {
+ return;
+ }
+
+ DOMXML_GET_OBJ(child, node, le_domxmlnodep);
+
+ if (child->type == XML_ATTRIBUTE_NODE) {
+ php_error(E_WARNING, "%s(): can't append attribute node",
get_active_function_name(TSRMLS_C));
+ RETURN_FALSE;
+ }
+
+ if (NULL == (new_child = xmlCopyNode(child, 1))) {
+ php_error(E_WARNING, "%s(): unable to clone node", get_active_function_name(TSRMLS_C));
+ RETURN_FALSE;
+ }
+
+ // FIXME reverted xmlAddChildList; crashes
+ child = xmlAddSibling(nodep, new_child);
if (NULL == child) {
php_error(E_WARNING, "%s(): couldn't append node",
get_active_function_name(TSRMLS_C));
Index: php4/ext/domxml/php_domxml.h
diff -u php4/ext/domxml/php_domxml.h:1.47 php4/ext/domxml/php_domxml.h:1.48
--- php4/ext/domxml/php_domxml.h:1.47 Fri Apr 12 09:23:07 2002
+++ php4/ext/domxml/php_domxml.h Sat Apr 13 06:23:46 2002
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_domxml.h,v 1.47 2002/04/12 13:23:07 steinm Exp $ */
+/* $Id: php_domxml.h,v 1.48 2002/04/13 10:23:46 chregu Exp $ */
#ifndef PHP_DOMXML_H
#define PHP_DOMXML_H
@@ -108,6 +108,7 @@
PHP_FUNCTION(domxml_node_previous_sibling);
PHP_FUNCTION(domxml_node_owner_document);
PHP_FUNCTION(domxml_node_insert_before);
+PHP_FUNCTION(domxml_node_append_sibling);
PHP_FUNCTION(domxml_node_append_child);
PHP_FUNCTION(domxml_node_remove_child);
PHP_FUNCTION(domxml_node_add_child);