summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph M. Becker <cmbecker69@gmx.de>2018-10-16 18:47:31 +0200
committerChristoph M. Becker <cmbecker69@gmx.de>2018-10-16 18:47:31 +0200
commitb33124239af07c9349cba42a516b9f00e8357445 (patch)
treefe80c8a0e5b6d0fb99a2536c29afe1d7690465cd
parent113213f0277562a4ca6d020cb28ba98321d3c62a (diff)
downloadphp-git-b33124239af07c9349cba42a516b9f00e8357445.tar.gz
Add support for getting SKIP_TAGSTART and SKIP_WHITE options
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>
-rw-r--r--NEWS1
-rw-r--r--ext/xml/tests/xml_parser_get_option_variation3.phpt29
-rw-r--r--ext/xml/xml.c6
3 files changed, 36 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index 3da21a1c5c..4652c6657f 100644
--- a/NEWS
+++ b/NEWS
@@ -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
diff --git a/ext/xml/tests/xml_parser_get_option_variation3.phpt b/ext/xml/tests/xml_parser_get_option_variation3.phpt
new file mode 100644
index 0000000000..839daa96dd
--- /dev/null
+++ b/ext/xml/tests/xml_parser_get_option_variation3.phpt
@@ -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)
diff --git a/ext/xml/xml.c b/ext/xml/xml.c
index b1f8cc5bd9..373330f035 100644
--- a/ext/xml/xml.c
+++ b/ext/xml/xml.c
@@ -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;