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 eec3fb62d60..f7dca175e60 100644 --- a/ext/tidy/tidy.c +++ b/ext/tidy/tidy.c @@ -233,7 +233,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; }