diff options
author | Rob Richards <rrichards@php.net> | 2005-12-19 15:05:41 +0000 |
---|---|---|
committer | Rob Richards <rrichards@php.net> | 2005-12-19 15:05:41 +0000 |
commit | ddba5e9531a494d69469cfe057218184cab81268 (patch) | |
tree | dbe0a89820e904b3d4fbfbf73372c751d1cae78b /ext/xmlwriter | |
parent | 046b0daf1500fd362a0a96068dcb1cdb54633431 (diff) | |
download | php-git-ddba5e9531a494d69469cfe057218184cab81268.tar.gz |
cleanup code making it easier to add new functionality and maintain
implement xmlwriter_full_end_element and xmlwriter_write_raw
Diffstat (limited to 'ext/xmlwriter')
-rw-r--r-- | ext/xmlwriter/php_xmlwriter.c | 438 | ||||
-rw-r--r-- | ext/xmlwriter/php_xmlwriter.h | 2 |
2 files changed, 84 insertions, 356 deletions
diff --git a/ext/xmlwriter/php_xmlwriter.c b/ext/xmlwriter/php_xmlwriter.c index cfb9f33619..8d0bc75fb8 100644 --- a/ext/xmlwriter/php_xmlwriter.c +++ b/ext/xmlwriter/php_xmlwriter.c @@ -34,6 +34,9 @@ zend_class_entry *xmlwriter_class_entry; static void xmlwriter_free_resource_ptr(xmlwriter_object *intern TSRMLS_DC); static void xmlwriter_dtor(zend_rsrc_list_entry *rsrc TSRMLS_DC); +typedef int (*xmlwriter_read_one_char_t)(xmlTextWriterPtr writer, const xmlChar *content); +typedef int (*xmlwriter_read_int_t)(xmlTextWriterPtr writer); + /* {{{ xmlwriter_object_free_storage */ static void xmlwriter_free_resource_ptr(xmlwriter_object *intern TSRMLS_DC) { @@ -143,6 +146,7 @@ static zend_function_entry xmlwriter_functions[] = { #endif PHP_FE(xmlwriter_start_element, NULL) PHP_FE(xmlwriter_end_element, NULL) + PHP_FE(xmlwriter_full_end_element, NULL) PHP_FE(xmlwriter_start_element_ns, NULL) PHP_FE(xmlwriter_write_element, NULL) PHP_FE(xmlwriter_write_element_ns, NULL) @@ -153,6 +157,7 @@ static zend_function_entry xmlwriter_functions[] = { PHP_FE(xmlwriter_end_cdata, NULL) PHP_FE(xmlwriter_write_cdata, NULL) PHP_FE(xmlwriter_text, NULL) + PHP_FE(xmlwriter_write_raw, NULL) PHP_FE(xmlwriter_start_document, NULL) PHP_FE(xmlwriter_end_document, NULL) PHP_FE(xmlwriter_write_comment, NULL) @@ -195,6 +200,7 @@ static zend_function_entry xmlwriter_class_functions[] = { #endif PHP_ME_MAPPING(startElement, xmlwriter_start_element, NULL) PHP_ME_MAPPING(endElement, xmlwriter_end_element, NULL) + PHP_ME_MAPPING(fullEndElement, xmlwriter_full_end_element, NULL) PHP_ME_MAPPING(startElementNs, xmlwriter_start_element_ns, NULL) PHP_ME_MAPPING(writeElement, xmlwriter_write_element, NULL) PHP_ME_MAPPING(writeElementNs, xmlwriter_write_element_ns, NULL) @@ -205,6 +211,7 @@ static zend_function_entry xmlwriter_class_functions[] = { PHP_ME_MAPPING(endCdata, xmlwriter_end_cdata, NULL) PHP_ME_MAPPING(writeCdata, xmlwriter_write_cdata, NULL) PHP_ME_MAPPING(text, xmlwriter_text, NULL) + PHP_ME_MAPPING(writeRaw, xmlwriter_write_raw, NULL) PHP_ME_MAPPING(startDocument, xmlwriter_start_document, NULL) PHP_ME_MAPPING(endDocument, xmlwriter_end_document, NULL) PHP_ME_MAPPING(writeComment, xmlwriter_write_comment, NULL) @@ -351,205 +358,144 @@ static void xmlwriter_dtor(zend_rsrc_list_entry *rsrc TSRMLS_DC) { } /* }}} */ -#if LIBXML_VERSION >= 20605 -/* {{{ proto bool xmlwriter_set_indent(resource xmlwriter, bool indent) -Toggle indentation on/off - returns FALSE on error */ -PHP_FUNCTION(xmlwriter_set_indent) +static void php_xmlwriter_string_arg(INTERNAL_FUNCTION_PARAMETERS, xmlwriter_read_one_char_t internal_function, char *err_string) { zval *pind; xmlwriter_object *intern; xmlTextWriterPtr ptr; - int retval; - zend_bool indent; + char *name; + int name_len, retval; #ifdef ZEND_ENGINE_2 zval *this = getThis(); if (this) { - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "b", &indent) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &name, &name_len) == FAILURE) { return; } XMLWRITER_FROM_OBJECT(intern, this); } else #endif { - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rb", &pind, &indent) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs", &pind, &name, &name_len) == FAILURE) { return; } + ZEND_FETCH_RESOURCE(intern,xmlwriter_object *, &pind, -1, "XMLWriter", le_xmlwriter); } + if (err_string != NULL) { + XMLW_NAME_CHK(err_string); + } ptr = intern->ptr; + if (ptr) { - retval = xmlTextWriterSetIndent(ptr, indent); - if (retval == 0) { + retval = internal_function(ptr, name); + if (retval != -1) { RETURN_TRUE; } } RETURN_FALSE; } -/* }}} */ -/* {{{ proto bool xmlwriter_set_indent_string(resource xmlwriter, string indentString) -Set string used for indenting - returns FALSE on error */ -PHP_FUNCTION(xmlwriter_set_indent_string) +static void php_xmlwriter_end(INTERNAL_FUNCTION_PARAMETERS, xmlwriter_read_int_t internal_function) { zval *pind; xmlwriter_object *intern; xmlTextWriterPtr ptr; - char *indent; - int indent_len, retval; - + int retval; #ifdef ZEND_ENGINE_2 zval *this = getThis(); if (this) { - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &indent, &indent_len) == FAILURE) { - return; - } XMLWRITER_FROM_OBJECT(intern, this); - } else + } else #endif { - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs", &pind, &indent, &indent_len) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &pind) == FAILURE) { return; } - ZEND_FETCH_RESOURCE(intern,xmlwriter_object *, &pind, -1, "XMLWriter", le_xmlwriter); } - ptr = intern->ptr; if (ptr) { - retval = xmlTextWriterSetIndentString(ptr, indent); - if (retval == 0) { + retval = internal_function(ptr); + if (retval != -1) { RETURN_TRUE; } } RETURN_FALSE; } -/* }}} */ - -#endif -/* {{{ proto bool xmlwriter_start_attribute(resource xmlwriter, string name) -Create start attribute - returns FALSE on error */ -PHP_FUNCTION(xmlwriter_start_attribute) +#if LIBXML_VERSION >= 20605 +/* {{{ proto bool xmlwriter_set_indent(resource xmlwriter, bool indent) +Toggle indentation on/off - returns FALSE on error */ +PHP_FUNCTION(xmlwriter_set_indent) { zval *pind; xmlwriter_object *intern; xmlTextWriterPtr ptr; - char *name; - int name_len, retval; + int retval; + zend_bool indent; + #ifdef ZEND_ENGINE_2 zval *this = getThis(); if (this) { - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &name, &name_len) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "b", &indent) == FAILURE) { return; } XMLWRITER_FROM_OBJECT(intern, this); } else #endif { - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs", &pind, &name, &name_len) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rb", &pind, &indent) == FAILURE) { return; } ZEND_FETCH_RESOURCE(intern,xmlwriter_object *, &pind, -1, "XMLWriter", le_xmlwriter); } - XMLW_NAME_CHK("Invalid Element Name"); - ptr = intern->ptr; - if (ptr) { - retval = xmlTextWriterStartAttribute(ptr, name); - if (retval != -1) { + retval = xmlTextWriterSetIndent(ptr, indent); + if (retval == 0) { RETURN_TRUE; } } - + RETURN_FALSE; } /* }}} */ -static void php_xmlwriter_end(INTERNAL_FUNCTION_PARAMETERS, int type) +/* {{{ proto bool xmlwriter_set_indent_string(resource xmlwriter, string indentString) +Set string used for indenting - returns FALSE on error */ +PHP_FUNCTION(xmlwriter_set_indent_string) { - zval *pind; - xmlwriter_object *intern; - xmlTextWriterPtr ptr; - int retval; -#ifdef ZEND_ENGINE_2 - zval *this = getThis(); - - if (this) { - XMLWRITER_FROM_OBJECT(intern, this); - } else -#endif - { - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &pind) == FAILURE) { - return; - } - ZEND_FETCH_RESOURCE(intern,xmlwriter_object *, &pind, -1, "XMLWriter", le_xmlwriter); - } + php_xmlwriter_string_arg(INTERNAL_FUNCTION_PARAM_PASSTHRU, xmlTextWriterSetIndentString, NULL); +} +/* }}} */ - ptr = intern->ptr; +#endif - if (ptr) { - switch (type) { - case 0: - retval = xmlTextWriterEndAttribute(ptr); - break; - case 1: - retval = xmlTextWriterEndElement(ptr); - break; - case 2: - retval = xmlTextWriterEndPI(ptr); - break; - case 3: - retval = xmlTextWriterEndCDATA(ptr); - break; - case 4: - retval = xmlTextWriterEndComment(ptr); - break; - case 5: - retval = xmlTextWriterEndDocument(ptr); - break; - case 6: - retval = xmlTextWriterEndDTD(ptr); - break; - case 7: - retval = xmlTextWriterEndDTDElement(ptr); - break; - case 8: - retval = xmlTextWriterEndDTDAttlist(ptr); - break; - case 9: - retval = xmlTextWriterEndDTDEntity(ptr); - break; - default: - retval = -1; - break; - } - if (retval != -1) { - RETURN_TRUE; - } - } - - RETURN_FALSE; +/* {{{ proto bool xmlwriter_start_attribute(resource xmlwriter, string name) +Create start attribute - returns FALSE on error */ +PHP_FUNCTION(xmlwriter_start_attribute) +{ + php_xmlwriter_string_arg(INTERNAL_FUNCTION_PARAM_PASSTHRU, xmlTextWriterStartAttribute, "Invalid Attribute Name"); } - +/* }}} */ /* {{{ proto bool xmlwriter_end_attribute(resource xmlwriter) End attribute - returns FALSE on error */ PHP_FUNCTION(xmlwriter_end_attribute) { - php_xmlwriter_end(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0); + php_xmlwriter_end(INTERNAL_FUNCTION_PARAM_PASSTHRU, xmlTextWriterEndAttribute); } /* }}} */ @@ -692,40 +638,7 @@ PHP_FUNCTION(xmlwriter_write_attribute_ns) Create start element tag - returns FALSE on error */ PHP_FUNCTION(xmlwriter_start_element) { - zval *pind; - xmlwriter_object *intern; - xmlTextWriterPtr ptr; - char *name; - int name_len, retval; -#ifdef ZEND_ENGINE_2 - zval *this = getThis(); - - if (this) { - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &name, &name_len) == FAILURE) { - return; - } - XMLWRITER_FROM_OBJECT(intern, this); - } else -#endif - { - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs", &pind, &name, &name_len) == FAILURE) { - return; - } - ZEND_FETCH_RESOURCE(intern,xmlwriter_object *, &pind, -1, "XMLWriter", le_xmlwriter); - } - - XMLW_NAME_CHK("Invalid Element Name"); - - ptr = intern->ptr; - - if (ptr) { - retval = xmlTextWriterStartElement(ptr, name); - if (retval != -1) { - RETURN_TRUE; - } - } - - RETURN_FALSE; + php_xmlwriter_string_arg(INTERNAL_FUNCTION_PARAM_PASSTHRU, xmlTextWriterStartElement, "Invalid Element Name"); } /* }}} */ @@ -778,7 +691,15 @@ PHP_FUNCTION(xmlwriter_start_element_ns) End current element - returns FALSE on error */ PHP_FUNCTION(xmlwriter_end_element) { - php_xmlwriter_end(INTERNAL_FUNCTION_PARAM_PASSTHRU, 1); + php_xmlwriter_end(INTERNAL_FUNCTION_PARAM_PASSTHRU, xmlTextWriterEndElement); +} +/* }}} */ + +/* {{{ proto bool xmlwriter_full_end_element(resource xmlwriter) +End current element - returns FALSE on error */ +PHP_FUNCTION(xmlwriter_full_end_element) +{ + php_xmlwriter_end(INTERNAL_FUNCTION_PARAM_PASSTHRU, xmlTextWriterFullEndElement); } /* }}} */ @@ -873,41 +794,7 @@ PHP_FUNCTION(xmlwriter_write_element_ns) Create start PI tag - returns FALSE on error */ PHP_FUNCTION(xmlwriter_start_pi) { - zval *pind; - xmlwriter_object *intern; - xmlTextWriterPtr ptr; - char *name; - int name_len, retval; - -#ifdef ZEND_ENGINE_2 - zval *this = getThis(); - - if (this) { - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &name, &name_len) == FAILURE) { - return; - } - XMLWRITER_FROM_OBJECT(intern, this); - } else -#endif - { - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs", &pind, &name, &name_len) == FAILURE) { - return; - } - ZEND_FETCH_RESOURCE(intern,xmlwriter_object *, &pind, -1, "XMLWriter", le_xmlwriter); - } - - XMLW_NAME_CHK("Invalid PI Target"); - - ptr = intern->ptr; - - if (ptr) { - retval = xmlTextWriterStartPI(ptr, name); - if (retval != -1) { - RETURN_TRUE; - } - } - - RETURN_FALSE; + php_xmlwriter_string_arg(INTERNAL_FUNCTION_PARAM_PASSTHRU, xmlTextWriterStartPI, "Invalid PI Target"); } /* }}} */ @@ -915,7 +802,7 @@ PHP_FUNCTION(xmlwriter_start_pi) End current PI - returns FALSE on error */ PHP_FUNCTION(xmlwriter_end_pi) { - php_xmlwriter_end(INTERNAL_FUNCTION_PARAM_PASSTHRU, 2); + php_xmlwriter_end(INTERNAL_FUNCTION_PARAM_PASSTHRU, xmlTextWriterEndPI); } /* }}} */ @@ -1002,7 +889,7 @@ PHP_FUNCTION(xmlwriter_start_cdata) End current CDATA - returns FALSE on error */ PHP_FUNCTION(xmlwriter_end_cdata) { - php_xmlwriter_end(INTERNAL_FUNCTION_PARAM_PASSTHRU, 3); + php_xmlwriter_end(INTERNAL_FUNCTION_PARAM_PASSTHRU, xmlTextWriterEndCDATA); } /* }}} */ @@ -1010,40 +897,15 @@ PHP_FUNCTION(xmlwriter_end_cdata) Write full CDATA tag - returns FALSE on error */ PHP_FUNCTION(xmlwriter_write_cdata) { - zval *pind; - xmlwriter_object *intern; - xmlTextWriterPtr ptr; - char *content; - int content_len, retval; - -#ifdef ZEND_ENGINE_2 - zval *this = getThis(); - - if (this) { - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &content, &content_len) == FAILURE) { - return; - } - XMLWRITER_FROM_OBJECT(intern, this); - } else -#endif - { - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs", &pind, - &content, &content_len) == FAILURE) { - return; - } - ZEND_FETCH_RESOURCE(intern,xmlwriter_object *, &pind, -1, "XMLWriter", le_xmlwriter); - } - - ptr = intern->ptr; + php_xmlwriter_string_arg(INTERNAL_FUNCTION_PARAM_PASSTHRU, xmlTextWriterWriteCDATA, NULL); +} +/* }}} */ - if (ptr) { - retval = xmlTextWriterWriteCDATA(ptr, content); - if (retval != -1) { - RETURN_TRUE; - } - } - - RETURN_FALSE; +/* {{{ proto bool xmlwriter_write_raw(resource xmlwriter, string content) +Write text - returns FALSE on error */ +PHP_FUNCTION(xmlwriter_write_raw) +{ + php_xmlwriter_string_arg(INTERNAL_FUNCTION_PARAM_PASSTHRU, xmlTextWriterWriteRaw, NULL); } /* }}} */ @@ -1051,40 +913,7 @@ PHP_FUNCTION(xmlwriter_write_cdata) Write text - returns FALSE on error */ PHP_FUNCTION(xmlwriter_text) { - zval *pind; - xmlwriter_object *intern; - xmlTextWriterPtr ptr; - char *content; - int content_len, retval; - -#ifdef ZEND_ENGINE_2 - zval *this = getThis(); - - if (this) { - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &content, &content_len) == FAILURE) { - return; - } - XMLWRITER_FROM_OBJECT(intern, this); - } else -#endif - { - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs", &pind, &content, &content_len) == FAILURE) { - return; - } - - ZEND_FETCH_RESOURCE(intern,xmlwriter_object *, &pind, -1, "XMLWriter", le_xmlwriter); - } - - ptr = intern->ptr; - - if (ptr) { - retval = xmlTextWriterWriteString(ptr, content); - if (retval) { - RETURN_TRUE; - } - } - - RETURN_FALSE; + php_xmlwriter_string_arg(INTERNAL_FUNCTION_PARAM_PASSTHRU, xmlTextWriterWriteString, NULL); } /* }}} */ @@ -1128,7 +957,7 @@ PHP_FUNCTION(xmlwriter_start_comment) Create end comment - returns FALSE on error */ PHP_FUNCTION(xmlwriter_end_comment) { - php_xmlwriter_end(INTERNAL_FUNCTION_PARAM_PASSTHRU, 4); + php_xmlwriter_end(INTERNAL_FUNCTION_PARAM_PASSTHRU, xmlTextWriterEndComment); } /* }}} */ #endif /* LIBXML_VERSION >= 20607 */ @@ -1138,42 +967,7 @@ PHP_FUNCTION(xmlwriter_end_comment) Write full comment tag - returns FALSE on error */ PHP_FUNCTION(xmlwriter_write_comment) { - zval *pind; - xmlwriter_object *intern; - xmlTextWriterPtr ptr; - char *content; - int content_len, retval; - - -#ifdef ZEND_ENGINE_2 - zval *this = getThis(); - - if (this) { - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", - &content, &content_len) == FAILURE) { - return; - } - XMLWRITER_FROM_OBJECT(intern, this); - } else -#endif - { - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs", &pind, - &content, &content_len) == FAILURE) { - return; - } - ZEND_FETCH_RESOURCE(intern,xmlwriter_object *, &pind, -1, "XMLWriter", le_xmlwriter); - } - - ptr = intern->ptr; - - if (ptr) { - retval = xmlTextWriterWriteComment(ptr, content); - if (retval != -1) { - RETURN_TRUE; - } - } - - RETURN_FALSE; + php_xmlwriter_string_arg(INTERNAL_FUNCTION_PARAM_PASSTHRU, xmlTextWriterWriteComment, NULL); } /* }}} */ @@ -1221,7 +1015,7 @@ PHP_FUNCTION(xmlwriter_start_document) End current document - returns FALSE on error */ PHP_FUNCTION(xmlwriter_end_document) { - php_xmlwriter_end(INTERNAL_FUNCTION_PARAM_PASSTHRU, 5); + php_xmlwriter_end(INTERNAL_FUNCTION_PARAM_PASSTHRU, xmlTextWriterEndDocument); } /* }}} */ @@ -1270,7 +1064,7 @@ PHP_FUNCTION(xmlwriter_start_dtd) End current DTD - returns FALSE on error */ PHP_FUNCTION(xmlwriter_end_dtd) { - php_xmlwriter_end(INTERNAL_FUNCTION_PARAM_PASSTHRU, 6); + php_xmlwriter_end(INTERNAL_FUNCTION_PARAM_PASSTHRU, xmlTextWriterEndDTD); } /* }}} */ @@ -1320,41 +1114,7 @@ PHP_FUNCTION(xmlwriter_write_dtd) Create start DTD element - returns FALSE on error */ PHP_FUNCTION(xmlwriter_start_dtd_element) { - zval *pind; - xmlwriter_object *intern; - xmlTextWriterPtr ptr; - char *name; - int name_len, retval; - -#ifdef ZEND_ENGINE_2 - zval *this = getThis(); - - if (this) { - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &name, &name_len) == FAILURE) { - return; - } - XMLWRITER_FROM_OBJECT(intern, this); - } else -#endif - { - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs", &pind, &name, &name_len) == FAILURE) { - return; - } - ZEND_FETCH_RESOURCE(intern,xmlwriter_object *, &pind, -1, "XMLWriter", le_xmlwriter); - } - - XMLW_NAME_CHK("Invalid Attribute Name"); - - ptr = intern->ptr; - - if (ptr) { - retval = xmlTextWriterStartDTDElement(ptr, name); - if (retval != -1) { - RETURN_TRUE; - } - } - - RETURN_FALSE; + php_xmlwriter_string_arg(INTERNAL_FUNCTION_PARAM_PASSTHRU, xmlTextWriterStartDTDElement, "Invalid Element Name"); } /* }}} */ @@ -1362,7 +1122,7 @@ PHP_FUNCTION(xmlwriter_start_dtd_element) End current DTD element - returns FALSE on error */ PHP_FUNCTION(xmlwriter_end_dtd_element) { - php_xmlwriter_end(INTERNAL_FUNCTION_PARAM_PASSTHRU, 7); + php_xmlwriter_end(INTERNAL_FUNCTION_PARAM_PASSTHRU, xmlTextWriterEndDTDElement); } /* }}} */ @@ -1414,41 +1174,7 @@ PHP_FUNCTION(xmlwriter_write_dtd_element) Create start DTD AttList - returns FALSE on error */ PHP_FUNCTION(xmlwriter_start_dtd_attlist) { - zval *pind; - xmlwriter_object *intern; - xmlTextWriterPtr ptr; - char *name; - int name_len, retval; - -#ifdef ZEND_ENGINE_2 - zval *this = getThis(); - - if (this) { - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &name, &name_len) == FAILURE) { - return; - } - XMLWRITER_FROM_OBJECT(intern, this); - } else -#endif - { - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs", &pind, &name, &name_len) == FAILURE) { - return; - } - ZEND_FETCH_RESOURCE(intern,xmlwriter_object *, &pind, -1, "XMLWriter", le_xmlwriter); - } - - XMLW_NAME_CHK("Invalid Attribute Name"); - - ptr = intern->ptr; - - if (ptr) { - retval = xmlTextWriterStartDTDAttlist(ptr, name); - if (retval != -1) { - RETURN_TRUE; - } - } - - RETURN_FALSE; + php_xmlwriter_string_arg(INTERNAL_FUNCTION_PARAM_PASSTHRU, xmlTextWriterStartDTDAttlist, "Invalid Element Name"); } /* }}} */ @@ -1456,7 +1182,7 @@ PHP_FUNCTION(xmlwriter_start_dtd_attlist) End current DTD AttList - returns FALSE on error */ PHP_FUNCTION(xmlwriter_end_dtd_attlist) { - php_xmlwriter_end(INTERNAL_FUNCTION_PARAM_PASSTHRU, 8); + php_xmlwriter_end(INTERNAL_FUNCTION_PARAM_PASSTHRU, xmlTextWriterEndDTDAttlist); } /* }}} */ @@ -1553,7 +1279,7 @@ PHP_FUNCTION(xmlwriter_start_dtd_entity) End current DTD Entity - returns FALSE on error */ PHP_FUNCTION(xmlwriter_end_dtd_entity) { - php_xmlwriter_end(INTERNAL_FUNCTION_PARAM_PASSTHRU, 9); + php_xmlwriter_end(INTERNAL_FUNCTION_PARAM_PASSTHRU, xmlTextWriterEndDTDEntity); } /* }}} */ diff --git a/ext/xmlwriter/php_xmlwriter.h b/ext/xmlwriter/php_xmlwriter.h index f27774da4c..2b2040e094 100644 --- a/ext/xmlwriter/php_xmlwriter.h +++ b/ext/xmlwriter/php_xmlwriter.h @@ -70,6 +70,7 @@ PHP_FUNCTION(xmlwriter_write_attribute_ns); #endif PHP_FUNCTION(xmlwriter_start_element); PHP_FUNCTION(xmlwriter_end_element); +PHP_FUNCTION(xmlwriter_full_end_element); PHP_FUNCTION(xmlwriter_start_element_ns); PHP_FUNCTION(xmlwriter_write_element); PHP_FUNCTION(xmlwriter_write_element_ns); @@ -80,6 +81,7 @@ PHP_FUNCTION(xmlwriter_start_cdata); PHP_FUNCTION(xmlwriter_end_cdata); PHP_FUNCTION(xmlwriter_write_cdata); PHP_FUNCTION(xmlwriter_text); +PHP_FUNCTION(xmlwriter_write_raw); PHP_FUNCTION(xmlwriter_start_document); PHP_FUNCTION(xmlwriter_end_document); #if LIBXML_VERSION >= 20607 |