diff options
Diffstat (limited to 'community/adesklets/fontconfig-2.4.patch')
-rw-r--r-- | community/adesklets/fontconfig-2.4.patch | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/community/adesklets/fontconfig-2.4.patch b/community/adesklets/fontconfig-2.4.patch new file mode 100644 index 000000000..e7a1ad5ca --- /dev/null +++ b/community/adesklets/fontconfig-2.4.patch @@ -0,0 +1,50 @@ +--- configure.ac ++++ configure.ac +@@ -1,4 +1,4 @@ +-dnl Initialize autoconf and automake ++nl Initialize autoconf and automake + AC_INIT + AC_CONFIG_SRCDIR(src/main.c) + AC_PREREQ(2.52) +@@ -428,7 +428,18 @@ AC_TRY_LINK( + #include <fontconfig/fontconfig.h> + , FcInit(), + AC_MSG_RESULT([yes]) +-AC_DEFINE(HAVE_FONTCONFIG_FONTCONFIG_H,1,[Define to 1 if you have the <fontconfig/fontconfig.h> header file.]), ++AC_DEFINE(HAVE_FONTCONFIG_FONTCONFIG_H,1,[Define to 1 if you have the <fontconfig/fontconfig.h> header file.]) ++ ++AC_MSG_CHECKING([For fontconfig FcFini()]) ++AC_TRY_LINK( ++#include <fontconfig/fontconfig.h> ++, FcFini(), ++AC_MSG_RESULT([yes]) ++AC_DEFINE(HAVE_FONTCONFIG_FCFINI,1,[Define to 1 if FcFini() call exists]) ++, ++AC_MSG_RESULT([no])) ++ ++, + AC_MSG_RESULT([no]) + FONTCONFIG_LIBS= + FONTCONFIG_CFLAGS= +--- src/xwindow.c ++++ src/xwindow.c +@@ -123,9 +123,17 @@ + if ((strlen((char*)file)>4) && + (strstr((char*)file+strlen((char*)file)-4,".ttf"))) + imlib_add_path_to_font_path(dirname((char*)file)); +- FcFontSetDestroy(fs); +- FcObjectSetDestroy(os); + } ++#ifdef HAVE_FONTCONFIG_FCFINI ++ FcFini(); ++#else ++ /* On FontConfig >= 2.4, this causes a segfault, probably due to the new ++ caching mechanism: we don't have to care, since FcFini() always exists, ++ and does the dirty dessalocation job just fine. ++ */ ++ if (fs) FcFontSetDestroy(fs); ++ FcObjectSetDestroy(os); ++#endif + } + #endif + imlib_add_path_to_font_path("."); |