diff --git a/NEWS b/NEWS index 6c30ac60aa8..0ac58590334 100644 --- a/NEWS +++ b/NEWS @@ -60,6 +60,7 @@ PHP NEWS - Tidy: . Fix memory leak in tidy output handler on error. (nielsdos) + . Fix tidyOptIsReadonly deprecation, using tidyOptGetCategory. (David Carlier) 06 Jun 2025, PHP 8.4.8 diff --git a/ext/tidy/config.m4 b/ext/tidy/config.m4 index 8c3ceb38daf..bb852363465 100644 --- a/ext/tidy/config.m4 +++ b/ext/tidy/config.m4 @@ -57,6 +57,12 @@ if test "$PHP_TIDY" != "no"; then [], [-L$TIDY_LIBDIR]) + PHP_CHECK_LIBRARY([$TIDY_LIB_NAME], [tidyOptGetCategory], + [AC_DEFINE([HAVE_TIDYOPTGETCATEGORY], [1], + [Define to 1 if Tidy library has the 'tidyOptGetCategory' function.])], + [], + [-L$TIDY_LIBDIR]) + PHP_ADD_LIBRARY_WITH_PATH([$TIDY_LIB_NAME], [$TIDY_LIBDIR], [TIDY_SHARED_LIBADD]) diff --git a/ext/tidy/tidy.c b/ext/tidy/tidy.c index 351002c6dd5..ab991b2f8b7 100644 --- a/ext/tidy/tidy.c +++ b/ext/tidy/tidy.c @@ -234,7 +234,11 @@ static int _php_tidy_set_tidy_opt(TidyDoc doc, const char *optname, zval *value) return FAILURE; } +#if defined(HAVE_TIDYOPTGETCATEGORY) + if (tidyOptGetCategory(opt) == TidyInternalCategory) { +#else if (tidyOptIsReadOnly(opt)) { +#endif php_error_docref(NULL, E_WARNING, "Attempting to set read-only option \"%s\"", optname); return FAILURE; }