cvs: php4 /ext/domxml php_domxml.c php_domxml.h

From: 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);

« previous php.cvs (#11113) next »