diff options
Diffstat (limited to 'media-libs/fontconfig/files/fontconfig-2.11.93-addfile.patch')
-rw-r--r-- | media-libs/fontconfig/files/fontconfig-2.11.93-addfile.patch | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/media-libs/fontconfig/files/fontconfig-2.11.93-addfile.patch b/media-libs/fontconfig/files/fontconfig-2.11.93-addfile.patch new file mode 100644 index 000000000000..8b96da2e5946 --- /dev/null +++ b/media-libs/fontconfig/files/fontconfig-2.11.93-addfile.patch @@ -0,0 +1,109 @@ +From c965c9f67759585909fa03236bad826de85bd39c Mon Sep 17 00:00:00 2001 +From: Akira TAGOH <akira@tagoh.org> +Date: Mon, 23 Mar 2015 13:30:59 +0900 +Subject: Bug 89617 - FcConfigAppFontAddFile() returns false on any font file + +Prior to the change of 32ac7c75e8db0135ef37cf86f92d8b9be000c8bb +FcConfigAppFontAddFile() always returned FcTrue no matter what +fonts was added. after that, it always returned FcFalse because +adding a font doesn't add any subdirs with FcFileScanConfig(). +so changing that to simply ignore it. + +Also fixing it to return FcFalse if non-fonts was added, i.e. +FcFreeTypeQuery() fails. + +https://bugs.freedesktop.org/show_bug.cgi?id=89617 + +diff --git a/src/fccfg.c b/src/fccfg.c +index b92270b..5467493 100644 +--- a/src/fccfg.c ++++ b/src/fccfg.c +@@ -2227,7 +2227,9 @@ FcConfigAppFontAddFile (FcConfig *config, + FcStrSetDestroy (subdirs); + return FcFalse; + } +- if ((sublist = FcStrListCreate (subdirs))) ++ if (subdirs->num == 0) ++ ret = FcTrue; ++ else if ((sublist = FcStrListCreate (subdirs))) + { + while ((subdir = FcStrListNext (sublist))) + { +diff --git a/src/fcdir.c b/src/fcdir.c +index 00dee72..2e7f0dc 100644 +--- a/src/fcdir.c ++++ b/src/fcdir.c +@@ -136,6 +136,8 @@ FcFileScanFontConfig (FcFontSet *set, + ret = FcFalse; + } + } ++ else ++ ret = FcFalse; + id++; + } while (font && ret && id < count); + return ret; +diff --git a/test/Makefile.am b/test/Makefile.am +index f270b50..bf1ec24 100644 +--- a/test/Makefile.am ++++ b/test/Makefile.am +@@ -24,6 +24,13 @@ test_pthread_LDADD = $(top_builddir)/src/libfontconfig.la + # to meaningfully test anything, and we are not installed yet. + #TESTS += test-pthread + endif ++check_PROGRAMS += test-bz89617 ++test_bz89617_CFLAGS = \ ++ -DSRCDIR="\"$(abs_srcdir)\"" ++ ++test_bz89617_LDADD = $(top_builddir)/src/libfontconfig.la ++TESTS += test-bz89617 ++ + noinst_PROGRAMS = $(check_PROGRAMS) + + if !OS_WIN32 +diff --git a/test/test-bz89617.c b/test/test-bz89617.c +new file mode 100644 +index 0000000..389f470 +--- /dev/null ++++ b/test/test-bz89617.c +@@ -0,0 +1,38 @@ ++/* ++ * fontconfig/test/test-bz89617.c ++ * ++ * Copyright © 2000 Keith Packard ++ * Copyright © 2015 Akira TAGOH ++ * ++ * Permission to use, copy, modify, distribute, and sell this software and its ++ * documentation for any purpose is hereby granted without fee, provided that ++ * the above copyright notice appear in all copies and that both that ++ * copyright notice and this permission notice appear in supporting ++ * documentation, and that the name of the author(s) not be used in ++ * advertising or publicity pertaining to distribution of the software without ++ * specific, written prior permission. The authors make no ++ * representations about the suitability of this software for any purpose. It ++ * is provided "as is" without express or implied warranty. ++ * ++ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, ++ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO ++ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR ++ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, ++ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER ++ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR ++ * PERFORMANCE OF THIS SOFTWARE. ++ */ ++#include <stdio.h> ++#include <fontconfig/fontconfig.h> ++ ++int ++main (void) ++{ ++ FcConfig *config = FcConfigGetCurrent (); ++ ++ if (!FcConfigAppFontAddFile (config, SRCDIR "/4x6.pcf") || ++ FcConfigAppFontAddFile (config, "/dev/null")) ++ return 1; ++ ++ return 0; ++} +-- +cgit v0.10.2 + |