summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/gd/config.m42
-rw-r--r--ext/gd/gd.c20
2 files changed, 13 insertions, 9 deletions
diff --git a/ext/gd/config.m4 b/ext/gd/config.m4
index 2bb17f84c5..c4bee5f521 100644
--- a/ext/gd/config.m4
+++ b/ext/gd/config.m4
@@ -196,6 +196,8 @@ AC_DEFUN(PHP_GD_CHECK_VERSION,[
AC_CHECK_LIB(gd, gdImageCreateTrueColor, [AC_DEFINE(HAVE_LIBGD20, 1, [ ])])
AC_CHECK_LIB(gd, gdImageSetTile, [AC_DEFINE(HAVE_GD_IMAGESETTILE, 1, [ ])])
AC_CHECK_LIB(gd, gdImageSetBrush, [AC_DEFINE(HAVE_GD_IMAGESETBRUSH, 1, [ ])])
+ AC_CHECK_LIB(gd, gdImageStringTTF, [AC_DEFINE(HAVE_GD_STRINGTTF, 1, [ ])])
+ AC_CHECK_LIB(gd, gdImageStringFT, [AC_DEFINE(HAVE_GD_STRINGFT, 1, [ ])])
AC_CHECK_LIB(gd, gdImageStringFTEx, [AC_DEFINE(HAVE_GD_STRINGFTEX, 1, [ ])])
AC_CHECK_LIB(gd, gdImageColorClosestHWB, [AC_DEFINE(HAVE_COLORCLOSESTHWB, 1, [ ])])
AC_CHECK_LIB(gd, gdImageColorResolve, [AC_DEFINE(HAVE_GDIMAGECOLORRESOLVE, 1, [ ])])
diff --git a/ext/gd/gd.c b/ext/gd/gd.c
index 55e7e206c0..3526ae0ee6 100644
--- a/ext/gd/gd.c
+++ b/ext/gd/gd.c
@@ -2610,7 +2610,6 @@ PHP_FUNCTION(imagefttext)
/* }}} */
-
/* {{{ proto array imagettfbbox(int size, int angle, string font_file, string text)
Give the bounding box of a text using TrueType fonts */
PHP_FUNCTION(imagettfbbox)
@@ -2640,8 +2639,7 @@ PHP_FUNCTION(imagettftext)
#ifdef ENABLE_GD_TTF
/* {{{ php_imagettftext_common
*/
-static
-void php_imagettftext_common(INTERNAL_FUNCTION_PARAMETERS, int mode, int extended)
+static void php_imagettftext_common(INTERNAL_FUNCTION_PARAMETERS, int mode, int extended)
{
zval **IM, **PTSIZE, **ANGLE, **X, **Y, **C, **FONTNAME, **COL, **EXT = NULL;
gdImagePtr im=NULL;
@@ -2739,23 +2737,27 @@ void php_imagettftext_common(INTERNAL_FUNCTION_PARAMETERS, int mode, int extende
fontname = (unsigned char*)Z_STRVAL_PP(FONTNAME);
#endif
-#ifdef USE_GD_IMGSTRTTF
-# if HAVE_LIBFREETYPE
-#if HAVE_GD_STRINGFTEX
+#ifdef USE_GD_IMGSTRTTF
+# if HAVE_GD_STRINGFTEX
if (extended) {
error = gdImageStringFTEx(im, brect, col, fontname, ptsize, angle, x, y, str, &strex);
}
else
-#endif
+# endif
+# if HAVE_GD_STRINGFT
error = gdImageStringFT(im, brect, col, fontname, ptsize, angle, x, y, str);
-# else
+# endif
+
+# if HAVE_GD_STRINGTTF
error = gdImageStringTTF(im, brect, col, fontname, ptsize, angle, x, y, str);
# endif
-#else
+
+#else /* !USE_GD_IMGSTRTTF */
error = gdttf(im, brect, col, fontname, ptsize, angle, x, y, str);
#endif
+
if (error) {
php_error(E_WARNING, "%s", error);
RETURN_FALSE;