Skip to content

Commit e5a6977

Browse files
committed
Fix GH-19021: improve tidyOptGetCategory detection.
We now check both this symbol and TidyInternalCategory presence.
1 parent a97717d commit e5a6977

File tree

1 file changed

+28
-6
lines changed

1 file changed

+28
-6
lines changed

ext/tidy/config.m4

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,10 @@ if test "$PHP_TIDY" != "no"; then
4141
TIDY_LIBDIR=$TIDY_DIR/$PHP_LIBDIR
4242
if test "$TIDY_LIB_NAME" == 'tidyp'; then
4343
AC_DEFINE(HAVE_TIDYP_H,1,[defined if tidyp.h exists])
44+
TIDY_HEADER='<tidyp.h>'
4445
else
4546
AC_DEFINE(HAVE_TIDY_H,1,[defined if tidy.h exists])
47+
TIDY_HEADER='<tidy.h>'
4648
fi
4749

4850

@@ -62,15 +64,35 @@ if test "$PHP_TIDY" != "no"; then
6264
AC_DEFINE(HAVE_TIDYRELEASEDATE,1,[ ])
6365
], [], [])
6466

67+
PHP_ADD_LIBRARY_WITH_PATH($TIDY_LIB_NAME, $TIDY_LIBDIR, TIDY_SHARED_LIBADD)
68+
PHP_ADD_INCLUDE($TIDY_INCDIR)
69+
70+
old_CPPFLAGS=$CPPFLAGS
71+
CPPFLAGS=-I$TIDY_INCDIR
72+
6573
dnl The tidyOptGetCategory function (added in libtidy 5.4.0) if only useable
6674
dnl if TidyInternalCategory (added in libtidy 5.6.0) is also present.
67-
PHP_CHECK_LIBRARY($TIDY_LIB_NAME,TidyInternalCategory,
68-
[
69-
AC_DEFINE(HAVE_TIDYOPTGETCATEGORY,1,[ ])
70-
], [], [])
75+
AC_CACHE_CHECK([for tidyOptGetCategory], php_ac_cv_have_tidyoptgetcategory, [
76+
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
77+
#include $TIDY_HEADER
78+
]],[[
79+
TidyDoc doc = tidyCreate();
80+
TidyOption badopt = tidyGetOptionByName(doc, "<bad>");
81+
Bool v = (tidyOptGetCategory(badopt) == TidyInternalCategory);
82+
(void)v;
83+
tidyRelease(doc);
84+
return 0;
85+
]])],[
86+
php_ac_cv_have_tidyoptgetcategory=yes
87+
],[
88+
php_ac_cv_have_tidyoptgetcategory=no
89+
])
90+
])
91+
if test "$php_ac_cv_have_tidyoptgetcategory" = yes; then
92+
AC_DEFINE(HAVE_TIDYOPTGETCATEGORY, 1, [Whether tidyOptGetCatgegory is available])
93+
fi
7194

72-
PHP_ADD_LIBRARY_WITH_PATH($TIDY_LIB_NAME, $TIDY_LIBDIR, TIDY_SHARED_LIBADD)
73-
PHP_ADD_INCLUDE($TIDY_INCDIR)
95+
CPPFLAGS=$old_CPPFLAGS
7496

7597
dnl Add -Wno-ignored-qualifiers as this is an issue upstream
7698
TIDY_COMPILER_FLAGS="$TIDY_CFLAGS -Wno-ignored-qualifiers -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1"

0 commit comments

Comments
 (0)