summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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.patch109
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
+