[Fontconfig] fontconfig: Branch 'master' - 2 commits

Akira TAGOH tagoh at kemper.freedesktop.org
Sun Mar 22 21:32:27 PDT 2015


 src/fccfg.c         |    4 +++-
 src/fcdir.c         |    4 ++--
 test/Makefile.am    |    7 +++++++
 test/test-bz89617.c |   38 ++++++++++++++++++++++++++++++++++++++
 4 files changed, 50 insertions(+), 3 deletions(-)

New commits:
commit c965c9f67759585909fa03236bad826de85bd39c
Author: Akira TAGOH <akira at tagoh.org>
Date:   Mon Mar 23 13:30:59 2015 +0900

    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;
+}
commit 7301f2f02816c5d44ee75dd0689c806c5aabdbda
Author: Akira TAGOH <akira at tagoh.org>
Date:   Mon Mar 23 13:18:49 2015 +0900

    Remove the dead code

diff --git a/src/fcdir.c b/src/fcdir.c
index 593382f..00dee72 100644
--- a/src/fcdir.c
+++ b/src/fcdir.c
@@ -136,8 +136,6 @@ FcFileScanFontConfig (FcFontSet		*set,
 		ret = FcFalse;
 	    }
 	}
-	else if (font)
-	    FcPatternDestroy (font);
 	id++;
     } while (font && ret && id < count);
     return ret;


More information about the Fontconfig mailing list