/* {{{ ext/tidy macros
*/
#define REMOVE_NEWLINE(_z) _z->value.str.val[_z->value.str.len-1] = '\0'; _z->value.str.len--;
+#define FIX_BUFFER(bptr) (bptr)->bp[(bptr)->size-1] = '\0'
#define TIDYDOC_FROM_OBJECT(tdoc, object) \
{ \
TidyBuffer buf = {0};
tidyBufInit(&buf);
- tidyBufAppend(&buf, data, data_len);
+ tidyBufAttach(&buf, data, data_len);
if (tidyParseBuffer(doc, &buf) < 0) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", errbuf->bp);
TidyBuffer output = {0};
tidySaveBuffer (doc, &output);
- RETVAL_STRINGL(output.bp, output.size-1, 1);
- tidyBufFree(&output);
+ FIX_BUFFER(&output);
+ RETVAL_STRINGL(output.bp, output.size-1, 0);
} else {
RETVAL_FALSE;
}
}
-
- tidyBufFree(&buf);
}
if (is_file) {
case IS_STRING:
obj = (PHPTidyObj *)zend_object_store_get_object(in TSRMLS_CC);
tidySaveBuffer (obj->ptdoc->doc, &output);
- ZVAL_STRINGL(out, output.bp, output.size-1, TRUE);
- tidyBufFree(&output);
+ ZVAL_STRINGL(out, output.bp, output.size, 0);
break;
default:
case IS_STRING:
obj = (PHPTidyObj *)zend_object_store_get_object(in TSRMLS_CC);
tidyNodeGetText(obj->ptdoc->doc, obj->node, &buf);
- ZVAL_STRINGL(out, buf.bp, buf.size-1, TRUE);
- tidyBufFree(&buf);
+ ZVAL_STRINGL(out, buf.bp, buf.size, 0);
break;
default:
if (output.size) {
MAKE_STD_ZVAL(temp);
- ZVAL_STRINGL(temp, output.bp, output.size-1, TRUE);
+ ZVAL_STRINGL(temp, output.bp, output.size, 0);
zend_hash_update(obj->std.properties, "value", sizeof("value"), (void *)&temp, sizeof(zval *), NULL);
}
-
- tidyBufFree(&output);
if (obj->ptdoc->errbuf->size) {
MAKE_STD_ZVAL(temp);
}
tidyBufInit(&buf);
- tidyBufAppend(&buf, string, len);
+ tidyBufAttach(&buf, string, len);
if (tidyParseBuffer(obj->ptdoc->doc, &buf) < 0) {
- tidyBufFree(&buf);
php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", obj->ptdoc->errbuf->bp);
return FAILURE;
}
- tidyBufFree(&buf);
tidy_doc_update_properties(obj TSRMLS_CC);
return SUCCESS;
TidyBuffer buf = {0};
tidyBufInit(&buf);
- tidyBufAppend(&buf, input, input_len);
+ tidyBufAttach(&buf, input, input_len);
if (tidyParseBuffer(doc, &buf) < 0 || tidyCleanAndRepair(doc) < 0) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", errbuf.bp);
tidyBufInit(&output);
tidySaveBuffer(doc, &output);
- RETVAL_STRINGL(output.bp, output.size-1, 1);
-
- tidyBufFree(&output);
+ FIX_BUFFER(&output);
+ RETVAL_STRINGL(output.bp, output.size-1, 0);
}
-
- tidyBufFree(&buf);
} else {
RETVAL_NULL();
}
TIDY_FETCH_OBJECT;
tidySaveBuffer(obj->ptdoc->doc, &output);
-
- RETVAL_STRINGL(output.bp, output.size-1, 1);
-
- tidyBufFree(&output);
+ FIX_BUFFER(&output);
+ RETVAL_STRINGL(output.bp, output.size-1, 0);
}
/* }}} */