Keith Packard
2008-Jan-02 17:13 UTC
[Fontconfig] fontconfig: Branch ''master'' - 2 commits
fc-arch/Makefile.am | 2 - fc-case/Makefile.am | 2 - fc-glyphname/Makefile.am | 2 - fc-lang/Makefile.am | 2 - src/Makefile.am | 13 ++++++++--- src/fcfreetype.c | 1 src/fcftint.h | 54 +++++++++++++++++++++++++++++++++++++++++++++++ src/fcint.h | 18 --------------- src/fclang.c | 1 src/fcpat.c | 1 src/fcxml.c | 5 ++++ src/makealias | 6 +++-- 12 files changed, 81 insertions(+), 26 deletions(-) New commits: commit dbd065ad312921308add99fc4cb31457d9045e6a Author: Keith Packard <keithp at keithp.com> Date: Wed Jan 2 08:47:14 2008 -0800 Remove freetype requirement for build-time applications. This avoids requiring the freetype development files when cross compiling diff --git a/fc-arch/Makefile.am b/fc-arch/Makefile.am index 5fedbfb..7e1dd3e 100644 --- a/fc-arch/Makefile.am +++ b/fc-arch/Makefile.am @@ -26,7 +26,7 @@ CC = @CC_FOR_BUILD@ EXEEXT = @EXEEXT_FOR_BUILD@ LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -INCLUDES=-I${top_srcdir}/src -I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS) +INCLUDES=-I${top_srcdir}/src -I${top_srcdir} $(WARN_CFLAGS) TMPL=fcarch.tmpl.h STMPL=${top_srcdir}/fc-arch/fcarch.tmpl.h diff --git a/fc-case/Makefile.am b/fc-case/Makefile.am index 83ca2de..d4fa12d 100644 --- a/fc-case/Makefile.am +++ b/fc-case/Makefile.am @@ -26,7 +26,7 @@ CC = @CC_FOR_BUILD@ EXEEXT = @EXEEXT_FOR_BUILD@ LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -INCLUDES=-I${top_srcdir}/src -I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS) +INCLUDES=-I${top_srcdir}/src -I${top_srcdir} $(WARN_CFLAGS) TMPL=fccase.tmpl.h STMPL=${top_srcdir}/fc-case/${TMPL} diff --git a/fc-glyphname/Makefile.am b/fc-glyphname/Makefile.am index 8aa5ead..412d663 100644 --- a/fc-glyphname/Makefile.am +++ b/fc-glyphname/Makefile.am @@ -26,7 +26,7 @@ CC = @CC_FOR_BUILD@ EXEEXT = @EXEEXT_FOR_BUILD@ LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -INCLUDES=-I${top_srcdir}/src -I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS) +INCLUDES=-I${top_srcdir}/src -I${top_srcdir} $(WARN_CFLAGS) TMPL=fcglyphname.tmpl.h STMPL=${top_srcdir}/fc-glyphname/${TMPL} diff --git a/fc-lang/Makefile.am b/fc-lang/Makefile.am index f152ab5..60e4f31 100644 --- a/fc-lang/Makefile.am +++ b/fc-lang/Makefile.am @@ -26,7 +26,7 @@ CC = @CC_FOR_BUILD@ EXEEXT = @EXEEXT_FOR_BUILD@ LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -INCLUDES=-I${top_srcdir}/src -I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS) +INCLUDES=-I${top_srcdir}/src -I${top_srcdir} $(WARN_CFLAGS) TMPL=fclang.tmpl.h STMPL=${top_srcdir}/fc-lang/fclang.tmpl.h diff --git a/src/Makefile.am b/src/Makefile.am index e4c203c..a7d6b92 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -81,7 +81,7 @@ EXTRA_DIST = makealias noinst_HEADERS=fcint.h fcdeprecate.h -ALIAS_FILES = fcalias.h fcaliastail.h +ALIAS_FILES = fcalias.h fcaliastail.h fcftalias.h fcftaliastail.h BUILT_SOURCES = $(ALIAS_FILES) @@ -124,14 +124,21 @@ uninstall-local: uninstall-ms-import-lib uninstall-libtool-import-lib PUBLIC_FILES = \ $(top_srcdir)/fontconfig/fontconfig.h \ - $(top_srcdir)/fontconfig/fcfreetype.h \ $(top_srcdir)/src/fcdeprecate.h \ $(top_srcdir)/fontconfig/fcprivate.h +PUBLIC_FT_FILES = \ + $(top_srcdir)/fontconfig/fcfreetype.h + fcaliastail.h: fcalias.h fcalias.h: $(top_srcdir)/src/makealias $(PUBLIC_FILES) - sh $(top_srcdir)/src/makealias "$(top_srcdir)/src" $(PUBLIC_FILES) + sh $(top_srcdir)/src/makealias "$(top_srcdir)/src" fcalias.h fcaliastail.h $(PUBLIC_FILES) + +fcftaliastail.h: fcftalias.h + +fcftalias.h: $(top_srcdir)/src/makealias $(PUBLIC_FT_FILES) + sh $(top_srcdir)/src/makealias "$(top_srcdir)/src" fcftalias.h fcftaliastail.h $(PUBLIC_FT_FILES) CLEANFILES := $(ALIAS_FILES) diff --git a/src/fcfreetype.c b/src/fcfreetype.c index 572e7f2..53fe86b 100644 --- a/src/fcfreetype.c +++ b/src/fcfreetype.c @@ -45,6 +45,7 @@ */ #include "fcint.h" +#include "fcftint.h" #include <stdlib.h> #include <stdio.h> #include <string.h> diff --git a/src/fcftint.h b/src/fcftint.h new file mode 100644 index 0000000..f32d87c --- /dev/null +++ b/src/fcftint.h @@ -0,0 +1,54 @@ +/* + * Copyright ?? 2007 Keith Packard + * + * 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 copyright holders not be used in advertising or + * publicity pertaining to distribution of the software without specific, + * written prior permission. The copyright holders make no representations + * about the suitability of this software for any purpose. It is provided "as + * is" without express or implied warranty. + * + * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO + * EVENT SHALL THE COPYRIGHT HOLDERS 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. + */ + +#ifndef _FCFTINT_H_ +#define _FCFTINT_H_ + +#include <fontconfig/fcfreetype.h> + +#if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)) && defined(__ELF__) && !defined(__sun) +#define FcPrivate __attribute__((__visibility__("hidden"))) +#define HAVE_GNUC_ATTRIBUTE 1 +#include "fcftalias.h" +#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550) +#define FcPrivate __hidden +#else /* not gcc >= 3.3 and not Sun Studio >= 8 */ +#define FcPrivate +#endif + +/* fcfreetype.c */ +FcPrivate FcBool +FcFreeTypeIsExclusiveLang (const FcChar8 *lang); + +FcPrivate FcBool +FcFreeTypeHasLang (FcPattern *pattern, const FcChar8 *lang); + +FcPrivate FcChar32 +FcFreeTypeUcs4ToPrivate (FcChar32 ucs4, const FcCharMap *map); + +FcPrivate FcChar32 +FcFreeTypePrivateToUcs4 (FcChar32 private, const FcCharMap *map); + +FcPrivate const FcCharMap * +FcFreeTypeGetPrivateMap (FT_Encoding encoding); + +#endif /* _FCFTINT_H_ */ diff --git a/src/fcint.h b/src/fcint.h index 922a2df..ddeb745 100644 --- a/src/fcint.h +++ b/src/fcint.h @@ -42,12 +42,12 @@ #include <ctype.h> #include <errno.h> #include <unistd.h> +#include <stddef.h> #include <sys/types.h> #include <sys/stat.h> #include <time.h> #include <fontconfig/fontconfig.h> #include <fontconfig/fcprivate.h> -#include <fontconfig/fcfreetype.h> #include "fcdeprecate.h" #ifndef FC_CONFIG_PATH @@ -705,22 +705,6 @@ FcDirScanConfig (FcFontSet *set, FcPrivate int FcFontDebug (void); -/* fcfreetype.c */ -FcPrivate FcBool -FcFreeTypeIsExclusiveLang (const FcChar8 *lang); - -FcPrivate FcBool -FcFreeTypeHasLang (FcPattern *pattern, const FcChar8 *lang); - -FcPrivate FcChar32 -FcFreeTypeUcs4ToPrivate (FcChar32 ucs4, const FcCharMap *map); - -FcPrivate FcChar32 -FcFreeTypePrivateToUcs4 (FcChar32 private, const FcCharMap *map); - -FcPrivate const FcCharMap * -FcFreeTypeGetPrivateMap (FT_Encoding encoding); - /* fcfs.c */ FcPrivate FcBool diff --git a/src/fclang.c b/src/fclang.c index 7aa5f3c..dc1fb36 100644 --- a/src/fclang.c +++ b/src/fclang.c @@ -23,6 +23,7 @@ */ #include "fcint.h" +#include "fcftint.h" typedef struct { const FcChar8 lang[8]; diff --git a/src/fcpat.c b/src/fcpat.c index 4179694..c8368fc 100644 --- a/src/fcpat.c +++ b/src/fcpat.c @@ -21,6 +21,7 @@ */ #include "fcint.h" +#include "fcftint.h" #include <stdlib.h> #include <string.h> #include <assert.h> diff --git a/src/makealias b/src/makealias index bbc90f0..1f57742 100755 --- a/src/makealias +++ b/src/makealias @@ -1,8 +1,10 @@ #!/bin/sh SRCDIR=$1 shift -HEAD=fcalias.h -TAIL=fcaliastail.h +HEAD=$1 +shift +TAIL=$1 +shift rm -f $HEAD $TAIL echo "#if HAVE_GNUC_ATTRIBUTE" >> $TAIL cat "$@" | grep ''^Fc[^ ]* *('' | sed -e ''s/ *(.*$//'' | commit 0aa5fbaa0df9d6c7bee8e0839dd443de9c48a402 Author: Keith Packard <keithp at keithp.com> Date: Sun Dec 23 14:06:41 2007 -0800 Fix OOM failure case in FcPStackPush. When allocation for the node attributes fail, clean up the node allocation and report failure. diff --git a/src/fcxml.c b/src/fcxml.c index cec9f6f..1910306 100644 --- a/src/fcxml.c +++ b/src/fcxml.c @@ -968,7 +968,12 @@ FcPStackPush (FcConfigParse *parse, FcElement element, const XML_Char **attr) { new->attr = FcConfigSaveAttr (attr); if (!new->attr) + { FcConfigMessage (parse, FcSevereError, "out of memory"); + FcMemFree (FC_MEM_PSTACK, sizeof (FcPStack)); + free (new); + return FcFalse; + } } else new->attr = 0;