nlopess Sat Jan 20 12:58:20 2007 UTC Modified files: /php-src/ext/tidy tidy.c /php-src/ext/tidy/tests 024.phpt 025.phpt 026.phpt Log: MFB: fix crash & add tests http://cvs.php.net/viewvc.cgi/php-src/ext/tidy/tidy.c?r1=1.109&r2=1.110&diff_format=u Index: php-src/ext/tidy/tidy.c diff -u php-src/ext/tidy/tidy.c:1.109 php-src/ext/tidy/tidy.c:1.110 --- php-src/ext/tidy/tidy.c:1.109 Sat Jan 20 12:27:55 2007 +++ php-src/ext/tidy/tidy.c Sat Jan 20 12:58:20 2007 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: tidy.c,v 1.109 2007/01/20 12:27:55 nlopess Exp $ */ +/* $Id: tidy.c,v 1.110 2007/01/20 12:58:20 nlopess Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -729,14 +729,22 @@ case IS_STRING: obj = (PHPTidyObj *)zend_object_store_get_object(in TSRMLS_CC); tidyBufInit(&buf); - tidyNodeGetText(obj->ptdoc->doc, obj->node, &buf); - ZVAL_STRINGL(out, (char *) buf.bp, buf.size, 0); + if (obj->ptdoc) { + tidyNodeGetText(obj->ptdoc->doc, obj->node, &buf); + ZVAL_STRINGL(out, (char *) buf.bp, buf.size-1, 0); + } else { + ZVAL_EMPTY_STRING(out); + } break; case IS_UNICODE: obj = (PHPTidyObj *)zend_object_store_get_object(in TSRMLS_CC); - tidyNodeGetText(obj->ptdoc->doc, obj->node, &buf); - ZVAL_U_STRINGL(obj->converter->conv, out, (char *) buf.bp, buf.size, 0); + if (obj->ptdoc) { + tidyNodeGetText(obj->ptdoc->doc, obj->node, &buf); + ZVAL_U_STRINGL(obj->converter->conv, out, (char *) buf.bp, buf.size-1, 0); + } else { + ZVAL_EMPTY_UNICODE(out); + } break; default: @@ -1040,7 +1048,7 @@ php_info_print_table_start(); php_info_print_table_header(2, "Tidy support", "enabled"); php_info_print_table_row(2, "libTidy Release", (char *)tidyReleaseDate()); - php_info_print_table_row(2, "Extension Version", PHP_TIDY_MODULE_VERSION " ($Id: tidy.c,v 1.109 2007/01/20 12:27:55 nlopess Exp $)"); + php_info_print_table_row(2, "Extension Version", PHP_TIDY_MODULE_VERSION " ($Id: tidy.c,v 1.110 2007/01/20 12:58:20 nlopess Exp $)"); php_info_print_table_end(); DISPLAY_INI_ENTRIES(); http://cvs.php.net/viewvc.cgi/php-src/ext/tidy/tests/024.phpt?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/tidy/tests/024.phpt diff -u /dev/null php-src/ext/tidy/tests/024.phpt:1.2 --- /dev/null Sat Jan 20 12:58:20 2007 +++ php-src/ext/tidy/tests/024.phpt Sat Jan 20 12:58:20 2007 @@ -0,0 +1,41 @@ +--TEST-- +libtidy handling of 'new-blocklevel-tags' +--SKIPIF-- +<?php +if (!extension_loaded('tidy')) die('skip'); +if (strtotime(tidy_get_release()) < strtotime('20 january 2007')) die ('skip old libtidy'); +?> +--FILE-- +<?php + +// more info at http://sf.net/tracker/?func=detail&atid=390963&aid=1598422&group_id=27659 + +$contents = ' +<wps:block> +<wps:var> +<wps:value/> +</wps:var> +</wps:block>'; + +$config = array( +'new-blocklevel-tags' => 'wps:block,wps:var,wps:value' +); + +$tidy = tidy_parse_string($contents, $config, 'utf8'); +$tidy->cleanRepair(); + +var_dump($tidy->value); + +?> +--EXPECT-- +string(117) "<html> +<head> +<title></title> +</head> +<body> +<wps:block> +<wps:var> +<wps:value></wps:var> +</wps:block> +</body> +</html>" http://cvs.php.net/viewvc.cgi/php-src/ext/tidy/tests/025.phpt?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/tidy/tests/025.phpt diff -u /dev/null php-src/ext/tidy/tests/025.phpt:1.2 --- /dev/null Sat Jan 20 12:58:20 2007 +++ php-src/ext/tidy/tests/025.phpt Sat Jan 20 12:58:20 2007 @@ -0,0 +1,50 @@ +--TEST-- +tidyNode tests +--SKIPIF-- +<?php if (!extension_loaded('tidy')) die('skip'); ?> +--FILE-- +<?php + +new tidyNode; +$node = new tidyNode(); + +var_dump($node->isPhp()); +var_dump($node->isText()); +var_dump($node->isComment()); +var_dump($node->hasSiblings()); +var_dump((string)$node); + +$tidy=tidy_parse_string('<% %>'); +var_dump($tidy->Root()->child[0]->isAsp()); + +$tidy=tidy_parse_string('<# #>'); +var_dump($tidy->Root()->child[0]->isJste()); + +$tidy=tidy_parse_string('<html><body>text</body></html>'); +var_dump($tidy->Root()->child[0]->child[1]->child[0]->isText()); + +$tidy=tidy_parse_string('<html><body><!-- comment --></body></html>'); +$n = $tidy->Root()->child[0]->child[1]->child[0]; +var_dump($n->isComment()); +var_dump((string)$n); +var_dump((bool)$n); +var_dump((double)$n); +var_dump((int)$n); +var_dump($tidy->Root()->child[0]->child[0]->hasSiblings()); + +?> +--EXPECT-- +bool(false) +bool(false) +bool(false) +bool(false) +string(0) "" +bool(true) +bool(true) +bool(true) +bool(true) +string(16) "<!-- comment -->" +bool(true) +float(0) +int(0) +bool(true) http://cvs.php.net/viewvc.cgi/php-src/ext/tidy/tests/026.phpt?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/tidy/tests/026.phpt diff -u /dev/null php-src/ext/tidy/tests/026.phpt:1.2 --- /dev/null Sat Jan 20 12:58:20 2007 +++ php-src/ext/tidy/tests/026.phpt Sat Jan 20 12:58:20 2007 @@ -0,0 +1,24 @@ +--TEST-- +tidy.clean_output test +--SKIPIF-- +<?php if (!extension_loaded('tidy')) die('skip'); ?> +--INI-- +tidy.clean_output=1 +--FILE-- +<html> +<?php + +echo '<p>xpto</p>'; + +?> +</html> +--EXPECT-- +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<html> +<head> +<title></title> +</head> +<body> +<p>xpto</p> +</body> +</html>
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php