Skip to content

Commit 72b2a61

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

File tree

1 file changed

+27
-5
lines changed

1 file changed

+27
-5
lines changed

ext/tidy/config.m4

Lines changed: 27 additions & 5 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,14 +64,34 @@ if test "$PHP_TIDY" != "no"; then
6264
AC_DEFINE(HAVE_TIDYRELEASEDATE,1,[ ])
6365
], [], [])
6466

65-
PHP_CHECK_LIBRARY($TIDY_LIB_NAME,tidyOptGetCategory,
66-
[
67-
AC_DEFINE(HAVE_TIDYOPTGETCATEGORY,1,[ ])
68-
], [], [])
69-
7067
PHP_ADD_LIBRARY_WITH_PATH($TIDY_LIB_NAME, $TIDY_LIBDIR, TIDY_SHARED_LIBADD)
7168
PHP_ADD_INCLUDE($TIDY_INCDIR)
7269

70+
old_CPPFLAGS=$CPPFLAGS
71+
CPPFLAGS=-I$TIDY_INCDIR
72+
73+
AC_CACHE_CHECK([for tidyOptGetCategory], php_ac_cv_have_tidyoptgetcategory, [
74+
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
75+
#include $TIDY_HEADER
76+
]],[[
77+
TidyDoc doc = tidyCreate();
78+
TidyOption badopt = tidyGetOptionByName(doc, "<bad>");
79+
Bool v = (tidyOptGetCategory(badopt) == TidyInternalCategory);
80+
(void)v;
81+
tidyRelease(doc);
82+
return 0;
83+
]])],[
84+
php_ac_cv_have_tidyoptgetcategory=yes
85+
],[
86+
php_ac_cv_have_tidyoptgetcategory=no
87+
])
88+
])
89+
if test "$php_ac_cv_have_tidyoptgetcategory" = yes; then
90+
AC_DEFINE(HAVE_TIDYOPTGETCATEGORY, 1, [Whether tidyOptGetCatgegory is available])
91+
fi
92+
93+
CPPFLAGS=$old_CPPFLAGS
94+
7395
dnl Add -Wno-ignored-qualifiers as this is an issue upstream
7496
TIDY_COMPILER_FLAGS="$TIDY_CFLAGS -Wno-ignored-qualifiers -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1"
7597
PHP_NEW_EXTENSION(tidy, tidy.c, $ext_shared,, $TIDY_COMPILER_FLAGS)

0 commit comments

Comments
 (0)