Skip to content

Commit

Permalink
Add support for getting SKIP_TAGSTART and SKIP_WHITE options
Browse files Browse the repository at this point in the history
When `XML_OPTION_SKIP_TAGSTART` and `XML_OPTION_SKIP_WHITE` had been
introduced[1], it had been overlooked to also support them for
`xml_parser_get_option()`.  We catch up on that.

[1] <http://git.php.net/?p=php-src.git;a=commit;h=b57dc275950b228f2399990471c4f22b7d154c6c>
  • Loading branch information
cmb69 committed Oct 16, 2018
1 parent 113213f commit b331242
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 0 deletions.
1 change: 1 addition & 0 deletions NEWS
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ PHP NEWS

- XML:
. Fixed bug #30875 (xml_parse_into_struct() does not resolve entities). (cmb)
. Add support for getting SKIP_TAGSTART and SKIP_WHITE options. (cmb)

11 Oct 2018, PHP 7.1.23

Expand Down
29 changes: 29 additions & 0 deletions ext/xml/tests/xml_parser_get_option_variation3.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
--TEST--
xml_parser_get_option() with XML_OPTION_SKIP_TAGSTART and XML_OPTION_SKIP_WHITE
--SKIPIF--
<?php
if (!extension_loaded('xml')) die('skip xml extension not available');
?>
--FILE--
<?php
$parser = xml_parser_create();
echo "defaults:\n";
var_dump(xml_parser_get_option($parser, XML_OPTION_SKIP_TAGSTART));
var_dump(xml_parser_get_option($parser, XML_OPTION_SKIP_WHITE));
echo "setting:\n";
var_dump(xml_parser_set_option($parser, XML_OPTION_SKIP_TAGSTART, 7));
var_dump(xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1));
echo "getting:\n";
var_dump(xml_parser_get_option($parser, XML_OPTION_SKIP_TAGSTART));
var_dump(xml_parser_get_option($parser, XML_OPTION_SKIP_WHITE));
?>
--EXPECT--
defaults:
int(0)
int(0)
setting:
bool(true)
bool(true)
getting:
int(7)
int(1)
6 changes: 6 additions & 0 deletions ext/xml/xml.c
Original file line number Diff line number Diff line change
Expand Up @@ -1653,6 +1653,12 @@ PHP_FUNCTION(xml_parser_get_option)
case PHP_XML_OPTION_CASE_FOLDING:
RETURN_LONG(parser->case_folding);
break;
case PHP_XML_OPTION_SKIP_TAGSTART:
RETURN_LONG(parser->toffset);
break;
case PHP_XML_OPTION_SKIP_WHITE:
RETURN_LONG(parser->skipwhite);
break;
case PHP_XML_OPTION_TARGET_ENCODING:
RETURN_STRING((char *)parser->target_encoding);
break;
Expand Down

0 comments on commit b331242

Please sign in to comment.