Merge branch 'PHP-8.3'

* PHP-8.3:
  Fix GH-12980: tidynode.props.attribute is missing "Boolean Attributes" and empty attributes
This commit is contained in:
Niels Dossche 2023-12-22 17:38:24 +01:00
commit ec8e86b96f
2 changed files with 40 additions and 2 deletions

View file

@ -0,0 +1,34 @@
--TEST--
GH-12980 (tidynode.props.attribute is missing "Boolean Attributes" and empty attributes)
--EXTENSIONS--
tidy
--FILE--
<?php
$html = '<!DOCTYPE html><html lang="en" boolean empty="" selected="selected"></html>';
$tidy = new tidy();
$tidy->ParseString($html);
echo tidy_get_output($tidy), "\n";
var_dump($tidy->root()->child[1]->attribute);
?>
--EXPECT--
<!DOCTYPE html>
<html lang="en" boolean="" empty="" selected="selected">
<head>
<title></title>
</head>
<body>
</body>
</html>
array(4) {
["lang"]=>
string(2) "en"
["boolean"]=>
string(0) ""
["empty"]=>
string(0) ""
["selected"]=>
string(8) "selected"
}

View file

@ -662,8 +662,12 @@ static void tidy_add_node_default_properties(PHPTidyObj *obj)
do {
name = (char *)tidyAttrName(tempattr);
val = (char *)tidyAttrValue(tempattr);
if (name && val) {
if (name) {
if (val) {
add_assoc_string(&attribute, name, val);
} else {
add_assoc_str(&attribute, name, zend_empty_string);
}
}
} while((tempattr = tidyAttrNext(tempattr)));
} else {