Skip to content

Commit c774619

Browse files
committed
Merge branch 'PHP-7.4' into master
* PHP-7.4: Fix #77040: tidyNode::isHtml() is completely broken
2 parents 91f47ee + ff3878a commit c774619

File tree

2 files changed

+34
-4
lines changed

2 files changed

+34
-4
lines changed

ext/tidy/tests/bug77040.phpt

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
--TEST--
2+
Bug #77040 (tidyNode::isHtml() is completely broken)
3+
--SKIPIF--
4+
<?php
5+
if (!extension_loaded('tidy')) die('skip tidy extension not available');
6+
?>
7+
--FILE--
8+
<?php
9+
$tidy = new tidy;
10+
$tidy->parseString("<p>text</p><p><![CDATA[cdata]]></p>");
11+
$p = $tidy->body()->child[0];
12+
var_dump($p->type === TIDY_NODETYPE_START);
13+
var_dump($p->isHtml());
14+
$text = $p->child[0];
15+
var_dump($text->type === TIDY_NODETYPE_TEXT);
16+
var_dump($text->isHtml());
17+
$cdata = $tidy->body()->child[1]->child[0];
18+
var_dump($cdata->type === TIDY_NODETYPE_CDATA);
19+
var_dump($cdata->isHtml());
20+
?>
21+
--EXPECT--
22+
bool(true)
23+
bool(true)
24+
bool(true)
25+
bool(false)
26+
bool(true)
27+
bool(false)

ext/tidy/tidy.c

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1525,11 +1525,14 @@ PHP_METHOD(tidyNode, isHtml)
15251525
{
15261526
TIDY_FETCH_ONLY_OBJECT;
15271527

1528-
if (tidyNodeGetType(obj->node) & (TidyNode_Start | TidyNode_End | TidyNode_StartEnd)) {
1529-
RETURN_TRUE;
1528+
switch (tidyNodeGetType(obj->node)) {
1529+
case TidyNode_Start:
1530+
case TidyNode_End:
1531+
case TidyNode_StartEnd:
1532+
RETURN_TRUE;
1533+
default:
1534+
RETURN_FALSE;
15301535
}
1531-
1532-
RETURN_FALSE;
15331536
}
15341537
/* }}} */
15351538

0 commit comments

Comments
 (0)