}
/* }}} */
+
/* {{{ xmlwriter_object_new */
PHP_XMLWRITER_API zend_object_value xmlwriter_object_new(zend_class_entry *class_type TSRMLS_DC)
{
/* }}} */
#endif
+#define XMLW_NAME_CHK(__err) \
+ if (xmlValidateName((xmlChar *) name, 0) != 0) { \
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, #__err); \
+ RETURN_FALSE; \
+ } \
+
/* {{{ xmlwriter_functions */
static zend_function_entry xmlwriter_functions[] = {
PHP_FE(xmlwriter_open_uri, NULL)
}
- retval = xmlValidateName((xmlChar *) name, 0);
- if (retval != 0) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid Attribute Name");
- RETURN_FALSE;
- }
+ XMLW_NAME_CHK("Invalid Element Name");
ptr = intern->ptr;
}
/* }}} */
-/* {{{ proto bool xmlwriter_end_attribute(resource xmlwriter)
-End attribute - returns FALSE on error */
-PHP_FUNCTION(xmlwriter_end_attribute)
+static void php_xmlwriter_end(INTERNAL_FUNCTION_PARAMETERS, int type)
{
zval *pind;
xmlwriter_object *intern;
ptr = intern->ptr;
if (ptr) {
- retval = xmlTextWriterEndAttribute(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_end_attribute(resource xmlwriter)
+End attribute - returns FALSE on error */
+PHP_FUNCTION(xmlwriter_end_attribute)
+{
+ php_xmlwriter_end(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0);
+}
/* }}} */
#if LIBXML_VERSION > 20617
ZEND_FETCH_RESOURCE(intern,xmlwriter_object *, &pind, -1, "XMLWriter", le_xmlwriter);
}
- retval = xmlValidateName((xmlChar *) name, 0);
- if (retval != 0) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid Attribute Name");
- RETURN_FALSE;
- }
-
+ XMLW_NAME_CHK("Invalid Attribute Name");
ptr = intern->ptr;
ZEND_FETCH_RESOURCE(intern,xmlwriter_object *, &pind, -1, "XMLWriter", le_xmlwriter);
}
- retval = xmlValidateName((xmlChar *) name, 0);
- if (retval != 0) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid Attribute Name");
- RETURN_FALSE;
- }
+ XMLW_NAME_CHK("Invalid Attribute Name");
ptr = intern->ptr;
ZEND_FETCH_RESOURCE(intern,xmlwriter_object *, &pind, -1, "XMLWriter", le_xmlwriter);
}
- retval = xmlValidateName((xmlChar *) name, 0);
- if (retval != 0) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid Attribute Name");
- RETURN_FALSE;
- }
+ XMLW_NAME_CHK("Invalid Attribute Name");
ptr = intern->ptr;
ZEND_FETCH_RESOURCE(intern,xmlwriter_object *, &pind, -1, "XMLWriter", le_xmlwriter);
}
- retval = xmlValidateName((xmlChar *) name, 0);
- if (retval != 0) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid Element Name");
- RETURN_FALSE;
- }
+ XMLW_NAME_CHK("Invalid Element Name");
ptr = intern->ptr;
}
/* }}} */
+
/* {{{ proto bool xmlwriter_start_element_ns(resource xmlwriter, string prefix, string name, string uri)
Create start namespaced element tag - returns FALSE on error */
PHP_FUNCTION(xmlwriter_start_element_ns)
ZEND_FETCH_RESOURCE(intern,xmlwriter_object *, &pind, -1, "XMLWriter", le_xmlwriter);
}
- retval = xmlValidateName((xmlChar *) name, 0);
- if (retval != 0) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid Element Name");
- RETURN_FALSE;
- }
-
+ XMLW_NAME_CHK("Invalid Element Name");
ptr = intern->ptr;
if (retval != -1) {
RETURN_TRUE;
}
+
}
RETURN_FALSE;
End current element - returns FALSE on error */
PHP_FUNCTION(xmlwriter_end_element)
{
- 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);
- }
-
- ptr = intern->ptr;
-
- if (ptr) {
- retval = xmlTextWriterEndElement(ptr);
- if (retval != -1) {
- RETURN_TRUE;
- }
- }
-
- RETURN_FALSE;
+ php_xmlwriter_end(INTERNAL_FUNCTION_PARAM_PASSTHRU, 1);
}
/* }}} */
ZEND_FETCH_RESOURCE(intern,xmlwriter_object *, &pind, -1, "XMLWriter", le_xmlwriter);
}
- retval = xmlValidateName((xmlChar *) name, 0);
- if (retval != 0) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid Element Name");
- RETURN_FALSE;
- }
+ XMLW_NAME_CHK("Invalid Element Name");
ptr = intern->ptr;
ZEND_FETCH_RESOURCE(intern,xmlwriter_object *, &pind, -1, "XMLWriter", le_xmlwriter);
}
- retval = xmlValidateName((xmlChar *) name, 0);
- if (retval != 0) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid Element Name");
- RETURN_FALSE;
- }
+ XMLW_NAME_CHK("Invalid Element Name");
ptr = intern->ptr;
zval *pind;
xmlwriter_object *intern;
xmlTextWriterPtr ptr;
- char *target;
- int target_len, retval;
+ 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", &target, &target_len) == 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, "rs", &pind, &target, &target_len) == 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);
}
- retval = xmlValidateName((xmlChar *) target, 0);
- if (retval != 0) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid PI Target");
- RETURN_FALSE;
- }
+ XMLW_NAME_CHK("Invalid PI Target");
ptr = intern->ptr;
if (ptr) {
- retval = xmlTextWriterStartPI(ptr, target);
+ retval = xmlTextWriterStartPI(ptr, name);
if (retval != -1) {
RETURN_TRUE;
}
End current PI - returns FALSE on error */
PHP_FUNCTION(xmlwriter_end_pi)
{
- 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);
- }
-
- ptr = intern->ptr;
-
- if (ptr) {
- retval = xmlTextWriterEndPI(ptr);
- if (retval != -1) {
- RETURN_TRUE;
- }
- }
-
- RETURN_FALSE;
+ php_xmlwriter_end(INTERNAL_FUNCTION_PARAM_PASSTHRU, 2);
}
/* }}} */
zval *pind;
xmlwriter_object *intern;
xmlTextWriterPtr ptr;
- char *target, *content;
- int target_len, content_len, retval;
+ char *name, *content;
+ int name_len, content_len, retval;
#ifdef ZEND_ENGINE_2
zval *this = getThis();
if (this) {
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss",
- &target, &target_len, &content, &content_len) == FAILURE) {
+ &name, &name_len, &content, &content_len) == FAILURE) {
return;
}
XMLWRITER_FROM_OBJECT(intern, this);
#endif
{
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rss", &pind,
- &target, &target_len, &content, &content_len) == FAILURE) {
+ &name, &name_len, &content, &content_len) == FAILURE) {
return;
}
ZEND_FETCH_RESOURCE(intern,xmlwriter_object *, &pind, -1, "XMLWriter", le_xmlwriter);
}
- retval = xmlValidateName((xmlChar *) target, 0);
- if (retval != 0) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid PI Target");
- RETURN_FALSE;
- }
+ XMLW_NAME_CHK("Invalid PI Target");
ptr = intern->ptr;
if (ptr) {
- retval = xmlTextWriterWritePI(ptr, target, content);
+ retval = xmlTextWriterWritePI(ptr, name, content);
if (retval != -1) {
RETURN_TRUE;
}
End current CDATA - returns FALSE on error */
PHP_FUNCTION(xmlwriter_end_cdata)
{
- 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);
- }
-
- ptr = intern->ptr;
-
- if (ptr) {
- retval = xmlTextWriterEndCDATA(ptr);
- if (retval != -1) {
- RETURN_TRUE;
- }
- }
-
- RETURN_FALSE;
+ php_xmlwriter_end(INTERNAL_FUNCTION_PARAM_PASSTHRU, 3);
}
/* }}} */
if (ptr) {
retval = xmlTextWriterWriteString(ptr, content);
- if (retval != -1) {
+ if (retval) {
RETURN_TRUE;
}
}
Create end comment - returns FALSE on error */
PHP_FUNCTION(xmlwriter_end_comment)
{
- 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);
- }
-
- ptr = intern->ptr;
-
- if (ptr) {
- retval = xmlTextWriterEndComment(ptr);
- if (retval != -1) {
- RETURN_TRUE;
- }
- }
-
- RETURN_FALSE;
+ php_xmlwriter_end(INTERNAL_FUNCTION_PARAM_PASSTHRU, 4);
}
/* }}} */
#endif /* LIBXML_VERSION >= 20607 */
End current document - returns FALSE on error */
PHP_FUNCTION(xmlwriter_end_document)
{
- 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);
- }
-
- ptr = intern->ptr;
-
- if (ptr) {
- retval = xmlTextWriterEndDocument(ptr);
- if (retval != -1) {
- RETURN_TRUE;
- }
- }
-
- RETURN_FALSE;
+ php_xmlwriter_end(INTERNAL_FUNCTION_PARAM_PASSTHRU, 5);
}
/* }}} */
End current DTD - returns FALSE on error */
PHP_FUNCTION(xmlwriter_end_dtd)
{
- 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);
- }
- ptr = intern->ptr;
-
- if (ptr) {
- retval = xmlTextWriterEndDTD(ptr);
- if (retval != -1) {
- RETURN_TRUE;
- }
- }
-
- RETURN_FALSE;
+ php_xmlwriter_end(INTERNAL_FUNCTION_PARAM_PASSTHRU, 6);
}
/* }}} */
ZEND_FETCH_RESOURCE(intern,xmlwriter_object *, &pind, -1, "XMLWriter", le_xmlwriter);
}
- retval = xmlValidateName((xmlChar *) name, 0);
- if (retval != 0) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid Attribute Name");
- RETURN_FALSE;
- }
+ XMLW_NAME_CHK("Invalid Attribute Name");
ptr = intern->ptr;
End current DTD element - returns FALSE on error */
PHP_FUNCTION(xmlwriter_end_dtd_element)
{
- 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);
- }
- ptr = intern->ptr;
-
- if (ptr) {
- retval = xmlTextWriterEndDTDElement(ptr);
- if (retval != -1) {
- RETURN_TRUE;
- }
- }
-
- RETURN_FALSE;
+ php_xmlwriter_end(INTERNAL_FUNCTION_PARAM_PASSTHRU, 7);
}
/* }}} */
ZEND_FETCH_RESOURCE(intern,xmlwriter_object *, &pind, -1, "XMLWriter", le_xmlwriter);
}
- retval = xmlValidateName((xmlChar *) name, 0);
- if (retval != 0) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid Element Name");
- RETURN_FALSE;
- }
+ XMLW_NAME_CHK("Invalid Element Name");
ptr = intern->ptr;
ZEND_FETCH_RESOURCE(intern,xmlwriter_object *, &pind, -1, "XMLWriter", le_xmlwriter);
}
- retval = xmlValidateName((xmlChar *) name, 0);
- if (retval != 0) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid Attribute Name");
- RETURN_FALSE;
- }
+ XMLW_NAME_CHK("Invalid Attribute Name");
ptr = intern->ptr;
End current DTD AttList - returns FALSE on error */
PHP_FUNCTION(xmlwriter_end_dtd_attlist)
{
- 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);
- }
- ptr = intern->ptr;
-
- if (ptr) {
- retval = xmlTextWriterEndDTDAttlist(ptr);
- if (retval != -1) {
- RETURN_TRUE;
- }
- }
-
- RETURN_FALSE;
+ php_xmlwriter_end(INTERNAL_FUNCTION_PARAM_PASSTHRU, 8);
}
/* }}} */
ZEND_FETCH_RESOURCE(intern,xmlwriter_object *, &pind, -1, "XMLWriter", le_xmlwriter);
}
- retval = xmlValidateName((xmlChar *) name, 0);
- if (retval != 0) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid Element Name");
- RETURN_FALSE;
- }
-
+ XMLW_NAME_CHK("Invalid Element Name");
ptr = intern->ptr;
ZEND_FETCH_RESOURCE(intern,xmlwriter_object *, &pind, -1, "XMLWriter", le_xmlwriter);
}
- retval = xmlValidateName((xmlChar *) name, 0);
- if (retval != 0) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid Attribute Name");
- RETURN_FALSE;
- }
+ XMLW_NAME_CHK("Invalid Attribute Name");
ptr = intern->ptr;
End current DTD Entity - returns FALSE on error */
PHP_FUNCTION(xmlwriter_end_dtd_entity)
{
- 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);
- }
- ptr = intern->ptr;
-
- if (ptr) {
- retval = xmlTextWriterEndDTDEntity(ptr);
- if (retval != -1) {
- RETURN_TRUE;
- }
- }
-
- RETURN_FALSE;
+ php_xmlwriter_end(INTERNAL_FUNCTION_PARAM_PASSTHRU, 9);
}
/* }}} */
ZEND_FETCH_RESOURCE(intern,xmlwriter_object *, &pind, -1, "XMLWriter", le_xmlwriter);
}
- retval = xmlValidateName((xmlChar *) name, 0);
- if (retval != 0) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid Element Name");
- RETURN_FALSE;
- }
+ XMLW_NAME_CHK("Invalid Element Name");
ptr = intern->ptr;