Return to comment.c CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / dom |
1.1 ! misho 1: /* ! 2: +----------------------------------------------------------------------+ ! 3: | PHP Version 5 | ! 4: +----------------------------------------------------------------------+ ! 5: | Copyright (c) 1997-2012 The PHP Group | ! 6: +----------------------------------------------------------------------+ ! 7: | This source file is subject to version 3.01 of the PHP license, | ! 8: | that is bundled with this package in the file LICENSE, and is | ! 9: | available through the world-wide-web at the following url: | ! 10: | http://www.php.net/license/3_01.txt | ! 11: | If you did not receive a copy of the PHP license and are unable to | ! 12: | obtain it through the world-wide-web, please send a note to | ! 13: | license@php.net so we can mail you a copy immediately. | ! 14: +----------------------------------------------------------------------+ ! 15: | Authors: Christian Stocker <chregu@php.net> | ! 16: | Rob Richards <rrichards@php.net> | ! 17: +----------------------------------------------------------------------+ ! 18: */ ! 19: ! 20: /* $Id: comment.c 321634 2012-01-01 13:15:04Z felipe $ */ ! 21: ! 22: #ifdef HAVE_CONFIG_H ! 23: #include "config.h" ! 24: #endif ! 25: ! 26: #include "php.h" ! 27: #if HAVE_LIBXML && HAVE_DOM ! 28: #include "php_dom.h" ! 29: ! 30: ! 31: /* {{{ arginfo */ ! 32: ZEND_BEGIN_ARG_INFO_EX(arginfo_dom_comment_construct, 0, 0, 0) ! 33: ZEND_ARG_INFO(0, value) ! 34: ZEND_END_ARG_INFO(); ! 35: /* }}} */ ! 36: ! 37: /* ! 38: * class DOMComment extends DOMCharacterData ! 39: * ! 40: * URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-1728279322 ! 41: * Since: ! 42: */ ! 43: ! 44: const zend_function_entry php_dom_comment_class_functions[] = { ! 45: PHP_ME(domcomment, __construct, arginfo_dom_comment_construct, ZEND_ACC_PUBLIC) ! 46: {NULL, NULL, NULL} ! 47: }; ! 48: ! 49: /* {{{ proto void DOMComment::__construct([string value]); */ ! 50: PHP_METHOD(domcomment, __construct) ! 51: { ! 52: ! 53: zval *id; ! 54: xmlNodePtr nodep = NULL, oldnode = NULL; ! 55: dom_object *intern; ! 56: char *value = NULL; ! 57: int value_len; ! 58: zend_error_handling error_handling; ! 59: ! 60: zend_replace_error_handling(EH_THROW, dom_domexception_class_entry, &error_handling TSRMLS_CC); ! 61: if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O|s", &id, dom_comment_class_entry, &value, &value_len) == FAILURE) { ! 62: zend_restore_error_handling(&error_handling TSRMLS_CC); ! 63: return; ! 64: } ! 65: ! 66: zend_restore_error_handling(&error_handling TSRMLS_CC); ! 67: nodep = xmlNewComment((xmlChar *) value); ! 68: ! 69: if (!nodep) { ! 70: php_dom_throw_error(INVALID_STATE_ERR, 1 TSRMLS_CC); ! 71: RETURN_FALSE; ! 72: } ! 73: ! 74: intern = (dom_object *)zend_object_store_get_object(id TSRMLS_CC); ! 75: if (intern != NULL) { ! 76: oldnode = dom_object_get_node(intern); ! 77: if (oldnode != NULL) { ! 78: php_libxml_node_free_resource(oldnode TSRMLS_CC); ! 79: } ! 80: php_libxml_increment_node_ptr((php_libxml_node_object *)intern, (xmlNodePtr)nodep, (void *)intern TSRMLS_CC); ! 81: } ! 82: } ! 83: /* }}} end DOMComment::__construct */ ! 84: ! 85: #endif ! 86: ! 87: /* ! 88: * Local variables: ! 89: * tab-width: 4 ! 90: * c-basic-offset: 4 ! 91: * End: ! 92: * vim600: noet sw=4 ts=4 fdm=marker ! 93: * vim<600: noet sw=4 ts=4 ! 94: */