diff options
author | marha <marha@users.sourceforge.net> | 2015-02-22 14:31:16 +0100 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2015-02-22 14:31:16 +0100 |
commit | f1c2db43dcf35d2cf4715390bd2391c28e42a8c2 (patch) | |
tree | 46b537271afe0f6534231b1bd4cc4f91ae1fb446 /fontconfig | |
parent | 5e5a48ff8cd08f123601cd0625ca62a86675aac9 (diff) | |
download | vcxsrv-f1c2db43dcf35d2cf4715390bd2391c28e42a8c2.tar.gz vcxsrv-f1c2db43dcf35d2cf4715390bd2391c28e42a8c2.tar.bz2 vcxsrv-f1c2db43dcf35d2cf4715390bd2391c28e42a8c2.zip |
xwininfo fontconfig libX11 libXdmcp libfontenc libxcb libxcb/xcb-proto mesalib xserver xkeyboard-config mkfontscale git update 22 Feb 2015
xserver commit 3a06faf3fcdb7451125a46181f9152e8e59e9770
libxcb commit e3ec1f74637237ce500dfd0ca59f2e422da4e019
libxcb/xcb-proto commit 4c550465934164aab2449a125f75f4ca07816233
xkeyboard-config commit 26f344c93f8c6141e9233eb68088ba4fd56bc9ef
libX11 commit c8e19b393defd53f046ddc2da3a16881221b3c34
libXdmcp commit 9f4cac7656b221ce2a8f97e7bd31e5e23126d001
libfontenc commit de1843aaf76015c9d99416f3122d169fe331b849
mkfontscale commit 87d628f8eec170ec13bb9feefb1ce05aed07d1d6
xwininfo commit 0c49f8f2bd56b1e77721e81030ea948386dcdf4e
fontconfig commit d6d5adeb7940c0d0beb86489c2a1c2ce59e5c044
mesa commit 4359954d842caa2a9f8d4b50d70ecc789884b68b
Diffstat (limited to 'fontconfig')
-rw-r--r-- | fontconfig/README | 85 | ||||
-rw-r--r-- | fontconfig/configure.ac | 15 | ||||
-rw-r--r-- | fontconfig/doc/fontconfig-devel.sgml | 5 | ||||
-rw-r--r-- | fontconfig/doc/fontconfig-user.sgml | 9 | ||||
-rw-r--r-- | fontconfig/fc-cache/fc-cache.sgml | 2 | ||||
-rw-r--r-- | fontconfig/fc-cat/fc-cat.sgml | 2 | ||||
-rw-r--r-- | fontconfig/fontconfig/fontconfig.h | 2 | ||||
-rw-r--r-- | fontconfig/m4/pkg.m4 | 214 | ||||
-rw-r--r-- | fontconfig/src/fcfreetype.c | 2 |
9 files changed, 327 insertions, 9 deletions
diff --git a/fontconfig/README b/fontconfig/README index 8b34edcae..6ac164469 100644 --- a/fontconfig/README +++ b/fontconfig/README @@ -1,12 +1,93 @@ Fontconfig Font configuration and customization library - Version 2.11.1 - 2014-03-24 + Version 2.11.92 (2.12 RC2) + 2015-01-13 Check INSTALL for compilation and installation instructions. Report bugs to https://bugs.freedesktop.org in the fontconfig module. +2.11.92 (2.12 RC2) + +Akira TAGOH (1): + Add missing docs + +2.11.91 (2.12 RC1) + +Akira TAGOH (28): + Bug 71287 - size specific design selection support in OS/2 table version 5 + Fix a build issue with freetype <2.5.1 + Fix missing docs + Fix a typo + Fix fc-cache fail with -r + Rebase ja.orth against Joyo kanji characters + Allow the modification on FcTypeVoid with FcTypeLangSet and FcTypeCharSet + Workaround another race condition issue + Read the config files and fonts on the sysroot when --sysroot is given to fc-cache + Fix a segfault + Update CaseFolding.txt to Unicode 7.0 + Don't read/write from/to the XDG dirs if the home directory is disabled + Rework for 5004e8e01f5de30ad01904e57ea0eda006ab3a0c + Fix a crash when no sysroot is given and failed to load the default fonts.conf + Fix a gcc warning + Don't add duplicate lang + fallback to the another method to lock when link() failed + Increase the refcount in FcConfigSetCurrent() + Fix the memory leak in fc-cat + Note FcConfigSetCurrent() increases the refcount in document + Add FcRangeGetDouble() + Revert "Bug 73291 - poppler does not show fl ligature" + Update aliases for new URW fonts + Returns False if no fonts found + fc-cache: make a fail if no fonts processed on a given path + fc-cache: Add an option to raise an error if no fonts found + Bump the cache version to 5 + Fix a typo + +Behdad Esfahbod (39): + Remove unused code + Simplify hash code + Further simplify hash code + Rewrite hashing to use FT_Stream directly + Allow passing NULL for file to FcFreeTypeQueryFace() + [ko.orth] Remove U+3164 HANGUL FILLER + Deprecate FC_HASH and don't compute it + Remove unused FcHash code now that FC_HASH is deprecated + Update list of blanks to Unicode 6.3.0 + Update blanks to Unicode 7.0 + Change charset parse/unparse format to be human readable + Minor + Fix charset unparse after recent changes + Comments + Remove HASH from matching priorities + Fixup previous commit + Update mingw32 MemoryBarrier from HarfBuzz + More mingw32 MemoryBarrier() fixup + Symlinks fix for DESTDIR + Revert "Symlinks fix for DESTDIR" + Call FcInitDebug from FcFreeTypeQueryFace + Decode MacRoman encoding in name table without iconv + Ouch, fix buffer + Use lang=und instead of lang=xx for "undetermined" + Remove unused regex code + Improve / cleanup namelang matching + Add FC_WEIGHT_DEMILIGHT + Change DemiLight from 65 to 55 + Linearly interpolate weight values + Export recently added API + Remove unneeded FcPublic + Fix assertion failure + If OS/2 table says weight is 1 to 9, multiply by 100 + Trebuchet MS is a sans-serif font, not serif + Fix previous commit + Revert "[fcmatch] When matching, reserve score 0 for when elements don't exist" + Fix buffer overflow in copying PS name + Add FC_COLOR + Treat color fonts as scalable + +Nick Alcock (1): + Generate documentation for FcWeight* functions. + 2.11.1 Akira TAGOH (31): diff --git a/fontconfig/configure.ac b/fontconfig/configure.ac index a366853e2..9011f37a3 100644 --- a/fontconfig/configure.ac +++ b/fontconfig/configure.ac @@ -33,7 +33,7 @@ dnl This is the package version number, not the shared library dnl version. This same version number must appear in fontconfig/fontconfig.h dnl Yes, it is a pain to synchronize version numbers. Unfortunately, it's dnl not possible to extract the version number here from fontconfig.h -AC_INIT([fontconfig], [2.11.1], [https://bugs.freedesktop.org/enter_bug.cgi?product=fontconfig]) +AC_INIT([fontconfig], [2.11.92], [https://bugs.freedesktop.org/enter_bug.cgi?product=fontconfig]) AM_INIT_AUTOMAKE([1.11 parallel-tests dist-bzip2]) m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) @@ -103,11 +103,22 @@ if test "$os_win32" = "yes"; then fi AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes) +AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"]) WARN_CFLAGS="" +WERROR_CFLAGS="-Werror" +WARNING_CPP_DIRECTIVE="no" if test "x$GCC" = "xyes"; then WARN_CFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes \ -Wmissing-prototypes -Wmissing-declarations \ -Wnested-externs -fno-strict-aliasing" + WARNING_CPP_DIRECTIVE="yes" +elif test "x$SUNCC" = "xyes"; then + WARN_CFLAGS="-v -fd" + WERROR_CFLAGS="-errtags \ + -errwarn=%all,no%E_OLD_STYLE_FUNC_DEF,no%E_STATEMENT_NOT_REACHED" + WARNING_CPP_DIRECTIVE="yes" +fi +if test "x$WARNING_CPP_DIRECTIVE" = "xyes"; then AC_DEFINE_UNQUOTED(HAVE_WARNING_CPP_DIRECTIVE,1, [Can use #warning in C files]) fi @@ -159,7 +170,7 @@ AC_DEFINE_UNQUOTED([HAVE_POSIX_FADVISE], [$fc_func_posix_fadvise], [Define to 1 if test "$os_win32" = "no"; then AC_MSG_CHECKING([for scandir]) fc_saved_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $WARN_CFLAGS -Werror" + CFLAGS="$CFLAGS $WARN_CFLAGS $WERROR_CFLAGS" AC_TRY_COMPILE([ #include <dirent.h> int main(void); diff --git a/fontconfig/doc/fontconfig-devel.sgml b/fontconfig/doc/fontconfig-devel.sgml index 7410ef0c0..0fa4605b5 100644 --- a/fontconfig/doc/fontconfig-devel.sgml +++ b/fontconfig/doc/fontconfig-devel.sgml @@ -191,8 +191,13 @@ convenience for the application's rendering mechanism. fontversion FC_FONTVERSION Int Version number of the font capability FC_CAPABILITY String List of layout capabilities in the font + fontformat FC_FONTFORMAT String String name of the font format embolden FC_EMBOLDEN Bool Rasterizer should synthetically embolden the font + embeddedbitmap FC_EMBEDDED_BITMAP Bool Use the embedded bitmap instead + of the outline + decorative FC_DECORATIVE Bool Whether the style is a decorative + variant fontfeatures FC_FONT_FEATURES String List of extra feature tags in OpenType to be enabled namelang FC_NAMELANG String Language name to be used for the diff --git a/fontconfig/doc/fontconfig-user.sgml b/fontconfig/doc/fontconfig-user.sgml index 482b45331..ac9d8079e 100644 --- a/fontconfig/doc/fontconfig-user.sgml +++ b/fontconfig/doc/fontconfig-user.sgml @@ -119,6 +119,7 @@ convenience for the applications' rendering mechanism. rasterizer String Which rasterizer is in use (deprecated) outline Bool Whether the glyphs are outlines scalable Bool Whether glyphs can be scaled + color Bool Whether any glyphs have color scale Double Scale factor for point->pixel conversions dpi Double Target dots per inch rgba Int unknown, rgb, bgr, vrgb, vbgr, @@ -130,9 +131,15 @@ convenience for the applications' rendering mechanism. font supports fontversion Int Version number of the font capability String List of layout capabilities in the font + fontformat String String name of the font format embolden Bool Rasterizer should synthetically embolden the font + embeddedbitmap Bool Use the embedded bitmap instead of the outline + decorative Bool Whether the style is a decorative variant fontfeatures String List of the feature tags in OpenType to be enabled + namelang String Language name to be used for the default value of + familylang, stylelang, and fullnamelang prgname String String Name of the running program + postscriptname String Font family name in PostScript </programlisting> </refsect2> <refsect2> @@ -314,7 +321,7 @@ the configuration file, the directory that can be accessed first in the list will be used to store the cache files. If it starts with '~', it refers to a directory in the users home directory. If 'prefix' is set to "xdg", the value in the XDG_CACHE_HOME environment variable will be added as the path prefix. please see XDG Base Directory Specification for more details. The default directory is ``$XDG_CACHE_HOME/fontconfig'' and it contains the cache files -named ``<literal><hash value></literal>-<literal><architecture></literal>.cache-<literal><version</literal>'', +named ``<literal><hash value></literal>-<literal><architecture></literal>.cache-<literal><version></literal>'', where <literal><version></literal> is the font configureation file version number (currently 3). </para></refsect2> diff --git a/fontconfig/fc-cache/fc-cache.sgml b/fontconfig/fc-cache/fc-cache.sgml index 7e5159b11..5ae010765 100644 --- a/fontconfig/fc-cache/fc-cache.sgml +++ b/fontconfig/fc-cache/fc-cache.sgml @@ -195,7 +195,7 @@ manpage.1: manpage.sgml <title>FILES</title> <variablelist> <varlistentry> - <term><filename><replaceable>%cachdir%</replaceable>/*-<replaceable>%arch%</replaceable>.cache-2</filename></term> + <term><filename><replaceable>%cachedir%</replaceable>/*-<replaceable>%arch%</replaceable>.cache-%version%</filename></term> <listitem> <para>These files are generated by <command>&dhpackage;</command> and contain maps from file names to font properties. They are diff --git a/fontconfig/fc-cat/fc-cat.sgml b/fontconfig/fc-cat/fc-cat.sgml index ce4736de5..a51325433 100644 --- a/fontconfig/fc-cat/fc-cat.sgml +++ b/fontconfig/fc-cat/fc-cat.sgml @@ -70,7 +70,7 @@ manpage.1: manpage.sgml <arg><option>--help</option></arg> <sbr> <group rep="repeat"> - <arg><option><replaceable>fonts-cache-2-files</replaceable></option></arg> + <arg><option><replaceable>fonts-cache-%version%-files</replaceable></option></arg> <arg><option><replaceable>dirs</replaceable></option></arg> </group> diff --git a/fontconfig/fontconfig/fontconfig.h b/fontconfig/fontconfig/fontconfig.h index c571e28b2..600ed6881 100644 --- a/fontconfig/fontconfig/fontconfig.h +++ b/fontconfig/fontconfig/fontconfig.h @@ -52,7 +52,7 @@ typedef int FcBool; #define FC_MAJOR 2 #define FC_MINOR 11 -#define FC_REVISION 1 +#define FC_REVISION 92 #define FC_VERSION ((FC_MAJOR * 10000) + (FC_MINOR * 100) + (FC_REVISION)) diff --git a/fontconfig/m4/pkg.m4 b/fontconfig/m4/pkg.m4 new file mode 100644 index 000000000..c5b26b52e --- /dev/null +++ b/fontconfig/m4/pkg.m4 @@ -0,0 +1,214 @@ +# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# serial 1 (pkg-config-0.24) +# +# Copyright © 2004 Scott James Remnant <scott@netsplit.com>. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# PKG_PROG_PKG_CONFIG([MIN-VERSION]) +# ---------------------------------- +AC_DEFUN([PKG_PROG_PKG_CONFIG], +[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) +m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) +AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) +AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=m4_default([$1], [0.9.0]) + AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + PKG_CONFIG="" + fi +fi[]dnl +])# PKG_PROG_PKG_CONFIG + +# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +# +# Check to see whether a particular set of modules exists. Similar +# to PKG_CHECK_MODULES(), but does not set variables or print errors. +# +# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +# only at the first occurence in configure.ac, so if the first place +# it's called might be skipped (such as if it is within an "if", you +# have to call PKG_CHECK_EXISTS manually +# -------------------------------------------------------------- +AC_DEFUN([PKG_CHECK_EXISTS], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +if test -n "$PKG_CONFIG" && \ + AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then + m4_default([$2], [:]) +m4_ifvaln([$3], [else + $3])dnl +fi]) + +# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) +# --------------------------------------------- +m4_define([_PKG_CONFIG], +[if test -n "$$1"; then + pkg_cv_[]$1="$$1" + elif test -n "$PKG_CONFIG"; then + PKG_CHECK_EXISTS([$3], + [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes ], + [pkg_failed=yes]) + else + pkg_failed=untried +fi[]dnl +])# _PKG_CONFIG + +# _PKG_SHORT_ERRORS_SUPPORTED +# ----------------------------- +AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi[]dnl +])# _PKG_SHORT_ERRORS_SUPPORTED + + +# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +# [ACTION-IF-NOT-FOUND]) +# +# +# Note that if there is a possibility the first call to +# PKG_CHECK_MODULES might not happen, you should be sure to include an +# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac +# +# +# -------------------------------------------------------------- +AC_DEFUN([PKG_CHECK_MODULES], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl +AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl + +pkg_failed=no +AC_MSG_CHECKING([for $1]) + +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) + +m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS +and $1[]_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details.]) + +if test $pkg_failed = yes; then + AC_MSG_RESULT([no]) + _PKG_SHORT_ERRORS_SUPPORTED + if test $_pkg_short_errors_supported = yes; then + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + + m4_default([$4], [AC_MSG_ERROR( +[Package requirements ($2) were not met: + +$$1_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +_PKG_TEXT])[]dnl + ]) +elif test $pkg_failed = untried; then + AC_MSG_RESULT([no]) + m4_default([$4], [AC_MSG_FAILURE( +[The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +_PKG_TEXT + +To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl + ]) +else + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + $3 +fi[]dnl +])# PKG_CHECK_MODULES + + +# PKG_INSTALLDIR(DIRECTORY) +# ------------------------- +# Substitutes the variable pkgconfigdir as the location where a module +# should install pkg-config .pc files. By default the directory is +# $libdir/pkgconfig, but the default can be changed by passing +# DIRECTORY. The user can override through the --with-pkgconfigdir +# parameter. +AC_DEFUN([PKG_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([pkgconfigdir], + [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, + [with_pkgconfigdir=]pkg_default) +AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +]) dnl PKG_INSTALLDIR + + +# PKG_NOARCH_INSTALLDIR(DIRECTORY) +# ------------------------- +# Substitutes the variable noarch_pkgconfigdir as the location where a +# module should install arch-independent pkg-config .pc files. By +# default the directory is $datadir/pkgconfig, but the default can be +# changed by passing DIRECTORY. The user can override through the +# --with-noarch-pkgconfigdir parameter. +AC_DEFUN([PKG_NOARCH_INSTALLDIR], +[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) +m4_pushdef([pkg_description], + [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) +AC_ARG_WITH([noarch-pkgconfigdir], + [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, + [with_noarch_pkgconfigdir=]pkg_default) +AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) +m4_popdef([pkg_default]) +m4_popdef([pkg_description]) +]) dnl PKG_NOARCH_INSTALLDIR + + +# PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, +# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +# ------------------------------------------- +# Retrieves the value of the pkg-config variable for the given module. +AC_DEFUN([PKG_CHECK_VAR], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl + +_PKG_CONFIG([$1], [variable="][$3]["], [$2]) +AS_VAR_COPY([$1], [pkg_cv_][$1]) + +AS_VAR_IF([$1], [""], [$5], [$4])dnl +])# PKG_CHECK_VAR diff --git a/fontconfig/src/fcfreetype.c b/fontconfig/src/fcfreetype.c index 81ebda707..f42004be7 100644 --- a/fontconfig/src/fcfreetype.c +++ b/fontconfig/src/fcfreetype.c @@ -2206,7 +2206,7 @@ static const FcCharMap AdobeSymbol = { static const FcFontDecode fcFontDecoders[] = { { ft_encoding_unicode, 0, (1 << 21) - 1 }, - { ft_encoding_symbol, &AdobeSymbol, (1 << 16) - 1 }, + { ft_encoding_symbol, 0, (1 << 16) - 1 }, }; #define NUM_DECODE (int) (sizeof (fcFontDecoders) / sizeof (fcFontDecoders[0])) |