Annotation of embedaddon/php/ext/dom/comment.c, revision 1.1.1.2

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: 
1.1.1.2 ! misho      20: /* $Id$ */
1.1       misho      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:  */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>