aboutsummaryrefslogtreecommitdiff
path: root/textproc/php81-xml
diff options
context:
space:
mode:
Diffstat (limited to 'textproc/php81-xml')
-rw-r--r--textproc/php81-xml/Makefile1
-rw-r--r--textproc/php81-xml/files/patch-compat.c19
2 files changed, 16 insertions, 4 deletions
diff --git a/textproc/php81-xml/Makefile b/textproc/php81-xml/Makefile
index 6baacc4611cc..0800edeb41eb 100644
--- a/textproc/php81-xml/Makefile
+++ b/textproc/php81-xml/Makefile
@@ -1,3 +1,4 @@
+PORTREVISION= 1
CATEGORIES= textproc
MASTERDIR= ${.CURDIR}/../../lang/php81
diff --git a/textproc/php81-xml/files/patch-compat.c b/textproc/php81-xml/files/patch-compat.c
index 02125961b20c..af608e129191 100644
--- a/textproc/php81-xml/files/patch-compat.c
+++ b/textproc/php81-xml/files/patch-compat.c
@@ -1,6 +1,6 @@
---- compat.c.orig Tue Jul 20 10:55:02 2004
-+++ compat.c Tue Jul 20 10:55:55 2004
-@@ -16,6 +16,10 @@
+--- compat.c.orig 2025-07-01 21:17:52 UTC
++++ compat.c
+@@ -14,6 +14,10 @@
+----------------------------------------------------------------------+
*/
@@ -9,5 +9,16 @@
+#endif
+
#include "php.h"
- #if defined(HAVE_LIBXML) && defined(HAVE_XML) && !defined(HAVE_LIBEXPAT)
+ #if defined(HAVE_LIBXML) && (defined(HAVE_XML) || defined(HAVE_XMLRPC)) && !defined(HAVE_LIBEXPAT)
#include "expat_compat.h"
+@@ -375,7 +379,9 @@ _get_entity(void *user, const xmlChar *name)
+ if (ret == NULL)
+ ret = xmlGetDocEntity(parser->parser->myDoc, name);
+
+- if (ret == NULL || (parser->parser->instate != XML_PARSER_ENTITY_VALUE && parser->parser->instate != XML_PARSER_ATTRIBUTE_VALUE)) {
++/* Fix parse error on some XML files so that devel/pear work again. */
++/* See https://github.com/php/php-src/issues/14834 for details. */
++ if (ret == NULL || parser->parser->instate == XML_PARSER_CONTENT) {
+ if (ret == NULL || ret->etype == XML_INTERNAL_GENERAL_ENTITY || ret->etype == XML_INTERNAL_PARAMETER_ENTITY || ret->etype == XML_INTERNAL_PREDEFINED_ENTITY) {
+ /* Predefined entities will expand unless no cdata handler is present */
+ if (parser->h_default && ! (ret && ret->etype == XML_INTERNAL_PREDEFINED_ENTITY && parser->h_cdata)) {